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

#include "config.h"
#include "system.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 "cselib.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
type  reg_use

Defines

#define REGISTER_MOVE_COST(m, x, y)   2
#define LOCAL_REGNO(REGNO)   0
#define NUM_ELIMINABLE_REGS   ARRAY_SIZE (reg_eliminate_1)
#define RELOAD_COMBINE_MAX_USES   6
#define LABEL_LIVE(LABEL)   (label_live[CODE_LABEL_NUMBER (LABEL) - min_labelno])
#define MODES_OK_FOR_MOVE2ADD(OUTMODE, INMODE)

Functions/Subroutines

static void
replace_pseudos_in_call_usage 
PARAMS ((rtx *, enum machine_mode, rtx))
static void maybe_fix_stack_asms PARAMS ((void))
static void copy_reloads PARAMS ((struct insn_chain *))
static void
calculate_needs_all_insns 
PARAMS ((int))
static int find_reg PARAMS ((struct insn_chain *, int))
static void spill_failure PARAMS ((rtx, enum reg_class))
static void count_spilled_pseudo PARAMS ((int, int, int))
static void delete_dead_insn PARAMS ((rtx))
static void alter_reg PARAMS ((int, int))
static void set_label_offsets PARAMS ((rtx, rtx, int))
static void elimination_effects PARAMS ((rtx, enum machine_mode))
static int eliminate_regs_in_insn PARAMS ((rtx, int))
static void mark_not_eliminable PARAMS ((rtx, rtx, void *))
static void update_eliminables PARAMS ((HARD_REG_SET *))
static void spill_hard_reg PARAMS ((unsigned int, int))
static void ior_hard_reg_set PARAMS ((HARD_REG_SET *, HARD_REG_SET *))
static int reload_reg_class_lower PARAMS ((const PTR, const PTR))
static void mark_reload_reg_in_use PARAMS ((unsigned int, int, enum reload_type, enum machine_mode))
static int reload_reg_free_p PARAMS ((unsigned int, int, enum reload_type))
static int
reload_reg_free_for_value_p 
PARAMS ((int, int, int, enum reload_type, rtx, rtx, int, int))
static int free_for_value_p PARAMS ((int, enum machine_mode, int, enum reload_type, rtx, rtx, int, int))
static int allocate_reload_reg PARAMS ((struct insn_chain *, int, int))
static void choose_reload_regs_init PARAMS ((struct insn_chain *, rtx *))
static void emit_input_reload_insns PARAMS ((struct insn_chain *, struct reload *, rtx, int))
static void
emit_output_reload_insns 
PARAMS ((struct insn_chain *, struct reload *, int))
static void delete_output_reload PARAMS ((rtx, int, int))
static void delete_address_reloads PARAMS ((rtx, rtx))
static void
delete_address_reloads_1 
PARAMS ((rtx, rtx, rtx))
static rtx inc_for_reload PARAMS ((rtx, rtx, rtx, int))
static void reload_combine_note_use PARAMS ((rtx *, rtx))
static HOST_WIDE_INT sext_for_mode PARAMS ((enum machine_mode, HOST_WIDE_INT))
void init_reload ()
struct insn_chain * new_insn_chain ()
void compute_use_by_pseudos (HARD_REG_SET *to, regset from)
static void replace_pseudos_in_call_usage (rtx *loc, enum machine_mode mem_mode, rtx usage)
int reload (rtx first, int global)
static void maybe_fix_stack_asms ()
static void copy_reloads (struct insn_chain *chain)
static void calculate_needs_all_insns (int global)
static int reload_reg_class_lower (PTR r1p, const PTR r2p) const
static void count_pseudo (int reg)
static void order_regs_for_reload (struct insn_chain *chain)
static void count_spilled_pseudo (int spilled, int spilled_nregs, int reg)
static int find_reg (struct insn_chain *chain, int order)
static void find_reload_regs (struct insn_chain *chain)
static void select_reload_regs ()
static void delete_caller_save_insns ()
static void spill_failure (rtx insn, enum reg_class class)
static void delete_dead_insn (rtx insn)
static void alter_reg (int i, int from_reg)
void mark_home_live (int regno)
static void set_label_offsets (rtx x, rtx insn, int initial_p)
rtx eliminate_regs (rtx x, enum machine_mode mem_mode, rtx insn)
static void elimination_effects (rtx x, enum machine_mode mem_mode)
static void check_eliminable_occurrences (rtx x)
static int eliminate_regs_in_insn (rtx insn, int replace)
static void update_eliminable_offsets ()
static void mark_not_eliminable (rtx dest, rtx x, data)
static void verify_initial_elim_offsets ()
static void set_initial_elim_offsets ()
static void set_initial_label_offsets ()
static void set_offsets_for_label (rtx insn)
static void update_eliminables (HARD_REG_SET *pset)
static void init_elim_table ()
static void spill_hard_reg (unsigned int regno, int cant_eliminate)
static void ior_hard_reg_set (HARD_REG_SET *set1, HARD_REG_SET *set2)
static int finish_spills (int global)
static void scan_paradoxical_subregs (rtx x)
static void reload_as_needed (int live_known)
static void forget_old_reloads_1 (rtx x, ignored, data)
static void mark_reload_reg_in_use (unsigned int regno, int opnum, enum reload_type type, enum machine_mode mode)
static void clear_reload_reg_in_use (unsigned int regno, int opnum, enum reload_type type, enum machine_mode mode)
static int reload_reg_free_p (unsigned int regno, int opnum, enum reload_type type)
static int reload_reg_reaches_end_p (unsigned int regno, int opnum, enum reload_type type)
int reloads_conflict (int r1, int r2)
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 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 int conflicts_with_override (rtx x)
static void failed_reload (rtx insn, int r)
static int set_reload_reg (int i, int r)
static int allocate_reload_reg (chain, int r, int last_reload)
static void choose_reload_regs_init (struct insn_chain *chain, rtx *save_reload_reg_rtx)
static void choose_reload_regs (struct insn_chain *chain)
void deallocate_reload_reg (int r)
static void merge_assigned_reloads (rtx insn)
static void emit_input_reload_insns (struct insn_chain *chain, struct reload *rl, rtx old, int j)
static void emit_output_reload_insns (struct insn_chain *chain, struct reload *rl, int j)
static void do_input_reload (struct insn_chain *chain, struct reload *rl, int j)
static void do_output_reload (struct insn_chain *chain, struct reload *rl, int j)
static void emit_reload_insns (struct insn_chain *chain)
rtx gen_reload (rtx out, rtx in, int opnum, enum reload_type type)
static void delete_output_reload (rtx insn, int j, int last_reload_reg)
static void delete_address_reloads (rtx dead_insn, rtx current_insn)
static void delete_address_reloads_1 (rtx dead_insn, rtx x, rtx current_insn)
static rtx inc_for_reload (rtx reloadreg, rtx in, rtx value, int inc_amount)
static int reload_cse_noop_set_p (rtx set)
static void reload_cse_simplify (rtx insn, rtx testreg)
static void reload_cse_regs_1 (rtx first)
void reload_cse_regs (rtx first)
static int reload_cse_simplify_set (rtx set, rtx insn)
static int reload_cse_simplify_operands (rtx insn, rtx testreg)
static void reload_combine ()
static void reload_combine_note_store (rtx dst, rtx set, data)
static void reload_combine_note_use (rtx *xp, rtx insn)
static HOST_WIDE_INT sext_for_mode (enum machine_mode mode, HOST_WIDE_INT value)
static void reload_cse_move2add (rtx first)
static void move2add_note_store (rtx dst, rtx set, data)
static void copy_eh_notes (rtx insn, rtx x)
void fixup_abnormal_edges ()

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
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 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
tree current_function_decl
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 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
type {
   struct reg_use   reg_use [RELOAD_COMBINE_MAX_USES]
   int   use_index
   rtx   offset
   int   store_ruid
   int   use_ruid
reg_state [FIRST_PSEUDO_REGISTER]
static int reload_combine_ruid
static int reg_set_luid [FIRST_PSEUDO_REGISTER]
static HOST_WIDE_INT reg_offset [FIRST_PSEUDO_REGISTER]
static int reg_base_reg [FIRST_PSEUDO_REGISTER]
static enum machine_mode reg_mode [FIRST_PSEUDO_REGISTER]
static int move2add_luid
static int move2add_last_label_luid


Define Documentation

#define LABEL_LIVE ( LABEL   )     (label_live[CODE_LABEL_NUMBER (LABEL) - min_labelno])

Definition at line 8583 of file reload1.c.

Referenced by reload_combine().

#define LOCAL_REGNO ( REGNO   )     0

Definition at line 85 of file reload1.c.

#define MODES_OK_FOR_MOVE2ADD ( OUTMODE,
INMODE   ) 

