gcc/gcc
Alexandre Oliva b5b8b0ac64 invoke.texi (-fvar-tracking-assignments): New.
gcc/ChangeLog:
* doc/invoke.texi (-fvar-tracking-assignments): New.
(-fvar-tracking-assignments-toggle): New.
(-fdump-final-insns=file): Mark filename as optional.
(--param min-nondebug-insn-uid): New.
(-gdwarf-@{version}): Mention version 4.
* opts.c (common_handle_option): Accept it.
* tree-vrp.c (find_assert_locations_1): Skip debug stmts.
* regrename.c (regrename_optimize): Drop last.  Don't count debug
insns as uses.  Don't reject change because of debug insn.
(do_replace): Reject DEBUG_INSN as chain starter.  Take base_regno
from the chain starter, and check for inexact matches in
DEBUG_INSNS.
(scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
(build_def_use): Simplify and fix the marking of DEBUG_INSNs.
* sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
* fwprop.c (forward_propagate_and_simplify): ...into debug insns.
* doc/gimple.texi (is_gimple_debug): New.
(gimple_debug_bind_p): New.
(is_gimple_call, gimple_assign_cast_p): End sentence with period.
* doc/install.texi (bootstrap-debug): More details.
(bootstrap-debug-big, bootstrap-debug-lean): Document.
(bootstrap-debug-lib): More details.
(bootstrap-debug-ckovw): Update.
(bootstrap-time): New.
* tree-into-ssa.c (mark_def_sites): Skip debug stmts.
(insert_phi_nodes_for): Insert debug stmts.
(rewrite_stmt): Take iterator.  Insert debug stmts.
(rewrite_enter_block): Adjust.
(maybe_replace_use_in_debug_stmt): New.
(rewrite_update_stmt): Use it.
(mark_use_interesting): Return early for debug stmts.
* tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
stmts before replacing stmt.
(move_computations_stmt): Likewise.
* ira-conflicts.c (add_copies): Skip debug insns.
* regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
(regstat_bb_compute_ri): Skip debug insns.
* tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
check_loop_closed_ssa_stmt): Skip debug stmts.
* tree-tailcall.c (find_tail_calls): Likewise.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
* tree.h (MAY_HAVE_DEBUG_STMTS): New.
(build_var_debug_value_stat): Declare.
(build_var_debug_value): Define.
(target_for_debug_bind): Declare.
* reload.c (find_equiv_reg): Skip debug insns.
* rtlanal.c (reg_used_between_p): Skip debug insns.
(side_effects_p): Likewise.
(canonicalize_condition): Likewise.
* ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
insns never depend on debug insns.
(create_ddg_dep_no_link): Likewise.
(add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
Don't add inter-loop dependencies for debug insns.
(build_intra_loop_deps): Likewise.
(create_ddg): Count debug insns.
* ddg.h (struct ddg::num_debug): New.
(num_backargs): Pair up with previous int field.
* diagnostic.c (diagnostic_report_diagnostic): Skip notes on
-fcompare-debug-second.
* final.c (get_attr_length_1): Skip debug insns.
(rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
* gcc.c (invoke_as): Call compare-debug-dump-opt.
(driver_self_specs): Map -fdump-final-insns to
-fdump-final-insns=..
(get_local_tick): New.
(compare_debug_dump_opt_spec_function): Test for . argument and
compute output name.  Compute temp output spec without flag name.
Compute -frandom-seed.
(OPT): Undef after use.
* cfgloopanal.c (num_loop_insns): Skip debug insns.
(average_num_loop_insns): Likewise.
* params.h (MIN_NONDEBUG_INSN_UID): New.
* gimple.def (GIMPLE_DEBUG): New.
* ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
* auto-inc-dec.c (merge_in_block): Skip debug insns.
(merge_in_block): Fix whitespace.
* toplev.c (flag_var_tracking): Update comment.
(flag_var_tracking_assignments): New.
(flag_var_tracking_assignments_toggle): New.
(process_options): Don't open final insns dump file if we're not
going to write to it.  Compute defaults for var_tracking.
* df-scan.c (df_insn_rescan_debug_internal): New.
(df_uses_record): Handle debug insns.
* haifa-sched.c (ready): Initialize n_debug.
(contributes_to_priority): Skip debug insns.
(dep_list_size): New.
(priority): Use it.
(rank_for_schedule): Likewise.  Schedule debug insns as soon as
they're ready.  Disregard previous debug insns to make decisions.
(queue_insn): Never queue debug insns.
(ready_add, ready_remove_first, ready_remove): Count debug insns.
(schedule_insn): Don't reject debug insns because of issue rate.
(get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
(queue_to_ready): Skip and discount debug insns.
(choose_ready): Let debug insns through.
(schedule_block): Check boundary debug insns.  Discount debug
insns, schedule them early.  Adjust whitespace.
(set_priorities): Check for boundary debug insns.
(add_jump_dependencies): Use dep_list_size.
(prev_non_location_insn): New.
(check_cfg): Use it.
* tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
stmts.
(remove_unused_ivs): Reset debug stmts.
* modulo-sched.c (const_iteration_count): Skip debug insns.
(res_MII): Discount debug insns.
(loop_single_full_bb_p): Skip debug insns.
(sms_schedule): Likewise.
(sms_schedule_by_order): Likewise.
(ps_has_conflicts): Likewise.
* caller-save.c (refmarker_fn): New.
(save_call_clobbered_regs): Replace regs with saved mem in
debug insns.
(mark_referenced_regs): Take pointer, mark and arg.  Adjust.
Call refmarker_fn mark for hardregnos.
(mark_reg_as_referenced): New.
(replace_reg_with_saved_mem): New.
* ipa-pure-const.c (check_stmt): Skip debug stmts.
* cse.c (cse_insn): Canonicalize debug insns.  Skip them when
searching back.
(cse_extended_basic_block): Skip debug insns.
(count_reg_usage): Likewise.
(is_dead_reg): New, split out of...
(set_live_p): ... here.
(insn_live_p): Use it for debug insns.
* tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
(execute_optimize_stdarg): Likewise.
* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Don't regard
changes in debug stmts as changes.
* sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
(moveup_expr): Don't move across debug insns.  Don't move
debug insn if it would create a bookkeeping block.
(moveup_expr_cached): Don't use cache for debug insns that
are heads of blocks.
(compute_av_set_inside_bb): Skip debug insns.
(sel_rank_for_schedule): Schedule debug insns first.  Remove
dead code.
(block_valid_for_bookkeeping_p); Support lax searches.
(create_block_for_bookkeeping): Adjust block numbers when
encountering debug-only blocks.
(find_place_for_bookkeeping): Deal with debug-only blocks.
(generate_bookkeeping_insn): Accept no place to insert.
(remove_temp_moveop_nops): New argument full_tidying.
(prepare_place_to_insert): Deal with debug insns.
(advance_state_on_fence): Debug insns don't start cycles.
(update_boundaries): Take fence as argument.  Deal with
debug insns.
(schedule_expr_on_boundary): No full_tidying on debug insns.
(fill_insns): Deal with debug insns.
(track_scheduled_insns_and_blocks): Don't count debug insns.
(need_nop_to_preserve_insn_bb): New, split out of...
(remove_insn_from_stream): ... this.
(fur_orig_expr_not_found): Skip debug insns.
* rtl.def (VALUE): Move up.
(DEBUG_INSN): New.
* tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug
stmts.
(nearest_common_dominator_of_uses): Take debug_stmts argument.
Set it if debug stmts are found.
(statement_sink_location): Skip debug stmts.  Propagate
moving defs into debug stmts.
* ifcvt.c (first_active_insn): Skip debug insns.
(last_active_insns): Likewise.
(cond_exec_process_insns): Likewise.
(noce_process_if_block): Likewise.
(check_cond_move_block): Likewise.
(cond_move_convert_if_block): Likewise.
(block_jumps_and_fallthru_p): Likewise.
(dead_or_predicable): Likewise.
* dwarf2out.c (debug_str_hash_forced): New.
(find_AT_string): Add comment.
(gen_label_for_indirect_string): New.
(get_debug_string_label): New.
(AT_string_form): Use it.
(mem_loc_descriptor): Handle non-TLS symbols.  Handle MINUS , DIV,
MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING.  Accept but
discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
several operations that cannot be represented with DWARF opcodes.
(loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND.  Require
dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
(dwarf2out_var_location): Take during-call mark into account.
(output_indirect_string): Update comment.  Output if there are
label and references.
(prune_indirect_string): New.
(prune_unused_types): Call it if debug_str_hash_forced.
More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
(dw_long_long_const): Remove.
(struct dw_val_struct): Change val_long_long type to rtx.
(print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
(output_die): Likewise.  Use HOST_BITS_PER_WIDE_INT size of each
component instead of HOST_BITS_PER_LONG.
(output_loc_operands): Likewise.   For const8* assert
HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
(output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
rather than HOST_BITS_PER_LONG is >= 64.
(add_AT_long_long): Remove val_hi and val_lo arguments, add
val_const_double.
(size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
HOST_BITS_PER_LONG for dw_val_class_long_long.
(add_const_value_attribute): Adjust add_AT_long_long caller.  Don't
handle TLS SYMBOL_REFs.  If CONST wraps a constant, tail recurse.
(dwarf_stack_op_name): Handle DW_OP_implicit_value and
DW_OP_stack_value.
(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
Handle DW_OP_implicit_value.
(extract_int): Move prototype earlier.
(mem_loc_descriptor): For SUBREG punt if inner
mode size is wider than DWARF2_ADDR_SIZE.  Handle SIGN_EXTEND
and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}.  Handle
EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
(loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
instead of Pmode size.
(loc_descriptor): Add MODE argument.  Handle CONST_INT, CONST_DOUBLE,
CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
attempt to handle other expressions.  Don't handle TLS SYMBOL_REFs.
(concat_loc_descriptor, concatn_loc_descriptor,
loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
(add_location_or_const_value_attribute): Likewise.  For single
location loc_lists attempt to use add_const_value_attribute
for constant decls.  Add DW_AT_const_value even if
NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
in its expression.
* cfgbuild.c (inside_basic_block_p): Handle debug insns.
(control_flow_insn_p): Likewise.
* tree-parloops.c (eliminate_local_variables_stmt): Handle debug
stmt.
(separate_decls_in_region_debug_bind): New.
(separate_decls_in_region): Process debug bind stmts afterwards.
* recog.c (verify_changes): Handle debug insns.
(extract_insn): Likewise.
(peephole2_optimize): Skip debug insns.
* dse.c (scan_insn): Skip debug insns.
* sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
Pass it on.
(setup_id_for_insn): Handle debug insns.
(maybe_tidy_empty_bb): Adjust whitespace.
(tidy_control_flow): Skip debug insns.
(sel_remove_insn): Adjust for debug insns.
(sel_estimate_number_of_insns): Skip debug insns.
(create_insn_rtx_from_pattern): Handle debug insns.
(create_copy_of_insn_rtx): Likewise.
* sel-sched-.h (sel_bb_end): Declare.
(sel_bb_empty_or_nop_p): New.
(get_all_loop_exits): Use it.
(_eligible_successor_edge_p): Likewise.
(return_nop_to_pool): Adjust.
* tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
* ira-lives.c (process_bb_node_lives): Skip debug insns.
* gimple-pretty-print.c (dump_gimple_debug): New.
(dump_gimple_stmt): Use it.
(dump_bb_header): Skip gimple debug stmts.
* regmove.c (optimize_reg_copy_1): Discount debug insns.
(fixup_match_2): Likewise.
(regmove_backward_pass): Likewise.  Simplify combined
replacement.  Handle debug insns.
* function.c (instantiate_virtual_regs): Handle debug insns.
* function.h (struct emit_status): Add x_cur_debug_insn_uid.
* print-rtl.h: Include cselib.h.
(print_rtx): Print VALUEs.  Split out and recurse for
VAR_LOCATIONs.
* df.h (df_inns_rescan_debug_internal): Declare.
* gcse.c (alloc_hash_table): Estimate n_insns.
(cprop_insn): Don't regard debug insns as changes.
(bypass_conditional_jumps): Skip debug insns.
(one_pre_gcse_pass): Adjust.
(one_code_hoisting_pass): Likewise.
(compute_ld_motion_mems): Skip debug insns.
(one_cprop_pass): Adjust.
* tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
(if_convertible_stmt_p): Handle debug stmts.
* init-regs.c (initialize_uninitialized_regs): Skip debug insns.
* tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
* ira-build.c (create_bb_allocnos): Skip debug insns.
* tree-flow-inline.h (has_zero_uses): Discount debug stmts.
(has_single_use): Likewise.
(single_imm_use): Likewise.
(num_imm_uses): Likewise.
* tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
* tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
(create_outofssa_var_map): Likewise.
* lower-subreg.c (adjust_decomposed_uses): New.
(resolve_debug): New.
(decompose_multiword_subregs): Use it.
* tree-dfa.c (find_referenced_vars): Skip debug stmts.
* emit-rtl.c: Include params.h.
(cur_debug_insn_uid): Define.
(set_new_first_and_last_insn): Set cur_debug_insn_uid too.
(copy_rtx_if_shared_1): Handle debug insns.
(reset_used_flags): Likewise.
(set_used_flags): LIkewise.
(get_max_insn_count): New.
(next_nondebug_insn): New.
(prev_nondebug_insn): New.
(make_debug_insn_raw): New.
(emit_insn_before_noloc): Handle debug insns.
(emit_jump_insn_before_noloc): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_debug_insn_before_noloc): New.
(emit_insn_after_noloc): Handle debug insns.
(emit_jump_insn_after_noloc): Likewise.
(emit_call_insn_after_noloc): Likewise.
(emit_debug_insn_after_noloc): Likewise.
(emit_insn_after): Take loc from earlier non-debug insn.
(emit_jump_insn_after): Likewise.
(emit_call_insn_after): Likewise.
(emit_debug_insn_after_setloc): New.
(emit_debug_insn_after): New.
(emit_insn_before): Take loc from later non-debug insn.
(emit_jump_insn_before): Likewise.
(emit_call_insn_before): Likewise.
(emit_debug_insn_before_setloc): New.
(emit_debug_insn_before): New.
(emit_insn): Handle debug insns.
(emit_debug_insn): New.
(emit_jump_insn): Handle debug insns.
(emit_call_insn): Likewise.
(emit): Likewise.
(init_emit): Take min-nondebug-insn-uid into account.
Initialize cur_debug_insn_uid.
(emit_copy_of_insn_after): Handle debug insns.
* cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
location of single rhs in place.
(maybe_dump_rtl_for_gimple_stmt): Dump lineno.
(floor_sdiv_adjust): New.
(cell_sdiv_adjust): New.
(cell_udiv_adjust): New.
(round_sdiv_adjust): New.
(round_udiv_adjust): New.
(wrap_constant): Moved from cselib.
(unwrap_constant): New.
(expand_debug_expr): New.
(expand_debug_locations): New.
(expand_gimple_basic_block): Drop hiding redeclaration.  Expand
debug bind stmts.
(gimple_expand_cfg): Expand debug locations.
* cselib.c: Include tree-pass.h.
(struct expand_value_data): New.
(cselib_record_sets_hook): New.
(PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
(cselib_clear_table): Move, and implemnet in terms of...
(cselib_reset_table_with_next_value): ... this.
(cselib_get_next_unknown_value): New.
(discard_useless_locs): Don't discard preserved values.
(cselib_preserve_value): New.
(cselib_preserved_value_p): New.
(cselib_preserve_definitely): New.
(cselib_clear_preserve): New.
(cselib_preserve_only_values): New.
(new_cselib_val): Take rtx argument.  Dump it in details.
(cselib_lookup_mem): Adjust.
(expand_loc): Take regs_active in struct.  Adjust.  Silence
dumps unless details are requested.
(cselib_expand_value_rtx_cb): New.
(cselib_expand_value_rtx): Rename and reimplment in terms of...
(cselib_expand_value_rtx_1): ... this.  Adjust.  Silence dumps
without details.  Copy more subregs.  Try to resolve values
using a callback.  Wrap constants.
(cselib_subst_to_values): Adjust.
(cselib_log_lookup): New.
(cselib_lookup): Call it.
(cselib_invalidate_regno): Don't count preserved values as
useless.
(cselib_invalidate_mem): Likewise.
(cselib_record_set): Likewise.
(struct set): Renamed to cselib_set, moved to cselib.h.
(cselib_record_sets): Adjust.  Call hook.
(cselib_process_insn): Reset table when it would be cleared.
(dump_cselib_val): New.
(dump_cselib_table): New.
* tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
(remove_forwarder_block): Support moving debug stmts.
* cselib.h (cselib_record_sets_hook): Declare.
(cselib_expand_callback): New type.
(cselib_expand_value_rtx_cb): Declare.
(cselib_reset_table_with_next_value): Declare.
(cselib_get_next_unknown_value): Declare.
(cselib_preserve_value): Declare.
(cselib_preserved_value_p): Declare.
(cselib_preserve_only_values): Declare.
(dump_cselib_table): Declare.
* cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
(try_crossjump_to_edge): Likewise.
(delete_unreachable_blocks): Remove dominant GIMPLE blocks after
dominated blocks when debug stmts are present.
* simplify-rtx.c (delegitimize_mem_from_attrs): New.
* tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
(set_var_live_on_entry): Likewise.
* loop-invariant.c (find_invariants_bb): Skip debug insns.
* cfglayout.c (curr_location, last_location): Make static.
(set_curr_insn_source_location): Don't avoid bouncing.
(get_curr_insn_source_location): New.
(get_curr_insn_block): New.
(duplicate_insn_chain): Handle debug insns.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
into debug stmts.
* common.opt (fcompare-debug): Move to sort order.
(fdump-unnumbered-links): Likewise.
(fvar-tracking-assignments): New.
(fvar-tracking-assignments-toggle): New.
* tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
because of debug stmts.
(mark_stmt_if_obviously_necessary): Mark debug stmts.
(eliminate_unnecessary_stmts): Walk dominated blocks before
dominators.
* tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
* ira.c (memref_used_between_p): Skip debug insns.
(update_equiv_regs): Likewise.
* sched-deps.c (sd_lists_size): Accept empty list.
(sd_init_insn): Mark debug insns.
(sd_finish_insn): Unmark them.
(sd_add_dep): Reject non-debug deps on debug insns.
(fixup_sched_groups): Give debug insns group treatment.
Skip debug insns.
(sched_analyze_reg): Don't mark debug insns for sched before call.
(sched_analyze_2): Handle debug insns.
(sched_analyze_insn): Compute next non-debug insn.  Handle debug
insns.
(deps_analyze_insn): Handle debug insns.
(deps_start_bb): Skip debug insns.
(init_deps): Initialize last_debug_insn.
* tree-ssa.c (target_for_debug_bind): New.
(find_released_ssa_name): New.
(propagate_var_def_into_debug_stmts): New.
(propagate_defs_into_debug_stmts): New.
(verify_ssa): Skip debug bind stmts without values.
(warn_uninialized_vars): Skip debug stmts.
* target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
* rtl.c (rtx_equal_p_cb): Handle VALUEs.
(rtx_equal_p): Likewise.
* ira-costs.c (scan_one_insn): Skip debug insns.
(process_bb_node_for_hard_reg_moves): Likewise.
* rtl.h (DEBUG_INSN_P): New.
(NONDEBUG_INSN_P): New.
(MAY_HAVE_DEBUG_INSNS): New.
(INSN_P): Accept debug insns.
(RTX_FRAME_RELATED_P): Likewise.
(INSN_DELETED_P): Likewise
(PAT_VAR_LOCATION_DECL): New.
(PAT_VAR_LOCATION_LOC): New.
(PAT_VAR_OCATION_STATUS): New.
(NOTE_VAR_LOCATION_DECL): Reimplement.
(NOTE_VAR_LOCATION_LOC): Likewise.
(NOTE_VAR_LOCATION_STATUS): Likewise.
(INSN_VAR_LOCATION): New.
(INSN_VAR_LOCATION_DECL): New.
(INSN_VAR_LOCATION_LOC): New.
(INSN_VAR_LOCATION_STATUS): New.
(gen_rtx_UNKNOWN_VAR_LOC): New.
(VAR_LOC_UNKNOWN_P): New.
(NOTE_DURING_CALL_P): New.
(SCHED_GROUP_P): Accept debug insns.
(emit_debug_insn_before): Declare.
(emit_debug_insn_before_noloc): Declare.
(emit_debug_insn_beore_setloc): Declare.
(emit_debug_insn_after): Declare.
(emit_debug_insn_after_noloc): Declare.
(emit_debug_insn_after_setloc): Declare.
(emit_debug_insn): Declare.
(make_debug_insn_raw): Declare.
(prev_nondebug_insn): Declare.
(next_nondebug_insn): Declare.
(delegitimize_mem_from_attrs): Declare.
(get_max_insn_count): Declare.
(wrap_constant): Declare.
(unwrap_constant): Declare.
(get_curr_insn_source_location): Declare.
(get_curr_insn_block): Declare.
* tree-inline.c (insert_debug_decl_map): New.
(processing_debug_stmt): New.
(remap_decl): Don't create new mappings in debug stmts.
(remap_gimple_op_r): Don't add references in debug stmts.
(copy_tree_body_r): Likewise.
(remap_gimple_stmt): Handle debug bind stmts.
(copy_bb): Skip debug stmts.
(copy_edges_for_bb): Likewise.
(copy_debug_stmt): New.
(copy_debug_stmts): New.
(copy_body): Copy debug stmts at the end.
(insert_init_debug_bind): New.
(insert_init_stmt): Take id.  Skip and emit debug stmts.
(setup_one_parameter): Remap variable earlier, register debug
mapping.
(estimate_num_insns): Skip debug stmts.
(expand_call_inline): Preserve debug_map.
(optimize_inline_calls): Check for no debug_stmts left-overs.
(unsave_expr_now): Preserve debug_map.
(copy_gimple_seq_and_replace_locals): Likewise.
(tree_function_versioning): Check for no debug_stmts left-overs.
Init and destroy debug_map as needed.  Split edges unconditionally.
(build_duplicate_type): Init and destroy debug_map as needed.
* tree-inline.h: Include gimple.h instead of pointer-set.h.
(struct copy_body_data): Add debug_stmts and debug_map.
* sched-int.h (struct ready_list): Add n_debug.
(struct deps): Add last_debug_insn.
(DEBUG_INSN_SCHED_P): New.
(BOUNDARY_DEBUG_INSN_P): New.
(SCHEDULE_DEBUG_INSN_P): New.
(sd_iterator_cond): Accept empty list.
* combine.c (create_log_links): Skip debug insns.
(combine_instructions): Likewise.
(cleanup_auto_inc_dec): New.  From Jakub Jelinek: Make sure the
return value is always unshared.
(struct rtx_subst_pair): New.
(auto_adjust_pair): New.
(propagate_for_debug_subst): New.
(propagate_for_debug): New.
(try_combine): Skip debug insns.  Propagate removed defs into
debug insns.
(next_nonnote_nondebug_insn): New.
(distribute_notes): Use it.  Skip debug insns.
(distribute_links): Skip debug insns.
* tree-outof-ssa.c (set_location_for_edge): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* var-tracking.c: Include cselib.h and target.h.
(enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
MO_VAL_SET.
(micro_operation_type_name): New.
(enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
(struct micro_operation_def): Update comments.
(decl_or_value): New type.  Use instead of decls.
(struct emit_note_data_def): Add vars.
(struct attrs_def): Use decl_or_value.
(struct variable_tracking_info_def): Add permp, flooded.
(struct location_chain_def): Update comment.
(struct variable_part_def): Use decl_or_value.
(struct variable_def): Make var_part a variable length array.
(valvar_pool): New.
(scratch_regs): New.
(cselib_hook_called): New.
(dv_is_decl_p): New.
(dv_is_value_p): New.
(dv_as_decl): New.
(dv_as_value): New.
(dv_as_opaque): New.
(dv_onepart_p): New.
(dv_pool): New.
(IS_DECL_CODE): New.
(check_value_is_not_decl): New.
(dv_from_decl): New.
(dv_from_value): New.
(dv_htab_hash): New.
(variable_htab_hash): Use it.
(variable_htab_eq): Support values.
(variable_htab_free): Free from the right pool.
(attrs_list_member, attrs_list_insert): Use decl_or_value.
(attrs_list_union): Adjust.
(attrs_list_mpdv_union): New.
(tie_break_pointers): New.
(canon_value_cmp): New.
(unshare_variable): Return possibly-modified slot.
(vars_copy_1): Adjust.
(var_reg_decl_set): Adjust.  Split out of...
(var_reg_set): ... this.
(get_init_value): Adjust.
(var_reg_delete_and_set): Adjust.
(var_reg_delete): Adjust.
(var_regno_delete): Adjust.
(var_mem_decl_set): Split out of...
(var_mem_set): ... this.
(var_mem_delete_and_set): Adjust.
(var_mem_delete): Adjust.
(val_store): New.
(val_reset): New.
(val_resolve): New.
(variable_union): Adjust.  Speed up merge of 1-part vars.
(variable_canonicalize): Use unshared slot.
(VALUED_RECURSED_INTO): New.
(find_loc_in_1pdv): New.
(struct dfset_merge): New.
(insert_into_intersection): New.
(intersect_loc_chains): New.
(loc_cmp): New.
(canonicalize_loc_order_check): New.
(canonicalize_values_mark): New.
(canonicalize_values_star): New.
(variable_merge_over_cur): New.
(variable_merge_over_src): New.
(dataflow_set_merge): New.
(dataflow_set_equiv_regs): New.
(remove_duplicate_values): New.
(struct dfset_post_merge): New.
(variable_post_merge_new_vals): New.
(variable_post_merge_perm_vals): New.
(dataflow_post_merge_adjust): New.
(find_mem_expr_in_1pdv): New.
(dataflow_set_preserve_mem_locs): New.
(dataflow_set_remove_mem_locs): New.
(dataflow_set_clear_at_call): New.
(onepart_variable_different_p): New.
(variable_different_p): Use it.
(dataflow_set_different_1): Adjust.  Make detailed dump
more verbose.
(track_expr_p): Add need_rtl parameter.  Don't generate rtl
if not needed.
(track_loc_p): Pass it true.
(struct count_use_info): New.
(find_use_val): New.
(replace_expr_with_values): New.
(log_op_type): New.
(use_type): New, partially split out of...
(count_uses): ... this.  Count new micro-ops.
(count_uses_1): Adjust.
(count_stores): Adjust.
(count_with_sets): New.
(VAL_NEEDS_RESOLUTION): New.
(VAL_HOLDS_TRACK_EXPR): New.
(VAL_EXPR_IS_COPIED): New.
(VAL_EXPR_IS_CLOBBERED): New.
(add_uses): Adjust.  Generate new micro-ops.
(add_uses_1): Adjust.
(add_stores): Generate new micro-ops.
(add_with_sets): New.
(find_src_status): Adjust.
(find_src_set_src): Adjust.
(compute_bb_dataflow): Use dataflow_set_clear_at_call.
Handle new micro-ops.  Canonicalize value equivalances.
(vt_find_locations): Compute total size of hash tables for
dumping.  Perform merge for var-tracking-assignments.  Don't
disregard single-block loops.
(dump_attrs_list): Handle decl_or_value.
(dump_variable): Take variable.  Deal with decl_or_value.
(dump_variable_slot): New.
(dump_vars): Use it.
(dump_dataflow_sets): Adjust.
(set_slot_part): New, extended to support one-part variables
after splitting out of...
(set_variable_part): ... this.
(clobber_slot_part): New, split out of...
(clobber_variable_part): ... this.
(delete_slot_part): New, split out of...
(delete_variable_part): .... this.
(check_wrap_constant): New.
(vt_expand_loc_callback): New.
(vt_expand_loc): New.
(emit_note_insn_var_location): Adjust.  Handle values.  Handle
EMIT_NOTE_AFTER_CALL_INSN.
(emit_notes_for_differences_1): Adjust.  Handle values.
(emit_notes_for_differences_2): Likewise.
(emit_notes_for_differences): Adjust.
(emit_notes_in_bb): Take pointer to set.  Emit AFTER_CALL_INSN
notes.  Adjust.  Handle new micro-ops.
(vt_add_function_parameters): Adjust.  Create and bind values.
(vt_initialize): Adjust.  Initialize scratch_regs and
valvar_pool, flooded and perm..  Initialize and use cselib.  Log
operations.  Move some code to count_with_sets and add_with_sets.
(delete_debug_insns): New.
(vt_debug_insns_local): New.
(vt_finalize): Release permp, valvar_pool, scratch_regs.  Finish
cselib.
(var_tracking_main): If var-tracking-assignments is enabled
but var-tracking isn't, delete debug insns and leave.  Likewise
if we exceed limits or fail the stack adjustments tests, and
after all var-tracking processing.
More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
(dataflow_set): Add traversed_vars.
(value_chain, const_value_chain): New typedefs.
(value_chain_pool, value_chains): New variables.
(value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
add_value_chains, add_cselib_value_chains, remove_value_chain,
remove_value_chains, remove_cselib_value_chains): New functions.
(shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
static inlines.
(shared_hash_find_slot_unshare, shared_hash_find_slot,
shared_hash_find_slot_noinsert, shared_hash_find): Update.
(dst_can_be_shared): New variable.
(unshare_variable): Unshare set->vars if shared, use shared_hash_*.
Clear dst_can_be_shared.  If set->traversed_vars is non-NULL and
different from set->vars, look up slot again instead of using the
passed in slot.
(dataflow_set_init): Initialize traversed_vars.
(variable_union): Use shared_hash_*.  Use initially NO_INSERT
lookup if set->vars is shared.  Don't keep slot cleared before
calling unshare_variable.  Unshare set->vars if needed.  Adjust
unshare_variable callers.  Clear dst_can_be_shared if needed.
Even ->refcount == 1 vars must be unshared if set->vars is shared
and var needs to be modified.
(dataflow_set_union): Set traversed_vars during canonicalization.
(VALUE_CHANGED, DECL_CHANGED): Define.
(set_dv_changed, dv_changed_p): New static inlines.
(track_expr_p): Clear DECL_CHANGED.
(dump_dataflow_sets): Set it.
(variable_was_changed): Call set_dv_changed.
(emit_note_insn_var_location): Likewise.
(changed_variables_stack): New variable.
(check_changed_vars_1, check_changed_vars_2): New functions.
(emit_notes_for_changes): Do nothing if changed_variables is
empty.  Traverse changed_variables with check_changed_vars_1,
call check_changed_vars_2 on each changed_variables_stack entry.
(emit_notes_in_bb): Add SET argument.  Just clear it at the
beginning, use it instead of local &set, don't destroy it at the
end.
(vt_emit_notes): Call dataflow_set_clear early on all
VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
computed set, dataflow_set_clear also VTI(bb)->in when we are
done with the basic block.  Initialize changed_variables_stack,
free it afterwards.  If ENABLE_CHECKING verify that after noting
differences to an empty set value_chains hash table is empty.
(vt_initialize): Initialize value_chains and value_chain_pool.
(vt_finalize): Delete value_chains htab, free value_chain_pool.
(variable_tracking_main): Call dump_dataflow_sets before calling
vt_emit_notes, not after it.
* tree-flow.h (propagate_defs_into_debug_stmts): Declare.
(propagate_var_def_into_debug_stmts): Declare.
* df-problems.c (df_lr_bb_local_compute): Skip debug insns.
(df_set_note): Reject debug insns.
(df_whole_mw_reg_dead_p): Take added_notes_p argument.  Don't
add notes to debug insns.
(df_note_bb_compute): Adjust.  Likewise.
(df_simulate_uses): Skip debug insns.
(df_simulate_initialize_backwards): Likewise.
* reg-stack.c (subst_stack_regs_in_debug_insn): New.
(subst_stack_regs_pat): Reject debug insns.
(convert_regs_1): Handle debug insns.
* Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
(print-rtl.o): Depend on cselib.h.
(cselib.o): Depend on TREE_PASS_H.
(var-tracking.o): Depend on cselib.h and TARGET_H.
* sched-rgn.c (rgn_estimate_number_of_insns): Discount
debug insns.
(init_ready_list): Skip boundary debug insns.
(add_branch_dependences): Skip debug insns.
(free_block_dependencies): Check for blocks with only debug
insns.
(compute_priorities): Likewise.
* gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
(gimple_build_with_ops_stat): Take subcode as unsigned.  Adjust
all callers.
(gimple_build_debug_bind_stat): New.
(empty_body_p): Skip debug stmts.
(gimple_has_side_effects): Likewise.
(gimple_rhs_has_side_effects): Likewise.
* gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
(gimple_build_debug_bind_stat): Declare.
(gimple_build_debug_bind): Define.
(is_gimple_debug): New.
(gimple_debug_bind_p): New.
(gimple_debug_bind_get_var): New.
(gimple_debug_bind_get_value): New.
(gimple_debug_bind_get_value_ptr): New.
(gimple_debug_bind_set_var): New.
(gimple_debug_bind_set_value): New.
(GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
(gimple_debug_bind_reset_value): New.
(gimple_debug_bind_has_value_p): New.
(gsi_next_nondebug): New.
(gsi_prev_nondebug): New.
(gsi_start_nondebug_bb): New.
(gsi_last_nondebug_bb): New.
* sched-vis.c (print_pattern): Handle VAR_LOCATION.
(print_insn): Handle DEBUG_INSN.
* tree-cfg.c (remove_bb): Walk stmts backwards.  Let loc
of first insn prevail.
(first_stmt): Skip debug stmts.
(first_non_label_stmt): Likewise.
(last_stmt): Likewise.
(has_zero_uses_1): New.
(single_imm_use_1): New.
(verify_gimple_debug): New.
(verify_types_in_gimple_stmt): Handle debug stmts.
(verify_stmt): Likewise.
(debug_loop_num): Skip debug stmts.
(remove_edge_and_dominated_blocks): Remove dominators last.
* tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into
debug stmts.
(linearize_expr): Likewise.
* config/i386/i386.c (ix86_delegitimize_address): Call
default implementation.
* config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug
insns.
(group_barrier_needed): Skip debug insns.
(emit_insn_group_barriers): Likewise.
(emit_all_insn_group_barriers): Likewise.
(ia64_variable_issue): Handle debug insns.
(ia64_dfa_new_cycle): Likewise.
(final_emit_insn_group_barriers): Skip debug insns.
(ia64_dwarf2out_def_steady_cfa): Take frame argument.  Don't
def cfa without frame.
(process_set): Likewise.
(process_for_unwind_directive): Pass frame on.
* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
(rs6000_delegitimize_address): New.
(rs6000_debug_adjust_cost): Handle debug insns.
(is_microcoded_insn): Likewise.
(is_cracked_insn): Likewise.
(is_nonpipeline_insn): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
* cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
contains only debug insns.
(rtl_merge_blocks): Skip debug insns.
(purge_dead_edges): Likewise.
(rtl_block_ends_with_call_p): Skip debug insns.
* dce.c (deletable_insn_p): Handle VAR_LOCATION.
(mark_reg_dependencies): Skip debug insns.
* params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
* tree-ssanames.c (release_ssa_name): Propagate def into
debug stmts.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts): Skip debug stmts.
* regcprop.c (replace_oldest_value_addr): Skip debug insns.
(replace_oldest_value_mem): Use ALL_REGS for debug insns.
(copyprop_hardreg_forward_1): Handle debug insns.
* reload1.c (reload): Skip debug insns.  Replace unassigned
pseudos in debug insns with their equivalences.
(eliminate_regs_in_insn): Skip debug insns.
(emit_input_reload_insns): Skip debug insns at first, adjust
them later.
* tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
(get_indirect_ref_operands): Pass opf_no_vops on.
(get_expr_operands): Likewise.  Skip debug stmts.
(parse_ssa_operands): Scan debug insns with opf_no_vops.
gcc/testsuite/ChangeLog:
* gcc.dg/guality/guality.c: New.
* gcc.dg/guality/guality.h: New.
* gcc.dg/guality/guality.exp: New.
* gcc.dg/guality/example.c: New.
* lib/gcc-dg.exp (cleanup-dump): Remove .gk files.
(cleanup-saved-temps): Likewise, .gkd files too.
gcc/cp/ChangeLog:
* cp-tree.h (TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS): New.
* cp-lang.c (cxx_dwarf_name): Pass it.
* error.c (count_non_default_template_args): Take flags as
argument.  Adjust all callers.  Skip counting of default
arguments if the new flag is given.
ChangeLog:
* Makefile.tpl (BUILD_CONFIG): Default to bootstrap-debug.
* Makefile.in: Rebuilt.
contrib/ChangeLog:
* compare-debug: Look for .gkd files and compare them.
config/ChangeLog:
* bootstrap-debug.mk: Add comments.
* bootstrap-debug-big.mk: New.
* bootstrap-debug-lean.mk: New.
* bootstrap-debug-ckovw.mk: Add comments.
* bootstrap-debug-lib.mk: Drop CFLAGS for stages.  Use -g0
for TFLAGS in stage1.  Drop -fvar-tracking-assignments-toggle.

From-SVN: r151312
2009-09-02 02:42:21 +00:00
..
ada boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT type. 2009-09-01 12:18:34 +02:00
config invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cp invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
doc invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
fortran tree-flow.h (mark_addressable): Move declaration ... 2009-09-01 08:38:10 +00:00
ginclude Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
java boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT type. 2009-09-01 12:18:34 +02:00
objc c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 2009-08-20 16:11:37 +00:00
objcp sourcebuild.texi: Document install-plugin target. 2009-07-14 18:25:23 -04:00
po * sv.po: Update. 2009-09-01 00:30:36 +01:00
testsuite invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ABOUT-GCC-NLS ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
BASE-VER * BASE-VER: Change to 4.5.0. 2009-03-27 20:56:48 +00:00
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:41:47 +00:00
ChangeLog-1997 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-1998 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-1999 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2000 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2001 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2002 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2003 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2004 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2005 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2006 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2007 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog-2008 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.dataflow ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.graphite graphite-dependences.c (graphite_legal_transform_bb): Call pbb_remove_duplicate_pdrs. 2009-08-28 20:41:53 +00:00
ChangeLog.lib ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.ptr ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.tree-ssa ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
ChangeLog.tuples ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
DATESTAMP Daily bump. 2009-09-02 00:16:48 +00:00
DEV-PHASE
FSFChangeLog ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
FSFChangeLog.10 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
FSFChangeLog.11 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
LANGUAGES ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
Makefile.in invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ONEWS ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
README.Portability
acinclude.m4 ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
aclocal.m4 Regenerate tree using Autoconf 2.64 and Automake 1.11. 2009-08-22 13:22:20 +00:00
addresses.h
alias.c alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P. 2009-08-12 15:10:47 +00:00
alias.h re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p) 2009-04-03 10:24:28 +00:00
alloc-pool.c alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value instead of an int. 2009-04-30 16:24:31 +00:00
alloc-pool.h
attribs.c attribs.c (register_attribute): Use CONST_CAST. 2009-06-01 16:35:01 +00:00
auto-inc-dec.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
basic-block.h gengtype.c (main): Handle uint64_t. 2009-08-27 08:56:10 +00:00
bb-reorder.c bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump on jumps. 2009-08-18 13:16:46 +02:00
bitmap.c hwint.h (HOST_LONG_FORMAT): New macro 2009-08-25 23:19:16 +00:00
bitmap.h bitmap.h (bitmap_ior_and_into): New. 2009-06-27 14:46:56 +00:00
bt-load.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
builtin-attrs.def
builtin-types.def
builtins.c tree.c (tree_expr_size): New function. 2009-09-01 08:41:53 +00:00
builtins.def re PR c/39252 (Request new feature __builtin_unreachable ()) 2009-06-11 23:55:45 +00:00
c-aux-info.c
c-common.c * c-common.c (c_common_reswords) add the alignof keyword, 2009-08-25 17:21:25 -04:00
c-common.def re PR middle-end/323 (optimized code gives strange floating point results) 2009-03-30 02:50:44 +01:00
c-common.h re PR c/40401 (ICE: verify_gimple failed) 2009-07-17 15:49:34 +00:00
c-config-lang.in c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 2009-08-20 16:11:37 +00:00
c-convert.c re PR c/40435 (Revision 148442 caused many regressions on trunk) 2009-07-16 22:29:52 +00:00
c-cppbuiltin.c extend.texi (Symbol-Renaming Pragmas): redefine_extname is supported on all platforms. 2009-08-14 17:25:48 -04:00
c-decl.c hwint.h (HOST_LONG_FORMAT): New macro 2009-08-25 23:19:16 +00:00
c-dump.c
c-errors.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
c-format.c Changelog gcc/ 2009-08-24 08:17:33 +02:00
c-format.h Changelog gcc/ 2009-08-24 08:17:33 +02:00
c-gimplify.c re PR c/40401 (ICE: verify_gimple failed) 2009-07-17 15:49:34 +00:00
c-lang.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
c-lang.h c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 2009-08-20 16:11:37 +00:00
c-lex.c c-lex.c (c_lex_with_flags): Increase size of local variable to avoid memory clobber. 2009-08-14 14:38:24 +00:00
c-objc-common.c c-objc-common.c (c_tree_printer): Print identifiers with pp_identifier, not pp_string. 2009-05-01 15:09:20 +01:00
c-objc-common.h tree-flow.h (mark_addressable): Move declaration ... 2009-09-01 08:38:10 +00:00
c-omp.c re PR c/40401 (ICE: verify_gimple failed) 2009-07-17 15:49:34 +00:00
c-opts.c re PR c/40401 (ICE: verify_gimple failed) 2009-07-17 15:49:34 +00:00
c-parser.c re PR c/40435 (Revision 148442 caused many regressions on trunk) 2009-07-16 22:29:52 +00:00
c-pch.c c-pch.c (get_ident): Don't set size of templ array. 2009-06-17 13:21:23 +00:00
c-ppoutput.c re PR preprocessor/34695 (Preprocessor warning->error conversion from -Werror is silent) 2009-03-29 23:56:07 +01:00
c-pragma.c extend.texi (Symbol-Renaming Pragmas): redefine_extname is supported on all platforms. 2009-08-14 17:25:48 -04:00
c-pragma.h
c-pretty-print.c pretty-print.h (struct pretty_print_info): Add translate_identifiers. 2009-05-10 11:28:34 +01:00
c-pretty-print.h c-objc-common.c (c_tree_printer): Print identifiers with pp_identifier, not pp_string. 2009-05-01 15:09:20 +01:00
c-semantics.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
c-tree.h c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 2009-08-20 16:11:37 +00:00
c-typeck.c c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 2009-08-20 16:11:37 +00:00
c.opt re PR c/25509 (can't disable __attribute__((warn_unused_result))) 2009-07-10 07:27:32 +00:00
caller-save.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
calls.c tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation for for_return == 2. 2009-08-12 16:23:12 +00:00
cfg.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfganal.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfgbuild.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cfgcleanup.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cfgexpand.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cfghooks.c cfghooks.c (split_block): Copy discriminator to new block. 2009-07-24 15:37:05 -07:00
cfghooks.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cfglayout.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cfglayout.h
cfgloop.c New implementation of Graphite. 2009-07-31 02:44:28 +00:00
cfgloop.h New implementation of Graphite. 2009-07-31 02:44:28 +00:00
cfgloopanal.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cfgloopmanip.c cfgloopmanip.c (create_empty_loop_on_edge): Generate upper bounds with LT_EXPR to make niter analysis more precise on code... 2009-08-28 20:24:51 +00:00
cfgrtl.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cgraph.c Emit DWARF for template parameters (PR debug/30161) 2009-08-31 23:48:04 +02:00
cgraph.h Emit DWARF for template parameters (PR debug/30161) 2009-08-31 23:48:04 +02:00
cgraphbuild.c cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. 2009-05-10 15:11:01 +00:00
cgraphunit.c cgraph.h (combined_args_to_skip): New field. 2009-07-20 14:15:02 +02:00
cif-code.def Bring from lto-branch: 2009-03-28 11:10:06 +00:00
collect2-aix.c Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. 2009-06-02 19:06:56 +00:00
collect2-aix.h Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. 2009-06-02 19:06:56 +00:00
collect2.c collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro, always defined. 2009-08-28 09:04:52 +00:00
collect2.h
combine-stack-adj.c alias.c: Use REG_P... 2009-06-22 10:29:13 +00:00
combine.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
common.opt invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
conditions.h
config.build config.build (ia64-hp-*vms*): New target. 2009-08-09 07:05:11 +00:00
config.gcc config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf. 2009-08-29 23:50:31 +00:00
config.host config.build (ia64-hp-*vms*): New target. 2009-08-09 07:05:11 +00:00
config.in Regenerate tree using Autoconf 2.64 and Automake 1.11. 2009-08-22 13:22:20 +00:00
configure configure.ac: For in-tree ld... 2009-08-28 15:22:18 +00:00
configure.ac configure.ac: For in-tree ld... 2009-08-28 15:22:18 +00:00
convert.c convert.c (convert_to_integer): Don't assume an input pointer is POINTER_SIZE wide. 2009-08-24 21:23:22 +00:00
convert.h
coretypes.h tree.c (list_equal_p): New function. 2009-04-25 18:27:19 +00:00
coverage.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
coverage.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
cppdefault.c
cppdefault.h
cppspec.c
crtstuff.c crtstuff.c (__do_global_dtors_aux): Use atexit if no fini or fini_array section. 2009-08-29 15:37:48 +00:00
cse.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cselib.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cselib.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
cstamp-h.in
dbgcnt.c dbgcnt name matching bug fix 2009-07-20 19:08:15 +00:00
dbgcnt.def dbgcnt.def (cprop1, [...]): Remove 2009-04-27 17:21:27 +00:00
dbgcnt.h
dbxout.c re PR debug/40666 (Ada tools build failure) 2009-07-07 20:46:06 +00:00
dbxout.h
dce.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
dce.h
ddg.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ddg.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
debug.c dbxout.c (dbxout_source_line): Add is_stmt parameter. 2009-06-17 16:54:40 -07:00
debug.h dbxout.c (dbxout_source_line): Add is_stmt parameter. 2009-06-17 16:54:40 -07:00
defaults.h hooks.h (hook_bool_const_int_const_int_true): Declare. 2009-08-26 01:09:00 +04:00
df-byte-scan.c re PR middle-end/37448 (cannot compile big function) 2008-10-11 23:39:21 +00:00
df-core.c * df-core.c (df_ref_debug): Honor -fdump-noaddr. 2009-06-02 08:08:57 +00:00
df-problems.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
df-scan.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
df.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
dfp.c re PR middle-end/39986 (decimal float constant is incorrect when cc1 is a 64-bit binary) 2009-05-06 16:59:53 +00:00
dfp.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
diagnostic.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
diagnostic.def ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
diagnostic.h re PR testsuite/40488 (Revision 148642 caused extra failures) 2009-06-18 16:27:40 -07:00
dojump.c expr.h (jumpifnot_1, [...]): Declare. 2009-08-25 13:35:39 +00:00
dominance.c basic-block.h (get_all_dominated_blocks): Declare. 2009-04-20 14:01:52 +00:00
domwalk.c domwalk.h (struct dom_walk_data): Remove all callbacks except before_dom_children_before_stmts and... 2009-06-27 14:45:51 +00:00
domwalk.h domwalk.h (struct dom_walk_data): Remove all callbacks except before_dom_children_before_stmts and... 2009-06-27 14:45:51 +00:00
double-int.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
double-int.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
dse.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
dse.h
dummy-checksum.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
dwarf2asm.c unwind-dw2-fde-darwin.c: Include dwarf2.h. 2009-07-09 19:41:25 +00:00
dwarf2asm.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
dwarf2out.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
dwarf2out.h cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
ebitmap.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ebitmap.h basic-block.h (dump_regset, [...]): Remove duplicate prototypes. 2009-07-08 11:35:18 +00:00
emit-rtl.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
emit-rtl.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
emutls.c re PR other/40024 (trunk/gcc-4.3/gcc: * emutls.c (emutls_destroy): Don' t fall out of the array bound.) 2009-06-01 20:03:26 +02:00
errors.c errors.c (internal_error): Commentary typo fix. 2009-06-07 21:29:43 +02:00
errors.h Makefile.in: Update dependencies. 2009-04-22 16:01:29 +00:00
et-forest.c
et-forest.h
except.c dwarf2out.c (output_fde): When doing hot/cold partitioning... 2009-08-07 11:10:13 +02:00
except.h cgraph.c (dump_cgraph_node): Dump size/time/benefit. 2009-05-25 21:59:24 +00:00
exec-tool.in Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
explow.c tree.c (tree_expr_size): New function. 2009-09-01 08:41:53 +00:00
expmed.c expmed.c (emit_store_flag): Use a recursive call to optimize the xor case. 2009-07-24 13:40:04 +00:00
expr.c expr.c (expand_expr_real_2): New function taking exploded unary or binary expression, split out from ... 2009-08-27 12:42:18 +00:00
expr.h expr.h (jumpifnot_1, [...]): Declare. 2009-08-25 13:35:39 +00:00
final.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
fixed-value.c collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind. 2009-04-27 20:25:48 +00:00
fixed-value.h hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
flags.h re PR c/40401 (ICE: verify_gimple failed) 2009-07-17 15:49:34 +00:00
fold-const.c re PR middle-end/30789 (complex folding inexact) 2009-08-14 16:44:36 +00:00
fp-test.c
function.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
function.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
fwprop.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gbl-ctors.h gbl-ctors.h: Add header guard. 2009-06-07 21:53:14 +02:00
gcc-plugin.h plugins.texi: Document PLUGIN_START_UNIT. 2009-06-29 21:17:40 +00:00
gcc.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gcc.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
gccbug.in
gccspec.c
gcov-dump.c gcc.c (process_command): Update copyright notice dates. 2009-02-03 21:48:23 +01:00
gcov-io.c
gcov-io.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gcov-iov.c
gcov.c df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 2009-06-16 05:12:15 +00:00
gcse.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gdbinit.in ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
genattr.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genattrtab.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
genautomata.c Makefile.in: Update dependencies. 2009-04-22 16:01:29 +00:00
gencheck.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genchecksum.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genextract.c genoutput.c (validate_optab_operands): New. 2009-04-08 15:00:34 +00:00
genflags.c genoutput.c (validate_optab_operands): New. 2009-04-08 15:00:34 +00:00
gengenrtl.c
gengtype-lex.l hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
gengtype-parse.c gengtype-parse.c (parse_error): Add newline after message. 2009-04-24 09:46:47 -04:00
gengtype.c gengtype.c (main): Handle uint64_t. 2009-08-27 08:56:10 +00:00
gengtype.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
genmddeps.c
genmodes.c
genmultilib
genopinit.c re PR testsuite/40491 (Revision 148663 caused extra failures) 2009-06-19 16:22:16 +02:00
genoutput.c genoutput.c (validate_optab_operands): New. 2009-04-08 15:00:34 +00:00
genpeep.c
genpreds.c alias.c: Use REG_P... 2009-06-22 10:29:13 +00:00
genrecog.c alias.c: Use REG_P... 2009-06-22 10:29:13 +00:00
gensupport.c collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind. 2009-04-27 20:25:48 +00:00
gensupport.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ggc-common.c plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
ggc-none.c
ggc-page.c ggc-page.c (ggc_pch_write_object): Initialize emptyBytes. 2009-06-19 15:32:43 +00:00
ggc-zone.c plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
ggc.h plugins.texi (Loading plugins): typo. 2009-05-26 17:33:33 +00:00
gimple-iterator.c errors.c (internal_error): Commentary typo fix. 2009-06-07 21:29:43 +02:00
gimple-low.c Fix to PR41012 2009-08-12 16:51:41 +00:00
gimple-pretty-print.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gimple.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gimple.def invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gimple.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
gimplify.c re PR c/41163 (verify_gimple fails) 2009-08-26 13:23:04 +00:00
glimits.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
graph.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
graph.h
graphds.c
graphds.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
graphite-blocking.c graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed pbb_strip_mine_time_depth. 2009-08-28 20:33:10 +00:00
graphite-clast-to-gimple.c Measure time spent in DD analysis and in code gen. 2009-08-12 14:18:17 +00:00
graphite-clast-to-gimple.h New Graphite files. 2009-07-31 02:43:11 +00:00
graphite-dependences.c graphite-dependences.c (graphite_legal_transform_bb): Call pbb_remove_duplicate_pdrs. 2009-08-28 20:41:53 +00:00
graphite-dependences.h graphite-dependences.c (pddr_original_scattering): New. 2009-08-28 20:31:28 +00:00
graphite-interchange.c graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by multiplying by PDR_NB_REFS. 2009-08-28 20:40:59 +00:00
graphite-poly.c graphite-dependences.c (graphite_legal_transform_bb): Call pbb_remove_duplicate_pdrs. 2009-08-28 20:41:53 +00:00
graphite-poly.h graphite-dependences.c (graphite_legal_transform_bb): Call pbb_remove_duplicate_pdrs. 2009-08-28 20:41:53 +00:00
graphite-ppl.c graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset. 2009-08-28 20:32:20 +00:00
graphite-ppl.h graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset. 2009-08-28 20:32:20 +00:00
graphite-scop-detection.c graphite-dependences.c (pddr_original_scattering): New. 2009-08-28 20:31:28 +00:00
graphite-scop-detection.h New Graphite files. 2009-07-31 02:43:11 +00:00
graphite-sese-to-poly.c Dont add unknown subscript upper bounds. 2009-08-12 14:31:21 +00:00
graphite-sese-to-poly.h New Graphite files. 2009-07-31 02:43:11 +00:00
graphite.c Remove pragma GCC diagnostic warning "-Wc++-compat". 2009-08-12 15:13:52 +00:00
graphite.h New implementation of Graphite. 2009-07-31 02:44:28 +00:00
gsstruct.def Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
gstab.h gstab.h (stab_code_type): Define, to be used instead of the __stab_debug_code enum, made anonymous. 2009-05-20 12:44:44 +00:00
gsyms.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
gsyslimits.h
gthr-aix.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-dce.h gthr-dce.h (CONST_CAST2): Define if not defined. 2009-08-02 01:38:27 +00:00
gthr-gnat.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-gnat.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-lynx.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-mipssde.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-nks.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-posix.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-posix.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-posix95.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-rtems.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-single.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-solaris.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-tpf.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
gthr-vxworks.h gthr-vxworks.h (struct __gthread_once_t): Add alignment and padding for PPC. 2009-04-22 10:53:53 +00:00
gthr-win32.h gthr-win32.h (__UNUSED_PARAM): Define, if not already present. 2009-08-25 12:32:38 +02:00
gthr.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
haifa-sched.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
hard-reg-set.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
hooks.c hooks.h (hook_bool_const_int_const_int_true): Declare. 2009-08-26 01:09:00 +04:00
hooks.h hooks.h (hook_bool_const_int_const_int_true): Declare. 2009-08-26 01:09:00 +04:00
host-default.c
hosthooks-def.h
hosthooks.h
hwint.h hwint.h (HOST_LONG_FORMAT): New macro 2009-08-25 23:19:16 +00:00
ifcvt.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
incpath.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
incpath.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
init-regs.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
input.h
insn-addr.h
insn-notes.def cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
integrate.c hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
integrate.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
intl.c intl.c (locale_encoding, [...]): New. 2009-05-04 13:23:50 +01:00
intl.h intl.c (locale_encoding, [...]): New. 2009-05-04 13:23:50 +01:00
ipa-cp.c re PR tree-optimization/41011 (ICE in ipcp_lattice_from_jfunc, at ipa-cp.c:328) 2009-08-12 17:55:40 +00:00
ipa-inline.c Fix to PR41012 2009-08-12 16:51:41 +00:00
ipa-prop.c ipa-prop.c (compute_complex_pass_through): If we cannot compute a non-varying offset for IPA_JF_ANCESTOR punt. 2009-08-14 15:07:43 +00:00
ipa-prop.h ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed comments. 2009-08-07 09:15:41 +02:00
ipa-pure-const.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ipa-reference.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ipa-reference.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ipa-struct-reorg.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
ipa-struct-reorg.h tree-parloops.c: Change license to GPLv3. 2009-02-10 17:59:08 +00:00
ipa-type-escape.c ipa-reference.c: Do not include c-common.h, include splay-tree.h. 2009-05-01 20:25:26 +00:00
ipa-type-escape.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
ipa-utils.c gengtype.c (main): Handle uint64_t. 2009-08-27 08:56:10 +00:00
ipa-utils.h re PR middle-end/40147 (Memory leak in revision 147436) 2009-05-14 08:45:32 -07:00
ipa.c cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. 2009-05-10 15:11:01 +00:00
ira-build.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ira-color.c re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira-conflicts.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ira-costs.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ira-emit.c re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira-int.h re PR rtl-optimization/39762 (IRA ICE with -msoft-float) 2009-04-16 15:15:48 +00:00
ira-lives.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ira.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
ira.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
jump.c re PR debug/40462 (ICE in dwarf2out_begin_epilogue, at dwarf2out.c:2773 while compiling mlib-tgt.adb) 2009-07-01 21:25:52 +02:00
lambda-code.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
lambda-mat.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
lambda-trans.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
lambda.h re PR tree-optimization/37031 (ICE for h264ref in gather_interchange_stats with -ftree-loop-linear) 2009-01-08 17:01:42 +01:00
langhooks-def.h tree.c (tree_expr_size): New function. 2009-09-01 08:41:53 +00:00
langhooks.c tree.c (tree_expr_size): New function. 2009-09-01 08:41:53 +00:00
langhooks.h tree.c (tree_expr_size): New function. 2009-09-01 08:41:53 +00:00
lcm.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
libfuncs.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
libgcc-std.ver ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
libgcc2.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
libgcc2.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
libgcov.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
limitx.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
limity.h
lists.c Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
longlong.h re PR target/41015 (SH: miscompilation for sh4-linux) 2009-08-10 20:57:35 +00:00
loop-doloop.c re PR rtl-optimization/37782 (Stage2 ada compiler miscompiled) 2008-11-03 12:01:11 -08:00
loop-init.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
loop-invariant.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
loop-iv.c re PR rtl-optimization/40209 (ICE in iv_analyze_def caused by stale REG_UNUSED note) 2009-07-24 04:01:13 +00:00
loop-unroll.c loop-unroll.c (struct iv_to_split): Add pointer to next. 2009-06-02 17:47:33 +00:00
loop-unswitch.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
lower-subreg.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
machmode.def
machmode.h Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
main.c re PR other/31567 (cc1, cc1plus, etc. don't support @file mechanism) 2009-04-17 17:11:46 -04:00
matrix-reorg.c tree-flow.h (make_value_handle, [...]): Remove prototypes for removed functions. 2009-06-07 21:44:39 +02:00
mcf.c combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. 2009-04-24 15:31:38 +00:00
mips-tdump.c alpha.c (alpha_initialize_trampoline): Change 0 to LCT_NORMAL in function call. 2009-05-14 10:10:23 +00:00
mips-tfile.c hwint.h (HOST_LONG_FORMAT): New macro 2009-08-25 23:19:16 +00:00
mkconfig.sh
mkmap-flat.awk Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
mkmap-symver.awk
mode-classes.def
mode-switching.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
modulo-sched.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
omega.c alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
omega.h alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. 2009-05-16 06:54:11 +00:00
omp-builtins.def
omp-low.c omp-low.c (optimize_omp_library_calls): Use types_compatible_p instead of comparing TYPE_MAIN_VARIANT for equality. 2009-08-19 14:29:52 +00:00
opt-functions.awk opt-functions.awk (opt_args): Allow argument to be enclosed in curly braces. 2009-07-30 07:22:28 +00:00
opt-gather.awk
optabs.c expr.h (struct separate_ops, sepops): New type for passing around an exploded simple expression. 2009-08-25 13:33:54 +00:00
optabs.h expr.h (struct separate_ops, sepops): New type for passing around an exploded simple expression. 2009-08-25 13:33:54 +00:00
optc-gen.awk optc-gen.awk: Warn if an option flag has multiple different help strings. 2009-03-30 05:55:57 +00:00
opth-gen.awk common.opt (gdwarf-): Accept a version number. 2009-06-11 20:08:11 -07:00
opts-common.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
opts.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
opts.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
output.h tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE... 2009-06-01 14:42:56 +00:00
params.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
params.def invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
params.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
passes.c New implementation of Graphite. 2009-07-31 02:44:28 +00:00
plugin.c plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 2009-07-09 17:57:14 +00:00
plugin.h 2009-05-13 Taras Glek <tglek@mozilla.com> 2009-05-14 01:38:33 +00:00
pointer-set.c
pointer-set.h
postreload-gcse.c postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p. 2008-08-31 12:52:07 +00:00
postreload.c re PR rtl-optimization/30807 (postreload bug (might be generic in trunk)) 2009-07-06 13:28:22 +00:00
predict.c Recompute profile after Graphite. 2009-08-12 14:19:33 +00:00
predict.def Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
predict.h Recompute profile after Graphite. 2009-08-12 14:19:33 +00:00
prefix.c
prefix.h
pretty-print.c pretty-print.c (pp_base_format): Remove %J. 2009-07-07 15:29:12 +00:00
pretty-print.h pretty-print.h (struct pretty_print_info): Add translate_identifiers. 2009-05-10 11:28:34 +01:00
print-rtl.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
print-tree.c hwint.h (HOST_LONG_FORMAT): New macro 2009-08-25 23:19:16 +00:00
profile.c profile.c (total_num_never_executed): Don't define. 2009-06-17 20:23:57 +00:00
profile.h profile.h: Really add it. 2008-08-18 12:22:36 -07:00
read-rtl.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
real.c real.c (encode_ieee_half): Define. 2009-05-15 10:22:58 -04:00
real.h re PR middle-end/30789 (complex folding inexact) 2009-08-14 16:44:36 +00:00
recog.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
recog.h MAINTAINERS: Add myself as mep maintainer. 2009-06-24 00:16:25 -04:00
reg-notes.def cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. 2009-05-29 17:33:46 -07:00
reg-stack.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
regcprop.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
reginfo.c alias.c: Use REG_P... 2009-06-22 10:29:13 +00:00
regmove.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
regrename.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
regs.h [multiple changes] 2008-08-26 12:39:58 +00:00
regstat.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
reload.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
reload.h cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts. 2009-03-23 16:29:33 +00:00
reload1.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
reorg.c alias.c: Use REG_P... 2009-06-22 10:29:13 +00:00
resource.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
resource.h resource.c (mark_referenced_resources): Change include_delayed_effects parameter to bool. 2009-06-16 18:55:20 +00:00
rtl-error.c
rtl.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
rtl.def invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
rtl.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
rtlanal.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
rtlhooks-def.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
rtlhooks.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sbitmap.c
sbitmap.h
sched-deps.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sched-ebb.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sched-int.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sched-rgn.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sched-vis.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sdbout.c * sdbout.c (sdbout_one_type): Fix braces in switch. 2009-06-23 10:19:18 +00:00
sdbout.h
sel-sched-dump.c sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING. 2008-09-01 16:38:44 +04:00
sel-sched-dump.h sel-sched.h, [...]: New files. 2008-09-01 12:57:00 +04:00
sel-sched-ir.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sel-sched-ir.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sel-sched.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sel-sched.h sel-sched.h, [...]: New files. 2008-09-01 12:57:00 +04:00
sese.c Prepare expressions to be good phi arguments. 2009-08-12 14:32:31 +00:00
sese.h New Graphite files. 2009-07-31 02:43:11 +00:00
simplify-rtx.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
sparseset.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
sparseset.h
sreal.c
sreal.h
ssaexpand.h ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 2009-04-27 12:16:00 +00:00
stab.def
stack-ptr-mod.c df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
statistics.c statistics.c (statistics_counter_event): Do not record event in pass dump if its number == -1. 2009-06-03 18:36:47 +04:00
statistics.h
stmt.c tree-flow.h (mark_addressable): Move declaration ... 2009-09-01 08:38:10 +00:00
stor-layout.c re PR c/40435 (Revision 148442 caused many regressions on trunk) 2009-07-16 22:29:52 +00:00
store-motion.c * store-motion.c Do not include params.h 2009-05-14 20:14:18 +00:00
stringpool.c hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
stub-objc.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
sync-builtins.def
system.h hwint.h (HOST_LONG_FORMAT): New macro 2009-08-25 23:19:16 +00:00
target-def.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
target.h hooks.h (hook_bool_const_int_const_int_true): Declare. 2009-08-26 01:09:00 +04:00
targhooks.c tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation for for_return == 2. 2009-08-12 16:23:12 +00:00
targhooks.h Merge ARM/hard_vfp_branch to trunk 2009-08-06 14:27:45 +00:00
timevar.c
timevar.def Measure time spent in DD analysis and in code gen. 2009-08-12 14:18:17 +00:00
timevar.h df.h: Include "timevar.h". 2009-04-17 05:40:46 +00:00
tlink.c tlink.c: Include "libiberty.h". 2008-11-20 14:21:51 +01:00
toplev.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
toplev.h toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static inline, not extern inline. 2009-06-16 16:55:41 +00:00
tracer.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-affine.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-affine.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-browser.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
tree-browser.def
tree-call-cdce.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-cfg.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-cfgcleanup.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-chrec.c Implement evolution_function_right_is_integer_cst. 2009-07-31 02:39:06 +00:00
tree-chrec.h Implement evolution_function_right_is_integer_cst. 2009-07-31 02:39:06 +00:00
tree-complex.c re PR c/40435 (Revision 148442 caused many regressions on trunk) 2009-07-16 22:29:52 +00:00
tree-data-ref.c Add a new driver to data reference analysis. 2009-07-31 02:37:11 +00:00
tree-data-ref.h Add a new driver to data reference analysis. 2009-07-31 02:37:11 +00:00
tree-dfa.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-dump.c tree-pass.h (TDF_EH): Define. 2009-07-22 15:44:46 -04:00
tree-dump.h Fix enum conversions which are invalid in C++: 2009-04-20 19:35:00 +00:00
tree-eh.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-flow-inline.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-flow.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-if-conv.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-inline.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-inline.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-into-ssa.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-iterator.c tree-iterator.c (expr_only): Remove. 2009-04-18 11:47:22 +00:00
tree-iterator.h tree-iterator.c (tsi_split_statement_list_after, [...]): Remove. 2009-04-16 18:50:07 +00:00
tree-loop-distribution.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-loop-linear.c re PR tree-optimization/37031 (ICE for h264ref in gather_interchange_stats with -ftree-loop-linear) 2009-01-08 17:01:42 +01:00
tree-mudflap.c re PR c/40435 (Revision 148442 caused many regressions on trunk) 2009-07-16 22:29:52 +00:00
tree-mudflap.h
tree-nested.c re PR c/40401 (ICE: verify_gimple failed) 2009-07-17 15:49:34 +00:00
tree-nomudflap.c ansidecl.h (EXPORTED_CONST): Define. 2009-06-03 20:19:55 +00:00
tree-nrv.c passes.c (init_optimization_passes): Strip now incorrect comment. 2009-05-11 12:19:00 +00:00
tree-object-size.c tree-object-size.c (addr_object_size): Handle unions with array in it as last field of structs in __bos (... 2009-07-20 19:39:22 +02:00
tree-optimize.c tree-ssa-alias.h (refs_may_alias_p_1): Declare. 2009-07-14 09:59:18 +00:00
tree-outof-ssa.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-parloops.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-pass.h tree-pass.h (TDF_EH): Define. 2009-07-22 15:44:46 -04:00
tree-phinodes.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-predcom.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-pretty-print.c re PR middle-end/41149 (-fdump-tree-original and procedure pointer components) 2009-08-25 11:35:41 +02:00
tree-profile.c java-gimplify.c (java_gimplify_block): New argument to build_empty_stmt. 2009-06-12 22:06:47 +00:00
tree-scalar-evolution.c Return unknow from scev instantiation if the result is not above instantiate_below. 2009-07-31 02:30:03 +00:00
tree-scalar-evolution.h tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not static anymore. 2009-07-31 02:28:50 +00:00
tree-sra.c ipa-prop.c (count_formal_params_1): New function. 2009-08-07 02:51:34 +02:00
tree-ssa-address.c hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
tree-ssa-alias.c builtins.c (fold_builtin_memory_op): Use the alias oracle to query if the memory regions for memmove overlap. 2009-08-31 12:52:17 +00:00
tree-ssa-alias.h re PR tree-optimization/41186 (VN doesn't look through non-aliasing by offset memcpy) 2009-08-30 11:52:13 +00:00
tree-ssa-ccp.c Force block enders to be simulated once. 2009-09-01 07:37:52 -07:00
tree-ssa-coalesce.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-copy.c gengtype.c (main): Handle uint64_t. 2009-08-27 08:56:10 +00:00
tree-ssa-copyrename.c re PR tree-optimization/38964 (TBAA side-effects of C++ new still missing) 2009-05-22 20:41:31 +00:00
tree-ssa-dce.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-dom.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-dse.c domwalk.h (struct dom_walk_data): Remove all callbacks except before_dom_children_before_stmts and... 2009-06-27 14:45:51 +00:00
tree-ssa-forwprop.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-ifcombine.c re PR tree-optimization/41016 (ICE in build_int_cst_wide with -O1) 2009-08-09 20:10:41 +00:00
tree-ssa-live.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-live.h ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 2009-04-27 12:16:00 +00:00
tree-ssa-loop-ch.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-loop-im.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-loop-ivcanon.c loop-24.c: Update dump file matching; enable -O2. 2009-07-03 13:18:28 +00:00
tree-ssa-loop-ivopts.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-loop-manip.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-loop-niter.c c-lex.c: Replace %H by an explicit location. 2009-07-07 02:10:19 +00:00
tree-ssa-loop-prefetch.c 2009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com> 2009-08-13 21:37:24 +00:00
tree-ssa-loop-unswitch.c domwalk.h (struct dom_walk_data): Remove all callbacks except before_dom_children_before_stmts and... 2009-06-27 14:45:51 +00:00
tree-ssa-loop.c Rename -fgraphite-force-parallel to -floop-parallelize-all. 2009-08-01 18:22:58 +00:00
tree-ssa-math-opts.c re PR middle-end/40501 (error: invalid conversion in gimple call) 2009-06-24 07:01:24 +00:00
tree-ssa-operands.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-operands.h tree-ssa-operands.h (push_stmt_changes, [...]): Delete. 2009-05-24 11:20:29 +00:00
tree-ssa-phiopt.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-phiprop.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-ssa-pre.c re PR tree-optimization/40991 (ICE: at optimization -02) 2009-08-08 15:32:36 +00:00
tree-ssa-propagate.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-propagate.h tree-ssa-propagate.c (stmt_makes_single_load): Remove. 2009-04-16 18:48:16 +00:00
tree-ssa-reassoc.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-sccvn.c tree-ssa.c (useless_type_conversion_p_1): Make function and array type comparisons frontend independent. 2009-08-06 11:31:20 +00:00
tree-ssa-sccvn.h tree-flow.h (make_value_handle, [...]): Remove prototypes for removed functions. 2009-06-07 21:44:39 +02:00
tree-ssa-sink.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-structalias.c tree-ssa-structalias.c (create_variable_info_for): Remove strange whole-program condition, prepare to be called for non-globals. 2009-08-26 09:02:01 +00:00
tree-ssa-ter.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-threadedge.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-threadupdate.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssa-uncprop.c domwalk.h (struct dom_walk_data): Remove all callbacks except before_dom_children_before_stmts and... 2009-06-27 14:45:51 +00:00
tree-ssa.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-ssanames.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-stdarg.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-stdarg.h
tree-switch-conversion.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-tailcall.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-vect-data-refs.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-vect-generic.c re PR tree-optimization/40550 (Segmentation fault caused by alignment error in sse code) 2009-06-28 20:33:54 +02:00
tree-vect-loop-manip.c Add source_location support to PHI arguments. 2009-07-30 18:36:30 +00:00
tree-vect-loop.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree-vect-patterns.c omp-low.c (optimize_omp_library_calls): Use types_compatible_p instead of comparing TYPE_MAIN_VARIANT for equality. 2009-08-19 14:29:52 +00:00
tree-vect-slp.c re PR tree-optimization/39129 (The meaning of 'BB' in "too many BBs in loop") 2009-06-01 08:15:01 +00:00
tree-vect-stmts.c expr.h (struct separate_ops, sepops): New type for passing around an exploded simple expression. 2009-08-25 13:33:54 +00:00
tree-vectorizer.c tree-vectorizer.c (increase_alignment): Handle nested arrays. 2009-07-21 12:35:38 +00:00
tree-vectorizer.h tree-vectorizer.h (vectorizable_condition): Add parameters. 2009-07-20 11:59:10 +00:00
tree-vrp.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
tree.c tree.c (tree_expr_size): New function. 2009-09-01 08:41:53 +00:00
tree.def tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS. 2009-08-28 19:37:37 +00:00
tree.h invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
treestruct.def tree.c: Include debug.h. 2009-07-06 13:06:26 -04:00
tsystem.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
typeclass.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-c.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-compat.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-compat.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2-fde-compat.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2-fde-darwin.c unwind-dw2-fde-darwin.c: Include dwarf2.h. 2009-07-09 19:41:25 +00:00
unwind-dw2-fde-glibc.c unwind-dw2-fde-darwin.c: Include dwarf2.h. 2009-07-09 19:41:25 +00:00
unwind-dw2-fde.c unwind-dw2-fde-darwin.c: Include dwarf2.h. 2009-07-09 19:41:25 +00:00
unwind-dw2-fde.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-dw2.c unwind-dw2-fde-darwin.c: Include dwarf2.h. 2009-07-09 19:41:25 +00:00
unwind-dw2.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-generic.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-pe.h Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind-sjlj.c Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
unwind.inc Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
value-prof.c * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC. 2009-08-06 20:45:26 +00:00
value-prof.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
var-tracking.c invoke.texi (-fvar-tracking-assignments): New. 2009-09-02 02:42:21 +00:00
varasm.c cgraph.h (constant_pool_htab): New function. 2009-07-20 19:35:25 +00:00
varpool.c [multiple changes] 2009-04-02 15:45:25 +00:00
varray.c alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value instead of an int. 2009-04-30 16:24:31 +00:00
varray.h hashtab.h: Update GTY annotations to new syntax 2009-04-22 14:29:36 -04:00
vec.c df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself. 2009-06-16 19:01:18 +00:00
vec.h vec.h (VEC_stack_alloc): Define different version if GATHER_STATISTICS is defined... 2009-06-17 00:10:23 +00:00
vecprim.h Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
version.c ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
version.h
vmsdbg.h
vmsdbgout.c dwarf2out.c (output_file_names): Output VMS style file name, size, date, version info if VMS_DEBUGGING_INFO defined. 2009-07-29 17:35:32 +00:00
web.c Update Copyright years for files modified in 2008 and/or 2009. 2009-02-20 16:20:38 +01:00
xcoff.h ABOUT-GCC-NLS, [...]: Add copyright and license notices. 2009-04-21 20:03:23 +01:00
xcoffout.c dbxout.c (dbxout_source_line): Add is_stmt parameter. 2009-06-17 16:54:40 -07:00
xcoffout.h dbxout.c (dbxout_source_line): Add is_stmt parameter. 2009-06-17 16:54:40 -07:00

README.Portability

Copyright (C) 2000, 2003 Free Software Foundation, Inc.

This file is intended to contain a few notes about writing C code
within GCC so that it compiles without error on the full range of
compilers GCC needs to be able to compile on.

The problem is that many ISO-standard constructs are not accepted by
either old or buggy compilers, and we keep getting bitten by them.
This knowledge until know has been sparsely spread around, so I
thought I'd collect it in one useful place.  Please add and correct
any problems as you come across them.

I'm going to start from a base of the ISO C90 standard, since that is
probably what most people code to naturally.  Obviously using
constructs introduced after that is not a good idea.

For the complete coding style conventions used in GCC, please read
http://gcc.gnu.org/codingconventions.html


String literals
---------------

Irix6 "cc -n32" and OSF4 "cc" have problems with constant string
initializers with parens around it, e.g.

const char string[] = ("A string");

This is unfortunate since this is what the GNU gettext macro N_
produces.  You need to find a different way to code it.

Some compilers like MSVC++ have fairly low limits on the maximum
length of a string literal; 509 is the lowest we've come across.  You
may need to break up a long printf statement into many smaller ones.


Empty macro arguments
---------------------

ISO C (6.8.3 in the 1990 standard) specifies the following:

If (before argument substitution) any argument consists of no
preprocessing tokens, the behavior is undefined.

This was relaxed by ISO C99, but some older compilers emit an error,
so code like

#define foo(x, y) x y
foo (bar, )

needs to be coded in some other way.


free and realloc
----------------

Some implementations crash upon attempts to free or realloc the null
pointer.  Thus if mem might be null, you need to write

  if (mem)
    free (mem);


Trigraphs
---------

You weren't going to use them anyway, but some otherwise ISO C
compliant compilers do not accept trigraphs.


Suffixes on Integer Constants
-----------------------------

You should never use a 'l' suffix on integer constants ('L' is fine),
since it can easily be confused with the number '1'.


			Common Coding Pitfalls
			======================

errno
-----

errno might be declared as a macro.


Implicit int
------------

In C, the 'int' keyword can often be omitted from type declarations.
For instance, you can write

  unsigned variable;

as shorthand for

  unsigned int variable;

There are several places where this can cause trouble.  First, suppose
'variable' is a long; then you might think

  (unsigned) variable

would convert it to unsigned long.  It does not.  It converts to
unsigned int.  This mostly causes problems on 64-bit platforms, where
long and int are not the same size.

Second, if you write a function definition with no return type at
all:

  operate (int a, int b)
  {
    ...
  }

that function is expected to return int, *not* void.  GCC will warn
about this.

Implicit function declarations always have return type int.  So if you
correct the above definition to

  void
  operate (int a, int b)
  ...

but operate() is called above its definition, you will get an error
about a "type mismatch with previous implicit declaration".  The cure
is to prototype all functions at the top of the file, or in an
appropriate header.

Char vs unsigned char vs int
----------------------------

In C, unqualified 'char' may be either signed or unsigned; it is the
implementation's choice.  When you are processing 7-bit ASCII, it does
not matter.  But when your program must handle arbitrary binary data,
or fully 8-bit character sets, you have a problem.  The most obvious
issue is if you have a look-up table indexed by characters.

For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
true.  But if you read '\341' from a file and store it in a plain
char, isalpha(c) may look up character 225, or it may look up
character -31.  And the ctype table has no entry at offset -31, so
your program will crash.  (If you're lucky.)

It is wise to use unsigned char everywhere you possibly can.  This
avoids all these problems.  Unfortunately, the routines in <string.h>
take plain char arguments, so you have to remember to cast them back
and forth - or avoid the use of strxxx() functions, which is probably
a good idea anyway.

Another common mistake is to use either char or unsigned char to
receive the result of getc() or related stdio functions.  They may
return EOF, which is outside the range of values representable by
char.  If you use char, some legal character value may be confused
with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
The correct choice is int.

A more subtle version of the same mistake might look like this:

  unsigned char pushback[NPUSHBACK];
  int pbidx;
  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
  ...
  unget(EOF);

which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
WITH UMLAUT.


Other common pitfalls
---------------------

o Expecting 'plain' char to be either sign or unsigned extending.

o Shifting an item by a negative amount or by greater than or equal to
  the number of bits in a type (expecting shifts by 32 to be sensible
  has caused quite a number of bugs at least in the early days).

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

o Host vs. target floating point representation, including emitting NaNs
  and Infinities in a form that the assembler handles.

o qsort being an unstable sort function (unstable in the sense that
  multiple items that sort the same may be sorted in different orders
  by different qsort functions).

o Passing incorrect types to fprintf and friends.

o Adding a function declaration for a module declared in another file to
  a .c file instead of to a .h file.