11debfc3dSmrg/* This file contains the definitions for plugin events in GCC. 2*8feb0f0bSmrg Copyright (C) 2009-2020 Free Software Foundation, Inc. 31debfc3dSmrg 41debfc3dSmrgThis file is part of GCC. 51debfc3dSmrg 61debfc3dSmrgGCC is free software; you can redistribute it and/or modify it under 71debfc3dSmrgthe terms of the GNU General Public License as published by the Free 81debfc3dSmrgSoftware Foundation; either version 3, or (at your option) any later 91debfc3dSmrgversion. 101debfc3dSmrg 111debfc3dSmrgGCC is distributed in the hope that it will be useful, but WITHOUT ANY 121debfc3dSmrgWARRANTY; without even the implied warranty of MERCHANTABILITY or 131debfc3dSmrgFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 141debfc3dSmrgfor more details. 151debfc3dSmrg 161debfc3dSmrgYou should have received a copy of the GNU General Public License 171debfc3dSmrgalong with GCC; see the file COPYING3. If not see 181debfc3dSmrg<http://www.gnu.org/licenses/>. */ 191debfc3dSmrg 201debfc3dSmrg/* Called before parsing the body of a function. */ 211debfc3dSmrgDEFEVENT (PLUGIN_START_PARSE_FUNCTION) 221debfc3dSmrg 231debfc3dSmrg/* After finishing parsing a function. */ 241debfc3dSmrgDEFEVENT (PLUGIN_FINISH_PARSE_FUNCTION) 251debfc3dSmrg 261debfc3dSmrg/* To hook into pass manager. */ 271debfc3dSmrgDEFEVENT (PLUGIN_PASS_MANAGER_SETUP) 281debfc3dSmrg 291debfc3dSmrg/* After finishing parsing a type. */ 301debfc3dSmrgDEFEVENT (PLUGIN_FINISH_TYPE) 311debfc3dSmrg 321debfc3dSmrg/* After finishing parsing a declaration. */ 331debfc3dSmrgDEFEVENT (PLUGIN_FINISH_DECL) 341debfc3dSmrg 351debfc3dSmrg/* Useful for summary processing. */ 361debfc3dSmrgDEFEVENT (PLUGIN_FINISH_UNIT) 371debfc3dSmrg 381debfc3dSmrg/* Allows to see low level AST in C and C++ frontends. */ 391debfc3dSmrgDEFEVENT (PLUGIN_PRE_GENERICIZE) 401debfc3dSmrg 411debfc3dSmrg/* Called before GCC exits. */ 421debfc3dSmrgDEFEVENT (PLUGIN_FINISH) 431debfc3dSmrg 441debfc3dSmrg/* Information about the plugin. */ 451debfc3dSmrgDEFEVENT (PLUGIN_INFO) 461debfc3dSmrg 471debfc3dSmrg/* Called at start of GCC Garbage Collection. */ 481debfc3dSmrgDEFEVENT (PLUGIN_GGC_START) 491debfc3dSmrg 501debfc3dSmrg/* Extend the GGC marking. */ 511debfc3dSmrgDEFEVENT (PLUGIN_GGC_MARKING) 521debfc3dSmrg 531debfc3dSmrg/* Called at end of GGC. */ 541debfc3dSmrgDEFEVENT (PLUGIN_GGC_END) 551debfc3dSmrg 561debfc3dSmrg/* Register an extra GGC root table. */ 571debfc3dSmrgDEFEVENT (PLUGIN_REGISTER_GGC_ROOTS) 581debfc3dSmrg 591debfc3dSmrg/* Called during attribute registration. */ 601debfc3dSmrgDEFEVENT (PLUGIN_ATTRIBUTES) 611debfc3dSmrg 621debfc3dSmrg/* Called before processing a translation unit. */ 631debfc3dSmrgDEFEVENT (PLUGIN_START_UNIT) 641debfc3dSmrg 651debfc3dSmrg/* Called during pragma registration. */ 661debfc3dSmrgDEFEVENT (PLUGIN_PRAGMAS) 671debfc3dSmrg 681debfc3dSmrg/* Called before first pass from all_passes. */ 691debfc3dSmrgDEFEVENT (PLUGIN_ALL_PASSES_START) 701debfc3dSmrg 711debfc3dSmrg/* Called after last pass from all_passes. */ 721debfc3dSmrgDEFEVENT (PLUGIN_ALL_PASSES_END) 731debfc3dSmrg 741debfc3dSmrg/* Called before first ipa pass. */ 751debfc3dSmrgDEFEVENT (PLUGIN_ALL_IPA_PASSES_START) 761debfc3dSmrg 771debfc3dSmrg/* Called after last ipa pass. */ 781debfc3dSmrgDEFEVENT (PLUGIN_ALL_IPA_PASSES_END) 791debfc3dSmrg 801debfc3dSmrg/* Allows to override pass gate decision for current_pass. */ 811debfc3dSmrgDEFEVENT (PLUGIN_OVERRIDE_GATE) 821debfc3dSmrg 831debfc3dSmrg/* Called before executing a pass. */ 841debfc3dSmrgDEFEVENT (PLUGIN_PASS_EXECUTION) 851debfc3dSmrg 861debfc3dSmrg/* Called before executing subpasses of a GIMPLE_PASS in 871debfc3dSmrg execute_ipa_pass_list. */ 881debfc3dSmrgDEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_START) 891debfc3dSmrg 901debfc3dSmrg/* Called after executing subpasses of a GIMPLE_PASS in 911debfc3dSmrg execute_ipa_pass_list. */ 921debfc3dSmrgDEFEVENT (PLUGIN_EARLY_GIMPLE_PASSES_END) 931debfc3dSmrg 941debfc3dSmrg/* Called when a pass is first instantiated. */ 951debfc3dSmrgDEFEVENT (PLUGIN_NEW_PASS) 961debfc3dSmrg 971debfc3dSmrg/* Called when a file is #include-d or given via the #line directive. 981debfc3dSmrg this could happen many times. The event data is the included file path, 991debfc3dSmrg as a const char* pointer. */ 1001debfc3dSmrgDEFEVENT (PLUGIN_INCLUDE_FILE) 1011debfc3dSmrg 1021debfc3dSmrg/* When adding a new hard-coded plugin event, don't forget to edit in 1031debfc3dSmrg file plugin.c the functions register_callback and 1041debfc3dSmrg invoke_plugin_callbacks_full accordingly! */ 1051debfc3dSmrg 1061debfc3dSmrg/* After the hard-coded events above, plugins can dynamically allocate events 1071debfc3dSmrg at run time. 1081debfc3dSmrg PLUGIN_EVENT_FIRST_DYNAMIC only appears as last enum element. */ 109