Value:

(GET_MODE_SIZE (OUTMODE) == GET_MODE_SIZE (INMODE) \
   || (GET_MODE_SIZE (OUTMODE) <= GET_MODE_SIZE (INMODE) \
       && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (OUTMODE), \
         GET_MODE_BITSIZE (INMODE))))

Definition at line 9101 of file reload1.c.

Referenced by move2add_note_store(), and reload_cse_move2add().

#define NUM_ELIMINABLE_REGS   ARRAY_SIZE (reg_eliminate_1)

#define REGISTER_MOVE_COST ( m,
x,
 )     2

Definition at line 81 of file reload1.c.

#define RELOAD_COMBINE_MAX_USES   6

Definition at line 8552 of file reload1.c.

Referenced by reload_combine(), reload_combine_note_store(), and reload_combine_note_use().


Function Documentation

static int allocate_reload_reg ( chain  ,
int  r,
int  last_reload 
) [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 5310 of file reload1.c.

References abort, allocate_reload_reg(), 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(), gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, i1, in, insn, int, mark_reload_reg_in_use(), MAX, MAX_RELOADS, MEM, MEMORY_MOVE_COST, mode, n_earlyclobbers, n_reloads, n_spills, NO_REGS, nr, nregs, NULL, NULL_RTX, optimize, out, PLUS, qsort(), r, REG, 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_reloaded_contents, reg_reloaded_dead, reg_reloaded_insn, reg_reloaded_valid, REGISTER_MOVE_COST, REGNO, regno_clobbered_p(), REGNO_REG_CLASS, 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_OTHER, reload_reg_class_lower(), 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.

Referenced by reload_as_needed().

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 5032 of file reload1.c.

References n_reloads, and reg_overlap_mentioned_p().

Referenced by emit_input_reload_insns().

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

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

Definition at line 1416 of file reload1.c.

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

Referenced by calculate_needs_all_insns().

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 5993 of file reload1.c.

Referenced by remove_address_replacements().

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 1871 of file reload1.c.

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

Referenced by reload().

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 5046 of file reload1.c.

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

Referenced by choose_reload_regs().

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   ) 

