osprey/kg++fe/gnu/genattrtab.c File Reference

#include "hconfig.h"
#include "system.h"
#include "rtl.h"
#include "ggc.h"
#include "gensupport.h"
#include "obstack.h"
#include "errors.h"
#include "genattrtab.h"

Include dependency graph for genattrtab.c:

Go to the source code of this file.

Data Types

type  insn_def
type  insn_ent
type  attr_value
type  attr_desc
type  range
type  delay_desc
type  function_unit_op
type  function_unit
type  dimension
type  attr_hash

Defines

#define ATTR_IND_SIMPLIFIED_P(RTX)   (RTX_FLAG((RTX), unchanging))
#define ATTR_CURR_SIMPLIFIED_P(RTX)   (RTX_FLAG((RTX), in_struct))
#define ATTR_PERMANENT_P(RTX)   (RTX_FLAG((RTX), integrated))
#define ATTR_EQ_ATTR_P(RTX)   (RTX_FLAG((RTX), volatil))
#define MAX_DIGITS   (HOST_BITS_PER_INT * 3 / 10 + 3)
#define NULL_ATTR   (struct attr_desc *) NULL
#define MAX_ATTRS_INDEX   256
#define SIMPLIFY_TEST_EXP(EXP, INSN_CODE, INSN_INDEX)
#define SIMPLIFY_ALTERNATIVE(EXP)
#define oballoc(size)   obstack_alloc (hash_obstack, size)
#define RTL_HASH_SIZE   4093
#define RTL_HASH(RTL)   ((long) (RTL) & 0777777)
#define NUM_UNITOP_CUTOFF   20

Enumerations

enum  operator {
  PLUS_OP, MINUS_OP, POS_MINUS_OP, EQ_OP,
  OR_OP, ORX_OP, MAX_OP, MIN_OP,
  RANGE_OP, PLUS_OP, MINUS_OP, POS_MINUS_OP,
  EQ_OP, OR_OP, ORX_OP, MAX_OP,
  MIN_OP, RANGE_OP
}

Functions/Subroutines

