OSDN Git Service

2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 588ce00..f20038d 100644 (file)
@@ -1,3 +1,265 @@
+2008-12-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/38402
+       * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
+       constraints for x86.
+
+2008-12-12  Andreas Schwab  <schwab@suse.de>
+
+       * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
+       a BARRIER insn.
+
+2008-12-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
+       Use Pmode for scratch reg.
+       (*mb_internal): Use (match_dup 0) for unspec operand.
+
+2008-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
+       floor_log2 of zero.  Negate widened zero.
+
+2008-12-12  Ben Elliston  <bje@au.ibm.com>
+
+       * config/fp-bit.c (nan): Rename from this ..
+       (makenan): .. to this.
+
+2008-12-11  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (*branch_bit<bbv><mode>,
+       *branch_bit<bbv><mode>_inverted): Renumber operands so that the
+       label becomes operands[1].
+
+2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
+
+       PR tree-optimization/38446
+       * graphite.c (register_bb_in_sese): New.
+       (bb_in_sese_p): Check if bb belongs to sese region by explicitly
+       looking at the bbs in the region.
+       * graphite.h (sese): Add region_basic_blocks pointer set to
+       structure and initialize at the time of defining new scop.
+
+2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>
+
+       * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
+       (find_params_in_bb): Do not free data refs.
+       (free_graphite_bb): Add FIXME on disabled free_data_refs.
+
+2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite.c (struct ivtype_map_elt): New.
+       (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
+       new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
+       gcc_type_for_cloog_iv): New.
+       (loop_iv_stack_patch_for_consts): Use the type of the induction
+       variable from the original loop, except for the automatically
+       generated loops, i.e., in the case of a strip-mined loop, in
+       which case there is no original loop: in that case just use
+       integer_type_node.
+       (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
+       (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
+       (clast_name_to_gcc): Accept params to be NULL.
+       (clast_to_gcc_expression): Take an extra parameter for the type.
+       Convert to that type all the expressions built by this function.
+       (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
+       (graphite_translate_clast_equation): Compute the type of the
+       clast_equation before translating its LHS and RHS.
+       (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
+       (graphite_create_new_loop): Compute the type of the induction
+       variable before translating the lower and upper bounds and before
+       creating the induction variable.
+       (rename_variables_from_edge, rename_phis_end_scop): New.
+       (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
+       (sese_add_exit_phis_edge): Do not use integer_zero_node.
+       (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
+       compute_cloog_iv_types): New.
+       (gloog): Call compute_cloog_iv_types before starting the
+       translation of the clast.
+
+       * graphite.h (struct graphite_bb): New field cloog_iv_types.
+       (GBB_CLOOG_IV_TYPES): New.
+       (debug_ivtype_map): Declared.
+       (oldiv_for_loop): New.
+
+2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>
+
+       PR middle-end/38459
+       * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
+       (param_index): Assert if parameter is not know after parameter
+       detection.
+       (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
+       (find_scop_parameters): Mark, that we have finished parameter
+       detection.
+       (graphite_transform_loops): Move condition detection before parameter
+       detection.
+       * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
+
+2008-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR testsuite/35677
+       * emutls.c (__emutls_get_address): Make sure offset is really zero
+       before initializing the object's offset.
+
+2008-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/38253
+       * gimplify.c (gimplify_init_constructor): Don't force constructor
+       into memory if there is just one nonzero element.
+
+2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
+
+       Fix testsuite/gfortran.dg/graphite/id-4.f90.
+       * graphite.c (scan_tree_for_params): Do not compute the multiplicand
+       when not needed.
+
+2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite.c (build_scops_1): Initialize open_scop.exit
+       and sinfo.last.
+
+2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
+           Jan Sjodin  <jan.sjodin@amd.com>
+           Harsha Jagasia  <harsha.jagasia@amd.com>
+
+       PR middle-end/37852
+       PR middle-end/37883
+       PR middle-end/37928
+       PR middle-end/37980
+       PR middle-end/38038
+       PR middle-end/38039
+       PR middle-end/38073
+       PR middle-end/38083
+       PR middle-end/38125
+
+       * tree-phinodes.c (remove_phi_nodes): New, extracted from...
+       * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
+       ... here.
+       * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
+       * Makefile.in (graphite.o): Depend on value-prof.h.
+       (graphite.o-warn): Removed -Wno-error.
+       * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
+       to be a NULL pointer.  Call update_stmt.  Return the newly created 
+       cannonical induction variable.
+
+       * graphite.h (debug_rename_map): Declared.  Fix some comments.
+
+       * graphite.c: Reimplement the code generation from graphite to gimple.
+       Include value-prof.h.
+       (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
+       (get_old_iv_from_ssa_name): Removed.
+       (graphite_stmt_p): New.
+       (new_graphite_bb): Test for useful statements before building a
+       graphite statement for the basic block.
+       (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
+       in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
+       reason.
+       (recompute_all_dominators, graphite_verify,
+       nb_reductions_in_loop, graphite_loop_normal_form): New.
+       (scop_record_loop): Call graphite_loop_normal_form.
+       (build_scop_loop_nests): Iterate over all the blocks of the
+       function instead of relying on the incomplete information from
+       SCOP_BBS.  Return the success of the operation.
+       (find_params_in_bb): Use the data from GBB_DATA_REFS.
+       (add_bb_domains): Removed.
+       (build_loop_iteration_domains): Don't call add_bb_domains.
+       Add the iteration domain only to the basic blocks that have been
+       translated to graphite.
+       (build_scop_conditions_1): Add constraints only if the basic
+       block have been translated to graphite.
+       (build_scop_data_accesses): Completely disabled until data
+       dependence is correctly implemented.
+       (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
+       (remove_all_edges_1, remove_all_edges): Removed.
+       (get_new_name_from_old_name): New.
+       (graphite_rename_variables_in_stmt): Renamed 
+       rename_variables_in_stmt.  Call get_new_name_from_old_name.
+       Use replace_exp and update_stmt.
+       (is_old_iv): Renamed is_iv.
+       (expand_scalar_variables_stmt): Extra parameter for renaming map.
+       Use replace_exp and update_stmt.
+       (expand_scalar_variables_expr): Same.  Use the map to get the
+       new names for the renaming of induction variables and for the
+       renaming of variables after a basic block has been copied.
+       (expand_scalar_variables): Same.
+       (graphite_rename_variables): Renamed rename_variables.
+       (move_phi_nodes): Removed.
+       (get_false_edge_from_guard_bb): New.
+       (build_iv_mapping): Do not insert the induction variable of a
+       loop in the renaming iv map if the basic block does not belong
+       to that loop.
+       (register_old_new_names, graphite_copy_stmts_from_block,
+       copy_bb_and_scalar_dependences): New.
+       (translate_clast): Heavily reimplemented: copy basic blocks,
+       do not move them.  Finally, in call cleanup_tree_cfg in gloog.
+       At each translation step call graphite_verify ensuring the 
+       consistency of the SSA, loops and dominators information.
+       (collect_virtual_phis, find_vdef_for_var_in_bb,
+       find_vdef_for_var_1, find_vdef_for_var,
+       patch_phis_for_virtual_defs): Removed huge hack.
+       (mark_old_loops, remove_dead_loops, skip_phi_defs,
+       collect_scop_exit_phi_args, patch_scop_exit_phi_args,
+       gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
+       (remove_sese_region, ifsese, if_region_entry, if_region_exit,
+       if_region_get_condition_block, if_region_set_false_region,
+       create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
+       sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb, 
+       sese_add_exit_phis_edge, sese_add_exit_phis_var,
+       rewrite_into_sese_closed_ssa): New.
+       (gloog): Remove dead code.  Early return if code cannot be
+       generated.  Call cleanup_tree_cfg once the scop has been code
+       generated.
+       (graphite_trans_scop_block, graphite_trans_loop_block): Do not 
+       block loops with less than two loops.
+       (graphite_apply_transformations): Remove the call to
+       scop_remove_ignoreable_gbbs.
+       (limit_scops): When build_scop_loop_nests fails, continue on next
+       scop.  Fix open_scop.entry.
+       (graphite_transform_loops): Call recompute_all_dominators: force the
+       recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
+       Call initialize_original_copy_tables and free_original_copy_tables
+       to be able to copy basic blocks during code generation.
+       When build_scop_loop_nests fails, continue on next scop.
+       (value_clast): New union.
+       (clast_to_gcc_expression): Fix type cast warning.
+
+2008-12-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/36792
+       * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
+       tcc_binary.
+
+2008-12-10  Daniel Berlin  <dberlin@dberlin.org>
+
+       PR tree-optimization/36792
+       * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
+
+2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR target/37033
+       * dwarf2out.c (saved_do_cfi_asm): New.
+       (dwarf2out_do_frame): Take it into account.
+       (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
+
+2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR middle-end/38271
+       * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
+       variables initialized from SRAed bit fields.
+
+2008-12-10  Martin Guy <martinwguy@yahoo.it>
+
+       PR target/37668
+       * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
+       result will be in an FPU register.
+
+2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/37170
+       PR target/38448
+       * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
+       on the associated SYMBOL_REF_DECL node, if any.
+
 2008-12-09 David Daney <ddaney@caviumnetworks.com>
 
        * config/mips/sync.md (sync_<optab>_12): Replace
        case.
        * calls.c (nitialize_argument_information): Add fntype argument 
        and use it for calls.promote_function_args.
-        (expand_call): Pass fntype to aggregate_value_p if no fndecl
+       (expand_call): Pass fntype to aggregate_value_p if no fndecl
        available and pass additional fntype to
        initialize_argument_information.
        * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
        Fix testsuite/gfortran.dg/graphite/id-3.f90.
        * graphite.c (scopdet_basic_block_info): Fix bug that found some
        regions more than once.
-       * testsuite/gfortran.dg/graphite/id-3.f90: New.
-       * gcc/testsuite/gcc.dg/graphite/pr38084.c: New.
 
 2008-12-09  Ben Elliston  <bje@au.ibm.com>