osprey-gcc/gcc/reload1.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "machmode.h"
#include "hard-reg-set.h"
#include "rtl.h"
#include "tm_p.h"
#include "obstack.h"
#include "insn-config.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
#include "optabs.h"
#include "regs.h"
#include "basic-block.h"
#include "reload.h"
#include "recog.h"
#include "output.h"
#include "real.h"
#include "toplev.h"
#include "except.h"
#include "tree.h"

Include dependency graph for reload1.c:

Go to the source code of this file.

Data Types

type  elim_table
type  elim_table_1

Defines

#define NUM_ELIMINABLE_REGS   ARRAY_SIZE (reg_eliminate_1)

Functions/Subroutines

static void replace_pseudos_in (rtx *, enum machine_mode, rtx)
static void maybe_fix_stack_asms (void)
static void copy_reloads (struct insn_chain *)
static void calculate_needs_all_insns (int)
static int find_reg (struct insn_chain *, int)
static void find_reload_regs (struct insn_chain *)
static void select_reload_regs (void)
static void delete_caller_save_insns (void)
static void spill_failure (rtx, enum reg_class)
static void count_spilled_pseudo (int, int, int)
static void delete_dead_insn (rtx)
static void alter_reg (int, int)
static void set_label_offsets (rtx, rtx, int)
static void check_eliminable_occurrences (rtx)
static void elimination_effects (rtx, enum machine_mode)
static int eliminate_regs_in_insn (rtx, int)
static void update_eliminable_offsets (void)
static void mark_not_eliminable (rtx, rtx, void *)
static void set_initial_elim_offsets (void)
static bool verify_initial_elim_offsets (void)
static void set_initial_label_offsets (void)
static void set_offsets_for_label (rtx)
static void init_elim_table (void)
static void update_eliminables (HARD_REG_SET *)
static void spill_hard_reg (unsigned int, int)
static int finish_spills (int)
static void scan_paradoxical_subregs (rtx)
static void count_pseudo (int)
static void order_regs_for_reload (struct insn_chain *)
static void reload_as_needed (int)
static void forget_old_reloads_1 (rtx, rtx, void *)
static int reload_reg_class_lower (const void *, const void *)
static void mark_reload_reg_in_use (unsigned int, int, enum reload_type, enum machine_mode)
static void clear_reload_reg_in_use (unsigned int, int, enum reload_type, enum machine_mode)
static int reload_reg_free_p (unsigned int, int, enum reload_type)
static int reload_reg_free_for_value_p (int, int, int, enum reload_type, rtx, rtx, int, int)
static int free_for_value_p (int, enum machine_mode, int, enum reload_type, rtx, rtx, int, int)
static int function_invariant_p (rtx)
static int reload_reg_reaches_end_p (unsigned int, int, enum reload_type)
static int allocate_reload_reg (struct insn_chain *, int, int)
static int conflicts_with_override (rtx)
static void failed_reload (rtx, int)
static int set_reload_reg (int, int)
static void choose_reload_regs_init (struct insn_chain *, rtx *)
static void choose_reload_regs (struct insn_chain *)
static void merge_assigned_reloads (rtx)
static void emit_input_reload_insns (struct insn_chain *, struct reload *, rtx, int)
static void emit_output_reload_insns (struct insn_chain *, struct reload *, int)
static void do_input_reload (struct insn_chain *, struct reload *, int)
static void do_output_reload (struct insn_chain *, struct reload *, int)
static bool inherit_piecemeal_p (int, int)
static void emit_reload_insns (struct insn_chain *)
static void delete_output_reload (rtx, int, int)
static void delete_address_reloads (rtx, rtx)
static void delete_address_reloads_1 (rtx, rtx, rtx)
static rtx inc_for_reload (rtx, rtx, rtx, int)
static void copy_eh_notes (rtx, rtx)
static int reloads_conflict (int, int)
static rtx gen_reload (rtx, rtx, int, enum reload_type)
void init_reload (void)
struct insn_chain * new_insn_chain (void)
void compute_use_by_pseudos (HARD_REG_SET *to, regset from)
int reload (rtx first, int global)
void mark_home_live (int regno)
rtx eliminate_regs (rtx x, enum machine_mode mem_mode, rtx insn)
static void mark_not_eliminable (rtx dest, rtx x, void *data ATTRIBUTE_UNUSED)
static void set_initial_eh_label_offset (rtx label)
static void forget_old_reloads_1 (rtx x, rtx ignored ATTRIBUTE_UNUSED, void *data ATTRIBUTE_UNUSED)
static int allocate_reload_reg (struct insn_chain *chain ATTRIBUTE_UNUSED, int r, int last_reload)
void deallocate_reload_reg (int r)
static bool inherit_piecemeal_p (int r ATTRIBUTE_UNUSED, int regno ATTRIBUTE_UNUSED)
void fixup_abnormal_edges (void)

