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

#include "config.h"
#include "system.h"
#include "tree.h"
#include "rtl.h"
#include "tm_p.h"
#include "regs.h"
#include "insn-config.h"
#include "insn-attr.h"
#include "recog.h"
#include "conditions.h"
#include "flags.h"
#include "real.h"
#include "hard-reg-set.h"
#include "output.h"
#include "except.h"
#include "function.h"
#include "toplev.h"
#include "reload.h"
#include "intl.h"
#include "basic-block.h"
#include "target.h"
#include "debug.h"
#include "expr.h"
#include "profile.h"
#include "cfglayout.h"

Include dependency graph for final.c:

Go to the source code of this file.

Data Types

type  function_list
type  label_alignment

Defines

#define ASM_COMMENT_START   ";#"
#define IS_ASM_LOGICAL_LINE_SEPARATOR(C)   ((C) == ';')
#define JUMP_TABLES_IN_TEXT_SECTION   0
#define HAVE_READONLY_DATA_SECTION   0
#define LABEL_ALIGN(LABEL)   align_labels_log
#define LABEL_ALIGN_MAX_SKIP   align_labels_max_skip
#define LOOP_ALIGN(LABEL)   align_loops_log
#define LOOP_ALIGN_MAX_SKIP   align_loops_max_skip
#define LABEL_ALIGN_AFTER_BARRIER(LABEL)   0
#define LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP   0
#define JUMP_ALIGN(LABEL)   align_jumps_log
#define JUMP_ALIGN_MAX_SKIP   align_jumps_max_skip
#define ADDR_VEC_ALIGN(ADDR_VEC)   final_addr_vec_align (ADDR_VEC)
#define INSN_LENGTH_ALIGNMENT(INSN)   length_unit_log
#define INSN_SHUID(INSN)   (uid_shuid[INSN_UID (INSN)])
#define LABEL_TO_ALIGNMENT(LABEL)   (label_align[CODE_LABEL_NUMBER (LABEL) - min_labelno].alignment)
#define LABEL_TO_MAX_SKIP(LABEL)   (label_align[CODE_LABEL_NUMBER (LABEL) - min_labelno].max_skip)
#define FIRST_INSN_ADDRESS   0
#define NO_PROFILE_COUNTERS   0

Functions/Subroutines

static void profile_function PARAMS ((FILE *))
static void notice_source_line PARAMS ((rtx))
static rtx walk_alter_subreg PARAMS ((rtx *))
static void output_asm_name PARAMS ((void))
static void
output_alternate_entry_point 
PARAMS ((FILE *, rtx))
static tree get_mem_expr_from_op PARAMS ((rtx, int *))
static void
output_asm_operand_names 
PARAMS ((rtx *, int *, int))
static void output_operand PARAMS ((rtx, int))
void init_final (filename) const
void end_final (char *filename) const
void default_function_pro_epilogue (file, size)
void no_asm_to_stream (file)
void app_enable ()
void app_disable ()
void init_insn_lengths ()
int get_attr_length (insn)
static int final_addr_vec_align (rtx addr_vec)
int label_to_alignment (rtx label)
void compute_alignments ()
void shorten_branches (first)
void final_start_function (rtx first, FILE *file, optimize)
static void profile_after_prologue (file)
static void profile_function (file)
void final_end_function ()
void final (rtx first, FILE *file, int optimize, int prescan)
const char * get_insn_template (int code, rtx insn)
static void output_alternate_entry_point (FILE *file, rtx insn)
rtx final_scan_insn (rtx insn, FILE *file, optimize, int prescan, nopeepholes)
static void notice_source_line (rtx insn)
void cleanup_subreg_operands (rtx insn)
rtx alter_subreg (rtx *xp)
static rtx walk_alter_subreg (rtx *xp)
void output_operand_lossage VPARAMS ((const char *msgid,...))
static void output_asm_name ()
static tree get_mem_expr_from_op (rtx op, int *paddressp)
static void output_asm_operand_names (rtx *operands, int *oporder, int nops)
void output_asm_insn (char *template, rtx *operands) const
void output_asm_label (rtx x)
static void output_operand (rtx x, code)
void output_address (rtx x)
void output_addr_const (FILE *file, rtx x)
void asm_fprintf VPARAMS ((FILE *file, const char *p,...))
void split_double (rtx value, rtx *first, rtx *second)
int leaf_function_p ()
int final_forward_branch_p (rtx insn)