static void attr_hash_add_rtx PARAMS ((int, rtx))
static void attr_hash_add_string PARAMS ((int, char *))
static rtx attr_rtx PARAMS ((enum rtx_code,...))
static rtx attr_rtx_1 PARAMS ((enum rtx_code, va_list))
static char *attr_string PARAMS ((const char *, int))
static rtx check_attr_value PARAMS ((rtx, struct attr_desc *))
static rtx
convert_set_attr_alternative 
PARAMS ((rtx, struct insn_def *))
static void check_defs PARAMS ((void))
static rtx make_canonical PARAMS ((struct attr_desc *, rtx))
static struct attr_value
*get_attr_value 
PARAMS ((rtx, struct attr_desc *, int))
static rtx copy_rtx_unchanging PARAMS ((rtx))
static rtx operate_exp PARAMS ((enum operator, rtx, rtx))
static rtx simplify_knowing PARAMS ((rtx, rtx))
static void fill_attr PARAMS ((struct attr_desc *))
static rtx substitute_address PARAMS ((rtx, rtx(*)(rtx), rtx(*)(rtx)))
static rtx simplify_cond PARAMS ((rtx, int, int))
static int
find_and_mark_used_attributes 
PARAMS ((rtx, rtx *, int *))
static void unmark_used_attributes PARAMS ((rtx, struct dimension *, int))
static int add_values_to_cover PARAMS ((struct dimension *))
static int increment_current_value PARAMS ((struct dimension *, int))
static int count_sub_rtxs PARAMS ((rtx, int))
static void remove_insn_ent PARAMS ((struct attr_value *, struct insn_ent *))
static rtx insert_right_side PARAMS ((enum rtx_code, rtx, rtx, int, int))
static rtx make_alternative_compare PARAMS ((int))
static int compute_alternative_mask PARAMS ((rtx, enum rtx_code))
static rtx evaluate_eq_attr PARAMS ((rtx, rtx, int, int))
static rtx simplify_and_tree PARAMS ((rtx, rtx *, int, int))
static int max_attr_value PARAMS ((rtx, int *))
static void write_attr_set PARAMS ((struct attr_desc *, int, rtx, const char *, const char *, rtx, int, int))
static void write_attr_case PARAMS ((struct attr_desc *, struct attr_value *, int, const char *, const char *, int, rtx))
static void write_unit_name PARAMS ((const char *, int, const char *))
static void write_attr_valueq PARAMS ((struct attr_desc *, const char *))
static void write_upcase PARAMS ((const char *))
static void write_complex_function PARAMS ((struct function_unit *, const char *, const char *))
static char *next_comma_elt PARAMS ((const char **))
static void extend_range PARAMS ((struct range *, int, int))
static rtx attr_eq PARAMS ((const char *, const char *))
static void attr_hash_add_rtx (int hashcode, rtx rtl)
static void attr_hash_add_string (int hashcode, char *str)
static rtx attr_rtx_1 (enum rtx_code code, va_list p)
static rtx attr_rtx VPARAMS ((enum rtx_code code,...))
char *attr_printf VPARAMS ((unsigned int len, const char *fmt,...))
static rtx attr_eq (char *name, char *value) const
static const char * attr_numeral (int n)
static char * attr_string (char *str, int len) const
static int attr_equal_p (rtx x, rtx y)
static rtx attr_copy_rtx (rtx orig)
rtx check_attr_test (rtx exp, int is_const, int lineno)
static rtx check_attr_value (rtx exp, struct attr_desc *attr)
static rtx convert_set_attr_alternative (rtx exp, struct insn_def *id)
static rtx convert_set_attr (rtx exp, struct insn_def *id)
static void check_defs ()
static rtx make_canonical (struct attr_desc *attr, rtx exp)
static rtx copy_boolean (rtx exp)
static struct attr_valueget_attr_value (rtx value, struct attr_desc *attr, int insn_code)
static void expand_delays ()
static rtx operate_exp (enum operator op, rtx left, rtx right)
static void expand_units ()
static rtx simplify_knowing (rtx exp, rtx known_true)
static rtx encode_units_mask (rtx x)
static void fill_attr (struct attr_desc *attr)
static rtx substitute_address (rtx exp, no_address_fn, address_fn)
static void make_length_attrs ()
static rtx identity_fn (rtx exp)
static rtx zero_fn (exp)
static rtx one_fn (exp)
static rtx max_fn (rtx exp)
static void write_length_unit_log ()
static rtx simplify_cond (rtx exp, int insn_code, int insn_index)
static void remove_insn_ent (struct attr_value *av, struct insn_ent *ie)
static void insert_insn_ent (struct attr_value *av, struct insn_ent *ie)
static rtx insert_right_side (enum rtx_code code, rtx exp, rtx term, int insn_code, int insn_index)
static int compute_alternative_mask (rtx exp, enum rtx_code code)
static rtx make_alternative_compare (int mask)
static rtx evaluate_eq_attr (rtx exp, rtx value, int insn_code, int insn_index)
static rtx simplify_and_tree (rtx exp, rtx *pterm, int insn_code, int insn_index)
static rtx simplify_or_tree (rtx exp, rtx *pterm, int insn_code, int insn_index)
static int attr_rtx_cost (rtx x)
static rtx simplify_test_exp_in_temp (rtx exp, int insn_code, int insn_index)
static rtx simplify_test_exp (rtx exp, int insn_code, int insn_index)
static void optimize_attrs ()
static rtx simplify_by_exploding (rtx exp)
static int find_and_mark_used_attributes (rtx exp, rtx *terms, int *nterms)
static void unmark_used_attributes (rtx list, struct dimension *space, int ndim)
static int add_values_to_cover (struct dimension *dim)
static int increment_current_value (struct dimension *space, int ndim)
static rtx test_for_current_value (struct dimension *space, int ndim)
static rtx simplify_with_current_value (rtx exp, struct dimension *space, int ndim)
static rtx simplify_with_current_value_aux (rtx exp)
static void clear_struct_flag (rtx x)
static int count_sub_rtxs (rtx x, int max)
static void gen_attr (rtx exp, int lineno)
static int count_alternatives (rtx exp)
static int compares_alternatives_p (rtx exp)
static int contained_in_p (rtx inner, rtx exp)
static void gen_insn (rtx exp, int lineno)
static void gen_delay (rtx def, int lineno)
static void gen_unit (rtx def, int lineno)
static void write_test_expr (rtx exp, int flags)
static int max_attr_value (rtx exp, int *unknownp)
static int or_attr_value (rtx exp, int *unknownp)
static void walk_attr_value (rtx exp)
static void write_attr_get (struct attr_desc *attr)
static rtx eliminate_known_true (rtx known_true, rtx exp, int insn_code, int insn_index)
static void write_attr_set (struct attr_desc *attr, int indent, rtx value, const char *prefix, const char *suffix, rtx known_true, int insn_code, int insn_index)
static void write_attr_case (struct attr_desc *attr, struct attr_value *av, int write_case_lines, const char *prefix, const char *suffix, int indent, rtx known_true)
static int write_expr_attr_cache (rtx p, struct attr_desc *attr)
static void write_toplevel_expr (rtx p)
static void write_unit_name (char *prefix, int num, const char *suffix) const
static void write_attr_valueq (struct attr_desc *attr, const char *s)
static void write_attr_value (struct attr_desc *attr, rtx value)
static void write_upcase (char *str) const
static void write_indent (int indent)
static void write_eligible_delay (char *kind) const
static void write_function_unit_info ()
static void write_complex_function (struct function_unit *unit, const char *name, const char *connection)
static char * next_comma_elt (char **pstr) const
static struct attr_descfind_attr (char *name, int create) const
void make_internal_attr (char *name, rtx value, int special) const
static struct attr_valuefind_most_used (struct attr_desc *attr)
static rtx find_single_value (struct attr_desc *attr)
rtx make_numeric_value (int n)
static void extend_range (struct range *range, int min, int max)
static rtx copy_rtx_unchanging (rtx orig)
static void write_const_num_delay_slots ()
int main PARAMS ((int, char **))
int main (int argc, char **argv)
const char * get_insn_name (code)

