Line number handling in RTL reorganization
Richard Henderson
rth@redhat.com
Sun Jun 8 04:57:00 GMT 2003
On Fri, Jun 06, 2003 at 10:41:00AM +0200, Jan Hubicka wrote:
> * cfglayout.c (insn_scope): New static function
> (block_locators_*, line_locators*, file_locators*): New static varrays.
> (scope_to_insns_initialize): Use them.
> (insn_line, insn_file): New functions.
> (scope_to_insns_finalize): Use insn_scope.
> (prologue_locator, epilogue_locator): New global variables.
> * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw,
> make_call_insn_raw, emit_copy_of_insn_after): Use locators.
> (emit_insn_after_scope, emit_insn_before_scope
> emit_jump_insn_after_scope, emit_jump_insn_before_scope
> emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
> (emit_insn_after_setloc, emit_insn_before_setloc
> emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
> emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
> use locators.
> * final.c (notice_source_line): Use locators.
> (final_start_function): Set initial source file and line.
> (final_scan_insn): Use locators.
> * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
> noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
> noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
> noce_process_if_block, find_cond_trap): Likewise.
> * integrate.c (copy_insn_list): Likewise.
> * jump.c (duplicate_loop_exit_test): LIkewise.
> * print-rtl.c (print_rtx): Print locators.
> * recog.c (peephole2_optimize): Likewise.
> * rtl.h (INSN_SCOPE): Remove.
> (emit_insn_after_scope, emit_insn_before_scope
> emit_jump_insn_after_scope, emit_jump_insn_before_scope
> emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
> (emit_insn_after_setloc, emit_insn_before_setloc
> emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
> emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
> (insn_file, insn_line, prologue_locator, epilogue_locator): Declare.
> * unroll.c (copy_loop_body): Use locators.
> * function.c (set_insn_locators): New function.
> (thread_prologue_and_epilogue_insns): Set the locators accordingly.
Ok.
> ! static varray_type GTY(()) block_locators_locs;
> ! static varray_type GTY(()) block_locators_blocks;
> ! static varray_type GTY(()) line_locators_locs;
> ! static varray_type GTY(()) line_locators_lines;
> ! static varray_type GTY(()) file_locators_locs;
> ! static varray_type GTY(()) file_locators_files;
I'm not really fond of this as a datastructure, but that's
not as important as the interface, which looks ok.
r~
More information about the Gcc-patches
mailing list