Variables

static rtx debug_insn
rtx current_output_insn
static int last_linenum
static int high_block_linenum
static int high_function_linenum
static const char * last_filename
int length_unit_log
rtx this_is_asm_operands
static unsigned int insn_noperands
static rtx last_ignored_compare = 0
static int new_block = 1
static int insn_counter = 0
char regs_ever_live [FIRST_PSEUDO_REGISTER]
int frame_pointer_needed
static int block_depth
static int app_on
rtx final_sequence
static char * line_note_exists
static struct function_listfunctions_head = 0
static struct function_list ** functions_tail = &functions_head
static int * insn_lengths
varray_type insn_addresses_
static int insn_lengths_max_uid
int insn_current_address
int insn_last_address
int insn_current_align
static rtxuid_align
static int * uid_shuid
static struct label_alignmentlabel_align
static int min_labelno
static int max_labelno


Define Documentation

#define ADDR_VEC_ALIGN ( ADDR_VEC   )     final_addr_vec_align (ADDR_VEC)

Definition at line 815 of file final.c.

#define ASM_COMMENT_START   ";#"

Definition at line 104 of file final.c.

#define FIRST_INSN_ADDRESS   0

Definition at line 1037 of file final.c.

#define HAVE_READONLY_DATA_SECTION   0

Definition at line 119 of file final.c.

Referenced by shorten_branches().

#define INSN_LENGTH_ALIGNMENT ( INSN   )     length_unit_log

Definition at line 819 of file final.c.

#define INSN_SHUID ( INSN   )     (uid_shuid[INSN_UID (INSN)])

Definition at line 822 of file final.c.

Referenced by final_forward_branch_p(), and shorten_branches().

#define IS_ASM_LOGICAL_LINE_SEPARATOR (  )     ((C) == ';')

Definition at line 109 of file final.c.

#define JUMP_ALIGN ( LABEL   )     align_jumps_log

Definition at line 795 of file final.c.

Referenced by compute_alignments().

#define JUMP_ALIGN_MAX_SKIP   align_jumps_max_skip

Definition at line 799 of file final.c.

Referenced by compute_alignments().

#define JUMP_TABLES_IN_TEXT_SECTION   0

Definition at line 113 of file final.c.

#define LABEL_ALIGN ( LABEL   )     align_labels_log

Definition at line 771 of file final.c.

#define LABEL_ALIGN_AFTER_BARRIER ( LABEL   )     0

Definition at line 787 of file final.c.

#define LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP   0

Definition at line 791 of file final.c.

Referenced by shorten_branches().

#define LABEL_ALIGN_MAX_SKIP   align_labels_max_skip

Definition at line 775 of file final.c.

Referenced by compute_alignments(), and shorten_branches().

#define LABEL_TO_ALIGNMENT ( LABEL   )     (label_align[CODE_LABEL_NUMBER (LABEL) - min_labelno].alignment)

Definition at line 826 of file final.c.

Referenced by compute_alignments(), final_scan_insn(), label_to_alignment(), and shorten_branches().

#define LABEL_TO_MAX_SKIP ( LABEL   )     (label_align[CODE_LABEL_NUMBER (LABEL) - min_labelno].max_skip)

Definition at line 829 of file final.c.

Referenced by compute_alignments(), final_scan_insn(), and shorten_branches().

#define LOOP_ALIGN ( LABEL   )     align_loops_log

Definition at line 779 of file final.c.

#define LOOP_ALIGN_MAX_SKIP   align_loops_max_skip

Definition at line 783 of file final.c.

Referenced by compute_alignments().

#define NO_PROFILE_COUNTERS   0


Function Documentation

rtx alter_subreg ( rtx xp  ) 

void app_disable ( void   ) 

void app_enable ( void   ) 

Definition at line 561 of file final.c.

Referenced by assemble_asm().

void cleanup_subreg_operands ( rtx  insn  ) 

Definition at line 2895 of file final.c.

Referenced by final_scan_insn(), reload(), and split_insn().

void compute_alignments ( void   ) 

Definition at line 951 of file final.c.

Referenced by rest_of_compilation().

void default_function_pro_epilogue ( file  ,
size   
)

Definition at line 544 of file final.c.

