OSDN Git Service

2008-08-22 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index de65ecf..7d69cf0 100644 (file)
+2008-08-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37078
+       * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
+       [+INF, +INF] ranges.
+
+2008-08-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37143
+       * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
+       a conversion statement instead of a copy.
+
+2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/37184
+       * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
+       CCCmode, CCOmode and CCSmode destination modes.
+
+       PR target/37191
+       * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
+       from different units in a single alternative.
+       (*vec_extractv2sf_1): Ditto.
+       (*vec_extractv2si_0): Ditto.
+       (*vec_extractv2si_1): Ditto.
+       * config/i386/sse.md (sse2_storehpd): Ditto.
+       (sse2_storelpd): Ditto.
+       (sse2_loadhpd): Ditto.
+       (sse2_loadlpd): Ditto.
+
+       PR target/37197
+       * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
+       (popcountsi2): Ditto.
+       (clzdi2_abm): Ditto.
+       (popcountdi2): Ditto.
+       (clzhi2_abm): Ditto.
+       (popcounthi2): Ditto.
+
+2008-08-22  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/36548
+       PR middle-end/37125
+       * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
+       if the multiplication does not overflow.
+
+2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
+
+2008-08-21  Richard Henderson  <rth@redhat.com>
+
+       * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
+       spurrious comma from test.
+       * configure: Rebuild.
+
+2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR 30457
+       * builtins.c (fold_builtin_next_arg): Add warning about undefined
+       behaviour.
+       
+2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
+
+       * c-tree.h (grokfield): New argument.
+       * c-decl.c (grokfield): Handle new location argument.
+       * c-parser.c (c_parser_struct_declaration): Pass location to
+       grokfield.
+
+2008-08-21  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
+
+2008-08-21  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (first_cgraph_function_insertion_hook): New variable.
+       (cgraph_add_function_insertion_hook,
+       cgraph_remove_function_insertion_hook,
+       cgraph_call_function_insertion_hooks): New functions.
+       * cgraph.h (cgraph_add_function_insertion_hook,
+       cgraph_remove_function_insertion_hook,
+       cgraph_call_function_insertion_hooks): Declare.
+       * ipa-reference.c (function_insertion_hook_holder): New variable.
+       (check_operand, look_for_address_of): When checking late, do not care
+       about module bitmaps.
+       (add_new_function): New function.
+       (generate_summary): Register hooks; zero module bitmaps.
+       (propagate): Unregister hooks.
+       * ipa-pure-const.c (function_insertion_hook_holder): New variable.
+       (add_new_function): New function.
+       (generate_summary): Register hook.
+       (propagate): Remove hook.
+
+       * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
+
+       * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
+       * ipa-cp.c (ipcp_update_cloned_node): New function.
+       (build_const_val): Handle functions correctly; bring type logic
+       into sync with tree-inline.c
+       (ipcp_init_stage):  Take care of computing stuff needed by
+       indirect inlining; update clones.
+       (ipcp_generate_summary): Break out of ipcp_driver.
+       (ipcp_driver): Do only execution and transformation.
+       (pass_ipa_cp): Make IPA_PASS.
+       * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
+       offset to address.
+       * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
+       ipcp, some info is already available.
+       * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
+       * tree-inline.c (remap_ssa_name): Unshare expression.
+
+2008-08-21  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
+       a PHI ask VN if it is already available.
+       * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
+       * tree-ssa-sccvn.c (vn_phi_lookup): Export.
+
+2008-08-21  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/36817
+       * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
+       makes sure to produce a result of the correct type.
+
+2008-08-21  Jan Hubicka  <jh@suse.cz>
+       Backport from LTO branch:
+
+       2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
+                   Jan Hubicka  <jh@suse.cz>
+       
+       * ipa-pure-const.c
+       (init_state, finish_state, set_function_state, generate_summary):
+       New functions.
+       (scan_stmt): Renamed from scan_function.  Changed to keep state in
+       local static vars rather than cgraph aux field.
+       (propagate): Renamed from static_execute. Changed to keep state in
+       local static vars rather than cgraph aux field.
+       (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
+       * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
+
+       2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
+       * ipa-reference.c (init_function_info, generate_summary, 
+       propagate): New functions.
+       (analyze_function):  Call init_function_info.
+       (static_execute): Stripped into generate_summary and propagate.
+       (pass_ipa_reference): Made into ipa_opt_pass.
+
+2008-08-21  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37181
+       * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
+       folding result.
+       (extract_range_from_unary_expr): Likewise.
+
+2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * diagnostic.c (pedwarn_at): Rename as pedwarn.
+       (pedwarn): Delete.
+       * toplev.h (pedwarn_at): Likewise.
+       * builtins.c: Update all calls to pedwarn.
+       * c-lex.c: Likewise.
+       * toplev.c: Likewise.
+       * c-tree.h: Likewise.
+       * c-decl.c: Likewise.
+       * c-errors.c: Likewise.
+       * c-typeck.c: Likewise.
+       * c-common.c: Likewise.
+       * c-parser.c: Likewise.
+
+2008-08-20  Joseph Myers  <joseph@codesourcery.com>
+
+       PR target/31070
+       * config/sparc/sparc.c (function_arg_slotno): Handle structure
+       with MODE_VECTOR_INT mode.
+
+2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR middle-end/179
+       * tree-ssa.c (warn_uninit): Do not warn for variables that can be
+       initialized outside the current module.
+       (warn_uninitialized_var): Ignore left-hand side when walking the
+       trees. Ignore address expressions. Examine VUSE operands in gimple
+       statements with a variable declaration on the right-hand side.
+
+2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR bootstrap/37155
+       * rtlanal.c (subreg_offset_representable_p): Revert last change.
+
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR 35701
+       * c-common.c (conversion_warning): Do not warn if applying bit-and
+       operator to unsigned constant that fits in the target type.
+
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c++/35602
+       * c-common.c (conversion_warning): Do not warn for artificial
+       expressions.
+
+2008-08-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (op_with_constant_singleton_value_range): New function.
+       (extract_range_from_binary_expr): Fall back to constant propagation.
+       (extract_range_from_unary_expr): Likewise.
+
+2008-08-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
+       with TREE_THIS_VOLATILE on shared nodes.
+       (fold_stmt_r): Likewise.
+
+2008-08-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/37171
+       * c-parser.c (c_parser_attributes): For keywords use canonical
+       spelling for attr_name.
+
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * value-prof.c (check_counter): Revert wrong call to error.
+       
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * profile.c: Update calls to inform.
+       * value-prof.c: Update calls to inform.
+       
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * diagnostic.c (inform): Add an explicit location_t parameter.
+       * toplev.h (inform): Update declaration.
+       * builtins.c: Update all calls to inform.
+       * c-common.c: Likewise.
+       * c-decl.c: Likewise.
+       * c-opts.c: Likewise.
+       * c-pch.c: Likewise.
+       * c-pragma.c: Likewise.
+       * c-typeck.c: Likewise.
+       * coverage.c: Likewise.
+       * opts.c: Likewise.
+       * toplev.c: Likewise.
+       * tree-cfg.c: Likewise.
+       * tree-ssa.c: Likewise.
+
+2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/37169
+       * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
+       V2DI mode, for SSE4.1, use movq instead of vector set if the
+       second element is zero and inter-unit moves are OK.
+
+2008-08-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
+       properly handle conversion/copy chains after tuplification.
+
+2008-08-20  Richard Guenther  <rguenther@suse.de>
+
+       * passes.c (init_optimization_passes): Move the second
+       forwprop pass before alias computation.  Remove the second
+       DCE pass.  Remove the first dominator and phi copy/const
+       prop passes.
+
 2008-08-20  Nick Clifton  <nickc@redhat.com>
 
        * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
        support of this feature.  Do not assume that a sufficiently new
        assembler will support the feature regardless of the target type.
        (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
-        * configure: Regenerate.
+       * configure: Regenerate.
 
 2008-08-20  Richard Guenther  <rguenther@suse.de>
 
 
 2008-08-19  Rafael Espindola  <espindola@google.com>
 
-      * varasm.c (weak_decls): Move earlier in the file.
-      (assemble_external): Add weak decls to the weak_decls list.
-      (declare_weak): Don't add decls to the weak_decls list.
+       * varasm.c (weak_decls): Move earlier in the file.
+       (assemble_external): Add weak decls to the weak_decls list.
+       (declare_weak): Don't add decls to the weak_decls list.
 
 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
 
 
        * config/s390/2097.md New file.
        * config/s390/s390.md ("z10prop" attribute): Define none,
-        z10_super, z10_super_E1, z10_super_A1, z10_super_c,
-        z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
-        z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
-        possible values and apply them to insns as appropriate.
-        ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
-        ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
-        fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
-        fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
-        values.
+       z10_super, z10_super_E1, z10_super_A1, z10_super_c,
+       z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
+       z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
+       possible values and apply them to insns as appropriate.
+       ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
+       ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
+       fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
+       fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
+       values.
        ("bfp" mode attribute): Removed.  Every occurence replaced
        with <mode>.
        * config/s390/s390.c (struct "z10_cost"): Updated entries.
        * config/s390/2084.md (insn_reservation "x_itof"): Updated
-          type attribute.
+         type attribute.
 
 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
-        PR c/28152
+       PR c/28152
        * c-parser.c (c_lex_one_token): Do not store the canonical spelling
        for keywords.