osprey-gcc/gcc/stmt.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "flags.h"
#include "except.h"
#include "function.h"
#include "insn-config.h"
#include "expr.h"
#include "libfuncs.h"
#include "hard-reg-set.h"
#include "recog.h"
#include "machmode.h"
#include "toplev.h"
#include "output.h"
#include "ggc.h"
#include "langhooks.h"
#include "predict.h"
#include "optabs.h"
#include "target.h"
#include "regs.h"

Include dependency graph for stmt.c:

Go to the source code of this file.

Data Types

type  case_bit_test

Defines

#define COST_TABLE(I)   cost_table_[(unsigned HOST_WIDE_INT) ((I) + 1)]
#define MAX_CASE_BIT_TESTS   3
#define CASE_USE_BIT_TESTS
#define HAVE_casesi   0
#define HAVE_tablejump   0

Typedefs

typedef struct case_node case_node
typedef struct case_nodecase_node_ptr

Functions/Subroutines

struct case_node GTY (())
static int n_occurrences (int, const char *)
static bool decl_conflicts_with_clobbers_p (tree, const HARD_REG_SET)
static void expand_nl_goto_receiver (void)
static bool check_operand_nalternatives (tree, tree)
static bool check_unique_operand_names (tree, tree)
static char * resolve_operand_name_1 (char *, tree, tree)
static void expand_null_return_1 (void)
static void expand_value_return (rtx)
static void do_jump_if_equal (rtx, rtx, rtx, int)
static int estimate_case_costs (case_node_ptr)
static bool lshift_cheap_p (void)
static int case_bit_test_cmp (const void *, const void *)
static void emit_case_bit_tests (tree, tree, tree, tree, case_node_ptr, rtx)
static void balance_case_nodes (case_node_ptr *, case_node_ptr)
static int node_has_low_bound (case_node_ptr, tree)
static int node_has_high_bound (case_node_ptr, tree)
static int node_is_bounded (case_node_ptr, tree)
static void emit_case_nodes (rtx, case_node_ptr, rtx, tree)
static struct case_nodeadd_case_node (struct case_node *, tree, tree, tree, tree)
rtx label_rtx (tree label)
rtx force_label_rtx (tree label)
void emit_jump (rtx label)
void expand_computed_goto (tree exp)
void expand_label (tree label)
void expand_goto (tree label)
static void expand_asm (tree string, int vol)
bool parse_output_constraint (const char **constraint_p, int operand_num, int ninputs, int noutputs, bool *allows_mem, bool *allows_reg, bool *is_inout)
bool parse_input_constraint (const char **constraint_p, int input_num, int ninputs, int noutputs, int ninout, const char *const *constraints, bool *allows_mem, bool *allows_reg)
static void expand_asm_operands (tree string, tree outputs, tree inputs, tree clobbers, int vol, location_t locus)
void expand_asm_expr (tree exp)
tree resolve_asm_operand_names (tree string, tree outputs, tree inputs)
void expand_expr_stmt (tree exp)
int warn_if_unused_value (tree exp, location_t locus)
void expand_null_return (void)
void expand_naked_return (void)
void expand_return (tree retval)
int is_body_block (tree stmt)
void expand_decl (tree decl)
rtx expand_stack_save (void)
void expand_stack_restore (tree var)
void expand_anon_union_decl (tree decl, tree cleanup ATTRIBUTE_UNUSED, tree decl_elts)
void expand_case (tree exp)

Variables

static short cost_table_ [129]
static int use_cost_table
static int cost_table_initialized


Define Documentation

#define CASE_USE_BIT_TESTS

Value:

(ashl_optab->handlers[word_mode].insn_code \
           != CODE_FOR_nothing)

Definition at line 2130 of file stmt.c.

Referenced by expand_case().

#define COST_TABLE (  )     cost_table_[(unsigned HOST_WIDE_INT) ((I) + 1)]

Definition at line 105 of file stmt.c.

#define HAVE_casesi   0

Definition at line 2269 of file stmt.c.

#define HAVE_tablejump   0

Definition at line 2273 of file stmt.c.

#define MAX_CASE_BIT_TESTS   3

Definition at line 2126 of file stmt.c.


Typedef Documentation

Definition at line 93 of file stmt.c.

Definition at line 94 of file stmt.c.


Function Documentation

static struct case_node * add_case_node ( struct case_node head,
tree  type,
tree  low,
tree  high,
tree  label 
) [static, read]

static void balance_case_nodes ( case_node_ptr head,
case_node_ptr  parent 
) [static]

static int case_bit_test_cmp ( const void p1,
const void p2 
) [static]

Definition at line 2174 of file stmt.c.

References case_bit_test::bits, d1, and d2.

Referenced by emit_case_bit_tests().

static bool check_operand_nalternatives ( tree  outputs,
tree  inputs 
) [static]

static bool check_unique_operand_names ( tree  outputs,
tree  inputs 
) [static]

Definition at line 1142 of file stmt.c.

References error(), failure, i, simple_cst_equal(), TREE_CHAIN, TREE_PURPOSE, and TREE_STRING_POINTER.