Variables

static rtxreg_last_reload_reg
static char * reg_has_output_reload
static HARD_REG_SET reg_is_output_reload
rtxreg_equiv_constant
rtxreg_equiv_memory_loc
varray_type reg_equiv_memory_loc_varray
rtxreg_equiv_address
rtxreg_equiv_mem
static unsigned int * reg_max_ref_width
static rtxreg_equiv_init
static short * reg_old_renumber
static int reg_reloaded_contents [FIRST_PSEUDO_REGISTER]
static rtx reg_reloaded_insn [FIRST_PSEUDO_REGISTER]
static HARD_REG_SET reg_reloaded_valid
static HARD_REG_SET reg_reloaded_dead
static HARD_REG_SET reg_reloaded_call_part_clobbered
static int n_spills
static rtx spill_reg_rtx [FIRST_PSEUDO_REGISTER]
static rtx spill_reg_store [FIRST_PSEUDO_REGISTER]
static rtx spill_reg_stored_to [FIRST_PSEUDO_REGISTER]
static short spill_reg_order [FIRST_PSEUDO_REGISTER]
static HARD_REG_SET bad_spill_regs
static HARD_REG_SET bad_spill_regs_global
static short spill_regs [FIRST_PSEUDO_REGISTER]
static HARD_REG_SET * pseudo_previous_regs
static HARD_REG_SET * pseudo_forbidden_regs
static HARD_REG_SET used_spill_regs
static int last_spill_reg
static char spill_indirect_levels
char indirect_symref_ok
char double_reg_address_ok
static rtx spill_stack_slot [FIRST_PSEUDO_REGISTER]
static unsigned int spill_stack_slot_width [FIRST_PSEUDO_REGISTER]
static regset_head spilled_pseudos
static regset_head pseudos_counted
int reload_first_uid
int caller_save_needed
int reload_in_progress = 0
enum insn_code reload_in_optab [NUM_MACHINE_MODES]
enum insn_code reload_out_optab [NUM_MACHINE_MODES]
struct obstack reload_obstack
char * reload_startobj
char * reload_firstobj
static char * reload_insn_firstobj
struct insn_chain * reload_insn_chain
static struct insn_chain * insns_need_reload
static struct elim_tablereg_eliminate = 0
static struct elim_table_1 reg_eliminate_1 []
int num_not_at_initial_offset
static int num_eliminable
static int num_eliminable_invariants
static int first_label_num
static char * offsets_known_at
static HOST_WIDE_INT(* offsets_at )[NUM_ELIMINABLE_REGS]
static int num_labels
static struct insn_chain * unused_insn_chains = 0
static int something_needs_elimination
int something_needs_operands_changed
static int failure
static int spill_cost [FIRST_PSEUDO_REGISTER]
static int spill_add_cost [FIRST_PSEUDO_REGISTER]
static short reload_order [MAX_RELOADS]
static HARD_REG_SET used_spill_regs_local
static HARD_REG_SET reload_reg_unavailable
static HARD_REG_SET reload_reg_used
static HARD_REG_SET reload_reg_used_in_input_addr [MAX_RECOG_OPERANDS]
static HARD_REG_SET reload_reg_used_in_inpaddr_addr [MAX_RECOG_OPERANDS]
static HARD_REG_SET reload_reg_used_in_output_addr [MAX_RECOG_OPERANDS]
static HARD_REG_SET reload_reg_used_in_outaddr_addr [MAX_RECOG_OPERANDS]
static HARD_REG_SET reload_reg_used_in_input [MAX_RECOG_OPERANDS]
static HARD_REG_SET reload_reg_used_in_output [MAX_RECOG_OPERANDS]
static HARD_REG_SET reload_reg_used_in_op_addr
static HARD_REG_SET reload_reg_used_in_op_addr_reload
static HARD_REG_SET reload_reg_used_in_insn
static HARD_REG_SET reload_reg_used_in_other_addr
static HARD_REG_SET reload_reg_used_at_all
static HARD_REG_SET reload_reg_used_for_inherit
static HARD_REG_SET reg_used_in_insn
char reload_inherited [MAX_RELOADS]
rtx reload_inheritance_insn [MAX_RELOADS]
rtx reload_override_in [MAX_RELOADS]
int reload_spill_index [MAX_RELOADS]
static rtx input_reload_insns [MAX_RECOG_OPERANDS]
static rtx other_input_address_reload_insns = 0
static rtx other_input_reload_insns = 0
static rtx input_address_reload_insns [MAX_RECOG_OPERANDS]
static rtx inpaddr_address_reload_insns [MAX_RECOG_OPERANDS]
static rtx output_reload_insns [MAX_RECOG_OPERANDS]
static rtx output_address_reload_insns [MAX_RECOG_OPERANDS]
static rtx outaddr_address_reload_insns [MAX_RECOG_OPERANDS]
static rtx operand_reload_insns = 0
static rtx other_operand_reload_insns = 0
static rtx other_output_reload_insns [MAX_RECOG_OPERANDS]
static rtx new_spill_reg_store [FIRST_PSEUDO_REGISTER]
static HARD_REG_SET reg_reloaded_died


