GCC Middle and Back End API Reference
constraint_data Class Reference
Collaboration diagram for constraint_data:

Data Fields

class constraint_datanext_this_letter
file_location loc
unsigned int namelen
char name [1]
class constraint_datanext_textual
const char * name
const char * c_name
size_t namelen
const char * regclass
rtx exp
const char * filter
unsigned int is_register: 1
unsigned int is_const_int: 1
unsigned int is_const_dbl: 1
unsigned int is_extra: 1
unsigned int is_memory: 1
unsigned int is_special_memory: 1
unsigned int is_relaxed_memory: 1
unsigned int is_address: 1
unsigned int maybe_allows_reg: 1
unsigned int maybe_allows_mem: 1

Detailed Description

Constraints fall into two categories: register constraints (define_register_constraint), and others (define_constraint, define_memory_constraint, define_special_memory_constraint, define_relaxed_memory_constraint, define_address_constraint). We work out automatically which of the various old-style macros they correspond to, and produce appropriate code. They all go in the same hash table so we can verify that there are no duplicate names.
All data from one constraint definition.

Field Documentation

◆ c_name

◆ exp

rtx constraint_data::exp

◆ filter

const char* constraint_data::filter

Referenced by add_constraint().

◆ is_address

unsigned int constraint_data::is_address

Referenced by add_constraint().

◆ is_const_dbl

unsigned int constraint_data::is_const_dbl

Referenced by add_constraint().

◆ is_const_int

unsigned int constraint_data::is_const_int

Referenced by add_constraint().

◆ is_extra

unsigned int constraint_data::is_extra

◆ is_memory

unsigned int constraint_data::is_memory

Referenced by add_constraint().

◆ is_register

unsigned int constraint_data::is_register

◆ is_relaxed_memory

unsigned int constraint_data::is_relaxed_memory

Referenced by add_constraint().

◆ is_special_memory

unsigned int constraint_data::is_special_memory

Referenced by add_constraint().

◆ loc

file_location constraint_data::loc

◆ maybe_allows_mem

unsigned int constraint_data::maybe_allows_mem

◆ maybe_allows_reg

unsigned int constraint_data::maybe_allows_reg

◆ name [1/2]

char constraint_data::name[1]

◆ name [2/2]

const char* constraint_data::name

◆ namelen [1/2]

unsigned int constraint_data::namelen

◆ namelen [2/2]

size_t constraint_data::namelen

◆ next_textual

class constraint_data* constraint_data::next_textual

◆ next_this_letter

class constraint_data * constraint_data::next_this_letter

◆ regclass

const char* constraint_data::regclass

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