From 8456b95a5af348aa220ad0adc2101835f221f5d3 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 6 Dec 2001 12:49:46 +0100 Subject: final.c (count_basic_block, [...]): Kill. * final.c (count_basic_block, add_bb, add_bb_string): Kill. (end_final, final_start_function, final, final_scan_insn, leaf_function_p): Kill BB profiler related code. * flags.h (profile_block_flag): Kill. * libgcc2.c (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE, BB_BUCKETS, BBINBUFSIZE, bb_edge, bb_func_mode, bb_func, __bb, bb_src, bb_dst, bb_tracefile, bb_hashbuckets, bb_func_head, bb_callcount, bb_mode, bb_stack, bb_stacksize reported, GOPENDECOMPRESS, GOPENCOMPRESS, gopen, gclose, __bb_exit_trace_func, __bb_init_prg, __bb_trace_func, __bb_trace_func_ret, __bb_init_file, __bb_trace_ret, __bb_init_trace_func): Kill. * toplev.c (profile_block_flag): Kill. (indepdendent_decode_option, process_options): Kill -a related code. * alpha.c (direct_call_operand): Likewise. * arm.c (arm_expand_prologue, thumb_expand_prologue, thumb_expand_epilogue): Likewise. * c4x.c (c4x_expand_prologue, c4x_null_epilogue_p): Likewise. * c4x.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * d30v.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * fr30.c (fr30_expand_prologue): Kill BB profiler related code. * i386.c (ix86_can_use_return_insn_p, ix86_expand_prologue, ix86_expand_epilogue, ix86_expand_epilogue): Kill BB profiler related code. (ix86_output_function_block_profiler, ix86_output_block_profiler): Kill. * i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * fr30.c (fr30_expand_prologue): Kill BB profiler related code. * i960.c (i960_output_function_prologue): Kill BB profiler related code. * ia64.c (ia64_compute_frame_size): Likewise. * ia64.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * m32r.c (m32r_expand_prolofue): Kill BB profiler related code. * m68hc11.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * m68k.c (m68k_output_function_epilogue): Kill BB profiler related code. * m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * m88k.c (output_options, m88k_layout_frame, m88k_expand_prologue): Kill BB profiler related code. * m88k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * mips.c (mips_expand_prologue): Kill BB profiler related code. * mmix.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * rs6000.c (rs6000_override_options): Kill BB profiler related code. * s960.c (s390_function_prologue): Kill BB profiler related code. * s960.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * linux-aout.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * linux.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * linux64.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sol2.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sparc.c (sparc_override_options, eligible_for_sibcall_delay, sparc_nonflat_function_epilogue): Kill BB profiler related code. (sparc_function_block_profiler, sparc_block_profiler, sparc_function_block_profiler_exit): Kill. * sparc.h (OVERRIDE_OPTIONS): Kill BB profiler related code. (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sun4o3.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sunos4.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * stormy16.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * doc/invoke.texi: Kill documentation of -a and -ax. * tm.texi (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. From-SVN: r47712 --- gcc/config/i386/i386.h | 120 +------------------------------------------------ 1 file changed, 1 insertion(+), 119 deletions(-) (limited to 'gcc/config/i386/i386.h') diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index d4abbbf..a7d7702 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1678,124 +1678,6 @@ typedef struct ix86_args { } \ } - -/* There are three profiling modes for basic blocks available. - The modes are selected at compile time by using the options - -a or -ax of the gnu compiler. - The variable `profile_block_flag' will be set according to the - selected option. - - profile_block_flag == 0, no option used: - - No profiling done. - - profile_block_flag == 1, -a option used. - - Count frequency of execution of every basic block. - - profile_block_flag == 2, -ax option used. - - Generate code to allow several different profiling modes at run time. - Available modes are: - Produce a trace of all basic blocks. - Count frequency of jump instructions executed. - In every mode it is possible to start profiling upon entering - certain functions and to disable profiling of some other functions. - - The result of basic-block profiling will be written to a file `bb.out'. - If the -ax option is used parameters for the profiling will be read - from file `bb.in'. - -*/ - -/* The following macro shall output assembler code to FILE - to initialize basic-block profiling. */ - -#undef FUNCTION_BLOCK_PROFILER -#define FUNCTION_BLOCK_PROFILER(FILE, BLOCK_OR_LABEL) \ - ix86_output_function_block_profiler (FILE, BLOCK_OR_LABEL) - -/* The following macro shall output assembler code to FILE - to increment a counter associated with basic block number BLOCKNO. */ - -#define BLOCK_PROFILER(FILE, BLOCKNO) \ - ix86_output_block_profiler (FILE, BLOCKNO) - -/* The following macro shall output rtl for the epilogue - to indicate a return from function during basic-block profiling. - - If profiling_block_flag == 2: - - Output assembler code to call function `__bb_trace_ret'. - - Note that function `__bb_trace_ret' must not change the - machine state, especially the flag register. To grant - this, you must output code to save and restore registers - either in this macro or in the macros MACHINE_STATE_SAVE - and MACHINE_STATE_RESTORE. The last two macros will be - used in the function `__bb_trace_ret', so you must make - sure that the function prologue does not change any - register prior to saving it with MACHINE_STATE_SAVE. - - else if profiling_block_flag != 0: - - The macro will not be used, so it need not distinguish - these cases. -*/ - -#define FUNCTION_BLOCK_PROFILER_EXIT \ -emit_call_insn (gen_call (gen_rtx_MEM (QImode, \ - gen_rtx_SYMBOL_REF (VOIDmode, "__bb_trace_ret")), \ - const0_rtx, constm1_rtx)) - -/* The function `__bb_trace_func' is called in every basic block - and is not allowed to change the machine state. Saving (restoring) - the state can either be done in the BLOCK_PROFILER macro, - before calling function (rsp. after returning from function) - `__bb_trace_func', or it can be done inside the function by - defining the macros: - - MACHINE_STATE_SAVE(ID) - MACHINE_STATE_RESTORE(ID) - - In the latter case care must be taken, that the prologue code - of function `__bb_trace_func' does not already change the - state prior to saving it with MACHINE_STATE_SAVE. - - The parameter `ID' is a string identifying a unique macro use. - - On the i386 the initialization code at the begin of - function `__bb_trace_func' contains a `sub' instruction - therefore we handle save and restore of the flag register - in the BLOCK_PROFILER macro. - - Note that ebx, esi, and edi are callee-save, so we don't have to - preserve them explicitly. */ - -#define MACHINE_STATE_SAVE(ID) \ -do { \ - register int eax_ __asm__("eax"); \ - register int ecx_ __asm__("ecx"); \ - register int edx_ __asm__("edx"); \ - __asm__ __volatile__ ("\ -push{l} %0\n\t\ -push{l} %1\n\t\ -push{l} %2" \ - : : "r"(eax_), "r"(ecx_), "r"(edx_)); \ -} while (0); - -#define MACHINE_STATE_RESTORE(ID) \ -do { \ - register int eax_ __asm__("eax"); \ - register int ecx_ __asm__("ecx"); \ - register int edx_ __asm__("edx"); \ - __asm__ __volatile__ ("\ -pop{l} %2\n\t\ -pop{l} %1\n\t\ -pop{l} %0" \ - : "=r"(eax_), "=r"(ecx_), "=r"(edx_)); \ -} while (0); - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. @@ -2315,7 +2197,7 @@ while (0) #define FINALIZE_PIC \ do \ { \ - current_function_uses_pic_offset_table |= profile_flag | profile_block_flag; \ + current_function_uses_pic_offset_table |= profile_flag; \ } \ while (0) -- cgit v1.1