GCC Middle and Back End API Reference
|
#include <hw-doloop.h>
Information about a loop we have found (or are in the process of finding).
bool hwloop_info_d::bad |
True if we can't optimize this loop.
bitmap hwloop_info_d::block_bitmap |
Same information in a bitmap.
vec<basic_block> hwloop_info_d::blocks |
Vector of blocks only within the loop, including those within inner loops.
int hwloop_info_d::depth |
The nesting depth of the loop. Innermost loops are given a depth of 1. Only successfully optimized doloops are counted; if an inner loop was marked as bad, it does not increase the depth of its parent loop. This value is valid when the target's optimize function is called.
rtx hwloop_info_d::end_label |
The new label placed at the end of the loop.
bool hwloop_info_d::has_asm |
bool hwloop_info_d::has_call |
The following values are collected before calling the target's optimize function and are not valid earlier. Record information about control flow: whether the loop has calls or asm statements, whether it has edges that jump out of the loop, or edges that jump within the loop.
basic_block hwloop_info_d::head |
First block in the loop. This is the one branched to by the loop_end insn.
basic_block hwloop_info_d::incoming_dest |
basic_block hwloop_info_d::incoming_src |
The ports currently using this infrastructure can typically handle two cases: all incoming edges have the same destination block, or all incoming edges have the same source block. These two members are set to the common source or destination we found, or NULL if different blocks were found. If both are NULL the loop can't be optimized.
rtx hwloop_info_d::iter_reg |
The iteration register.
bool hwloop_info_d::iter_reg_used |
True if there is an instruction other than the doloop_end which uses the iteration register.
bool hwloop_info_d::iter_reg_used_outside |
True if the iteration register lives past the doloop instruction.
bool hwloop_info_d::jumps_outof |
bool hwloop_info_d::jumps_within |
rtx hwloop_info_d::last_insn |
The last instruction in the tail.
int hwloop_info_d::length |
The length of the loop.
rtx hwloop_info_d::loop_end |
The loop_end insn.
int hwloop_info_d::loop_no |
loop number, for dumps
vec<hwloop_info> hwloop_info_d::loops |
Vector of inner loops within this loop. Includes loops of every nesting level.
hwloop_info hwloop_info_d::next |
Next loop in the graph.
HARD_REG_SET hwloop_info_d::regs_set_in_loop |
Hard registers set at any point in the loop, except for the loop counter register's set in the doloop_end instruction.
rtx hwloop_info_d::start_label |
The new label placed at the beginning of the loop.
basic_block hwloop_info_d::successor |
The successor block of the loop. This is the one the loop_end insn falls into.
basic_block hwloop_info_d::tail |
Last block in the loop (the one with the loop_end insn).
bool hwloop_info_d::visited |
True if we have visited this loop during the optimization phase.