Variables

static struct obstack obstack1 obstack2
struct obstackhash_obstack = &obstack1
struct obstacktemp_obstack = &obstack2
static struct attr_descattrs [MAX_ATTRS_INDEX]
static struct insn_defdefs
static struct delay_descdelays
static struct function_unitunits
static int insn_code_number
static int insn_index_number
static int got_define_asm_attributes
static int must_extract
static int must_constrain
static int address_used
static int length_used
static int num_delays
static int have_annul_true
static int have_annul_false
static int num_units
static int num_unit_opclasses
static int num_insn_ents
int num_dfa_decls
static int * insn_n_alternatives
static int * insn_alternatives
static const char * current_alternative_string
static rtx true_rtx
static rtx false_rtx
static char * alternative_name
int reload_completed = 0
int optimize = 0
rtx global_rtl [GR_MAX]
rtx pic_offset_table_rtx
struct attr_hashattr_hash_table [RTL_HASH_SIZE]


Define Documentation

#define ATTR_CURR_SIMPLIFIED_P ( RTX   )     (RTX_FLAG((RTX), in_struct))

#define ATTR_EQ_ATTR_P ( RTX   )     (RTX_FLAG((RTX), volatil))

#define ATTR_IND_SIMPLIFIED_P ( RTX   )     (RTX_FLAG((RTX), unchanging))

#define ATTR_PERMANENT_P ( RTX   )     (RTX_FLAG((RTX), integrated))

Definition at line 104 of file genattrtab.c.

Referenced by attr_copy_rtx(), attr_equal_p(), attr_rtx_1(), and main().

#define MAX_ATTRS_INDEX   256

Definition at line 252 of file genattrtab.c.

Referenced by find_attr(), main(), optimize_attrs(), and write_toplevel_expr().

#define MAX_DIGITS   (HOST_BITS_PER_INT * 3 / 10 + 3)

Definition at line 129 of file genattrtab.c.

Referenced by encode_units_mask(), expand_delays(), expand_units(), and make_numeric_value().

#define NULL_ATTR   (struct attr_desc *) NULL

Definition at line 192 of file genattrtab.c.

Referenced by expand_units().

#define NUM_UNITOP_CUTOFF   20

Referenced by expand_units().

#define oballoc ( size   )     obstack_alloc (hash_obstack, size)

#define RTL_HASH ( RTL   )     ((long) (RTL) & 0777777)

Definition at line 501 of file genattrtab.c.

Referenced by attr_rtx_1().

#define RTL_HASH_SIZE   4093

Definition at line 496 of file genattrtab.c.

Referenced by attr_hash_add_rtx(), attr_hash_add_string(), attr_rtx_1(), and attr_string().

#define SIMPLIFY_ALTERNATIVE ( EXP   ) 

Value:

if (current_alternative_string        \
      && GET_CODE ((EXP)) == EQ_ATTR        \
      && XSTR ((EXP), 0) == alternative_name)     \
    (EXP) = (XSTR ((EXP), 1) == current_alternative_string  \
      ? true_rtx : false_rtx);

Definition at line 362 of file genattrtab.c.