void end_final ( char *  filename  )  const

void final ( rtx  first,
FILE file,
int  optimize,
int  prescan 
)

Definition at line 1834 of file final.c.

static int final_addr_vec_align ( rtx  addr_vec  )  [static]

Definition at line 804 of file final.c.

References align, BIGGEST_ALIGNMENT, BITS_PER_UNIT, exact_log2, GET_MODE, GET_MODE_SIZE, and PATTERN.

void final_end_function ( void   ) 

int final_forward_branch_p ( rtx  insn  ) 

Definition at line 4046 of file final.c.

Referenced by print_operand().

rtx final_scan_insn ( rtx  insn,
FILE file,
optimize  ,
int  prescan,
nopeepholes   
)

Definition at line 2013 of file final.c.

References abort, ACCUMULATE_OUTGOING_ARGS, ADDR_VEC_ALIGN, align, alloca, alter_subreg(), app_disable(), app_on, ASM_APP_OFF, ASM_APP_ON, ASM_COMMENT_START, asm_noperands(), gcc_target::asm_out, asm_out_file, ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC, ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN, ASM_OUTPUT_ALIGN_WITH_NOP, ASM_OUTPUT_CASE_END, ASM_OUTPUT_CASE_LABEL, ASM_OUTPUT_DEBUG_LABEL, ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_MAX_SKIP_ALIGN, assemble_vtable_entry(), gcc_debug_hooks::begin_block, BIGGEST_ALIGNMENT, BITS_PER_UNIT, block_depth, BLOCK_NUMBER, cc0_rtx, CC_STATUS_INIT, cleanup_subreg_operands(), CODE_LABEL_NUMBER, COMPARE, COND_EXEC_TEST, const0_rtx, constrain_operands_cached(), current_function_decl, current_insn_predicate, current_output_insn, DBR_OUTPUT_SEQEND, debug_hooks, debug_insn, decode_asm_operands(), delete_insn(), DINFO_LEVEL_NORMAL, DINFO_LEVEL_VERBOSE, DWARF2_DEBUG, dwarf2out_do_frame(), dwarf2out_frame_debug(), DWARF_DEBUG, gcc_debug_hooks::end_block, gcc_debug_hooks::end_prologue, EQ, exact_log2, fatal_insn, fatal_insn_not_found, FINAL_PRESCAN_INSN, final_sequence, FIND_REG_INC_NOTE, find_reg_note(), flag_debug_asm, flag_dump_rtl_in_asm, flag_no_peephole, fprintf(), fputs(), gcc_target::asm_out::function_begin_epilogue, gcc_target::asm_out::function_end_prologue, function_section(), GE, GET_CODE, get_insn_template(), GET_RTX_CLASS, GT, high_block_linenum, i, IA64_UNWIND_EMIT, idx, index(), INSN_CODE, insn_code_number, insn_counter, INSN_DELETED_P, insn_noperands, INTVAL, jump, JUMP_TABLES_IN_TEXT_SECTION, gcc_debug_hooks::label, LABEL_ALT_ENTRY_P, LABEL_NAME, LABEL_REFS, LABEL_TO_ALIGNMENT, LABEL_TO_MAX_SKIP, last_filename, last_ignored_compare, last_linenum, LE, line_note_exists, LT, n, NE, new_block, next, NEXT_INSN, NOTE_BASIC_BLOCK, NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_INSN_BASIC_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_INSN_DELETED, NOTE_INSN_DELETED_LABEL, NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END, NOTE_INSN_EPILOGUE_BEG, NOTE_INSN_EXPECTED_VALUE, NOTE_INSN_FUNCTION_BEG, NOTE_INSN_FUNCTION_END, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_CONT, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_END_TOP_COND, NOTE_INSN_LOOP_VTOP, NOTE_INSN_PROLOGUE_END, NOTE_INSN_REPEATED_LINE_NUMBER, NOTE_LINE_NUMBER, notice_source_line(), NOTICE_UPDATE_CC, NULL, NULL_RTX, output_alternate_entry_point(), output_asm_insn(), PATTERN, pc_rtx, peephole(), prev, PREV_INSN, prev_nonnote_insn(), print_rtl_single(), print_rtx_head, profile_after_prologue(), readonly_data_section(), recog_memoized, REG, REG_CC_SETTER, REG_VTABLE_REF, REGNO, result, RETURN, rtx_equal_p(), SET, SET_DEST, SET_SRC, single_set, gcc_debug_hooks::source_line, targetm, this_is_asm_operands, TREE_ASM_WRITTEN, try_split(), USE, validate_change(), VMS_AND_DWARF2_DEBUG, VMS_DEBUG, volatile_refs_p(), write_symbols, XEXP, XSTR, XVECEXP, and XVECLEN.

