GCC Middle and Back End API Reference
du_head Struct Reference

#include <regrename.h>

Collaboration diagram for du_head:

Data Fields

struct du_headnext_chain
struct du_chainfirst
struct du_chainlast
unsigned regno
int nregs
unsigned id
bitmap_head conflicts
HARD_REG_SET hard_conflicts
unsigned int need_caller_save_reg:1
unsigned int cannot_rename:1

Detailed Description

This file contains definitions for the register renamer. Copyright (C) 2011-2013 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 keep linked lists of DU_HEAD structures, each of which describes a chain of occurrences of a reg.


Field Documentation

unsigned int du_head::cannot_rename

Nonzero if the register is used in a way that prevents renaming, such as the SET_DEST of a CALL_INSN or an asm operand that used to be a hard register.

Referenced by note_sets_clobbers(), record_operand_use(), and set_incoming_from_chain().

bitmap_head du_head::conflicts

A bitmap to record conflicts with other chains.

Referenced by free_chain_data(), record_operand_use(), and set_incoming_from_chain().

struct du_chain* du_head::first

The first and last elements of this chain.

Referenced by merge_overlapping_regs(), regrename_chain_from_id(), and set_incoming_from_chain().

HARD_REG_SET du_head::hard_conflicts

Conflicts with untracked hard registers.

Referenced by set_incoming_from_chain().

unsigned du_head::id

A unique id to be used as an index into the conflicts bitmaps.

Referenced by note_sets_clobbers(), record_operand_use(), and set_incoming_from_chain().

struct du_chain * du_head::last

Referenced by set_incoming_from_chain().

unsigned int du_head::need_caller_save_reg

Nonzero if the chain crosses a call.

Referenced by record_operand_use(), and set_incoming_from_chain().

struct du_head* du_head::next_chain

The next chain.

Referenced by free_chain_data(), record_operand_use(), and verify_reg_tracked().

int du_head::nregs
unsigned du_head::regno

Describes the register being tracked.

Referenced by note_sets_clobbers(), record_operand_use(), and regrename_chain_from_id().


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