osprey-gcc-4.2.0/gcc/genrecog.c File Reference

#include "bconfig.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "errors.h"
#include "gensupport.h"

Include dependency graph for genrecog.c:

Go to the source code of this file.

Data Types

type  decision_head
type  decision_test
type  decision

Defines

#define OUTPUT_LABEL(INDENT_STRING, LABEL_NUMBER)   printf("%sL%d: ATTRIBUTE_UNUSED_LABEL\n", (INDENT_STRING), (LABEL_NUMBER))
#define SUBROUTINE_THRESHOLD   100
#define IS_SPLIT(X)   ((X) != RECOG)
#define N   0
#define Y   1
#define I   2
#define TRISTATE_AND(a, b)
#define TRISTATE_OR(a, b)
#define TRISTATE_NOT(a)   ((a) == I ? I : !(a))

Enumerations

enum  routine_type {
  RECOG, SPLIT, PEEPHOLE2, RECOG,
  SPLIT, PEEPHOLE2, RECOG, SPLIT,
  PEEPHOLE2, RECOG, SPLIT, PEEPHOLE2
}

Functions/Subroutines

static void compute_predicate_codes (rtx exp, char codes[NUM_RTX_CODE])
static void process_define_predicate (rtx desc)
static struct decisionnew_decision (const char *, struct decision_head *)
static struct decision_testnew_decision_test (enum decision_type, struct decision_test ***)
static rtx find_operand (rtx, int, rtx)
static rtx find_matching_operand (rtx, int)
static void validate_pattern (rtx, rtx, rtx, int)
static struct decisionadd_to_sequence (rtx, struct decision_head *, const char *, enum routine_type, int)
static int maybe_both_true_2 (struct decision_test *, struct decision_test *)
static int maybe_both_true_1 (struct decision_test *, struct decision_test *)
static int maybe_both_true (struct decision *, struct decision *, int)
static int nodes_identical_1 (struct decision_test *, struct decision_test *)
static int nodes_identical (struct decision *, struct decision *)
static void merge_accept_insn (struct decision *, struct decision *)
static void merge_trees (struct decision_head *, struct decision_head *)
static void factor_tests (struct decision_head *)
static void simplify_tests (struct decision_head *)
static int break_out_subroutines (struct decision_head *, int)
static void find_afterward (struct decision_head *, struct decision *)
static void change_state (const char *, const char *, const char *)
static void print_code (enum rtx_code)
static void write_afterward (struct decision *, struct decision *, const char *)
static struct decisionwrite_switch (struct decision *, int)
static void write_cond (struct decision_test *, int, enum routine_type)
static void write_action (struct decision *, struct decision_test *, int, int, struct decision *, enum routine_type)
static int is_unconditional (struct decision_test *, enum routine_type)
static int write_node (struct decision *, int, enum routine_type)
static void write_tree_1 (struct decision_head *, int, enum routine_type)
static void write_tree (struct decision_head *, const char *, enum routine_type, int)
static void write_subroutine (struct decision_head *, enum routine_type)
static void write_subroutines (struct decision_head *, enum routine_type)
static void write_header (void)
static struct decision_head make_insn_sequence (rtx, enum routine_type)
static void process_tree (struct decision_head *, enum routine_type)
static void debug_decision_0 (struct decision *, int, int)
static void debug_decision_1 (struct decision *, int)
static void debug_decision_2 (struct decision_test *)
void debug_decision (struct decision *)
void debug_decision_list (struct decision *)
static void print_host_wide_int (HOST_WIDE_INT val)
int main (int, char **)
int main (int argc, char **argv)

Variables

static int next_subroutine_number
static int next_number
static int next_insn_code
static int max_depth
static int pattern_lineno
static int error_count
static char did_you_mean_codes [NUM_RTX_CODE]


Define Documentation

#define I   2

Definition at line 212 of file genrecog.c.

#define IS_SPLIT ( X   )     ((X) != RECOG)

Definition at line 153 of file genrecog.c.

#define N   0

Definition at line 210 of file genrecog.c.

#define OUTPUT_LABEL ( INDENT_STRING,
LABEL_NUMBER   )     printf("%sL%d: ATTRIBUTE_UNUSED_LABEL\n", (INDENT_STRING), (LABEL_NUMBER))

Definition at line 61 of file genrecog.c.

#define SUBROUTINE_THRESHOLD   100

Definition at line 141 of file genrecog.c.

#define TRISTATE_AND ( a,
b   ) 

Value:

((a) == I ? ((b) == N ? N : I) :    \
   (b) == I ? ((a) == N ? N : I) :    \
   (a) && (b))

Definition at line 214 of file genrecog.c.

#define TRISTATE_NOT ( a   )     ((a) == I ? I : !(a))

Definition at line 224 of file genrecog.c.

#define TRISTATE_OR ( a,
b   ) 

Value:

((a) == I ? ((b) == Y ? Y : I) :    \
   (b) == I ? ((a) == Y ? Y : I) :    \
   (a) || (b))

Definition at line 219 of file genrecog.c.

#define Y   1

Definition at line 211 of file genrecog.c.


Enumeration Type Documentation

Enumerator:
RECOG 
SPLIT 
PEEPHOLE2 
RECOG 
SPLIT 
PEEPHOLE2 
RECOG 
SPLIT 
PEEPHOLE2 
RECOG 
SPLIT 
PEEPHOLE2 

