X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=5cb82911b82ac8dd03f3ade011d5b1904c010efe;hp=5b60dade9d536564468340e24a4abb20176aba38;hb=e5f7d6dac7f35e3a0a83de2425b459a861f8a11c;hpb=588aadb7e8c758fd6f17925b99e5fa4cef1a9481 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b60dade9d5..5cb82911b82 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1132 @@ +2006-03-23 Maxim Kuvyrkov + + * haifa-sched.c (choose_ready): Fix type of the local variable. + Move local variables. Add comment. + (check_reg_live): Change signature. Make callable from debugger. + * sched-int.h (check_reg_live): Update signature. + * sched-ebb.c (check_reg_live): Update parameters. + * sched-rgn.c (check_reg_live): Ditto. + (region_head_or_leaf_p): Check pointer before dereferencing. + * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation + before reload on optimization levels below 1. + +2006-03-23 Richard Henderson + + * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject + tls symbols. + + PR target/26347 + * config/alpha/predicates.md (local_symbolic_operand): Reject + weak symbols. + +2006-03-23 Andrew Pinski + + PR tree-opt/26795 + * tree-ssa-pre.c (create_value_expr_from): Don't reject + expressions which have overflowed constants. + +2006-03-23 Zdenek Dvorak + + * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note. + +2006-03-23 Zdenek Dvorak + + * cfgloopmanip.c (create_loop_notes): Removed. + * final.c (final_scan_insn): Do not handle loop notes. + * jump.c (squeeze_notes): Ditto. + * cfglayout.c (skip_insns_after_block, + duplicate_insn_chain): Ditto. + * cfgcleanup.c (rest_of_handle_jump2): Do not call + create_loop_notes. + * cfgloop.h (create_loop_notes): Declaration removed. + +2006-03-23 Richard Sandiford + + * varasm.c (output_constant_pool): Restore fnname and fndecl + arguments. + (assemble_start_function): Adjust call accordingly. + (assemble_end_function): Likewise. + +2006-03-22 Volker Reichelt + + PR mudflap/26790 + * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects. + + PR mudflap/26789 + * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node. + +2006-03-22 Volker Reichelt + + PR driver/22600 + * system.h (ICE_EXIT_CODE): New macro. + * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE. + (diagnostic_action_after_output): Likewise. + * gcc.c (fatal_ice): New function. + (execute): Use it instead of fatal. + (fancy_abort): Likewise. + * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs. + +2006-03-22 Jeff Law + + * loop-unroll.c (analyze_iv_to_split_insn): Handle + iv_analyze_result returning false. + +2006-03-22 Jie Zhang + + * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove. + +2006-03-22 Richard Henderson + + PR middle-end/26084 + * except.c (duplicate_eh_regions_0): New. + (duplicate_eh_region_1): Duplicate the children of the node as + well as the node itself. Link them up properly. + (duplicate_eh_region_2): Merge into ... + (duplicate_eh_regions): ... here. Take copy_region argument, and + copy only a sub-tree if asked. Simplify copying and fixup. + (eh_region_outer_p): New. + * except.h (duplicate_eh_regions): Update decl. + (eh_region_outer_p): Declare. + * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN. + (lower_omp_master): Likewise. + (lower_omp_ordered): Likewise. + * tree-cfg.c (struct move_stmt_d): Add new_label_map. + (move_stmt_r): Use it to remap labels. Handle recursion vs + remap_decls_p properly. + (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR. + (find_outermost_region_in_block): New. + (new_label_mapper): New. + (move_sese_region_to_fn): Copy eh information to the new function + properly. + * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions + argument. + * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region + number. + +2006-03-22 Richard Sandiford + + * doc/md.texi (-mshared): Mention that -mshared code can be linked + into shared libraries. + +2006-03-22 Richard Sandiford + + * doc/md.texi: Refer to i386/constraints.md instead of + i386/predicates.md. + * config/i386/constraints.md: New file, extracted from... + * config/i386/predicates.md: ...here. + * config/i386/i386.md: Include constraints.md. + +2006-03-21 Jason Merrill + + * builtins.c (expand_builtin_fork_or_exec): Fix pasto. + + PR middle-end/20297 + * expr.c (init_block_move_fn): Force default visibility. + (init_block_clear_fn): Likewise. + * builtins.c (expand_builtin_fork_or_exec): Likewise. + * targhooks.c (default_external_stack_protect_fail): Likewise. + +2006-03-21 Richard Sandiford + + * config/mips/predicates.md (const_call_insn_operand): Allow direct + calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS. + * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS. + Use TARGET_OLDABI instead of !TARGET_NEWABI. + (loadgp): Use mips_current_loadgp_style. + (loadgp_noshared): New pattern. + (sibcall_internal): Use MIPS_CALL. + (sibcall_value_internal): Likewise. + (sibcall_value_multiple_internal): Likewise. + (call_internal): Likewise. + (call_value_internal): Likewise. + (call_value_multiple_internal): Likewise. + (call_split): Use MIPS_CALL and add an 'S' constraint. + (call_value_split): Likewise. + (call_value_multiple_split): Likewise. + * config/mips/mips.opt (-mabicalls): Tweak docstring. + (-mshared): New option. + * config/mips/mips-protos.h (mips_loadgp_style): New enum. + (mips_current_loadgp_style): Declare. + * config/mips/mips.c (mips_classify_symbol): Avoid using + SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL + rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if + TARGET_ABSOLUTE_ABICALLS. + (override_options): Adjust comments. Improve the warning that is + issued when -mabicalls and -G are used together. + (mips_file_start): Remove comment. + (mips_current_loadgp_style): New function. + (mips_gnu_local_gp): New variable. + (mips_emit_loadgp): Use mips_current_loadgp_style. Handle + LOADGP_ABSOLUTE. + (mips_output_function_prologue): Use mips_current_laodgp_style. + (mips_expand_prologue): Call mips_emit_loadgp before emitting + the cprestore instruction. + (mips_extra_live_on_entry): Fix reversed test. Don't make $25 + live for TARGET_ABSOLUTE_ABICALLS. + * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro. + (ASM_SPEC): Pass down -mshared and -mno-shared. + (MIPS_CALL): New macro. + * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__ + definition. + * doc/invoke.texi (-mabicalls): Update documentation. + (-mshared): Document. + +2006-03-21 Steve Ellcey + + * config/ia64/unwind-hpux.c: New file. + * config/ia64/t-hpux: Add unwind-hpux.c to libgcc. + +2006-03-21 Steve Ellcey + + PR libgomp/26384 + * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options. + +2006-03-21 Jeff Law + + * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for + type conversions of a VR_VARYING source to a wider type. + +2006-03-21 Eric Botcazou + + * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to + tm_file on Solaris 10 and later. + (sparc64-*-solaris2*): Likewise. + (sparc-*-solaris2*): Likewise. + * config/sol26.h: Rename to config/sol2-6.h. + * config/sol2-10.h: New file. + +2006-03-21 Andrew Pinski + + PR tree-opt/26781 + * tree-ssa-pre.c (create_component_ref_by_pieces): + Handle STRING_CST. + +2006-03-21 Jakub Jelinek + + PR c++/26690 + * tree.c (get_callee_fndecl): If CALL is error_mark_node, + return it immediately. + +2006-03-21 Michael Matz + + * genautomata.c (, num_out_arcs, presence_signature): + New members. + (remove_arc, add_arc): Update num_out_arcs member. + (set_out_arc_insns_equiv_num): Returns nothing instead of number + of out arcs. + (cache_presence): New function. + (compare_states_for_equiv): New function. + (state_is_differed): Don't take number of outargs, adjust callers. + Use new invariant for speeding up. + (init_equiv_class): Create initial classes based on sorted + input. + (partition_equiv_class): Don't track out_arcs_num. + (evaluate_equiv_classes): Call cache_presence on all states and + sort them. + +2006-03-21 Bernd Schmidt + + * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare. + * config/bfin/bfin.c (bfin_dsp_memref_p): New function. + (bfin_valid_reg_p): Test for pseudos explicitly and use only + REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all + callers changed. + * config/bfin/bfin.h (PREG_P): Use P_REGNO_P. + (IREG_P, P_REGNO_P, I_REGNO_P): New macros. + (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS. + (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, + REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete + macros. + (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS, + REGNO_MODE_CODE_OK_FOR_BASE_P): New macros. + (REGNO_REG_CLASS): ARGP is in PREGS. + * config/bfin/bfin.md (movhi_insn): Allow for addresses containing + IREGS. + (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split + to deal with those addresses. + * addresses.h: New file. + * caller-save.c: Include "addresses.h". + (init_caller_save): Use new base_reg_class function. + * rtl-factoring.c: Include "addresses.h". + (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1. + * recog.c: Include "addresses.h". + (preprocess_constraints): Use new base_reg_class function. + * regrename.c: Include "addresses.h". + (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class + functions. Keep track of a new var INDEX_CODE to compute valid + classes. + (replace_oldest_value_addr): Likewise. + (replace_oldest_value_mem): Use base_reg_class. + * reload.c: Include "addresses.h". + (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros. + (find_reloads): Use new base_reg_class function. + (find_reloads_address): Likewise; also use regno_ok_for_base_p. + (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE; + all callers and prototype changed. + * reload1.c: Include "addresses.h". + (maybe_fix_stack_asms): Use base_reg_class. + * regclass.c: Include "addresses.h". + (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions. + (init_reg_autoinc): Use new base_reg_class function. + (record_reg_classes): Likewise. + (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE, + OUTER_CODE and INDEX_CODE. All callers and prototype changed. + Use new args to compute necessary class. + + * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o, + regrename.o, rtl-factoring.o): Update dependencies. + * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. + (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P, + REG_OK_FOR_INDEX_P): Delete documentation. + +2006-03-21 Alexey Starovoytov + + * config.gcc (sparc-*-solaris2*): Change the default CPU setting + from V7 to V9 for Solaris 7 and above. + +2006-03-21 Toon Moene + + * doc/invoke.texi: Document new flag -fargument-noalias-anything. + * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2, + argument pointers may not alias any other storage. + * common.opt: Define option -fargument-noalias-anything. + * tree-ssa-structalias.c (intra_create_variable_infos): Fortran + alias semantics is specified by flag_argument_noalias > 2. + +2006-03-20 Jeff Law + + * tree-pass.h (pass_phi_only_copy_prop): Delete. + (pass_phi_only_cprop): Declare. + * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop + with phi_only_cprop + * tree-ssa-dom.c (degenerate_phi_result): New function. + (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise. + (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise. + (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise. + (eliminate_degenerate_phis): Likewise. + (pass_phi_only_cprop): New pass descriptor. + * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and + support code. Callers updated. + (execute_copy_prop, do_copy_prop): Likewise and corresponding changes. + (store_copy_prop): Likewise. + (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove. + +2006-03-20 Jason Merrill + + PR c++/21764 + * c-pragma.c (visstack): Move out of handle_pragma_visibility. + (push_visibility, pop_visibility): Likewise. + * c-pragma.h: Declare them. + +2006-03-20 Kaz Kojima + + * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target. + + * config/sh/sh.c (find_regmode_weight): Change the type of the first + parameter and use get_ebb_head_tail. + (sh_md_init_global): Adjust uses of find_regmode_weight. + +2006-03-20 Steven Bosscher + + * function.h (struct function) : + Rename to x_stack_check_probe_note. + (tail_recursion_reentry): Rename to stack_check_probe_note. + * function.c: Replace tail_recursion_reentry with + stack_check_probe_note everywhere. + (expand_function_start): Only emit a note for + stack_check_probe_note with -fstack-protect. + * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes. + + * emit-rtl.c (remove_unnecessary_notes): Remove. + (pass_remove_unnecessary_notes): Remove. + * rtl.h (remove_unnecessary_notes): Remove prototype. + * final.c (final_start_function): Don't call remove_unnecessary_notes. + * tree-pass.h (pass_remove_unnecessary_notes): Remove. + * passes.c (pass_remove_unnecessary_notes): Don't run it. + +2006-03-20 Andrew Pinski + + PR tree-opt/26629 + * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands. + (valid_in_set): Handle ARRAY_REF. + Change "if min_variant or VH" to asserts. + (create_component_ref_by_pieces): Handle ARRAY_REF. + (create_expression_by_pieces): Likewise. + (can_PRE_operation): ARRAY_REFs can now be PRE'd. + +2006-03-20 David Edelsohn + + * genpreds.c (write_insn_extra_address_constraint): Argument `c' + is operand of switch, not str[0]. + +2006-03-20 Alan Modra + + * config/rs6000/rs6000.c (rs6000_handle_option): Use + TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too. + +2006-03-19 David Edelsohn + + * genpreds.c (write_tm_preds_h): Add semicolon and newline at + end of insn_extra_address_constraint declaration. + +2006-03-19 David Edelsohn + + * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask. + (no-sum-in-toc): Same. + * config/rs6000/rs6000.c (rs6000_handle_option): Use new + variables. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set + NO_FP_IN_TOC for -fPIC instead of mask. + + * config/rs6000/t-aix43 (T_ADAFLAGS): Delete. + (BOOT_LDFLAGS): Delete. + (LDFLAGS): Delete. + * config/rs6000/t-aix52: Same. + + * config/rs6000/rs6000.md (store_multiple_power): Delete. + (stmsi[345678]_power): New. + +2006-03-17 Steve Ellcey + + * config/ia64/ia64.opt: Add empty line to end of file. + +2006-03-17 Richard Guenther + + PR middle-end/26721 + * builtins.c (get_pointer_alignment): For component style references + adjust alignment to the component type alignment. Make sure + to adjust alignment for component access of constants. + +2006-03-17 David Edelsohn + + * config/rs6000/rs6000.md (strlensi): Emit barrier after + unconditional jump. + +2006-03-17 Paul Brook + + * doc/install.texi: Docuemnt --with-mode. + * config.gcc: Add --with-mode for arm*-*-*. + * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode". + +2006-03-17 J"orn Rennecke + + * sh.c (max_labelno_before_reorg): New variable. + (sh_reorg): Initialize it. + (find_barrier): Check max_labelno_before_reorg before using + label_to_alignment. Take length of explicit alignment insns + into account. When seeing a UNSPECV_CONST_END, return it. + + * sh.c (fixup_mova): Set mode of affected label to QImode. + (untangle_mova): New function. + (find_barrier): Use it. Check mode of label before decrementing + num_mova. + (sh_reorg): Likewise. + Set mode of all insns back to VOIDmode. + + * sh.c (MOVA_LABELREF): New macro. + (mova_p, fixup_mova, sh_reorg): Use it. + (find_barrier, sh_reorg): Don't count num_mova back to 0 unless + ADDR_DIFF_VEC matches mova. + +2006-03-17 Steven Bosscher + + * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument + with ATTRIBUTE_UNUSED. + +2006-03-17 Alexandre Oliva + + * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack + pointer, instead of assuming it is possible to derive the + correct args size from a call insn. + +2006-03-16 Jan-Benedict Glaw + + * rtl.h (CONST_INT_P): Define. + * config/vax/vax.c (print_operand_address): Use CONST_INT_P() + instead of GET_CODE(x) == CONST_INT. + (vax_rtx_costs): Likewise. + (vax_output_int_move): Likewise. + (vax_output_int_add): Likewise. + (legitimate_constant_address_p): Likewise. + (index_term_p): Likewise. + * config/vax/vax.h (PRINT_OPERAND): Likewise. + * config/vax/vax.md (and3): Likewise. + (ashrsi3): Likewise. + (extv): Likewise. + (movstricthi): Likewise. + (movstrictqi): Likewise. + (rotrsi3): Likewise. + (five unnamed insns): Likewise. + +2006-03-16 Geoffrey Keating + + * doc/tm.texi (SDB and DWARF): Add extra parameter to + ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables. + * dwarf2asm.h (dw2_asm_output_offset): Add section parameter. + * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter. + Pass to ASM_OUTPUT_DWARF_OFFSET. + * dwarf2out.c (debug_frame_section): New. + (output_call_frame_info): Use debug_frame_section. Pass it to + dw2_asm_output_offset. + (output_die): Pass appropriate section to dw2_asm_output_offset. + (output_compilation_unit_header): Likewise. + (output_pubnames): Likewise. + (output_aranges): Likewise. + (enum dw_val_class): Break dw_val_class_lbl_offset into + dw_val_class_lineptr and dw_val_class_macptr. + (add_AT_lbl_offset): Delete. + (add_AT_lineptr): New. + (add_AT_macptr): New. + (AT_lbl): Expect a lineptr or macptr. + (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr. + (attr_checksum): Likewise. + (same_dw_val_p): Likewise. + (size_of_die): Likewise. + (value_format): Likewise. + (output_die): Likewise. + (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of + add_AT_lbl_offset. + * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. + * config/i386/i386.c (x86_file_start): Call darwin_file_start. + * config/darwin-protos.h (darwin_file_start): New. + (darwin_asm_output_dwarf_offset): New. + * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. + * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call + darwin_file_start. + * config/darwin.c (darwin_emit_unwind_label): Don't output label + if not EH section; simplify. + (darwin_file_start): New. + (darwin_asm_output_dwarf_offset): New. + * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment, + mark as 'debug'. + (DEBUG_INFO_SECTION): Likewise. + (DEBUG_ABBREV_SECTION): Likewise. + (DEBUG_ARANGES_SECTION): Likewise. + (DEBUG_MACINFO_SECTION): Likewise. + (DEBUG_LINE_SECTION): Likewise. + (DEBUG_LOC_SECTION): Likewise. + (DEBUG_PUBNAMES_SECTION): Likewise. + (DEBUG_STR_SECTION): Likewise. + (DEBUG_RANGES_SECTION): Likewise. + (FRAME_BEGIN_LABEL): Must start with 'L' in debug section. + (ASM_OUTPUT_DWARF_OFFSET): New. + +2006-03-16 Joseph S. Myers + + * config.gcc (tm_defines): Always add to previous value rather + than replacing it. + +2006-03-16 Richard Sandiford + + * config/mips/predicates.md (splittable_const_int_operand): New, + split from move_operand. + (splittable_symbolic_operand): New. + (move_operand): Add commentary. Use splittable_const_int_operand. + Inline mips_atomic_symbolic_constant_p. + * config/mips/mips.md: Add combine splitters for handling moves + of splittable_const_int_operands and splittable_symbolic_operands. + * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete. + (mips_split_symbol): Declare. + (mips_move_integer): Declare. + * config/mips/mips.c (mips_split_p): Make global. + (TARGET_MIN_ANCHOR_OFFSET): Override default. + (TARGET_MAX_ANCHOR_OFFSET): Likewise. + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. + (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise. + (mips_offset_within_object_p): Handle block symbols. + (mips_atomic_symbolic_constant_p): Delete. + (mips_cannot_force_const_mem): Return false for constants that + mips_legitimize_move can handle. + (mips_use_blocks_for_constant_p): New function. + (mips_split_symbol): Make global. + (mips_move_integer): Likewise. Add a temporary register argument. + (mips_legitimize_const_move): Use splittable_const_int_operand and + splittable_symbolic_operand. + (mips_use_anchors_for_symbol_p): New function. + * config/mips/mips.h: Protect externs with !USED_FOR_TARGET. + (mips_split_p): Declare. + +2006-03-16 Richard Sandiford + + * config.gcc (mips64*-*-linux*): Keep existing tm_defines. + (mips*-*-linux*): Likewise. + +2006-03-16 Roger Sayle + Daniel Speyer + + PR middle-end/18259 + * tree-dump.c (dump_real): New function. + (dequeue_and_dump) : Use it to dump FP constants. + * Makefile.in (REAL_H): New macro for dependencies on real.h. + (tree-dump.o): Add $(REAL_H) to the dependencies. + +2006-03-16 Roger Sayle + + PR middle-end/21781 + * real.c (real_from_string): If the mantissa is zero, don't bother + parsing the exponent as the result should always be zero. + +2006-03-16 Andreas Krebbel + + * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms. + +2006-03-16 Maxim Kuvyrkov + + * config/ia64/ia64.c (stops_p): Added explicit initialization. + (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, + ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn, + ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global, + ia64_sched_finish_global): New static functions to implement + hooks from gcc_target.sched. + (spec_check_no, max_uid, pending_data_specs): New static variables. + (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p, + ia64_spec_check_src_p): New static functions. + (ia64_adjust_cost): Renamed to ia64_adjust_cost_2. + (TARGET_SCHED_ADJUST_COST): Removed. + (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL, + TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED, + TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, + TARGET_SCHED_GEN_CHECK, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, + TARGET_SCHED_SET_SCHED_FLAGS): New macros. + (update_set_flags, group_barrier_needed, set_src_needs_barrier): + Fixed to handle speculation checks. + (rtx_needs_barrier): Fixed to handle speculative loads and + their checks. + (ia64_variable_issue): Added code to count speculative loads and their + checks. + (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle + speculative loads. + (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): + New enumerations. + (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET): + New constants. + (ia64_ld_address_bypass_p): Fixed to handle speculative loads. + (ia64_reorg): Reset stops_p to NULL after it is freed. + * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA, + UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants. + (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f, + chk_a. + (data_speculative, control_speculative, check_load): New attributes. + (mov_advanced, mov_speculative, + mov_speculative_advanced, zero_extenddi2_advanced, + zero_extenddi2_speculative, + zero_extenddi2_speculative_advanced): New patterns for + data and control speculative loads. + (mov_clr, zero_extenddi2_clr): New patterns for + check loads. + (advanced_load_check_clr_, speculation_check_): + New pattern for data and control speculation checks. + (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr, + ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr, + reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes): + Auxiliary definitions for the patterns. + * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a, + 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource + constraints. + (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition + for speculation. + (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i. + * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f, + 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a): + New resource constraints. + (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition + for speculation. + (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i. + * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec, + msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, + msched-in-control-spec, msched-ldc, msched-control-ldc, + msched-spec-verbose, msched-prefer-non-data-spec-insns, + msched-prefer-non-control-spec-insns, + msched-count-spec-in-critical-path): New flags to tune speculative + scheduling. + * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec, + msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, + msched-in-control-spec, msched-ldc, msched-control-ldc, + msched-spec-verbose, msched-prefer-non-data-spec-insns, + msched-prefer-non-control-spec-insns, + msched-count-spec-in-critical-path): Document new flags. + +2006-03-16 Maxim Kuvyrkov + + * target.h (struct spec_info_def): New opaque declaration. + (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended, + speculate_insn, needs_block_p, gen_check, + first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags. + * target-def.h (TARGET_SCHED_ADJUST_COST_2, + TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN, + TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, + TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in + gcc_target.sched. + (TARGET_SCHED): Use new macros. + * rtl.h (copy_DEPS_LIST_list): New prototype. + * sched-int.h (struct sched_info): Change signature of new_ready field, + adjust all initializations. New fields: add_remove_insn, + begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg, + region_head_or_leaf_p. + (struct spec_info_def): New structure declaration. + (spec_info_t): New typedef. + (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec, + recovery_block, orig_pat. + (glat_start, glat_end): New variables declaraions. + (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT): + New access macros. + (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB, + DETACH_LIFE_INFO, USE_GLAT. + (enum SPEC_SCHED_FLAGS): New enumeration. + (NOTE_NOTE_BB_P): New macro. + (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block, + attach_life_info, debug_spec_status, check_reg_live): New functions. + (get_block_head_tail): Change signature to get_ebb_head_tail, adjust + all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c, + sched-ebb.c + (get_dep_weak, ds_merge): Prototype functions from sched-deps.c . + * ddg.c (get_block_head_tail): Adjust all uses. + * modulo-sched.c (get_block_head_tail): Adjust all uses. + (sms_sched_info): Initialize new fields. + (contributes_to_priority): Removed. + * haifa-sched.c (params.h): New include. + (get_block_head_tail): Adjust all uses. + (ISSUE_POINTS): New macro. + (glat_start, glat_end): New global variables. + (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data, + nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header, + old_last_basic_block, before_recovery, current_sched_info_var, + rgn_n_insns, luid): New static variables. + (insn_cost1): New function. Move logic from insn_cost to here. + (find_insn_reg_weight1): New function. Move logic from + find_insn_reg_weight to here. + (reemit_notes, move_insn, max_issue): Change signature. + (move_insn1): Removed. + (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d, + extend_bb): New static functions to support extension of scheduler's + data structures. + (generate_recovery_code, process_insn_depend_be_in_spec, + begin_speculative_block, add_to_speculative_block, + init_before_recovery, create_recovery_block, create_check_block_twin, + fix_recovery_deps): New static functions to support + generation of recovery code. + (fix_jump_move, find_fallthru_edge, dump_new_block_header, + restore_bb_notes, move_block_after_check, move_succs): New static + functions to support ebb scheduling. + (init_glat, init_glat1, attach_life_info1, free_glat): New static + functions to support handling of register live information. + (associate_line_notes_with_blocks, change_pattern, speculate_insn, + sched_remove_insn, clear_priorities, calc_priorities, bb_note, + add_jump_dependencies): New static functions. + (check_cfg, has_edge_p, check_sched_flags): New static functions for + consistancy checking. + (debug_spec_status): New function to call from debugger. + (priority): Added code to handle speculation checks. + (rank_for_schedule): Added code to distinguish speculative instructions. + (schedule_insn): Added code to handle speculation checks. + (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes): + Fixed to handle ebbs. + (move_insn): Added code to handle ebb scheduling. + (max_issue): Added code to use ISSUE_POINTS of instructions. + (choose_ready): Added code to choose between speculative and + non-speculative instructions. + (schedule_block): Added code to handle ebb scheduling and scheduling of + speculative instructions. + (sched_init): Initialize new variables. + (sched_finish): Free new variables. Print statistics. + (try_ready): Added code to handle speculative instructions. + * lists.c (copy_DEPS_LIST_list): New function. + * sched-deps.c (extend_dependency_caches): New function. Move logic + from create_dependency_caches to here. + (get_dep_weak, ds_merge): Make global. + * genattr.c (main): Code to output prototype for + dfa_clear_single_insn_cache. + * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros. + (output_dfa_clean_insn_cache_func): Code to output + dfa_clear_single_insn_cache function. + * sched-ebb.c (target_n_insns): Remove. Adjust all users to use + n_insns. + (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs): + Removed. + (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb): + New static variables. + (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb, + fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from + struct sched_info. + (ebb_sched_info): Initialize new fields. + (get_block_head_tail): Adjust all uses. + (compute_jump_reg_dependencies): Fixed to use glat_start. + (schedule_ebb): Code to remove unreachable last block. + (schedule_ebbs): Added code to update register live information. + * sched-rgn.c (region_sched_info): Initialize new fields. + (get_block_head_tail): Adjust all uses. + (last_was_jump): Removed. Adjust users. + (begin_schedule_ready, add_remove_insn, insn_points, extend_regions, + add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p): + Implement new hooks. + (check_dead_notes1): New static function. + (struct region): New fields: dont_calc_deps, has_real_ebb. + (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros. + (BB_TO_BLOCK): Fixed to handle EBBs. + (EBB_FIRST_BB, EBB_LAST_BB): New macros. + (ebb_head): New static variable. + (debug_regions, contributes_to_priority): Fixed to handle EBBs. + (find_single_block_regions, find_rgns, find_more_rgns): Initialize + new fields. + (compute_dom_prob_ps): New assertion. + (check_live_1, update_live_1): Fixed to work with glat_start instead of + global_live_at_start. + (init_ready_list): New assertions. + (can_schedule_ready_p): Split update code to begin_schedule_ready. + (new_ready): Add support for BEGIN_CONTROL speculation. + (schedule_insns): Fixed code that updates register live information + to handle EBBs. + (schedule_region): Fixed to handle EBBs. + (init_regions): Use extend_regions and check_dead_notes1. + * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY, + PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters. + * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED, + TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, + TARGET_SCHED_GEN_CHECK, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, + TARGET_SCHED_SET_SCHED_FLAGS): Document. + * doc/invoke.texi (max-sched-insn-conflict-delay, + sched-spec-prob-cutoff): Document. + +2006-03-16 Maxim Kuvyrkov + + * sched-int.h (struct haifa_insn_data): New fields: resolved_deps, + inter_tick, queue_index. + (struct sched_info): Change signature of init_ready_list field. + Adjust all initializations. + (RESOLVED_DEPS): New access macro. + (ready_add): Remove prototype. + (try_ready): Add prototype. + * sched-rgn.c (init_ready_list): Use try_ready. + (schedule_region): Initialize + current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}. + * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info. + (init_ready_list): Use try_ready. + (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority. + * lists.c (remove_list_elem): Remove `static'. + (remove_free_INSN_LIST_elem): New function. + * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes. + * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros. + (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY): + New constants. + (readyp): New variable. + (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready, + change_queue_index, resolve_dep): New static functions. + (try_ready): New function. Adjust callers in sched-rgn.c and + sched-ebb.c to use it instead of ready_add. + (clock_var): Move at the begining of file. + (rank_for_schedule): Fix typo. + (queue_insn): Add assertion. Handle QUEUE_INDEX. + (ready_lastpos): Enforce assertion. + (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument, + update all callers. + (ready_remove_first, ready_remove): Handle QUEUE_INDEX. + (schedule_insn): Rewrite to use try_ready and resolve_dep. + (queue_to_ready): Use free_INSN_LIST_list. + (early_queue_to_ready): Fix typo. + (schedule_block): Init readyp. Move init_ready_list call after the + initialization of clock_var. Fix error in rejecting insn by + targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code + that previously corrected INSN_TICKs. Add code for handling + QUEUE_INDEX. + (set_priorities): Fix typo. + (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX. + Clarify comment and code that keeps current_sched_info->next_tail + non-null. + +2006-03-16 Maxim Kuvyrkov + + * sched-rgn.c (extend_rgns): New static function. + (find_rgns): Use it. + (gather_region_statistics, print_region_statistics): New static + functions. + * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter. + * doc/invoke.texi (max-sched-extend-regions-iters): Document. + +2006-03-16 Maxim Kuvyrkov + Andrey Belevantsev + + * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call. + * lists.c (unused_deps_list): New variable. + (free_list): Add assertions to verify the proper distinguishing + between INSN_LISTs and DEPS_LISTs. + (find_list_elem, remove_list_elem, remove_list_node): New static + functions. + (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node, + remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem, + remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions. + (alloc_INSN_LIST): Assert that the list we're working on is indeed + an INSN_LIST. + (free_INSN_LIST_node): Likewise. + * modulo-sched.c (current_sched_info): Initialize flags field. + * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT. + * rtl.def (DEPS_LIST): Define. + * rtl.h: Declare new functions from lists.c. + * sched-deps.c (spec_dependency_cache): New static variable. + (maybe_add_or_update_back_dep_1, add_back_dep): New static functions. + (add_dependence): Change return type to void. Move the logic to ... + (add_or_update_back_dep_1): ... here. Handle speculative dependencies. + (delete_all_dependences): Add comment about forward_dependency_cache. + Handle spec_dependency_cache. Handle DEPS_LISTs. + (fixup_sched_groups): Clarify the change of priority of output + and anti dependencies. + (sched_analyze_2): Adjust add_dependence calls to create data + speculative dependence. + (add_forward_dependence): Renamed to add_forw_dep, change prototype. + Adjust all callers. Handle DEPS_LISTS. + (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in + presence of speculation. + (init_dependency_caches, free_dependency_caches): + Handle spec_dependency_cache. + (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep, + estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status): + New static functions. + (add_or_update_back_dep, add_or_update_back_forw_dep, + add_back_forw_dep, delete_back_forw_dep): New functions. + * sched-int.h (ds_t, dw_t): New typedefs. + (struct sched_info): Add new field flags. + (struct haifa_insn_data): Add new bitfield has_internal_dep. + Prototype new sched-deps.c functions. + (HAS_INTERNAL_DEP, DEP_STATUS): New access macros. + (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK, + MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA, + BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC, + SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE, + SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP): + New constants. + (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS): + New enums. + * sched-rgn.c (current_sched_info): Initialize flags field. + (schedule_insns): Initialize current_sched_info before the sched_init + call. + * sched-ebb.c (current_sched_info): Initialize flags field. + (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P. + Call add_or_update_back_dep instead of add_dependence. + Create control speculative dependencies. + (schedule_insns): Initialize current_sched_info before the sched_init + call. + +2006-03-16 Kaz Kojima + + * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set + fs->signal_frame. + (sh_fallback_frame_state): Likewise. + +2006-03-15 Geoffrey Keating + + * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports. + Do switch on default_use_cxa_atexit. + (powerpc*-*-darwin*): Build crt2.o on powerpc. + * config/darwin-crt3.o: New. + * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default + to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use. + (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate + OS version. + * config/rs6000/t-darwin: Move crt2.o building to here. + * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update + Mac OS version for using __cxa_get_exception_ptr. Don't test versions + of __cxa_atexit. + +2006-03-15 Jan-Benedict Glaw + + * config/vax/vax.c (nonindexed_address_p): Change logical negation + from '! xxx' to '!xxx' for coding-style conformance. + * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise. + (EXTRA_CONSTRAINT): Likewise. + * config/vax/vax.md (four unnamed insns): Likewise. + +2006-03-15 Paul Brook + + * config/arm/arm.c (minipool_pad): New. + (add_minipool_forward_ref): Include pool alignment padding in address + calculation. + (push_minipool_fix): Set minipool_pad. + (minipool_pad): Ditto. + +2006-03-15 Jan-Benedict Glaw + + * config/vax/vax.c (split_quadword_operands): Use MEM_P() + instead of GET_CODE() == MEM and REG_P() instead of + GET_CODE() == REG. + (print_operand_address): Likewise. + (vax_address_cost): Likewise. + (vax_rtx_costs): Likewise. + (vax_notice_update_cc): Likewise. + (vax_output_int_add): Likewise. + (INDEX_REGISTER_P): Likewise. + (BASE_REGISTER_P): Likewise. + (nonindexed_address_p): Likewise. + (vax_mode_dependent_address_p): Likewise. + * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise. + (PRINT_OPERAND): Likewise. + * config/vax/vax.md (ashlsi3): Likewise. + (ashlsi3): Likewise. + (some more unnamed insns): Likewise. + +2006-03-15 Kazu Hirata + + * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an + iterator-style macro. + (mark_control_dependent_edges_necessary): Update the use of + EXECUTE_IF_CONTROL_DEPENDENT. + +2006-03-15 J"orn Rennecke + + * config/sh/predicates.md (cache_address_operand): Special. + (ua_address_operand): Likewise. + +2006-03-15 Zdenek Dvorak + + * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle + loop notes. + * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto. + +2006-03-15 Andreas Schwab + + * gensupport.c (identify_predicable_attribute): Don't free p_false + when it is still in use. + +2006-03-15 Eric Botcazou + + * config.gcc (default with_cpu setting) : Do not modify + the default setting here. + +2006-03-14 Steven Bosscher + + * tree-pass.h (pass_cfg): Remove. + * alias.c (rest_of_handle_cfg, pass_cfg): Remove. + * passes.c (pass_cfg): Don't run it. + +2006-03-14 Kazu Hirata + + * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h. + * reg-stack.c (stack_regs_mentioned_data): Change the type to + VEC(char,heap) *. + (stack_regs_mentioned): Update the uses of + stack_regs_mentioned_data. Don't access the array beyond its + end. + (reg_to_stack): Update the uses of stack_regs_mentioned_data. + Don't include gt-reg-stack.h. + + * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove. + * system.h (UNALIGNED_WORD_ASM_OP): Poison. + + * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove. + + PR middle-end/26684 + * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef + STACK_REGS. + +2006-03-14 John David Anglin + + * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo. + +2006-03-14 Richard Guenther + + PR tree-optimization/26672 + * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in + SSA form. + +2006-03-14 Richard Guenther + + PR tree-optimization/26667 + * ipa-inline.c (cgraph_check_inline_limits): Walk the correct + node for the callees. Always allow inlining if it will shrink + the function size. + +2006-03-14 Richard Guenther + + PR middle-end/26659 + * builtins.c (get_pointer_alignment): Prefer alignment + information from decls over that from types. + +2006-03-14 Andrew Pinski + + PR target/26657 + * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp. + +2006-03-14 Joseph S. Myers + + * config/rs6000/rs6000.opt (mdlmzb): New option. + (msched-prolog, msched-epilog): Use Var not Mask. + * doc/invoke.texi (-mdlmzb): Document. + * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove + MASK_SCHED_PROLOG. + (rs6000_override_options): Enable -mdlmzb for 405 and 440. + * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440. + +2006-03-13 Uttam Pawar + + PR rtl-optimization/25739 + * bt-load.c (augment_live_range): Free tos pointer. + + * gensupport.c (identify_predicable_attribute): Free + p_false pointer. + * gcov.c (create_file_names): Free name pointer. + +2006-03-13 Roger Sayle + + PR middle-end/26557 + * stmt.c (emit_case_nodes): Handle the case where the index is a + CONST_INT, where the comparison mode is specified by the index type. + +2006-03-13 John David Anglin + + * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O + is defined. + +2006-03-13 Richard Sandiford + + * config/mips/mips.md (*branch_fp): Use %Z2 for the condition. + (*branch_fp_inverted): Likewise. + +2006-03-13 Jakub Jelinek + + PR middle-end/25989 + * omp-low.c (expand_omp_for_generic): Mark istart0 + and iend0 as addressable. + +2006-03-13 Jie Zhang + + * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC. + +2006-03-13 Jeff Law + + * tree-vrp.c (stmt_interesting_for_vrp): Some statements with + virtual operands are interesting. + (vrp_visit_stmt): Corresponding changes. + +2006-03-13 Bernd Schmidt + + * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents + of RETS. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If + TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__. + * config/bfin/crti.S: Use it instead of __PIC__. + * config/bfin/crtn.S: Likewise. + + * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol, + call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY, + not if flag_pic. + Lose 'G' modifier for call operand. + * config/bfin/bfin.c (print_operand) : Don't + recognize 'G' modifier. + +2006-03-13 Eric Botcazou + + PR middle-end/18859 + * gimplify.c (gimplify_switch_expr): Discard empty ranges. + * stmt.c (expand_case): Likewise. + +2006-03-13 Zdenek Dvorak + + PR rtl-optimization/26254 + * loop-invariant.c (seq_insns_valid_p): New function. + (move_invariant_reg): Only emit new code if it is valid. + 2006-03-13 Zdenek Dvorak * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):