Referenced by arc_output_function_epilogue(), cris_target_asm_function_epilogue(), final(), final_scan_insn(), mips_output_conditional_branch(), output_call(), output_function_epilogue(), output_lbranch(), output_millicode_call(), output_sibcall(), print_slot(), sparc_flat_function_epilogue(), and sparc_nonflat_function_epilogue().

void final_start_function ( rtx first  ,
FILE file,
optimize   
)

int get_attr_length ( insn   ) 

Definition at line 669 of file final.c.

References ADJUST_INSN_LENGTH, asm_noperands(), GET_CODE, i, insn, insn_default_length, INSN_UID, length, PATTERN, USE, XVECEXP, and XVECLEN.

Referenced by add_minipool_forward_ref(), alphaev4_insn_pipe(), alphaev4_next_group(), alphaev5_insn_pipe(), alphaev5_next_group(), arc_eligible_for_epilogue_delay(), arm_reorg(), avr_out_sbxx_branch(), avr_output_function_epilogue(), barrier_align(), bfin_optimize_loop(), compute_rtx_cost(), copy_bb_p(), create_fix_barrier(), duplicate_computed_gotos(), eligible_for_annul_false(), eligible_for_delay(), eligible_for_epilogue_delay(), eligible_for_return_delay(), eligible_for_sibcall_delay(), fill_hash_bucket(), final_prescan_insn(), find_barrier(), get_attr_can_delay(), get_attr_length(), get_attr_length_1(), get_uncond_jump_length(), jump_over_one_insn_p(), large_insn_p(), machine_dependent_reorg(), min_insn_size(), mips16_insn_length(), mips_avoid_hazard(), mips_output_conditional_branch(), mt_block_length(), output_219(), output_220(), output_221(), output_222(), output_223(), output_224(), output_225(), output_226(), output_227(), output_228(), output_279(), output_520(), output_asm_name(), output_bb(), output_branch(), output_branchy_insn(), output_bvb(), output_call(), output_cbranch(), output_dbra(), output_far_jump(), output_millicode_call(), output_movb(), output_parallel_addb(), output_parallel_movb(), output_v9branch(), peephole2_1(), print_operand(), record_cc_ref(), s390_chunkify_pool(), s390_chunkify_start(), s390_split_branches(), sh_can_redirect_branch(), sh_reorg(), small_insn_p(), sparc_flat_eligible_for_epilogue_delay(), split_branches(), vr4130_align_insns(), xstormy16_output_cbranch_hi(), and xstormy16_output_cbranch_si().

const char* get_insn_template ( int  code,
rtx  insn 
)

Definition at line 1950 of file final.c.

Referenced by final_scan_insn().

static tree get_mem_expr_from_op ( rtx  op,
int *  paddressp 
) [static]

void init_final ( filename   )  const

Definition at line 262 of file final.c.

References app_on, ASSEMBLER_DIALECT, and final_sequence.

Referenced by compile_file().

void init_insn_lengths ( void   ) 

int label_to_alignment ( rtx  label  ) 

Definition at line 835 of file final.c.

Referenced by alpha_align_insns(), find_barrier(), frv_align_label(), and vr4130_align_insns().

int leaf_function_p ( void   ) 

void no_asm_to_stream ( file   ) 

Definition at line 552 of file final.c.

static void notice_source_line ( rtx  insn  )  [static]

void output_addr_const ( FILE file,
rtx  x 
)

Definition at line 3569 of file final.c.

