Mercurial > hg > CbC > CbC_gcc
diff gcc/gcc-plugin.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/gcc-plugin.h Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/gcc-plugin.h Fri Oct 27 22:46:09 2017 +0900 @@ -1,5 +1,5 @@ /* Public header file for plugins to include. - Copyright (C) 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2009-2017 Free Software Foundation, Inc. This file is part of GCC. @@ -27,140 +27,21 @@ #include "config.h" #include "system.h" #include "coretypes.h" -#include "highlev-plugin-common.h" -#include "hashtab.h" - -/* Event names. */ -enum plugin_event -{ -# define DEFEVENT(NAME) NAME, -# include "plugin.def" -# undef DEFEVENT - PLUGIN_EVENT_FIRST_DYNAMIC -}; - -/* All globals declared here have C linkage to reduce link compatibility - issues with implementation language choice and mangling. */ -#ifdef __cplusplus -extern "C" { -#endif - -extern const char **plugin_event_name; - -struct plugin_argument -{ - char *key; /* key of the argument. */ - char *value; /* value is optional and can be NULL. */ -}; - -/* Additional information about the plugin. Used by --help and --version. */ - -struct plugin_info -{ - const char *version; - const char *help; -}; - -/* Represents the gcc version. Used to avoid using an incompatible plugin. */ - -struct plugin_gcc_version -{ - const char *basever; - const char *datestamp; - const char *devphase; - const char *revision; - const char *configuration_arguments; -}; - -/* Object that keeps track of the plugin name and its arguments. */ -struct plugin_name_args -{ - char *base_name; /* Short name of the plugin (filename without - .so suffix). */ - const char *full_name; /* Path to the plugin as specified with - -fplugin=. */ - int argc; /* Number of arguments specified with - -fplugin-arg-... */ - struct plugin_argument *argv; /* Array of ARGC key-value pairs. */ - const char *version; /* Version string provided by plugin. */ - const char *help; /* Help string provided by plugin. */ -}; - -/* The default version check. Compares every field in VERSION. */ - -extern bool plugin_default_version_check (struct plugin_gcc_version *, - struct plugin_gcc_version *); - -/* Function type for the plugin initialization routine. Each plugin module - should define this as an externally-visible function with name - "plugin_init." - - PLUGIN_INFO - plugin invocation information. - VERSION - the plugin_gcc_version symbol of GCC. - - Returns 0 if initialization finishes successfully. */ - -typedef int (*plugin_init_func) (struct plugin_name_args *plugin_info, - struct plugin_gcc_version *version); - -/* Declaration for "plugin_init" function so that it doesn't need to be - duplicated in every plugin. */ -extern int plugin_init (struct plugin_name_args *plugin_info, - struct plugin_gcc_version *version); - -/* Function type for a plugin callback routine. - - GCC_DATA - event-specific data provided by GCC - USER_DATA - plugin-specific data provided by the plugin */ - -typedef void (*plugin_callback_func) (void *gcc_data, void *user_data); - -/* Called from the plugin's initialization code. Register a single callback. - This function can be called multiple times. - - PLUGIN_NAME - display name for this plugin - EVENT - which event the callback is for - CALLBACK - the callback to be called at the event - USER_DATA - plugin-provided data. -*/ - -/* Number of event ids / names registered so far. */ - -extern int get_event_last (void); - -int get_named_event_id (const char *name, enum insert_option insert); - -/* This is also called without a callback routine for the - PLUGIN_PASS_MANAGER_SETUP, PLUGIN_INFO, PLUGIN_REGISTER_GGC_ROOTS and - PLUGIN_REGISTER_GGC_CACHES pseudo-events, with a specific user_data. - */ - -extern void register_callback (const char *plugin_name, - int event, - plugin_callback_func callback, - void *user_data); - -extern int unregister_callback (const char *plugin_name, int event); - - -/* Retrieve the plugin directory name, as returned by the - -fprint-file-name=plugin argument to the gcc program, which is the - -iplugindir program argument to cc1. */ -extern const char* default_plugin_dir_name (void); - -#ifdef __cplusplus -} -#endif - -/* In case the C++ compiler does name mangling for globals, declare - plugin_is_GPL_compatible extern "C" so that a later definition - in a plugin file will have this linkage. */ -#ifdef __cplusplus -extern "C" { -#endif -extern int plugin_is_GPL_compatible; -#ifdef __cplusplus -} -#endif +#include "backend.h" +#include "cfghooks.h" +#include "hard-reg-set.h" +#include "cfgrtl.h" +#include "cfganal.h" +#include "lcm.h" +#include "cfgbuild.h" +#include "cfgcleanup.h" +#include "plugin-api.h" +#include "ipa-ref.h" +#include "alias.h" +#include "flags.h" +#include "tree-core.h" +#include "fold-const.h" +#include "tree-check.h" +#include "plugin.h" #endif /* GCC_PLUGIN_H */