GCC Middle and Back End API Reference
gimplify_reg_info Class Reference

#include <gimplify_reg_info.h>

Public Member Functions

 gimplify_reg_info (unsigned num_alternatives, unsigned num_outputs)
 ~gimplify_reg_info ()
void set_output (unsigned alt, int regno)
void set_input (unsigned alt, int regno)
int test_alt_output (unsigned alt, int regno) const
int test_alt_input (unsigned alt, int regno) const
void set_reg_asm_output (int regno)
int test_reg_asm_output (int regno) const
void set_reg_asm_input (int regno)
int test_reg_asm_input (int regno) const
void set_early_clobbered (unsigned alt, unsigned output, int regno)
bool test_early_clobbered_alt (unsigned alt, int regno) const
bool is_early_clobbered_in_any_output_unequal (unsigned operand, int regno) const
void set_clobbered (int regno)
bool is_clobbered (int regno) const

Data Fields

tree operand

Private Member Functions

int test (const HARD_REG_SET &regs, int regno) const

Private Attributes

HARD_REG_SETm_buf
HARD_REG_SETm_alt_output
HARD_REG_SETm_alt_input
HARD_REG_SETm_early_clobbered_alt
HARD_REG_SETm_early_clobbered_output
HARD_REG_SET m_reg_asm_output
HARD_REG_SET m_reg_asm_input
const unsigned m_num_alternatives
const unsigned m_num_outputs
HARD_REG_SET m_clobbered

Detailed Description

gimplify_reg_info is used during gimplification while walking over
operands and their corresponding constraints of asm statements in order to
detect errors.

m_alt_output is a mapping describing which registers are potentially used in
which alternative over all outputs.  Similarly for m_alt_input but over all
inputs.

m_early_clobbered_alt is a mapping describing which register is early
clobbered in which alternative over all outputs.

m_early_clobbered_output is the counter part to the prior one, i.e., it
is a mapping describing which register is early clobbered in which operand
over all alternatives.

m_reg_asm_output is the set of registers (including register pairs) used for
register asm output operands.

m_reg_asm_input similar as m_reg_asm_output but for inputs.   

Constructor & Destructor Documentation

◆ gimplify_reg_info()

gimplify_reg_info::gimplify_reg_info ( unsigned num_alternatives,
unsigned num_outputs )
inline

◆ ~gimplify_reg_info()

gimplify_reg_info::~gimplify_reg_info ( )
inline

References m_buf, and m_num_alternatives.

Member Function Documentation

◆ is_clobbered()

bool gimplify_reg_info::is_clobbered ( int regno) const
inline

◆ is_early_clobbered_in_any_output_unequal()

bool gimplify_reg_info::is_early_clobbered_in_any_output_unequal ( unsigned operand,
int regno ) const
inline

◆ set_clobbered()

void gimplify_reg_info::set_clobbered ( int regno)
inline

References m_clobbered, and SET_HARD_REG_BIT.

◆ set_early_clobbered()

void gimplify_reg_info::set_early_clobbered ( unsigned alt,
unsigned output,
int regno )
inline

◆ set_input()

void gimplify_reg_info::set_input ( unsigned alt,
int regno )
inline

◆ set_output()

void gimplify_reg_info::set_output ( unsigned alt,
int regno )
inline

◆ set_reg_asm_input()

void gimplify_reg_info::set_reg_asm_input ( int regno)
inline

◆ set_reg_asm_output()

void gimplify_reg_info::set_reg_asm_output ( int regno)
inline

◆ test()

int gimplify_reg_info::test ( const HARD_REG_SET & regs,
int regno ) const
inlineprivate

◆ test_alt_input()

int gimplify_reg_info::test_alt_input ( unsigned alt,
int regno ) const
inline

◆ test_alt_output()

int gimplify_reg_info::test_alt_output ( unsigned alt,
int regno ) const
inline

◆ test_early_clobbered_alt()

bool gimplify_reg_info::test_early_clobbered_alt ( unsigned alt,
int regno ) const
inline

◆ test_reg_asm_input()

int gimplify_reg_info::test_reg_asm_input ( int regno) const
inline

References m_reg_asm_input, and test().

◆ test_reg_asm_output()

int gimplify_reg_info::test_reg_asm_output ( int regno) const
inline

References m_reg_asm_output, and test().

Field Documentation

◆ m_alt_input

HARD_REG_SET* gimplify_reg_info::m_alt_input
private

◆ m_alt_output

HARD_REG_SET* gimplify_reg_info::m_alt_output
private

◆ m_buf

HARD_REG_SET* gimplify_reg_info::m_buf
private

◆ m_clobbered

HARD_REG_SET gimplify_reg_info::m_clobbered
private

◆ m_early_clobbered_alt

HARD_REG_SET* gimplify_reg_info::m_early_clobbered_alt
private

◆ m_early_clobbered_output

HARD_REG_SET* gimplify_reg_info::m_early_clobbered_output
private

◆ m_num_alternatives

const unsigned gimplify_reg_info::m_num_alternatives
private

◆ m_num_outputs

const unsigned gimplify_reg_info::m_num_outputs
private

◆ m_reg_asm_input

HARD_REG_SET gimplify_reg_info::m_reg_asm_input
private

◆ m_reg_asm_output

HARD_REG_SET gimplify_reg_info::m_reg_asm_output
private

◆ operand


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