Referenced by arc_assemble_integer(), arc_print_operand(), arc_print_operand_address(), arm_assemble_integer(), arm_elf_asm_constructor(), arm_emit_tls_decoration(), arm_print_operand(), asm_output_char(), asm_output_short(), assemble_integer_with_op(), assemble_vtable_entry(), assemble_vtable_inherit(), avr_assemble_integer(), bfin_assemble_integer(), c4x_print_operand(), c4x_print_operand_address(), cris_output_addr_const(), cris_output_addr_const_extra(), cris_print_operand(), crx_print_operand(), crx_print_operand_address(), d30v_print_operand_address(), dw2_assemble_integer(), elxsi_assemble_integer(), fr30_print_operand(), fr30_print_operand_address(), frv_assemble_integer(), frv_output_const_unspec(), frv_output_dwarf_dtprel(), frv_print_operand_address(), i386_dwarf_output_addr_const(), i386_output_dwarf_dtprel(), i960_print_operand(), i960_print_operand_addr(), ia64_assemble_integer(), ia64_output_dwarf_dtprel(), ia64_print_operand(), m32c_asm_integer(), m32r_print_operand(), m32r_print_operand_address(), mcore_print_operand(), mcore_print_operand_address(), mips16_output_gp_offset(), mips_assemble_integer(), mmix_print_operand(), mmix_print_operand_address(), mt_print_operand(), mt_print_operand_simple_address(), output_addr_const(), output_addr_const_extra(), output_asm_insn(), output_fpops(), output_function_exception_table(), output_global_address(), output_pic_addr_const(), output_toc(), pa_assemble_integer(), pj_print_operand(), print_operand(), print_operand_address(), print_operand_reloc(), rs6000_assemble_integer(), rs6000_output_dwarf_dtprel(), s390_output_addr_const_extra(), s390_output_dwarf_dtprel(), s390_output_symbolic_const(), score_print_operand(), score_print_operand_address(), sparc_output_dwarf_dtprel(), v850_output_addr_const_extra(), VPARAMS(), xstormy16_print_operand(), xstormy16_print_operand_address(), and xtensa_output_literal().

void output_address ( rtx  x  ) 

static void output_alternate_entry_point ( FILE file,
rtx  insn 
) [static]

void output_asm_insn ( char *  template,
rtx operands 
) const

Definition at line 3300 of file final.c.

References asm_out_file, ASM_OUTPUT_OPCODE, atoi(), c, CONSTANT_ADDRESS_P, flag_print_asm_name, flag_verbose_asm, fprintf(), GET_CODE, HOST_WIDE_INT_PRINT_DEC, i, insn_counter, insn_noperands, INTVAL, ISALPHA, ISDIGIT, MAX_RECOG_OPERANDS, memset, NULL_RTX, output_addr_const(), output_address(), output_asm_label(), output_asm_name(), output_asm_operand_names(), output_operand(), output_operand_lossage(), p, PRINT_OPERAND_PUNCT_VALID_P, putc(), and this_is_asm_operands.