Define Documentation

#define NUM_ELIMINABLE_REGS   ARRAY_SIZE (reg_eliminate_1)

Definition at line 336 of file reload1.c.


Function Documentation

static int allocate_reload_reg ( struct insn_chain *chain  ATTRIBUTE_UNUSED,
int  r,
int  last_reload 
) [static]

static int allocate_reload_reg ( struct insn_chain *  ,
int  ,
int   
) [static]

static void alter_reg ( int  i,
int  from_reg 
) [static]

static void calculate_needs_all_insns ( int  global  )  [static]

static void check_eliminable_occurrences ( rtx  x  )  [static]

static void choose_reload_regs ( struct insn_chain *  chain  )  [static]

Definition at line 5262 of file reload1.c.

References allocate_reload_reg(), BITS_PER_UNIT, CANNOT_CHANGE_MODE_CLASS, choose_reload_regs_init(), clear_reload_reg_in_use(), const0_rtx, CONSTANT_P, failed_reload(), find_equiv_reg(), FIRST_PSEUDO_REGISTER, flag_expensive_optimizations, frame_pointer_needed, free_for_value_p(), gcc_assert, gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_MODE_OK, hard_regno_nregs, i, i1, in, insn, int, mark_reload_reg_in_use(), MAX, max_regno, MAX_RELOADS, MEM_P, MEMORY_MOVE_COST, mode, n_earlyclobbers, n_reloads, n_spills, NO_REGS, nr, nregs, NULL, NULL_RTX, optimize, out, PLUS, qsort(), r, REG_CANNOT_CHANGE_MODE_P, reg_class_contents, reg_class_superunion, reg_classes_intersect_p(), reg_has_output_reload, reg_is_output_reload, reg_last_reload_reg, reg_overlap_mentioned_for_reload_p(), REG_P, reg_reloaded_contents, reg_reloaded_dead, reg_reloaded_insn, reg_reloaded_valid, reg_used_in_insn, REGISTER_MOVE_COST, REGNO, regno_clobbered_p(), REGNO_REG_CLASS, regs_used, reload_earlyclobbers, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTPUT, reload_order, RELOAD_OTHER, reload_reg_class_lower(), reload_reg_unavailable, reload_reg_used_at_all, reload_reg_used_for_inherit, remove_address_replacements(), rld, rtx_equal_p(), s, SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED, SET_DEST, SET_HARD_REG_BIT, set_reload_reg(), SET_SRC, single_set, smallest_mode_for_size(), spill_reg_order, spill_reg_store, spill_regs, SUBREG_BYTE, SUBREG_REG, subreg_regno(), subreg_regno_offset(), TEST_HARD_REG_BIT, true_regnum(), and XEXP.

