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

Go to the source code of this file.

Functions

void unroll_loops (int)
basic_block split_edge_and_insert (edge, rtx_insn *)

Function Documentation

◆ split_edge_and_insert()

basic_block split_edge_and_insert ( edge e,
rtx_insn * insns )
extern
Splits edge E and inserts the sequence of instructions INSNS on it, and returns the newly created block. If INSNS is NULL_RTX, nothing is changed and NULL is returned instead.

References BB_END, emit_insn_after(), insns, NULL, and split_edge().

Referenced by add_test(), and unroll_loop_runtime_iterations().

◆ unroll_loops()

void unroll_loops ( int flags)
extern
Loop unrolling header file. Copyright (C) 2014-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/>.
Unroll LOOPS.

References calculate_dominance_info(), CDI_DOMINATORS, cfun, changed, decide_unrolling(), lpt_decision::decision, fix_loop_structure(), gcc_unreachable, iv_analysis_done(), LI_FROM_INNERMOST, loop::lpt_decision, LPT_NONE, LPT_UNROLL_CONSTANT, LPT_UNROLL_RUNTIME, LPT_UNROLL_STUPID, NULL, unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), and unroll_loop_stupid().