static bool decl_conflicts_with_clobbers_p ( tree  decl,
const HARD_REG_SET  clobbered_regs 
) [static]

static void do_jump_if_equal ( rtx  op1,
rtx  op2,
rtx  label,
int  unsignedp 
) [static]

Definition at line 2580 of file stmt.c.

References emit_cmp_and_jump_insns(), emit_jump(), EQ, GET_CODE, GET_MODE, and NULL_RTX.

static void emit_case_bit_tests ( tree  index_type,
tree  index_expr,
tree  minval,
tree  range,
case_node_ptr  nodes,
rtx  default_label 
) [static]

static void emit_case_nodes ( rtx  index,
case_node_ptr  node,
rtx  default_label,
tree  index_type 
) [static]

void emit_jump ( rtx  label  ) 

Definition at line 172 of file stmt.c.

References do_pending_stack_adjust(), emit_barrier(), emit_jump_insn(), and gen_jump().

static int estimate_case_costs ( case_node_ptr  node  )  [static]

void expand_anon_union_decl ( tree  decl,
tree cleanup  ATTRIBUTE_UNUSED,
tree  decl_elts 
)

static void expand_asm ( tree  string,
int  vol 
) [static]

void expand_asm_expr ( tree  exp  ) 

Definition at line 1052 of file stmt.c.

Referenced by expand_builtin_synchronize(), and expand_expr_real_1().

static void expand_asm_operands ( tree  string,
tree  outputs,
tree  inputs,
tree  clobbers,
int  vol,
location_t  locus 
) [static]

void expand_case ( tree  exp  ) 

Definition at line 2283 of file stmt.c.

Referenced by expand_expr_real_1().

void expand_computed_goto ( tree  exp  ) 

void expand_decl ( tree  decl  ) 

void expand_expr_stmt ( tree  exp  ) 

void expand_goto ( tree  label  ) 

void expand_label ( tree  label  ) 

void expand_naked_return ( void   ) 

Definition at line 1489 of file stmt.c.

static void expand_nl_goto_receiver ( void   )  [static]

void expand_null_return ( void   ) 

Definition at line 1475 of file stmt.c.

References clobber_return_register(), and expand_null_return_1().

static void expand_null_return_1 ( void   )  [static]

void expand_return ( tree  retval  ) 

void expand_stack_restore ( tree  var  ) 

Definition at line 1989 of file stmt.c.

Referenced by expand_builtin().

rtx expand_stack_save ( void   ) 

Definition at line 1978 of file stmt.c.

Referenced by expand_builtin().

static void expand_value_return ( rtx  val  )  [static]

rtx force_label_rtx ( tree  label  ) 

Definition at line 151 of file stmt.c.

struct case_node GTY ( ()   )  [read, write]

Definition at line 83 of file stmt.c.

References high, and low.

int is_body_block ( tree  stmt  ) 

Definition at line 1734 of file stmt.c.

References BLOCK, BLOCK_SUPERCONTEXT, and TREE_CODE.

rtx label_rtx ( tree  label  ) 

static bool lshift_cheap_p ( void   )  [static]

Definition at line 2153 of file stmt.c.

References const1_rtx, COSTS_N_INSNS, gen_rtx_ASHIFT, gen_rtx_REG(), rtx_cost(), SET, and word_mode.

Referenced by expand_case().

static int n_occurrences ( int  c,
const char *  s 
) [static]

Definition at line 250 of file stmt.c.

References n.

static int node_has_high_bound ( case_node_ptr  node,
tree  index_type 
) [static]

static int node_has_low_bound ( case_node_ptr  node,
tree  index_type 
) [static]

static int node_is_bounded ( case_node_ptr  node,
tree  index_type 
) [static]

Definition at line 2890 of file stmt.c.

References node_has_high_bound(), and node_has_low_bound().

bool parse_input_constraint ( const char **  constraint_p,
int  input_num,
int  ninputs,
int  noutputs,
int  ninout,
const char *const *  constraints,
bool allows_mem,
bool allows_reg 
)

Definition at line 428 of file stmt.c.

bool parse_output_constraint ( const char **  constraint_p,
int  operand_num,
int  ninputs,
int  noutputs,
bool allows_mem,
bool allows_reg,
bool is_inout 
)

Definition at line 293 of file stmt.c.

tree resolve_asm_operand_names ( tree  string,
tree  outputs,
tree  inputs 
)

Definition at line 1184 of file stmt.c.

Referenced by build_asm_expr(), expand_asm_operands(), and finish_asm_stmt().

static char * resolve_operand_name_1 ( char *  p,
tree  outputs,
tree  inputs 
) [static]

int warn_if_unused_value ( tree  exp,
location_t  locus 
)

Definition at line 1360 of file stmt.c.


Variable Documentation

short cost_table_[129] [static]

Definition at line 99 of file stmt.c.

int cost_table_initialized [static]

Definition at line 101 of file stmt.c.

int use_cost_table [static]

Definition at line 100 of file stmt.c.


Generated on Wed Apr 8 15:44:57 2009 for Open64 by  doxygen 1.5.6