X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=b29f8e654e64b422cb4251efaefb01c6b0c5ce1c;hb=0fffdebc73c679bf161c7205b8b2087347432150;hp=4589400a77a5dfcc8838b7ed5ac084ef0c7c4945;hpb=9519f67b7354793ab2f76f4e10b48b258e5d6d63;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4589400a77a..b29f8e654e6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,677 @@ +2007-03-28 Steven Bosscher + + * ifcvt.c (cond_exec_find_if_block): Return FALSE if no + transformations are applied successfully. + +2007-03-27 Douglas Gregor + + * tree.c (tree_contains_struct): Permit 512 tree codes. + * tree.h (tree_contains_struct): Ditto. + (MAX_TREE_CODES): Ditto. + (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add + SPARE member to store remaining padding bits. + +2007-03-27 Anatoly Sokolov + + * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' + architecture. + +2007-03-27 Janis Johnson + + * configure.ac: Fix assembler test for powerpc*-linux decimal float. + * configure: Regenerate. + + * configure: Regenerate using the correct version of autoconf. + +2007-03-27 Anatoly Sokolov + + * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack + pointer regs. + * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__" + regs to "__SP_L__" and "__SP_H__". + +2007-03-27 Richard Guenther + + * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and + computations with it with a HOST_WIDE_INT variable. + +2007-03-26 Mike Stump + + * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add + objective-c-header, objective-c++-header and objc++-cpp-output + support. + * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise. + +2007-03-26 Richard Henderson + + PR target/31361 + * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128, + IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128, + IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128, + IX86_BUILTIN_PSRLQ128): New. + (ix86_init_mmx_sse_builtins): Add them. + (ix86_expand_builtin): Expand them. + * config/i386/sse.md (ashr3, lshr3, ashl3): Make + operand 2 be TImode. + * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16, + _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32, + _mm_srli_epi64): Mark __B const. + (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions. + (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16, + _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use + new two-vector shift builtins. + +2007-03-26 Ian Lance Taylor + + PR tree-optimization/31345 + * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like + [+INF, +INF(OVF)] into VARYING. + +2007-03-26 Zack Weinberg + + * gengtype-parse.c: New file. + * gengtype-yacc.y: Delete. + * gengtype-lex.l: Don't include gengtype-yacc.h. + Define YY_DECL and yyterminate appropriately for recursive + descent parser. yylval is now a string out-parameter to yylex. + (HWS, EOID): New shorthand. + (IWORD): Add a couple more types. + (yylex): Add a setup stanza. Remove the complex rules for + detecting GTY'ed types and typedefs; replace with simple + keyword detectors. Adjust everything for the changed + definition of yylval. Ignore all pp-directives, not just #define. + (yyerror): Delete. + (parse_file): Rename yybegin; do not call yyparse. + (yyend): New. + * gengtype.c (xasprintf): Export again. + (this_file): New. Use everywhere __FILE__ was being used. + (get_lang_bitmap): Special case types defined in gengtype.c. + (do_typedef, new_structure): Suppress definition of certain types. + (new_structure): Improve diagnostics of duplicate definitions. + Make sure location_s is associated with input.h. + (nreverse_pairs, define_location_structures): New functions. + (main): Improve tagging of kludge types. Remove old kludges + for input.h types; use define_location_structures. + * gengtype.h: Update prototypes. Define token codes here. + * Makefile.in: Remove all references to gengtype-yacc. + Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o + and gengtype. + * bitmap.h (struct bitmap_head_def): Coalesce definitions, + add GTY((skip)) to the field that's only conditionally there. + * doc/install.texi: Document that Bison is no longer required + unless building treelang. + + * gengtype.c: Don't include gtyp-gen.h. + (srcdir): Declare here. + (base_files, lang_dir_names): Allocate dynamically. + (gt_files, num_gt_files, num_lang_dirs): New globals. + (measure_input_list, read_input_line, read_input_list) + (set_lang_bitmap): New functions. + (get_base_file_bitmap): Rename get_lang_bitmap and drastically + simplify, relying on read_input_list to set up the bitmaps. + (main): Arguments are no longer unused. Check for correct number + of command line arguments, set srcdir and srcdir_len, then call + read_input_list, before doing anything else. No need to worry + about duplicates in main loop. + * configure.ac: Simplify the calculation of all_gtfiles. + Put language tags in there. Don't set or substitute + all_gtfiles_files_langs or all_gtfiles_files_frags. + * Makefile.in: Revamp the way gengtype is invoked, now that it + takes a file on its command line with a much simpler format. + Remove or replace with gtyp-input.list all references to gtyp-gen.h. + (GTFILES): Remove duplicates and C source files. + * c-config-lang.in, cp/config-lang.in, objc/config-lang.in + * objcp/config-lang.in: Add c-pragma.h to gtfiles. + * configure: Regenerate. + + * gengtype.h: Remove all type definitions to gengtype.c; leave + only definitions of options_p, type_p, and pair_p as opaque + pointers. Update prototypes. + * gengtype.c: Many type definitions moved here from gengtype.h. + Consolidate type definitions at the top of the file. + (xvasprintf): Delete. + (xasprintf): Make static. + (create_nested_pointer_option): Add 'next' parameter. + (create_field_all, create_field_at): New functions. + (create_field): Now a thin wrapper around create_field_all. + (create_optional_field): Rename create_optional_field_ and add + line argument. Original name is now a macro which supplies + __LINE__. + (oprintf): Use vsnprintf directly. + (close_output_files): Use fatal rather than perror/exit. + (note_def_vec, note_def_vec_alloc): Use create_field_at. + (main): Set progname. Don't use exit. + * gengtype-yacc.y (struct_fields): Use create_field_at. + (option, optionseqopt): Delete. + (optionseq): Consolidate productions from option here so we + can use the first argument to create_option. + + * gengtype-lex.l: Distinguish unions from structures in the + token type. Don't call find_structure; return the tag as a string. + * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION. + Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string. + Reorganize typedef_struct production accordingly. + Use create_nested_ptr_option. + * gengtype.c (create_nested_ptr_option): New function. + * gengtype.h: Declare it. + + * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char. + (string_type): Don't declare. + (do_scalar_typedef): Declare. + (create_scalar_type): Update prototype. + * gengtype.c (string_type): Make static. + (scalar_nonchar, scalar_char): New. + (do_scalar_typedef): Export. Always use scalar_nonchar for the type. + (resolve_typedef): Use scalar_nonchar for error recovery. + (create_scalar_type): Remove name_len field. Return scalar_char + or scalar_nonchar as appropriate. + (adjust_field_type): Look at scalar_is_char boolean to decide whether + to use string_type. + (throughout): Use scalar_nonchar instead of calling create_scalar_type, + whenever possible. + (main): Initialize scalar_char and scalar_nonchar before calling + gen_rtx_next. + * gengtype-lex.l: Adjust for removal of second argument to + create_scalar_type. Use yylval.s instead of yylval.t when + returning SCALAR. + * gengtype-yacc.y: Type of SCALAR is string. Call + create_scalar_type from type:SCALAR rule. Adjust for removal of + second argument to create_scalar_type. + + * vec.h: Remove all #if IN_GENGTYPE blocks. + Add comment saying that changes may require adjustments to gengtype. + * gengtype.c: Don't include coretypes.h or tm.h. + Add comment to inclusion of errors.h. + (note_def_vec, note_def_vec_alloc): New functions. + * gengtype.h: Declare new functions. + * gengtype-lex.l: Don't include coretypes.h. + (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name): + Delete. + (update_lineno): Remove unnecessary prototype. + (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc. + (VEC rule): Just return VEC_TOKEN. + * gengtype-yacc.y (VEC_TOKEN): New token type. + (type): Add a production for VEC(a,b). + * Makefile.in: Update dependencies. + + * gengtype-lex.l: Remove rules for parsing pointer-to-function + typedefs that use the old PARAMS macro. + + * gengtype-lex.l: Remove all rules and states relating to yacc + input files. + * gengtype-yacc.y: Similarly. + * gengtype.c (note_yacc_type): Delete function. + * gengtype.h: Update prototypes. + +2007-03-26 Joseph Myers + + * tree-pretty-print.c (dump_generic_node): Report precision of + unnamed integer types. + +2007-03-26 Steven Bosscher + + * ifcvt.c (noce_try_store_flag_constants): Don't check + no_new_pseudos here. + (noce_try_store_flag_constants): Don't check no_new_pseudos. + (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith, + noce_try_cmove_arith, noce_try_minmax, noce_try_abs, + noce_try_sign_mask): Likewise. + (if_convert): Check no_new_pseudos here. + + (cond_exec_process_if_block, noce_process_if_block, find_if_block): + Remove prototypes. + (struct noce_if_info): Add then_bb, else_bb, join_bb members. + (noce_get_condition): Handle new then_else_reversed argument. + (noce_init_if_info): Remove, fold into noce_find_if_block. + (noce_process_if_block): Take a struct noce_if_info as the + argument. Don't set up one based on ce_if_info. Update pointer + references accordingly. + (cond_move_process_if_block): Likewise. + (process_if_block): Removed. + (find_if_block): Removed. Move functionality two new functions, + noce_find_if_block and cond_exec_find_if_block. + (noce_find_if_block): New function. Be aware of IF-THEN-JOIN + blocks and the symmetric IF-ELSE-JOIN case. + (cond_exec_find_if_block): Also new function mostly based on old + find_if_block and process_if_block. + (find_if_header): Replace find_if_block call with separately + guarded calls to noce_find_if_block and cond_exec_find_if_block. + (find_cond_trap): Update noce_get_condition call. + (dead_or_predicable): Likewise. + +2007-03-26 Jakub Jelinek + + * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD): + Remove. + (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, + IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, + IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove. + (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and + v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128, + __builtin_ia32_pslld128, __builtin_ia32_psllq128, + __builtin_ia32_psrlw128, __builtin_ia32_psrld128, + __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and + __builtin_ia32_psrad128 builtins. + +2007-03-26 Uros Bizjak + + * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert(). + * config/i386/constraints.md + (define_constraint "I"): Use IN_RANGE macro. + (define_constraint "J"): Ditto. + (define_constraint "K"): Ditto. + (define_constraint "M"): Ditto. + (define_constraint "N"): Ditto. + (define_constraint "O"): Ditto. + * config/i386/predicates.md + (define_predicate "register_no_elim_operand"): Use IN_RANGE macro. + (define_predicate "const_0_to_3_operand"): Ditto. + (define_predicate "const_0_to_7_operand"): Ditto. + (define_predicate "const_0_to_15_operand"): Ditto. + (define_predicate "const_0_to_63_operand"): Ditto. + (define_predicate "const_0_to_255_operand"): Ditto. + (define_predicate "const_1_to_31_operand"): Ditto. + (define_predicate "const_2_to_3_operand"): Ditto. + (define_predicate "const_4_to_7_operand"): Ditto. + +2007-03-25 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR + in SImode for save_world. + * config/rs6000/altivec.md (save_world, restore_world): Convert to + LR hard reg. + +2007-03-25 Dorit Nuzman + + PR tree-optimization/30784 + * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case + BIT_FIELD_REF. + +2007-03-25 Revital Eres + + * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): + Fold movement_possibility function into it. + +2007-03-25 David Edelsohn + + * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0. + (load_macho_picbase_{si,di}): Convert to LR hard reg. + (call_indirect_nonlocal_darwin64): Same. + (call_nonlocal_darwin64): Same. + (call_value_indirect_nonlocal_darwin64): Same. + (call_value_nonlocal_darwin64): Same. + (sibcall_nonlocal_darwin64): Same. + (sibcall_value_nonlocal_darwin64): Same. + (sibcall_symbolic_64): Same. + (sibcall_value_symbolic_64): Same. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove + LR pseudo. + (rs6000_emit_load_toc_table): Same. + * config/rs6000/altivec.md (restore_world): Convert to LR hard reg. + * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg. + (mull_call): Same. + (divss_call): Same. + (divus_call): Same. + (quoss_call): Same. + (quous_call): Same. + (load_toc_v4_pic_si): Same + (load_toc_v4_PIC_1): Same. + (load_toc_v4_PIC_1b): Same. + (call_indirect_aix{32,64}): Same. + (call_value_indirect_aix{32,64}): Same. + (call): Same. + (call_value): Same. + (call_local{32,64}): Same. + (call_value_local{32,64}): Same. + (call_indirect_nonlocal_aix{32,64}): Same. + (call_nonlocal_aix{32,64}): Same. + (call_value_indirect_nonlocal_aix{32,64}): Same. + (call_value_nonlocal_aix{32,64}): Same. + (call_indirect_nonlocal_sysv): Same. + (call_nonlocal_sysv): Same. + (call_value_indirect_nonlocal_sysv): Same. + (call_value_nonlocal_sysv): Same. + (sibcall): Same. + (sibcall_local{32,64}): Same. + (sibcall_value_local{32,64}): Same. + (sibcall_nonlocal_aix{32,64}): Same. + (sibcall_value_nonlocal_aix{32,64}): Same. + (sibcall_nonlocal_sysv): Same. + (sibcall_value): Same. + (sibcall_value_nonlocal_sysv): Same. + +2007-03-24 Paul Brook + + * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push. + * config/arm/linux-eabi.h: Remove legacy syscall hack. + +2007-03-24 Richard Henderson + + * config/ia64/constraints.md: New file. + * config/ia64/predicates.md: Replace CONST_OK_FOR_? with + satisfies_constraint_?. + * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p, + ia64_reload_gp, spill_restore_mem, ia64_expand_prologue, + ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs, + ia64_output_mi_thunk): Likewise. + (ia64_const_ok_for_letter_p): Remove. + (ia64_const_double_ok_for_letter_p): Remove. + (ia64_extra_constraint): Remove. + * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, + CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P, + CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G, + CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT, + EXTRA_MEMORY_CONSTRAINT): Remove. + * config/ia64/ia64.md: Include constriants.md. Replace + CONST_OK_FOR_? with satisfies_constraint_?. + +2007-03-23 Michael Meissner + H.J. Lu + + * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the + DPD or BID name. + (name macros): Use DPD_BID_NAME to convert names properly. + + * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current + decimal floating point format. + (init_floating_libfuncs): Change decimal functions so that they + have a "bid_" prefix if the decimal system uses the BID format, + and "dpd_" prefix if the decimal system uses the DPD format. + (init_interclass_conv_libfuncs): Ditto. + (init_intraclass_conv_libfuncs): Ditto. + + * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are + using the BID format. + + * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say + whether we are using the BID decimal format. + * configure: Regenerate. + + * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if + the compiler has decimal floating point enabled. Define + __DECIMAL_BID_FORMAT__ if BID decimal floating point is used + instead of DPD. + + * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are + using the BID format. + + * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say + whether we are using the BID decimal format. + * configure: Regenerate. + + * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if + the compiler has decimal floating point enabled. Define + __DECIMAL_BID_FORMAT__ if BID decimal floating point is used + instead of DPD. + + * doc/install.texi (--enable-decimal-float): Document BID and DPD + options, and that it is enabled for i386/x86_64 systems. + + * Makefile.in (enable_decimal_float): New. + (DECNUMFMT): New. + (DECNUMINC): Add -I$(DECNUMFMT). + (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h + to $(DECNUMFMT) from $(DECNUM). + + * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}. + Substitute enable_decimal_float. + * configure: Regenerated. + + PR other/30529 + * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of + unsigned long. + + * configure.ac: Enable decimal float for x86_64-*-linux*. + * configure: Regenerated. + + PR other/30530 + * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and + decimal128ClearSign to flip and clear the sign bit in decimal128. + (decimal_real_maxval): Set decimal128SetSign to set the sign + bit in decimal128. + +2007-03-23 Ian Lance Taylor + + * fold-const.c (fold_binary): Correct warning for X - c >= X. + +2007-03-23 Ian Lance Taylor + + * tree-dump.c (dump_files): Correct comment. + +2007-03-23 Ian Lance Taylor + + * tree-vrp.c (operand_less_p): Ignore fold overflow warnings. + +2007-03-23 Steven Bosscher + + * tracer.c (tracer): Don't take FLAGS argument. Assert we are + in cfglayout mode. Don't go into and out of cfglayout mode. + Link the blocks in the order of the constructed traces. + (rest_of_handle_tracer): Adjust call to tracer. + * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode. + Don't go into cfglayout mode. + (rtl_loop_done): Don't go out of cfglayout mode. + * cfglayout.c (relink_block_chain): New function, split out from... + (fixup_reorder_chain): ...here. Remove redundant checking. + (cfg_layout_finalize): Don't clear the header, footer, and aux + fields here, move the code to do so to relink_block_chain. Likewise + for free_original_copy_tables. + * rtl.h (tracer): Update prototype. + * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument. + Assert we are in cfglayout mode. Don't go into and out of cfglayout + mode. Use relink_block_chain to serialize the CFG according to the + new basic block order. Move targetm.cannot_modify_jumps_p check from + here... + (gate_handle_reorder_blocks): ...to here. + (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check + from here... + (gate_duplicate_computed_gotos): ...to here. + (rest_of_handle_reorder_blocks): Don't see if anything has changed, + something always changes when going into and out of cfglayout mode. + Perform an expensive cfg cleanup while going into cfglayout mode. + Always update liveness information on HAVE_conditional_execution + targets. Reserialize the basic blocks and go out of cfglayout mode. + * reg-stack.c: Include cfglayout.h. + (rest_of_handle_stack_regs): Go into and out of cfglayout mode around + the call to reorder_basic_blocks. + * basic-block.h (reorder_basic_blocks): Update prototype. + (relink_block_chain): New prototype. + * passes.c (pass_outof_cfg_layout_mode): Move after cse2. + +2007-03-23 Joseph Myers + + * config/mips/mips.md (type, hazard, *movdi_32bit, + *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc, + *movhi_internal, *movqi_internal, *movsf_hardfloat, + *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat, + movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high, + mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as + applicable. + (movcc): Change first xfer to multi. + * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md, + config/mips/5000.md, config/mips/5400.md, config/mips/5500.md, + config/mips/5k.md, config/mips/7000.md, config/mips/9000.md, + config/mips/generic.md: Change reservations using "xfer" to use + "mfc,mtc". + * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of + using match_operand. + (ir_sb1_mfxfer): Use "mfc" instead of using match_operand. + * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of + examining mode. + (ir_sr70_xfer_to): Use "mtc" instead of examining mode. + +2007-03-22 Richard Henderson + + * config/i386/i386.c: Remove unnecessary function declarations. + Move targetm definition, and all related macros, to the end of + the file. Resort some functions to put definitions before uses. + (ix86_attribute_table): Make static. Move to end of file. + (ix86_gimplify_va_arg): Make static. + +2007-03-22 Richard Henderson + + * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit; + don't increase local_regparm with force_align_arg_pointer check. + (ix86_function_sseregparm): Assert 32-bit. + (type_has_variadic_args_p): New. + (ix86_return_pops_args): Early exit for 64-bit. Reindent; use + type_has_variadic_args_p. + (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax. + (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum; + use memset instead. Do maybe_vaarg check first; skip attribute + tests if true; skip attribute tests for 64-bit. + (construct_container): Remove TARGET_DEBUG_ARG. + (function_arg_advance_32, function_arg_advance_64): Split out ... + (function_arg_advance): ... from here. + (function_arg_32, function_arg_64): Split out ... + (function_arg): ... from here. + (ix86_pass_by_reference): Tidy. + (ix86_function_value_regno_p): Rearrange w/ switch on regno. + (function_value_32): New, from parts of ix86_function_value + and ix86_value_regno. + (function_value_64): New, from parts of ix86_function_value + and ix86_libcall_value. + (ix86_function_value_1): New. + (ix86_function_value, ix86_libcall_value): Use it. + (return_in_memory_32, return_in_memory_64): Split out ... + (ix86_return_in_memory): ... from here. + (ix86_struct_value_rtx): Skip for 64-bit. + (ix86_libcall_value, ix86_value_regno): Remove. + (setup_incoming_varargs_64): Split out ... + (ix86_setup_incoming_varargs): ... from here. + (ix86_va_start): Remove TARGET_DEBUG_ARG. + (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR. + * config/i386/i386-protos.h (ix86_function_value): Remove. + * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove. + +2007-03-22 Manuel Lopez-Ibanez + + PR other/23572 + * c-lex.c (interpret_float): On overflow, emit pedantic warning if + infinities not supported, otherwise emit warning if -Woverflow. On + underflow, emit warning if -Woverflow. + * real.c (real_from_string): Return -1 if underflow, +1 if overflow + and 0 otherwise. + * real.h (real_from_string): Update declaration + +2007-03-22 Kai Tietz + Richard Henderson + + * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default. + * calls.c (compute_argument_block_size, expand_call, + emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE. + * expr.c (block_move_libcall_safe_for_call_parm): Likewise. + * function.c (STACK_DYNAMIC_OFFSET): Likewise. + * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update. + * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h, + config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h, + config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h, + config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE): + Set to 1. + +2007-03-22 Joseph Myers + + * c-incpath.c (add_sysroot_to_chain): New. + (merge_include_chains): Add sysroot argument. Call + add_sysroot_to_chain if sysrooted. + (register_include_chains): Update call to merge_include_chains. + * doc/cppopts.texi: Document use of '=' in include directory + arguments. + +2007-03-22 Uros Bizjak + + * config/i386/i386.md (cmp): Rename from cmpsf and cmpdf. + Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P. + (*cmpfp_): Rename from *cmpfp_sf and *cmpfp_df. Macroize + insn pattern using X87MODEF12 mode macro. + +2007-03-21 Seongbae Park + + * regmove.c (regmove_optimize): Use reg_mentioned_p + instead of reg_overlap_mentioned_p for DST. + +2007-03-21 Mike Stump + + * c.opt: Fixup for Objective-C/C++. + +2007-03-21 Steve Ellcey + + * explow.c (convert_memory_address): Fold memory reference when + POINTERS_EXTEND_UNSIGNED < 0 + +2007-03-21 Richard Henderson + + PR target/31245 + * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias. + * config/i386/mmintrin.h (__m64): Likewise. + * config/i386/xmmintrin.h (__m128): Likewise. + +2007-03-21 Richard Sandiford + + * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options. + (VXWORKS_OS_CPP_BUILTINS): Define. + * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into... + (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS. + +2007-03-21 Richard Sandiford + + * rtl.h (constant_pool_reference_p): Delete. + (find_constant_src): Declare. + * rtlanal.c (find_constant_src): New function. + * simplify-rtx.c (constant_pool_reference_p): Delete. + * config/i386/i386.md: Use find_constant_src instead of + constant_pool_reference_p/avoid_constant_pool_reference pairs. + +2007-03-21 Richard Sandiford + + * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__. + * c-cppbuiltin.c (c_cpp_builtins): Define them. + +2007-03-20 Mark Mitchell + + * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define. + * config/arm/arm.c (arm_elf_asm_cdtor): New function. + (arm_elf_asm_constructor): Use it. + (arm_elf_asm_destructor): New function. + +2007-03-20 Bernd Schmidt + + * jump.c (mark_jump_label): Treat SEQUENCE specially. + +2007-03-20 Nathan Sidwell + + * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks. + +2007-03-19 Andrew Haley + + PR tree-optimization/31264 + * tree-vrp.c (register_edge_assert_for_1): Don't look though + VIEW_CONVERT_EXPRs. + +2007-03-19 Paolo Bonzini + + PR rtl-optimization/30907 + * fwprop.c (forward_propagate_into): Never propagate inside a loop. + (fwprop_init): Always call loop_optimizer_initialize. + (fwprop_done): Always call loop_optimizer_finalize. + (fwprop): We always have loop info now. + (gate_fwprop_addr): Remove. + (pass_fwprop_addr): Use gate_fwprop as gate. + + PR rtl-optimization/30841 + * df-problems.c (df_ru_local_compute, df_rd_local_compute, + df_chain_alloc): Call df_reorganize_refs unconditionally. + * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change + refs_organized to refs_organized_size. + (df_ref_create_structure): Use refs_organized_size instead of + bitmap_size if refs had been organized, and keep refs_organized_size + up-to-date. + * df.h (struct df_ref_info): Change refs_organized to + refs_organized_size. + (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of + bitmap_size. + 2007-03-19 Mark Mitchell * except.c (output_function_exception_table): Do not reference the @@ -51,11 +725,11 @@ (xde, xdee): Mode attributes adjusted to support DFP modes. (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added. ("cmp", "*cmp_css_0", "*cmp_ccs", TF move splitters, - DF move splitters, "floatdi2", "add3", "*add3", + DF move splitters, "floatdi2", "add3", "*add3", "*add3_cc", "*add3_cconly", "sub3", "*sub3", "*sub3_cc", "*sub3_cconly", "mul3", "*mul3", "div3", "*div3", "*neg2_nocc", "*abs2_nocc", - "*negabs2_nocc", "copysign3"): Adjusted to support DFP + "*negabs2_nocc", "copysign3"): Adjusted to support DFP numbers. ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31", "movsf"): Insn definitions removed. @@ -131,7 +805,7 @@ Update move patterns. * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and TYPE_FPSTORE. - + 2007-03-18 Dorit Nuzman * tree-vect-transform.c (get_initial_def_for_induction): Replace @@ -146,14 +820,14 @@ (value_dies_in_block_x): Update for rvuse removal. (valid_in_sets): Update for renaming of vuses_dies_in_block_x. (compute_antic_aux): Handle when PHI nodes appear in - non-single-successors. + non-single-successors. (dump_bitmap_of_names): Removed. (compute_antic_safe): Renamed and removed rvuse calculation. Calculate only antic safe. (insert_into_preds_of_block): Remove assert. (execute_pre): Update for renamed functions. (defer_or_phi_translate_block): New function. - + 2007-03-17 Kazu Hirata * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c, @@ -169,9 +843,9 @@ PR tree-optimization/31041 * tree-vect-transform.c (get_initial_def_for_induction): Call force_gimple_operand. - + 2007-03-17 Olga Golovanevsky - + * ipa-type-escape.c (look_for_casts) : Revert code to use handled_component_p due to ada test a-numaux.adb. @@ -191,7 +865,7 @@ * c-common.c (convert_and_check): Move warning logic to... (warnings_for_convert_and_check): ...here. Define. * c-common.h (warnings_for_convert_and_check): Declare. - + 2007-03-16 John David Anglin * pa.c (attr_length_call): Partially revert change of 2007-03-09. @@ -213,7 +887,7 @@ 2007-03-16 Sebastian Pop PR tree-optimization/31183 - * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): + * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): Use double_int instead of unsigned int for representing access_strides. * testsuite/gcc.dg/tree-ssa/pr31183.c: New. @@ -289,7 +963,7 @@ * c-opts.c (c_common_post_options): Handle C++ post-processing here. Set also -pedantic-errors by default for the preprocessor unless -fpermissive is given. - + 2007-03-15 Richard Guenther PR middle-end/29719 @@ -361,7 +1035,7 @@ (TUNE_MOVE_M1_VIA_OR): Ditto. (TUNE_NOT_UNPAIRABLE): Ditto. (TUNE_NOT_VECTORMODE): Ditto. - + * config/i386/i386.c (ix86_tune_features): Fill in new tuning options. @@ -490,7 +1164,7 @@ PR target/31123 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for two unamed patterns. - + 2007-03-13 Uros Bizjak * config/i386/i386.opt (mcx16, msahf): New options. @@ -596,22 +1270,22 @@ elfos.h to tm_file. 2007-03-12 Olga Golovanevsky - + * tree.h : Add multiple_of_p declaration. - * fold-const.c (multiple_of_p): Make multiple_of_p public. + * fold-const.c (multiple_of_p): Make multiple_of_p public. * ipa-type-escape.c (results_of_malloc): Redundant. (visited_stmts): New. Visited stmt for walk_use_def_chains. (cast_type): Extended with new members. (check_cast): Returns cast_type. (cast): New structure for data of walk_use_def_chains. (is_malloc_result, is_cast_from_non_pointer_1, - is_cast_from_non_pointer, + is_cast_from_non_pointer, is_array_access_through_pointer_and_index): New functions. (look_for_casts): Returns cast types. (check_call): Returns void. (okay_pointer_operation): Use support of pointer plus index, pointer plus constant and allow all multiplications. - + 2007-03-11 Richard Guenther PR tree-optimization/31115 @@ -628,7 +1302,7 @@ 2007-03-11 Ira Rosen - * tree-data-ref.c (analyze_offset): Add a return value (bool) to + * tree-data-ref.c (analyze_offset): Add a return value (bool) to indicate success/failure of the analysis. Add negation to subtrahend in case of subtraction. Fail if both operands contain constants. (create_data_ref): Fail if analyze_offset fails. @@ -867,30 +1541,30 @@ * doc/loop.texi: Document the Omega linear constraints solver. * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars, - omega-max-geqs, omega-max-eqs, omega-max-wild-cards, - omega-hash-table-size, omega-max-keys, and + omega-max-geqs, omega-max-eqs, omega-max-wild-cards, + omega-hash-table-size, omega-max-keys, and omega-eliminate-redundant-constraints. * tree-pass.h (pass_check_data_deps): Declared. * omega.c: New. * omega.h: New. * timevar.def (TV_CHECK_DATA_DEPS): Declared. - * tree-ssa-loop.c (check_data_deps, gate_check_data_deps, + * tree-ssa-loop.c (check_data_deps, gate_check_data_deps, pass_check_data_deps): New. * tree-data-ref.c (init_data_ref): Remove declaration. (dump_data_dependence_relation): Dump DDR_INNER_LOOP. (analyze_array): Renamed init_array_ref, move up initializations. (init_data_ref): Renamed init_pointer_ref. Moved before its call. Removed arguments that are set to NULL. - (analyze_indirect_ref): Correct indentation, correct call to + (analyze_indirect_ref): Correct indentation, correct call to init_pointer_ref. (object_analysis): Call init_array_ref instead of analyze_array. (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP. (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead of DR_ACCESS_FNS_ADDR. - (init_omega_eq_with_af, omega_extract_distance_vectors, + (init_omega_eq_with_af, omega_extract_distance_vectors, omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr, ddr_consistent_p): New. - (compute_affine_dependence): Check consistency of ddrs when + (compute_affine_dependence): Check consistency of ddrs when flag_check_data_deps is passed. (analyze_all_data_dependences): Uncomment. (tree_check_data_deps): New. @@ -904,7 +1578,7 @@ (OBJS-common): Depend on omega.o. (omega.o): Define. * passes.c (pass_check_data_deps): Scheduled. - * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, + * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS, PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, PARAM_VECT_MAX_VERSION_CHECKS, @@ -979,7 +1653,7 @@ * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl, llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with ATTR_CONST_NOTHROW_LIST. - + * fold-const.c (tree_expr_nonnegative_warnv_p): Handle FIX_TRUNC_EXPR. @@ -1080,7 +1754,7 @@ expanding sahf based alternative. Emit sahf based sequence when optimizing for code size. * config/i386/i386.md (x86_sahf_1): Do not disable for - TARGET_64BIT, enable for TARGET_SAHF. + TARGET_64BIT, enable for TARGET_SAHF. 2007-03-08 Martin Michlmayr @@ -1179,7 +1853,7 @@ 2007-03-06 Anatoly Sokolov * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P, - ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 + ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 devices. * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). @@ -1252,13 +1926,13 @@ x86_branch_hints, x86_use_sahf, x86_partial_reg_stall, x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify, - x86_split_long_moves, x86_promote_QImode, x86_fast_prefix, + x86_split_long_moves, x86_promote_QImode, x86_fast_prefix, x86_single_stringop, x86_qimode_math, x86_promote_qi_regs, x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8, - x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, - x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, x86_prologue_using_move, x86_epilogue_using_move, x86_shift1, - x86_sse_partial_reg_dependency, x86_sse_split_regs, + x86_sse_partial_reg_dependency, x86_sse_split_regs, x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec, x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit, @@ -1292,7 +1966,7 @@ x86_epilogue_using_move, x86_decompose_lea, x86_arch_always_fancy_math_387, x86_shift1, x86_sse_partial_reg_dependency, x86_sse_split_regs, - x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, + x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves, x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd, x86_use_incdec, x86_pad_returns, x86_bswap, @@ -1516,7 +2190,7 @@ in soft-float DFmode pattern. (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard floating register. - (movsf): Likewise. + (movsf): Likewise. 2007-03-05 Mike Stump @@ -1609,7 +2283,7 @@ PR other/30465 * c-common.c (convert_and_check): Don't give warnings for conversion if 'expr' already overflowed. - + 2007-03-04 Roger Sayle PR middle-end/30744