* gcc-plugin.h (enum plugin_event): Add PLUGIN_ALL_IPA_PASSES_START,
[official-gcc.git] / gcc / feature.h
blob5ba347b4a220964b8992b5a7138adf988af3cea1
1 /* Plugin-side interface to global compiler state for GCC plugins.
2 Copyright (C) 2009 Free Software Foundation, Inc.
4 Contributed by Inria.
6 Authors: Grigori Fursin <grigori.fursin@inria.fr>, Cupertino Miranda
7 <cupertinomiranda@gmail.com>, Zbigniew Chamski <zbigniew.chamski@gmail.com>.
9 This file is part of GCC.
11 GCC is free software; you can redistribute it and/or modify it under
12 the terms of the GNU General Public License as published by the Free
13 Software Foundation; either version 3, or (at your option) any later
14 version.
16 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
17 WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 for more details.
21 You should have received a copy of the GNU General Public License
22 along with GCC; see the file COPYING3. If not see
23 <http://www.gnu.org/licenses/>. */
25 #ifndef FEATURE_H
26 #define FEATURE_H
28 /* Access to values of either features or elements of feature sets */
29 extern const void *get_feature (const char *feature_name);
30 extern const void *get_subfeature (const char *feature_name,
31 const char *subfeat_name);
32 extern void *set_subfeature (const char *feature_name,
33 const char *subfeat_name, void *value);
35 /* Extract the size of features and feature sets */
36 extern int get_feature_size (const char *feature_name);
37 extern int get_num_features (int type); /* not implemented */
38 extern int get_num_subfeatures (const char *feat_name, int type); /* not implemented */
40 /* List of all known features, or all known elements of a feature set */
41 extern const char **list_features (void);
42 extern const char **list_subfeatures (const char *feat_name, int type); /* not implemented */
44 #endif /* FEATURE_H */