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

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_value * | get_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_desc * | find_attr (char *name, int create) const |
| void | make_internal_attr (char *name, rtx value, int special) const |
| static struct attr_value * | find_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 obstack * | hash_obstack = &obstack1 |
| struct obstack * | temp_obstack = &obstack2 |
| static struct attr_desc * | attrs [MAX_ATTRS_INDEX] |
| static struct insn_def * | defs |
| static struct delay_desc * | delays |
| static struct function_unit * | units |
| 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_hash * | attr_hash_table [RTL_HASH_SIZE] |
| #define ATTR_CURR_SIMPLIFIED_P | ( | RTX | ) | (RTX_FLAG((RTX), in_struct)) |
Definition at line 105 of file genattrtab.c.
| #define ATTR_EQ_ATTR_P | ( | RTX | ) | (RTX_FLAG((RTX), volatil)) |
Definition at line 107 of file genattrtab.c.
| #define ATTR_IND_SIMPLIFIED_P | ( | RTX | ) | (RTX_FLAG((RTX), unchanging)) |
Definition at line 104 of file genattrtab.c.
| #define ATTR_PERMANENT_P | ( | RTX | ) | (RTX_FLAG((RTX), integrated)) |
Definition at line 106 of file genattrtab.c.
| #define MAX_ATTRS_INDEX 256 |
Definition at line 254 of file genattrtab.c.
| #define MAX_DIGITS (HOST_BITS_PER_INT * 3 / 10 + 3) |
Definition at line 131 of file genattrtab.c.
Definition at line 194 of file genattrtab.c.
| #define NUM_UNITOP_CUTOFF 20 |
| #define oballoc | ( | size | ) | obstack_alloc (hash_obstack, size) |
Definition at line 472 of file genattrtab.c.
| #define RTL_HASH | ( | RTL | ) | ((long) (RTL) & 0777777) |
Definition at line 503 of file genattrtab.c.
| #define RTL_HASH_SIZE 4093 |
Definition at line 498 of file genattrtab.c.
| #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 364 of file genattrtab.c.
| #define SIMPLIFY_TEST_EXP | ( | EXP, | |||
| INSN_CODE, | |||||
| INSN_INDEX | ) |
Value:
(ATTR_IND_SIMPLIFIED_P (EXP) || ATTR_CURR_SIMPLIFIED_P (EXP) ? (EXP) \ : simplify_test_exp (EXP, INSN_CODE, INSN_INDEX))
Definition at line 358 of file genattrtab.c.
| 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 |
Definition at line 321 of file genattrtab.c.
Definition at line 3910 of file genattrtab.c.
References abort, attr_eq(), ATTR_EQ_ATTR_P, attr_rtx(), false_rtx, GET_CODE, insert_right_side(), attr_value::next, NOT, prev, rtx_alloc, attr_value::value, XEXP, and XSTR.
Definition at line 847 of file genattrtab.c.
References abort, attr_copy_rtx(), ATTR_CURR_SIMPLIFIED_P, ATTR_EQ_ATTR_P, ATTR_IND_SIMPLIFIED_P, ATTR_PERMANENT_P, copy, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, NULL, PC, PUT_MODE, REG, rtvec_alloc(), rtx_alloc, RTX_CODE, XEXP, XINT, XSTR, XVEC, XVECEXP, XVECLEN, and XWINT.
| static rtx attr_eq | ( | char * | name, | |
| char * | value | |||
| ) | const [static] |
Definition at line 508 of file genattrtab.c.
References h, attr_hash::hashcode, attr_hash::next, obstack_alloc, attr_hash::rtl, RTL_HASH_SIZE, and attr_hash::u.
| static void attr_hash_add_string | ( | int | hashcode, | |
| char * | str | |||
| ) | [static] |
Definition at line 525 of file genattrtab.c.
References h, attr_hash::hashcode, attr_hash::next, obstack_alloc, RTL_HASH_SIZE, attr_hash::str, and attr_hash::u.
| static const char* attr_numeral | ( | int | n | ) | [static] |
Definition at line 550 of file genattrtab.c.
References abort, attr_hash_add_rtx(), ATTR_PERMANENT_P, attr_string(), false_rtx, GET_CODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, h, attr_hash::hashcode, HOST_WIDE_INT, i, if(), attr_hash::next, NULL_RTX, attr_hash::rtl, RTL_HASH, RTL_HASH_SIZE, rtl_obstack, rtx_alloc, strlen(), true_rtx, attr_hash::u, va_arg, XEXP, XINT, XSTR, XVEC, and XWINT.
| static int attr_rtx_cost | ( | rtx | x | ) | [static] |
Definition at line 3184 of file genattrtab.c.
References attr_rtx_cost(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, strcmp(), XEXP, XSTR, XVECEXP, and XVECLEN.
| static char* attr_string | ( | char * | str, | |
| int | len | |||
| ) | const [static] |
Definition at line 799 of file genattrtab.c.
References attr_hash_add_string(), h, attr_hash::hashcode, i, memcpy, attr_hash::next, obstack_alloc, RTL_HASH_SIZE, attr_hash::str, strncmp(), attr_hash::u, and unsigned.
Definition at line 944 of file genattrtab.c.
References alternative_name, AND, attr_eq(), ATTR_IND_SIMPLIFIED_P, attr_rtx(), check_attr_test(), EQ, false_rtx, fatal(), find_attr(), attr_desc::first_value, GE, GET_CODE, GET_RTX_NAME, GT, insert_right_side(), attr_desc::is_const, attr_desc::is_numeric, ISDIGIT, LE, LT, n_comma_elts(), NE, attr_value::next, next_comma_elt(), NOT, NULL, p, strcmp(), true_rtx, attr_value::value, XEXP, XSTR, and XWINT.
Definition at line 1093 of file genattrtab.c.
References AND, attr_rtx(), check_attr_test(), check_attr_value(), COND, DIV, find_attr(), attr_desc::first_value, GET_CODE, GET_RTX_NAME, have_error, i, INTVAL, attr_desc::is_const, attr_desc::is_numeric, ISDIGIT, attr_desc::lineno, message_with_line(), MINUS, MOD, attr_desc::name, attr_desc::negative_ok, attr_value::next, NULL, p, PLUS, strcmp(), attr_value::value, XEXP, XSTR, XVECEXP, and XVECLEN.
Definition at line 1335 of file genattrtab.c.
References check_attr_value(), convert_set_attr(), convert_set_attr_alternative(), insn_def::def, find_attr(), GET_CODE, GET_RTX_NAME, have_error, i, insn_def::lineno, message_with_line(), insn_def::next, NULL, NULL_RTX, SET, insn_def::vec_idx, XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
Definition at line 4127 of file genattrtab.c.
References ATTR_CURR_SIMPLIFIED_P, ATTR_IND_SIMPLIFIED_P, clear_struct_flag(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, PC, REG, XEXP, XVECEXP, and XVECLEN.
| static int compares_alternatives_p | ( | rtx | exp | ) | [static] |
Definition at line 4353 of file genattrtab.c.
References alternative_name, compares_alternatives_p(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, XEXP, XSTR, XVECEXP, and XVECLEN.
Definition at line 2816 of file genattrtab.c.
References alternative_name, AND, atoi(), compute_alternative_mask(), GET_CODE, NOT, XEXP, and XSTR.
Definition at line 4385 of file genattrtab.c.
References contained_in_p(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, rtx_equal_p(), XEXP, XVECEXP, and XVECLEN.
Definition at line 1301 of file genattrtab.c.
References attr_rtx(), convert_set_attr_alternative(), n, n_comma_elts(), next_comma_elt(), NULL, p, rtvec_alloc(), rtx_alloc, SET, XSTR, XVEC, and XVECEXP.
Definition at line 1262 of file genattrtab.c.
References alternative_name, attr_eq(), attr_numeral(), attr_rtx(), COND, have_error, i, insn_def::lineno, message_with_line(), NULL_RTX, p, rtvec_alloc(), rtx_alloc, SET, XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
Definition at line 1538 of file genattrtab.c.
References AND, attr_rtx(), copy_boolean(), GET_CODE, and XEXP.
Definition at line 5985 of file genattrtab.c.
References ATTR_CURR_SIMPLIFIED_P, ATTR_IND_SIMPLIFIED_P, copy, GET_CODE, GET_MODE, GET_RTX_LENGTH, memcpy, PUT_MODE, rtx_alloc, RTX_CODE, and XEXP.
| static int count_alternatives | ( | rtx | exp | ) | [static] |
Definition at line 4315 of file genattrtab.c.
References count_alternatives(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, n, n_comma_elts(), NULL, XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
| static int count_sub_rtxs | ( | rtx | x, | |
| int | max | |||
| ) | [static] |
Definition at line 4185 of file genattrtab.c.
References count_sub_rtxs(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, PC, REG, XEXP, XVECEXP, and XVECLEN.
Definition at line 5095 of file genattrtab.c.
References AND, eliminate_known_true(), GET_CODE, simplify_and_tree(), SIMPLIFY_TEST_EXP, and XEXP.
Definition at line 2278 of file genattrtab.c.
References abort, atoi(), attr_printf(), attr_rtx(), encode_units_mask(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, MAX_DIGITS, PC, REG, XEXP, XSTR, XVECEXP, and XVECLEN.
Definition at line 2872 of file genattrtab.c.
References abort, address_used, AND, ATTR_IND_SIMPLIFIED_P, attr_rtx(), attr_string(), clear_struct_flag(), COND, copy_rtx_unchanging(), current_alternative_string, EQ, evaluate_eq_attr(), false_rtx, GET_CODE, insert_right_side(), NOT, SIMPLIFY_ALTERNATIVE, simplify_test_exp_in_temp(), strcat(), strcmp(), strcpy, strlen(), TOUPPER, true_rtx, walk_attr_value(), XEXP, XSTR, XVECEXP, and XVECLEN.
Definition at line 1606 of file genattrtab.c.
References attr_printf(), attr_rtx(), COND, delay_desc::def, delay(), false_rtx, have_annul_false, have_annul_true, make_internal_attr(), make_numeric_value(), MAX_DIGITS, delay_desc::next, delay_desc::num, num_delays, rtvec_alloc(), rtx_alloc, XEXP, XVEC, XVECEXP, and XVECLEN.
| static void expand_units | ( | ) | [static] |
Definition at line 1894 of file genattrtab.c.
References atoi(), attr_copy_rtx(), attr_printf(), attr_rtx(), check_attr_test(), check_attr_value(), COND, function_unit::condexp, function_unit_op::condexp, function_unit_op::conflict_exp, encode_units_mask(), EQ_OP, false_rtx, function_unit::first_lineno, GET_CODE, insert_right_side(), function_unit::issue_delay, function_unit_op::issue_delay, function_unit_op::issue_exp, function_unit_op::lineno, make_canonical(), make_internal_attr(), make_numeric_value(), range::max, max_attr_value(), function_unit::max_blockage, MAX_DIGITS, MAX_OP, memcpy, range::min, MIN_OP, function_unit::name, function_unit::needs_blockage_function, function_unit::needs_conflict_function, function_unit::needs_range_function, function_unit::next, function_unit_op::next, NULL_ATTR, function_unit_op::num, function_unit::num, function_unit::num_opclasses, num_unit_opclasses, NUM_UNITOP_CUTOFF, num_units, op_array, operate_exp(), function_unit::ops, OR_OP, ORX_OP, RANGE_OP, function_unit_op::ready, rtvec_alloc(), rtx_alloc, simplify_by_exploding(), simplify_knowing(), str, strlen(), true_rtx, unknown, XEXP, xmalloc(), XSTR, XVEC, and XVECEXP.
Definition at line 5973 of file genattrtab.c.
Definition at line 2346 of file genattrtab.c.
References insn_def::def, get_attr_value(), insert_insn_ent(), insn_ent::insn_code, insn_def::insn_code, insn_ent::insn_index, insn_def::next, NULL, oballoc, strcmp(), insn_def::vec_idx, XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
Definition at line 3834 of file genattrtab.c.
References AND, ATTR_EQ_ATTR_P, COND, find_and_mark_used_attributes(), GET_CODE, NOT, rtx_alloc, XEXP, XVECEXP, and XVECLEN.
Definition at line 5844 of file genattrtab.c.
References alternative_name, attr_string(), attr_desc::blockage_p, attr_desc::default_val, attr_desc::first_value, attr_desc::func_units_p, index(), attr_desc::is_const, attr_desc::is_numeric, attr_desc::is_special, MAX_ATTRS_INDEX, attr_desc::name, attr_desc::negative_ok, attr_desc::next, NULL, oballoc, strcmp(), strlen(), and attr_desc::unsigned_p.
| static struct attr_value* find_most_used | ( | struct attr_desc * | attr | ) | [static, read] |
Definition at line 5907 of file genattrtab.c.
References attr_value::next, NULL, and attr_value::num_insns.
Definition at line 5928 of file genattrtab.c.
References attr_value::next, NULL, attr_value::num_insns, and attr_value::value.
Definition at line 4245 of file genattrtab.c.
References attr_rtx(), check_attr_value(), CONST, attr_desc::default_val, find_attr(), attr_value::first_insn, attr_desc::first_value, get_attr_value(), GET_CODE, attr_value::has_asm_insn, have_error, attr_desc::is_const, attr_desc::is_numeric, attr_desc::lineno, message_with_line(), attr_desc::name, attr_value::next, next_comma_elt(), NULL, attr_value::num_insns, oballoc, strcmp(), attr_value::value, XEXP, and XSTR.
Definition at line 4467 of file genattrtab.c.
References delay_desc::def, delay(), have_annul_false, have_annul_true, have_error, delay_desc::lineno, message_with_line(), delay_desc::next, delay_desc::num, num_delays, oballoc, XVECEXP, and XVECLEN.
Definition at line 4418 of file genattrtab.c.
References abort, count_alternatives(), insn_def::def, GET_CODE, got_define_asm_attributes, insn_code_number, insn_index_number, insn_def::num_alternatives, and oballoc.
Definition at line 4505 of file genattrtab.c.
References function_unit::condexp, function_unit_op::condexp, function_unit_op::conflict_exp, extend_range(), false_rtx, function_unit::first_lineno, have_error, insert_right_side(), function_unit::issue_delay, function_unit_op::issue_delay, function_unit_op::lineno, MAX, range::max, message_with_line(), range::min, function_unit::multiplicity, function_unit::name, function_unit::next, function_unit_op::next, function_unit_op::num, function_unit::num, function_unit::num_opclasses, num_unit_opclasses, num_units, oballoc, function_unit::ops, function_unit_op::ready, function_unit::simultaneity, strcmp(), true_rtx, XEXP, XINT, XSTR, XVEC, XVECEXP, and XVECLEN.
| static struct attr_value* get_attr_value | ( | rtx | value, | |
| struct attr_desc * | attr, | |||
| int | insn_code | |||
| ) | [static, read] |
Definition at line 1557 of file genattrtab.c.
References compares_alternatives_p(), fatal(), attr_value::first_insn, attr_desc::first_value, attr_value::has_asm_insn, insn_alternatives, insn_ent::insn_code, make_canonical(), attr_value::next, NULL, attr_value::num_insns, oballoc, rtx_equal_p(), and attr_value::value.
| const char* get_insn_name | ( | code | ) |
Definition at line 2520 of file genattrtab.c.
| static void insert_insn_ent | ( | struct attr_value * | av, | |
| struct insn_ent * | ie | |||
| ) | [static] |
Definition at line 2727 of file genattrtab.c.
References insn_ent::insn_code, insn_ent::next, and num_insn_ents.
| static rtx insert_right_side | ( | enum rtx_code | code, | |
| rtx | exp, | |||
| rtx | term, | |||
| int | insn_code, | |||
| int | insn_index | |||
| ) | [static] |
Definition at line 2750 of file genattrtab.c.
References AND, attr_equal_p(), attr_rtx(), false_rtx, GET_CODE, insert_right_side(), simplify_test_exp_in_temp(), true_rtx, and XEXP.
| int main | ( | int argc | , | |
| char ** | argv | |||
| ) |
Definition at line 6063 of file genattrtab.c.
References alternative_name, ATTR_IND_SIMPLIFIED_P, ATTR_PERMANENT_P, attr_string(), check_attr_value(), check_defs(), attr_desc::default_val, expand_automata(), expand_delays(), expand_units(), false_rtx, fatal(), FATAL_EXIT_CODE, ferror(), fflush(), fill_attr(), gen_absence_set(), gen_attr(), gen_automata_option(), gen_automaton(), gen_bypass(), gen_cpu_unit(), gen_delay(), gen_excl_set(), gen_insn(), gen_insn_reserv(), gen_presence_set(), gen_query_cpu_unit(), gen_reserv(), gen_unit(), GET_CODE, got_define_asm_attributes, have_annul_false, have_annul_true, have_error, init_md_reader_args(), initiate_automaton_gen(), insn_alternatives, insn_def::insn_code, insn_code_number, insn_index_number, insn_n_alternatives, attr_desc::is_const, attr_desc::is_special, lineno, make_length_attrs(), MAX_ATTRS_INDEX, insn_def::next, attr_desc::next, NULL, num_delays, num_dfa_decls, num_units, oballoc, obstack_init, optimize_attrs(), printf(), progname, read_md_rtx(), rtvec_alloc(), rtx_alloc, strlen(), SUCCESS_EXIT_CODE, true_rtx, attr_value::value, write_attr_get(), write_automata(), write_const_num_delay_slots(), write_eligible_delay(), write_function_unit_info(), write_length_unit_log(), XVEC, and XWINT.
| static rtx make_alternative_compare | ( | int | mask | ) | [static] |
Definition at line 2846 of file genattrtab.c.
References alternative_name, ATTR_IND_SIMPLIFIED_P, attr_numeral(), and attr_rtx().
Definition at line 1450 of file genattrtab.c.
References ATTR_IND_SIMPLIFIED_P, check_attr_value(), cond, COND, copy_boolean(), fatal(), GET_CODE, INTVAL, make_canonical(), make_numeric_value(), rtvec_alloc(), rtx_alloc, rtx_equal_p(), strcmp(), XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
Definition at line 5883 of file genattrtab.c.
References abort, attr_desc::blockage_p, attr_desc::default_val, find_attr(), attr_desc::func_units_p, get_attr_value(), attr_desc::is_const, attr_desc::is_numeric, attr_desc::is_special, attr_desc::negative_ok, and attr_desc::unsigned_p.
Definition at line 2470 of file genattrtab.c.
References ARRAY_SIZE, attr_desc::default_val, fatal(), find_attr(), attr_value::first_insn, attr_desc::first_value, get_attr_value(), identity_fn(), insert_insn_ent(), insn_ent::insn_code, insn_ent::insn_index, attr_desc::is_const, attr_desc::is_numeric, attr_desc::is_special, make_internal_attr(), max_fn(), insn_ent::next, attr_value::next, oballoc, one_fn(), PARAMS, substitute_address(), attr_value::value, and zero_fn().
| rtx make_numeric_value | ( | int | n | ) |
Definition at line 5950 of file genattrtab.c.
References abort, attr_printf(), attr_rtx(), and MAX_DIGITS.
| static int max_attr_value | ( | rtx | exp, | |
| int * | unknownp | |||
| ) | [static] |
Definition at line 2541 of file genattrtab.c.
References make_numeric_value(), max_attr_value(), and unknown.
| static char* next_comma_elt | ( | char ** | pstr | ) | const [static] |
Definition at line 5827 of file genattrtab.c.
References attr_string(), NULL, scan_comma_elt(), and start.
| static rtx one_fn | ( | exp | ) | [static] |
Definition at line 1698 of file genattrtab.c.
References abort, atoi(), attr_rtx(), COND, EQ_OP, fatal(), GET_CODE, HOST_BITS_PER_INT, make_numeric_value(), MAX_OP, MIN_OP, MINUS_OP, NULL, operate_exp(), OR_OP, ORX_OP, PLUS_OP, POS_MINUS_OP, RANGE_OP, rtvec_alloc(), rtx_alloc, rtx_equal_p(), XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
Definition at line 3535 of file genattrtab.c.
References abort, attr_copy_rtx(), clear_struct_flag(), COND, count_sub_rtxs(), attr_value::first_insn, attr_desc::first_value, free(), get_attr_value(), GET_CODE, insert_insn_ent(), insn_ent::insn_code, insn_code_number, insn_ent::insn_index, insn_n_alternatives, MAX_ATTRS_INDEX, memset, insn_ent::next, attr_value::next, next, attr_desc::next, num_insn_ents, remove_insn_ent(), rtl_obstack, simplify_cond(), attr_value::value, and xmalloc().
| static int or_attr_value | ( | rtx | exp, | |
| int * | unknownp | |||
| ) | [static] |
Definition at line 4889 of file genattrtab.c.
References atoi(), COND, GET_CODE, or_attr_value(), XEXP, XSTR, XVECEXP, and XVECLEN.
| int main PARAMS | ( | (int, char **) | ) |
| static rtx attr_eq PARAMS | ( | (const char *, const char *) | ) | [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, read] |
Definition at line 635 of file mips-tfile.c.
| 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 make_alternative_compare PARAMS | ( | (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 struct attr_value* get_attr_value PARAMS | ( | (rtx, struct attr_desc *, int) | ) | [static, read] |
Definition at line 77 of file cplus-dem.c.
| static char* attr_string PARAMS | ( | (const char *, int) | ) | [static] |
| static void attr_hash_add_string PARAMS | ( | (int, char *) | ) | [static] |
| static void remove_insn_ent | ( | struct attr_value * | av, | |
| struct insn_ent * | ie | |||
| ) | [static] |
Definition at line 2702 of file genattrtab.c.
References insn_ent::insn_code, insn_ent::next, and num_insn_ents.
Definition at line 2996 of file genattrtab.c.
References AND, attr_equal_p(), attr_rtx(), false_rtx, GET_CODE, NOT, simplify_and_tree(), simplify_test_exp_in_temp(), strcmp(), true_rtx, XEXP, and XSTR.
Definition at line 3679 of file genattrtab.c.
References abort, add_values_to_cover(), dimension::attr, ATTR_EQ_ATTR_P, COND, dimension::current_value, find_and_mark_used_attributes(), find_attr(), free(), GET_CODE, increment_current_value(), attr_desc::is_const, attr_desc::is_numeric, NULL_RTX, dimension::num_values, prev, ret, rtvec_alloc(), rtx_alloc, simplify_with_current_value(), strcmp(), test_for_current_value(), unmark_used_attributes(), dimension::values, values, XEXP, xmalloc(), XSTR, XVEC, and XVECEXP.
Definition at line 2584 of file genattrtab.c.
References attr_equal_p(), COND, false_rtx, free(), GET_CODE, insert_right_side(), len, memcpy, obstack_finish, ret, rtl_obstack, rtvec_alloc(), rtx_alloc, simplify_cond(), simplify_test_exp_in_temp(), true_rtx, XEXP, xmalloc(), XVEC, XVECEXP, and XVECLEN.
Definition at line 2255 of file genattrtab.c.
References attr_rtx(), GET_CODE, make_numeric_value(), max, max_attr_value(), simplify_by_exploding(), and unknown.
Definition at line 3115 of file genattrtab.c.
References AND, attr_equal_p(), attr_rtx(), false_rtx, GET_CODE, NOT, simplify_or_tree(), simplify_test_exp_in_temp(), true_rtx, XEXP, and XSTR.
Definition at line 3262 of file genattrtab.c.
References alternative_name, AND, ATTR_CURR_SIMPLIFIED_P, attr_equal_p(), ATTR_IND_SIMPLIFIED_P, attr_rtx(), attr_rtx_cost(), compute_alternative_mask(), copy_rtx_unchanging(), current_alternative_string, evaluate_eq_attr(), false_rtx, fatal(), find_attr(), attr_value::first_insn, attr_desc::first_value, GET_CODE, insn_alternatives, insn_ent::insn_code, make_alternative_compare(), insn_ent::next, attr_value::next, NOT, NULL, SIMPLIFY_ALTERNATIVE, simplify_and_tree(), simplify_or_tree(), SIMPLIFY_TEST_EXP, true_rtx, attr_value::value, x, XEXP, and XSTR.
Definition at line 3235 of file genattrtab.c.
References attr_copy_rtx(), ATTR_IND_SIMPLIFIED_P, rtl_obstack, simplify_test_exp(), and x.
Definition at line 4015 of file genattrtab.c.
References ATTR_EQ_ATTR_P, GET_CODE, simplify_with_current_value_aux(), x, and XEXP.
Definition at line 4048 of file genattrtab.c.
References abort, AND, ATTR_EQ_ATTR_P, attr_rtx(), cond, COND, false_rtx, GET_CODE, NOT, simplify_with_current_value_aux(), true_rtx, XEXP, XVECEXP, and XVECLEN.
Definition at line 2391 of file genattrtab.c.
References address_used, attr_rtx(), COND, GET_CODE, rtvec_alloc(), rtx_alloc, substitute_address(), walk_attr_value(), XEXP, XVEC, XVECEXP, and XVECLEN.
Definition at line 3995 of file genattrtab.c.
References AND, insert_right_side(), true_rtx, and XEXP.
Definition at line 3887 of file genattrtab.c.
References ATTR_EQ_ATTR_P, GET_CODE, unmark_used_attributes(), values, and XEXP.
| char* attr_printf VPARAMS | ( | (unsigned int len, const char *fmt,...) | ) |
Definition at line 753 of file genattrtab.c.
References abort, attr_string(), p, str, strlen(), VA_CLOSE, va_end, VA_FIXEDARG, VA_OPEN, VA_START, and vsprintf().
Definition at line 726 of file genattrtab.c.
References attr_rtx_1(), p, result, VA_CLOSE, va_end, VA_FIXEDARG, VA_OPEN, and VA_START.
Definition at line 4933 of file genattrtab.c.
References address_used, alternative_name, ATTR_IND_SIMPLIFIED_P, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, length_used, must_constrain, must_extract, NULL, PC, RTX_CODE, strcmp(), walk_attr_value(), XEXP, XSTR, XVEC, XVECEXP, and XVECLEN.
| 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] |
Definition at line 5221 of file genattrtab.c.
References address_used, attr_value::first_insn, attr_value::has_asm_insn, insn_ent::insn_code, insn_ent::insn_index, must_constrain, must_extract, insn_ent::next, attr_value::num_insns, printf(), strncmp(), attr_value::value, walk_attr_value(), write_attr_set(), and write_indent().
Definition at line 5000 of file genattrtab.c.
References find_most_used(), attr_value::first_insn, GET_CODE, insn_ent::insn_code, insn_ent::insn_index, attr_value::next, attr_value::num_insns, printf(), true_rtx, attr_value::value, write_attr_case(), write_attr_set(), write_toplevel_expr(), and XEXP.
| 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] |
Definition at line 5126 of file genattrtab.c.
References AND, attr_rtx(), COND, eliminate_known_true(), false_rtx, GET_CODE, insert_right_side(), NOT, printf(), true_rtx, write_attr_set(), write_attr_value(), write_indent(), write_test_expr(), XEXP, XVECEXP, and XVECLEN.
Definition at line 5441 of file genattrtab.c.
References abort, DIV, find_attr(), fputs(), GET_CODE, HOST_WIDE_INT_PRINT_DEC, INTVAL, attr_desc::is_const, MINUS, MOD, attr_desc::name, PLUS, printf(), putchar(), write_attr_value(), write_attr_valueq(), XEXP, and XSTR.
Definition at line 5394 of file genattrtab.c.
References atoi(), HOST_BITS_PER_INT, function_unit::num, printf(), write_unit_name(), and write_upcase().
| static void write_complex_function | ( | struct function_unit * | unit, | |
| const char * | name, | |||
| const char * | connection | |||
| ) | [static] |
Definition at line 5727 of file genattrtab.c.
References abort, contained_in_p(), find_attr(), find_most_used(), find_single_value(), attr_desc::first_value, make_numeric_value(), attr_value::next, attr_value::num_insns, printf(), sprintf(), str, strlen(), true_rtx, attr_value::value, write_attr_case(), and write_attr_set().
Definition at line 6027 of file genattrtab.c.
References find_attr(), attr_value::first_insn, attr_desc::first_value, insn_ent::insn_code, length_used, insn_ent::next, attr_value::next, printf(), attr_value::value, and walk_attr_value().
| static void write_eligible_delay | ( | char * | kind | ) | const [static] |
Definition at line 5534 of file genattrtab.c.
References abort, delay_desc::def, delay(), find_attr(), find_most_used(), attr_desc::first_value, max_slots, delay_desc::next, attr_value::next, delay_desc::num, num_delays, printf(), sprintf(), str, true_rtx, write_attr_case(), and XVECLEN.
Definition at line 5292 of file genattrtab.c.
References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, attr_desc::is_numeric, attr_desc::name, printf(), attr_desc::unsigned_p, write_expr_attr_cache(), XEXP, XSTR, XVECEXP, and XVECLEN.
| static void write_function_unit_info | ( | ) | [static] |
Definition at line 5656 of file genattrtab.c.
References function_unit::default_cost, function_unit::issue_delay, make_numeric_value(), range::max, function_unit::max_blockage, function_unit::multiplicity, function_unit::name, function_unit::needs_blockage_function, function_unit::needs_conflict_function, function_unit::needs_range_function, function_unit::next, function_unit::num, num_units, printf(), function_unit::simultaneity, write_complex_function(), and XSTR.
| static void write_indent | ( | int | indent | ) | [static] |
Definition at line 2549 of file genattrtab.c.
References attr_desc::default_val, find_attr(), attr_value::first_insn, attr_desc::first_value, length_unit_log, insn_ent::next, attr_value::next, or_attr_value(), printf(), unknown, and attr_value::value.
Definition at line 4598 of file genattrtab.c.
References abort, ABS, alternative_name, AND, comparison_operator(), attr_desc::default_val, DIV, EQ, evaluate_eq_attr(), fatal(), find_attr(), GE, GET_CODE, GET_MODE, GET_MODE_NAME, GET_RTX_NAME, GT, HOST_WIDE_INT_PRINT_DEC, attr_desc::is_const, LE, LT, MINUS, MOD, attr_desc::name, NE, NOT, NULL, PC, PLUS, printf(), RTX_CODE, attr_value::value, write_attr_valueq(), write_test_expr(), XEXP, XINT, XOR, XSTR, and XWINT.
Definition at line 5343 of file genattrtab.c.
References GET_CODE, attr_desc::is_const, MAX_ATTRS_INDEX, attr_desc::next, printf(), write_expr_attr_cache(), write_test_expr(), and XEXP.
| static void write_unit_name | ( | char * | prefix, | |
| int | num, | |||
| const char * | suffix | |||
| ) | const [static] |
Definition at line 5376 of file genattrtab.c.
References function_unit::name, function_unit::next, function_unit::num, and printf().
| static void write_upcase | ( | char * | str | ) | const [static] |
| static rtx zero_fn | ( | exp | ) | [static] |
int address_used [static] |
Definition at line 310 of file genattrtab.c.
char* alternative_name [static] |
Definition at line 344 of file genattrtab.c.
| struct attr_hash* attr_hash_table[RTL_HASH_SIZE] |
Definition at line 499 of file genattrtab.c.
Definition at line 255 of file genattrtab.c.
const char* current_alternative_string [static] |
Definition at line 336 of file genattrtab.c.
Definition at line 256 of file genattrtab.c.
struct delay_desc* delays [static] |
Definition at line 257 of file genattrtab.c.
Definition at line 340 of file genattrtab.c.
| rtx global_rtl[GR_MAX] |
Definition at line 374 of file genattrtab.c.
int got_define_asm_attributes [static] |
Definition at line 307 of file genattrtab.c.
| struct obstack* hash_obstack = &obstack1 |
Definition at line 127 of file genattrtab.c.
int have_annul_false [static] |
Definition at line 313 of file genattrtab.c.
int have_annul_true [static] |
Definition at line 313 of file genattrtab.c.
int* insn_alternatives [static] |
Definition at line 330 of file genattrtab.c.
int insn_code_number [static] |
Definition at line 305 of file genattrtab.c.
int insn_index_number [static] |
Definition at line 306 of file genattrtab.c.
int* insn_n_alternatives [static] |
Definition at line 325 of file genattrtab.c.
int length_used [static] |
Definition at line 311 of file genattrtab.c.
int must_constrain [static] |
Definition at line 309 of file genattrtab.c.
int must_extract [static] |
Definition at line 308 of file genattrtab.c.
int num_delays [static] |
Definition at line 312 of file genattrtab.c.
| int num_dfa_decls |
Definition at line 317 of file genattrtab.c.
int num_insn_ents [static] |
Definition at line 315 of file genattrtab.c.
int num_unit_opclasses [static] |
Definition at line 314 of file genattrtab.c.
int num_units [static] |
Definition at line 314 of file genattrtab.c.
Definition at line 126 of file genattrtab.c.
| int optimize = 0 |
Definition at line 354 of file genattrtab.c.
Definition at line 375 of file genattrtab.c.
| int reload_completed = 0 |
Definition at line 349 of file genattrtab.c.
Definition at line 128 of file genattrtab.c.
Definition at line 340 of file genattrtab.c.
struct function_unit* units [static] |
Definition at line 258 of file genattrtab.c.
1.5.6