|
GCC Middle and Back End API Reference
|

Go to the source code of this file.
Data Structures | |
| struct | hwloop_info_d |
| struct | hw_doloop_hooks |
Typedefs | |
| typedef struct hwloop_info_d * | hwloop_info |
Functions | |
| void | reorg_loops (bool, struct hw_doloop_hooks *) |
| typedef struct hwloop_info_d* hwloop_info |
Code to analyze doloop loops in order for targets to perform late optimizations converting doloops to other forms of hardware loops. Copyright (C) 2011-2026 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
We need to keep a vector of loops
|
extern |
This function can be used from a port's machine_dependent_reorg to find and analyze loops that end in loop_end instructions. It uses a set of function pointers in HOOKS to call back into the target-specific functions to perform the actual machine-specific transformations. Such transformations typically involve additional set-up instructions before the loop, to define loop bounds or set up a special loop counter register. DO_REORDER should be set to true if we should try to use the reorder_loops function to ensure the loop end occurs after the loop start. This is for use by targets where the loop hardware requires this condition. HOOKS is used to pass in target specific hooks; see hw-doloop.h.
References bitmap_obstack_initialize(), bitmap_obstack_release(), crtl, df_analyze(), df_live_add_problem(), df_live_set_all_dirty(), discover_loops(), dump_file, dump_hwloops(), free_loops(), get_insns(), loop::next, NULL, optimize_loop(), print_rtl(), reorder_loops(), reorg_loops(), and scan_loop().
Referenced by reorg_loops().