Definition at line 149 of file genrecog.c.


Function Documentation

static struct decision * add_to_sequence ( rtx  pattern,
struct decision_head last,
const char *  position,
enum routine_type  insn_type,
int  top 
) [static, read]

static int break_out_subroutines ( struct decision_head head,
int  initial 
) [static]

static void change_state ( const char *  oldpos,
const char *  newpos,
const char *  indent 
) [static]

Definition at line 1796 of file genrecog.c.

References ISLOWER, ISUPPER, printf(), strlen(), and strncmp().

static void compute_predicate_codes ( rtx  exp,
char  codes[NUM_RTX_CODE] 
) [static]

void debug_decision ( struct decision d  ) 

Definition at line 2886 of file genrecog.c.

References debug_decision_0().

static void debug_decision_0 ( struct decision d,
int  indent,
int  maxdepth 
) [static]

static void debug_decision_1 ( struct decision d,
int  indent 
) [static]

static void debug_decision_2 ( struct decision_test test  )  [static]

void debug_decision_list ( struct decision d  ) 

Definition at line 2893 of file genrecog.c.

References debug_decision_0().

static void factor_tests ( struct decision_head head  )  [static]

static void find_afterward ( struct decision_head head,
struct decision real_afterward 
) [static]

static rtx find_matching_operand ( rtx  pattern,
int  n 
) [static]

static rtx find_operand ( rtx  pattern,
int  n,
rtx  stop 
) [static]

static int is_unconditional ( struct decision_test t,
enum routine_type  subroutine_type 
) [static]

int main ( int argc  ,
char **  argv 
)

int main ( int  ,
char **   
)

Definition at line 1313 of file z8kgen.c.

static struct decision_head make_insn_sequence ( rtx  insn,
enum routine_type  type 
) [static, read]

static int maybe_both_true ( struct decision d1,
struct decision d2,
int  toplevel 
) [static]

static int maybe_both_true_1 ( struct decision_test d1,
struct decision_test d2 
) [static]

static int maybe_both_true_2 ( struct decision_test d1,
struct decision_test d2 
) [static]

static void merge_accept_insn ( struct decision oldd,
struct decision addd 
) [static]

static void merge_trees ( struct decision_head oldh,
struct decision_head addh 
) [static]

static struct decision * new_decision ( const char *  position,
struct decision_head last 
) [static, read]

Definition at line 494 of file genrecog.c.

References decision_head::first, decision_head::last, next_number, xcalloc(), and xstrdup().

static struct decision_test * new_decision_test ( enum decision_type  type,
struct decision_test ***  pplace 
) [static, read]

Definition at line 509 of file genrecog.c.

References decision_test::next, decision_test::type, and XNEW.

static int nodes_identical ( struct decision d1,
struct decision d2 
) [static]

static int nodes_identical_1 ( struct decision_test d1,
struct decision_test d2 
) [static]

static void print_code ( enum rtx_code  code  )  [static]

Definition at line 1839 of file genrecog.c.

References GET_RTX_NAME, p, putchar(), and TOUPPER.

static void print_host_wide_int ( HOST_WIDE_INT  val  )  [static]

static void process_define_predicate ( rtx  desc  )  [static]

static void process_tree ( struct decision_head head,
enum routine_type  subroutine_type 
) [static]

static void simplify_tests ( struct decision_head head  )  [static]

static void validate_pattern ( rtx  pattern,
rtx  insn,
rtx  set,
int  set_code 
) [static]

static void write_action ( struct decision p,
struct decision_test test,
int  depth,
int  uncond,
struct decision success,
enum routine_type  subroutine_type 
) [static]

static void write_afterward ( struct decision start,
struct decision afterward,
const char *  indent 
) [static]

static void write_cond ( struct decision_test p,
int  depth,
enum routine_type  subroutine_type 
) [static]

static void write_header ( void   )  [static]

Definition at line 2477 of file genrecog.c.

References puts().

static int write_node ( struct decision p,
int  depth,
enum routine_type  subroutine_type 
) [static]

static void write_subroutine ( struct decision_head head,
enum routine_type  type 
) [static]

static void write_subroutines ( struct decision_head head,
enum routine_type  type 
) [static]

static struct decision * write_switch ( struct decision start,
int  depth 
) [static, read]

static void write_tree ( struct decision_head head,
const char *  prevpos,
enum routine_type  type,
int  initial 
) [static]

static void write_tree_1 ( struct decision_head head,
int  depth,
enum routine_type  subroutine_type 
) [static]


Variable Documentation

char did_you_mean_codes[NUM_RTX_CODE] [static]

Definition at line 228 of file genrecog.c.

int error_count [static]

Definition at line 172 of file genrecog.c.

int max_depth [static]

Definition at line 166 of file genrecog.c.

int next_insn_code [static]

Definition at line 161 of file genrecog.c.

int next_number [static]

Definition at line 157 of file genrecog.c.

int next_subroutine_number [static]

Definition at line 143 of file genrecog.c.

int pattern_lineno [static]

Definition at line 169 of file genrecog.c.


Generated on Wed Apr 8 15:34:21 2009 for Open64 by  doxygen 1.5.6