Referenced by evaluate_eq_attr(), and simplify_test_exp().

#define SIMPLIFY_TEST_EXP ( EXP,
INSN_CODE,
INSN_INDEX   ) 

Value:

Definition at line 356 of file genattrtab.c.

Referenced by eliminate_known_true(), and simplify_test_exp().


Enumeration Type Documentation

enum operator

Enumerator:
PLUS_OP 
MINUS_OP 
POS_MINUS_OP 
EQ_OP 
OR_OP 
ORX_OP 
MAX_OP 
MIN_OP 
RANGE_OP 
PLUS_OP 
MINUS_OP 
POS_MINUS_OP 
EQ_OP 
OR_OP 
ORX_OP 
MAX_OP 
MIN_OP 
RANGE_OP 

Definition at line 319 of file genattrtab.c.


Function Documentation

static int add_values_to_cover ( struct dimension dim  )  [static]

static rtx attr_copy_rtx ( rtx  orig  )  [static]

static rtx attr_eq ( char *  name,
char *  value 
) const [static]

Definition at line 779 of file genattrtab.c.

References attr_rtx(), attr_string(), and strlen().

Referenced by add_values_to_cover(), check_attr_test(), and convert_set_attr_alternative().

static int attr_equal_p ( rtx  x,
rtx  y 
) [static]

static void attr_hash_add_rtx ( int  hashcode,
rtx  rtl 
) [static]

Definition at line 506 of file genattrtab.c.

References h, attr_hash::hashcode, attr_hash::next, obstack_alloc, attr_hash::rtl, RTL_HASH_SIZE, and attr_hash::u.

Referenced by attr_rtx_1().

static void attr_hash_add_string ( int  hashcode,
char *  str 
) [static]

static const char* attr_numeral ( int  n  )  [static]

Definition at line 787 of file genattrtab.c.

References make_numeric_value(), and XSTR.

Referenced by convert_set_attr_alternative(), and make_alternative_compare().

static rtx attr_rtx_1 ( enum rtx_code  code,
va_list  p 
) [static]

static int attr_rtx_cost ( rtx  x  )  [static]

Definition at line 3182 of file genattrtab.c.

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, strcmp(), XEXP, XSTR, XVECEXP, and XVECLEN.

Referenced by attr_rtx_cost(), and simplify_test_exp().

static char* attr_string ( char *  str,
int  len 
) const [static]

rtx check_attr_test ( rtx  exp,
int  is_const,
int  lineno 
)

static rtx check_attr_value ( rtx  exp,
struct attr_desc attr 
) [static]

static void check_defs ( void   )  [static]

static void clear_struct_flag ( rtx  x  )  [static]

static int compares_alternatives_p ( rtx  exp  )  [static]

static int compute_alternative_mask ( rtx  exp,
enum rtx_code  code 
) [static]

Definition at line 2814 of file genattrtab.c.

References alternative_name, AND, atoi(), GET_CODE, NOT, XEXP, and XSTR.

Referenced by compute_alternative_mask(), and simplify_test_exp().

static int contained_in_p ( rtx  inner,
rtx  exp 
) [static]

Definition at line 4383 of file genattrtab.c.

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, rtx_equal_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by contained_in_p(), and write_complex_function().

static rtx convert_set_attr ( rtx  exp,
struct insn_def id 
) [static]

static rtx convert_set_attr_alternative ( rtx  exp,
struct insn_def id 
) [static]

static rtx copy_boolean ( rtx  exp  )  [static]

Definition at line 1536 of file genattrtab.c.

References AND, attr_rtx(), GET_CODE, and XEXP.

Referenced by copy_boolean(), and make_canonical().

static rtx copy_rtx_unchanging ( rtx  orig  )  [static]

static int count_alternatives ( rtx  exp  )  [static]

Definition at line 4313 of file genattrtab.c.

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, n, n_comma_elts(), NULL, XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.

Referenced by count_alternatives(), and gen_insn().

static int count_sub_rtxs ( rtx  x,
int  max 
) [static]

Definition at line 4183 of file genattrtab.c.

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, PC, REG, XEXP, XVECEXP, and XVECLEN.

Referenced by count_sub_rtxs(), and optimize_attrs().

static rtx eliminate_known_true ( rtx  known_true,
rtx  exp,
int  insn_code,
int  insn_index 
) [static]

Definition at line 5093 of file genattrtab.c.

References AND, GET_CODE, simplify_and_tree(), SIMPLIFY_TEST_EXP, and XEXP.