static void choose_reload_regs_init ( struct insn_chain *  chain,
rtx save_reload_reg_rtx 
) [static]

static void clear_reload_reg_in_use ( unsigned int  regno,
int  opnum,
enum reload_type  type,
enum machine_mode  mode 
) [static]

void compute_use_by_pseudos ( HARD_REG_SET *  to,
regset  from 
)

static int conflicts_with_override ( rtx  x  )  [static]

Definition at line 4992 of file reload1.c.

References i, n_reloads, and reg_overlap_mentioned_p().

static void copy_eh_notes ( rtx  insn,
rtx  x 
) [static]

static void copy_reloads ( struct insn_chain *  chain  )  [static]

Definition at line 1404 of file reload1.c.

References memcpy, n_reloads, obstack_alloc, reload(), reload_insn_firstobj, reload_obstack, and rld.

static void count_pseudo ( int  reg  )  [static]

static void count_spilled_pseudo ( int  spilled,
int  spilled_nregs,
int  reg 
) [static]

void deallocate_reload_reg ( int  r  ) 

Definition at line 5961 of file reload1.c.

References clear_reload_reg_in_use(), mode, rld, spill_reg_order, and true_regnum().

static void delete_address_reloads ( rtx  dead_insn,
rtx  current_insn 
) [static]

static void delete_address_reloads_1 ( rtx  dead_insn,
rtx  x,
rtx  current_insn 
) [static]

static void delete_caller_save_insns ( void   )  [static]

Definition at line 1848 of file reload1.c.

References c, delete_insn(), insn, next, reload_insn_chain, and unused_insn_chains.

static void delete_dead_insn ( rtx  insn  )  [static]

static void delete_output_reload ( rtx  insn,
int  j,
int  last_reload_reg 
) [static]

static void do_input_reload ( struct insn_chain *  chain,
struct reload *  rl,
int  j 
) [static]

static void do_output_reload ( struct insn_chain *  chain,
struct reload *  rl,
int  j 
) [static]

rtx eliminate_regs ( rtx  x,
enum machine_mode  mem_mode,
rtx  insn 
)

static int eliminate_regs_in_insn ( rtx  insn,
int  replace 
) [static]

static void elimination_effects ( rtx  x,
enum machine_mode  mem_mode 
) [static]

static void emit_input_reload_insns ( struct insn_chain *  chain,
struct reload *  rl,
rtx  old,
int  j 
) [static]

static void emit_output_reload_insns ( struct insn_chain *  chain,
struct reload *  rl,
int  j 
) [static]

static void emit_reload_insns ( struct insn_chain *  chain  )  [static]

static void failed_reload ( rtx  insn,
int  r 
) [static]

Definition at line 5005 of file reload1.c.

References asm_noperands(), error_for_asm(), fatal_insn, PATTERN, and rld.

static int find_reg ( struct insn_chain *  chain,
int  order 
) [static]

static void find_reload_regs ( struct insn_chain *  chain  )  [static]

static int finish_spills ( int  global  )  [static]

void fixup_abnormal_edges ( void   ) 

static void forget_old_reloads_1 ( rtx  x,
rtx ignored  ATTRIBUTE_UNUSED,
void *data  ATTRIBUTE_UNUSED 
) [static]

static void forget_old_reloads_1 ( rtx  ,
rtx  ,
void  
) [static]

static int free_for_value_p ( int  regno,
enum machine_mode  mode,
int  opnum,
enum reload_type  type,
rtx  value,
rtx  out,
int  reloadnum,
int  ignore_address_reloads 
) [static]

Definition at line 4954 of file reload1.c.

References hard_regno_nregs, nregs, and reload_reg_free_for_value_p().

static int function_invariant_p ( rtx  x  )  [static]

Definition at line 786 of file local-alloc.c.

