aoliva [Thu, 11 Sep 2008 09:13:35 +0000 (11 09:13 +0000)]
* gcc.c (report_times_to_file): New.
(execute): Implement it.
(process_command): Support -time=.
* doc/invoke.texi: Document it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140274 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 11 Sep 2008 08:56:00 +0000 (11 08:56 +0000)]
* toplev.c (process_options): Disregard implied debug
generation in flag_var_tracking_assignments auto-detect. Warn
and disable if it's enabled without -fvar-tracking or optimization.
* doc/invoke.texi (-fvar-tracking-assignments): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140270 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 11 Sep 2008 08:31:36 +0000 (11 08:31 +0000)]
* common.opt (fvar-tracking_assignments-toggle): New.
* toplev.c (flag_var_tracking_assignments_toggle): New.
(process_options): Handle it.
* doc/invoke.texi: Document it.
(fvar-tracking-assignments): Fix index entries.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140269 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 11 Sep 2008 08:27:23 +0000 (11 08:27 +0000)]
* common.opt (fcompare-debug=, fcompare-debug-second): New.
(fdump-final-insns=): New.
(gtoggle): New.
* doc/invoke.texi: Document them.
* final.c (rest_of_clean_state): Dump final insn stream.
* gcc.c (invoke_as): Hook in -fcompare-debug.
(static_spec_functions): Add compare-debug-dump-opt and
compare-debug-self-opt.
(compare_debug, compare_debug_second, compare_debug_opt): New.
(switches_debug_check, n_switches_debug_check): New.
(debug_check_temp_file): New.
(process_command): Handle -fno-compare-debug, -fcompare-debug and
-fcompare-debug=*.
(do_self_spec): Handle arguments after switches.
(do_spec_1): Add .gk extension to temp file basenames for compare.
(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
(main): Set up and implement compare debug mode.
(compare_debug_dump_opt_spec_function): New.
(compare_debug_self_opt_spec_function): New.
* toplev.c (process_options): Handle flag_gtoggle,
flag_dump_final_insns.
* cp/repo.c (finish_repo): Skip during -fcompare-debug-second.
* ada/lib-writ.adb (flag_compare_debug): Import.
(Write_ALI): Skip during -fcompare-debug-second.
* fortran/options.c (gfc_post_options): Disable dump_parse_tree
during -fcompare-debug-second.
* objc/objc-act.c (objc_init): Skip print_struct_values during
-fcompare-debug-second.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140267 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 11 Sep 2008 06:50:26 +0000 (11 06:50 +0000)]
* cfgexpand.c (expand_gimple_basic_block): Print ICE message.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140263 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 11 Sep 2008 06:44:09 +0000 (11 06:44 +0000)]
* c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
before ensuring it's already computed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140261 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 11 Sep 2008 06:40:47 +0000 (11 06:40 +0000)]
* dwarf2out.c (deferred_asm_name): New.
(add_name_and_src_coords_attributes): Defer creation of
DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
computed yet.
(dwarf2out_finish): Revisit deferrals and emit attributes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140259 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 09:27:39 +0000 (10 09:27 +0000)]
* dwarf2asm.c (dw2_force_const_mem): Defer creation of
declarations for constants until...
(dw2_output_indirect_constant_1): ... this point.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140226 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:55:36 +0000 (10 08:55 +0000)]
* gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
label string.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140224 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:48:28 +0000 (10 08:48 +0000)]
* cfgexpand.c (expand_debug_expr): Handle negative bitpos.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140220 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:35:31 +0000 (10 08:35 +0000)]
* df-core.c (df_ref_debug): Honor -fdump-noaddr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140218 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:32:20 +0000 (10 08:32 +0000)]
* emit-rtl (emit_insn_after, emit_jump_insn_after,
emit_call_insn_after, emit_insn_before, emit_jump_insn_before,
emit_call_insn_before): Take locator from non-debug insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140216 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:28:57 +0000 (10 08:28 +0000)]
* emit-rtl (emit_insn_after, emit_jump_insn_after,
emit_call_insn_after, emit_insn_before, emit_jump_insn_before,
emit_call_insn_before): Take locator from non-debug insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140214 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:21:00 +0000 (10 08:21 +0000)]
* cfgexpand.c (expand_debug_expr): Don't modify pre-existing MEMs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140212 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 08:09:37 +0000 (10 08:09 +0000)]
* local-alloc.c (memref_used_between_p): Skip debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140210 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:54:41 +0000 (10 07:54 +0000)]
* combine.c (move_deaths): Compare LUIDs within the same BB only.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140207 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:43:46 +0000 (10 07:43 +0000)]
* df-problems.c (df_note_bb_compute): Don't dump debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140205 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:38:32 +0000 (10 07:38 +0000)]
* cfgcleanup.c (try_crossjump_to_edge): Skip debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140203 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:34:17 +0000 (10 07:34 +0000)]
* tree.c (build_var_debug_value_stat): Copy block and location
information from new stmt argument.
* tree.h (build_var_debug_value_stat): Adjust declaration.
(build_var_debug_value): Adjust.
* tree-inline.c (setup_one_parameter): Adjust.
* tree-into-ssa.c (insert_phi_nodes_for, rewrite_stmt): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140201 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:24:59 +0000 (10 07:24 +0000)]
* cfgexpand.c (expand_gimple_basic_block): Remove duplicate stmt
declaration. Preserve source location around expanding debug
stmts.
* cfglayout.c (get_curr_insn_source_location): New fn.
(get_curr_insn_block): New fn.
* rtl.h (get_curr_insn_source_location): Declare.
(get_curr_insn_block): Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140199 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:19:56 +0000 (10 07:19 +0000)]
* cfgexpand.c (maybe_dump_rtl_for_tree_stmt): Dump line number
information if requested.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140197 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 07:05:34 +0000 (10 07:05 +0000)]
* cfglayout.c (set_curr_insn_source_location): Don't refrain from
switching to last_location.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140193 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 10 Sep 2008 06:50:16 +0000 (10 06:50 +0000)]
* cfglayout.c (curr_location, last_location): Make static.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@140191 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 4 Sep 2008 07:15:45 +0000 (4 07:15 +0000)]
* print-rtl.c (print_rtx): Remove excess parenthesis after
VAR_LOCATION.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@139976 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 07:23:18 +0000 (12 07:23 +0000)]
* tree-into-ssa.c (var_debug_value_for_decl): Don't track
anonymous variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@139003 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 07:22:33 +0000 (12 07:22 +0000)]
* sched-vis.c (print_insn): Dump anonymous variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@139001 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 07:12:29 +0000 (12 07:12 +0000)]
* var-tracking.c (count_uses, add_uses, add_stores): Use Pmode for
addresses.
(add_uses): Compute value-based loc for MO_VAL_USE out of original
loc, not tracked loc.
(add_stores): Restore correct handling of MO_SET mode in
MO_VAL_SET.
(compute_bb_dataflow, emit_notes_in_bb): Always use value-based
loc for resolution.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138999 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:56:00 +0000 (12 06:56 +0000)]
* tree.h (IS_DEBUG_BIND): New.
* tree-ssa-loop-ivopts.c (remove_unused_ivopts): Use it.
* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
* tree-ssa.c (verify_ssa): Likewise.
* tree-inline.c (copy_body_r, copy_bb): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138993 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:46:06 +0000 (12 06:46 +0000)]
* rtl.h (gen_rtx_UNKNOWN_VAR_LOC): Drop mode argument. Adjust all
callers.
* cfgexpand.c (expand_debug_expr_1): Removed.
(expand_debug_expr): Remove wrapping of constants. Expand pointer
to CONST_STRING with Pmode. Handle DECL and TYPE mode mismatches.
(expand_gimple_basic_block): Hold the mode in VAR_LOCATION.
* var-tracking.c (find_use_val): Take mode as argument, adjust all
callers. Don't unwrap constants.
(use_type): Don't unwrap constants. Take mode from VAR_LOCATION.
(count_uses): Take mode from VAR_LOCATION.
* combine.c (auto_adjust_pair): New, moved out of...
(propagate_for_debug_subst): ... this. Handle SUBREGs.
(propagate_for_debug): Don't unwrap constants.
* fwprop.c (forward_propagate_and_simplify): Don't wrap
constants.
* local-alloc.c (adjust_debug_insns_equivs): Don't wrap
constants.
* cse.c (insn_live_p): Adjusted.
* df-problems.c (df_note_bb_compute): Adjusted.
* regmove.c (regmove_optimize): Adjusted.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138992 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:38:27 +0000 (12 06:38 +0000)]
* tree-dfa.c (find_referenced_vars): Not in debug stmts.
* tree-inline.c (copy_body_r): Don't add vars to referenced set
when processing debug stmts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138990 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:27:53 +0000 (12 06:27 +0000)]
* tree-ssa-propagate.c (substitute_and_fold): Don't let debug
stmts trigger changes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138987 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:21:42 +0000 (12 06:21 +0000)]
* rtlanal.c (side_effects_p): Not in VAR_LOCATION.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138985 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:17:01 +0000 (12 06:17 +0000)]
* tree-outof-ssa.c (not_ssa_name_p): New.
(rewrite_trees): Use it to clean up debug stmts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138983 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 12 Aug 2008 06:08:51 +0000 (12 06:08 +0000)]
* cselib.c (new_cselib_val): Honor -fdump-noaddr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138981 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Fri, 1 Aug 2008 08:00:39 +0000 (1 08:00 +0000)]
* fwprop.c (PR_HANDLE_MEM): Remove trailing comma in enum.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138477 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Fri, 1 Aug 2008 08:00:00 +0000 (1 08:00 +0000)]
* var-tracking.c (variable_htab_eq): Move checking-only variables
into ENABLE_CHECKING block.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138476 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 31 Jul 2008 07:58:47 +0000 (31 07:58 +0000)]
Merged with gcc-4_3-branch @138264.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138359 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Jul 2008 23:47:44 +0000 (29 23:47 +0000)]
Merge between /tags/var-tracking-assignments-merge-132391-trunk-4_3-branchpoint and /tags/var-tracking-assignments-4_3-merge-138264-4_3/.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138284 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Jul 2008 19:55:47 +0000 (29 19:55 +0000)]
Branch off var-tracking-assignments-4_3-branch. 138264.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-4_3-branch@138269 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Jul 2008 19:44:03 +0000 (29 19:44 +0000)]
* var-tracking.c (find_mem_expr_in_1pdv): New.
(dataflow_set_preserve_mem_locs): New.
(dataflow_set_clear_at_call): Call it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@138264 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Jul 2008 19:34:21 +0000 (29 19:34 +0000)]
* cfgloopanal.c (num_loop_insns): Don't let bb-ending debug insns
get an otherwise-bb-ending non-debug insns counted.
(average_num_loop_insns): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@138262 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 10 Jun 2008 07:13:38 +0000 (10 07:13 +0000)]
* print-rtl.c: Include cselib.h
(print_rtx): Handle VALUEs.
* Makefile.in (print-rtl.o): Depend on cselib.h.
* rtl.c (rtx_equal_p): Handle VALUEs.
* cselib.c (new_cselib_val): Add x argument. Dump it. Adjust
callers.
(cselib_expand_value_rtx_1): Use print-rtl support.
(cselib_log_lookup): New.
(cselib_lookup): Call cselib_log_lookup at every return point.
(cselib_process_insn): Call cselib_reset_table_with_next_value
rather than cselib_clear_table.
(dump_cselib_vals, dump_cselib_table): New.
* cselib.h (dump_cselib_table): Declare.
* var-tracking.c (micro_operation_type_name): New.
(attrs_list_mpdv_union): New.
(val_init): Renamed to...
(val_store): ... this. Verbosify. Handle REGs and MEMs.
(val_resolve): Add INSN argument. Verbosify. Reset the node,
detaching any equivalences before changing it. Merge incoming
registers. Note plans for handling MEMs and other rtx types, with
stopgap handlers in place.
(variable_union): Remove comment about handling intersection.
(VALUE_RECURSED_INTO): New.
(find_loc_in_1pdv): New.
(dfset_merge): New struct.
(insert_into_intersection): New.
(intersect_loc_chains): New.
(merge_with_missing_1pdv_as_union): New.
(variable_merge): New.
(variable_merge2): New.
(tie_break_pointers): New.
(find_canonical_value): New.
(variable_merge3): New.
(dataflow_set_merge): New.
(dfset_post_merge): New struct.
(variable_post_merge): New.
(dataflow_post_merge_adjust): New.
(dataflow_set_different_1): Verbosify.
(dataflow-set_different_2): Likewise.
(replace_expr_with_values): New.
(use_type): Only return MO_VAL_SET for REGs and recorded values.
(log_op_type): New.
(count_uses): Log. Count operation to resolve MEM address.
(add_uses): Log. Likewise. Record VALUEized expressions too.
(add_with_sets): Log.
(compute_bb_dataflow): Fix incorrect uses of val_init for
resolution. Use val_store. Handle VALUEized operands.
(emit_notes_in_bb): Likewise.
(vt_find_locations): Introduce second pass. Verbosify. Log
total size of hash tables.
(dump_variable_slot): New wrapper for...
(dump_variable): ... this. Take var. Use print-rtl support.
(dump_vars): Use new wrapper.
(set_slot_part): Take slot rather than looking up hash table.
Renamed with prototype change from...
(set_variable_part): ... this. New wrapper.
(vt_expand_loc_callback): Avoid infinite recursion.
(vt_add_function_parameters): Set up VALUEs for incoming
arguments.
(vt_initialize): Verbosify.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@136612 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 13 May 2008 08:34:40 +0000 (13 08:34 +0000)]
* var-tracking.c (remove_unavailable_values): Actually remove
slots with zero variable parts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@135256 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 May 2008 07:54:52 +0000 (12 07:54 +0000)]
* var-tracking.c (dv_is_decl_p, dv_is_value_p): NULL is neither.
(dv_as_decl): Assert dv_is_decl_p.
(dv_from_value): Assert value.
(dv_htab_hash): Assert ptr.
(variable_htab_eq): Compare opaque pointers.
(remove_unavailable_values): Deal with zero var parts. Do not
remove last ref to a variable.
(dataflow_set_remove_mem_locs): New.
(dataflow_set_clear_at_call): New, factored out from...
(compute_bb_dataflow, emit_notes_bb): ... here. Clear info on
modified REGs.
(VAL_EXPR_IS_COPIED): Use different bit.
(compute_bb_dataflow): Remove unavailable vars here...
(vt_find_locations): ... not here. Don't disregard self-edges.
(set_variable_part): Accept zero var parts.
(clobber_variable_part): Adjust to deal with NULL.
(vt_expand_loc_callback): Accept zero var parts.
(check_changed_var): Deal with zero var parts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@135206 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 May 2008 07:31:00 +0000 (12 07:31 +0000)]
* tree-ssa-operands.c (add_virtual_operands): Assert no debug use.
(get_expr_operands): Pass opf_no_vops along with opf_debug_use.
Move none into the right scope.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@135205 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 May 2008 07:25:59 +0000 (12 07:25 +0000)]
* cselib.c (cselib_reset_table_with_next_value): Add note to
preserve constants.
(cselib_record_sets): Use correct mode for IF_THEN_ELSE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@135204 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 May 2008 07:21:16 +0000 (12 07:21 +0000)]
* tree-if-conv.c (tree_if_convert_stmt): Handle debug stmts.
(if_convertible_stmt_p): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@135203 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Apr 2008 19:59:19 +0000 (29 19:59 +0000)]
* fwprop.c (forward_propagate_and_simplify): Wrap constants only
in debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@134808 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Apr 2008 08:43:19 +0000 (29 08:43 +0000)]
* var-tracking.c (struct variable_def): Declare var_part with a
single element.
(var_pool): Adjust comment.
(valvar_pool): New.
(dv_is_value_p): Improve documentation.
(dv_onepart_p): New.
(dv_pool): New. Use it all over, instead of var_pool.
(dv_htab_hash): Attempt to reduce collisions.
(unshare_variable): Take slot as argument. Adjust all callers.
(vars_copy_1): Fix strict-aliasing error.
(variable_union): Likewise. Ensure one-part dvs don't ever get
more than one part.
(struct dataflow_set_unavailable): New.
(remove_unavailable_values): New.
(dataflow_set_remove_unavailable): New.
(dataflow_set_different_1): Fix strict-aliasing error.
(dataflow_set_different_2): Likewise.
(use_type): Follow var_debug_decl chain.
(add_stores): Use use_type to tell whether to clobber.
(find_src_set_src): Fix strict-aliasing error.
(vt_find_locations): Remove unavailable values.
(dump_variable): Fix strict-aliasing error.
(variable_was_changed): Likewise.
(set_variable_part): Ensure one-part vars get a single part at
offset zero.
(emit_note_insn_var_location): Fix strict-aliasing error.
(check_changed_var): Likewise.
(emit_notes_for_differences_1): Likewise.
(emit_notes_for_differences_2): Likewise.
(vt_initialize): Create valvar_pool if debug insns may exist.
Adjust var_pool creation.
(vt_finalize): Release valvar_pool.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@134784 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Apr 2008 08:20:26 +0000 (29 08:20 +0000)]
* combine.c (try_combine): Don't pass uninitialized i2src or
i2dest to propagate_for_debug.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@134783 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 29 Apr 2008 08:18:36 +0000 (29 08:18 +0000)]
* fwprop.c (forward_propagate_and_simplify): Replace entire
var location rtx. Revert part of 2007-11-08 obviated by:
2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
PR rtl-optimization/35542
* fwprop.c (forward_propagate_and_simplify): Replace
loc_reg_mentioned_in_p with reg_mentioned_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@134782 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 7 Apr 2008 07:18:05 +0000 (7 07:18 +0000)]
* var-tracking.c: Include target.h.
(VT_MAY_HAVE_VALUE_LOC): Remove.
(vt_expand_loc): Don't discard values. Delegitimize top-level
MEMs.
* Makefile.in (var-tracking.o): Depend on TARGET_H.
* simplify-rtx.c (delegitimize_mem_from_attrs): New.
* rtl.h (delegitimize_mem_from_attrs): Declare it.
* target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Use it.
* config/i386/i386.c (ix86_delegitimize_address): Use it.
* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define to...
(rs600_delegitimize_address): ... this. New.
* expr.c (get_inner_reference): Don't crash if the ultimate
containing object is NULL.
* cfgexpand.c (expand_debug_expr_1): Conditionally renamed from...
(expand_debug_expr): ... this, to avoid unwrapped constants.
* dwarf2out.c (mem_loc_descriptor): Check for TLS symbols,
emit TLS annotations for them.
(loc_descriptor): Recurse for CONSTs. Discard value exprs.
* local-alloc.c (adjust_debug_insns_equivs): Wrap constants.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@133974 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 2 Apr 2008 06:40:57 +0000 (2 06:40 +0000)]
* var-tracking.c: Include cselib.h.
(enum micro_operation_type): Remove MO_LOC_MAIN and MO_LOC_USE,
add MO_VAL_USE, MO_VAL_LOC and MO_VAL_SET.
(struct micro_operation_def): Document new meanings for loc.
(struct decl_or_value): New.
(struct emit_note_data_def): Add vars table.
(struct attrs_def): Use decl_or_value dv rather than tree decl.
(struct variable_def): Likewise.
(struct location_chain_def): Accept VALUE in loc.
(scratch_regs): New.
(cselib_hook_called): New.
(dv_is_decl_p, dv_is_value_p, dv_as_decl, dv_as_value,
dv_as_opaque, dv_from_decl, dv_from_value, dv_htab_hash): New.
(IS_DECL_CODE, check_value_is_not_decl): New.
(variable_htab_hash): Use dv_htab_hash.
(variable_htab_eq): Likewise. Handle values.
(attrs_list_member, attrs_list_insert, attrs_list_union,
unshare_variable, vars_copy_1, var_reg_decl_set, var_reg_reg,
get_init_value, var_reg_delete_and_set, var_reg_delete,
var_regno_delete, var_mem_decl_set, var_mem_set, var_mem_delete,
variable_union, dataflow_set_different_1,
dataflow_set_different_2):
Adjust for decl_or_value.
(val_init, val_resolve): New.
(track_expr_p): Add need_rtl argument. Permit checking without
forcing generation of RTL for a name.
(track_loc_p): Adjust.
(struct count_use_info): New.
(find_use_val): New.
(use_type): Add count_use_info argument. Choose appropriate use
types for values in debug insns and for cselib-registered values.
(count_uses): Handle new micro operation types. Preserve values.
(count_uses_1, count_stores): Adjust for count_use_info.
(count_with_sets): New.
(VAL_NEEDS_RESOLUTION, VAL_HOLDS_TRACK_EXPR, VAL_EXPR_IS_COPIED,
VAL_EXPR_IS_CLOBBERED): New.
(add_uses): Handle new micro operation types.
(add_uses_1): Adjust for count_use_info.
(add_stores): Likewise. Handle new micro operation types.
(add_with_sets): New.
(find_src_status, find_src_set_src): Adjust for decl_or_value.
(compute_bb_dataflow): Handle new micro operation types.
(dump_attrs_list, dump_variables, variable_was_changed,
set_variable_part, clobber_variable_part, delete_variable_part):
Adjust for decl_or_value.
(VT_MAY_HAVE_VALUE_LOC): New.
(vt_expand_loc_callback, vt_expand_loc): New.
(emit_note_insn_var_location): Use vt_expand_loc. Adjust for
decl_for_value.
(check_changed_value, check_changed_var): New.
(emit_notes_for_changes): Take the block's variable hashtable as
argument. Mark as changed VALUEs that depend on other changed
values or expressions.
(emit_notes_for_differences_1): Adjust for decl_or_value.
(emit_notes_for_differences_2): Likewise.
(emit_notes_in_bb): Pass in hashtable as argument to
emit_notes_for_changes. Handle new micro operation types.
(vt_add_function_parameters): Adjust for decl_or_value.
(vt_initialize): Initialize cselib and scratch_regs. Move code
out to cselib callbacks and use them.
(vt_finalize): Finish cselib and release scratch_regs.
* Makefile.in (var-tracking.o): Depend on cselib.h.
* cselib.c (struct expand_value_data): New.
(cselib_record_sets_rook): New.
(PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
(cselib_clear_table): Rename and reintroduce in terms of...
(cselib_reset_table_with_next_value): This.
(cselib_get_next_unknown_value): New.
(entry_and_rtx_equal_p): Avoid cast-away-constness warning.
(discard_useless_locs): Don't discard preserved values.
(discard_useless_values): Likewise.
(cselib_preserve_value, cselib_preserved_value_p,
cselib_preserve_definitely, cselib_clear_preserve,
cselib_preserve_only_values): New.
(wrap_constant): Moved to cfgexpand.c.
(expand_loc): Replace regs_active argument with an
expand_value_data. Adjust.
(cselib_expand_value_rtx): Rename and reimplement in terms of...
(cselib_expand_value_rtx_1): ... this, with an expand_value_data
argument. Adjust. Call callback if set. Wrap constants as needed.
(cselib_expand_value_rtx_cb): New.
(cselib_invalidate_regno): Regard preserved values.
(cselib_invalidate_mem): Likewise.
(cselib_record_set): Likewise.
(struct set): Moved to cselib.h, renamed as cselib_set.
(cselib_record_sets): Adjust. Call new hook.
* cselib.h (struct cselib_set): Moved here.
(cselib_record_sets_hook, cselib_expand_callback,
(cselib_expand_value_rtx_cb, cselib_reset_table_with_next_value,
cselib_get_next_unknown_value, cselib_preserve_value,
cselib_preserved_value_p, cselib_preserve_only_values): Declare.
* rtl.h (wrap_constant, unwrap_constant): Declare.
* cfgexpand.c (wrap_constant, unwrap_constant): New.
(expand_debug_expr): Use wrap_constant.
* combine.c (propagate_for_debug): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@133820 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Sat, 1 Mar 2008 03:51:01 +0000 (1 03:51 +0000)]
* df-scan.c (df_ref_chain_change_bb): Simplify.
(df_insn_change_bb): Add new_bb argument. Simplify. Call
set_block_for_insn if there's any change.
* df.h ((df_insn_change_bb): Fix prototype.
* cfgrtl.c (update_bb_for_insn_chain): Pass bb to
df_insn_change_bb, don't call set_block_for_insn.
* emit-rtl.c (reorder_insns): Likewise.
* haifa-sched.c (move_insn): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132797 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Sat, 1 Mar 2008 03:40:44 +0000 (1 03:40 +0000)]
* haifa-sched.c (move_insn): Revert previous change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132796 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 27 Feb 2008 06:46:42 +0000 (27 06:46 +0000)]
* tree-into-ssa.c (struct check_debug_predicate): Add stmt.
(check_and_update_debug_stmt_1): Don't discard uses of default
defs. Discard uses of no-longer-dominating defs.
(check_and_update_debug_stmt): Set stmt.
(maybe_replace_use_in_debug_insn): Don't fail rewriting a
debug stmt because of references to default def.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132702 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 27 Feb 2008 06:34:13 +0000 (27 06:34 +0000)]
* sched-vis.c (print_insn): Handle debug insns.
* tree-pretty-print.c (dump_generic_node): Use '=>' rather than
'=' for DEBUG stmts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132701 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 27 Feb 2008 06:28:18 +0000 (27 06:28 +0000)]
* haifa-sched.c (move_insn): Don't mark block as DF-dirty when
moving insns in it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132700 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 20 Feb 2008 01:23:14 +0000 (20 01:23 +0000)]
* fwprop.c (try_fwprop_subst): Deal with NULL set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132465 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 19 Feb 2008 08:33:35 +0000 (19 08:33 +0000)]
Merged from gcc 4.3 branchpoint r132391
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132417 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 19 Feb 2008 05:47:08 +0000 (19 05:47 +0000)]
* df-scan.c (df_insn_rescan_1): Rename back to...
(df_insn_rescan): This. Remove wrapper.
(df_insn_rescan_debug_internal): New implementation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132411 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Tue, 19 Feb 2008 05:36:03 +0000 (19 05:36 +0000)]
* cfgexpand.c (expand_debug_expr): Avoid VIEW_CONVERT_EXPR
infinite recursion more trivially. Suggested by Eric Botcazou.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@132410 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 9 Jan 2008 09:18:35 +0000 (9 09:18 +0000)]
2008-01-09 Alexandre Oliva <aoliva@redhat.com>
* Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
2007-10-30 Richard Guenther <rguenther@suse.de>
* Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131422 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 9 Jan 2008 09:10:37 +0000 (9 09:10 +0000)]
* regclass.c (scan_one_insn): Skip debug insns.
(reg_scan, init_subregs_of_mode): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131420 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 9 Jan 2008 09:06:38 +0000 (9 09:06 +0000)]
* cfgexpand.c (expand_debug_expr): Handle conversion
from/to/between float modes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131419 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 9 Jan 2008 09:01:42 +0000 (9 09:01 +0000)]
* tree-flow-inline.h (next_readonly_imm_use): Return
NULL_USE_OPERAND_P after the end.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131417 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 9 Jan 2008 08:37:22 +0000 (9 08:37 +0000)]
* df-scan.c (struct df_collection_ref): Add alloc_ members.
(vec_SIZE_def, vec_SIZE_use, vec_SIZE_eq_use, vec_SIZE_mw): New.
(safe_alloca_vec, safe_grow_vec, safe_free_vec): New.
(df_insn_rescan_1): Move allocation down. Use new macros.
(df_bb_refs_record): Likewise.
(df_notes_rescan): Use new macros.
(df_ref_create_structure, df_ref_record): Likewise.
(df_record_entry_block_defs): Likewise.
(df_record_exit_blocks_uses): Likewise.
(df_bb_verify): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131416 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Wed, 9 Jan 2008 08:22:36 +0000 (9 08:22 +0000)]
* tree-into-ssa.c (adjust_debug_stmts_for_var_def_move):
Propagate value from SSA defs.
(prepare_block_for_update): Do not skip debug insns.
* tree-ssa-operands.c (add_vop): Reject debug insns.
(get_indirect_ref_operands): Do no more than recursing for
debug insns.
(get_expr_operands): Don't add vops to debug insns.
(parse_ssa_operands): Likewise.
* tree-ssa-propagate.c (set_rhs): Handle debug insns.
* tree-flow-inline.h (get_subvars_for_var): Don't require
annotated vars.
* dwarf2out.c (mem_loc_descriptor): Handle MINUS.
* cfgexpand.c (expand_debug_expr): Avoid infinite recursion in
unsimplifyable conversions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131415 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 15:58:45 +0000 (3 15:58 +0000)]
* combine.c (cleanup_auto_inc_dec): Fix pasto, compare with
PRE_MODIFY. Reported by Paolo Bonzini.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131303 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 08:28:51 +0000 (3 08:28 +0000)]
* config/ia64/ia64.c (ia64_safe_itanium_class): Ignore debug insns.
(group_barrier_needed): Not for debug insns.
(ia64_variable_issue): Always accept debug insns.
(ia64_dfa_new_cycle): Not because of debug insns.
(final_emit_insn_group_barriers): Don't emit a barrier after a
call just because of debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131299 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 08:17:43 +0000 (3 08:17 +0000)]
* config/rs6000/rs6000.c (is_microcoded_insn): Exclude debug insns.
(is_cracked_insn, is_branch_slot_insn): Likewise.
(is_nonpipeline_insn, insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Let debug insns through.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131298 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 08:12:12 +0000 (3 08:12 +0000)]
* haifa-sched.c (rank_for_schedule): Don't search back past
the block head for the last non-debug scheduled insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131297 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 08:06:04 +0000 (3 08:06 +0000)]
* sched-deps.c (sd_add_dep): Make sure no non-debug insns ever
depend on debug insns.
(sched_analyze_reg): Don't add debug insns to
sched_before_next_call list.
(sched_analyze_insn): Simplify deps of debug insns.
(init_deps): Initialize...
* sched-int.h (struct deps): ... new field last_debug_insn.
* sched-rgn.c (add_branch_dependences): Simplify.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131296 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:50:47 +0000 (3 07:50 +0000)]
* haifa-sched.c (struct ready_list): Add n_debug.
(queue_insn): Never queue debug insns.
(ready_add, ready_remove_first, ready_remove): Maintain n_debug.
(queue_to_ready): Skip debug insns when looking for next insn.
Otherwise discount debug insns.
(choose_ready): Pick a debug insn if it's first.
(SCHED_DEBUG_INSNS_BEFORE_REORDER): New, enabled by default.
(schedule_block): Don't count debug insns against
MAX_SCHED_READY_INSNS. Schedule debug insns before running
machine-specific reorder or reorder2 by default. Always
accept more debug insns in a cycle.
(schedule_block): Check that n_debug was maintained properly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131295 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:36:15 +0000 (3 07:36 +0000)]
* tree-nested.c (finalize_nesting_tree_1): Declare the
frame_decl in the binding tree.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131294 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:25:58 +0000 (3 07:25 +0000)]
* cfgexpand.c (adjust_debug_string_constant): New.
(debug_string_constants_p): New.
(adjust_debug_string_constants): New.
(expand_debug_expr): Don't expand STRING_CSTs unless we know
we're actually going to need them.
(tree_expand_cfg): Replace placeholders with a final decision.
* print-rtl.c (print_rtx): Recognize debug string placeholders.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131293 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:15:10 +0000 (3 07:15 +0000)]
* df-scan.c (df_uses_record): Reject auto-inc-dec in debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131292 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:12:44 +0000 (3 07:12 +0000)]
* combine.c (cleanup_auto_inc_dec): New.
(struct rtx_subst_pair): Add new fields to track changes and
auto-inc-dec.
(propagate_for_debug_subst): Handle auto-inc-dec.
(propagate_for_debug): Initialize new fields. Only move or
mark for rescan debug insns that have actually changed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131291 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:12:15 +0000 (3 07:12 +0000)]
* sched-rgn.c (bb_insn_count): New.
(too_large, find_rgns): Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131290 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:11:40 +0000 (3 07:11 +0000)]
* dce.c (mark_reg_dependencies): Skip debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131289 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 07:00:25 +0000 (3 07:00 +0000)]
* reload1.c (reload): Simplify addresses of pseudos allocated
to stack slots or found equivalent to constants in debug
insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131288 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 06:49:14 +0000 (3 06:49 +0000)]
* rtlanal.c (reg_used_between_p): Skip debug insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131287 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 06:29:30 +0000 (3 06:29 +0000)]
* fwprop.c (forward_propagate_and_simplify): Handle modeless
CONST_DOUBLEs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131286 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 06:25:14 +0000 (3 06:25 +0000)]
* sched-deps.c (fixup_sched_groups): Skip debug insns while
searching back for the sched group leader.
(sched_analyze_insn): Don't mark debug insns as members of
sched groups, even if in a call group.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131285 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 06:15:50 +0000 (3 06:15 +0000)]
* auto-inc-dec.c (merge_in_block): Skip debug insns. Fix
whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131284 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 06:10:25 +0000 (3 06:10 +0000)]
* cfgexpand.c (expand_debug_expr): Use just
EXPAND_INITIALIZERf for constants. Get inner_mode for
conversions from the operand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131283 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 06:05:00 +0000 (3 06:05 +0000)]
* caller-save.c (replace_reg_with_saved_mem): Don't validate
addresses.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131282 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 05:57:33 +0000 (3 05:57 +0000)]
* reload.c (find_equiv_reg): Don't count debug insns against
max-reload-search-insns when searching back for inheritance
opportunities.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131281 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 05:51:20 +0000 (3 05:51 +0000)]
* lower-subreg.c (adjust_decomposed_uses): Unshare concatn
that couldn't be simplified.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131280 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 05:46:34 +0000 (3 05:46 +0000)]
* common.opt (fdump-unnumbered-links): New.
* doc/invoke.texi (-fdump-unnumbered-links): Document it.
* print-rtl.c (flag_dump_unnumbered_links): New.
(print_rtx): Test it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131279 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 05:26:35 +0000 (3 05:26 +0000)]
* common.opt (fmin-insn-uid=): New.
* emit-rtl (cur_debug_insn_uid): New macro.
(set_new_first_and_last_insn): Set it.
(make_debug_insn_raw): Use it.
(init_emit): Initialize it.
* function.h (struct emit_status): Add x_cur_debug_insn_uid.
* doc/invoke.texi (-fmin-insn-uid=): Document it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131278 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 05:17:15 +0000 (3 05:17 +0000)]
gcc/ChangeLog:
* dwarf2out.c (reference_to_unused): Don't emit strings in
initializers just because of debug information.
* tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs.
gcc/testsuite/ChangeLog:
* gcc.dg/debug/const-3.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131277 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Thu, 3 Jan 2008 05:15:42 +0000 (3 05:15 +0000)]
gcc/cp/ChangeLog:
PR target/33168
* decl.c (cp_finish_decl): Call make_rtl_for_nonlocal_decl already
with the final TREE_READONLY flag in place. processing_template_decl
is known to be 0 in this part of function.
gcc/testsuite/ChangeLog:
PR target/33168
* g++.dg/other/datasec1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@131276 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Sat, 15 Dec 2007 21:47:41 +0000 (15 21:47 +0000)]
* tree.c (type_hash_add): Fix whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130975 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 Nov 2007 19:06:40 +0000 (12 19:06 +0000)]
* expr.c (build_jni_stub): Use the computed jni func type for
variable meth.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130118 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 Nov 2007 18:57:49 +0000 (12 18:57 +0000)]
* tree.c (type_hash_add): Don't violate strict aliasing rules.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130117 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 Nov 2007 18:53:24 +0000 (12 18:53 +0000)]
* class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130116 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 Nov 2007 18:49:06 +0000 (12 18:49 +0000)]
Add ChangeLog files that are about to be used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130115 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 Nov 2007 18:45:38 +0000 (12 18:45 +0000)]
* ifcvt.c (noce_process_if_block): Skip notes in between debug
insns when scanning back for insn_b. Check for mods starting
after insn_b.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130114 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 12 Nov 2007 18:40:19 +0000 (12 18:40 +0000)]
* caller-save.c (refmarker_fn): New type.
(save_call_clobbered_regs): Don't restore saved regs for debug insns.
(mark_referenced_regs): Add mark and arg parameters. Make
first argument indirect. Adjust callers.
(mark_reg_as_referenced): New function.
(replace_reg_with_saved_mem): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/var-tracking-assignments-branch@130113 138bc75d-0d04-0410-961f-82ee72b054a4