summaryrefslogtreecommitdiff
path: root/gcc/gcse.c
Commit message (Collapse)AuthorAgeFilesLines
* * flow.c (find_basic_blocks): Delte "live_reachable_p" argument.law1998-10-101-1/+1
| | | | | | | | | | (find_basic_blocks_1): Similarly. * output.h (find_basic_blocks): Fix prototype. * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to find_basic_blocks anymore. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22979 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (find_basic_blocks): Calc upper bound for extra nops inrth1998-10-081-10/+71
| | | | | | | | | | | | | | | max_uids_for_flow. (find_basic_blocks_1): Add a nop to the end of a basic block when a trailing call insn does not have abnormal control flow. * gcse.c (pre_transpout): New variable. (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it. (compute_pre_transpout): Calculate it. (compute_pre_ppinout): Use it to eliminate impossible placements due to abnormal control flow through calls. (compute_pre_data): Call compute_pre_transpout. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22907 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (pre_insert_insn): Tweek to notice that calls do notrth1998-10-071-1/+6
| | | | | | | always end basic blocks for abnormal edge reasons. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22897 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (pre_insert_insn): When a call ends a bb, insertrth1998-10-071-8/+58
| | | | | | | the new insns before the argument regs are loaded. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22891 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix out of date comments after previous change.law1998-09-151-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22442 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,law1998-09-151-10/+13
| | | | | | | | | | | mem_first_set, mem_last_set; because 0 can be a CUID. (oprs_unchanged_p): Use new definition. (record_last_reg_set_info): Likewise. (record_last_mem_set_info): Likewise. (compute_hash_table): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22441 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (add_label_notes): Do not ignore references to labelslaw1998-08-151-11/+7
| | | | | | | | before dispatch tables. Mirrors Apr 8 change to mark_jump_label. * gcse.c (add_label_notes): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21744 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (hash_scan_insn): Add missing argument declaration.law1998-07-131-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21115 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changedlaw1998-07-061-6/+15
| | | | | | | caller. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20967 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...).jfc1998-06-241-6/+7
| | | | | | | | | | | * expr.c: Likewise. * explow.c: Likewise. * combine.c: Likewise. * reload1.c: Likewise. * gcse.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20701 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix irix6 -O3 -funroll-all-loops bootstrap failure reported by Kaveh Ghazi.wilson1998-06-221-0/+51
| | | | | | | | | | * gcse.c (add_label_notes): New function. (pre_insert_insn): Call it. * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and pass the label to set_label_in_map. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20658 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (expand_call): Initialize "src" and "dest".law1998-06-201-1/+1
| | | | | | | | | | | * stmt.c (expand_return): Likewise. * expmed.c (extract_split_bit_field): Similarly for "result" * gcse.c (compute_hash_table): Mark first arg as unused. * jump.c (jump_optimize): Initialize reversep. * tree.c (make_node): Initialize length. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20629 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning fixes:ghazi1998-06-081-14/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (varasm.o): Depend on dbxout.h. (cse.o): Depend on toplev.h and output.h. (gcse.o): Depend on output.h. * mips.c: Include system.h and toplev.h and remove redundant code. Include output.h after tree.h so all its prototypes get activated. * mips.md (table_jump): Remove unused variable `dest'. * sparc.h: Add prototype for `v8plus_regcmp_op'. * crtstuff.c (fini_dummy, init_dummy): Mark function definitions with __attribute__ ((__unused__)). (__frame_dummy): Provide prototype before use, wrap it with EH_FRAME_SECTION_ASM_OP. * cse.c: Move inclusion of <setjmp.h> above local headers. Include toplev.h and output.h. * dbxout.h: Add prototype for `dbxout_begin_function'. * final.c (final_scan_insn): Wrap variable `max_skip' in macro ASM_OUTPUT_MAX_SKIP_ALIGN. * gcse.c: Include system.h and output.h. (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): Make extern instead of static. (compute_can_copy): Only declare variables `reg' and `insn' when AVOID_CCMODE_COPIES is not defined. (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. (hash_scan_clobber): Likewise for `x' and `insn'. (hash_scan_call): Likewise. (record_last_set_info): Likewise for `setter'. (mark_call): Likewise for `pat'. (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the length parameter so that it multiplies the number of elements by the sizeof(element). * output.h: Add prototype for `weak_finish'. * recog.h: Likewise for `validate_replace_src'. * rtl.h: Likewise for `optimize_save_area_alloca', `fix_sched_param', `purge_addressof', `gcse_main', `regmove_optimize', `dbr_schedule', `branch_prob' and `end_branch_prob'. * toplev.h: Likewise for `set_float_handler' and `output_quoted_string'. * varasm.c: Include dbxout.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20351 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (pre_delete): Fix code to determine the mode oflaw1998-05-291-5/+7
| | | | | | | the reaching pseudo register. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20134 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (current_function_calls_longjmp): Declare.law1998-05-201-0/+1
| | | | | | | For sco5. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19915 138bc75d-0d04-0410-961f-82ee72b054a4
* remove CYGNUS LOCALjason1998-05-201-1/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19903 138bc75d-0d04-0410-961f-82ee72b054a4
* * Global CSE and constant/copy propagation.law1998-05-201-0/+4690
* Makefile.in (OBJS): Add gcse.o (STAGESTUFF): Add *.gcse. (gcse.o): Add dependencies. (mostlyclean): Remove *.gcse and */*.gcse. * gcse.c: New file. * loop.c (loop_optimize): Move call to init_alias_analysis. * recog.c (validate_replace_src): New function. * toplev.c (gcse_dump): New global variable. (flag_gcse, gcse_time): Likewise. (compile_file): Initialize gcse_time and clean out the gcse dump file if necessary. (rest_of_compilation): Call gcse_main as requested. Dump RTL after gcse if requested. (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse dumps for -da. * gcc.texi: Add gcse related internal documentation. * invoke.texi: Note new command line options for gcse. * tm.texi: Document AVOID_CCMODE_COPIES. * mips.h (AVOID_CCMODE_COPIES): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19901 138bc75d-0d04-0410-961f-82ee72b054a4