static rtx gen_reload ( rtx  out,
rtx  in,
int  opnum,
enum reload_type  type 
) [static]

Definition at line 7377 of file reload1.c.

static rtx inc_for_reload ( rtx  reloadreg,
rtx  in,
rtx  value,
int  inc_amount 
) [static]

static bool inherit_piecemeal_p ( int r  ATTRIBUTE_UNUSED,
int regno  ATTRIBUTE_UNUSED 
) [static]

Definition at line 6961 of file reload1.c.

References GET_MODE, r, REG_CANNOT_CHANGE_MODE_P, reg_raw_mode, and rld.

static bool inherit_piecemeal_p ( int  ,
int   
) [static]

Referenced by emit_reload_insns().

static void init_elim_table ( void   )  [static]

void init_reload ( void   ) 

void mark_home_live ( int  regno  ) 

Definition at line 2070 of file reload1.c.

References hard_regno_nregs, i, PSEUDO_REGNO_MODE, reg_renumber, and regs_ever_live.

static void mark_not_eliminable ( rtx  dest,
rtx  x,
void *data  ATTRIBUTE_UNUSED 
) [static]

static void mark_not_eliminable ( rtx  ,
rtx  ,
void  
) [static]

static void mark_reload_reg_in_use ( unsigned int  regno,
int  opnum,
enum reload_type  type,
enum machine_mode  mode 
) [static]

static void maybe_fix_stack_asms ( void   )  [static]

static void merge_assigned_reloads ( rtx  insn  )  [static]

struct insn_chain* new_insn_chain ( void   )  [read]

Definition at line 498 of file reload1.c.

References c, INIT_REG_SET, obstack_alloc, reload_obstack, and unused_insn_chains.

static void order_regs_for_reload ( struct insn_chain *  chain  )  [static]

int reload ( rtx  first,
int  global 
)

Definition at line 637 of file reload1.c.

References addr(), alter_reg(), arg_pointer_rtx, assign_stack_local(), bad_spill_regs_global, BITS_PER_UNIT, calculate_needs_all_insns(), CALL_INSN_FUNCTION_USAGE, CALL_P, call_used_regs, caller_save_needed, elim_table::can_eliminate, can_throw_internal(), cfun, cleanup_subreg_operands(), CLEAR_HARD_REG_SET, CLEAR_REG_SET, CLEAR_REGNO_REG_SET, clear_secondary_mem(), CONSTANT_P, copy_rtx(), current_function_has_nonlocal_label, delete_caller_save_insns(), delete_dead_insn(), delete_insn(), eliminate_regs(), emit_note(), failure, find_reg_note(), finish_spills(), first_label_num, FIRST_PSEUDO_REGISTER, fixed_regs, fixup_abnormal_edges(), flag_pic, flag_stack_check, FOR_EACH_BB, force_const_mem(), frame_pointer_needed, frame_pointer_rtx, free(), elim_table::from, function_invariant_p(), gcc_assert, gen_rtx_INSN_LIST, GET_CODE, get_first_label_num(), get_frame_size(), get_max_uid(), GET_MODE, basic_block_def::global_live_at_start, HARD_FRAME_POINTER_REGNUM, HARD_REG_SET, HOST_WIDE_INT, i, init_elim_table(), init_recog(), init_save_areas(), insn, INSN_P, insns_need_reload, last_spill_reg, LAST_VIRTUAL_REGISTER, LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P, LOCAL_REGNO, mark_elimination(), mark_home_live(), mark_not_eliminable(), max_label_num(), max_regno, maybe_fix_stack_asms(), MEM, MEM_ATTRS, MEM_COPY_ATTRIBUTES, MEM_IN_STRUCT_P, MEM_P, MEM_READONLY_P, MEM_SCALAR_P, memcpy, memory_operand(), memset, n_spills, NEXT_INSN, NOTE_INSN_DELETED, NOTE_P, note_stores(), NULL, NULL_RTX, num_eliminable, num_eliminable_invariants, NUM_ELIMINABLE_REGS, num_labels, obstack_alloc, obstack_free, offsets_at, offsets_known_at, PATTERN, PLUS, pseudo_forbidden_regs, pseudo_previous_regs, PUT_CODE, PUT_MODE, REG_DEAD, REG_EQUAL, REG_EQUIV, reg_equiv_address, reg_equiv_constant, reg_equiv_init, reg_equiv_mem, reg_equiv_memory_loc, reg_equiv_memory_loc_varray, REG_FUNCTION_VALUE_P, REG_INC, REG_LIBCALL, reg_max_ref_width, REG_NOTE_KIND, REG_NOTES, reg_old_renumber, REG_P, reg_renumber, REG_RETVAL, reg_set_p(), REG_UNUSED, REG_USERVAR_P, REGNO, REGNO_POINTER_ALIGN, regno_reg_rtx, regs_ever_live, reload_as_needed(), reload_completed, reload_first_uid, reload_firstobj, reload_in_progress, reload_obstack, reload_startobj, replace_pseudos_in(), rtx_equal_p(), save_call_clobbered_regs(), scan_paradoxical_subregs(), select_reload_regs(), SET_DEST, SET_HARD_REG_BIT, set_initial_elim_offsets(), set_initial_label_offsets(), SET_INSN_DELETED, SET_SRC, setup_save_areas(), single_set, size, something_needs_elimination, something_needs_operands_changed, spill_hard_reg(), spill_regs, spill_stack_slot, spill_stack_slot_width, spilled_pseudos, STACK_CHECK_BUILTIN, STACK_CHECK_FIXED_FRAME_SIZE, STACK_CHECK_MAX_FRAME_SIZE, stack_pointer_rtx, strict_memory_address_p(), TEST_HARD_REG_BIT, elim_table::to, UNITS_PER_WORD, unshare_all_rtl_again(), unused_insn_chains, update_eliminables(), USE, used_spill_regs, VARRAY_GROW, verify_initial_elim_offsets(), warning, x, xcalloc(), XEXP, and xmalloc().

static void reload_as_needed ( int  live_known  )  [static]

static int reload_reg_class_lower ( const void r1p,
const void r2p 
) [static]

Definition at line 1532 of file reload1.c.

References int, reg_class_size, and rld.

static int reload_reg_free_for_value_p ( int  start_regno,
int  regno,
int  opnum,
enum reload_type  type,
rtx  value,
rtx  out,
int  reloadnum,
int  ignore_address_reloads 
) [static]

static int reload_reg_free_p ( unsigned int  regno,
int  opnum,
enum reload_type  type 
) [static]

static int reload_reg_reaches_end_p ( unsigned int  regno,
int  opnum,
enum reload_type  type 
) [static]

static int reloads_conflict ( int  r1,
int  r2 
) [static]

Definition at line 4673 of file reload1.c.

static void replace_pseudos_in ( rtx loc,
enum machine_mode  mem_mode,
rtx  usage 
) [static]

static void scan_paradoxical_subregs ( rtx  x  )  [static]

static void select_reload_regs ( void   )  [static]

Definition at line 1835 of file reload1.c.

References find_reload_regs(), and insns_need_reload.

static void set_initial_eh_label_offset ( rtx  label  )  [static]

Definition at line 3348 of file reload1.c.

References NULL_RTX, and set_label_offsets().

Referenced by set_initial_label_offsets().

static void set_initial_elim_offsets ( void   )  [static]

static void set_initial_label_offsets ( void   )  [static]

static void set_label_offsets ( rtx  x,
rtx  insn,
int  initial_p 
) [static]

static void set_offsets_for_label ( rtx  insn  )  [static]

static int set_reload_reg ( int  i,
int  r 
) [static]

static void spill_failure ( rtx  insn,
enum reg_class  class 
) [static]

Definition at line 1880 of file reload1.c.

References asm_noperands(), error(), error_for_asm(), fatal_insn, PATTERN, and reg_class_names.

static void spill_hard_reg ( unsigned int  regno,
int  cant_eliminate 
) [static]

static void update_eliminable_offsets ( void   )  [static]

static void update_eliminables ( HARD_REG_SET *  pset  )  [static]

static bool verify_initial_elim_offsets ( void   )  [static]


Variable Documentation

HARD_REG_SET bad_spill_regs [static]