Definition at line 9468 of file reload1.c.

Referenced by reg_alloc(), and reload().

static void forget_old_reloads_1 ( rtx  x,
ignored  ,
data   
) [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]

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

Definition at line 7377 of file reload1.c.

Referenced by emit_input_reload_insns(), emit_output_reload_insns(), and gen_reload().

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

static void init_elim_table ( void   )  [static]

void init_reload ( void   ) 

Definition at line 467 of file reload1.c.

Referenced by backend_init().

static void ior_hard_reg_set ( HARD_REG_SET *  set1,
HARD_REG_SET *  set2 
) [static]

Definition at line 3593 of file reload1.c.

References IOR_HARD_REG_SET.

Referenced by finish_spills().

void mark_home_live ( int  regno  ) 

Definition at line 2101 of file reload1.c.

Referenced by reload(), and retry_global_alloc().

static void mark_not_eliminable ( rtx  dest,
rtx  x,
data   
) [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]

static void move2add_note_store ( rtx  dst,
rtx  set,
data   
) [static]

struct insn_chain* new_insn_chain ( void   )  [read]

Definition at line 525 of file reload1.c.

References c, INIT_REG_SET, obstack_alloc, and reload_obstack.

Referenced by build_insn_chain(), and insert_one_insn().

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

static HOST_WIDE_INT sext_for_mode PARAMS ( (enum machine_mode, HOST_WIDE_INT)   )  [static]

