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

Code to analyze doloop loops in order for targets to perform late
   optimizations converting doloops to other forms of hardware loops.
   Copyright (C) 2011-2024 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(), ggc_alloc(), loop::next, NULL, optimize_loop(), print_rtl(), reorder_loops(), and scan_loop().