Definition at line 181 of file reload1.c.

HARD_REG_SET bad_spill_regs_global [static]

Definition at line 187 of file reload1.c.

Definition at line 256 of file reload1.c.

Referenced by find_free_reg(), find_reg(), prepare_function_start(), and reload().

Definition at line 235 of file reload1.c.

Referenced by find_reloads_address(), init_reload(), and reload_combine().

int failure [static]

Definition at line 621 of file reload1.c.

int first_label_num [static]

Definition at line 358 of file reload1.c.

Definition at line 232 of file reload1.c.

Referenced by find_reloads_address(), and init_reload().

rtx inpaddr_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6114 of file reload1.c.

rtx input_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6113 of file reload1.c.

rtx input_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6110 of file reload1.c.

struct insn_chain* insns_need_reload [static]

Definition at line 290 of file reload1.c.

int last_spill_reg [static]

Definition at line 219 of file reload1.c.

int n_spills [static]

Definition at line 151 of file reload1.c.

rtx new_spill_reg_store[FIRST_PSEUDO_REGISTER] [static]

Definition at line 6123 of file reload1.c.

int num_eliminable [static]

Definition at line 344 of file reload1.c.

Definition at line 347 of file reload1.c.

int num_labels [static]

Definition at line 364 of file reload1.c.

Definition at line 341 of file reload1.c.

HOST_WIDE_INT(* offsets_at)[NUM_ELIMINABLE_REGS] [static]

Definition at line 360 of file reload1.c.

char* offsets_known_at [static]

Definition at line 359 of file reload1.c.

rtx operand_reload_insns = 0 [static]

Definition at line 6118 of file reload1.c.

Definition at line 6111 of file reload1.c.

Definition at line 6112 of file reload1.c.

Definition at line 6119 of file reload1.c.

rtx other_output_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6120 of file reload1.c.

rtx outaddr_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6117 of file reload1.c.

rtx output_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6116 of file reload1.c.

rtx output_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6115 of file reload1.c.

HARD_REG_SET* pseudo_forbidden_regs [static]

Definition at line 211 of file reload1.c.

HARD_REG_SET* pseudo_previous_regs [static]

Definition at line 205 of file reload1.c.

Definition at line 248 of file reload1.c.

Definition at line 316 of file reload1.c.

Definition at line 97 of file reload1.c.

rtx* reg_equiv_init [static]

Definition at line 123 of file reload1.c.

Definition at line 103 of file reload1.c.

Definition at line 107 of file reload1.c.

Referenced by init_reload(), reload(), and rest_of_handle_old_regalloc().

char* reg_has_output_reload [static]

Definition at line 87 of file reload1.c.

HARD_REG_SET reg_is_output_reload [static]

Definition at line 91 of file reload1.c.

Definition at line 83 of file reload1.c.

unsigned int* reg_max_ref_width [static]

Definition at line 119 of file reload1.c.

short* reg_old_renumber [static]

Definition at line 126 of file reload1.c.

HARD_REG_SET reg_reloaded_call_part_clobbered [static]

int reg_reloaded_contents[FIRST_PSEUDO_REGISTER] [static]

Definition at line 132 of file reload1.c.

HARD_REG_SET reg_reloaded_dead [static]

Definition at line 143 of file reload1.c.

HARD_REG_SET reg_reloaded_died [static]

Definition at line 6124 of file reload1.c.

rtx reg_reloaded_insn[FIRST_PSEUDO_REGISTER] [static]

Definition at line 137 of file reload1.c.

HARD_REG_SET reg_reloaded_valid [static]

Definition at line 140 of file reload1.c.

HARD_REG_SET reg_used_in_insn [static]

Definition at line 4148 of file reload1.c.

Definition at line 252 of file reload1.c.

Referenced by delete_address_reloads_1(), find_equiv_reg(), and reload().

Definition at line 279 of file reload1.c.

enum insn_code reload_in_optab[NUM_MACHINE_MODES]

Definition at line 260 of file reload1.c.

Definition at line 4700 of file reload1.c.

char reload_inherited[MAX_RELOADS]

Definition at line 4696 of file reload1.c.

