GCC Middle and Back End API Reference
ira_allocno_copy Struct Reference

#include <ira-int.h>

Collaboration diagram for ira_allocno_copy:

Data Fields

int num
ira_allocno_t first
ira_allocno_t second
int freq
bool constraint_p
rtx insn
ira_copy_t prev_first_allocno_copy
ira_copy_t next_first_allocno_copy
ira_copy_t prev_second_allocno_copy
ira_copy_t next_second_allocno_copy
ira_loop_tree_node_t loop_tree_node

Detailed Description

The following structure represents a copy of two allocnos. The copies represent move insns or potential move insns usually because of two operand insn constraints. To remove register shuffle, we also create copies between allocno which is output of an insn and allocno becoming dead in the insn.


Field Documentation

bool ira_allocno_copy::constraint_p

Referenced by add_copies(), and ira_create_copy().

ira_allocno_t ira_allocno_copy::first

Allocnos connected by the copy. The first allocno should have smaller order number than the second one.

Referenced by add_copies(), ira_create_copy(), ira_debug_allocno_prefs(), ira_mark_memory_move_deletion(), swap_allocno_copy_ends_if_necessary(), and update_costs_from_allocno().

int ira_allocno_copy::freq
rtx ira_allocno_copy::insn

It is a move insn which is an origin of the copy. The member value for the copy representing two operand insn constraints or for the copy created to remove register shuffle is NULL. In last case the copy frequency is smaller than the corresponding insn execution frequency.

Referenced by add_copies(), and ira_create_copy().

ira_loop_tree_node_t ira_allocno_copy::loop_tree_node

Region from which given copy is originated.

Referenced by add_copies().

ira_copy_t ira_allocno_copy::next_first_allocno_copy
int ira_allocno_copy::num

The unique order number of the copy node starting with 0.

Referenced by ira_create_copy(), and swap_allocno_copy_ends_if_necessary().

ira_copy_t ira_allocno_copy::prev_first_allocno_copy

All copies with the same allocno as FIRST are linked by the two following members.

ira_copy_t ira_allocno_copy::prev_second_allocno_copy

All copies with the same allocno as SECOND are linked by the two following members.


The documentation for this struct was generated from the following file: