aboutsummaryrefslogtreecommitdiff
path: root/gcc/valtrack.c
AgeCommit message (Collapse)AuthorFilesLines
2013-03-12re PR rtl-optimization/56571 (ICE in copyprop_hardreg_forward_1, at ↵Jan Hubicka1-1/+5
regcprop.c (insn does not satisfy its constraints !)) PR middle-end/56571 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating from pseudos. * emit-rtl.c (verify_rtx_sharing): Likewise. (copy_insn_1): Likewise. * rtl.c (copy_rtx): Likewise. PR middle-end/56571 * gcc.c-torture/compile/pr56571.c: New testcase. From-SVN: r196612
2013-01-10Update copyright years in gcc/Richard Sandiford1-1/+1
From-SVN: r195098
2012-12-19re PR debug/55730 (ICE in mem_loc_descriptor, at dwarf2out.c:12725)Jakub Jelinek1-0/+22
PR debug/55730 * dwarf2out.c (mem_loc_descriptor): Ignore CLOBBER. * valtrack.c (gen_lowpart_for_debug): New function. (propagate_for_debug): Temporarily set rtl_hooks.gen_lowpart_no_emit to gen_lowpart_for_debug. * gcc.dg/debug/pr55730.c: New test. From-SVN: r194607
2012-10-30re PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)Alexandre Oliva1-3/+5
PR debug/54551 PR debug/54693 * valtrack.c (dead_debug_promote_uses): Assert-check that global used bit was clear and initialize entry unconditionally. From-SVN: r193003
2012-10-30re PR debug/54953 (New sra-1.c FAILs on powerpc)Jakub Jelinek1-1/+2
PR debug/54953 * valtrack.h (DEBUG_TEMP_AFTER_WITH_REG_FORCE): New. * valtrack.c (dead_debug_insert_temp): Use emit_debug_insn_after even for where == DEBUG_TEMP_AFTER_WITH_REG_FORCE. * dce.c (word_dce_process_block, dce_process_block): Pass DEBUG_TEMP_AFTER_WITH_REG_FORCE if insn is needed and therefore not going to be eliminated. From-SVN: r192978
2012-10-29re PR debug/54693 (VTA guality issues with loops)Alexandre Oliva1-3/+3
PR debug/54693 * gcc/valtrack.c (dead_debug_insert_temp): Defer rescan of newly-emitted debug insn. From-SVN: r192962
2012-10-29re PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)Alexandre Oliva1-16/+52
PR debug/54551 PR debug/54693 * valtrack.c (dead_debug_global_find): Accept NULL dtemp. (dead_debug_global_insert): Return new entry. (dead_debug_global_replace_temp): Return early if REG is no longer in place, or if dtemp was already substituted. (dead_debug_promote_uses): Insert for all defs and replace all debug uses at once. (dead_debug_local_finish): Release used after promotion. (dead_debug_insert_temp): Stop if dtemp is NULL. From-SVN: r192959
2012-10-02re PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)Alexandre Oliva1-22/+198
gcc/ChangeLog: PR debug/54551 * Makefile.in (VALTRACK_H): Add hash-table.h. * valtrack.h: Include hash-table.h. (struct dead_debug_global_entry): New. (struct dead_debug_hash_descr): New. (struct dead_debug_global): New. (struct dead_debug): Rename to... (struct dead_debug_local): ... this. Adjust all uses. (dead_debug_global_init, dead_debug_global_finish): New. (dead_debug_init): Rename to... (dead_debug_local_init): ... this. Adjust all callers. (dead_debug_finish): Rename to... (dead_debug_local_finish): ... this. Adjust all callers. * valtrack.c (dead_debug_global_init): New. (dead_debug_init): Rename to... (dead_debug_local_init): ... this. Take global parameter. Save it and initialize used bitmap from it. (dead_debug_global_find, dead_debug_global_insert): New. (dead_debug_global_replace_temp): New. (dead_debug_promote_uses): New. (dead_debug_finish): Rename to... (dead_debug_local_finish): ... this. Promote remaining uses. (dead_debug_global_finish): New. (dead_debug_add): Try to replace global temps first. (dead_debug_insert_temp): Support global replacements. * dce.c (word_dce_process_block, dce_process_block): Add global_debug parameter. Pass it on. (fast_dce): Initialize, pass on and finalize global_debug. * df-problems.c (df_set_unused_notes_for_mw): Adjusted. (df_create_unused_notes, df_note_bb_compute): Likewise. (df_note_compute): Justify local-only dead debug analysis. gcc/testsuite/ChangeLog: PR debug/54551 * gcc.dg/guality/pr54551.c: New. From-SVN: r192001
2012-09-03re PR debug/53923 (ICE: RTL check: expected code 'reg', have 'debug_expr' in ↵Jakub Jelinek1-0/+8
rhs_regno, at rtl.h:1091) PR debug/53923 * valtrack.c (dead_debug_insert_temp): Drop non-reg uses from the chain. From-SVN: r190883
2012-08-23alias.c (rtx_equal_for_memref_p): Convert constant cases.Kenneth Zadeck1-4/+1
2012-08-23 Kenneth Zadeck <zadeck@naturalbridge.com> * alias.c (rtx_equal_for_memref_p): Convert constant cases. * combine.c (find_single_use_1, mark_used_regs_combine): Convert to CASE_CONST_ANY. * cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1, count_reg_usage): Convert constant cases. * cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY. (cselib_subst_to_values): Convert constant cases. * df-scan.c (df_uses_record): Ditto. * dse.c (const_or_frame_p): Convert case statements to explicit if-then-else using mode classes. * emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases. * explow.c (convert_memory_address_addr_space): Ditto. * gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto. * genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto. * ira.c (equiv_init_varies_p, contains_replace_regs, memref_referenced_p, rtx_moveable_p): Ditto. * jump.c (mark_jump_label_1): Remove constant cases. (rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE. * loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1, invariant_expr_equal_p): Convert to CASE_CONST_ANY. * postreload-gcse.c (oprs_unchanged_p): Convert constant cases. * reginfo.c (reg_scan_mark_refs): Ditto. * regrename.c (scan_rtx): Ditto. * reload1.c (eliminate_regs_1, elimination_effects, scan_paradoxical_subregs): Ditto. * reload.c (operands_match_p, subst_reg_equivs): Ditto. * resource.c (mark_referenced_resources, mark_set_resources): Ditto. * rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences) (reg_mentioned_p, modified_between_p, modified_in_p) (volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1, inequality_comparisons_p, computed_jump_p_1): Ditto. * rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto. * sched-deps.c (sched_analyze_2): Ditto. * valtrack.c (cleanup_auto_inc_dec): Ditto. * rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE, CASE_CONST_ANY): New macros. From-SVN: r190627
2012-08-02re PR debug/52983 (internal compiler error: in df_uses_record, at ↵Alexandre Oliva1-3/+5
df-scan.c:3243) PR debug/52983 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec. From-SVN: r190063
2012-08-02re PR debug/52983 (internal compiler error: in df_uses_record, at ↵Alexandre Oliva1-6/+5
df-scan.c:3243) PR debug/52983 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally, falling back to copy_rtx on non-autoinc machines. (propagate_for_debug_subst): Always use cleanup_auto_inc_dec. From-SVN: r190062
2012-08-02re PR debug/52983 (internal compiler error: in df_uses_record, at ↵Alexandre Oliva1-0/+492
df-scan.c:3243) PR debug/52983 * valtrack.h, valtrack.c: New. * Makefile.in (VALTRACK_H): New. (OBJS): Add valtrack.o. (valtrack.o): New. (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H. * combine.c: Include valtrack.h. (make_compound_operation): Publish. (cleanup_auto_inc_dec): Move to valtrack.c. (struct rtx_subst_pair, propagate_for_debug_subst): Likewise. (propagate_for_debug): Likewise. Add this_basic_block parameter. Adjust all callers. * cselib.c: Include valtrack.h. * dce.c: Likewise. * df-problems.c: Likewise. (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c. (dead_debug_finish, dead_debug_add): Likewise. (dead_debug_insert_temp): Likewise. * df.h (struct dead_debug_use): Move to valtrack.h. (struct dead_debug, enum debug_temp_where): Likewise. (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h. (dead_debug_finish, dead_debug_add): Likewise. (dead_debug_insert_temp): Likewise. * rtl.h (make_compound_operation): Declare. From-SVN: r190061