Definition at line 287 of file reload1.c.

char* reload_insn_firstobj [static]

Definition at line 283 of file reload1.c.

Definition at line 271 of file reload1.c.

short reload_order[MAX_RELOADS] [static]

Definition at line 1639 of file reload1.c.

enum insn_code reload_out_optab[NUM_MACHINE_MODES]

rtx reload_override_in[MAX_RELOADS]

Definition at line 4704 of file reload1.c.

HARD_REG_SET reload_reg_unavailable [static]

Definition at line 4115 of file reload1.c.

HARD_REG_SET reload_reg_used [static]

Definition at line 4117 of file reload1.c.

HARD_REG_SET reload_reg_used_at_all [static]

Definition at line 4140 of file reload1.c.

HARD_REG_SET reload_reg_used_for_inherit [static]

Definition at line 4144 of file reload1.c.

HARD_REG_SET reload_reg_used_in_inpaddr_addr[MAX_RECOG_OPERANDS] [static]

Definition at line 4121 of file reload1.c.

HARD_REG_SET reload_reg_used_in_input[MAX_RECOG_OPERANDS] [static]

Definition at line 4127 of file reload1.c.

HARD_REG_SET reload_reg_used_in_input_addr[MAX_RECOG_OPERANDS] [static]

Definition at line 4119 of file reload1.c.

HARD_REG_SET reload_reg_used_in_insn [static]

Definition at line 4135 of file reload1.c.

HARD_REG_SET reload_reg_used_in_op_addr [static]

Definition at line 4131 of file reload1.c.

HARD_REG_SET reload_reg_used_in_op_addr_reload [static]

Definition at line 4133 of file reload1.c.

HARD_REG_SET reload_reg_used_in_other_addr [static]

Definition at line 4137 of file reload1.c.

HARD_REG_SET reload_reg_used_in_outaddr_addr[MAX_RECOG_OPERANDS] [static]

Definition at line 4125 of file reload1.c.

HARD_REG_SET reload_reg_used_in_output[MAX_RECOG_OPERANDS] [static]

Definition at line 4129 of file reload1.c.

HARD_REG_SET reload_reg_used_in_output_addr[MAX_RECOG_OPERANDS] [static]

Definition at line 4123 of file reload1.c.

int reload_spill_index[MAX_RELOADS]

Definition at line 4708 of file reload1.c.

Definition at line 275 of file reload1.c.

Definition at line 616 of file reload1.c.

Definition at line 618 of file reload1.c.

int spill_add_cost[FIRST_PSEUDO_REGISTER] [static]

Definition at line 1569 of file reload1.c.

int spill_cost[FIRST_PSEUDO_REGISTER] [static]

Definition at line 1564 of file reload1.c.

char spill_indirect_levels [static]

Definition at line 227 of file reload1.c.

short spill_reg_order[FIRST_PSEUDO_REGISTER] [static]

Definition at line 175 of file reload1.c.

rtx spill_reg_rtx[FIRST_PSEUDO_REGISTER] [static]

Definition at line 157 of file reload1.c.

rtx spill_reg_store[FIRST_PSEUDO_REGISTER] [static]

Definition at line 162 of file reload1.c.

rtx spill_reg_stored_to[FIRST_PSEUDO_REGISTER] [static]

Definition at line 167 of file reload1.c.

short spill_regs[FIRST_PSEUDO_REGISTER] [static]

Definition at line 198 of file reload1.c.

rtx spill_stack_slot[FIRST_PSEUDO_REGISTER] [static]

Definition at line 238 of file reload1.c.

unsigned int spill_stack_slot_width[FIRST_PSEUDO_REGISTER] [static]

Definition at line 241 of file reload1.c.

Definition at line 244 of file reload1.c.

struct insn_chain* unused_insn_chains = 0 [static]

Definition at line 494 of file reload1.c.

HARD_REG_SET used_spill_regs [static]

Definition at line 215 of file reload1.c.

HARD_REG_SET used_spill_regs_local [static]

Definition at line 1642 of file reload1.c.


Generated on Wed Apr 8 15:43:22 2009 for Open64 by  doxygen 1.5.6