X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=94ff58edb3bbedec3f0b5d5c3b17ee71dffdb49f;hp=dee50272970646005460eed13791c5740fc48b03;hb=6a0106e800ffdc12c11d511d930005416b5a6c48;hpb=650222b0389a1170bfadad5765572a17396e4567 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dee50272970..94ff58edb3b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,847 @@ +2007-12-18 Sebastian Pop + + PR tree-optimization/34123 + * lambda-code.c (can_duplicate_iv): New. + (cannot_convert_modify_to_perfect_nest): New. + (cannot_convert_bb_to_perfect_nest): New. + (can_convert_to_perfect_nest): Split up. + +2007-12-18 David Daney + + * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation + instead of .set push and .set pop. + +2007-12-18 Rask Ingemann Lambertsen + + PR target/33474 + * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find + the SET. + +2007-12-18 Razya Ladelsky + + * tree-parloops.c (reduiction_info): Change documentation of + reduction_initial field. + (initialize_reductions): Remove creation of reduction_initial + variable. + (create_loads_for_reductions): don't join reduction_initial to + the loaded value. + +2007-12-18 Kaz Kylheku + + PR rtl-optimization/34456 + * resource.c (mark_set_resources): Use regs_invalidated_by_call + rather than call_used_regs and global_regs. + +2007-12-18 Jakub Jelinek + + PR rtl-optimization/34490 + * simplify-rtx.c (simplify_const_relational_operation): If !sign, + don't reduce mmin/mmax using num_sign_bit_copies. + +2007-12-17 Kaveh R. Ghazi + + * doc/install.texi: Change recommended MPFR from 2.2.1 > 2.3.0. + +2007-12-17 Andreas Schwab + + * doc/invoke.texi (Warning Options): Use @itemx. + +2007-12-17 Dorit Nuzman + + * tree-vectorizer.h (verbosity_levels): Add new verbosity level + REPORT_COST. + * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change + verbosity level to REPORT_COST. + (vect_model_reduction_cost): Likewise. + (vect_model_induction_cost): Likewise. + (vect_model_simple_cost): likewise. + (vect_model_store_cost): likewise. + (vect_model_load_cost): likewise. + (conservative_cost_threshold): Likewise. Remove print. + +2007-12-17 Rask Ingemann Lambertsen + + * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos. + +2007-12-17 Jakub Jelinek + + PR c/34506 + * c-parser.c (c_parser_omp_all_clauses): Accept optional comma + in between clauses. + +2007-12-17 Dorit Nuzman + + PR tree-optimization/34445 + * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip + stmts (including live stmts) that are not relevant. + +2007-12-17 Jack Howarth + + PR target/34025 + * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS). + * config/i386/t-crtfm: Likewise. + +2007-12-17 Uros Bizjak + + * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define. + +2007-12-16 Uros Bizjak + + * tree-vect-transform.c (conservative_cost_threshold): Add missing + space to "not vectorized" message. + +2007-12-16 Richard Sandiford + + PR rtl-optimization/34415 + * df.h (DF_LR_IN, DF_LR_OUT): Update comments. + * resource.c (mark_target_live_regs): Use DF_LR_IN rather than + df_get_live_in. Don't handle pseudos. + +2007-12-16 Jakub Jelinek + + PR bootstrap/34003 + * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl. + * config/pa/pa.c (pa_encode_section_info): If !first, preserve + SYMBOL_FLAG_REFERENCED flag. + +2007-12-15 Alexandre Oliva + + * tree.c (type_hash_add): Fix whitespace. + +2007-12-15 Hans-Peter Nilsson + + Add CRIS v32 support. Fix -mcc-init. + * config.gcc: Make crisv32-* have cpu_type cris. Handle + crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none + but without multilibs and with target_cpu_default=32. + (crisv32-*-linux*): Handle as cris-*-linux*. Set + target_cpu_default to 32 and 10 accordingly. + * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro. + (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME. + Change regno_dir and regno only if !TARGET_V32. + (cris_conditional_register_usage): If TARGET_V32, set + reg_alloc_order as per REG_ALLOC_ORDER_V32 and make + CRIS_ACR_REGNUM non-fixed. + (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM. + (cris_print_operand) : New cases. + : Allow for CRIS_SRP_REGNUM. + (cris_reload_address_legitimized): Always return false for TARGET_V32. + (cris_register_move_cost): New function, guts from + REGISTER_MOVE_COST adjusted for CRIS v32. + (cris_normal_notice_update_cc): New function split out from... + (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for + TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV, + CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW + for CC_NOOV32 and TARGET_V32. + (cris_simple_epilogue): Always return false for TARGET_V32 if + cris_return_address_on_stack yields true. + (cris_cc0_user_requires_cmp): New function. + (cris_valid_pic_const): Add argument ANY_OPERAND. All callers + changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL. + (cris_asm_output_case_end): New function, guts from + ASM_OUTPUT_CASE_END adjusted for CRIS v32. + (cris_override_options): Adjust for CRIS v32. Mask out + TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32. + (cris_asm_output_mi_thunk, cris_expand_epilogue) + (cris_gen_movem_load, cris_emit_movem_store) + (cris_expand_pic_call_address, cris_asm_output_symbol_ref) + (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust + for CRIS v32. + (cris_split_movdx): Copy re-used MEM. + * config/cris/t-elfmulti: Add multilib v32 for -march=v32. + * config/cris/predicates.md + ("cris_general_operand_or_pic_source"): New predicate. + ("cris_general_operand_or_plt_symbol"): Replace by... + ("cris_nonmemory_operand_or_callable_symbol"): New predicate. + * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for + presence and contents. + (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for + v32, 0 otherwise. + (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC, + CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT. + (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH. + * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents. + (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT) + (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros. + (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use + CRIS_DEFAULT_TUNE. + (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT. + (ASM_SPEC): Add sanity-check erroring out when both -march= and + -mcpu= are specified. Pass on either as --march=v32. + (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are + specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION. + (CRIS_CPU_V32): New macro. + [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE. + [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default + TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition. + Define v32-adjusted TARGET_DEFAULT. + (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from + CRIS_CPU_BASE. + (TARGET_V32): New macro. + (REG_ALLOC_ORDER_V32): New macro. + (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes + into CRIS_ACR_REGNUM. + (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS + and SPEC_GENNONACR_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes. + (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM. + (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC + GENNONACR_REGS, BASE_REG_CLASS otherwise. + (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC + for CRIS_ACR_REGNUM. + (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred. + (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO. + (EXTRA_CONSTRAINT): New constraint 'U'. + (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE) + (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32. + (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM. + (SIMPLE_ADDRESS_P): Remove. + (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant + SIMPLE_ADDRESS_P. Make one chained if-else, finishing as + non-match after BASE_OR_AUTOINCR_P for TARGET_V32. + (REGISTER_MOVE_COST): Just call the new function + cris_register_move_cost. + (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to + cris_rel_symbol. All users changed. + (REGISTER_NAMES): Replace "pc" with "acr". + (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15. + (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence. + (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax. + (ASM_OUTPUT_CASE_END): Just call the new function + cris_asm_output_case_end. + * gcc/config/cris/cris.md: Group related constants together, with + comments local. + (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL) + (CRIS_UNSPEC_CASESI): New constants. + (CRIS_UNSPEC_PLT): Remove constant. + (CRIS_ACR_REGNUM): New constant. + ("slottable"): New attr alternatives "has_return_slot" and + "has_call_slot". + ("cc"): New attr alternatives "noov32" and "rev". + ((eq_attr "slottable" "has_call_slot")) + ((eq_attr "slottable" "has_return_slot")): New define_delays. + ("movdi", "movsi"): Adjust operands for CRIS v32. + ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3") + ("indirect_jump"): Ditto. Make define_expand. + ("*tstdi_non_v32", "*tstdi_v32", "*tst_cmp") + ("*tst_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32") + ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32") + ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32") + ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32") + ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32") + ("*subsi3_v32", "*sub3_nonv32", "*sub3_v32") + ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32") + ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32") + ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32") + ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32") + ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns, + for the corresponding standard name. + ("tst"): Limit to BW and make define_expand. + ("tstsi"): Make separate insn, adjusting for CRIS v32. + ("*cmp_swapext"): Adjust for v32. Specify "rev" for attr "cc". + ("cmpsi", "cmp"): Remove special cases for zero. Specify + attr "cc". + ("*btst"): Don't match for TARGET_CCINIT. Replace test of + register with compatible "cmpq 0". Specify attr "cc". + ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and + define_split. + (define_split for DI move): Match CRIS v32 only. + ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32. + ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32") + ("*adds_v32", "*addu_v32", "*bound_v32") + ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32") + ("*extopsi_v32", "*extopqihi_v32", "*andhi_lowpart_v32") + ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns. + ("add3"): Make addsi3, addhi3 and addqi3 define_expand. + ("sub3"): Ditto subsi3, subhi3 and subqi3. + ("ior3"): Ditto iorsi3, iorhi3 and iorqi3. + ("*extopqihi_non_v32"): Replace "*extopqihi". + ("*extopsi_non_v32"): Replace "*extopsi". + ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make + non-v32 only. + ("*extopsi_swap_non_v32"): Ditto "*extopsi_swap". + ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi". + ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi". + ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart". + ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart". + ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from + "cris_general_operand_or_plt_symbol" to "general_operand". + ("*expanded_call_value_non_v32") Ditto "*expanded_call_value". + ("*casesi_adds_w", "mstep_shift", "mstep_mul") + ("*expanded_call_side", "*expanded_call_value_side") + (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped) + (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz) + (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only. + ("dstep_mul", "xorsi3", "one_cmplsi2", "si3") + ("*expanded_", "*_lowpart", "ashl3") + ("*ashl_lowpart", "abssi2", "clzsi2", "bswapsi2") + ("cris_swap_bits"): Specify "noov32" for attr "cc". + ("mulsi3_highpart"): Ditto. Correct operand 0 to register_operand. + ("andqi3"): Make define_expand. + ("*return_expanded"): For attr "slottable", change from "has_slot" + to "has_return_slot". + ("cris_casesi_non_v32"): New pattern, old contents of "casesi". + ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32". + (moversideqi, movemsideqi, mover2side): Require + TARGET_SIDE_EFFECT_PREFIXES. + (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT + to CRIS_UNSPEC_PLT_GOTREL. + * config/cris/cris-protos.h (cris_register_move_cost) + (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare. + +2007-12-15 Alexandre Oliva + + PR debug/7081 + * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h. + (is_type_die): Cover interface types. + (class_or_namespace_scope_p): Cover interface and class types. + (record_type_tag): New. + (gen_inlined_structure_type_die): Use it. + (gen_struct_or_union_type_die): Likewise. + (prune_unused_types_walk): Cover interface types. + * langhooks.h (classify_record): New enum. + (classify_record): New member in struct langhooks_for_types. + * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New. + (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust. + +2007-12-15 Alexandre Oliva + + * dwarf2out.c (reference_to_unused): Don't emit strings in + initializers just because of debug information. + * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs. + +2007-12-15 Sebastian Pop + + * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace + print_loop_ir with print_loops. + * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num, + print_loops, print_loops_bb): Declare. + * tree-cfg.c (print_loops_bb): New. + (print_loop): Print header, latch, bounds, estimation of iterations. + (print_loop_and_siblings): New. + (print_loop_ir): Renamed print_loops. + (debug_loop_ir): Renamed debug_loops. + (debug_loop, debug_loop_num): New. + +2007-12-15 Bernhard Fischer + + * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment. + +2007-12-15 Bernhard Fischer + + * toplev.c (process_options): Fix typo in warning. + +2007-12-14 Jakub Jelinek + + PR target/29978 + * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU + DImode comparisons against constant with all 1's in the lower word. + +2007-12-14 Uros Bizjak + + * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand + constraint for operand 2. Use nonimm_not_xmm0_operand constraint + for operand 4. Update arguments in the call to + gen_sse4_2_pcmpestr_cconly. + (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn + template accordingly. + (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2. + Use nonimm_not_xmm0_operand constraint for operand 3. Update + arguments in the call to gen_sse4_2_pcmpistr_cconly. + (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn + template accordingly. + +2007-12-14 Richard Guenther + + PR middle-end/34462 + * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add + parameter to say whether to unlink immediate uses. + * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not + mark the artificial stmt as modified. Unlink immediate uses + only if requested. + * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller. + * tree-ssa-pre.c (insert_fake_stores): Likewise. + +2007-12-13 Eric Botcazou + + PR middle-end/33088 + * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment. + * tree-complex.c (init_dont_simulate_again): Return true if there are + uninitialized loads generated by gimplify_modify_expr_complex_part. + * tree-gimple.c (is_gimple_reg_type): Return false for complex types + if not optimizing. + * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from... + (warn_uninit): ...here. Use ssa_undefined_value_p. + * tree-ssa-pre.c (is_undefined_value): Delete. + (phi_translate_1): Use ssa_undefined_value_p. + (add_to_exp_gen): Likewise. + (make_values_for_stmt): Likewise. + * tree-flow.h (ssa_undefined_value_p): Declare. + +2007-12-13 Andrew Pinski + David Daney + + PR bootstrap/34144 + * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING + is disabled. + +2007-12-13 Jakub Jelinek + + PR rtl-optimization/32636 + * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx + regno in entry_block_defs even if HAVE_prologue && epilogue_completed. + +2007-12-13 Uros Bizjak + Richard Guenther + + PR target/34435 + * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16, + _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16, + _mm_shuffle_epi32): Cast non-constant input values to either __m64, + __m128, __m128i or __m128d in a macro version of the intrinsic. + Cast constant input values to int. + * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto. + * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16, + _mm_roti_epi32, _mm_roti_epi64): Ditto. + * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd, + _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8, + _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32, + _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri, + _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro, + _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro, + _mm_cmpestrs, _mm_cmpestrz): Ditto. + * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto. + * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw, + _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto. + * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd, + _mm_round_ps, _mm_round_ss): Ditto. + +2007-12-13 Richard Guenther + + PR tree-optimization/34450 + * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param. + * invoke.texi (sccvn-max-scc-size): Document. + * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency. + * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false + on error. + * tree-ssa-sccvn.c (params.h): Include. + (DFS): Return true if all went well, return false as soon as + a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE. + (run_scc_vn): Return true if all went well, return false if + we aborted during DFS. + * tree-ssa-pre.c (execute_pre): Check if SCCVN finished + successfully, otherwise bail out. + +2007-12-13 Olga Golovanevsky + + * ipa-struct-reorg.c (is_candidate): Print information to dump + file when the type is initialized. + (get_stmt_accesses): Likewise when a structure has bitfields + or field access is too complicate. + (safe_cond_expr_check): Likewise for unsafe condition expressions. + (exclude_cold_structs): Likewise for cold structures. + (collect_structures): Suppress redundant print when there are + no structures to transform. + (do_reorg): Print to dump file a number of structures that + will be transformed. + (dump_new_types): Print a number of new types to replace + an original structure type. + +2007-12-13 Olga Golovanevsky + + * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg + option and struct-reorg-cold-struct-ratio parameter. + +2007-12-13 Torbjorn Granlund + + * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for + ZERO_EXTEND when computing costs for widening multiplication. + +2007-12-13 Richard Earnshaw + + PR target/30192 + * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on + exit when using hard FPA. + * config/arm/ieee754-df.S (floatdidf): Likewise. + +2007-12-12 Jakub Jelinek + + PR bootstrap/30589 + * doc/install.texi: Document that for MinGW only runtime 3.12 and + later is supported. + +2007-12-12 David Edelsohn + + * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE. + +2007-12-12 Aldy Hernandez + + PR tree-optimization/32901 + * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we + are assigning from a constant constructor. + Fix wrapping in function comment. + +2007-12-12 Andreas Krebbel + + * config/s390/s390.c (s390_O_constraint_str): Limit the range + for 'On' to -4G+1..-1. + * config/s390/constraints.md: Adjust comment accordingly. + +2007-12-11 Nathan Sidwell + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx + for SPE saves. + +2007-12-11 Kai Tietz + + * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit + target same as 32-bit. + +2007-12-10 Jakub Jelinek + + PR tree-optimization/34371 + * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged + field. + (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field. + * tree-vectorizer.c (set_prologue_iterations, + slpeel_tree_peel_loop_to_edge): Call unshare_expr on + LOOP_VINFO_NITERS_UNCHANGED before using it. + +2007-12-10 Eric Botcazou + + PR target/34403 + * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large. + (ix86_expand_setmem): Likewise. + +2007-12-10 Kenneth Zadeck + + PR rtl-optimization/34302 + * auto-inc-dec.c (attempt_change): Change place where move is + inserted. + +2007-12-10 Jakub Jelinek + + * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For + Fortran multi-dimensional arrays use DW_AT_ordering + DW_ORD_col_major. + +2007-12-10 Paolo Bonzini + + PR target/32086 + * config/i386/i386.c (override_options): Enable -fvect-cost-model. + +2007-12-10 Uros Bizjak + + * config/i386/i386.c (ix86_function_regparm): Do not check global_regs + array, registers that are members of global_regs are also members of + fixed_regs array. Use REGPARM_MAX to check that no regparm hard + register is taken by a fixed register variable. Check up to and + including DI_REG when adjusting regparm value due to fixed regs usage. + (rep_prefix_usable): Check fixed_regs array, not global_regs array for + available hard registers. + (ix86_expand_strlen): Ditto. + * config/i386/i386.md (strmov): Ditto. + (cmpstrnsi): Ditto. + +2007-12-10 Kaz Kojima + + * genopinit.c: Include tm_p.h in generated file. + + * config/arm/neon.md (vec_set_internal): Use INTVAL + to extract the integer from operands[2]. + (vec_setv2di_internal): Likewise. + + * config/arm/arm.c (arm_size_return_regs): Make return type unsigned. + (arm_init_neon_builtins): Move code after declarations. + +2007-12-10 Hans-Peter Nilsson + + * reload.c (find_reloads_address_1): To properly mark as an + autoincdec, pass X for non-NULL OUT in call to push_reload for + autoincdec which can't be trivially used as an address. + +2007-12-10 Pranav Bhandarkar + Hans-Peter Nilsson + + * caller-save.c (insert_one_insn): If inserting before a call_insn + then the registers containing the arguments of the call are + live_throughout in the new insn. + +2007-12-09 John David Anglin + + PR middle-end/32889 + PR target/34091 + * pa.md: Consolidate HImode and QImode move patterns into one pattern + each, eliminating floating-point alternatives. + * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p): + Declare functions. + * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here. + * pa.c (pa_secondary_reload): Use an intermediate general register + for copies to/from floating-point register classes. Simplify code + SHIFT_REGS class. Provide additional comments. + (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions. + * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p. + (SECONDARY_MEMORY_NEEDED): Delete define. + (INT14_OK_STRICT): Define. + (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using + soft float. + (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for + SFmode and DFmode. + (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection. + Align DImode offsets when generating 64-bit code. + * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. + (CANNOT_CHANGE_MODE_CLASS): Define. + * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. + (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class. + +2007-12-09 Jakub Jelinek + + PR fortran/22244 + * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. + * langhooks.h (struct array_descr_info): Forward declaration. + (struct lang_hooks_for_types): Add get_array_descr_info field. + * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New. + (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2 + compatibility. + * dwarf2out.h (struct array_descr_info): New type. + * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to + DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size. + (descr_info_loc, add_descr_info_field, gen_descr_array_type_die): + New functions. + (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info + and gen_descr_array_type_die. + +2007-12-08 Richard Guenther + + PR tree-optimization/34391 + * tree-vect-transform.c (vect_setup_realignment): Mark new + symbols for renaming. + +2007-12-07 Bob Wilson + + * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + (ASM_OUTPUT_DWARF_PCREL): Define. + +2007-12-07 Richard Guenther + + PR middle-end/34382 + * opts.c (common_handle_option): Handle OPT_fforce_addr. + +2007-12-07 Aldy Hernandez + + * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win. + (LEGITIMIZE_RELOAD_ADDRESS): Same. + +2007-12-07 Samuel Tardieu + + PR ada/29157 + * doc/install.texi: Explain how to check for a clean environment when + building GNAT. + +2007-12-07 Richard Guenther + + * tree-profile.c (gcov_type_tmp_var): New global variable. + (tree_gen_edge_profiler): Use a single shared variable decl per + function for edge counter incrementing. + (tree_profiling): Re-set the shared variable. + +2007-12-06 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_va_start): Add prototype. + +2007-12-06 Tom Tromey + + PR c/29172: + * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache. + +2007-12-06 Richard Sandiford + + * config/mips/mips.c (mips_function_ok_for_sibcall): Check + targetm.binds_local_p as well as DECL_EXTERNAL. + +2007-12-06 Harsha Jagasia + + * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition. + (set_prologue_iterations): New. Set the prologue iterations to total + number of scalar iterations if the cost model check indicates that + scalar code should be generated. + (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for + generating the cost condition for epilog. Call + set_prologue_iterations to generate cost condition for prolog. + (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED. + * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New. + (slpeel_tree_peel_loop_to_edge): Update declaration. + (set_prologue_iterations): New declaration. + * tree-vect-analyze.c (vect_analyze_loop_form): Update + LOOP_VINFO_NITERS_UNCHANGED. + * tree-vect-transform.c + (vect_estimate_min_profitable_iters): Add new parameter and + code to check if run time cost model test is needed. + Remove code that adds builtin vectorization cost to scalar + outside cost for the run time cost model test. If run time + cost model test is needed add the appropriate guard cost to + the scalar outside cost. The guard cost depends on whether + the guard is generated at versioning or at prolog generation + or at epilog generation. Change cost model equation to include + scalar outside cost. + (conservative_cost_threshold): New. Return the less conservative + profitability threshold between the cost model threshold and the + user defined vectorization threshold. + (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold. + (vect_do_peeling_for_alignment): Same. + (vect_loop_versioning): Same. + (vect_create_cond_for_align_checks): ANDs the cost model condition + with the alignment condition. + (vect_transform_loop): Call loop versioning only when there is a + misalignment or an aliasing problem. + +2007-12-06 Jakub Jelinek + + PR middle-end/20983 + * tree-ssa-ccp.c (optimize_stdarg_builtin): New function. + (execute_fold_all_builtins): Call it for BUILT_IN_VA_START, + BUILT_IN_VA_COPY and BUILT_IN_VA_END. + + * target.h (struct ggc_target): Add expand_builtin_va_start hook. + * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define. + (TARGET_INITIALIZER): Add it. + * builtins.c (expand_builtin_va_start): Use + targetm.expand_builtin_va_start hook instead of + EXPAND_BUILTIN_VA_START macro. + * alpha/alpha.c (alpha_va_start): Made static. + (override_options): Clear targetm.expand_builtin_va_start if + TARGET_UNICOSMK. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove. + * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove. + * alpha/alpha-protos.h (alpha_va_start): Remove prototype. + * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove. + * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define. + (xtensa_va_start): Made static. + * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype. + * pa/pa-protos.h (hppa_va_start): Remove prototype. + * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove. + * pa/pa.c (hppa_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype. + * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove. + * i386/i386.c (override_options): Clear + targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI. + (ix86_va_start): Made static. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove. + * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes. + * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype. + * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove. + * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype. + * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + (rs6000_override_options): Clear targetm.expand_builtin_va_start if + DEFAULT_ABI != ABI_V4. + * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove. + * spu/spu.c (spu_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove. + * spu/spu-protos.h spu_va_start): Remove prototype. + * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove. + * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start): + Remove prototype. + * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * s390/s390-protos.h (s390_va_start): Remove prototype. + * s390/s390.c (s390_va_start): Made static. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove. + * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove. + * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype. + * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * arc/arc.c (arc_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove. + * arc/arc-protos.h (arc_va_start): Remove prototype. + * mt/mt-protos.h (mt_va_start): Remove prototype. + * sparc/sparc.c (sparc_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * sparc/sparc-protos.h (sparc_va_start): Remove prototype. + * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove. + * sh/sh.c (sh_va_start): Made static, add prototype. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + * sh/sh-protos.h (sh_va_start): Remove prototype. + * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove. + * mips/mips-protos.h (mips_va_start): Remove prototype. + * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove. + * mips/mips.c (mips_va_start): Made static. + (TARGET_EXPAND_BUILTIN_VA_START): Define. + +2007-12-06 Uros Bizjak + + * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when + "flag_tree_parallelize_loops > 1". + +2007-12-06 Zdenek Dvorak + Dorit Nuzman + Jakub Jelinek + + PR tree-optimization/34005 + * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR. + * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr. + (gimplify_pure_cond_expr): New function. + (generic_expr_could_trap_p): New function. + (gimplify_cond_expr): Call gimplify_pure_cond_expr. + (force_gimple_operand): Initialize new field allow_rhs_cond_expr. + +2007-12-06 Andreas Krebbel + + * config/s390/s390.c (s390_emit_stack_tie): New function. + (s390_emit_prologue): Emit a stack tie when writing to the + f8-f15 stack slots. + * config/s390/s390.md ("stack_tie"): New insn definition. + +2007-12-06 Ben Elliston + + * SERVICE: Remove. + * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item. + +2007-12-05 Jakub Jelinek + + PR middle-end/34337 + * fold-const.c (fold_binary) : Don't minimize + number of bits set in C1 if a mode mask for some mode can be used + instead. + +2007-12-05 Bernhard Fischer + + * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo + fixes. + +2007-12-05 Richard Guenther + + PR tree-optimization/34138 + * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): + Do not forward propagate addresses if that changes volatileness of + the pointed-to type. + +2007-12-05 Uros Bizjak + + PR target/34312 + * config/i386/i386.c (ix86_function_regparm): Also check for fixed + registers when checking that regparm registers are available. + Lower regparm value due to fixed registers usage in addition to + global regs usage. + +2007-12-05 Bernhard Fischer + + * sparseset.c: Include config.h and system.h before sparseset.h. + * sparseset.h: Remove inclusion of system.h. + 2007-12-05 Jakub Jelinek Richard Sandiford @@ -42,7 +886,7 @@ 2007-12-03 Steven Bosscher - PR33713 + PR middle-end/33713 * doc/invoke.texi: Remove -fforce-addr documentation. * expr.c (emit_move_insn): Remove use of flag_force_addr. (expand_expr_real_1): Same. @@ -125,8 +969,7 @@ 2007-11-30 Jan Hubicka - * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect - flag. + * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag. 2007-11-30 Seongbae Park @@ -150,8 +993,7 @@ * tree-vrp.c (adjust_range_with_scev): Clear scev cache. (record_numbers_of_iterations): New function. (execute_vrp): Cache the numbers of iterations of loops. - * tree-scalar-evolution.c (scev_reset_except_niters): - New function. + * tree-scalar-evolution.c (scev_reset_except_niters): New function. (scev_reset): Use scev_reset_except_niters. * tree-scalar-evolution.h (scev_reset_except_niters): Declare. @@ -313,7 +1155,7 @@ 2007-11-26 Andreas Krebbel - PR 34081/C++ + PR c++/34081 * c-decl.c (store_parm_decls): Pass 'false' for the new allocate_struct_function parameter. * cgraphunit.c (cgraph_build_static_cdtor): Likewise. @@ -329,7 +1171,7 @@ PR target/34215 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if - virtual registers are instantiated. + virtual registers are already instantiated. (truncxf2): Ditto. (floatsi2): Ditto. (floatdisf2): Ditto. @@ -345,9 +1187,9 @@ * config/mn10300/mn10300.md: (call_internal): Remove mode on operand 0 in order to match UNPSEC'ed calls generated in PIC mode. - (call_value_internal): Remove mode on operands 0 and 1 in order to + (call_value_internal): Remove mode on operands 0 and 1 in order to match UNPSEC'ed calls generated in PIC mode. - (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between + (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between two insns. 2007-11-26 Richard Guenther @@ -437,8 +1279,7 @@ 2007-11-23 Hans-Peter Nilsson * reload.c (find_reloads_address_1) : - Call REG_OK_FOR_CONTEXT with the autoincdec code, not - outer_code. + Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code. 2007-11-23 Richard Guenther Michael Matz @@ -766,8 +1607,7 @@ 2007-11-07 Tom Tromey - * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to - 'func'. + * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. * tree-parloops.c (create_loop_fn): Use set_cfun. * gengtype.c (open_base_files): Emit #undef cfun. * ipa-struct-reorg.c (do_reorg_1): Use set_cfun. @@ -815,8 +1655,7 @@ * tree-ssa-alias.c (create_overlap_variables_for): Make sure to only create SFTs if we also create variable infos for PTA. - * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping - SFTs. + * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs. 2007-11-15 Richard Guenther @@ -875,8 +1714,7 @@ 2007-11-13 Michael Meissner - * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate - line. + * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line. 2007-11-13 Sterling Augustine Bob Wilson @@ -903,39 +1741,34 @@ 2007-11-13 Diego Novillo PR tree-optimization/33870 - * tree.h (strcut tree_memory_tag): add field unpartitionable. - remove field in_nested_struct. - (struct tree_struct_field_tag): add field nesting_level. - (sft_in_nested_struct): remove. - (sft_nesting_level): define. - (sft_unpartitionable_p): define. - * tree-ssa-alias.c (mem_sym_score): if mp->var is not + * tree.h (strcut tree_memory_tag): Add field unpartitionable. + Remove field in_nested_struct. + (struct tree_struct_field_tag): Add field nesting_level. + (sft_in_nested_struct): Remove. + (sft_nesting_level): Define. + (sft_unpartitionable_p): Define. + * tree-ssa-alias.c (mem_sym_score): If mp->var is not partitionable, return long_max. - (compute_memory_partitions): do not partition sfts marked + (compute_memory_partitions): Do not partition sfts marked unpartitionable. - (create_sft): add argument nesting_level. set - sft_nesting_level with it. update all users. - (create_overlap_variables_for): show nesting level. - * tree-dfa.c (dump_subvars_for): likewise. - (dump_variable): likewise. - show whether the sft is partitionable or not. - * tree-flow.h (struct fieldoff): remove field - in_nested_struct. - add field nesting_level. - * tree-ssa-structalias.c (struct variable_info): remove + (create_sft): Add argument nesting_level. Set + sft_nesting_level with it. Update all users. + (create_overlap_variables_for): Show nesting level. + * tree-dfa.c (dump_subvars_for): Likewise. + (dump_variable): Likewise. Show whether the sft is + partitionable or not. + * tree-flow.h (struct fieldoff): Remove field in_nested_struct. + Add field nesting_level. + * tree-ssa-structalias.c (struct variable_info): Remove field in_nested_struct. - (push_fields_onto_fieldstack): add argument - nesting_level. update all users. - update documentation. - update pair->nesting_level with nesting_level. - make recursive calls with nesting_level + 1. - (set_uids_in_ptset): if an sft is added to the points-to - set, mark it as unpartitionable. - * tree-ssa-operands.c (ref_nesting_level): new. - (add_vars_for_offset): call it. - add argument full_ref. update - callers. - if var is inside a nested structure and the nesting level + (push_fields_onto_fieldstack): Add argument nesting_level. + Update all users. Update documentation. Update pair->nesting_level + with nesting_level. Make recursive calls with nesting_level + 1. + (set_uids_in_ptset): If an sft is added to the points-to set, + mark it as unpartitionable. + * tree-ssa-operands.c (ref_nesting_level): New. + (add_vars_for_offset): Call it. Add argument full_ref. Update + callers. If var is inside a nested structure and the nesting level of full_ref is lower than the nesting level of var, adjust offset by the offset of var. @@ -1001,9 +1834,9 @@ PR tree-optimization/33953 * tree-vect-transform.c (vectorizable_operation): In case of SLP, allocate vec_oprnds1 according to the number of created vector - statements. In case of shift with scalar argument, store scalar operand - for every vector statement to be created for the SLP node. Fix a - comment. + statements. In case of shift with scalar argument, store scalar + operand for every vector statement to be created for the SLP node. + Fix a comment. 2007-11-10 Steven Bosscher @@ -1069,8 +1902,7 @@ 2007-11-09 Richard Guenther - * tree-flow.h (struct ptr_info_def): Make escape_mask a - ENUM_BITFIELD. + * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD. (struct ptr_info_def): Likewise. (enum escape_type): Also use bit zero. @@ -1186,8 +2018,7 @@ PR 33870 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct. (SFT_IN_NESTED_STRUCT): Define. - * tree-dfa.c (dump_subvars_for): Show offset of each - sub-var. + * tree-dfa.c (dump_subvars_for): Show offset of each sub-var. * tree-flow.h (struct fieldoff): Add field in_nested_struct. * tree-ssa-structalias.c (struct variable_info): Likewise. (push_fields_onto_fieldstack): If OFFSET is positive, @@ -1197,8 +2028,7 @@ (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the variable info object. * tree-ssa-operands.c (add_vars_for_offset): If VAR - belongs to a nested structure, adjust OFFSET by - SFT_OFFSET(VAR). + belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR). 2007-11-07 Eric Botcazou @@ -1252,8 +2082,7 @@ 2007-11-06 Diego Novillo - * tree-flow.h (struct fieldoff): Reformat comment. - Document fields. + * tree-flow.h (struct fieldoff): Reformat comment. Document fields. * tree-ssa-operands.c: Tidy top-level comments. (add_vop): Likewise. (add_vars_for_offset): Tidy parameter formatting.. @@ -1272,8 +2101,7 @@ PR target/30961 * reload1.c (find_reloads): Also check in_reg when handling a - simple move with an input reload and a destination of a hard - register. + simple move with an input reload and a destination of a hard register. 2007-11-06 Maxim Kuvyrkov @@ -1350,8 +2178,7 @@ 2007-11-05 Mark Mitchell PR target/33579 - * tree.h (DECL_INIT_PRIORITY): Do not require - DECL_HAS_INIT_PRIORITY_P. + * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P. (DECL_FINI_PRIORITY): Likewise. * tree.c (decl_init_priority_lookup): Remove assert. (decl_fini_priority_insert): Likewise. @@ -1364,8 +2191,7 @@ (compare_dtor): Likewise. (cgraph_build_cdtor_fns): Sort the functions by priority before calling build_cdtor. - (cgraph_build_static_cdtor): Put the priority in the function's - name. + (cgraph_build_static_cdtor): Put the priority in the function's name. 2007-11-05 H.J. Lu @@ -1475,8 +2301,7 @@ (in_safe_group_barrier): New variable. (rws_update): Remove first argument, always set rws_sum array. (rws_access_regno): Use rws_insn_set macro. Only call rws_update - or update rws_sum if !in_safe_group_barrier, adjust rws_update - args. + or update rws_sum if !in_safe_group_barrier, adjust rws_update args. (rtx_needs_barrier): Use rws_insn_test macro. (safe_group_barrier_needed): Don't save/restore rws_sum array, instead set/clear in_safe_group_barrier flag. @@ -1500,8 +2325,7 @@ 2007-11-02 Diego Novillo * langhooks.h (struct lang_hooks_for_callgraph): Remove third - argument from function pointer ANALYZE_EXPR. Update all - users. + argument from function pointer ANALYZE_EXPR. Update all users. * cgraph.c (debug_cgraph_node): New. (debug_cgraph): New. @@ -1621,15 +2445,14 @@ 2007-10-31 Richard Sandiford PR target/33948 - * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P - check. + * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check. 2007-10-31 Andreas Krebbel * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp. - * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp - with -mhard-dfp/-mno-hard-dfp. + * config/s390/s390.c: (override_options): Replace + -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp. * config/s390/s390.opt: Likewise. * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT definition. @@ -2125,7 +2948,7 @@ SSA_NAME pointers. 2007-10-22 Seongbae Park - David S. Miller + David S. Miller * df-scan.c (df_get_call_refs): Mark global registers as both a DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF. @@ -2642,8 +3465,7 @@ 2007-10-19 Richard Guenther PR middle-end/32921 - * tree.c (build_array_type): Do not re-layout unbound array - types. + * tree.c (build_array_type): Do not re-layout unbound array types. 2007-10-19 Richard Sandiford @@ -3397,8 +4219,7 @@ PR middle-end/33669 * ra-conflict.c (record_one_conflict_between_regnos, - set_conflicts_for_earlyclobber, global_conflicts): Improved - logging. + set_conflicts_for_earlyclobber, global_conflicts): Improved logging. (global_conflicts): Removed incorrect check. 2007-10-09 Richard Sandiford @@ -3541,8 +4362,7 @@ PR tree-optimization/33655 PR middle-end/22156 - * tree-sra.c (bitfield_overlaps_p): Handle array and complex - elements. + * tree-sra.c (bitfield_overlaps_p): Handle array and complex elements. 2007-10-06 Alexandre Oliva @@ -3656,8 +4476,7 @@ 2007-10-04 Geoffrey Keating - * cgraphunit.c (cgraph_build_static_cdtor): Don't set - DECL_IGNORED_P. + * cgraphunit.c (cgraph_build_static_cdtor): Don't set DECL_IGNORED_P. 2007-10-04 Anatoly Sokolov @@ -3782,8 +4601,7 @@ 2007-10-02 Richard Sandiford PR middle-end/33617 - * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to - expand_expr. + * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to expand_expr. 2007-10-02 David Daney @@ -3895,14 +4713,12 @@ (canon_type_for_field): New. (try_instantiate_multiple_fields): New. Infer widest possible access mode from decl or member type, but clip it at word - size, and only widen it if a field crosses an alignment - boundary. + size, and only widen it if a field crosses an alignment boundary. (instantiate_missing_elements): Use them. (generate_one_element_ref): Handle BIT_FIELD_REFs. (scalar_bitfield_p): New. (sra_build_assignment): Optimize assignments from scalarizable - BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift - counts. + BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift counts. (REPLDUP): New. (sra_build_bf_assignment): New. Optimize assignments to scalarizable BIT_FIELD_REFs. @@ -3924,8 +4740,7 @@ BIT_FIELD_REFs. Explode or sync needed members for BIT_FIELD_REFs accesses or assignments. Use REPLDUP. (scalarize_copy): Use REPLDUP. - (scalarize_ldst): Move assert before dereference. Adjust EH - handling. + (scalarize_ldst): Move assert before dereference. Adjust EH handling. (dump_sra_elt_name): Handle BIT_FIELD_REFs. 2007-10-01 Paolo Bonzini @@ -4211,8 +5026,7 @@ 2007-09-25 DJ Delorie PR target/33551 - * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of - XINT. + * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of XINT. 2007-09-25 Michael Meissner @@ -4520,8 +5334,7 @@ 2007-09-22 Richard Guenther PR tree-optimization/33146 - * fold-const.c (fold_binary): Use the original tree - for negating. + * fold-const.c (fold_binary): Use the original tree for negating. * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer also changes "sign". @@ -4984,8 +5797,7 @@ * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document. * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. - (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to - declaration. + (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to declaration. (_Unwind_ForcedUnwind): Likewise. (_Unwind_Resume): Likewise. (_Unwind_Resume_or_Rethrow): Likewise. @@ -5049,8 +5861,7 @@ PR target/32337 * config/ia64/ia64.c (find_gr_spill): Don't decrement - current_frame_info.n_local_regs. Don't return emitted local - regs. + current_frame_info.n_local_regs. Don't return emitted local regs. (ia64_compute_frame_size): Improve unwind hack to put RP, PFS, FP in that order by allowing some of the registers been already emitted, as long as they are emitted to the @@ -5195,19 +6006,15 @@ pointer to hold the argument. (function_args_iter_cond): Inline function to return the next argument. - (function_args_iter_cond_next): Advance the function args - iterator. - (stdarg_p): New function, return true if variable argument - function. - (prototype_p): New function, return true if function is - prototyped. + (function_args_iter_cond_next): Advance the function args iterator. + (stdarg_p): New function, return true if variable argument function. + (prototype_p): New function, return true if function is prototyped. (function_args_count): New function, count the number of arguments of a function. * tree.c (stdarg_p): New function, return true if variable argument function. - (prototype_p): New function, return true if function is - prototyped. + (prototype_p): New function, return true if function is prototyped. * config/i386/i386.h (TARGET_SSE5): New macro for SSE5. (TARGET_ROUND): New macro for the round/ptest instructions which @@ -5699,8 +6506,8 @@ 2007-09-12 Jan Hubicka PR target/33393 - * i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): Disable - for !SSE_MATH + * config/i386/i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): + Disable for !SSE_MATH 2007-09-12 Christian Bruel @@ -5716,8 +6523,8 @@ 2007-09-12 Ira Rosen - * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and minimum - to 1. + * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and + minimum to 1. 2007-09-11 James E. Wilson @@ -5917,15 +6724,15 @@ 2007-09-11 Zdenek Dvorak - * fold-const.c (extract_muldiv_1): Do not simplify - var * c * c to var. + * fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var. 2007-09-11 Jan Hubicka - * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS. + * config/i386/i386.h (ix86_tune_indices): Add + X86_TUNE_INTER_UNIT_CONVERSIONS. (TARGET_INTER_UNIT_CONVERSIONS): New. - * i386.md (floatsi expanders): Remove redundant check for SImode - source; offload to memory when asked for. + * config/i386/i386.md (floatsi expanders): Remove redundant check + for SImode source; offload to memory when asked for. (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): Update conditions; @@ -6213,7 +7020,7 @@ 2007-09-09 H.J. Lu - * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead + * config/i386/i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead of cvtpq2ps. (*floatsisf2_sse_vector): Likewise. @@ -6247,10 +7054,10 @@ 2007-09-09 Jan Hubicka Dwarakanath Rajagopal - * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS. + * config/i386/i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS. (TARGET_USE_VECTOR_CONVERTS): New. - * i386.md: New post-reload splitters for converting SF to DF and DF to - SF. + * config/i386/i386.md: New post-reload splitters for converting + SF to DF and DF to SF. (floatsi* expander): Special case vector conversions. (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit, floatsisf2_sse_vector_internunit, floatsisf2_sse_vector, @@ -6258,8 +7065,8 @@ (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): Disable when doing vector converts. (floatsi2_i387): Disable when - * sse.md (vec_dupv2df): Export. - * i386.c (ix86_tune_features): Enable SSE conversions. + * config/i386/sse.md (vec_dupv2df): Export. + * config/i386/i386.c (ix86_tune_features): Enable SSE conversions. 2007-09-09 Richard Guenther @@ -6988,8 +7795,8 @@ 2007-09-06 Jan Hubicka - * i386.c (ix86_expand_lround, ix86_expand_round): Update call of - real_2expN. + * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): + Update call of real_2expN. 2007-09-06 Richard Sandiford @@ -7146,8 +7953,8 @@ 2007-09-06 Jan Hubicka - * i386.c (ix86_expand_lround, ix86_expand_round): Update call of - real_2expN. + * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): + Update call of real_2expN. 2007-09-06 Jan Hubicka @@ -9727,7 +10534,7 @@ 2007-08-19 Jan Hubicka - * i386.md: Replace "rim" and "mri" constraints by "g". + * config/i386/i386.md: Replace "rim" and "mri" constraints by "g". 2007-08-19 Joseph Myers @@ -10179,8 +10986,8 @@ 2007-08-14 Kai Tietz - * i386.c: (legitimize_address): Move dllimported variable check - infront of legitimizing pic address of CONST symbols. + * config/i386/i386.c (legitimize_address): Move dllimported variable + check infront of legitimizing pic address of CONST symbols. 2007-08-14 Steve Ellcey @@ -11556,8 +12363,8 @@ 2007-08-03 Jan Hubicka - * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred - stack boundary. + * config/i386/i386.c (setup_incoming_varargs_64): Tolerate 64bit + preferred stack boundary. 2007-08-03 David Edelsohn @@ -13305,7 +14112,7 @@ 2007-07-23 Jan Hubicka - * i386.c (ix86_secondary_memory_needed): Break out to... + * config/i386/i386.c (ix86_secondary_memory_needed): Break out to... (inline_secondary_memory_needed): ... here. (ix86_memory_move_cost): Break out to ... (inline_memory_move_cost): ... here; add support for IN value of 2 for @@ -19043,7 +19850,7 @@ extra_headers. (x86_64-*-*): Likewise. - * i386/i386-modes.def (V2QI): New. + * config/i386/i386-modes.def (V2QI): New. * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and SSE4A. @@ -25507,9 +26314,9 @@ * reg-stack.c (reg_to_stack): Large models don't allow NAN to be loaded for constant large models. Non-large 64bit PIC can do. - * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit. + * config/i386/i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit. * cmodel.h: Add LARGE PIC. - * i386.md (UNSPEC_PLTOFF): New. + * config/i386/i386.md (UNSPEC_PLTOFF): New. (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as needed. (*call_1_rex64): Disable for large models. @@ -25518,10 +26325,10 @@ (*call_value_1_rex64_large): New. (set_rip_rex4): New. (set_got_offset_rex64): New. - * predicates.md (constant_call_address_operand): For large model - constant calls are not possible. - * i386-protos.h (construct_plt_address): Declare. - * i386.c (override_options): Accept large models. + * config/i386/predicates.md (constant_call_address_operand): For + large model constant calls are not possible. + * config/i386/i386-protos.h (construct_plt_address): Declare. + * config/i386/i386.c (override_options): Accept large models. (ix86_expand_prologue): Expand large PIC GOT pointer load. (legitimate_constant_p): Add new UNSPECs. (legitimate_pic_operand_p): Likewise. @@ -26515,7 +27322,7 @@ Jan Hubicka PR target/30778 - * i386.c (counter_mode): New function. + * cofnig/i386/i386.c (counter_mode): New function. (expand_set_or_movmem_via_loop): Use it. (expand_movmem_epilogue): Likewise; fix pasto. (ix86_expand_movmem): Do emit guard even for constant counts. @@ -29948,7 +30755,8 @@ * Makefile.in (LIBGCOV): Add new constants. * libgcov.c (__gcov_merge_ior, __gcov_average_profiler, __gcov_ior_profiler): New. - * i386.md (movmem/setmem expanders): Add new optional arguments. + * config/i386/i386.md (movmem/setmem expanders): Add new optional + arguments. 2007-01-28 David Edelsohn @@ -30816,8 +31624,8 @@ 2007-01-18 Michael Meissner - * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code - type correct. + * config/i386/i386.c (ix86_compute_frame_layout): Make fprintf's + in #if 0 code type correct. 2007-01-18 Jan Hubicka