OSDN Git Service

PR bootstrap/41620
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 95a8b70..a26d6dd 100644 (file)
@@ -1,3 +1,378 @@
+2009-10-08  Jan Hubicka  <jh@suse.cz>
+
+       PR bootstrap/41620
+       * ipa.c (cgraph_externally_visible_p,
+       function_and_variable_visibility,
+       whole_program_function_and_variable_visibility): Skip non-finalized
+       nodes.
+
+2009-10-08  Nick Clifton  <nickc@redhat.com>
+
+       * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
+       CONST_DOUBLEs.
+
+2009-10-08  Andreas Tobler  <a.tobler@schweiz.org>
+
+       PR bootstrap/37739
+       * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
+
+2009-10-07  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/41182
+       * c-common.c (c_fully_fold_internal): Strip nops from the result
+       of recursive calls to c_fully_fold_internal.
+       (c_wrap_maybe_const): New.
+       (c_save_expr): Use c_wrap_maybe_const.
+       * c-common.h (c_wrap_maybe_const): Declare.
+       * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
+       build_binary_op): Use c_wrap_maybe_const.
+
+2009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * real.c: Fix comment to reflect actual exponent size.
+
+2009-10-08  Ben Elliston  <bje@au.ibm.com>
+
+       * config/rs6000/a2.md: Add FSF comment header.
+
+2009-10-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (any_extend): New code iterator.
+       (u, s): New code attributes.
+       (sgnprefix): Ditto.
+       (DWIH): Rewrite as code iterator for SI and DI modes.
+       (DWI): Rewrite as mode attribute.
+       (dwi): New mode attribute.
+       (di): Depend on SI mode and DI mode.
+       (doubleint_general_operand): Remove mode attribute.
+
+       (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
+       DWIH mode iterator.
+
+       (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
+       (*sub<mode>3_doubleword): Ditto.
+
+       (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
+       using SWIM248 mode iterator.
+       (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
+       using SWI48 mode iterator.
+       (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
+       patterns using DWIH mode iterator and any_extend code iterator.
+       (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
+       using any_extend code iterator.
+       (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
+       patterns using DWIH mode iterator and any_extend code iterator.
+       (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
+       using any_extend code iterator.
+       (<s>mul<mode>3_highpart): Macroize expander from
+       {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
+       and any_extend code iterator.
+       (*<s>muldi3_highpart_1): Macroize insn from
+       *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
+       (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
+       patterns using any_extend code iterator.
+       (*<s>mulsi3_highpart_zext): Macroize insn from
+       *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
+
+2009-10-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
+       DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
+       refering to a DIE with DW_AT_const_value.
+
+2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR middle-end/22072
+       * ira-lives.c (check_and_make_def_conflict): Process all operands.
+
+2009-10-06  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
+       correctly.
+
+2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
+       *lea_2_rex64): Move before *add<mode>_1 pattern.
+
+2009-10-07  Jan Hubicka  <jh@suse.cz>
+
+       * collect2.c (main): Add -fno-whole-program.
+       * gcc.c (set_collect_gcc_options): Do not remove whole program here.
+
+2009-10-07  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones has
+       no address taken.
+       * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
+       never needed.
+       (cgraph_clone_node): Clear externally_visible flag for clones.
+       * cgraph.h (cgraph_only_called_directly_p,
+       cgraph_can_remove_if_no_direct_calls_p): New predicates.
+       * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
+       * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
+       (ipcp_initialize_node_lattices, ipcp_estimate_growth,
+       ipcp_insert_stage): Likwise.
+       * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
+       externally_visible flag.
+       (verify_cgraph_node): Verify that inline clones look right.
+       (process_function_and_variable_attributes): Do not set
+       externally_visible flags.
+       (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
+       been already run.
+       * lto-cgraph.c (lto_output_node): Assert that inline clones are not
+       boundaries.
+       * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
+       clear externally_visible when turning into inline clones
+       (cgraph_mark_inline_edge): Use new predicates.
+       (cgraph_estimate_growth): Likewise.
+       (cgraph_decide_inlining): Likewise.
+       * ipa.c (cgraph_postorder): Likewise.
+       (cgraph_remove_unreachable_nodes): Likewise; sanity check
+       that inline clones are not needed.
+       (cgraph_externally_visible_p): New predicate.
+       (function_and_variable_visibility): Add whole_program parameter;
+       always set externally_visible flag; handle COMDAT function
+       privatization.
+       (local_function_and_variable_visibility): New function.
+       (gate_whole_program_function_and_variable_visibility): New function.
+       (whole_program_function_and_variable_visibility): New function.
+       (pass_ipa_whole_program_visibility): New function.
+       * passes.c  (init_optimization_passes): Add whole program visibility
+       pass.
+       (do_per_function_toporder, function_called_by_processed_nodes_p): Do
+       not care about needed/reachable flags.
+       * varpool.c: Include flags.h
+       (decide_is_variable_needed): When doing LTO assume whole-program mode.
+       (varpool_finalize_decl): When we are in LTO read-back, all variables
+       are analyzed.
+       (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
+
+2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
+       add MASK_HARD_DFP.
+
+2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config.gcc: Don't include the makefile fragments intended for
+       libgcc.
+       * config/s390/fixdfdi.h: File removed.
+       * config/s390/libgcc-glibc.ver: File removed.
+       * config/s390/s390.h: Remove the fixdfdi.h hack.
+       * config/s390/t-crtstuff: File moved to libgcc dir.
+       * config/s390/t-linux: Likewise.
+       * config/s390/t-tpf: libgcc specific parts removed.
+       * config/s390/t-linux64: Likewise.
+
+2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
+
+       * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
+       (lto-compress.o): Likewise.
+
+2009-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR target/41512
+       * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
+       dllexport to class members here.
+       (i386_pe_determine_dllimport_p): Only check static class data for
+       definition.
+       (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
+       * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
+       functions for vague linkage.
+       (i386_pe_type_dllexport_p): Fix formatting.
+       (maybe_add_dllexport) New function.
+       (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
+       to class members.
+
+2009-10-07  Ben Elliston  <bje@au.ibm.com>
+
+       * config/rs6000/a2.md: Remove duplicated lines.
+
+2009-10-07  Ben Elliston  <bje@au.ibm.com>
+
+       * config.gcc (powerpc*-*-*): Handle a2.
+       * config/rs6000/rs6000.md (cpu): Add ppca2.  Include "a2.md".
+       * config/rs6000/a2.md: New file.
+       * config/rs6000/rs6000.opt (mno-update): New.
+       (mupdate): Return to using a mask, not a var.
+       * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
+       (enum processor_type): Add PROCESSOR_PPCA2.
+       * config/rs6000/rs6000.c (ppca2_cost): New costs.
+       (rs6000_override_options): Add "a2" to processor_target_table.
+       Update rs6000_always_hint logic.  Correctly set rs6000_cost for a2.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
+
+2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
+       Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
+       reference to nonexistent gen_truncxfxf2 function.
+
+2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
+       (DWIH, g, di, doubleint_general_operand): New mode attributes.
+       (general_operand): Handle TI mode.
+       (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
+       using SDWIM mode iterator.
+       (*add<mode>3_doubleword): New insn_and_split pattern.  Macroize
+       pattern from *add{di,ti}3_1 patterns and corresponding splitters
+       using DWI mode iterator.
+       (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
+       patterns using SWI mode iterator.
+       (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
+       using SWI48 mode iterator.
+       (*add<mode>_1): Ditto from add{si,di}_1 patterns.
+       (*add<mode>_2): Ditto from add{si,di}_2 patterns.
+       (*add<mode>_3): Ditto from add{si,di}_3 patterns.
+       (*add<mode>_5): Ditto from add{si,di}_5 patterns.
+       (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
+       using SDWIM mode iterator.
+       (*sub<mode>3_doubleword): New insn_and_split pattern.  Macroize
+       pattern from *sub{di,ti}3_1 patterns and corresponding splitters
+       using DWI mode iterator.
+       (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
+       patterns using SWI mode iterator.
+       (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
+       (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
+       (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
+       (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
+       patterns using plusminus code iterator.
+       (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
+       sub<mode>3 patterns using plusminus code iterator.
+       * config/i386/i386.c (override_options): Update call to
+       gen_subdi_carry_rex64 for renamed function.
+       (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
+       and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
+       calls to instruction expanders.
+
+2009-10-06  Martin Jambor  <mjambor@suse.cz>
+
+       PR bootstrap/41395
+       * opts.c (decode_options): Run IPA-SRA at -O2.
+
+2009-10-06  Richard Guenther  <rguenther@suse.de>
+
+       * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
+
+2009-10-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR lto/41591
+       * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
+       -flto and -fwhole-program flags can be combined.
+
+2009-10-06  Ryan Mansfield  <rmansfield@qnx.com>
+
+       PR driver/41217
+       * gcc.c (process_command): Check that -o argument was specified.
+
+2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
+
+       * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix
+       compilation.
+
+2009-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
+       * doc/invoke.texi (Warning Options): Annotate allowed languages
+       for -Wunsuffixed-float-constants.
+
+2009-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
+       DW_TAG_{const,volatile}_type if its DW_AT_type already has the
+       same name and isn't the main variant.
+
+       PR debug/41558
+       * dwarf2out.c (loc_by_reference): Removed.
+       (dw_loc_list_1): New function.
+       (dw_loc_list): Remove toplev argument, add want_address argument.
+       Don't look at decl_by_reference_p at all.  Use dw_loc_list_1.
+       (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
+       want_address == 2 to dw_loc_list.  For successful dw_loc_list
+       set have_address to 1 only if want_address is not 0.
+
+2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
+       * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
+       a code block followed by two pointers.
+       (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
+       * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
+       (MIPS_MOVE): Likewise.
+       (MIPS_LUI): Likewise.
+       (MIPS_JR): Likewise.
+       (MIPS_BAL): Likewise.
+       (MIPS_NOP): Likewise.
+       (mips_asm_trampoline_template): Delete.
+       (mips_trampoline_code_size): New function.
+       (mips_trampoline_init): Add shorter sequences for all cases
+       except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
+       Calculate the opcodes directly, rather than copying from a template.
+       Only flush the code part of the trampoline.
+       (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
+
+2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
+       GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
+       (INCOMING_RETURN_ADDR_RTX): Likewise.
+       (FUNCTION_PROFILER): Likewise.  Replace GP_REG_FIRST + 1
+       with AT_REGNUM.
+       * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
+       with RETURN_ADDR_REGNUM.
+       (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
+       * config/mips/mips.c (mips16_build_call_stub): Replace
+       GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
+       with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
+       (mips_print_operand_punctuation): Likewise.
+       (mips_frame_set): Likewise.
+       (mips16e_output_save_restore): Likewise.
+       (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
+       (mips_save_reg_p): Likewise.
+       (mips_return_addr): Likewise.
+       (mips_set_return_address): Likewise.
+       (mips_direct_save_slot_move_p): Likewise.
+       (mips_output_function_prologue): Likewise.
+       (mips_restore_reg): Likewise.
+       (mips_expand_epilogue): Likewise.
+       (mips_epilogue_uses): Likewise.
+       * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
+       (*mov<mode>_ra): Use it instead of a hard-coded 31.
+       (clear_hazard_<mode>): Likewise.
+       (call_internal): Likewise.
+       (call_internal_direct): Likewise.
+       (call_direct_split): Likewise.
+       (call_value_internal): Likewise.
+       (call_value_split): Likewise.
+       (call_value_internal_direct): Likewise.
+       (call_value_direct_split): Likewise.
+       (call_value_multiple_internal): Likewise.
+       (call_value_multiple_split): Likewise.
+
+2009-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/41511
+       * combine.c (record_value_for_reg): Pass explicit values as argument
+       to get_last_value_validate.
+       (get_last_value_validate): Document INSN parameter.
+       For non-readonly MEMs, assume they might have been modified if INSN
+       was in another basic block.
+       (get_last_value): Minor reformatting.
+
+2009-10-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/40992
+       * final.c (asm_str_count): Split out from asm_insn_count.
+       * rtl.h (asm_str_count): New prototype.
+       * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
+       asm_str_count.
+
+2009-10-05  Sriraman Tallam  <tmsriram@google.com>
+
+       * doc/plugins.texi: Change plugin_pass to register_pass_info.
 
 2009-10-05  Basile Starynkevitch  <basile@starynkevitch.net>
            Rafael Espindola  <espindola@google.com>
 
 2009-10-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
-        * config/arm/arm.c (arm_override_options): Really initialize
-        flag_dwarf2_cfi_asm to 0.
+       * config/arm/arm.c (arm_override_options): Really initialize
+       flag_dwarf2_cfi_asm to 0.
 
 2009-10-05  Doug Kwan  <dougkwan@google.com>
 
            Richard Guenther  <rguenther@suse.de>
            Jan Hubicka  <jh@suse.cz>
            Doug Kwan <dougkwan@google.com>
-           H.J. Lu  <hongjiu.lu@intel.com> 
+           H.J. Lu  <hongjiu.lu@intel.com>
            Bill Maddox  <maddox@google.com>
            Ryan Mansfield  <rmansfield@qnx.com>
            Diego Novillo  <dnovillo@google.com>
 
 2009-10-02  Uros Bizjak  <ubizjak@gmail.com>
 
-       * config/i386/i386.md (divmod<mode>4) Macroize expander from
-       divmoddi4, divmodsi4 and divmodhi4 patterns using SWI248 macro.
+       * config/i386/i386.md (SWIM248): New mode iterator.
+       (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
+       divmodhi4 patterns using SWIM248 macro.
        (*divmod<mode>4): Macroize insn_and_split pattern from
        *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
-       and their corresponding splitters usign SWI248 macro.  Split SImode
+       and their corresponding splitters usign SWIM248 macro.  Split SImode
        insn to generate cltd and DImode insn to generate cqto instead of
        move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
        (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
        (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
-       *divmodsi_noext patterns using SWI248 macro.
+       *divmodsi_noext patterns using SWIM248 macro.
        (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
-       udivmodhi4 patterns using SWI248 macro.
+       udivmodhi4 patterns using SWIM248 macro.
        (*udivmod<mode>4): Macroize insn_and_split pattern from
        *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
-       corresponding splitters using SWI248 macro.
+       corresponding splitters using SWIM248 macro.
        (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
-       *udivmodsi4_noext and *udivmodhi_noext patterns using SWI248 macro.
+       *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
 
 2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>