Referenced by eliminate_known_true(), and write_attr_set().

static rtx encode_units_mask ( rtx  x  )  [static]

static rtx evaluate_eq_attr ( rtx  exp,
rtx  value,
int  insn_code,
int  insn_index 
) [static]

static void expand_delays ( void   )  [static]

static void expand_units (  )  [static]

static void extend_range ( struct range range,
int  min,
int  max 
) [static]

Definition at line 5971 of file genattrtab.c.

static void fill_attr ( struct attr_desc attr  )  [static]

static int find_and_mark_used_attributes ( rtx  exp,
rtx terms,
int *  nterms 
) [static]

Definition at line 3832 of file genattrtab.c.

References AND, ATTR_EQ_ATTR_P, COND, GET_CODE, NOT, rtx_alloc, XEXP, XVECEXP, and XVECLEN.

Referenced by find_and_mark_used_attributes(), and simplify_by_exploding().

static struct attr_desc* find_attr ( char *  name,
int  create 
) const [static, read]

static struct attr_value* find_most_used ( struct attr_desc attr  )  [static, read]

static rtx find_single_value ( struct attr_desc attr  )  [static]

Definition at line 5926 of file genattrtab.c.

References attr_value::next, NULL, attr_value::num_insns, and attr_value::value.

Referenced by write_complex_function().

static void gen_attr ( rtx  exp,
int  lineno 
) [static]

static void gen_delay ( rtx  def,
int  lineno 
) [static]

static void gen_insn ( rtx  exp,
int  lineno 
) [static]

static void gen_unit ( rtx  def,
int  lineno 
) [static]

static struct attr_value* get_attr_value ( rtx  value,
struct attr_desc attr,
int  insn_code 
) [static, read]

const char* get_insn_name ( code   ) 

Definition at line 6295 of file genattrtab.c.

References NULL.

static rtx identity_fn ( rtx  exp  )  [static]

Definition at line 2518 of file genattrtab.c.

Referenced by make_length_attrs().

static int increment_current_value ( struct dimension space,
int  ndim 
) [static]

Definition at line 3973 of file genattrtab.c.

References XEXP.

Referenced by simplify_by_exploding().

static void insert_insn_ent ( struct attr_value av,
struct insn_ent ie 
) [static]

Definition at line 2725 of file genattrtab.c.

References insn_ent::insn_code, insn_ent::next, and num_insn_ents.

Referenced by fill_attr(), make_length_attrs(), and optimize_attrs().

static rtx insert_right_side ( enum rtx_code  code,
rtx  exp,
rtx  term,
int  insn_code,
int  insn_index 
) [static]

int main ( int argc  ,
char **  argv 
)

static rtx make_alternative_compare ( int  mask  )  [static]

Definition at line 2844 of file genattrtab.c.

References alternative_name, ATTR_IND_SIMPLIFIED_P, attr_numeral(), and attr_rtx().

Referenced by simplify_test_exp().

static rtx make_canonical ( struct attr_desc attr,
rtx  exp 
) [static]

void make_internal_attr ( char *  name,
rtx  value,
int  special 
) const

static void make_length_attrs ( void   )  [static]

static rtx make_numeric_value ( int  n  ) 

static int max_attr_value ( rtx  exp,
int *  unknownp 
) [static]

Definition at line 4843 of file genattrtab.c.

References atoi(), COND, GET_CODE, INT_MAX, n, XEXP, XSTR, XVECEXP, and XVECLEN.

Referenced by expand_units(), max_attr_value(), max_fn(), and simplify_knowing().

static rtx max_fn ( rtx  exp  )  [static]

Definition at line 2539 of file genattrtab.c.

References make_numeric_value(), max_attr_value(), and unknown.

Referenced by make_length_attrs().

static char* next_comma_elt ( char **  pstr  )  const [static]

Definition at line 5825 of file genattrtab.c.

References attr_string(), NULL, scan_comma_elt(), and start.

Referenced by check_attr_test(), convert_set_attr(), and gen_attr().

static rtx one_fn ( exp   )  [static]

Definition at line 2532 of file genattrtab.c.

References make_numeric_value().

Referenced by make_length_attrs().

static rtx operate_exp ( enum operator  op,
rtx  left,
rtx  right 
) [static]

static void optimize_attrs ( void   )  [static]

static int or_attr_value ( rtx  exp,
int *  unknownp 
) [static]

Definition at line 4887 of file genattrtab.c.

