OSDN Git Service

./:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0a20825..036e97b 100644 (file)
@@ -1,3 +1,376 @@
+2008-09-04  Ian Lance Taylor  <iant@google.com>
+
+       * varasm.c (narrowing_initializer_constant_valid_p): New
+       static function.
+       (initializer_constant_valid_p): Call it.
+
+2008-09-04  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (native_encode_real): Fix computation of WORDS.
+       (native_interpret_real): Likewise.
+
+2008-09-04  Janis Johnson  <janis187@us.ibm.com>
+
+       * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
+
+2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * ira-conflicts.c (process_regs_for_copy): Check insn to check
+       that the cost is already taken into account in ira-costs.c
+
+       * ira-int.h (ira_debug_copy, ira_debug_copies): New.
+
+       * ira-build.c (print_copy, print_copies, ira_debug_copy,
+       ira_debug_copies): New.
+       (ira_bulid): Call print_copies.
+       
+       * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
+       
+2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
+
+       PR target/32783
+       * config/rs6000/rs6000.c (optimization_options): Remove check of
+       flag_toplevel_order.
+
+2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
+       * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
+       second operand is a reg_imm10_operand.
+       * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
+       *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
+       (*seq_<GPR:mode><GPR2:mode>): Rename to
+       *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
+       ISA_HAS_SEQ_SNE.
+       (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
+       *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
+       ISA_HAS_SEQ_SNE.
+       (*sne_<GPR:mode><GPR2:mode>): Rename to
+       *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
+       ISA_HAS_SEQ_SNE.
+
+2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.h (ISA_HAS_EXTS): New macro.
+       * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
+       combining an arithmetic right shift by more than 31 and a
+       trunction.  Don't match for out-of-range shift amounts.  Set
+       attribute mode to <MODE>.
+       (*lshr32_trunc<mode>): Name the pattern combining a logical right
+       shift by 32 and and a truncation.  Set attribute mode to <MODE>.
+       (*<optab>_trunc<mode>_exts): New pattern for truncated right
+       shifts by less than 32.
+       (extv): Change predicate on first operand to accept registers.
+       Change predicate of the other operands from immediate_operand to
+       const_int_operand.  Expand exts when source is a register.
+       (extzv): Change predicate of the constant operands from
+       immediate_operand to const_int_operand.
+       (extzv<mode>): Change predicate of the constant operands from
+       immediate_operand to const_int_operand and no constraint. Also
+       remove mode.
+       (*extzv_trunc<mode>_exts): New pattern.
+
+2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.h (ISA_HAS_CINS): New macro.
+       * config/mips/mips-protos.h (mask_low_and_shift_p,
+       mask_low_and_shift_len): Declare.
+       * config/mips/mips.c (mask_low_and_shift_p,
+       mask_low_and_shift_len): New functions.
+       (mips_print_operand): Handle new operand prefix "m".
+       * config/mips/mips.md (*cins<mode>): New pattern.
+
+2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
+       optimizing for size.
+
+2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
+       regardless of epilogue_completed.
+
+2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR middle-end/37359
+       * ira-lives.c (process_bb_node_lives): Check setjmp.
+
+2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR middle-end/37243
+       * ira-build.c (form_loop_tree): Reverse BB walk.
+       (create_bb_allocnos): Likewise.
+       * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
+       (mark_reg_store): Rename to...
+       (mark_ref_live): ...this and take a df_ref argument instead of
+       note_stores arguments.  Assert that we have a register.
+       (mark_reg_clobber): Delete.
+       (def_conflicts_with_inputs_p): New function.
+       (mark_reg_conflicts): Delete.
+       (mark_reg_death): Rename to...
+       (mark_ref_dead): ...this and take a df_ref argument instead of
+       a register.  Assert that we have a register.
+       (process_bb_node_lives): Hoist frequency calculation out of
+       instruction walk.  Convert from a forwards scan to a backwards scan.
+       Use DF_REF_USES and DF_REF_DEFS instead of register notes and
+       note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
+       (create_allocno_live_ranges): Don't create regs_set.
+
+2008-09-04  Ian Lance Taylor  <iant@google.com>
+
+       * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
+       or REG_LABEL_TARGET.
+       * calls.c (emit_library_call_value_1): Use MEM_P rather than
+       comparing MODE with MEM.
+       * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
+       comparing with GF_PREDICT_TAKEN.
+       (gimple_get_lhs): Change code to enum gimple_code.
+       (gimple_set_lhs): Likewise.
+       * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
+       * omp-low.c (find_omp_clause): Change kind parameter to enum
+       omp_clause_code.
+       * tree-flow.h (find_omp_clause): Update declaration.
+       * regrename.c (clear_dead_regs): Change kind parameter to enum
+       reg_note.
+       * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
+       GET_MODE.
+       * see.c (see_get_extension_data): Change return type to enum
+       entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
+       SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
+       (see_gen_normalized_extension): Change extension_code parameter to
+       enum entry_type.
+       (see_seek_pre_extension_expr): Change extension_code to enum
+       entry_type.
+       (see_merge_one_def_extension): Likewise.
+       (see_handle_relevant_defs): Likewise.
+       (see_handle_relevant_uses): Likewise.
+       (see_analyze_one_def): Likewise.
+       * tree-cfg.c (need_fake_edge_p): Compare gimple code with
+       GIMPLE_ASM rather than ASM_EXPR.
+       * tree-ssa-alias.c (is_escape_site): Compare gimple code with
+       GIMPLE_RETURN rather than RETURN_EXPR.
+       * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
+       (evaluate_stmt): Likewise.
+       * tree-vect-analyze.c (vect_analyze_operations): Change relevance
+       to enum vect_relevant.
+       (vect_mark_stmts_to_be_vectorized): Change assertion to not
+       compare gimple codes with tree codes.
+
+2008-09-04  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
+
+2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
+       pointer check lost in the recent no-unit-at-a-time patch.
+       
+2008-09-04  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/37343
+       * tree-switch-conversion.c (check_final_bb): Accept only IP
+       invariants.
+
+2008-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
+       Break out from ...
+       (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
+       using_ranges argument.
+       (vrp_evaluate_conditional): Avoid bogus warning for type range.
+       (vrp_visit_cond_stmt): Update call of
+       vrp_evaluate_conditional_warnv_with_ops
+
+2008-09-04  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/37345
+       PR tree-optimization/37358
+       PR tree-optimization/37357
+       * tree.c (build_function_type_skip_args): Build distinct type copy;
+       set TYPE_CONTEXT.
+       (build_function_decl_skip_args): Set type of new decl not orig decl;
+       clear DECL_VINDEX for methods turned into functions.
+
+2008-09-04  Nick Clifton  <nickc@redhat.com>
+
+       * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler
+       check.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
+       alignment field, if it is supported.
+
+2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/t-mingw32 (SHLIB_LC): Change order of import
+       libraries.
+
+2008-09-03  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (processor_target_table): Do not
+       enable VMX for POWER6.
+
+2008-09-03  Anton Blanchard  <anton@samba.org>
+
+       * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
+       emit memory barrier before operation.
+
+2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
+
+       PR testsuite/37325
+       * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
+       default_elf_asm_output_external.
+
+2008-09-03  Jeff Law  <law@redhat.com>
+
+       * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
+
+2008-09-03  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
+       memory barrier to below the test-and-set.
+       (alpha_split_lock_test_and_set_12): Likewise.
+
+2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-opt/37243
+
+       * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
+       all_allocnos.
+
+       * ira-color.c (print_loop_title): Use all_allocnos.
+       (color_pass): Ditto.  Don't add border_allocnos.  Check that
+       subloop allocno in the correspdoning bitmap all_allocnos.
+
+       * ira-emit.c (change_loop): Use all_allocnos.
+
+       * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
+       Ditto.
+       (ira_create_allocno): Set up all_allocnos bit for the created
+       allocno.
+       (create_cap_allocno): Remove setting mentioned_allocnos.
+       (create_insn_allocnos): Ditto.
+       (remove_unnecessary_allocnos): Use all_allocnos.
+       (check_allocno_creation): Check that allocnos are in the
+       corresponding bitmap all_allocnos.
+       
+2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-opt/37243
+       
+       * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
+       (process_regs_for_copy): Process subregs.  Refine check when cost
+       is taken into account in ira-costs.c.
+       (process_reg_shuffles): Use REG_SUBREG_P.
+       (add_insn_allocno_copies): Ditto.  Ignore modes.
+
+       * ira-color.c (conflict_allocno_vec): New.
+       (COST_HOP_DIVISOR): New macro.
+       (update_copy_costs_1): Use it.
+       (update_conflict_hard_regno_costs): New function.
+       (assign_hard_reg): Use it.
+       (ira_color): Allocate and free conflict_allocno_vec.
+2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-opt/37296
+
+       * ira-int.h (ira_sort_insn_chain): Remove.
+
+       * ira.c (basic_block_order_nums, chain_insn_order,
+       chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
+       (ira): Don't call ira_sort_insn_chain.
+
+       * reload1.c (reload): Don't call ira_sort_insn_chain.
+
+2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/37293
+       * cgraphunit.c (update_call_expr): Remove eh regions from statements
+       which become non throw.
+       (cgraph_function_versioning): Also clear DECL_WEAK.  Call
+       update_call_expr after updating the flags on the decl.
+
+2008-09-03  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/37315
+       * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
+       * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
+       (cgraph_analyze_functions): Use node->analyzed
+       (cgraph_mark_functions_to_output): Likewise.
+       (cgraph_expand_function): All functions can be released after
+       expanding.
+       (cgraph_optimize): Use gimple_has_body_p.
+       * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
+       (cgraph_decide_inlining_incrementally): Likewise.
+       (inline_transform): Inline transform.
+       * tree-inline.c (initialize_cfun): Do now shallow copy structure;
+       copy fields needed.
+       (inlinable_function_p): Drop gimple_body check.
+       (expand_call_inline): Use gimple_has_body_p.
+       * gimple.c (gimple_has_body_p): New.
+       * gimple.h (gimple_has_body_p): Add prototype.
+       * tree-cfg.c (execute_build_cfg): Remove gimple_body.
+       (dump_function_to_file): Use gimple_has_body_p check.
+
+2008-09-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/37346
+       * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
+       substatements.
+       * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
+
+2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       From Michael Frysinger  <michael.frysinger@analog.com>
+       * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
+       bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
+       for bf538.
+
+2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
+
+       Add picoChip port.
+       * doc/extend.texi: Document picoChip builtin functions.
+       * doc/invoke.texi: Document picoChip options.
+       * doc/contrib.texi: Add picoChip contribution.
+       * doc/md.texi: Document picoChip constraints.
+       * config.gcc: Add picochip-*-*.
+       * config/picochip/: Add new port.
+
+2008-09-03  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37328
+       * tree-sra.c (sra_build_assignment): Gimplify properly.
+       (generate_copy_inout): Take the correct stmt as definition,
+       remove bogus assert.
+
+2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
+       attributes.
+
+       From Michael Frysinger  <michael.frysinger@analog.com>
+       * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
+
+2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
+
+       * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is
+       defined.
+       (__gthread_setspecific): Revert 2008-08-31 change to
+       __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API
+       case.
+
+2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
+
+       * diagnostic.c (error_at): New.
+       * toplev.h (error_at): New prototype.
+       * c-typeck.c (build_array_ref): Call error_at instead of error.
+       Pass location to pedwarn.
+
+2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
+
 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
 
        * dwarf2out.c (tree_add_const_value_attribute): Only handle
 
        * expr.c (emit_group_store): Don't assert stack temp mode size.
 
+2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
+           Tobias Grosser  <grosser@fim.uni-passau.de>
+           Jan Sjodin  <jan.sjodin@amd.com>
+           Harsha Jagasia  <harsha.jagasia@amd.com>
+           Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
+           Konrad Trifunovic  <konrad.trifunovic@inria.fr>
+           Adrien Eliche  <aeliche@isty.uvsq.fr>
+
+       Merge from graphite branch.
+       * graphite.c: New.
+       * graphite.h: New.
+       * tree-loop-linear.c (perfect_loop_nest_depth): Export.
+       * doc/invoke.texi (-floop-block, -floop-interchange,
+       -floop-strip-mine): Document new flags.
+       * tree-into-ssa.c (gimple_vec): Moved...
+       * tree-loop-distribution.c (rdg_component): Moved...
+       * cfgloopmanip.c: Include tree-flow.h.
+       (update_dominators_in_loop): New.
+       (create_empty_if_region_on_edge): New.
+       (create_empty_loop_on_edge): New.
+       (loopify): Use update_dominators_in_loop.
+       * tree-pass.h (pass_graphite_transforms): Declared.
+       * configure: Regenerate.
+       * tree-phinodes.c (make_phi_node): Export.
+       (add_phi_node_to_bb): New, split from create_phi_node.
+       * tree-chrec.c (for_each_scev_op): New.
+       * tree-chrec.h (for_each_scev_op): Declared.
+       * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
+       (remove_statement): Call get_phi_with_result.
+       * config.in (HAVE_cloog): Undef.
+       * gdbinit.in (pgg): New.
+       * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
+       * tree-ssa-loop.c (graphite_transforms): New.
+       (gate_graphite_transforms): New.
+       (pass_graphite_transforms): New.
+       * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
+       HAVE_cloog): Defined.
+       * tree-vectorizer.c (rename_variables_in_bb): Export.
+       * tree-data-ref.c (dr_may_alias_p): Export.
+       (stmt_simple_memref_p): New.
+       (find_data_references_in_stmt): Export.
+       (find_data_references_in_loop): Export.
+       (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
+       (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
+       (create_rdg_vertices): Export.
+       (build_empty_rdg): New.
+       (build_rdg): Call build_empty_rdg.  Free dependence_relations.
+       * tree-data-ref.h (rdg_component): ... here.
+       (scop_p): New.
+       (struct data_reference): Add a field scop.
+       (DR_SCOP): New.
+       (find_data_references_in_loop): Declared.
+       (find_data_references_in_stmt): Declared.
+       (create_rdg_vertices): Declared.
+       (dr_may_alias_p): Declared.
+       (stmt_simple_memref_p): Declared.
+       (struct rdg_edge): Add a field ddr_p relation.
+       (build_empty_rdg): Declared.
+       * lambda.h (lambda_matrix): Declare a VEC of.
+       (find_induction_var_from_exit_cond): Declared.
+       (lambda_vector_compare): New.
+       * common.opt (fgraphite, floop-strip-mine,
+       floop-interchange, floop-block): New flags.
+       * lambda-code.c (find_induction_var_from_exit_cond): Export.
+       * cfgloop.c (is_loop_exit): New.
+       * cfgloop.h (is_loop_exit): Declared.
+       (create_empty_if_region_on_edge): Declared.
+       (create_empty_loop_on_edge): Declared.
+       * tree-flow.h (add_phi_node_to_bb): Declared.
+       (make_phi_node): Declared.
+       (rename_variables_in_bb): Declared.
+       (perfect_loop_nest_depth): Declared.
+       (graphite_transform_loops): Declared.
+       * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
+       (graphite.o-warn): Add -Wno-error.
+       (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
+       (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
+       (INCLUDES): Add PPLINC, CLOOGINC.
+       (OBJS-common): Add graphite.o.
+       (graphite.o): Add rule.
+       * gimple.h (gimple_vec): ... here.
+       * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
+       * passes.c (init_optimization_passes): Schedule 
+       pass_graphite_transforms.
+
 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
 
        PR target/37283