OSDN Git Service

* fold-const.c (pointer_may_wrap_p): New static function.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0109ead..270b12e 100644 (file)
@@ -1,4 +1,317 @@
-2008-04-16  Zuxy Meng  <zuxy.meng@gmail.com>
+2008-04-18  Ian Lance Taylor  <iant@google.com>
+
+       * fold-const.c (pointer_may_wrap_p): New static function.
+       (fold_comparison): Add another test for pointer overflow.  Use
+       pointer_may_wrap_p to disable some false positives.
+
+2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
+         
+       * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
+       (fname_as_string): Match updated cpp_interpret_string prototype.
+       (fix_string_type): Support char16_t* and char32_t*.
+       (c_common_nodes_and_builtins): Add char16_t and char32_t (and
+       derivative) nodes.  Register as builtin if C++0x.
+       (c_parse_error): Support CPP_CHAR{16,32}.
+       * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
+       (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
+       CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
+       CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
+       CTI_CHAR32_ARRAY_TYPE>: New elements.
+       (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
+       char32_type_node, signed_char32_type_node, char16_array_type_node,
+       char32_array_type_node): New defines.
+       * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
+       (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
+       (lex_string): Support CPP_STRING{16,32}, match updated
+       cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
+       (lex_charconst): Support CPP_CHAR{16,32}.
+       * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
+       and CPP_STRING{16,32}.
+
+2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/35457
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2008-04-18  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (dw2_size_of_call_site_table,
+       sjlj_size_of_call_site_table): Use vector API for call_site_record.
+
+       * cgraphbuild.c (build_cgraph_edges): Update.
+       * tree-pass.h: Update comment.
+       * final.c (leaf_function_p): Update.
+       (leaf_renumber_regs): Update.
+       (rest_of_clean_state): Update.
+       * omp-low.c (expand_omp_parallel): Update.
+       * ipa-reference.c (analyze_function): Update.
+       * reorg.c (find_end_label): Update.
+       (optimize_skip): Update.
+       (fill_simple_delay_slots): Update.
+       (fill_simple_delay_slots): Update.
+       (make_return_insns): Update.
+       (dbr_schedule): Update.
+       * gimple-low.c (record_vars_into): Update.
+       * cfgbuild.c (make_edges): Update.
+       * function.c (assign_stack_local): Update.
+       (assign_parm_adjust_stack_rtl): Update.
+       (locate_and_pad_parm): Update.
+       (allocate_struct_function): Do not initialize stack_alignment_needed
+       and preferred_stack_boundary here.
+       (stack_protect_prologue): Update.
+       (stack_protect_epilogue): Update.
+       (expand_function_start): Initialize stack_alignment_needed,
+       preferred_stack_boundary and max_jumptable_ents.
+       (expand_function_end): Update.
+       (free_after_compilation): Do not NULLify epilogue_delay_list.
+       * function.h (struct rtl_data): Add stack_protect_guard,
+       stack_alignment_needed,
+       preferred_stack_boundary, epilogue_delay_list.
+       (struct function): Remove value_histograms, stack_alignment_needed,
+       preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
+       last_label_uid,
+       unexpanded_var_list, stack_protect_guard.
+       (current_function_epilogue_delay_list): Remove.
+       * ipa-type-escape.c (analyze_function): Update.
+       * gimplify.c (pop_gimplify_context): Update comment.
+       * calls.c (expand_call): Update.
+       (emit_library_call_value_1): Update.
+       * except.c (set_nothrow_function_flags): Update.
+       * cfgexpand.c (get_decl_align_unit): Update.
+       (create_stack_guard): Update.
+       (estimated_stack_frame_size): Update.
+       (expand_used_vars): Update.
+       (tree_expand_cfg): Free histogram earliers, init expansion variables.
+       * explow.c (allocate_dynamic_stack_space): Update.
+       * tree-ssa-live.c (remove_unused_locals): Update.
+       * varasm.c (mark_constant_pool): Update.
+       * tree-inline.c (remap_decls): Update.
+       (initialize_cfun): Update.
+       (declare_return_variable): Update.
+       (inline_forbidden_p): Update.
+       (expand_call_inline): Update.
+       (declare_inline_vars): Update.
+       (tree_function_versioning): Update.
+       * tree-flow.h (value_histograms): New.
+       (VALUE_HISTOGRAMS): New macro.
+       * basic-block.h (control_flow_graph): Add max_jumptable_ents,
+       last_label_uid.
+       * tree-cfg.c (set_bb_for_stmt): Update.
+       (replace_by_duplicate_decl): Update.
+       (move_block_to_fn): Update.
+       (new_label_mapper): Update.
+       (dump_function_to_file): Update.
+       * ipa-struct-reorg.c (build_data_structure): Update.
+       * cfgrtl.c (print_rtl_with_bb): Update.
+       * reload1.c (reload): Update.
+       (reload): Update.
+       * config/i386/i386.c (setup_incoming_varargs_64,
+       ix86_compute_frame_layout): Update.
+       * config/arc/arc.c (arc_output_function_epilogue): Update.
+
+2008-04-18  Marius Strobl <marius@FreeBSD.org>
+
+       * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
+       for FreeBSD as well.
+       * gthr-posix95.h: Likewise.
+
+2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       PR rtl-optimization/35838
+       * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
+       out the byte offset of the first subreg.
+
+2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
+       to split_ti instead of three separate calls with single member arrays.
+       (subti3 splitter): Ditto.
+       (adddi3 splitter): Ditto with split_di.
+       (subdi3 splitter): Ditto.
+       (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
+       two separate calls with single member arrays.  Swap match_dup
+       operands 1 and 2 to better fit into the array.
+       (negdi2 splitter): Ditto with split_di.
+       (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
+       two separate calls with single member arrays.  Swap match_dup operands
+       6 and 7 to better fit into the array.
+
+2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (sse_builtin_type): New.
+       (bdesc_sse_args): Likewise.
+       (bdesc_sse_3arg): Removed.
+       (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
+       (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
+       IX86_BUILTIN_ROUNDPS.
+       (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
+       bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
+       IX86_BUILTIN_ROUNDPS.
+       (ix86_expand_sse_4_operands_builtin): Removed.
+       (ix86_expand_sse_operands_builtin): New.
+       (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
+       and CODE_FOR_sse4_1_roundps.
+       (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
+       Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
+
+2008-04-17  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/35907
+       * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
+       regs before frame pop when needed.  If use_backchain_to_restore_sp
+       then load backchain into a temp reg to restore vr and vrsave.  Add
+       code to restore vr after frame pop if possible.
+
+2008-04-17  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vn.c (expressions_equal_p): Do not check type
+       equality or compatibility before calling operand_equal_p.
+       * fold-const.c (operand_equal_p): Check equivalence of
+       integer constants before bailing out due to signedness or
+       precision differences.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
+       spurious differences in type qualification.  Ignore types
+       for COMPONENT_REFs at all.
+
+2008-04-17  Christian Bruel  <christian.bruel@st.com>
+
+       * config/sh/sh.c (expand_cbranchdi4): Use original operands for
+       msw_skip comparison.
+       
+2008-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35739
+       * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
+       reg type.
+
+       PR tree-optimization/35899
+       * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
+       rather than TREE_OPERAND.
+
+2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/35944
+       * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
+       temporary registers.  Change operand predicate to general_operand.
+       (remainderxf3): Ditto.
+
+2008-04-16  Richard Guenther  <rguenther@suse.de>
+
+       * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
+       * tree-affine.c (aff_combination_expand): Look through some
+       conversions.
+
+2008-04-15  Doug Kwan  <dougkwan@google.com>
+
+       * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
+       for hex printing.
+       * tree-pretty-print.c (dump_generic_node): Ditto.
+       * final.c (output_addr_const): Ditto.
+       * dwarf2out.c (output_cfi): Ditto.
+       * c-pretty-print.c (pp_c_integer_constant): Ditto.
+       * print-rtl.c (print_rtx): Ditto.
+       * print-tree.c (print_node_brief, print_node): Ditto.
+       * c-common.c (match_case_to_enum_1): Ditto.
+       * sched-vis.c (print_value): Ditto.
+       * config/i386/i386.c (print_operand): Cast to long unsigned int
+       for hex printing.
+
+2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
+       * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
+       MS Windows VirtualProtect function.
+
+2008-04-15  Jan Hubicka  <jh@suse.cz>
+
+       * gengtype.c (write_root): Param_is argument is OK.
+       * expr.c (expand_expr_real_1): Update call of get_exception_*.
+       * function.h: Include varray.h
+       (rtl_eh): New stucture based on except.c one.
+       (call_site_record): New forward declaration and vector type.
+       * calls.c (emit_call_1): Do not call
+       note_current_region_may_contain_throw.
+       * except.c (eh_status): Remove cur_region, try_region since they are
+       unused.
+       Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
+       exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
+       sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
+       Remove call_site_data_used, call_site_data_size.
+       Turn call_site_record into vector in function.h.
+       (note_current_region_may_contain_throw): Remove.
+       (get_exception_pointer, get_exception_filter): Do not take struct
+       function argument; update.
+       (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
+       add_ttypes_entry, add_ehspec_entry, assign_filter_values,
+       build_post_landing_pads, dw2_build_landing_pads,
+       sjlj_assign_call_site_values, sjlj_mark_call_sites,
+       sjlj_emit_function_enter, sjlj_emit_function_enter, 
+       sjlj_emit_function_exit, sjlj_emit_dispatch_table,
+       sjlj_build_landing_pads, finish_eh_generation,
+       remove_exception_handler_label, remove_eh_handler,
+       maybe_remove_eh_handler, add_reachable_handler,
+       reachable_handlers, expand_builtin_eh_return, expand_eh_return,
+       add_action_record, collect_one_action_chain, add_call_site,
+       convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
+       sjlj_output_call_site_table, output_function_exception_table,
+       * except.h (note_current_region_may_contain_throw): Remove
+       (get_exception_pointer, get_exception_filter): Do not take struct
+       function argument.
+       * Makefile.in (GTFILES): Put varargs before struct function.
+
+2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
+       punt for STRING_CST.
+       (get_constraint_for): Deal with STRING_CST here instead.
+
+2008-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-propagate.c (substitute_and_fold): Substitute
+       statements in a basic-block with a backward walk.  Do not
+       substitute into dead statements but instead remove those.
+
+2008-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
+       to zero, thus disable creation of SFTs.
+
+2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-predcom.c (suitable_reference_p): Return false if the
+       reference can throw.
+
+2008-04-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35751
+       * c-decl.c (finish_decl): If extern or static var has variable
+       size, set TREE_TYPE (decl) to error_mark_node.
+
+2008-04-15  Rafael Espindola  <espindola@google.com>
+
+       * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
+       variable arg1.
+
+2008-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
+       * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
+       (visit_reference_op_load): Do walk vuse-vdef chains on
+       vn_reference_lookup.
+       (visit_reference_op_store): But do not here.
+       * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
+       vn_reference_lookup.
+       (vn_lookup_with_vuses): But do so here.
+
+2008-04-14  Ian Lance Taylor  <iant@google.com>
+
+       * fold-const.c (fold_overflow_warning): Remove assertion.
+
+2008-04-15  Ben Elliston  <bje@au.ibm.com>
+
+       * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
+       temp1 local variables.
+
+2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
 
        PR target/35661
        * config/i386/winnt.c (i386_pe_section_type_flags): Mark
 
 2008-04-10  Rafael Espindola  <espindola@google.com>
 
-       * gcc/tree-vrp.c (extract_range_from_binary_expr): Don't handle
+       * tree-vrp.c (extract_range_from_binary_expr): Don't handle
        TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
        (extract_range_from_expr): The same.
 
 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
 
        * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
-       * gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
+       * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
        offsets for 64-bit mingw.
-       * gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
+       * config/i386/i386.c (ix86_pass_by_reference): Correct calling
        abi for x86_64-pc-mingw.
 
 2008-04-02  Richard Guenther  <rguenther@suse.de>
 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
            Anatoly Sokolov <aesok@post.ru>
 
-       * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
+       * config/avr/avr.c (avr_arch_types): Add avr6 entry.
        (avr_arch): Add ARCH_AVR6.
        (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
        (initial_elimination_offset): Initialize and use 'avr_pc_size' 
        (avr_assemble_integer): (Ditto.).
        (avr_output_addr_vec_elt): (Ditto.).
        (print_operand): Handle "!" code.
-       * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
+       * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
        __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
        (AVR_HAVE_EIJMP_EICALL): Define.
        (AVR_3_BYTE_PC): Redefine.
        (LINK_SPEC): Add atmega2560 and atmega2561.
        (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
        (crtm2561.o).
-       * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall 
+       * config/avr/avr.md (call_insn): Use eicall instead of icall 
        for 3 byte PC devices.
        (call_value_insn): (Ditto.).
        (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
        (*tablejump): (Ditto.).
        (*indirect_jump_avr6): Add insn.
        (*tablejump_rjmp): Don't use for 3 byte PC devices.
-       * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp 
+       * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
        instead of ijmp for 3 byte PC devices.
        (__tablejump2__): (Ditto.).
-       * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
+       * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
        (MULITLIB_DIRNAMES): (Ditto.). 
        (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.