X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=14a8748a907442c688eb61441ec59f37886cd9e0;hb=a711a0670f1810eb6ff3a9a17308297e7874bbc5;hp=60180905a68aff136d6c0f5825a027769d4d80aa;hpb=4b7a4b97bbccc267e9c257759413a7d5da07fbc6;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60180905a68..14a8748a907 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,7 +1,916 @@ +2010-11-23 Eric Botcazou + + * config.gcc (sparc*-*-*): Reorder. + +2010-11-23 Basile Starynkevitch + + * gengtype.c (header_dot_h_frul, source_dot_c_frul): + Remove ENABLE_CHECKING around DBGPRINTF. + +2010-11-22 Joseph Myers + + * common.opt (exit_after_options, write_symbols, debug_info_level, + use_gnu_debug_info_extensions): New Variable entries. + (fprofile-dir=): Use Var. + * flag-types.h (enum debug_info_level): Rename to enum + debug_info_levels. + * flags.h (write_symbols, debug_info_level, + use_gnu_debug_info_extensions): Remove declarations. + * opts.c (exit_after_options, write_symbols, debug_info_level): + Remove. + (set_struct_debug_option): Make static variables const. + (use_gnu_debug_info_extensions): Remove. + (set_debug_level, print_filtered_help, print_specific_help, + fast_math_flags_set_p): Take gcc_options parameters and use them + in place of global variables. + (print_filtered_help): Make new_help non-static. + (print_specific_help): Update call to print_filtered_help. + (common_handle_option): Update calls to print_specific_help. Use + gcc_options structure for more settings. Make --help table + const. Don't handle OPT_fprofile_dir_ here. Update calls to + set_debug_level. + * toplev.c (profile_data_prefix): Remove. + * toplev.h (profile_data_prefix, exit_after_options): Remove + declarations. + (fast_math_flags_set_p): Update prototype. + * cppbuiltin.c (define_builtin_macros_for_compilation_flags): + Update call to fast_math_flags_set_p. + +2010-11-22 Richard Henderson + + PR target/46434 + * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p; + return the address register extracted. + (crx_decompose_address): Update the extracted address register. + +2010-11-22 Dmitry Gorbachev + + PR driver/43335 + * gcc.c (main): Don't crash when lto-wrapper program is not found. + +2010-11-22 Joern Rennecke + + PR target/46608 + * config/picochip/picochip.c (picochip_secondary_reload): Make static. + * config/picochip/picochip-protos.h: Don't include "target.h" . + (picochip_secondary_reload): Don't declare. + + PR target/46613 + * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare. + * config/m32c/m32c.c (m32c_conditional_register_usage): No longer + static. + +2010-11-22 H.J. Lu + + PR bootstrap/46609 + * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING. + (source_dot_c_frul): Likewise. + +2010-11-22 Basile Starynkevitch + + * gimple-pretty-print.c (dump_bb_header): Add check for cfun. + +2010-11-22 Paolo Bonzini + + PR bootstrap/44970 + * Makefile.in (fwprop.o) Add sparseset.h. + * fwprop.c: Include sparseset.h + (struct find_occurrence_data, find_occurrence_callback, + find_occurrence): Remove. + (active_defs, active_defs_check, register_active_defs, + update_df_init, update_uses): New. + (update_df): Rewrite. + (try_fwprop_subst, forward_propagate_asm): Add calls to + update_df_init and update_df. + (fwprop_init): Allocate active_defs and active_defs_check. + (fwprop_done): Free them. + (fwprop, fwprop_addr): Adjust comments. + * df.h (df_uses_create): Declare. + * df-scan.c (df_install_ref_incremental): Break out of df_ref_create. + (df_ref_create): Return result of df_ref_create_structure directly. + (df_ref_create_structure): Call df_install_ref_incremental when + no collection_rec is passed. + (df_ref_record): Do not create multiword hard reg info when no + collection_rec is passed. + (df_uses_create): New. + +2010-11-21 Uros Bizjak + + PR middle-end/43057 + * fold-const.c (pedantic_non_lvalue_loc): Unshare x before + setting location. + +2010-11-22 Richard Guenther + + * gimple-fold.c (maybe_fold_reference): When canonicalizing + MEM_REFs, preserve volatileness. + * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL + addresses. + +2010-11-22 Richard Guenther + + * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks. + +2010-11-22 Alexander Monakov + + PR rtl-optimization/45652 + * alias.c (get_reg_base_value): New. + * rtl.h (get_reg_base_value): Add prototype. + * sel-sched.c (init_regs_for_mode): Use it. Don't use registers with + non-null REG_BASE_VALUE for renaming. + +2010-11-22 Jeremie Salvucci + Basile Starynkevitch + + * gengtype.c: Include xregex.h and obstack.h + Added comments about role of get_output_file_with_visibility and + our regexpr machinery. + (frul_actionrout_t, struct file_rule_st): New. + (hader_dot_h_frul, source_dot_c_frul): New functions. + (NULL_REGEX, NULL_FRULACT): New. + (files_rules): New. + (matching_file_name_substitute): New function. + (get_output_file_with_visibility): Updated comments and rewritten + to use the new files_rules machinery. + + * Makefile.in (XREGEX_H): Added variable. + (build/gengtype.o): Added dependencies for xregex.h and obstack.h + +2010-11-21 Nathan Froyd + + * system.h (FUNCTION_ARG_BOUNDARY): Really poison. + +2010-11-21 Nathan Froyd + + * target.def (conditional_register_usage): Define. + * reginfo.c (init_reg_sets_1): Call + targetm.conditional_register_usage. + * system.h (CONDITIONAL_REGISTER_USAGE): Poison. + * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language + for making it a hook. + * doc/tm.texi: Regenerate. + * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/alpha/alpha.c (alpha_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/arc/arc.c (arc_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/arm/arm.c (arm_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/bfin/bfin-protos.h (conditional_register_usage): Delete. + * config/bfin/bfin.c (conditional_register_usage): Move code into... + (bfin_conditional_register_usage): ...here. New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/cris/cris-protos.h (cris_conditional_register_usage): Delete. + * config/cris/cris.c (cris_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment. + * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/frv/frv-protos.h (frv_conditional_register_usage): Delete. + * config/frv/frv.c (frv_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/h8300/h8300.c (h8300_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete. + * config/i386/i386.c (ix86_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete. + * config/m32c/m32c.c (m32c_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/m32r/m32r.c (m32r_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage): + Delete. + * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make + static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/mep/mep-protos.h (mep_conditional_register_usage): Delete. + * config/mep/mep.c (mep_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/mips/mips-protos.h (mips_conditional_register_usage): Delete. + * config/mips/mips.c (mips_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete. + * config/mmix/mmix.c (mmix_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/mn10300/mn10300.c (mn10300_conditional_register_usage): + ...here. New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this... + * config/pa/pa.c (pa_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage): + Delete. + * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make + static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/rx/rx-protos.h (rx_conditional_register_usage): Delete. + * config/rx/rx.c (rx_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/s390/s390-protos.h (s390_conditional_register_usage): Delete. + * config/s390/s390.c (s390_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/score/score.c (score_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/sh/sh.c (sh_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/sparc/sparc.c (sparc_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete. + * config/spu/spu-protos.h (spu_conditional_register_usage): Delete. + * config/spu/spu.c (spu_conditional_register_usage): Make static. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic... + * config/v850/v850.c (v850_conditional_register_usage): ...here. + New function. + (TARGET_CONDITIONAL_REGISTER_USAGE): Define. + +2010-11-21 Jan Hubicka + Dominique d'Humieres + + PR target/46510 + * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not + finalize external decls. + +2010-11-21 Joseph Myers + + * system.h (strerror): Poison. + +2010-11-21 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode + for infq/huge_valq. + +2010-11-21 Richard Henderson + + PR rtl-optimization/46571 + * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn. + (compute_hash_table_work): Use NONDEBUG_INSN_P. + +2010-11-21 Paul Koning + + * config/mips/pdp11.md (negsi2): Fix wrong code. + +2010-11-21 Paul Koning + + * config/mips/pdp11.c (pdp11_legitimate_address_p): New function. + * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete. + +2010-11-21 Eric Botcazou + + * config/mips/mips.c (machine_function): Rename load_label_length to + load_label_num_insns. + (mips_load_label_length): Rename to... + (mips_load_label_num_insns): ...this. Adjust to first renaming. + (mips_adjust_insn_length): Adjust to second renaming. Fix thinko. + +2010-11-21 Uros Bizjak + + PR target/46533 + * config/alpha/predicates.md (direct_call_operand): Return false + for !TARGET_SMALL_TEXT targets. + +2010-11-20 Joseph Myers + + * doc/tm.texi.in (HANDLE_SYSV_PRAGMA, + HANDLE_PRAGMA_PACK_PUSH_POP): Remove. + (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA. + * doc/tm.texi: Regenerate. + * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA, + HANDLE_PRAGMA_WEAK): Poison. + * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define. + (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define. + (HANDLE_PRAGMA_WEAK): Don't undefine. + * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define. + (HANDLE_PRAGMA_WEAK): Don't undefine. + * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define. + (HANDLE_PRAGMA_PACK): Don't undefine. + * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine. + * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. + (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define. + (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define. + * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. + +2010-11-20 Eric Botcazou + + PR target/31100 + * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to... + * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here. + * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine. + +2010-11-20 Jan Hubicka + + * cgraph.c (ld_plugin_symbol_resolution_names): New. + (dump_cgraph_node): Dump resolution. + * cgraph.h (ld_plugin_symbol_resolution_names): Declare. + (cgraph_comdat_can_be_unshared_p): Dclare. + * lto-streamer-out.c (produce_symtab): Use + cgraph_comdat_can_be_unshared_p. + * ipa.c (cgraph_address_taken_from_non_vtable_p): New function. + (cgraph_comdat_can_be_unshared_p): New function based on logic + in cgraph_externally_visible_p. + (cgraph_externally_visible_p): Use it. + (varpool_externally_visible_p): Virtual tables can be unshared. + * varpool.c (dump_varpool_node): Dump resolution. + +2010-11-20 Jan Hubicka + + * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p. + +2010-11-20 Ralf Wildenhues + + PR other/46202 + * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables. + (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix + shell quoting. + (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new. + (install-strip): New target. + (STRIPPROG): New variable, exported if STRIP is set. + * doc/install.texi (Final install): Minor markup and code style + fixes. Document install-strip target. + +2010-11-20 Paul Koning + + * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset, + pdp11_regno_reg_class): New functions. + * config/pdp11/pdp11.md (define_constants): Add register numbers. + * config/pdp11/pdp11.c (pdp11_regno_reg_class, + pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New + functions. + * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add + frame pointer and argument pointer pseudo-registers. + (ARG_POINTER_REGNUM): Define. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and + argument pointer. + (FIRST_PARM_OFFSET): Update for argument pointer. + (INITIAL_FRAME_POINTER_OFFSET): Delete. + (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros. + (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add + frame pointer and argument pointer. + +2010-11-20 Jakub Jelinek + + PR debug/46561 + * tree-parloops.c (try_create_redunction_list): Ignore debug stmts + when looking for immediate uses. + + PR tree-optimization/45830 + * stmt.c (expand_switch_using_bit_tests_p): New function. + (expand_case): Use it. + * tree.h (expand_switch_using_bit_tests_p): New prototype. + * tree-switch-conversion.c (struct switch_conv_info): Add + bit_test_uniq, bit_test_count and bit_test_bb fields. + (check_range): Fix a comment. + (check_process_case): Compute bit_test_uniq and bit_test_count. + (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one + allocation. + (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging. + (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT. + (array_value_type): New function. + (build_one_array): Use it, if it returned different type, + fold_convert all constructor fields and convert back to the + wider type in the generated code. + (process_switch): Initialize bit_test_uniq, bit_test_count and + bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p + returned true. + +2010-11-19 Michael Matz + + PR tree-optimization/46077 + * tree-chrec.c (eq_evolutions_p): Accept some expressions. + +2010-11-19 Anatoly Sokolov + + * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New + function. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + +2010-11-19 Uros Bizjak + + * mode-switching.c (optimize_mode_switching): Use + FOR_BB_INSNS instead of open-coded loop. + * cfgrtl.c (redirect_branch_edge): Ditto. + +2010-11-19 Joern Rennecke + + PR target/46436 + * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count + to accomodate 32 bit HOST_WIDE_INT. + (m68hc11_emit_logical): Remove unused variable insn. + (m68hc11_check_z_replacement) : Set this_insn_uses_ix and + this_insn_uses_iy before use. + + PR target/46434 + * config/crx/crx.c (crx_expand_epilogue): Remove unused variable. + +2010-11-19 Joseph Myers + + PR c/46547 + * c-tree.h (in_late_binary_op): Move to c-family/c-common.h. + * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c. + +2010-11-19 Michael Meissner + + * doc/extend.texi (Function attributes): Document PowerPC target + attributes that are supported. + (Pragmas): Document that PowerPC now supports target pragmas. + + * doc/options.texi (TargetVariable): Document TargetVariable, + HeaderInclude, and SourceInclude. + + * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is + mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to + -ffp-contract=off. + + * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and + SourceInclude directives. Fix a cut+paste error with target save + enum variables. Sort enums in the structures after ints and + before shorts. + * opth-gen.awk: Ditto. + + * configure.ac: Add support for HeaderInclude and SourceInclude option + directives to add the appropriate files to the dependency lists. + * configure: Regenerate. + * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude. + (OPTIONS_C_EXTRA): New variable for SourceInclude. + (OPTIONS_H): Add $(OPTIONS_H_EXTRA). + (options.o): Add $(OPTIONS_C_EXTRA) dependency. + (gcc-options.o): Ditto. + * opt-include.awk: New awk script to handle HeaderInclude and + TargetInclude. + + * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it + gets saved in the target options. + * config/rs6000/linux64.opt (-mprofile-kernel): Ditto. + * config/rs6000/sysv4.opt (-mbit-align): Ditto. + (-mprototype): Ditto. + (-mbit-word): ditto. + (-mregnames): Ditto. + (-msecure-plt): Ditto. + (-mbss-plt): Ditto. + * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto. + (-mpowerpc-gfxopt): Ditto. + (-mmfcrf): Ditto. + (-mpopcntb): Ditto. + (-mfprnd): Ditto. + (-mcmpb): Ditto. + (-mmmfpgpr): Ditto. + (-maltivec): Ditto. + (-mhard-dfp): Ditto. + (-mmulhw): Ditto. + (-mdlmzb): Ditto. + (-mmultiple): Ditto. + (-mstring): Ditto. + (-mpopcntd): Ditto. + (-mfriz): Ditto. + (-mvsx): Ditto. + (-mno-update): Ditto. + (-mavoid-indexed-addresses): Ditto. + (-mtls-markers): Ditto. + (-msched-epilog): Ditto. + (-msched-prolog): Ditto. + (-maix-struct-return): Ditto. + (-msvr4-struct-return): Ditto. + (-mxl-compat): Ditto. + (-mrecip-precision): Ditto. + (-mfp-in-toc): Ditto. + (-msum-in-toc): Ditto. + (-mvrsave): Ditto. + (-mblock-move-inline-limit=): Ditto. + (-misel): Ditto. + (-mpaired): Ditto. + (-mlongcall): Ditto. + (-mgen-cell-microcode): Ditto. + (-mwarn-cell-microcode): Ditto. + (-mwarn-altivec-long): Ditto. + (-mprioritize-restricted-insns=): Ditto. + (-msingle-float): Ditto. + (-mdouble-float): Ditto. + (-msimple-fpu): Ditto. + (-mxilinx-fpu): Ditto. + * config/rs6000/aix64.opt (-mpe): Ditto. + + * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h. + (rs6000_cpu): Move variable to be a target variable. Rename + cmodel to rs6000_current_cmodel because of macro conflict. Merge + -mdebug= variables into a single int. + (rs6000_always_hint): Ditto. + (rs6000_sched_groups): Ditto. + (rs6000_align_branch_targets): Ditto. + (rs6000_sched_costly_dep): Ditto. + (rs6000_sched_insert_nops): Ditto. + (rs6000_long_double_type_size): Ditto. + (rs6000_ieeequad): Ditto. + (rs6000_altivec_abi): Ditto. + (rs6000_spe): Ditto. + (rs6000_spe_abi): Ditto. + (rs6000_float_gprs): Ditto. + (rs6000_darwin64_abi): Ditto. + (can_override_loop_align): Ditto. + (rs6000_sdata): Ditto. + (rs6000_tls_size): Ditto. + (rs6000_current_abi): Ditto. + (rs6000_traceback): Ditto. + (rs6000_alignment_flags): Ditto. + (rs6000_current_cmodel): Ditto. + (rs6000_recip_control): Ditto. + (rs6000_cpu_index): Ditto. + (rs6000_tune_index): Ditto. + (rs6000_debug): Ditto. + (rs6000_target_flags_explict): Ditto. + + * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add + declaration. + + * config/rs6000/linux64.h (rs6000_current_cmode): Rename from + cmodel. Change all uses. + + * config/rs6000/rs6000.c (rs6000_always_hint): Move to + rs6000.opt. Combine -mdebug= variables into a single int. + Rename cmodel to rs6000_current_cmodel. + (rs6000_sched_groups): Ditto. + (rs6000_align_branch_targets): Ditto. + (rs6000_sched_costly_dep): Ditto. + (rs6000_sched_insert_nops): Ditto. + (rs6000_long_double_type_size): Ditto. + (rs6000_ieeequad): Ditto. + (rs6000_altivec_abi): Ditto. + (rs6000_spe): Ditto. + (rs6000_spe_abi): Ditto. + (rs6000_float_gprs): Ditto. + (rs6000_darwin64_abi): Ditto. + (can_override_loop_align): Ditto. + (rs6000_sdata): Ditto. + (rs6000_tls_size): Ditto. + (rs6000_current_abi): Ditto. + (rs6000_traceback): Ditto. + (rs6000_alignment_flags): Ditto. + (rs6000_current_cmodel): Ditto. + (rs6000_recip_control): Ditto. + (rs6000_cpu_index): Ditto. + (rs6000_tune_index): Ditto. + (rs6000_debug): Ditto. + (rs6000_target_flags_explict): Ditto. + (rs6000_sched_insert_nops_str): Make static. + (rs6000_sched_costly_dep_str): Ditto. + (rs6000_recip_name): Ditto. + (rs6000_abi_name): Ditto. + (rs6000_sdata_name): Ditto. + (enum rs6000_traceback_name): Move to rs6000-opts.h. + (rs6000_parse_tls_size_option): Delete. + (rs6000_valid_attribute_p): New function for target attributes and + pragmas. + (rs6000_function_specific_save): Ditto. + (rs6000_function_specific_restore): Ditto. + (rs6000_function_specific_print): Ditto. + (rs6000_can_inline_p): Ditto. + (rs6000_set_current_function): Ditto. + (rs6000_inner_target_options): Ditto. + (rs6000_debug_target_options): Ditto. + (rs6000_pragma_target_parse): Ditto. + (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target + attributes and pragmas. + (TARGET_OPTION_SAVE): Ditto. + (TARGET_OPTION_RESTORE): Ditto. + (TARGET_OPTION_PRINT): Ditto. + (TARGET_CAN_INLINE_P): Ditto. + (TARGET_SET_CURRENT_FUNCTION): Ditto. + (POWER_MASKS): Move to file level scope from the + rs6000_option_override_internal function. + (POWERPC_MASKS): Ditto. + (ISA_*_MASKS): Ditto. + (struct rs6000_ptt): Ditto. + (processor_target_table): Ditto. + (rs6000_cpu_name_lookup): Map cpu name to an index in + processor_target_table. + (rs6000_debug_reg_global): Print more information on processor + options for -mdebug=reg. + (rs6000_init_hard_regno_mode_ok): Add support for target + attributes and pragmas. Merge all -mdebug= fields into one. + Allow -mdebug=val1,val2. Rename cmodel variable. + (rs6000_option_override_internal): Ditto. + (rs6000_option_override): Ditto. + (rs6000_handle_option): Ditto. + (rs6000_conditional_register_usage): Add debug trace message. + (struct rs6000_opt_mask): New for target attribute/pragma support. + (rs6000_opt_masks): Ditto. + (struct rs6000_opt_var): Ditto. + (rs6000_opt_vars): Ditto. + (rs6000_previous_function): Ditto. + + * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it + wasn't already included. + (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt. + (enum processor_type): Ditto. + (rs6000_cpu): Ditto. + (enum fpu_type_t): Ditto. + (fpu_type): Ditto. + (enum rs6000_dependence_cost): Ditto. + (enum rs6000_nop_insertion): Ditto. + (enum group_termination): Ditto. + (rs6000_long_double_type_size): Ditto. + (rs6000_ieeequad): Ditto. + (rs6000_altivec_abi): Ditto. + (rs6000_spe_abi): Ditto. + (rs6000_spe): Ditto. + (rs6000_float_gprs): Ditto. + (rs6000_alignment_flags): Ditto. + (rs6000_sched_insert_nops): Ditto. + (enum rs6000_vector): Ditto. + (enum rs6000_abi): Ditto. + (rs6000_current_opt): Ditto. + (rs6000_debug_*): Delete. + (MASK_DEBUG*): Combine -mdebug=xxxx into one int. + (TARGET_DEBUG*): Ditto. + + * config/rs6000/rs6000-opts.h: New header file to define the enums + that are used in target variables that are now defined in rs6000.opt. + + * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to + rs6000-opts.h. + (rs6000_sdata): Ditto. + (rs6000_abi_name): Delete. + (rs6000_sdata_name): Ditto. + (rs6000_tls_size_string): Ditto. + +2010-11-19 Joseph Myers + + * common.opt (debug_struct_ordinary, debug_struct_generic): New + Variable entries. + * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT, + should_emit_struct_debug): Move from opts.c. + * flag-types.h (enum debug_struct_file): Move from opts.c. + * flags.h (should_emit_struct_debug): Remove. + (base_of_path): Declare. + (set_struct_debug_option): Add gcc_options parameter. + * optc-gen.awk, opth-gen.awk: Handle array variables. + * opts.c (enum debug_struct_file, debug_struct_ordinary, + debug_struct_generic): Remove. + (set_struct_debug_option): Add gcc_options parameter. + (base_of_path): Remove static. + (main_input_basename, main_input_baselength, matches_main_base, + dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug): + Remove. + * toplev.c (main_input_basename, main_input_baselength): Define + here. + * toplev.h (main_input_basename, main_input_baselength): Declare + here. + +2010-11-19 Joseph Myers + + * common.opt (flag_instrument_functions_exclude_functions, + flag_instrument_functions_exclude_files): New Variable definitions. + * flags.h (flag_instrument_functions_exclude_p): Don't declare. + * gimplify.c (char_p): Declare type and vectors. + (flag_instrument_functions_exclude_p): Moved from opts.c. Make static. + * opts.c (flag_instrument_functions_exclude_functions, + flag_instrument_functions_exclude_files): Remove. + (add_comma_separated_to_vector): Take void **. + (flag_instrument_functions_exclude_p): Move to gimplify.c. + (common_handle_option): Use options structure for + -finstrument-functions-exclude- options. + +2010-11-19 Joseph Myers + + * doc/options.texi (Var): Document effects of Defer. + (Defer): Document. + * opt-functions.awk (var_type, var_set): Handle deferred options. + * opts-common.c (set_option): Handle CLVC_DEFER. + * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-, + fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=, + fstack-limit-symbol=): Mark as deferred. + * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or + plugin.h. + (print_filtered_help): Don't report state of CLVC_DEFER options. + (common_handle_option): Move code for OPT_fcall_used_, + OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_, + OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and + OPT_fstack_limit_symbol_ to opts-global.c. + (option_enabled, get_option_state): Handle CLVC_DEFER. + * opts.h: Include vec.h. + (enum cl_var_type): Add CLVC_DEFER. + (cl_deferred_option): Define type and vectors. + (handle_common_deferred_options): Declare. + * opts-global.c: New. + * toplev.c (toplev_main): Call handle_common_deferred_options + * Makefile.in (OPTS_H): Include $(VEC_H). + (OBJS-common): Include opts-global.o. + (opts.o): Update dependencies. + (opts-global.o): Add dependencies. + +2010-11-19 Nicola Pero + + * c-parser.c (c_parser_objc_protocol_definition): Pass attributes + to objc_declare_protocols. + +2010-11-19 Richard Guenther + + PR lto/45789 + * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For + IDENTIFIERs do not stream TREE_TYPE. + * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise. + +2010-11-19 Christian Borntraeger + + * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE. + +2010-11-19 Jakub Jelinek + + PR target/45870 + * dwarf2out.c (const_ok_for_output_1): Don't complain about + non-delegitimized TLS UNSPECs. + +2010-11-18 Jack Howarth + Ian Lance Taylor + + * config/darwin-c.c (darwin_additional_format_types): Export. + +2010-11-18 Paul Koning + + * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame + pointer. + +2010-11-18 Paul Koning + + * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN. + * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto. + * config/pdp11/pdp11.opt (-mabshi): Delete. + +2010-11-19 Mingjie Xing + + * resource.h (struct resources): Fix typo in the comment. + +2010-11-19 Uros Bizjak + + PR target/46546 + * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn. + +2010-11-18 Richard Henderson + + PR middle-end/46515 + * function.c (maybe_copy_prologue_epilogue_insn): Rename from + maybe_copy_epilogue_insn; handle prologue insns as well. + * rtl.h, cfglayout.c: Update for rename. + * recog.c (peep2_attempt): Copy prologue/epilogue data for + RTX_FRAME_RELATED_P insns. + +2010-11-18 Jakub Jelinek + + PR middle-end/46534 + * builtins.c (fold_builtin_printf): Don't copy and modify string + before build_string_literal, instead modify what + build_string_literal returned. + +2010-11-18 Nathan Froyd + + PR c/33193 + * c-typeck.c (build_unary_op): Call build_real_imag_expr for + REALPART_EXPR and IMAGPART_EXPR. + +2010-11-18 Richard Guenther + + PR tree-optimization/46172 + * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New + function. + (slpeel_tree_peel_loop_to_edge): Call it. + +2010-11-18 Jeff Law + + PR middle-end-optimization/46297 + * postreload.c (reload_combine_note_store): Deal with embedded + side effects in MEM expressions. + +2010-11-18 Richard Guenther + + PR lto/45089 + * dwarf2out.c (add_AT_die_ref): Work around LTO losing types + when checking is not enabled. + +2010-11-18 Richard Guenther + + PR lto/46525 + * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of + type leaders. + (gimple_register_canonical_type): Also cache the canoncial type + for non type leaders. + +2010-11-18 Richard Guenther + + * lto-wrapper.c (run_gcc): Fix -flto=N parsing. + +2010-11-18 Alexander Monakov + + PR middle-end/46518 + * sel-sched-ir.c (init_expr): Use the correct type for + target_available. + * sel-sched.c (fill_vec_av_set): Use explicitly signed char type. + +2010-11-17 Joakim Tjernlund + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic + as well as -mrelocatable at the same time. + +2010-11-17 Quentin Neill + + PR target/46422 + * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64): + Call the clz builtin. + +2010-11-17 Dinar Temirbulatov + Steve Ellcey + + PR middle-end/31490 + * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask + if section attribute used. + +2010-11-17 Jan Hubicka + + * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not + expand errno setting variant when optimizing for size. + +2010-11-17 Eric Botcazou + + * postreload.c (reload_combine): Call control_flow_insn_p only once. + Reverse backward loop. Fix formatting issues. + +2010-11-17 Paolo Bonzini + + * c-parser.c (c_token_is_qualifier, + c_parser_next_token_is_qualifier): New. + (c_parser_declaration_or_fndef, c_parser_struct_declaration): + Improve error message on specs->tagdef_seen_p. + (c_parser_struct_or_union_specifier): Improve error recovery. + (c_parser_declspecs): Move exit condition on C_ID_ID early. + Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME + using c_parser_next_token_is_qualifier; extend it to cover + a ctsk_tagdef typespec and !typespec_ok in general. + 2010-11-17 Richard Guenther - * value-prof.c (gimple_divmod_fixed_value_transform): Update - the stmt. + * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt. (gimple_mod_pow2_value_transform): Likewise. (gimple_mod_subtract_transform): Likewise. @@ -22,8 +931,7 @@ * cgraphbuild.c (pass_rebuild_cgraph): Use timevar. * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar. * tree-emutls.c (pass_ipa_lower_emutls): Ditto. - * df-core.c (pass_df_initialize_opt, - pass_df_initialize_no_opt): Ditto. + * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto. * predict.c (rebuild_frequencies): Ditto. * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto. * emit-rtl.c (verify_rtl_sharing): Ditto. @@ -218,10 +1126,11 @@ * ipa.c (varpool_can_remove_if_no_refs): ... here. (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay. * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too. - * varpool.c (decide_is_variable_needed): Do not handle visibility issues. + * varpool.c (decide_is_variable_needed): Do not handle visibility + issues. (varpool_finalize_decl): Likewise. - (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node; update - outdated comment on DECL_RTL_SET_P check. + (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node; + update outdated comment on DECL_RTL_SET_P check. 2010-11-16 Rainer Orth @@ -231,8 +1140,7 @@ 2010-11-16 Nick Clifton - * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma - rtx_code. + * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code. (msubsf4): Rename to fmssf4, and use fma. (nmaddsf4): Rename to fnmasf4 and use fma. (nmsubsf4): Rename to fnmssf4 and use fma. @@ -293,8 +1201,7 @@ 2010-11-16 Andreas Krebbel - * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New - macros. + * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros. (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr) (mnemonic_htab_callback, gen_mnemonic_attr): New functions. (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr. @@ -399,8 +1306,7 @@ 2010-11-16 Nathan Froyd - * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update - dependencies. + * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies. (sreal.o, statistics.o, stringpool.o): Likewise. 2010-11-16 Richard Guenther @@ -430,8 +1336,7 @@ 2010-11-16 Richard Guenther PR middle-end/45172 - * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate - edges. + * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges. 2010-11-16 Nick Clifton @@ -441,7 +1346,7 @@ 2010-11-15 Richard Henderson * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR, - WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR, + WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and DOT_PROD_EXPR. 2010-11-15 Richard Henderson @@ -462,8 +1367,7 @@ (argbuf_length, argbuf_index): Remove. (alloc_args, clear_args, store_arg, execute, insert_wrapper, do_spec, do_self_spec, do_spec_1, eval_spec_function, main, - compare_debug_dump_opt_spec_function: Use VEC interfaces on - argbuf. + compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf. * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o. (gcc.o): Depend on $(VEC_H). @@ -935,8 +1839,7 @@ * config/avr/avr.c (avr_num_arg_regs): Constify type. (avr_return_addr_rtx): De-constify tem. (avr_rotate_bytes): Move declarations to start of block. - Don't use variable length array. - Put nested if/else into block. + Don't use variable length array. Put nested if/else into block. PR rtl-optimization/46433 * var-tracking.c: Include tm_p.h . @@ -969,8 +1872,7 @@ (trapping_loads_p): Remove unused variable pat. (bfin_expand_binop_builtin): Use expand_normal. (bfin_expand_unop_builtin): Likewise. - (bfin_expand_builtin): Likewise. - Set tmode before use. + (bfin_expand_builtin): Likewise. Set tmode before use. PR middle-end/44769 * final.c (split_double): Don't use BITS_PER_WORD directly in @@ -1062,10 +1964,11 @@ PR tree-optimize/40436 * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ... - (eliminated_by_inlining_prob): ... this one; return 50% probability for - SRA. - (estimate_function_body_sizes): Update use of eliminated_by_inlining_prob; - estimate static function size for 2 instructions. + (eliminated_by_inlining_prob): ... this one; return 50% probability + for SRA. + (estimate_function_body_sizes): Update use of + eliminated_by_inlining_prob; estimate static function size + for 2 instructions. 2010-11-11 Joern Rennecke @@ -1264,8 +2167,7 @@ * opts.c (finish_options, common_handle_option): Start diagnostics with lowercase letters and remove trailing '.'. Fix typo in diagnostic. - * passes.c (position_pass): Start diagnostic with lowercase - letter. + * passes.c (position_pass): Start diagnostic with lowercase letter. * plugin.c (add_new_plugin, parse_plugin_arg_opt, register_callback, try_init_one_plugin): Start diagnostics with lowercase letters. @@ -1342,6 +2244,7 @@ 2010-11-10 Eric Botcazou + PR target/45986 * config/sparc/sparc.c (sparc_delegitimize_address): New function. (TARGET_DELEGITIMIZE_ADDRESS): Define to above.