aboutsummaryrefslogtreecommitdiff
path: root/gcc/cprop.c
AgeCommit message (Collapse)AuthorFilesLines
2011-07-12re PR rtl-optimization/49474 (ppc ICEs with -O3 (bootstrapping with -O3 and ↵Andrew Pinski1-1/+1
--disable-checking)) 2011-07-12 Andrew Pinski <pinskia@gmail.com> PR rtl-opt/49474 * cprop.c (find_implicit_sets): Correct the condition. 2011-07-12 Andrew Pinski <pinskia@gmail.com> PR rtl-opt/49474 * gcc.c-torture/compile/pr49474.c: New testcase. From-SVN: r176213
2011-06-14dumping cleanup phase 1 -- Removing TODO_dump_funcDavid Li1-2/+0
From-SVN: r175051
2011-06-09Revert r174848,174849Xinliang David Li1-5/+4
From-SVN: r174864
2011-06-09Gator cleanupDavid Li1-4/+5
From-SVN: r174848
2011-06-06* cprop.c (local_cprop_pass): Don't set changed for debug insns.Alexandre Oliva1-1/+2
From-SVN: r174700
2011-04-05cprop.c (struct reg_use): Remove.Steven Bosscher1-27/+31
* cprop.c (struct reg_use): Remove. (reg_use_table): Make an array of RTX. (find_used_regs, constprop_register, local_cprop_pass, bypass_block): Simplify users of reg_use_table. (cprop_insn): Likewise. Iterate if copy propagation succeeded on one of the uses found by find_used_regs. From-SVN: r171999
2011-04-05re PR middle-end/48441 (ICE in mark_oprs_set)Steven Bosscher1-2/+2
PR middle-end/48441 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns. From-SVN: r171994
2011-04-04cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.Steven Bosscher1-161/+72
* cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'. (expr_equiv_p): Remove. (insert_set_in_table): Look at <dest, src> pair instead of expr. (hash_scan_set): Update call to insert_set_in_table. (dump_hash_table): Dump <dest, src> pair. (lookup_set): Simplify. Lookup <dest, src> pair. (compute_transp): Remove, fold heavily simplified code into... (compute_local_properties): ...here. Expect COMP and TRANSP unconditionally. (find_avail_set): Take set directly from struct expr. (find_bypass-set): Likewise. (bypass_block): Likewise. (cprop_insn): Likewise. Remove redundant INSN_P test. From-SVN: r171947
2011-04-04cprop.c (implicit_set_cond_p): Assume nothing about COND...Steven Bosscher1-48/+94
* cprop.c (implicit_set_cond_p): Assume nothing about COND, move checks on form of COND from find_implicit_sets to here. (find_implicit_sets): Cleanup control flow. Split critical edges if it exposes implicit sets. Allocate/resize implicit_sets as necessary. (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass changed something. Run df_analyze after find_implicit_sets if any edges were split. Do not allocate implicit_sets here. From-SVN: r171946
2011-04-04cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.Steven Bosscher1-52/+28
* cprop.c: s/gcse/cprop/ everywhere except for flag_gcse. (gcse_obstack): Renamed to cprop_obstack. (GNEW, GNEWVEC, GNEWVAR): Remove. (gmalloc): Remove. (alloc_hash_table): Use XNEWVAR instead of GNEWVAR. (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming. (gcse_alloc): Likewise, and rename to cprop_alloc. (alloc_gcse_men, free_gcse_mem): Remove. (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers. (compute_hash_table_work): Allocate and free reg_set_bitmap here. (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming. From-SVN: r171945
2011-04-04cprop.c (oprs_not_set_p): Remove.Steven Bosscher1-104/+12
* cprop.c (oprs_not_set_p): Remove. (mark_set, mark_clobber): Remove. (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache. (reg_not_set_p): New function. (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p. (cprop_insn): Likewise. (cprop_jump): Use FOR_EACH_EDGE. From-SVN: r171944
2011-03-31cprop.c: Clean up hash table building.Steven Bosscher1-175/+46
* cprop.c: Clean up hash table building. (reg_avail_info): Remove. (oprs_available_p): Remove. (record_last_reg_set_info): Remove. (record_last_set_info): Remove. (reg_available_p): New function. (gcse_constant_p): Do not treat unfolded conditions as constants. (make_set_regs_unavailable): New function. (hash_scan_set): Simplify with new reg_available_p. (compute_hash_table_work): Traverse insns stream only once. Do not compute reg_avail_info. Traverse insns in reverse order. Record implicit sets after recording explicit sets from the block. From-SVN: r171794
2011-03-28Makefile.in: New rule for cprop.o.Steven Bosscher1-0/+2168
* Makefile.in: New rule for cprop.o. * gcse.c: Move constant/copy propagation to cprop.c. (compute_local_properties): Only handle expression tables. (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise. (one_pre_gcse_pass, one_code_hoisting_pass): Likewise. (hash_set, insert_set_in_table, gcse_constant_p, lookup_set, next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set, mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem, compute_cprop_data, find_used_regs, try_replace_reg, find_avail_set, cprop_jump, constprop_register, cprop_insn, local_cprop_find_used_regs, do_local_cprop, local_cprop_pass, fis_get_condition, implicit_set_cond_p, find_implicit_sets, find_bypass_set, reg_killed_on_edge, bypass_block, bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): Move to... * cprop.c: ...here. New file, constant/copy propagation for RTL moved from gcse.c to here with minor cleanups in duplicated code. From-SVN: r171627