References atoi(), COND, GET_CODE, XEXP, XSTR, XVECEXP, and XVECLEN.

Referenced by or_attr_value(), and write_length_unit_log().

int main PARAMS ( (int, char **)   ) 

static rtx attr_eq PARAMS ( (const char *, const char *)   )  [static]

static void extend_range PARAMS ( (struct range *, int, int)   )  [static]

static char* next_comma_elt PARAMS ( (const char **)   )  [static]

static void write_complex_function PARAMS ( (struct function_unit *, const char *, const char *)   )  [static]

static void write_upcase PARAMS ( (const char *)   )  [static]

Definition at line 635 of file mips-tfile.c.

static void write_attr_valueq PARAMS ( (struct attr_desc *, const char *)   )  [static]

static void write_unit_name PARAMS ( (const char *, int, const char *)   )  [static]

static void write_attr_case PARAMS ( (struct attr_desc *, struct attr_value *, int, const char *, const char *, int, rtx  )  [static]

static void write_attr_set PARAMS ( (struct attr_desc *, int, rtx, const char *, const char *, rtx, int, int)   )  [static]

static int max_attr_value PARAMS ( (rtx, int *)   )  [static]

static rtx simplify_and_tree PARAMS ( (rtx, rtx *, int, int)   )  [static]

static rtx evaluate_eq_attr PARAMS ( (rtx, rtx, int, int)   )  [static]

static int compute_alternative_mask PARAMS ( (rtx, enum rtx_code  )  [static]

static rtx make_alternative_compare PARAMS ( (int)   )  [static]

static rtx insert_right_side PARAMS ( (enum rtx_code, rtx, rtx, int, int)   )  [static]

static void remove_insn_ent PARAMS ( (struct attr_value *, struct insn_ent *)   )  [static]

static int count_sub_rtxs PARAMS ( (rtx, int)   )  [static]

static int increment_current_value PARAMS ( (struct dimension *, int)   )  [static]

static int add_values_to_cover PARAMS ( (struct dimension *)   )  [static]

static void unmark_used_attributes PARAMS ( (rtx, struct dimension *, int)   )  [static]

static int find_and_mark_used_attributes PARAMS ( (rtx, rtx *, int *)   )  [static]

static rtx simplify_cond PARAMS ( (rtx, int, int)   )  [static]

static rtx substitute_address PARAMS ( (rtx, rtx(*)(rtx), rtx(*)(rtx))   )  [static]

static void fill_attr PARAMS ( (struct attr_desc *)   )  [static]

static rtx simplify_knowing PARAMS ( (rtx, rtx  )  [static]

static rtx operate_exp PARAMS ( (enum operator, rtx, rtx  )  [static]

static rtx copy_rtx_unchanging PARAMS ( (rtx  )  [static]

static struct attr_value* get_attr_value PARAMS ( (rtx, struct attr_desc *, int)   )  [static, read]

static rtx make_canonical PARAMS ( (struct attr_desc *, rtx  )  [static]

static void check_defs PARAMS ( (void  )  [static, read]

Definition at line 77 of file cplus-dem.c.

static rtx convert_set_attr_alternative PARAMS ( (rtx, struct insn_def *)   )  [static]

static rtx check_attr_value PARAMS ( (rtx, struct attr_desc *)   )  [static]

static char* attr_string PARAMS ( (const char *, int)   )  [static]

static rtx attr_rtx_1 PARAMS ( (enum rtx_code, va_list  )  [static]

static rtx attr_rtx PARAMS ( (enum rtx_code,...)   )  [static]

static void attr_hash_add_string PARAMS ( (int, char *)   )  [static]

static void attr_hash_add_rtx PARAMS ( (int, rtx  )  [static]

static void remove_insn_ent ( struct attr_value av,
struct insn_ent ie 
) [static]

Definition at line 2700 of file genattrtab.c.

References insn_ent::insn_code, insn_ent::next, and num_insn_ents.

Referenced by optimize_attrs().

static rtx simplify_and_tree ( rtx  exp,
rtx pterm,
int  insn_code,
int  insn_index 
) [static]

static rtx simplify_by_exploding ( rtx  exp  )  [static]

static rtx simplify_cond ( rtx  exp,
int  insn_code,
int  insn_index 
) [static]

static rtx simplify_knowing ( rtx  exp,
rtx  known_true 
) [static]

static rtx simplify_or_tree ( rtx  exp,
rtx pterm,
int  insn_code,
int  insn_index 
) [static]

static rtx simplify_test_exp ( rtx  exp,
int  insn_code,
int  insn_index 
) [static]

static rtx simplify_test_exp_in_temp ( rtx  exp,
int  insn_code,
int  insn_index 
) [static]

static rtx simplify_with_current_value ( rtx  exp,
struct dimension space,
int  ndim 
) [static]

Definition at line 4013 of file genattrtab.c.

References ATTR_EQ_ATTR_P, GET_CODE, simplify_with_current_value_aux(), x, and XEXP.

Referenced by simplify_by_exploding().

static rtx simplify_with_current_value_aux ( rtx  exp  )  [static]

static rtx substitute_address ( rtx  exp,
no_address_fn  ,
address_fn   
) [static]

static rtx test_for_current_value ( struct dimension space,
int  ndim 
) [static]

Definition at line 3993 of file genattrtab.c.

References AND, insert_right_side(), true_rtx, and XEXP.

Referenced by simplify_by_exploding().

static void unmark_used_attributes ( rtx  list,
struct dimension space,
int  ndim 
) [static]

Definition at line 3885 of file genattrtab.c.

References ATTR_EQ_ATTR_P, GET_CODE, values, and XEXP.

Referenced by simplify_by_exploding(), and unmark_used_attributes().

char* attr_printf VPARAMS ( (unsigned int len, const char *fmt,...)   ) 

Definition at line 751 of file genattrtab.c.

References abort, attr_string(), p, str, strlen(), VA_CLOSE, va_end, VA_FIXEDARG, VA_OPEN, VA_START, and vsprintf().

static rtx attr_rtx VPARAMS ( (enum rtx_code code,...)   )  [static]

Definition at line 724 of file genattrtab.c.

References attr_rtx_1(), p, result, VA_CLOSE, va_end, VA_FIXEDARG, VA_OPEN, and VA_START.

static void walk_attr_value ( rtx  exp  )  [static]

static void write_attr_case ( struct attr_desc attr,
struct attr_value av,
int  write_case_lines,
const char *  prefix,
const char *  suffix,
int  indent,
rtx  known_true 
) [static]

static void write_attr_get ( struct attr_desc attr  )  [static]

static void write_attr_set ( struct attr_desc attr,
int  indent,
rtx  value,
const char *  prefix,
const char *  suffix,
rtx  known_true,
int  insn_code,
int  insn_index 
) [static]

static void write_attr_value ( struct attr_desc attr,
rtx  value 
) [static]

static void write_attr_valueq ( struct attr_desc attr,
const char *  s 
) [static]

static void write_complex_function ( struct function_unit unit,
const char *  name,
const char *  connection 
) [static]

static void write_const_num_delay_slots ( void   )  [static]

static void write_eligible_delay ( char *  kind  )  const [static]

static int write_expr_attr_cache ( rtx  p,
struct attr_desc attr 
) [static]

static void write_function_unit_info (  )  [static]

static void write_indent ( int  indent  )  [static]

Definition at line 5509 of file genattrtab.c.

References printf().

Referenced by write_attr_case(), write_attr_set(), and write_insn_cases().

static void write_length_unit_log ( void   )  [static]

static void write_test_expr ( rtx  exp,
int  flags 
) [static]

static void write_toplevel_expr ( rtx  p  )  [static]

static void write_unit_name ( char *  prefix,
int  num,
const char *  suffix 
) const [static]

Definition at line 5374 of file genattrtab.c.

References function_unit::name, function_unit::next, function_unit::num, and printf().

Referenced by write_attr_valueq().

static void write_upcase ( char *  str  )  const [static]

Definition at line 5497 of file genattrtab.c.

References putchar(), and TOUPPER.

static rtx zero_fn ( exp   )  [static]

Definition at line 2525 of file genattrtab.c.

References make_numeric_value().

Referenced by make_length_attrs().


Variable Documentation

int address_used [static]

char* alternative_name [static]

struct attr_hash* attr_hash_table[RTL_HASH_SIZE]

Definition at line 497 of file genattrtab.c.

struct attr_desc* attrs[MAX_ATTRS_INDEX] [static]

Definition at line 253 of file genattrtab.c.

const char* current_alternative_string [static]

Definition at line 334 of file genattrtab.c.

Referenced by evaluate_eq_attr(), and simplify_test_exp().

struct insn_def* defs [static]

Definition at line 254 of file genattrtab.c.

Definition at line 255 of file genattrtab.c.

rtx false_rtx [static]

rtx global_rtl[GR_MAX]

Definition at line 372 of file genattrtab.c.

Definition at line 305 of file genattrtab.c.

Referenced by gen_insn(), and main().

struct obstack* hash_obstack = &obstack1

Definition at line 125 of file genattrtab.c.

int have_annul_false [static]

Definition at line 311 of file genattrtab.c.

Referenced by expand_delays(), gen_delay(), and main().

int have_annul_true [static]

Definition at line 311 of file genattrtab.c.

Referenced by expand_delays(), gen_delay(), and main().

int* insn_alternatives [static]

Definition at line 328 of file genattrtab.c.

Referenced by get_attr_value(), main(), and simplify_test_exp().

int insn_code_number [static]

int insn_index_number [static]

Definition at line 304 of file genattrtab.c.

Referenced by gen_insn(), gen_split(), and main().

int* insn_n_alternatives [static]

Definition at line 323 of file genattrtab.c.

Referenced by main(), and optimize_attrs().

int length_used [static]

Definition at line 309 of file genattrtab.c.

Referenced by walk_attr_value(), and write_const_num_delay_slots().

int must_constrain [static]

Definition at line 307 of file genattrtab.c.

Referenced by walk_attr_value(), and write_attr_case().

int must_extract [static]

Definition at line 306 of file genattrtab.c.

Referenced by walk_attr_value(), and write_attr_case().

int num_delays [static]

Definition at line 310 of file genattrtab.c.

Referenced by expand_delays(), gen_delay(), main(), and write_eligible_delay().

int num_insn_ents [static]

Definition at line 313 of file genattrtab.c.

Referenced by insert_insn_ent(), optimize_attrs(), and remove_insn_ent().

int num_unit_opclasses [static]

Definition at line 312 of file genattrtab.c.

Referenced by expand_units(), and gen_unit().

int num_units [static]

Definition at line 312 of file genattrtab.c.

Referenced by expand_units(), gen_unit(), main(), and write_function_unit_info().

struct obstack obstack1 obstack2 [static]

Definition at line 124 of file genattrtab.c.

int optimize = 0

Definition at line 352 of file genattrtab.c.

Definition at line 373 of file genattrtab.c.

Referenced by alpha_gp_save_rtx(), alpha_legitimize_address(), arm_finalize_pic(), arm_load_pic_register(), bfin_expand_call(), bfin_expand_prologue(), bfin_load_pic_reg(), canon_hash(), cris_expand_epilogue(), cris_expand_pic_call_address(), cris_expand_prologue(), cris_initial_frame_pointer_offset(), cris_simple_epilogue(), emit_pic_helper(), emit_pic_move(), find_base_term(), find_lo_sum_using_gp(), force_operand(), gen_builtin_setjmp_receiver(), gen_load_gprel64(), gen_load_symptr(), gen_tablejump(), gen_tls_global_dynamic_32(), gen_tls_local_dynamic_base_32(), get_jump_table_offset(), hash_rtx(), hppa_expand_prologue(), hppa_profile_hook(), ia64_expand_call(), ia64_expand_load_address(), ia64_expand_prologue(), ia64_reload_gp(), ia64_split_call(), ix86_expand_call(), ix86_expand_prologue(), ix86_find_base_term(), ix86_output_function_epilogue(), ix86_save_reg(), legitimate_address_p(), legitimize_address(), legitimize_pic_address(), legitimize_tls_address(), load_pic_register(), loop_invariant_p(), m32r_legitimize_pic_address(), m32r_load_pic_register(), m88k_expand_prologue(), machopic_indirect_data_reference(), machopic_legitimize_pic_address(), maybe_get_pool_constant(), mips_expand_call(), mips_expand_prologue(), mips_legitimize_tls_address(), mips_load_call_address(), mips_output_function_epilogue(), mips_output_mi_thunk(), mips_restore_gp(), mips_rewrite_small_data_1(), nonzero_address_p(), print_operand_address(), rs6000_got_register(), rs6000_legitimize_reload_address(), rtx_addr_can_trap_p(), rtx_addr_can_trap_p_1(), rtx_unstable_p(), rtx_varies_p(), s390_emit_call(), s390_emit_prologue(), scan_loop(), skip_pic_restore(), sparc_tls_got(), and split_small_symbolic_operand_1().

Definition at line 347 of file genattrtab.c.

Definition at line 126 of file genattrtab.c.

rtx true_rtx [static]


Generated on Wed Apr 8 15:33:28 2009 for Open64 by  doxygen 1.5.6