Referenced by arm_output_epilogue(), arm_output_load_gr(), asm_conditional_branch(), avr_out_sbxx_branch(), avr_output_bld(), bfin_output_mi_thunk(), clipper_movstr(), cmp_jmp(), cmp_set(), copy_fp_args(), double_reg_from_memory(), double_reg_to_memory(), emit_1600_core_shift(), emit_a_rotate(), emit_a_shift(), emit_ldm_seq(), emit_stm_seq(), final_scan_insn(), function_prologue(), i960_output_call_insn(), i960_output_ldconst(), i960_output_move_double(), i960_output_move_double_zero(), i960_output_move_quad(), i960_output_move_quad_zero(), i960_output_ret_insn(), import_milli(), ix86_asm_file_end(), ix86_file_end(), m32r_output_block_move(), m68hc11_gen_movhi(), m68hc11_gen_movqi(), m68hc11_gen_rotate(), m68hc11_output_swap(), m68k_output_mi_thunk(), m68k_output_pic_call(), mcore_output_andn(), mcore_output_bclri(), mcore_output_bseti(), mcore_output_cmov(), mcore_output_inline_const_forced(), mcore_output_jump_label_table(), mcore_output_movedouble(), mips_output_conditional_branch(), mips_output_cplocal(), mips_output_division(), mips_output_function_epilogue(), mips_output_function_prologue(), out_shift_with_cnt(), output_285(), output_31(), output_33(), output_36(), output_42(), output_681(), output_854(), output_a_rotate(), output_a_shift(), output_bb(), output_block_clear(), output_block_move(), output_branch(), output_bvb(), output_call(), output_call_mem(), output_cbranch(), output_condjump(), output_dbcc_and_branch(), output_dbra(), output_div_insn(), output_dsp16xx_float_const(), output_far_jump(), output_fix_trunc(), output_fp_compare(), output_fp_move_double(), output_indirect_call(), output_inline_const(), output_jump(), output_jump_label_table(), output_lbranch(), output_load(), output_load_const_dimode(), output_load_const_double(), output_logical_op(), output_millicode_call(), output_mov_double_arm_from_fpa(), output_mov_double_arm_from_fpu(), output_mov_double_fpa_from_arm(), output_mov_double_fpu_from_arm(), output_mov_immediate(), output_mov_long_double_arm_from_arm(), output_mov_long_double_arm_from_fpa(), output_mov_long_double_arm_from_fpu(), output_mov_long_double_fpa_from_arm(), output_mov_long_double_fpu_from_arm(), output_movb(), output_move_double(), output_move_qimode(), output_move_quad(), output_movedouble(), output_movhi(), output_movqi(), output_movsisf(), output_multi_immediate(), output_parallel_addb(), output_parallel_movb(), output_pop_multiple(), output_push_double(), output_push_multiple(), output_reload_insisf(), output_restore(), output_return(), output_return_instruction(), output_scc_di(), output_set_got(), output_shift(), output_sibcall(), output_simode_bld(), output_size_for_block_move(), output_store(), output_tst(), output_v8plus_shift(), pa_asm_output_mi_thunk(), pj_output_addsi3(), rs6000_output_load_multiple(), s390_function_profiler(), s390_output_mi_thunk(), s390_trampoline_template(), singlemove_string(), sparc_v8plus_shift(), thumb_call_via_reg(), thumb_load_double_from_address(), thumb_output_move_mem_multiple(), vfp_output_fstmx(), x86_output_mi_thunk(), xtensa_emit_block_move(), and xtensa_emit_loop_end().

void output_asm_label ( rtx  x  ) 

static void output_asm_name ( void   )  [static]

static void output_asm_operand_names ( rtx operands,
int *  oporder,
int  nops 
) [static]

Definition at line 3259 of file final.c.

References ASM_COMMENT_START, asm_out_file, fprintf(), get_mem_expr_from_op(), i, and print_mem_expr().

Referenced by output_asm_insn().

static void output_operand ( rtx  x,
code   
) [static]

Definition at line 3536 of file final.c.

References abort, alter_subreg(), asm_out_file, FIRST_PSEUDO_REGISTER, GET_CODE, PRINT_OPERAND, REG, and REGNO.

Referenced by output_asm_insn().

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

static void output_asm_operand_names PARAMS ( (rtx *, int *, int)   )  [static]

static tree get_mem_expr_from_op PARAMS ( (rtx, int *)   )  [static]

