GCC Middle and Back End API Reference
hw-doloop.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  hwloop_info_d
 
struct  hw_doloop_hooks
 

Typedefs

typedef struct hwloop_info_dhwloop_info
 

Functions

void reorg_loops (bool, struct hw_doloop_hooks *)
 

Typedef Documentation

◆ hwloop_info

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-2025 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

Function Documentation

◆ reorg_loops()

void reorg_loops ( bool do_reorder,
struct hw_doloop_hooks * hooks )
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(), and scan_loop().