Go to the source code of this file.
◆ 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
◆ reorg_loops()
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().