Merge in changes from:
[official-gcc.git] / gcc / pass-manager.h
blob64c9072f3bfc206f4a418d65e879d0a16e316beb
1 /* High-level pass management interface for 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 PASS_MANAGER_H
26 #define PASS_MANAGER_H
28 /* declare the struct opt_pass type without defining it - needed to make
29 the "pointer to struct opt_pass" type unambiguous withouth pulling in
30 the complete "tree-pass.h" with its dependencies. */
31 typedef struct opt_pass opt_pass;
33 extern const char **list_passes (void);
34 extern void register_pass_by_name (struct opt_pass *pass);
35 extern int unregister_pass_by_name (const char *pass_name); /* not implemented */
36 extern void run_pass (const char *pass_name);
37 extern void run_ipa_pass (const char *pass_name);
39 extern void *initialize_ici_pass_list (int);
40 extern void insert_ici_pass_list (void *, int, const char *);
41 extern void run_ici_pass_list (void *);
42 extern void run_ici_pass_list_ipa_summary (void *);
43 extern void run_ici_pass_list_per_function (void *);
44 extern void delete_ici_pass_list (void *);
46 #endif /* PASS_MANAGER_H */