static void reload_combine_note_use PARAMS ( (rtx *, rtx  )  [static]

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

static void delete_address_reloads_1 PARAMS ( (rtx, rtx, rtx  )  [static]

static void delete_address_reloads PARAMS ( (rtx, rtx  )  [static]

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

static void emit_output_reload_insns PARAMS ( (struct insn_chain *, struct reload *, int)   )  [static]

static void emit_input_reload_insns PARAMS ( (struct insn_chain *, struct reload *, rtx, int)   )  [static]

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

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

static int free_for_value_p PARAMS ( (int, enum machine_mode, int, enum reload_type, rtx, rtx, int, int)   )  [static]

static int reload_reg_free_for_value_p PARAMS ( (int, int, int, enum reload_type, rtx, rtx, int, int)   )  [static]

static int reload_reg_free_p PARAMS ( (unsigned int, int, enum reload_type  )  [static]

static void mark_reload_reg_in_use PARAMS ( (unsigned int, int, enum reload_type, enum machine_mode  )  [static]

static int reload_reg_class_lower PARAMS ( (const PTR, const PTR  )  [static]

static void ior_hard_reg_set PARAMS ( (HARD_REG_SET *, HARD_REG_SET *)   )  [static]

static void spill_hard_reg PARAMS ( (unsigned int, int)   )  [static]

static void update_eliminables PARAMS ( (HARD_REG_SET *)   )  [static]

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

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

static void elimination_effects PARAMS ( (rtx, enum machine_mode  )  [static]

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

static void alter_reg PARAMS ( (int, int)   )  [static]

static void delete_dead_insn PARAMS ( (rtx  )  [static]

static void count_spilled_pseudo PARAMS ( (int, int, int)   )  [static]

static void spill_failure PARAMS ( (rtx, enum reg_class  )  [static]

static int find_reg PARAMS ( (struct insn_chain *, int)   )  [static]

static void calculate_needs_all_insns PARAMS ( (int)   )  [static]

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

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

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

static void replace_pseudos_in_call_usage PARAMS ( (rtx *, enum machine_mode, rtx  )  [static]

int reload ( rtx  first,
int  global 
)

static void reload_as_needed ( int  live_known  )  [static]

static void reload_combine ( void   )  [static]

static void reload_combine_note_store ( rtx  dst,
rtx  set,
data   
) [static]

static void reload_combine_note_use ( rtx xp,
rtx  insn 
) [static]

static void reload_cse_move2add ( rtx  first  )  [static]

static int reload_cse_noop_set_p ( rtx  set  )  [static]

Definition at line 8022 of file reload1.c.

References rtx_equal_for_cselib_p(), SET_DEST, and SET_SRC.

Referenced by reload_cse_simplify().

void reload_cse_regs ( rtx first   ) 

static void reload_cse_regs_1 ( rtx  first  )  [static]

static void reload_cse_simplify ( rtx  insn,
rtx  testreg 
) [static]

static int reload_cse_simplify_operands ( rtx  insn,
rtx  testreg 
) [static]

static int reload_cse_simplify_set ( rtx  set,
rtx  insn 
) [static]

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

Definition at line 1547 of file reload1.c.

References int, reg_class_size, and rld.

Referenced by choose_reload_regs(), and find_reload_regs().

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 
)

Definition at line 4673 of file reload1.c.

Referenced by find_reg().

static void replace_pseudos_in_call_usage ( 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 1858 of file reload1.c.

References find_reload_regs(), and insns_need_reload.

Referenced by reload().

static void set_initial_elim_offsets ( void   )  [static]

static void set_initial_label_offsets ( void   )  [static]

Definition at line 3382 of file reload1.c.

References forced_labels, memset, NULL_RTX, num_labels, offsets_known_at, set_label_offsets(), x, and XEXP.

Referenced by reload().

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 HOST_WIDE_INT sext_for_mode ( enum machine_mode  mode,
HOST_WIDE_INT  value 
) [static]

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

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 void verify_initial_elim_offsets ( void   )  [static]


Variable Documentation

HARD_REG_SET bad_spill_regs [static]

Definition at line 179 of file reload1.c.

Referenced by find_reg(), and order_regs_for_reload().

HARD_REG_SET bad_spill_regs_global [static]

Definition at line 185 of file reload1.c.

Referenced by find_reg(), finish_spills(), reload(), scan_paradoxical_subregs(), and spill_hard_reg().

Definition at line 254 of file reload1.c.

Definition at line 409 of file toplev.c.

Referenced by access_can_touch_variable(), add_stmt(), addr_for_mem_ref(), adjust_accumulator_values(), adjust_return_value(), adjust_stack_reference(), alpha_end_function(), alpha_start_function(), analyze_function(), arc_compute_frame_size(), arc_compute_function_type(), arc_delay_slots_for_epilogue(), arc_output_function_epilogue(), arc_output_function_prologue(), arm_compute_func_type(), arm_is_longcall_p(), arm_output_function_epilogue(), arm_size_return_regs(), assemble_start_function(), assign_parm_find_data_types(), assign_parm_find_entry_rtl(), assign_parms(), assign_parms_augmented_arg_list(), assign_parms_initialize_all(), avr_output_function_epilogue(), avr_output_function_prologue(), avr_peep2_scratch_safe(), avr_regs_to_save(), avr_simple_epilogue(), begin_function_body(), begin_inline_definitions(), begin_mem_initializers(), bfin_expand_epilogue(), bfin_expand_prologue(), bfin_frame_pointer_required(), bfin_function_ok_for_sibcall(), bfin_hard_regno_rename_ok(), bfin_load_pic_reg(), branch_prob(), browse_tree(), build_class_init(), build_compound_literal(), build_cplus_new(), build_duplicate_type(), build_external_ref(), build_local_temp(), build_mips16_function_stub(), build_modify_expr(), build_module_descriptor(), build_new(), build_new_method_call(), build_selector_translation_table(), build_target_expr_with_type(), c4x_assembler_function_p(), c4x_interrupt_function_p(), c4x_leaf_function_p(), c4x_naked_function_p(), c_add_case_label(), c_cannot_inline_tree_fn(), c_expand_body(), c_expand_decl_stmt(), c_expand_deferred_function(), c_expand_return(), c_finish_return(), c_init_decl_processing(), c_make_fname_decl(), c_parser_declaration_or_fndef(), c_parser_objc_method_definition(), c_pop_function_context(), calc_live_regs(), call_insn_operand(), cgraph_analyze_function(), cgraph_build_static_cdtor(), cgraph_decide_inlining_incrementally(), cgraph_expand_function(), cgraph_rtl_info(), check_counter(), check_field_decls(), check_function_format(), check_member_template(), check_return_expr(), choose_function_section(), clear_pending_stack_adjust(), clobber_return_register(), compile_resource_file(), complete_start_java_method(), compute_avail(), compute_checksum(), compute_flow_insensitive_aliasing(), compute_frame_size(), compute_register_save_size(), constant_val_insert(), construct_exit_block(), construct_virtual_base(), convert_local_reference(), copy_body(), coverage_begin_output(), cp_genericize_r(), cp_make_fname_decl(), cp_parser_ctor_initializer_opt(), cp_parser_init_declarator(), cp_parser_late_parsing_for_member(), cp_parser_mem_initializer_list(), cp_parser_template_declaration_after_export(), cp_print_error_function(), cp_unsave_r(), create_artificial_label(), create_label_decl(), create_mem_ref(), create_memory_tag(), create_omp_child_function(), create_temporary_var(), crx_compute_save_regs(), crx_interrupt_function_p(), crx_prepare_push_pop_string(), current_decl_namespace(), current_file_function_operand(), current_function_section(), current_scope(), cxx_init(), cxx_init_decl_processing(), cxx_printable_name(), d30v_stack_info(), debug_stack_info(), decl_constant_value(), decl_type_access_control(), default_section_type_flags(), define_label(), df_record_entry_block_defs(), diagnose_omp_structured_block_errors(), do_friend(), do_return_redirection(), dump_alias_info(), dump_alias_stats(), dump_cfg_stats(), dump_dfa_stats(), dump_immediate_uses(), dump_points_to_info(), dump_referenced_vars(), dump_tree_cfg(), dump_tree_ssa(), eliminate_regs(), eliminate_regs_1(), eliminate_tail_call(), embedded_pic_fnaddr_reg(), embedded_pic_offset(), emit_mem_initializers(), emit_register_classes(), end_java_method(), execute_build_cfg(), execute_free_datastructures(), execute_ipa_pass_list(), execute_lower_omp(), execute_mudflap_function_decls(), execute_mudflap_function_ops(), execute_one_pass(), execute_optimize_stdarg(), execute_todo(), expand_body(), expand_builtin(), expand_builtin_next_arg(), expand_builtin_profile_func(), expand_call(), expand_end_catch_block(), expand_epilogue(), expand_expr(), expand_expr_real_1(), expand_fixup(), expand_function_start(), expand_goto(), expand_goto_internal(), expand_inline_function(), expand_interrupt_handler_epilogue(), expand_interrupt_handler_prologue(), expand_java_field_op(), expand_java_return(), expand_load_internal(), expand_prologue(), expand_return(), expand_used_vars(), expand_value_return(), ffecom_do_entry_(), ffecom_finish_compile(), ffecom_finish_progunit(), ffecom_finish_symbol_transform_(), ffecom_gen_sfuncdef_(), ffecom_init_0(), ffecom_init_2(), ffecom_init_decl_processing(), ffecom_lookup_label(), ffecom_start_progunit_(), ffecom_subscript_check_(), ffecom_sym_transform_(), ffecom_temp_label(), ffecom_transform_equiv_(), ffestd_stmt_pass_(), ffeste_R1227(), final(), final_scan_insn(), final_start_function(), finalize_block_changes(), finalize_nrv(), find_stack_slot(), find_tail_calls(), finish_class(), finish_class_definition(), finish_compound_literal(), finish_constructor_body(), finish_destructor_body(), finish_fname_decls(), finish_function(), finish_function_body(), finish_goto_stmt(), finish_id_expression(), finish_named_return_value(), finish_non_static_data_member(), finish_return_stmt(), finish_static_initialization_or_destruction(), finish_this_expr(), fix_lexical_addr(), fixed_type_or_null(), fixup_gotos(), fname_as_string(), fname_decl(), fold_builtin_next_arg(), force_label_rtx(), force_poplevels(), frv_debug_stack(), frv_print_operand_jump_hint(), frv_stack_info(), function_epilogue(), function_prologue(), gate_handle_partition_blocks(), gate_rest_of_compilation(), generate_classfile(), genrtl_finish_function(), genrtl_named_return_value(), genrtl_scope_stmt(), genrtl_start_function(), get_coverage_counts(), get_exec_counts(), get_pending_sizes(), get_variable_decl(), gimple_add_tmp_var(), gimplify_expr(), gimplify_function_tree(), gimplify_return_expr(), gimplify_var_or_parm_decl(), give_name_to_locals(), grokdeclarator(), group_aliases(), GTY(), h8300_current_function_interrupt_function_p(), h8300_expand_epilogue(), h8300_expand_prologue(), h8300_output_function_prologue(), hack_identifier(), hack_method_prototype(), handle_alias_attribute(), handle_init_priority_attribute(), handle_section_attribute(), handle_weakref_attribute(), hppa_builtin_saveregs(), i960_output_call_insn(), i960_output_function_epilogue(), i960_output_ret_insn(), i960_reg_parm_stack_space(), ia64_compute_frame_size(), ia64_dwarf2out_def_steady_cfa(), ia64_epilogue_uses(), ia64_function_ok_for_sibcall(), identify_blocks(), init_function_start(), init_propagate_block_info(), init_reassoc(), initial_elimination_offset(), initialize_cold_section_name(), initialize_inlined_parameters(), insert_range_assertions(), instantiate_virtual_regs(), integrate_decl_tree(), integrate_parm_decls(), intra_create_variable_infos(), ip2k_init_elim_offset(), ipa_pta_execute(), iq2000_expand_prologue(), ix86_handle_dll_attribute(), ix86_internal_arg_pointer(), ix86_setup_incoming_varargs(), java_init_decl_processing(), java_lang_expand_expr(), lang_print_error(), layout_var_decl(), lhd_print_error_function(), load_type_state(), lookup_label(), lookup_static_chain(), lookup_template_class(), lower_bind_expr(), lower_builtin_setjmp(), lower_eh_constructs(), lower_function_body(), m32r_compute_frame_size(), m32r_compute_function_type(), m32r_hard_regno_rename_ok(), m32r_output_function_epilogue(), m32r_output_function_prologue(), m68hc11_initial_elimination_offset(), m68k_compute_frame_layout(), m68k_hard_regno_rename_ok(), m68k_output_function_epilogue(), m88k_builtin_saveregs(), m88k_va_start(), machopic_function_base_name(), make_label(), make_label_decl(), make_temporary_var_for_ref_to_temp(), mark_constant_function(), mark_current_function_as_interrupt(), mark_used(), mark_used_blocks(), may_be_aliased(), maybe_push_to_top_level(), maybe_warn_about_returning_address_of_local(), mcore_expand_prolog(), mcore_naked_function_p(), merge_type_state(), method_init_exceptions(), mf_decl_cache_locals(), mf_file_function_line_tree(), mf_varname_tree(), mips16_constant_after_function_p(), mips_can_use_return_insn(), mips_emit_loadgp(), mips_encode_section_info(), mips_expand_prologue(), mips_output_function_epilogue(), mips_output_function_prologue(), mips_save_reg_p(), mips_select_rtx_section(), mn10300_builtin_saveregs(), mt_debug_stack(), mt_expand_prologue(), n_regs_saved_by_prologue(), needs_to_live_in_memory(), new_omp_context(), nonnull_arg_p(), objc_expand_function_end(), omp_copy_decl(), omp_copy_decl_2(), one_static_initialization_or_destruction(), optimize_inline_calls(), optimize_sibling_and_tail_recursive_calls(), optimize_tail_recursion(), outer_curly_brace_block(), output_constant_def(), output_func_start_profiler(), output_function_exception_table(), output_function_profiler(), output_mi_thunk(), pa_output_function_prologue(), pdp11_output_function_prologue(), perform_member_init(), pop_access_scope(), pop_f_function_context(), pop_from_top_level(), pop_function_context(), pop_function_context_from(), pop_scope(), poplevel(), prepare_call_address(), print_instantiation_full_context(), print_operand(), process_assignment(), profile_function(), promoted_input_arg(), propagate_one_insn(), push_function_context(), push_function_context_to(), push_jvm_slot(), push_to_top_level(), push_type_0(), pushdecl(), pushdecl_maybe_friend(), pushdecl_with_scope(), put_var_into_stack(), read_class(), really_start_method(), rebuild_cgraph_edges(), recompute_tree_invarant_for_addr_expr(), recompute_tree_invariant_for_addr_expr(), record_vars(), record_vars_into(), remap_block(), remove_useless_stmts(), remove_useless_stmts_bind(), reorder_blocks(), rest_of_clean_state(), rest_of_compilation(), rest_of_handle_branch_prob(), rest_of_handle_branch_target_load_optimize(), rest_of_handle_cfg(), rest_of_handle_combine(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_eh(), rest_of_handle_final(), rest_of_handle_flow2(), rest_of_handle_gcse(), rest_of_handle_gcse2(), rest_of_handle_if_after_combine(), rest_of_handle_if_after_reload(), rest_of_handle_if_conversion(), rest_of_handle_jump(), rest_of_handle_jump2(), rest_of_handle_jump_bypass(), rest_of_handle_life(), rest_of_handle_loop2(), rest_of_handle_loop_optimize(), rest_of_handle_machine_reorg(), rest_of_handle_old_regalloc(), rest_of_handle_postreload(), rest_of_handle_regmove(), rest_of_handle_regrename(), rest_of_handle_reorder_blocks(), rest_of_handle_tracer(), rest_of_handle_value_profile_transformations(), rest_of_handle_variable_tracking(), rest_of_handle_web(), return_prediction(), romp_output_function_epilogue(), rs6000_emit_load_toc_table(), rs6000_output_function_epilogue(), s390_output_constant_pool(), save_expr(), set_local_type(), set_nothrow_function_flags(), setjmp_args_warning(), setjmp_protect_args(), setup_incoming_varargs(), sh_add_function_attribute(), sh_cfun_attr_renesas_p(), sh_cfun_interrupt_handler_p(), sh_expand_epilogue(), sh_expand_prologue(), sh_media_register_for_return(), sh_setup_incoming_varargs(), sh_symbian_handle_dll_attribute(), sort_mem_initializers(), sparc_compute_frame_size(), sparc_output_deferred_case_vectors(), start_cleanup_fn(), start_function(), start_java_method(), start_objects(), start_preparsed_function(), start_static_initialization_or_destruction(), store_parm_decls(), store_parm_decls_newstyle(), store_parm_decls_oldstyle(), substitute_ep_register(), suitable_for_tail_call_opt_p(), synthesize_method(), th_function_epilogue(), th_function_prologue(), thread_prologue_and_epilogue_insns(), thumb_exit(), thumb_output_function_prologue(), thumb_unexpanded_epilogue(), trampoline_address(), tree_cfg2vcg(), tree_expand_cfg(), tree_function_versioning(), tree_gen_interval_profiler(), tree_gen_one_value_profiler(), tree_gen_pow2_profiler(), tree_lowering_passes(), tree_mem_ref_addr(), tree_nrv(), tree_optimize_tail_calls_1(), tree_rest_of_compilation(), tree_verify_flow_info(), tsubst(), tsubst_expr(), unary_complex_lvalue(), undeclared_variable(), unlikely_text_section(), unqualified_name_lookup_error(), unsave_expr_now(), unshare_all_rtl(), use_thunk(), uses_arg_area_p(), v850_handle_data_area_attribute(), v850_insert_attributes(), vect_print_dump_info(), verify_jvm_instructions(), vt_add_function_parameters(), WFE_Expand_Expr(), xstormy16_interrupt_function_p(), xstormy16_output_addr_vec(), and xtensa_select_rtx_section().

Definition at line 233 of file reload1.c.

int failure [static]

int first_label_num [static]

Definition at line 362 of file reload1.c.

Definition at line 230 of file reload1.c.

rtx inpaddr_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6147 of file reload1.c.

rtx input_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6146 of file reload1.c.

rtx input_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6143 of file reload1.c.

struct insn_chain* insns_need_reload [static]

Definition at line 294 of file reload1.c.

Referenced by calculate_needs_all_insns(), finish_spills(), reload(), and select_reload_regs().

int last_spill_reg [static]

Definition at line 217 of file reload1.c.

Referenced by allocate_reload_reg(), reload(), and set_reload_reg().

Definition at line 9078 of file reload1.c.

Referenced by move2add_note_store(), and reload_cse_move2add().

int move2add_luid [static]

Definition at line 9074 of file reload1.c.

Referenced by move2add_note_store(), and reload_cse_move2add().

int n_spills [static]

Definition at line 149 of file reload1.c.

Referenced by allocate_reload_reg(), choose_reload_regs(), finish_spills(), and reload().

rtx new_spill_reg_store[FIRST_PSEUDO_REGISTER] [static]

Definition at line 6156 of file reload1.c.

int num_eliminable [static]

Definition at line 351 of file reload1.c.

Referenced by calculate_needs_all_insns(), reload(), and reload_as_needed().

int num_labels [static]

Definition at line 368 of file reload1.c.

Referenced by reload(), and set_initial_label_offsets().

Definition at line 345 of file reload1.c.

Definition at line 8573 of file reload1.c.

int(* offsets_at)[NUM_ELIMINABLE_REGS] [static]

Definition at line 364 of file reload1.c.

Referenced by reload(), set_label_offsets(), and set_offsets_for_label().

char* offsets_known_at [static]

Definition at line 363 of file reload1.c.

Referenced by reload(), set_initial_label_offsets(), and set_label_offsets().

rtx operand_reload_insns = 0 [static]

Definition at line 6151 of file reload1.c.

Definition at line 6144 of file reload1.c.

Definition at line 6145 of file reload1.c.

Definition at line 6152 of file reload1.c.

rtx other_output_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6153 of file reload1.c.

rtx outaddr_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6150 of file reload1.c.

rtx output_address_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6149 of file reload1.c.

rtx output_reload_insns[MAX_RECOG_OPERANDS] [static]

Definition at line 6148 of file reload1.c.

HARD_REG_SET* pseudo_forbidden_regs [static]

Definition at line 209 of file reload1.c.

Referenced by finish_spills(), and reload().

HARD_REG_SET* pseudo_previous_regs [static]

Definition at line 203 of file reload1.c.

Referenced by finish_spills(), and reload().

Definition at line 246 of file reload1.c.

Referenced by count_pseudo(), init_reload(), and order_regs_for_reload().

int reg_base_reg[FIRST_PSEUDO_REGISTER] [static]

Definition at line 9068 of file reload1.c.

Referenced by move2add_note_store(), and reload_cse_move2add().

Definition at line 320 of file reload1.c.

Referenced by init_elim_table().

Definition at line 115 of file reload1.c.

Definition at line 104 of file reload1.c.

rtx* reg_equiv_init [static]

Definition at line 119 of file reload1.c.

Definition at line 110 of file reload1.c.

char* reg_has_output_reload [static]

HARD_REG_SET reg_is_output_reload [static]

unsigned int* reg_max_ref_width [static]

Definition at line 122 of file reload1.c.

Referenced by alter_reg(), reload(), and scan_paradoxical_subregs().

enum machine_mode reg_mode[FIRST_PSEUDO_REGISTER] [static]

HOST_WIDE_INT reg_offset[FIRST_PSEUDO_REGISTER] [static]

Definition at line 9067 of file reload1.c.

short* reg_old_renumber [static]

Definition at line 129 of file reload1.c.

Referenced by finish_spills(), and reload().

int reg_reloaded_contents[FIRST_PSEUDO_REGISTER] [static]

HARD_REG_SET reg_reloaded_dead [static]

Definition at line 146 of file reload1.c.

Referenced by choose_reload_regs(), and emit_reload_insns().

HARD_REG_SET reg_reloaded_died [static]

Definition at line 6157 of file reload1.c.

rtx reg_reloaded_insn[FIRST_PSEUDO_REGISTER] [static]

Definition at line 140 of file reload1.c.

Referenced by choose_reload_regs(), and emit_reload_insns().

HARD_REG_SET reg_reloaded_valid [static]

int reg_set_luid[FIRST_PSEUDO_REGISTER] [static]

Definition at line 9060 of file reload1.c.

Referenced by move2add_note_store(), and reload_cse_move2add().

struct { ... } reg_state[FIRST_PSEUDO_REGISTER] [static]

struct reg_use reg_use[RELOAD_COMBINE_MAX_USES]

Definition at line 8571 of file reload1.c.

HARD_REG_SET reg_used_in_insn [static]

Definition at line 4190 of file reload1.c.

Referenced by choose_reload_regs(), and choose_reload_regs_init().

int reload_combine_ruid [static]

Definition at line 8581 of file reload1.c.

Referenced by reload_combine(), reload_combine_note_store(), and reload_combine_note_use().

Definition at line 250 of file reload1.c.

Definition at line 277 of file reload1.c.

Referenced by reload().

enum insn_code reload_in_optab[NUM_MACHINE_MODES]

Definition at line 263 of file reload1.c.

Definition at line 258 of file reload1.c.

Referenced by aligned_memory_operand(), alpha_expand_mov(), alpha_expand_mov_nobwx(), any_memory_operand(), arm_coproc_mem_operand(), c4x_emit_move_sequence(), change_address_1(), cirrus_memory_offset(), constrain_operands(), do_movsi(), double_memory_operand(), emit_move_change_mode(), emit_move_complex(), emit_move_insn_1(), emit_move_multi_word(), emit_move_sequence(), emit_no_conflict_block(), emit_pic_move(), expand_move(), extra_constraint(), extra_constraint_Q(), fcc_register_operand(), find_single_use(), fpscr_operand(), frv_emit_move(), frv_emit_movsi(), frv_load_operand(), gen_ashldi3(), gen_ashlsi3(), gen_movdf(), gen_movdi(), gen_move_insn(), gen_movhi(), gen_movqi(), gen_movsf(), gen_movsi(), gen_movtf(), gen_rtx_REG(), gen_shl_and(), gen_shl_sext(), get_aligned_mem(), get_unaligned_address(), h8300_expand_movsi(), h8300_reg_class_from_letter(), ia64_expand_move(), ia64_expand_movxf_movrf(), ia64_extra_constraint(), insn_invalid_p(), ix86_expand_binary_operator(), ix86_expand_move(), ix86_expand_unary_operator(), ix86_expand_vector_move(), ix86_hard_regno_mode_ok(), legitimate_address_p(), legitimate_indexed_address_p(), legitimize_address(), legitimize_operands(), legitimize_pic_address(), legitimize_tls_address(), m32r_legitimize_pic_address(), m68hc11_indirect_p(), m68hc11_memory_move_cost(), m68hc11_register_indirect_p(), m68hc11_register_move_cost(), m68hc11_small_indexed_indirect_p(), machopic_legitimize_pic_address(), mcore_reload_operand(), move_operand(), nonindexed_address_p(), normal_memory_operand(), offsettable_mem_operand(), offsettable_memory_operand(), preferred_reload_class(), prepare_move_operands(), recog_1(), recog_10(), recog_11(), recog_2(), recog_21(), recog_3(), recog_31(), recog_34(), recog_5(), recog_6(), recog_9(), reg_or_some_mem_operand(), reload(), resolve_reload_operand(), rs6000_eliminate_indexed_memrefs(), rs6000_emit_move(), s390_decompose_address(), s390_extra_constraint_str(), s390_mem_constraint(), sh_cannot_modify_jumps_p(), sparc_emit_set_const32(), sparc_emit_set_const64(), sparc_emit_set_const64_longway(), sparc_expand_move(), sparc_extra_constraint_check(), split_1(), std_or_reg_operand(), thumb_legitimate_address_p(), unaligned_memory_operand(), v850_interrupt_function_p(), verify_rtx_sharing(), volatile_mem_operand(), xstormy16_expand_move(), xtensa_emit_move_sequence(), and xtensa_extra_constraint().

Definition at line 4750 of file reload1.c.

char reload_inherited[MAX_RELOADS]

Definition at line 4746 of file reload1.c.

char* reload_insn_firstobj [static]

Definition at line 281 of file reload1.c.

Referenced by calculate_needs_all_insns(), and copy_reloads().

short reload_order[MAX_RELOADS] [static]

Definition at line 1658 of file reload1.c.

Referenced by choose_reload_regs(), emit_reload_insns(), find_reg(), and find_reload_regs().

enum insn_code reload_out_optab[NUM_MACHINE_MODES]

Definition at line 264 of file reload1.c.

rtx reload_override_in[MAX_RELOADS]

Definition at line 4754 of file reload1.c.

HARD_REG_SET reload_reg_unavailable [static]

HARD_REG_SET reload_reg_used [static]

HARD_REG_SET reload_reg_used_at_all [static]

HARD_REG_SET reload_reg_used_for_inherit [static]

Definition at line 4186 of file reload1.c.

Referenced by allocate_reload_reg(), choose_reload_regs(), and choose_reload_regs_init().

HARD_REG_SET reload_reg_used_in_inpaddr_addr[MAX_RECOG_OPERANDS] [static]

HARD_REG_SET reload_reg_used_in_input[MAX_RECOG_OPERANDS] [static]

HARD_REG_SET reload_reg_used_in_input_addr[MAX_RECOG_OPERANDS] [static]

HARD_REG_SET reload_reg_used_in_insn [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_other_addr [static]

HARD_REG_SET reload_reg_used_in_outaddr_addr[MAX_RECOG_OPERANDS] [static]

HARD_REG_SET reload_reg_used_in_output[MAX_RECOG_OPERANDS] [static]

HARD_REG_SET reload_reg_used_in_output_addr[MAX_RECOG_OPERANDS] [static]

int reload_spill_index[MAX_RELOADS]

Definition at line 4758 of file reload1.c.

Definition at line 273 of file reload1.c.

Referenced by init_reload(), and reload().

Definition at line 649 of file reload1.c.

Referenced by calculate_needs_all_insns(), and reload().

Definition at line 651 of file reload1.c.

Referenced by calculate_needs_all_insns(), and reload().

int spill_add_cost[FIRST_PSEUDO_REGISTER] [static]

Definition at line 1586 of file reload1.c.

Referenced by count_pseudo(), count_spilled_pseudo(), find_reg(), and order_regs_for_reload().

int spill_cost[FIRST_PSEUDO_REGISTER] [static]

char spill_indirect_levels [static]

Definition at line 225 of file reload1.c.

Referenced by calculate_needs_all_insns(), init_reload(), and reload_as_needed().

short spill_reg_order[FIRST_PSEUDO_REGISTER] [static]

rtx spill_reg_rtx[FIRST_PSEUDO_REGISTER] [static]

Definition at line 155 of file reload1.c.

Referenced by reload_as_needed(), and set_reload_reg().

rtx spill_reg_store[FIRST_PSEUDO_REGISTER] [static]

rtx spill_reg_stored_to[FIRST_PSEUDO_REGISTER] [static]

short spill_regs[FIRST_PSEUDO_REGISTER] [static]

rtx spill_stack_slot[FIRST_PSEUDO_REGISTER] [static]

Definition at line 236 of file reload1.c.

Referenced by alter_reg(), and reload().

unsigned int spill_stack_slot_width[FIRST_PSEUDO_REGISTER] [static]

Definition at line 239 of file reload1.c.

Referenced by alter_reg(), and reload().

Definition at line 8574 of file reload1.c.

Referenced by reload_combine().

struct insn_chain* unused_insn_chains = 0 [static]

int use_index

Definition at line 8572 of file reload1.c.

Referenced by reload_combine(), and reload_combine_note_use().

int use_ruid

Definition at line 8575 of file reload1.c.

Referenced by reload_combine().

HARD_REG_SET used_spill_regs [static]

Definition at line 213 of file reload1.c.

Referenced by find_reload_regs(), finish_spills(), and reload().

HARD_REG_SET used_spill_regs_local [static]

Definition at line 1661 of file reload1.c.

Referenced by find_reg(), and find_reload_regs().


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