static void output_alternate_entry_point PARAMS ( (FILE *, rtx  )  [static]

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

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

static rtx walk_alter_subreg PARAMS ( (rtx *)   )  [static]

static void notice_source_line PARAMS ( (rtx  )  [static]

static void profile_function PARAMS ( (FILE *)   )  [static]

static void profile_after_prologue ( file   )  [static]

Definition at line 1710 of file final.c.

References current_function_profile, and profile_function().

Referenced by final_scan_insn(), and final_start_function().

static void profile_function ( file   )  [static]

void shorten_branches ( first   ) 

Definition at line 1049 of file final.c.

References abort, ADDR_DIFF_VEC_FLAGS, ADDR_VEC_ALIGN, ADJUST_INSN_LENGTH, align, asm_noperands(), addr_diff_vec_flags::base_after_vec, CASE_VECTOR_SHORTEN_MODE, const_num_delay_slots(), fatal_insn, first, FIRST_INSN_ADDRESS, flags, free(), gen_rtx_LABEL_REF, GET_CODE, get_insns(), get_last_insn(), get_max_uid(), GET_MODE, GET_MODE_SIZE, HAVE_READONLY_DATA_SECTION, i, insn, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, insn_current_length(), insn_default_length, INSN_DELETED_P, INSN_LENGTH_ALIGNMENT, INSN_P, INSN_SHUID, INSN_UID, insn_variable_length_p(), JUMP_TABLES_IN_TEXT_SECTION, lab, LABEL_ALIGN, LABEL_ALIGN_AFTER_BARRIER, LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP, LABEL_ALIGN_MAX_SKIP, LABEL_TO_ALIGNMENT, LABEL_TO_MAX_SKIP, len, log(), max, addr_diff_vec_flags::max_after_base, addr_diff_vec_flags::max_after_vec, MAX_CODE_ALIGN, max_label_num(), label_alignment::max_skip, max_uid, memset, min, addr_diff_vec_flags::min_after_base, addr_diff_vec_flags::min_after_vec, min_align(), addr_diff_vec_flags::min_align, next, NEXT_INSN, NULL_RTX, optimize, PATTERN, prev, PREV_INSN, PUT_MODE, rel, USE, xcalloc(), XEXP, xmalloc(), xrealloc(), XVECEXP, and XVECLEN.

Referenced by alpha_align_insns(), alpha_output_mi_thunk_osf(), frv_reorg(), h8300_reorg(), ia64_output_mi_thunk(), machine_dependent_reorg(), mips_avoid_hazards(), mips_output_mi_thunk(), rest_of_compilation(), rest_of_handle_shorten_branches(), rs6000_output_mi_thunk(), s390_chunkify_pool(), s390_chunkify_start(), s390_mainpool_finish(), s390_split_branches(), sh_output_mi_thunk(), sh_reorg(), sparc_output_mi_thunk(), split_branches(), and th_output_mi_thunk().

void split_double ( rtx  value,
rtx first,
rtx second 
)

void asm_fprintf VPARAMS ( (FILE *file, const char *p,...)   ) 

void output_operand_lossage VPARAMS ( (const char *msgid,...)   ) 

static rtx walk_alter_subreg ( rtx xp  )  [static]

Definition at line 2968 of file final.c.

References alter_subreg(), GET_CODE, MEM, PLUS, x, and XEXP.

Referenced by cleanup_subreg_operands(), output_address(), and walk_alter_subreg().


Variable Documentation

int app_on [static]

Definition at line 197 of file final.c.

Referenced by app_disable(), app_enable(), final_scan_insn(), and init_final().

int block_depth [static]

Definition at line 193 of file final.c.

Referenced by final_scan_insn(), and final_start_function().

rtx debug_insn [static]

Definition at line 123 of file final.c.

Referenced by final_scan_insn(), and output_asm_name().

Definition at line 189 of file final.c.

Definition at line 227 of file final.c.

Definition at line 228 of file final.c.

int high_block_linenum [static]

Definition at line 130 of file final.c.

Referenced by final_scan_insn(), final_start_function(), and notice_source_line().

int high_function_linenum [static]

Definition at line 133 of file final.c.

Referenced by final_end_function(), final_start_function(), and notice_source_line().

Definition at line 606 of file final.c.

int insn_counter = 0 [static]

Definition at line 159 of file final.c.

Referenced by final_scan_insn(), and output_asm_insn().

Definition at line 612 of file final.c.

Referenced by frv_print_operand_jump_hint().

Definition at line 618 of file final.c.

Definition at line 615 of file final.c.

int* insn_lengths [static]

Definition at line 604 of file final.c.

int insn_lengths_max_uid [static]

Definition at line 609 of file final.c.

unsigned int insn_noperands [static]

Definition at line 146 of file final.c.

Referenced by final_scan_insn(), and output_asm_insn().

Definition at line 637 of file final.c.

const char* last_filename [static]

Definition at line 136 of file final.c.

rtx last_ignored_compare = 0 [static]

Definition at line 150 of file final.c.

Referenced by final(), and final_scan_insn().

int last_linenum [static]

Definition at line 127 of file final.c.

Definition at line 37003 of file insn-attrtab.c.

Referenced by write_length_unit_log().

char* line_note_exists [static]

Definition at line 212 of file final.c.

Referenced by final(), and final_scan_insn().

int max_labelno [static]

Definition at line 824 of file final.c.

Referenced by expand_inline_function(), and unroll_loop().

int min_labelno [static]

Definition at line 824 of file final.c.

Referenced by expand_inline_function(), and reload_combine().

int new_block = 1 [static]

char regs_ever_live[FIRST_PSEUDO_REGISTER]

Definition at line 183 of file final.c.

rtx* uid_align [static]

Definition at line 635 of file final.c.

int* uid_shuid [static]

Definition at line 636 of file final.c.


Generated on Wed Apr 8 15:32:14 2009 for Open64 by  doxygen 1.5.6