From: rguenth Date: Mon, 9 Jan 2012 10:11:38 +0000 (+0000) Subject: 2012-01-09 Richard Guenther X-Git-Tag: upstream/4.9.2~15075 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8dfa851aa2892e627be87db3fa6cd67d5697ad2b;p=platform%2Fupstream%2Flinaro-gcc.git 2012-01-09 Richard Guenther Rotate changelogs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183007 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4cce735..22fb1bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -500,40044 +500,8 @@ * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away calls with side-effects. * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. - -2011-12-31 Alexandre Oliva - - * cselib.h (cselib_add_permanent_equiv): Declare. - (canonical_cselib_val): New. - * cselib.c (new_elt_loc_list): Rework to support value - equivalences. Adjust all callers. - (preserve_only_constants): Retain value equivalences. - (references_value_p): Retain preserved values. - (rtx_equal_for_cselib_1): Handle value equivalences. - (cselib_invalidate_regno): Use canonical value. - (cselib_add_permanent_equiv): New. - * alias.c (find_base_term): Reset locs lists while recursing. - * var-tracking.c (val_bind): New. Don't add equivalences - present in cselib table, compared with code moved from... - (val_store): ... here. - (val_resolve): Use val_bind. - (VAL_EXPR_HAS_REVERSE): Drop. - (add_uses): Do not create MOps for addresses. Do not mark - non-REG non-MEM expressions as requiring resolution. - (reverse_op): Record reverse as a cselib equivalence. - (add_stores): Use it. Do not create MOps for addresses. - Do not require resolution for non-REG non-MEM expressions. - Simplify support for reverse operations. - (compute_bb_dataflow): Drop reverse support. - (emit_notes_in_bb): Likewise. - (create_entry_value): Rename to... - (record_entry_value): ... this. Use cselib equivalences. - (vt_add_function_parameter): Adjust. - -2011-12-30 Michael Meissner - - * config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko - in setting options via target #pragma or attribute. - -2011-12-30 Anatoly Sokolov - - * config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. - * config/bfin/bfin-protos.h (bfin_register_move_cost, - bfin_memory_move_cost): Remove. - * config/bfin/bfin.c (bfin_register_move_cost, - bfin_memory_move_cost): Make static. Change arguments type from - enum reg_class to reg_class_t and from int to bool. - (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. - -2011-12-30 Nathan Sidwell - - * gcov.c (total_lines, total_executed): New global vars. - (generate_results): Call executed_summary. - (executed_summary): New function, broken out of ... - (function_summary): ... here. Call it. - * coverage.c (coverage_finish): Also check for local_tick == -1. - * gcov-dump (tag_function): Correct labelling typo. - -2011-12-29 Michael Meissner - - PR target/51623 - * config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check - for an initialized pointer being in a text section with - -mrelocatable, since it should never happen. - -2011-12-29 Michael Eager - - * config/microblaze/microblaze.md: Add expander for simple_return, - return, add return_internal and simple_return_internal insns. - -2011-12-29 Oleg Endo - - * config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable. - * config/sh/sh.c (sh_option_override): Simplify sh_branch_cost - expression. - -2011-12-28 Ian Lance Taylor - - * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go. - -2011-12-28 Michael Meissner - - PR target/51623 - * config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call - unlikely_text_section_p. Instead check for being in a code section. - -2011-12-28 Ira Rosen - - PR tree-optimization/51684 - * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original - statement in case of a pattern. - (vect_schedule_slp): Likewise. - -2011-12-27 Eric Botcazou - - PR rtl-optimization/51667 - * ree.c (insn_merge_code): Delete. - (is_insn_merge_attempted): Likewise. - (get_insn_status): Likewise. - (set_insn_status): Likewise. - (struct ext_cand): Add CODE and MODE fields. - (combine_set_extend): Rename to... - (combine_set_extension): ...this. Use above fields and tidy up. - (transform_ifelse): Likewise. - (get_defs): Return the chain of definitions. - (is_this_a_cmove): Merge into... - (is_cond_copy_insn): ...this. Return bool. - (make_defs_and_copies_lists): Adjust calls to get_defs and simplify. - (merge_def_and_ext): Adjust call to combine_set_extend. - (combine_reaching_defs): Remove calls to {g|s}et_insn_status. - (struct extend_info): Rename to... - (struct re_info): ...this. Add DEF_MAP field. - (add_ext_candidate): Merge into... - (add_removable_extension): ...this. Adjust calls to get_defs. Ensure - reaching definitions are associated with only one kind of extension. - (find_removable_extensions): Create and destroy the definition map. - (find_and_remove_re): Return void. Change 'long' variables to 'int'. - Do not deal with is_insn_merge_attempted. - -2011-12-25 Jan Hubicka - - PR middle-end/48641 - * tree-ssa-threadupdate.c (redirect_edges): Watch for overflow. - -2011-12-26 Oleg Endo - - * config/sh/sync.md: Add soft atomics ABI description. - (fetchop_name): Use 'or' instead of 'ior'. - (fetchop_insn): Remove. - (atomic_compare_and_swap_soft): - Don't insert aligning nop after the write-back instruction. Fix - multi-line asm output formatting style. - (atomic_fetch__soft): Likewise. - (atomic_fetch_nand_soft): Likewise. - (atomic__fetch_soft): Likewise. - (atomic_nand_fetch_soft): Likewise. - -2011-12-23 Richard Henderson - - * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove. - * cfgexpand.c (expand_debug_expr): Don't handle them. - * expr.c (expand_expr_real_2): Likewise. - * fold-const.c (fold_binary_loc): Likewise. - * gimple-pretty-print.c (dump_binary_rhs): Likewise. - * tree-cfg.c (verify_gimple_assign_binary): Likewise. - * tree-inline.c (estimate_operator_cost): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-vect-generic.c (expand_vector_operations_1): Likewise. - * optabs.c (optab_for_tree_code): Likewise. - (can_vec_perm_for_code_p): Remove. - (expand_binop): Don't try it. - (init_optabs): Don't init vec_extract_even/odd_optab. - * genopinit.c (optabs): Likewise. - * optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove. - (vec_extract_even_optab, vec_extract_odd_optab): Remove. - * tree-vect-data-refs.c (vect_strided_store_supported): Tidy code. - (vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of - GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of - asserting vect_strided_store_supported. - (vect_strided_load_supported): Use can_vec_perm_p. - (vect_permute_load_chain): Use VEC_PERM_EXPR. - - * doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove. - (VEC_EXTRACT_ODD_EXPR): Remove. - * doc/md.texi (vec_extract_even, vec_extract_odd): Remove. - -2011-12-23 Anatoly Sokolov - - * config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. - * config/score/score-protos.h (score_register_move_cost): Remove. - * config/score/score.c (TARGET_REGISTER_MOVE_COST): Define. - (score_register_move_cost): Make static. Change arguments type from - enum reg_class to reg_class_t. - -2011-12-23 Jakub Jelinek - Richard Henderson - - * tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove. - * gimple-pretty-print.c (dump_binary_rhs): Don't handle - VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. - * expr.c (expand_expr_real_2): Likewise. - * tree-cfg.c (verify_gimple_assign_binary): Likewise. - * cfgexpand.c (expand_debug_expr): Likewise. - * tree-inline.c (estimate_operator_cost): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-vect-generic.c (expand_vector_operations_1): Likewise. - * fold-const.c (fold_binary_loc): Likewise. - * doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR, - VEC_INTERLEAVE_LOW_EXPR): Remove documentation. - * optabs.c (optab_for_tree_code): Don't handle - VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. - (expand_binop, init_optabs): Remove vec_interleave_high_optab - and vec_interleave_low_optab. - * genopinit.c (optabs): Likewise. - * optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove. - (vec_interleave_high_optab, vec_interleave_low_optab): Remove. - * doc/md.texi (vec_interleave_high, vec_interleave_low): Remove - documentation. - * tree-vect-stmts.c (gen_perm_mask): Renamed to... - (vect_gen_perm_mask): ... this. No longer static. - (perm_mask_for_reverse, vectorizable_load): Adjust callers. - * tree-vectorizer.h (vect_gen_perm_mask): New prototype. - * tree-vect-data-refs.c (vect_strided_store_supported): Don't try - VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of - can_vec_perm_for_code_p. - (vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving - masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. - * config/i386/i386.c (expand_vec_perm_interleave2): If - expand_vec_perm_interleave3 would handle it, return false. - (expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab. - -2011-12-23 Richard Henderson - - * config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0, - UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2, - UNSPEC_LOONGSON_PINSR_3): Replace with... - (UNSPEC_LOONGSON_PINSRH): ... this. - (UNSPEC_LOONGSON_VINIT): New. - (UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New. - (VWB): New mode iterator. - (V_inner): New mode attribute. - (loongson_vec_init1_): New. - (*vec_concatv2si): New. - (and3, ior3, xor3, one_cmpl2): New. - (*loongson_nor): New. - (loongson_pextrh): Un-macro-ify. - (loongson_pmaddhw): Likewise. - (smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise. - (loongson_pinsrh_0): Represent with vec_select+vec_concat. - (loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise. - (*vec_setv4hi, vec_setv4hi): New. - (sdot_prodv4hi): New. - (smax3, smin3): New. - (reduc_uplus_v8qi): New. - (loongson_pshufh): Remove destination matching input. - (ashl3, ashr3, lshr3): Fix type attribute. - (vec_interleave_high, vec_interleave_low): Remove. - (loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi, - loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi, - loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi, - loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi, - vec_perm_const, vec_unpacks_lo_, vec_unpacks_hi_, - vec_unpacku_lo_, vec_unpacku_hi_, vec_shl_, - vec_shr_, reduc_uplus_, reduc_splus_, - reduc_smax_, reduc_smin_, reduc_umax_, - reduc_umin_): New. - * config/mips/mips-ps-3d.md (vec_perm_const_ps): New. - (mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in - terms of vec_perm_const_ps. - (vec_perm_constv2sf): New. - (vec_initv2sf): Use mips_expand_vector_init. - (vec_concatv2sf): Rename from vec_initv2sf_internal. - (vec_setv2sf): Use vec_perm_const_ps. - (reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New. - * config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to - the builtin. - * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes. - * config/mips/mips-protos.h: Update. - * config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all - MODE_VECTOR_FLOAT. - (mips_return_mode_in_fpr_p): Likewise. - (mips_cannot_change_mode_class): Allow 8-byte integral mode changes. - (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw, - CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh, - CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove. - (mips_builtins): Remove first operand for loongson pshufh builtins. - (MAX_VECT_LEN, struct expand_vec_perm_d): New. - (mips_expand_vselect, mips_expand_vselect_vconcat, - mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh, - mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1, - mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok, - mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast, - mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh, - mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax, - TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. - (mips_expand_vector_init): Rewrite. - * config/mips/predicates.md (const_2_or_3_operand): New. - (const_0_to_3_operand): New. - -2011-12-23 Dmitry Plotnikov - - * config/arm/neon.md (float2): New. - (floatuns2): New. - (fix_trunc2): New. - (fix_truncuns2): New. - * config/arm/iterators.md (V_cvtto): New iterator. - -2011-12-23 Richard Guenther - - PR rtl-optimization/50396 - * simplify-rtx.c (simplify_binary_operation_1): Properly - guard code that only works for integers. - -2011-12-23 Tristan Gingold - - * config/vms/vms-crtlmap.map (log10): Fix typo. - -2011-12-23 Tristan Gingold - - * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define. - -2011-12-22 Bin Cheng - Richard Guenther - - PR tree-optimization/43491 - * tree-ssa-pre.c (eliminate): Don't replace global register - variable when it is the RHS of a single assign. - -2011-12-22 Joey Ye - - * toplev.c (process_options): Fix typo. - -2011-12-22 John David Anglin - - PR middle-end/51252 - * config/pa/pa.c (pa_som_tm_clone_table_section): New function. - (som_tm_clone_table_section): Declare. - (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace. - (pa_som_asm_init_sections): Init som_tm_clone_table_section. - * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. - -2011-12-22 Richard Sandiford - - * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook. - * doc/tm.texi: Regenerate. - * target.def (prepare_pch_save): New hook. - * c-family/c-pch.c (c_common_write_pch): Call it. - * config/mips/mips.c (was_mips16_pch_p): Delete. - (mips_set_mips16_mode): Don't refer to was_mips16_pch_p. - (mips_prepare_pch_save): New function. - (TARGET_PREPARE_PCH_SAVE): Define. - -2011-12-22 Aldy Hernandez - - PR middle-end/51212 - * opts.c (finish_options): Call sorry on -fgnu-tm and - -fnon-call-exceptions combination. - -2011-12-22 Jonathan Wakely - - * doc/invoke.texi (C++ Dialect Options): Add missing options and - move -Wzero-as-null-pointer-constant to ... - (Warning Options): ... here. - -2011-12-22 Jonathan Wakely - - PR target/47643 - * doc/invoke.texi (i386 and x86-64 Options): Fix description of - -mtune without -march. - -2011-12-21 Richard Earnshaw - - PR target/51643 - * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous - change. - -2011-12-22 Tristan Gingold - - * config/ia64/ia64.c (ia64_promote_function_mode): Remove. - (TARGET_PROMOTE_FUNCTION_MODE): Remove. - (ia64_function_value): Call promote_function_mode instead of - ia64_promote_function_mode. - * config/ia64/vms.h (PROMOTE_MODE): Define. - (TARGET_PROMOTE_FUNCTION_MODE): Define. - -2011-12-22 Uros Bizjak - - PR target/27468 - * common/config/alpha/alpha-common.c (alpha_option_optimization_table): - Enable flag_ree at -O2 or higher. - -2011-12-22 Richard Guenther - - PR lto/51650 - * lto.c (uniquify_nodes): Register TYPE_DECLs with the - debuginfo machinery. - -2011-12-22 Bernd Schmidt - - * tree-pass.h (pass_reload): Declare. - * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots): - New global variables, moved out of ira. - (do_reload): New static function, split off from the second half - of ... - (ira): ... here. - (gate_ira): Remove. - (pass_ira): Use TV_IRA, set gate to NULL, and set flags to - TODO_dump_func. - (rest_of_handle_reload): New static function. - (pass_reload): New. - -2011-12-22 Uros Bizjak - - * common/config/i386/i386-common.c (ix86_option_optimization_table): - Move OPT_free processing from ... - * config/i386/i386.c (ix86_option_override_internal): ... here. - -2011-12-21 Richard Earnshaw - - PR target/51643 - * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a - weak function on bare-metal EABI targets. - -2011-12-21 Jonathan Wakely - Jim Avera - - * doc/extend.texi (__builtin_expect): Improve example. - -2011-12-21 Uros Bizjak - - * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree - also for 32bit targets. - -2011-12-21 Richard Henderson - - PR target/51552 - * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code... - (scan_trace): ... here. - -2011-12-21 Jason Merrill - - * doc/standards.texi (C++ language): Update for C++11. - -2011-12-21 Jakub Jelinek - - * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize - *op0 and *op1 to NULL_TREE first to avoid warnings. - * calls.c (initialize_argument_information): Initialize base to avoid - warnings. - - PR middle-end/51644 - PR middle-end/51647 - * tree-eh.c (decide_copy_try_finally): At -O0, return true - even when ndests is not 1, if there are only gimple_clobber_p - (or debug) stmts in the finally sequence. - * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p - stmts. - -2011-12-21 Aldy Hernandez - - PR middle-end/51472 - * trans-mem.c (tm_log_add): Use create_tmp_var_reg. - -2011-12-21 Martin Jambor - - * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines. - (rewrite_update_enter_block): Likewise. - (dump_update_ssa): Likewise. - (update_ssa): Likewise but also dump a newline at the beginning. - -2011-12-21 Enkovich Ilya - - PR target/50038 - * implicit-zee.c: Delete. - * ree.c: New file. - * Makefile.in: Replace implicit-zee.c with ree.c. - * config/i386/i386.c (ix86_option_override_internal): Rename - flag_zee to flag_ree. - * common.opt (fzee): Ignored. - (free): New. - * passes.c (init_optimization_passes): Replace pass_implicit_zee - with pass_ree. - * tree-pass.h (pass_implicit_zee): Delete. - (pass_ree): New. - * timevar.def (TV_ZEE): Delete. - (TV_REE): New. - * doc/invoke.texi: Add -free description. - -2011-12-21 Tristan Gingold - - * config/vms/vms-protos.h (vms_function_section): New prototype. - * config/vms/vms.c (vms_function_section): New function. - * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define. - -2011-12-21 Richard Guenther - - PR lto/41159 - * tree-outof-ssa.c (insert_value_copy_on_edge): Use the - mode of the pseudo as destination mode. Only assert that - is equal to the promoted mode of the decl if it is a REG. - -2011-12-21 Tristan Gingold - - * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define. - -2011-12-20 Richard Henderson - - * config/ia64/ia64.c (MAX_VECT_LEN): New. - (struct expand_vec_perm_d): New. - (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. - (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1. - (expand_vselect, expand_vselect_vconcat): New. - (expand_vec_perm_identity, expand_vec_perm_shrp): New. - (expand_vec_perm_1, expand_vec_perm_broadcast): New. - (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New. - (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New. - (ia64_vectorize_vec_perm_const_ok): New. - (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/vect.md (VEC): New mode iterator. - (vecint): New mode attribute. - (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'. - (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise. - (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise. - (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise. - (mix1_even, mix1_odd, mux1_alt): Likewise. - (mux1_brcst_qi): Remove '*' from name. - (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove. - (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove. - (vec_extract_evenv2si, vec_extract_oddv2si): Remove. - (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. - (vec_extract_evenodd_helper): Remove. - (vec_setv2sf): Use ia64_expand_vec_setv2sf. - (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd. - (vec_pack_trunc_v2si): Likewise. - (vec_perm_const): New. - -2011-12-20 Richard Henderson - - * tree-vect-generic.c (expand_vector_operations_1): Correct tests - for vector types -- use the type not the mode. Fix optab selection - for vector shifts by a scalar. Handle over-large integer modes - like BLKmode. - -2011-12-20 Richard Henderson - - * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform - post-reload splitting. - - * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2. - * config/arm/arm.c (arm_select_cc_mode): Use it. - -2011-12-20 Richard Sandiford - - * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict - handling of signedness differences to integer types. Only build - a new optype if type1 isn't correct. - -2011-12-20 Vladimir Makarov - - PR target/49865 - * ira-costs.c (find_costs_and_classes): Prefer registers even - if the memory cost is the same. - -2011-12-20 Joseph Myers - - * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield) - (finish_struct): Refer to C11 in comments. Use flag_isoc11. - * c-parser.c (c_parser_static_assert_declaration) - (c_parser_static_assert_declaration_no_semi, c_parser_declspecs) - (c_parser_alignas_specifier, c_parser_alignof_expression): Refer - to C11 in comments. Use flag_isoc11. - * c-typeck.c (comptypes_check_different_types): Refer to C11 in - comment. - * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x. - * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference - to -std=c1x and -std=gnu1x. - * doc/extend.texi (Inline, Alternate Keywords, Other Builtins) - (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11 - instead of -std=c1x and C1X. - * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in - preference to -std=c1x. - (-std=gnu11): Document in preference to -std=gnu1x. - * doc/standards.texi: Document C11 instead of C1X. Document C11 - as actual standard. Document headers required from freestanding - C11 implementations. - * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >= - 201112L for C11. Update comments to refer to C11. - -2011-12-20 Andreas Schwab - - * configure: Regenerate. - -2011-12-20 Bernd Schmidt - - PR middle-end/51200 - * expr.c (store_field): Avoid a direct store if the mode is larger - than the size of the bit field. - * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields, - treat non-volatile bit fields like volatile ones. - * toplev.c (process_options): Disallow combination of - -fstrict-volatile-bitfields and ABI versions less than 2. - * config/arm/arm.c (arm_option_override): Don't enable - flag_strict_volatile_bitfields if the ABI version is less than 2. - * config/h8300/h8300.c (h8300_option_override): Likewise. - * config/rx/rx.c (rx_option_override): Likewise. - * config/m32c/m32c.c (m32c_option_override): Likewise. - * config/sh/sh.c (sh_option_override): Likewise. - -2011-12-20 Richard Guenther - - PR lto/46796 - * dwarf2out.c (modified_type_die): When the type variant - chain is corrupt use the types name, if available, instead - of __unknown__. - -2011-12-20 Tristan Gingold - - * config/alpha/alpha.c (alpha_start_function): Adjust condition to - create VMS trampoline entry point. - -2011-12-19 Richard Sandiford - - PR rtl-optimization/42839 - * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND - optimization if the source register is already extended. - -2011-12-19 Richard Sandiford - - * lower-subreg.c (can_decompose_p): Check every word of a hard - register. - -2011-12-19 Sandra Loosemore - Tom de Vries - - PR rtl-opt/50380 - * cse.c (find_comparison_args): Detect fixed point and - bail early. - -2011-12-19 Aldy Hernandez - - PR middle-end/51411 - * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK. - -2011-12-19 Quentin Neill - - PR target/48743 - * config/i386/driver-i386.c (host_detect_local_cpu): Also check - family to distinguish PROCESSOR_ATHLON. - -2011-12-19 Richard Guenther - - PR lto/51573 - * streamer-hooks.h (struct streamer_hooks): Add second - ref_p parameter to write_tree. - (stream_write_tree): Adjust. - (stream_write_tree_shallow_non_ref): New define. - * lto-streamer.h (lto_output_tree): Adjust. - * lto-streamer-out.c (lto_output_tree): Likewise. - * tree-streamer-out.c (streamer_write_chain): Only - force the immediate tree to be streamed as non-reference. - -2011-12-19 Martin Jambor - - PR tree-optimization/51583 - * tree-sra.c (load_assign_lhs_subreplacements): Call - force_gimple_operand_gsi when necessary also in case of no - corresponding replacement on the RHS. - -2011-12-19 Jakub Jelinek - - * gimple.h (gimplify_seq_add_stmt): Rename to... - (gimple_seq_add_stmt_without_update): ... this. - * gimplify.c (gimplify_seq_add_stmt): Rename to... - (gimple_seq_add_stmt_without_update): ... this. - (gimplify_seq_add_stmt): New inline wrapper for it. - * tree-vect-patterns.c (append_pattern_def_seq): Use - gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt. - - PR tree-optimization/51596 - * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges - when needed. - - PR middle-end/51590 - PR tree-optimization/51606 - * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq): - New inline functions. - (vect_recog_over_widening_pattern, - vect_recog_vector_vector_shift_pattern, - vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern, - adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them. - -2011-12-19 Richard Guenther - - PR lto/51572 - * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL - from TYPE_FIELDS. - (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS. - * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do - not stream TREE_CHAIN. - (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS - using streamer_write_chain. - * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): - Do not stream TREE_CHAIN. - (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS - using streamer_read_chain. - * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs. - * gimple.c (gimple_canonical_types_compatible_p): Properly - handle trailing non-FIELD_DECLs in TYPE_FIELDS. - -2011-12-19 Andreas Schwab - - * configure: Regenerate. - -2011-12-19 Bernd Schmidt - - * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for - partial integer modes. - -2011-12-19 Andreas Schwab - - PR target/51532 - * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define. - * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS. - * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 || - TARGET_68040). - -2011-12-18 Anatoly Sokolov - - * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, - LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP, - GO_IF_LEGITIMATE_ADDRESS): Remove macros. - * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define. - (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg, - ia64_legitimate_address_disp, ia64_legitimate_address_p): New - functions. - -2011-12-17 Tom de Vries - - PR tree-optimization/51491 - * tree-ssa-ccp.c (insert_clobber_before_stack_restore) - (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function. - (ccp_fold_stmt): Use insert_clobbers_for_var after a successful - fold_builtin_alloca_with_align. - (ccp_visit_stmt): Calculate and free dominator info. - -2011-12-16 Eric Botcazou - - * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant. - (frame_blockage): New expander. - (frame_blockage): New instruction. - * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of - instructions establishing the frame isn't atomic, emit frame blockage. - -2011-12-16 Tristan Gingold - - * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define. - -2011-12-16 Tristan Gingold - - * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias. - (alpha_write_one_linkage): Use assemble_name to emit linkage name. - -2011-12-16 Tristan Gingold - - * config/vms/t-vms (vms.o, vms-c.o): Force output filename. - -2011-12-16 Tristan Gingold - - * config/vms/vms.c (VMS_CRTL_GLOBAL): Define. - (vms_patch_builtins): Handle. - * config/vms/vms-crtlmap.map: Add an entry for environ. - -2011-12-16 Jakub Jelinek - - PR debug/51557 - * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes - other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND. - - PR tree-optimization/51576 - * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt - even if fold_stmt didn't change anything. - -2011-12-16 Richard Guenther - - PR lto/51572 - * dwarf2out.c (gen_type_die_with_usage): Use the context of - the TYPE_DECL as well if it is file-scope. - -2011-12-15 DJ Delorie - - * config/rl78/rl78.md (return): Rename to rl78_return. - * config/rl78/rl78.c (rl78_expand_epilogue): Use new name. - (rl78_expand_eh_epilogue): Use new name. - (rl78_calculate_death_notes): Likewise. - -2011-12-15 Jakub Jelinek - - * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt - field, add pattern_def_seq. - (STMT_VINFO_PATTERN_DEF_STMT): Remove. - (STMT_VINFO_PATTERN_DEF_SEQ): Define. - (NUM_PATTERNS): Bump to 10. - * tree-vect-loop.c (vect_determine_vectorization_factor, - vect_transform_loop): Adjust for pattern def changing from a single - gimple stmt to gimple_seq. - * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info, - free_stmt_vec_info): Likewise. - * tree-vect-patterns.c (vect_recog_over_widening_pattern, - vect_recog_vector_vector_shift_pattern, - vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast, - adjust_bool_pattern, vect_mark_pattern_stmts): Likewise. - (vect_recog_sdivmod_pow2_pattern): New function. - (vect_vect_recog_func_ptrs): Add it. - - * config/i386/sse.md (vcond, - vcond, vcondv2di): - Use general_operand instead of nonimmediate_operand for - operand 5 and no predicate for operands 1 and 2. - * config/i386/i386.c (ix86_expand_int_vcond): Optimize - x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic - resp. logical shift. - -2011-12-15 Georg-Johann Lay - - * config/avr/avr-protos.h (print_operand): Remove. - (print_operand_address): Remove. - * config/avr/avr.h (PRINT_OPERAND): Remove. - (PRINT_OPERAND_ADDRESS): Remove. - (PRINT_OPERAND_PUNCT_VALID_P): Remove. - * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define. - (TARGET_PRINT_OPERAND_ADDRESS): New hook define. - (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define. - (print_operand_address): Rename to... - (avr_print_operand_address): ...this and make static. - (print_operand): Rename to... - (avr_print_operand): ...this and make static. - (avr_print_operand_punct_valid_p): New static function. - -2011-12-15 Andreas Tobler - - * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define. - -2011-12-15 Jakub Jelinek - - PR c/51360 - * c-parser.c (c_parser_omp_clause_num_threads, - c_parser_omp_clause_schedule): Call mark_exp_read. - -2011-12-15 Romain Geissler - - * builtins.def (BUILT_IN_STPNCPY_CHK): New definition. - * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning): - Add BUILT_IN_STPNCPY_CHK case. - * gimple-fold.c (gimple_fold_builtin): Likewise. - * tree-object-size.c (pass_through_call): Likewise. - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, - call_may_clobber_ref_p_1): Likewise. - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, - find_func_clobbers): Likewise. - * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk - * builtins.c (fold_builtin_strncpy_chk): Likewise. - Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is - ignored. - -2011-12-15 Richard Guenther - - PR lto/51567 - * gimple.c (compare_type_names_p): Also compare the TREE_CODE. - (iterative_hash_name): Also hash the TREE_CODE. - (gimple_types_compatible_p_1): For types with a TYPE_DECL - name and a type DECL_CONTEXT recurse to that type. - (iterative_hash_gimple_type): Likewise. - -2011-12-15 Iain Sandoe - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Move update of - VRSave mask to save_world() when that is in use. - -2011-12-15 Richard Guenther - - * lto-wrapper.c (run_gcc): In non-parallel mode remove - ltrans inputs immediately after processing them. In parallel - mode truncate the ltrans inputs in the make rule that processes - them if temporary files are not to be preserved. - -2011-12-15 Anatoly Sokolov - - * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. - * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost): - New functions. - (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. - -2011-12-15 Richard Guenther - - PR lto/51564 - * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY, - STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag - uses documentation. - (TREE_ASM_WRITTEN): Update documentation to mention its use - on TYPE_DECLs from debug info generation. - * tree-streamer-out.c (pack_ts_base_value_fields): Stream - TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to - all other types. - -2011-12-15 Georg-Johann Lay - - PR target/51050 - * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp. - (avr_prologue_setup_frame): Ditto. - -2011-12-15 Jakub Jelinek - - PR debug/51517 - * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test - !DECL_IGNORED_P instead of !DECL_ARTIFICIAL. - -2012-12-15 Richard Guenther - - Revert - PR lto/48437 - * lto-streamer-out.c (tree_is_indexable): Exclude block-local - extern declarations. - - PR lto/48508 - PR lto/48437 - * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL - VAR_DECLs and FUNCTION_DECLs locally. - -2011-12-14 Richard Henderson - - * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable. - (*compare_negsi_si, *compare_addsi2_op0): Likewise. - (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise. - (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise. - -2011-12-14 Richard Guenther - - * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for - propagating all kinds of constants. - -2011-12-14 Richard Guenther - - PR lto/51497 - * lto-streamer-in.c (lto_read_body): Fixup local types - TYPE_CANONICAL and variant chain. - -2011-12-14 Richard Guenther - - * tree.c (free_lang_data_in_type): Do not clear fields - dependent on debuginfo level setting. - (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN. - * tree.h (TYPE_STUB_DECL): Properly check that we access a type. - -2011-12-14 Georg-Johann Lay - - PR target/50931 - * config/avr/avr.md (mulpsi3): New expander. - (*umulqihipsi3, *umulhiqipsi3): New insns. - (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns. - (mulsqipsi3, *mulpsi3): New insn-and-splits. - (ashlpsi3): Turn to expander. Move insn code to... - (*ashlpsi3): ...this new insn. - -2011-12-14 Richard Guenther - - * tree-cfg.c (replace_uses_by): Only mark blocks altered - that will make a difference. Only recompute ADDR_EXPR - invariantness if it could possibly have changed. Do so - before folding the statement. - -2011-12-13 Eric Botcazou - - * lto-streamer-out.c (write_symbol): Use proper 64-bit host type. - * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets. - * lto-streamer-in.c (lto_read_body): Likewise. - (lto_input_toplevel_asms): Likewise. - * lto-section-in.c (lto_create_simple_input_block): Likewise. - * ipa-inline-analysis.c (inline_read_section): Likewise. - * ipa-prop.c (ipa_prop_read_section): Likewise. - - * df.h (DF_NOTE): Fix typo in comment. - -2011-12-13 Aldy Hernandez - - * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and - DECL_LANG_SPECIFIC. - -2011-12-13 Andreas Krebbel - - * regmove.c (fixup_match_2): Only access call_used_regs with hard regs. - -2011-12-13 Andrew Pinski - Adam Nemet - - * config/mips/mips-cpus.def: Add Octeon2. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.md (define_attr "cpu"): Add Octeon2. - * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2. - * config/mips/octeon.md (octeon_arith): Add Octeon2. - (octeon_condmove): Likewise. - (octeon_load): Rename to .. - (octeon_load_o1): this. - (octeon_load_o2): New reserve. - (octeon_cop_o2): New reserve. - (octeon_store): Match Octeon2 also. - (octeon_brj): Rename to .. - (octeon_brj_o1): this. - (octeon_brj_o2): New reserve. - (octeon_imul3): Rename to ... - (octeon_imul3_o1): this. - (octeon_imul3_o2): New reserve. - (octeon_imul): Rename to ... - (octeon_imul_o1): this. - (octeon_imul_o2): New reserve. - (octeon_mfhilo): Rename to ... - (octeon_mfhilo_o1): This. - (octeon_mfhilo_o2): New reserve. - (octeon_imadd): Rename to ... - (octeon_imadd_o1): this. - (octeon_imadd_o2): New reserve. - (octeon_idiv): Rename to .. - (octeon_idiv_o1): This. - (octeon_idiv_o2_si): New reserve. - (octeon_idiv_o2_di): Likewise. - (octeon_unknown): Match Octeon2 also. - * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data. - (mips_issue_rate): Octeon2 can issue 2 at a time. - * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also. - (TARGET_OCTEON2): New define. - (TUNE_OCTEON): Match Octeon2 also. - -2011-12-13 Richard Henderson - - * config/sparc/tso.h: New file. - * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it. - * config/sparc/sparc.c (sparc_option_override): Honor - SUBTARGET_DEFAULT_MEMORY_MODEL. - * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New. - -2011-12-13 Aldy Hernandez - - PR middle-end/51443 - * trans-mem.c (struct diagnose_tm): Remove saw_unsafe. - (diagnose_tm_1): Same. - (ipa_tm_execute): Do not test tm_may_enter_irr before we set it. - (ipa_tm_scan_irr_function): Return gracefully when no - DECL_STRUCT_FUNCTION. - (ipa_tm_scan_irr_block): Believe the user on TM attributes. - -2011-12-13 Martin Jambor - - PR middle-end/50628 - * tree-sra.c (propagate_subaccesses_across_link): Do not propagate - sub-accesses of scalar accesses. - -2011-12-13 Martin Jambor - - PR tree-optimization/51362 - * ipa-cp.c (estimate_local_effects): When estimated size of a - specialized clone is zero, bump it to one. - -2011-12-13 Richard Guenther - - PR lto/48354 - * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE. - * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): - Stream DECL_ORIGINAL_TYPE. - * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): - Likewise. - -2011-12-13 Jakub Jelinek - - Revert - 2011-12-12 Jakub Jelinek - - PR tree-optimization/51481 - * gimple-fold.c (gimple_fold_call): Call - maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH - edges, but gimple_fold_builtin result can't throw. - -2011-12-13 Jakub Jelinek - Michael Matz - - PR tree-optimization/51117 - * tree-eh.c (sink_clobbers): New function. - (execute_lower_eh_dispatch): Call it for BBs ending with - internally throwing RESX. - * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only - at the first real instruction. - -2011-12-13 Tristan Gingold - - * final.c (final_scan_insn): Guard the call to begin_epilogue - debug hook. - -2011-12-13 Tristan Gingold - - * vmsdbgout.c (vmsdbgout_write_source_line): New function. - (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line. - (vmsdbgout_begin_epilogue): Likewise. - (vmsdbgout_end_epilogue): Likewise. - (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line. - -2011-12-13 Richard Guenther - - PR middle-end/51481 - * tree-cfg.c (replace_uses_by): Pass proper arguments to - maybe_clean_or_replace_eh_stmt. - -2011-12-13 Richard Guenther - - PR tree-optimization/51519 - * ipa-inline.c (edge_badness): Use edge growth in non-guessed - branch probability case as well. - -2011-12-13 Revital Eres - - * modulo-sched.c (mark_loop_unsched): Free bbs. - -2011-12-12 Jakub Jelinek - - PR rtl-optimization/51495 - * function.c (thread_prologue_and_epilogue_insns): Don't add - to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges - from basic blocks not needing prologue. - - PR tree-optimization/51481 - * gimple-fold.c (gimple_fold_call): Call - maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH - edges, but gimple_fold_builtin result can't throw. - -2011-12-12 Vladimir Makarov - - PR rtl-optimization/21617 - * ira-color.c (bucket_allocno_compare_func): Don't compare - allocno classes. Compare number of hard registers needed. - -2011-12-12 Eric Botcazou - - PR tree-optimization/50569 - * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs - in the expression of MODEL instead of just the last one. - -2011-12-12 Jakub Jelinek - - PR middle-end/51510 - * calls.c (internal_arg_pointer_based_exp_scan): Don't use - VEC_safe_grow_cleared if idx is smaller than VEC_length. - -2011-12-12 Richard Sandiford - - PR middle-end/50873 - * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg - instead of force_reg. Do nothing if the address is already a - non-virtual pseudo register. - -2011-12-12 Torvald Riegel - - * gimplify.c (voidify_wrapper_expr): Add default handling for - outermost wrapper. - -2011-12-12 Torvald Riegel - - * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction - commits as equal. - -2011-12-12 Iain Sandoe - - * config/darwin-sections.def (zobj_const_data_section): Fix over- - length section name. - -2011-12-11 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_expand_interleave): Use - BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN. - -2011-12-11 Jakub Jelinek - - PR tree-optimization/51485 - * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on - DRs in call stmts. - -2011-12-11 Patrick Marlier - - * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge. - -2011-12-10 Richard Henderson - - * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as - vec_select + vec_concat. - (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb, - altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise. - (vec_perm_constv16qi): New. - (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode, - vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi, - vec_interleave_high, vec_interleave_low): Remove. - * config/rs6000/paired.md (paired_merge00): Rewrite pattern as - vec_select + vec_concat. - (paired_merge10, paired_merge01, paired_merge11): Likewise. - (vec_perm_constv2sf): New. - (vec_interleave_highv2sf, vec_interleave_lowv2sf, - vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. - * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as - vec_select + vec_concat. - (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New. - (vec_perm_constv2si): New. - * config/rs6000/vector.md (vec_interleave_highv4sf, - vec_interleave_lowv4sf, vec_interleave_high, - vec_interleave_low): Remove. - * config/rs6000/vsx.md (VS_double): New mode attribute. - (UNSPEC_VSX_XXPERMDI): Remove. - (vsx_xxpermdi__1): Rewrite pattern as vec_select + vec_concat. - (vsx_xxmrghw_, vsx_xxmrglw_): Likewise. - (vsx_xxpermdi_): Change to expander. - (vec_perm_const): New. - (vsx_mergel_, vsx_mergeh_): New. - * config/rs6000/predicates.md (const_0_to_1_operand): New. - (const_2_to_3_operand): New. - * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. - (altivec_expand_vec_perm_const): New. - (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New. - (rs6000_vectorize_vec_perm_const_ok): New. - (rs6000_do_expand_vec_perm): New. - (rs6000_expand_extract_even, rs6000_expand_interleave): New. - * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes. - * config/rs6000/rs6000-modes.def: Add double-wide vector modes. - * config/rs6000/rs6000-protos.h: Update. - -2011-12-10 Richard Henderson - - * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a - CONST_INT to expand_vec_perm as the selector. - * optabs.c (expand_vec_perm): Assert the selector is of a proper mode. - -2011-12-10 Richard Henderson - - * genmodes.c (struct mode_data): Remove wider_2x member. - (blank_mode): Adjust initializer. - (calc_wider_mode): Use XALLOCAVEC. - (emit_move_wider): Select double-width same-element vectors for - 2xwider vectors. - * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation. - * config/i386/i386.c (doublesize_vector_mode): Remove. - (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead. - -2011-12-10 Joern Rennecke - - * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define. - (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise. - (USE_STORE_POST_DECREMENT): Likewise. - - * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro, - broken out of .. - (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO. - (DWARF_FRAME_RETURN_COLUMN): New macro. - - * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare. - * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute): - Split "timer" value into "timer0" and "timer1". - Handle page_miss, message and wand. Don't handle static_flag. - Adjust warning text. - (epiphany_start_function): New function. - (epiphany_compute_function_type): Split "timer" value into "timer0" - and "timer1". Handle page_miss, message and wand. - Don't handle static_flag. - (epiphany_expand_epilogue): Don't use frame_insn for status / iret - restore. - * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define. - (enum epiphany_function_type): - Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0 - and EPIPHANY_FUNCTION_TIMER1. - Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values. - Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values. - Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND. - -2011-12-10 Nathan Sidwell - - PR gcov-profile/51449 - * coverage.c (coverage_end_function): Always process the coverage - variables. - -2011-12-09 Aldy Hernandez - - PR/51291 - * tree.c (build_common_builtin_nodes): Do not use TM_PURE - attribute unless language has support for TM. - * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in - the absence of TM builtins. - -2011-12-09 Eric Botcazou - - * gimple-fold.c (gimple_fold_stmt_to_constant_1) : - Also check the TYPE_MODE to recognize useless pointer conversions. - -2011-12-09 Jakub Jelinek - - PR tree-optimization/51117 - * tree-eh.c (optimize_clobbers): Don't remove just one - clobber, but all consecutive clobbers before RESX. - Use gimple_clobber_p predicate. - -2011-12-09 Michael Meissner - - * config/rs6000/rs6000.c (altivec_expand_builtin): Call - expand_call to return a valid funciton instead of return - cosnt0_rtx/NULL_RTX if there was an error with the builtin. - (altivec_expand_ld_builtin): Ditto. - (rs6000_inner_target_options): If VSX is selected as a target - attribute or pragma, enable ALTIVEC also. - (rs6000_pragma_target_parse): Call rs6000_option_override_internal - to do all of the standard processing when switching options, - including redefining appropriate macros. - - PR rtl-optimization/51469 - * varasm.c (default_binds_local_p_1): If the symbol is a gnu - indirect function, mark the symbol as non-local. - -2011-12-09 H.J. Lu - - PR bootstrap/51479 - * Makefile.in (errors.o): Restored. - -2011-12-09 Richard Guenther - - PR lto/48042 - * tree.c (free_lang_data_in_decl): Remove freeing conditional - on debuginfo level. - -2011-12-09 Joern Rennecke - - PR middle-end/40154 - * emit-rtl.c (set_dst_reg_note): New function. - * rtl.h (set_dst_reg_note): Declare. - * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note. - (emit_libcall_block, expand_fix): Likewise. - * function.c (assign_parm_setup_reg, expand_function_start): Likewise. - * expmed.c (expand_mult_const, expand_divmod): Likewise. - * reload1.c (gen_reload): Likewise. - - * dse.c (get_stored_val, get_call_args): Use gen_int_mode. - * expmed.c (expand_divmod): Likewise. - * combine.c (simplify_if_then_else): Likewise. - -2011-12-09 Kai Tietz - - * ira-color.c (print_hard_regs_subforest): Use - HOST_WIDEST_INT_PRINT_DEC instead of %lld. - (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT. - (add_allocno_hard_regs): Change type of argument cost - to HOST_WIDEST_INT. - * ira-conflict.c (build_conflict_bit_table): Replace use - of long-long by HOST_WIDEST_INT. - -2011-12-09 Georg-Johann Lay - - PR target/51425 - * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use - zero_extract:QIHI instead of zero_extract:HI. - -2011-12-09 Jakub Jelinek - Andrew Pinski - - PR tree-optimization/51117 - * tree-eh.c (optimize_clobbers): New function. - (execute_lower_eh_dispatch): Call it. - -2011-12-09 Richard Guenther - - PR tree-optimization/51482 - * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): - Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors. - -2011-12-09 Kai Tietz - - * implicit-zee.c (num_realized): Change type to long. - (num_ze_opportunities): Likewise. - -2011-12-08 Andrew Pinski - - * config/mips/mips-cpus.def (octeon+): New CPU. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'. - -2011-12-08 Bill Schmidt - - PR middle-end/39976 - * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI. - (struct hashable_expr): Add struct phi field. - (initialize_hash_element): Handle phis; change to use XCNEWVEC. - (hashable_expr_equal_p): Handle phis. - (iterative_hash_hashable_expr): Likewise. - (print_expr_hash_elt): Likewise. - (free_expr_hash_elt): Likewise. - (dom_opt_enter_block): Create equivalences from redundant phis. - (eliminate_redundant_computations): Handle redundant phis. - (lookup_avail_expr): Handle phis. - -2011-12-08 Jakub Jelinek - - PR tree-optimization/51466 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy - TREE_SIDE_EFFECTS. - -2011-12-08 Richard Guenther - - * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts - volatile when processing operands of an ADDR_EXPR. - (get_indirect_ref_operands): Likewise. - (get_tmr_operands): Likewise. - (get_expr_operands): Likewise. - -2011-12-08 Andreas Krebbel - - PR target/50395 - * config/s390/s390.c (s390_mainpool_finish): Emit the jump over - the literal pool as jump insn. - -2011-12-08 Richard Guenther - - PR tree-optimization/49772 - * tree-inline.c (optimize_inline_calls): Remove bail out on errors. - -2011-12-08 Richard Guenther - - PR lto/50747 - * lto-streamer-out.c (produce_symtab): Remove asserts. - -2011-12-08 Richard Guenther - - PR lto/49945 - * lto-streamer-out.c (tree_is_indexable): Localize variably - modified types and their FIELD_DECLs. - -2011-12-08 Eric Botcazou - - PR tree-optimization/51315 - * tree.h (get_object_or_type_alignment): Declare. - * expr.c (get_object_or_type_alignment): Move to... - * builtins.c (get_object_or_type_alignment): ...here. Add assertion. - * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to... - (tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into - MEM_REFs and use get_object_or_type_alignment for them. - (build_accesses_from_assign): Adjust for above change. - (access_precludes_ipa_sra_p): Likewise. - -2011-12-08 Richard Guenther - - PR lto/48437 - * lto-streamer-out.c (tree_is_indexable): Exclude block-local - extern declarations. - -2011-12-07 Andrew Pinski - - PR middle-end/45416 - * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for - SSA-expand. - -2011-12-07 Richard Guenther - - PR tree-optimization/50823 - * ipa-inline.c (edge_badness): Do not account for the number of - remaining calls. - -2011-12-07 Martin Jambor - - PR tree-optimization/50744 - * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive, - compute evaluation in HOST_WIDEST_INT. - (safe_add): New function - (propagate_effects): Use safe_add to accumulate effects. - -2011-12-06 Joel Sherrill - - * config/rs6000/rtems.h: Switch to using global_options_set - in SUBSUBTARGET_OVERRIDE_OPTIONS. - -2011-12-06 David S. Miller - - * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection. - -2011-12-06 Georg-Johann Lay - - * config/avr/avr.c (avr_file_start): Fix missing , - -2011-12-06 Jakub Jelinek - - PR target/51354 - * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note - unconditionally. - -2011-12-06 Georg-Johann Lay - - Forward-port from gcc-4_6-branch r181936 2011-12-02. - * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and - AT86RF401 have a 16-bit SP (their manual is bogus). - -2011-12-06 Georg-Johann Lay - - Forward-port from gcc-4_6-branch r181936 2011-12-02. - - PR target/51002 - * config/avr/avr.md (movhi_sp_r): Set insn condition to - !AVR_HAVE_8BIT_SP. - * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in - %B0,__SP_H__" if AVR_HAVE_8BIT_SP. - (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP. - -2011-12-06 Georg-Johann Lay - - PR target/51409 - PR target/49868 - * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1, - ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4, - ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum. - (avr_addrspace_t): New typedef. - (avr_addrspace): New declaration. - * config/avr/avr-c.c (avr_toupper): New static function. - (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use - avr_addrspace to get address space information. - * config/avr/avr.c (avr_addrspace): New variable. - (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes, - avr_asm_named_section, avr_section_type_flags, - avr_asm_select_section, avr_addr_space_address_mode, - avr_addr_space_convert, avr_emit_movmemhi): Use it. - (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode. - (avr_pgm_segment): Remove. - -2011-12-06 Richard Guenther - - PR middle-end/50601 - * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation - quirk adjustjment ... - * passes.c (rest_of_decl_compilation): ... here. - -2011-12-06 Richard Guenther - - PR middle-end/51436 - * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check - for the fact we do not have virtual operands when not optimizing. - -2011-12-06 Richard Guenther - - PR tree-optimization/51245 - * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces): - New function. - (vn_reference_lookup_3): Use it. Properly valueize all refs we create. - -2011-12-06 Iain Sandoe - - * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize - rs6000_current_abi. - -2011-12-06 Richard Guenther - - PR tree-optimization/51363 - * gimple.c (gimple_rhs_has_side_effects): Remove. - * gimple.h (gimple_rhs_has_side_effects): Likewise. - * tree-ssa-dom.c (optimize_stmt): Simplify conditional. - -2011-12-06 Alan Modra - - PR target/50906 - * config/rs6000/rs6000.c (rs6000_emit_prologue ): - Do not mark r11 setup as frame-related. Pass correct offset to - rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related - arguments. Correct sp_offset. Remove "offset" fudge from - in-line rs6000_frame_related call. Rename misleading variable. - Fix comments and whitespace. Tidy some expressions. - (rs6000_emit_epilogue ): Always set frame_reg_rtx - to r11 in out-of-line case. Correct sp_offset. Pass correct - offset to rs6000_emit_savres_rtx. Rename misleading variable. - Fix comments and whitespace. Tidy some expressions. - (rs6000_emit_epilogue ): Add sp_offset - adjustment when !saving_GPRs_inline. Correct register mode - used in address calcs. - (rs6000_emit_epilogue ): Similarly when - !restoring_GPRs_inline. - -2011-12-06 Ramana Radhakrishnan - - * config/arm/vfp.md (*combine_vcvt_f64_): Fix - formatting character for vmov.f64 case. - -2011-12-05 Jakub Jelinek - - PR tree-optimization/51396 - * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize - if MUL_RESULT has zero uses. - - PR debug/51410 - * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls - for debug info if scope is file_scope. - - PR c/51339 - * c-decl.c (c_finish_incomplete_decl, finish_decl): Call - relayout_decl instead of layout_decl. - -2011-12-05 Richard Sandiford - - * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK - if there is in epilogue. - -2011-12-05 Richard Sandiford - - * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target - to emit_library_call_value. - (expand_atomic_compare_and_swap): Likewise. - -2011-12-05 Vladimir Makarov - - PR other/50775 - * ira-int.h (struct ira_object): Remove add_data. - (OBJECT_ADD_DATA): Remove. - - * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA - initialization. - - * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to - allocno_hard_regs_t, allocno_hard_regs. - (object_hard_regs_node_t, object_hard_regs_node): Rename to - allocno_hard_regs_node_t and allocno_hard_regs_node. - (struct allocno_color_data): Add new member last_process. Move - profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start - from object_color_data. - (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove. - (curr_allocno_process): New static variable. - (object_hard_regs_eq, object_hard_regs_htab): Rename to - allocno_hard_regs_eq and allocno_hard_regs_htab. - (init_object_hard_regs, finish_object_hard_regs): Rename to - init_allocno_hard_regs and finish_allocno_hard_regs. - (object_hard_regs_compare, object_hard_regs_node_t): Rename to - allocno_hard_regs_compare and allocno_hard_regs_node_t. - (create_new_object_hard_regs_node): Rename to - create_new_allocno_hard_regs_node. - (add_new_object_hard_regs_node_to_forest): Rename to - add_new_allocno_hard_regs_node_to_forest. - (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): - Rename to add_allocno_hard_regs_to_forest and - collect_allocno_hard_regs_cover. - (setup_object_hard_regs_nodes_parent): Rename to - setup_allocno_hard_regs_nodes_parent. - (remove_unused_object_hard_regs_nodes): Rename to - remove_unused_allocno_hard_regs_nodes. - (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num): - Rename to enumerate_allocno_hard_regs_nodes and - allocno_hard_regs_nodes_num. - (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to - allocno_hard_regs_nodes and allocno_hard_regs_subnode_t. - (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to - allocno_hard_regs_subnode and allocno_hard_regs_subnodes. - (object_hard_regs_subnode_index): Rename to - allocno_hard_regs_subnode_index. - (setup_object_hard_regs_subnode_index): Rename to - setup_allocno_hard_regs_subnode_index. - (get_object_hard_regs_subnodes_num): Rename to - get_allocno_hard_regs_subnodes_num. - (form_object_hard_regs_nodes_forest): Rename to - form_allocno_hard_regs_nodes_forest. - (finish_object_hard_regs_nodes_tree): Rename to - form_allocno_hard_regs_nodes_forest - (finish_object_hard_regs_nodes_forest): Rename to - finish_allocno_hard_regs_nodes_forest. - (setup_left_conflict_sizes_p): Use allocno data instead of object ones. - Process conflict allocnos once. - (update_left_conflict_sizes_p): Use allocno data instead of object - ones. Change prototype signature. - (empty_profitable_hard_regs): Use allocno data instead of object ones. - (setup_profitable_hard_regs): Ditto. - (get_conflict_profitable_regs): Rename to - get_conflict_and_start_profitable_regs. Use allocno data for - profitable regs calculation. - (check_hard_reg_p): Change prototype signature. Check profitable - regs for allocno not the objects. - (assign_hard_reg): Process conflict allocnos only once for - updating conflict costs. - (setup_allocno_available_regs_num): Use allocno data instead of - object ones. Modify debug output. - (color_pass): Remove initialization and finalization of object - color data. - -2011-12-05 Kazu Hirata - - PR target/51408 - * config/arm/arm.md (*minmax_arithsi): Always require the else - clause in the MINUS case. - -2011-12-05 Richard Guenther - - PR tree-optimization/50904 - * tree-ssa-loop-im.c (struct mem_ref): Remove vops member. - (MEM_ANALYZABLE): New. - (memory_references): Remove clobbered_vops and vop_ref_map - members, add all_refs_stored_in_loop member. - (memref_free): Adjust. - (mem_ref_alloc): Likewise. - (gather_mem_refs_stmt): Do not record clobbers, instead - record refs for unanalyzable stmts. - (gather_mem_refs_in_loops): Do not propagate clobbers. - (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free, - record_vop_access, get_vop_accesses, get_vop_stores, - add_vop_ref_mapping): Remove. - (create_vop_ref_mapping_loop): Adjust to simply record all stores. - (analyze_memory_references): Adjust. - (refs_independent_p): Check for not analyzable refs. - (can_sm_ref_p): Likewise. - (ref_indep_loop_p_1): Simplify. - (tree_ssa_lim_finalize): Adjust. - - * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE - rather than magic constants. Assign zero cost to PAREN_EXPR - and SSA_NAME copies. Assign cost proportional to the vector - size for vector constructors. - -2011-12-05 Richard Guenther - - * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field. - * tree-ssa-alias.c (ao_ref_init): Initialize it. - (ao_ref_init_from_ptr_and_size): Likewise. - (refs_may_alias_p_1): Two volatile accesses conflict. - (ref_maybe_used_by_call_p_1): Likewise. - (call_may_clobber_ref_p_1): Likewise. - * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize - volatile_p field. - -2011-12-05 Richard Guenther - - * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA - names. Remove SSA operand checking, call verify_ssa_operands. - * tree-ssa-operands.h (verify_ssa_operands): Declare. - * tree-ssa-operands.c (verify_ssa_operands): New function. - -2011-12-05 Ramana Radhakrishnan - - * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. - * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare. - * config/arm/constraints.md ("Dt"): New constraint. - * config/arm/predicates.md - (const_double_vcvt_power_of_two_reciprocal): New. - * config/arm/vfp.md (FCVTI32typename): New. - (FCVT): New iterator. - (*combine_vcvt_f32_): New. - (*combine_vcvt_f64_): New. - -2011-12-05 Richard Guenther - - * cgraph.c (cgraph_create_edge_1): Initialize - call_stmt_cannot_inline_p from the stmt if possible. - (cgraph_make_edge_direct): Likewise. - * gimple-streamer-in.c (input_gimple_stmt): Do not - call gimple_call_set_cannot_inline. - * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values. - (gimple_call_set_cannot_inline): Remove. - (gimple_call_cannot_inline_p): Likewise. - * ipa-inline-analysis.c (initialize_inline_failed): Look - at the edge call_stmt_cannot_inline_p flag. - * ipa-inline.c (can_inline_edge_p): Likewise. - (early_inliner): Only update the edge flag. - * ipa-prop.c (update_indirect_edges_after_inlining): Likewise. - (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline. - * cgraphunit.c (assemble_thunk): Likewise. - * gimple-fold.c (gimple_fold_call): Likewise. - - * tree.h (CALL_CANNOT_INLINE_P): Remove. - * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls. - * builtins.c (expand_builtin_alloca): With -fmudflap do not expand - alloca calls inline. - * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P. - * gimple.c (gimple_build_call_from_tree): Do not read - CALL_CANNOT_INLINE_P. - * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P. - -2011-12-05 Jakub Jelinek - Eric Botcazou - - PR middle-end/51323 - PR middle-end/50074 - * calls.c (internal_arg_pointer_exp_state): New variable. - (internal_arg_pointer_based_exp_1, - internal_arg_pointer_exp_scan): New functions. - (internal_arg_pointer_based_exp): New function. - (mem_overlaps_already_clobbered_arg_p): Use it. - (expand_call): Free internal_arg_pointer_exp_state.cache vector - and clear internal_arg_pointer_exp_state.scan_start. - -2011-12-04 Kaz Kojima - - * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC. - * config/sh/sync.md: New file. - * config/sh/sh.md: Include sync.md. - * config/sh/sh.opt (msoft-atomic): New option. - * doc/invoke.texi (SH Options): Document it. - -2011-12-04 Nathan Sidwell - - * gcov-io.h (struct gcov_info): Replace trailing array with - pointer to array. - * profile.c (branch_prob): Only call renamed - coverage_begin_function once. - * coverage.h (coverage_begin_output): Rename to ... - (coverage_begin_function): ... here. - * coverage.c (struct function_list): Rename to ... - (struct coverage_data): ... this. Update all uses. - (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals. - (bbg_file_opened, bbg_function_announced): Remove. - (get_coverage_counts): Adjust message. - (coverage_begin_ouput): Rename to ... - (coverage_begin_function): ... here. Move file opening to - coverage_init. Adjust for being called only once. - (coverage_end_function): Remove bbg file and inhibit further - output here on error. - (build_info_type): Adjust for change to pointer to array. - (build_info): Receive array of function pointers and adjust. - (create_coverage): Break into ... - (coverage_obj_init, coverage_obj_fn, coverage_obj_finish): - ... these, and adjust. - (coverage_init): Open the notes file here. Tidy. - (coverage_finish): Call coverage_obj_init etc. - -2011-12-04 Ira Rosen - - PR middle-end/51285 - * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit - phi nodes for outer loop in case of double reduction. - -2011-12-04 Jérémie Detrey - - PR target/51393 - * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second - parameter as long long. - -2011-12-04 Richard Sandiford - - PR middle-end/51351 - * optabs.c (init_sync_libfuncs): Use "or" rather than "ior" - in the external names. - -2011-12-03 Jack Howarth - - * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for - non-PIC code when targeting 10.7 or later. - -2011-12-03 Iain Sandoe - - * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when - Darwin >= 10. - (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10. - (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10. - -2011-12-03 Jakub Jelinek - - * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR, - VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and - VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument. - (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR, - VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR - and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments. - - PR debug/50317 - * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type - vars that aren't referenced. - (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE - of unreferenced local vars. - * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also - TREE_ADDRESSABLE vars that satisfy target_for_debug_bind. - -2011-12-03 Anatoly Sokolov - - * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove. - * config/arm/arm-protos.h (aapcs_libcall_value): Remove. - * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define. - (arm_libcall_value_1, arm_function_value_regno_p): New function. - (arm_function_value, arm_libcall_value): Use arm_libcall_value_1. - (aapcs_libcall_value): Make static. - (arm_libcall_value): Add static qualifier. - -2011-12-02 Jakub Jelinek - - PR target/51387 - * config/i386/sse.md (mul3 with VI1_AVX2 iterator): For - V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 } - permutation instead of extract even permutation. - -2011-12-02 Nathan Sidwell - - * gcov.c (struct arc_info): Add is_throw field. - (struct (block_info): Add exceptional field, reduce flags size to - account for it. - (struct function_info): Add has_catch field. - (struct line_info): Add unexceptional field. - (process_file): Call find_exception_blocks if necessary. - (read_graph_file): Adjust. Note if an exceptional edge is seen. - (find_exception_blocks): New. - (add_line_counts): Set line's unexceptional flag if not exceptional. - (output_branch_count): Note exceptional arcs, lines and blocks. - * gcov-dump.c (tag_arcs): Decode arc flags. - * doc/gcov.texi: Document '=====' lines. - -2011-12-02 Anatoly Sokolov - - * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, - PRINT_OPERAND_PUNCT_VALID_P): Remove macros. - * config/ia64/ia64-protos.h (ia64_print_operand, - ia64_print_operand_address): Remove. - * config/ia64/ia64.c (TARGET_PRINT_OPERAND, - TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P): - Define. - (ia64_print_operand_punct_valid_p): New function. - (ia64_print_operand, ia64_print_operand_address): Make static. - -2011-12-02 Michael Meissner - - PR target/51390 - * config/rs6000/rs6000.c (def_builtin): Use the correct field to - figure out the function's attributes. - (struct builtin_description): Mark mask field as const since we no - longer need to modify it for SPE and PAIRED builtins. - -2011-12-02 Joseph Myers - - Revert: - - 2008-09-18 Andrew Pinski - - PR rtl-opt/37451 - * loop-doloop.c (doloop_modify): New argument zero_extend_p and - zero extend count after the correction to it is done. - (doloop_optimize): Update call to doloop_modify, don't zero extend - count before call. - - 2008-11-03 Andrew Pinski - - PR rtl-opt/37782 - * loop-doloop.c (doloop_modify): Add from_mode argument that says what - mode count is in. - (doloop_optimize): Update call to doloop_modify. - -2011-12-02 Richard Guenther - - PR lto/47259 - * ipa.c (varpool_externally_visible_p): Register variables - are always externally visible. - -2011-12-02 Sameera Deshpande - - * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if - non-NULL. - -2011-12-02 Martin Jambor - - PR tree-optimization/50622 - * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand - if both lacc and racc are grp_partial_lhs. - -2011-12-01 Kaz Kojima - - PR target/50814. - * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as - TARGET_SH3. - (shl_sext_kind): Likewise. - * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise. - * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove. - (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3. - (ashlsi3): Likewise. - (ashrsi3_d): Likewise. - (lshrsi3_d): Likewise. - (lshrsi3): Likewise. - -2011-12-01 Diego Novillo - - PR bootstrap/51346 - * ipa-inline.c (can_inline_edge_p): If the edge E has a statement, - use the statement's inline indicator instead of E's. - Remove consistency check. - -2011-12-01 Diego Novillo - - PR bootstrap/51346 - Revert - - 2011-11-29 Diego Novillo - - * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. - Update field call_stmt_cannot_inline_p from call - graph edge, if needed. - * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c. - -2011-12-01 Nathan Sidwell - - PR gcov-profile/51113 - * coverage.c (build_var): Keep coverage variables static. - -2011-12-01 Jakub Jelinek - - PR tree-optimization/51356 - * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if - vectype doesn't have VECTOR_MODE_P. - - PR debug/50317 - * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing - as unnecessary a store to a variable with gimple reg type. - * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit - on local unreferenced variables. - * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs - for !target_for_debug_bind variables. - -2011-12-01 Patrick Marlier - - PR middle-end/51273 - * cgraph.h (cgraph_call_node_duplication_hooks): Declare. - * cgraph.c (cgraph_call_node_duplication_hooks): Make global. - * cgraphunit.c (cgraph_copy_node_for_versioning): Call it. - -2011-12-01 Andrew Pinski - - PR lto/51198 - * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's - DECL_INITIAL also. - -2011-12-01 Jakub Jelinek - - PR tree-optimization/51246 - * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs. - - PR rtl-optimization/51014 - * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs - both from bb and orig_bb. - -2011-12-01 Joern Rennecke - - PR tree-optimization/50802 - * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test - considering what happens to ranges during sign changes and/or - intermediate narrowing conversions. - -2011-11-30 John David Anglin - - PR middle-end/50283 - * config/pa/pa.md (in_branch_delay): Disallow frame related insns. - (in_nullified_branch_delay): Likewise. - (in_call_delay): Likewise. - -2011-11-30 Richard Henderson - - * predict.c (expr_expected_value_1): Assume compare-and-swap builtin - boolean return is true. - -2011-11-30 Jakub Jelinek - - PR rtl-optimization/51044 - * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction - rather than just insn body. - - PR target/50725 - * function.c (thread_prologue_and_epilogue_insns): If - stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE - regset. - - PR middle-end/51089 - * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to - avoid creating duplicate edges here. - (cleanup_empty_eh_unsplit): And remove it in the caller. - -2011-11-30 Andrew Pinski - - PR c/51321 - * c-parser.c (c_parser_postfix_expression): Check groktypename results - before looking at the main variant. - -2011-11-30 Jakub Jelinek - - PR rtl-optimization/48721 - * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set - reg_pending_barrier to TRUE_BARRIER. - - PR rtl-optimization/48721 - * sched-ebb.c (begin_move_insn): Insert empty unreachable - block after BARRIER if insn is followed by it. - -2011-11-30 Richard Henderson - - * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New. - * config/sparc/sparc.opt (mmemory-model=): New option. - * doc/invoke.texi (Sparc Options): Document it. - * config/sparc/sparc.c (sparc_option_override): Provide default - for sparc_memory_model. - (sparc_emit_membar_for_model): Omit barrier combinations that are - implied by the memory model. - -2011-11-30 Richard Henderson - - * config/sparc/sync.md (I124MODE): New mode iterator. - (memory_barrier): Remove. - (atomic_exchangesi): New. - (swapsi): Rename from *swapsi. - (atomic_test_and_set): New. - (ldstubqi): Rename from *ldstubqi, merge with expander. - (ldstub): Rename from *ldstub, merge with expander. - (sync_lock_test_and_setsi): Remove. - (sync_lock_test_and_set): Remove. - -2011-11-30 Richard Henderson - - * config/sparc/constraints.md ("w"): New. - * config/sparc/predicates.md (mem_noofs_operand): New. - * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static. - Generate the boolean result of the atomic_compare_exchange. - (sparc_expand_compare_and_swap): New. - * config/sparc/sync.md (atomic_compare_and_swap): New. - (atomic_compare_and_swap_1): Rename from - *sync_compare_and_swap, use mem_noofs_operand. - (*atomic_compare_and_swapdi_v8plus): Rename from - *sync_compare_and_swapdi_v8plus, use mem_noofs_operand. - (sync_compare_and_swap): Remove. - (sync_compare_and_swap): Remove. - -2011-11-30 Richard Henderson - - * config/sparc/predicates.md (register_or_v9_zero_operand): New. - * config/sparc/sparc.md (UNSPEC_ATOMIC): New. - * config/sparc/sync.md (atomic_load): New. - (atomic_loaddi_1, atomic_store, atomic_storedi_1): New. - -2011-11-30 Richard Henderson - - * config/sparc/predicates.md (zero_or_v7_operand): New. - * config/sparc/sparc.c (sparc_emit_membar_for_model): New. - * config/sparc/sparc-protos.h: Update. - * config/sparc/sync.md (mem_thread_fence): New. - (memory_barrier): Use sparc_emit_membar_for_model. - (membar, *membar_empty, *membar_storestore, *membar_storeload): New. - (*membar_v8): Accept and ignore the membar mask. - (*membar): Accept and print the membar mask. - -2011-11-30 Matthew Gretton-Dann - - * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue. - * config/arm/arm.md (mul64): New attribute. - (generic_sched): Cortex-A15 is not scheduled generically. - (cortex-a15.md): Include. - * config/arm/cortex-a15.md: New machine description. - * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md. - -2011-11-30 Matthew Gretton-Dann - - * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed. - -2011-11-30 Iain Sandoe - - * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description. - * doc/tm.texi: Regenerate. - * flags.h (flag_next_runtime): Remove references. - * toplev.c: Likewise. - * defaults.h (NEXT_OBJC_RUNTIME): Provide default. - * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME. - * config/darwin.c (darwin_override_options): Provide default - Objective-C abi settings and target conflict checks. - * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused - code. Adjust indenting. - -2011-11-29 Joseph Myers - - * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES) - (REG_CLASS_CONTENTS): Add NON_SP_REGS. - (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS. - * config/sh/constraints.md (u): New constraint. - -2011-11-29 Oleg Endo - - PR target/51337 - * config/sh/sh.c (sh_secondary_reload): Add case when FPUL - register is being loaded from a pseudo in memory. - -2011-11-29 DJ Delorie - - * config.gcc (rl78-*-elf): New case. - * doc/extend.texi: Add RL78 documentation. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - * doc/contrib.texi: Add RL78. - * doc/install.texi: Add rl78-*-elf. - * config/rl78: New directory for the Renesas RL78. - -2011-11-29 Jakub Jelinek - - PR tree-optimization/51247 - * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision - types instead of adding 1 subtract -1 and instead of subtracting 1 - add -1 to avoid overflows. - -2011-11-29 Andrew MacLeod - - PR target/50123 - * optabs.c (maybe_optimize_fetch_op): New. Look for more optimal - instructions for a FECTH_OP or OP_FECTH sequence. - (expand_atomic_fetch_op): Call maybe_optimize_fetch_op. - -2011-11-29 Uros Bizjak - - * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs. - (movdi_via_fpu): Remove. - (loaddi_via_fpu): New insn pattern. - (storedi_via_fpu): Ditto. - (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu. - (atomic_storedi_fpu): Ditto. - * reg-stack.c (get_true_reg): Handle UNSPEC_LDA. - (subst_stack_regs_pat): Handle UNSPEC_STA. - -2011-11-29 Uros Bizjak - - * config/i386/i386.md (*floathi2_i387_with_temp): Do not - allocate scratch memory for alternative 0. - -2011-11-29 Michael Meissner - - * config/rs6000/rs6000-builtins.def: Completely rewrite builtin - handling to centralize more of the builtins in this file. Change - some builtin enumerations to be more consistant. Use a new mask - to hold the current builtins, including SPE and PAIRED builtins - which no longer are set via target_flags masks. Add - -mdebug=builtin debug support. For power machines, define all - Altivec and VSX buitins when the compiler starts, but don't allow - the use of a builtin unless the appropriate switch is used, or - #pragma GCC target is used to change the options. If the user - uses #pragma GCC target, update the appropriate hardware macros. - * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto. - * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto. - * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto. - (rs6000_define_or_undefine_macro): Ditto. - (rs6000_target_modify_macros): Ditto. - (rs6000_cpu_cpp_builtins): Ditto. - (altivec_overloaded_builtins): Ditto. - (altivec_build_resolved_builtin): Ditto. - * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto. - (rs6000_builtin_info): Ditto. - (def_builtin): Ditto. - (enable_mask_for_builtins): Ditto. - (DEBUG_FMT_X): Ditto. - (rs6000_debug_reg_global): Ditto. - (rs6000_builtin_mask_calculate): Ditto. - (rs6000_option_override_internal): Ditto. - (rs6000_builtin_conversion): Ditto. - (rs6000_builtin_vectorized_function): Ditto. - (bdesc_3arg): Ditto. - (bdesc_dst): Ditto. - (bdesc_2arg): Ditto. - (builtin_description_predicates): Ditto. - (bdesc_altivec_preds): Ditto. - (bdesc_spe_predicates): Ditto. - (bdesc_spe_evsel): Ditto. - (bdesc_paired_preds): Ditto. - (bdesc_abs): Ditto. - (bdesc_1arg): Ditto. - (rs6000_overloaded_builtin_p): Ditto. - (rs6000_expand_unop_builtin): Ditto. - (bdesc_2arg_spe): Ditto. - (spe_expand_builtin): Ditto. - (rs6000_invalid_builtin): Ditto. - (rs6000_expand_builtin): Ditto. - (rs6000_init_builtins): Ditto. - (spe_init_builtins): Ditto. - (paired_init_builtins): Ditto. - (altivec_init_builtins): Ditto. - (builtin_function_type): Ditto. - (rs6000_common_init_builtins): Ditto. - (rs6000_builtin_reciprocal): Ditto. - (rs6000_builtin_mask_names): Ditto. - (rs6000_pragma_target_parse): Ditto. - (rs6000_function_specific_print): Ditto. - * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto. - (MASK_DEBUG_ALL): Ditto. - (TARGET_DEBUG_BUILTIN): Ditto. - (TARGET_EXTRA_BUILTINS): Ditto. - (REGISTER_TARGET_PRAGMAS): Ditto. - (enum rs6000_btc): Ditto. - (RS6000_BTC_*): Ditto. - (RS6000_BTM_*): Ditto. - (enum rs6000_builtins): Ditto. - * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto. - (rs6000_target_modify_macros): Ditto. - (rs6000_target_modify_macros_ptr): Ditto. - - * config/rs6000/vector.md (unsfloat2): Use the - standard name for converting vector unsigned values to floating - point. Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which - is handled by machine independent code. - * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto. - (rs6000_builtin_conversion): Ditto. - -2011-11-29 Dodji Seketeli - - * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair. - (maybe_unwind_expanded_macro_loc): Adjust. - -2011-11-29 David Edelsohn - Aldy Hernandez - - * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl - if DECL_ONE_ONLY. - (ipa_tm_create_version): Same. - -2011-11-29 Bernd Schmidt - - * haifa-sched.c (recompute_todo_spec): Simplify and correct the - code checking for a clobber of a condition register when deciding - whether to predicate. - -2011-11-29 Diego Novillo - - * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. - Update field call_stmt_cannot_inline_p from call graph edge, if needed. - * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c. - -2011-11-29 Sameera Deshpande - - * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE. - (movdf_soft_insn): Likewise. - * config/arm/fpa.md (thumb2_movdf_fpa): Likewise. - * config/arm/neon.md (neon_mov): Likewise. - * config/arm/vfp.md (movdi_vfp): Likewise. - (movdi_vfp_cortexa8): Likewise. - (movdf_vfp): Likewise. - -2011-11-29 Jakub Jelinek - - PR middle-end/50074 - * expr.c (expand_expr_addr_expr_1): Don't call force_operand for - EXPAND_SUM modifier. - -2011-11-29 Ira Rosen - - PR tree-optimization/51301 - * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that - the last statement doesn't convert to a bigger type than the original - type of the computation. - -2011-11-28 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): - Handle overlap between retval and oldval. Always compute boolval - from CR0 EQ value. - -2011-11-28 Jakub Jelinek - - PR debug/50317 - * tree-ssa.c (execute_update_addresses_taken): Remove - var ={v} {CLOBBER} stmts instead of rewriting them into - var_N ={v} {CLOBBER}. - - PR middle-end/50907 - * function.c (convert_jumps_to_returns): When redirecting an edge - succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag. - - PR tree-optimization/50078 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over - TREE_THIS_VOLATILE also from the old to new lhs resp. rhs. - - PR tree-optimization/50682 - * tree-eh.c (maybe_remove_unreachable_handlers): New function. - * tree-flow.h (maybe_remove_unreachable_handlers): New prototype. - * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it. - -2011-11-28 Georg-Johann Lay - - * doc/extend.texi (AVR Built-in Functions): Add documentation for - __builtin_avr_map8 and __builtin_avr_map16. - - * config/avr/avr.md: Document new %t and %T asm output codes. - (define_c_enum "unspec"): Add UNSPEC_MAP_BITS. - (adjust_len): Add map_bits. - (map_bitsqi, map_bitshi): New insns. - * config/avr/avr-protos.h (avr_out_map_bits): New. - * config/avr/avr-protos.c (print_operand): Implement %t and %T. - (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS. - (avr_double_int_push_digit): New function. - (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions. - (avr_sig_map, avr_map_hamming_byte): New functions. - (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits, - avr_out_map_bits): New functions. - (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. - (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16. - (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ... - (avr_expand_builtin): ...and expand them. - * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines: - __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16. - -2011-11-27 Richard Sandiford - - PR target/51278 - * config/mips/mips.c (mips_rtx_costs): Handle baddu. - -2011-11-27 Richard Sandiford - - * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode. - -2011-11-27 Richard Sandiford - - * config/mips/mips-protos.h (mips_emit_binary): Declare. - * config/mips/mips.c (mips_emit_binary): Make global. - (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode. - (mips_conditional_register_usage): Don't treat LO and HI as - register operands in MIPS16 mode. - (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16 - for MIPS16 code. - * config/mips/predicates.md (muldiv_target_operand): New predicate. - (move_operand): Allow hilo_operand. - * config/mips/mips.md (mul3): Explicitly specify LO as the - target of MIPS16 multiplies, then move it into the target register. - (mul3_internal, *macc2, *msac2): Use muldiv_target_operand. - (mulsidi3_32bit_mips16): New expander. - (mulsidi3_32bit): Use muldiv_target_operand. - (mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP. - (mulsidi3_64bit): Require !TARGET_MIPS16. Split into - mulsidi3_64bit_split. - (mulsidi3_64bit_mips16): New expander. - (mulsidi3_64bit_split): Likewise, using expansions from - two previous define_splits. - (mulsidi3_64bit_hilo, *muls_di, msubsidi4): Use - muldiv_target_operand. - (mulsi3_highpart): Use mulsi3_highpart_split for MIPS16 code. - (mulsi3_highpart_internal): Require !TARGET_MIPS16. - Split into mulsi3_highpart_split. - (mulsi3_highpart_split): New expander. - (muldi3_highpart): Turn into a define_expand. - Use muldi3_highpart_split for MIPS16 code. - (muldi3_highpart_internal): Renamed from muldi3_highpart. - Require !TARGET_MIPS16. Split into muldi3_highpart_split. - (muldi3_highpart_split): New expander. - (mulditi3): Explicitly specify LO as the target of MIPS16 - multiplies, then move it into the target register. - (mulditi3_internal, maddsidi4): Use muldiv_target_operand. - (divmod4, udivmod4): Turn into define_expands. - Use divmod4_split for MIPS16 code, then explicitly - move LO into operand 0. - (divmod4_internal, udivmod4_internal): Renamed - from divmod4. Use muldiv_target_operand. - Require !TARGET_MIPS16. Split into divmod4_split. - (divmod4_split): New expander. - (divmod4_hilo_): Use muldiv_target_operand. - (mfhi_): Use hilo_operand. - -2011-11-27 Richard Sandiford - - * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set - and x_operand_reg_set. - (accessible_reg_set, operand_reg_set): New macros. - * reginfo.c (init_reg_sets): Initialize accessible_reg_set and - operand_reg_set. - (saved_accessible_reg_set, saved_operand_reg_set): New variables. - (save_register_info): Save them. - (restore_register_info): Restore them. - (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set. - Remove NO_REGS registers from operand_reg_set. Treat members - of operand_reg_set as fixed. - * recog.c (general_operand): Check operand_reg_set rather than NO_REGS. - (register_operand, nonmemory_operand): Likewise. - * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of - register variables. Check accessible_reg_set and operand_reg_set. - * config/mips/mips.c (mips_conditional_register_usage): Remove - inaccessible register from accessible_reg_set, rather than just - making them fixed. - -2011-11-27 Gerald Pfeifer - - * config/pa/pa-linux.h (TARGET_GAS): Remove comment. - -2011-11-26 Richard Henderson - - * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs - for Linux. - -2011-11-26 Richard Henderson - - * optabs.c (expand_atomic_fetch_op): Always return result. - - * optabs.c (init_sync_libfuncs_1): Include max in iteration. - - * omp-low.c (expand_omp_atomic): Assume anything aligned to - BIGGEST_ALIGNMENT is aligned. - -2011-11-26 Richard Henderson - - * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New. - (UNSPECV_TAS_1, UNSPECV_TAS_2): New. - (I): New mode iterator. - (xz): New mode attribute. - * config/m68k/sync.md: New file. - - * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New. - * config/m68k/m68k.c (m68k_init_sync_libfuncs): New. - -2011-11-26 Nathan Sidwell - - PR gcov-profile/51297 - * gcov.c (main): Allocate initial names and sources arrays. - (find_source): Don't check for null name or source arrays here. - -2011-11-26 Jakub Jelinek - - PR rtl-optimization/49912 - * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit - when counting n_branch. - -2011-11-26 Uros Bizjak - - * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes. - -2011-11-26 Joern Rennecke - - PR middle-end/50074 - * calls.c (mem_overlaps_already_clobbered_arg_p): - Return false if no outgoing arguments have been stored so far. - -2011-11-25 Georg-Johann Lay - - * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT. - -2011-11-24 Andrew MacLeod - - PR other/51011 - * tree.h (is_builtin_name): No longer external. - * builtins.c (is_builtin_name): Make static. - * varasm.c (incorporeal_function_p): __sync and __atomic external calls - are not incorporeal and may need asm label processing. - -2011-11-25 Georg-Johann Lay - - PR target/50566 - * config/avr/avr-protos.h (avr_log_t): Add field .builtin. - * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it. - Don't bypass TARGET_ALL_DEBUG. Print self-info with ?. - (avr_log_vadump): Support %D and %X to print double_int. - (avr_double_int_pop_digit): New static function. - (avr_dump_double_int_hex): New static function. - -2011-11-24 Enkovich Ilya - - PR target/51287 - * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn - attr check. - -2011-11-24 Andrew MacLeod - - * optab.c (maybe_emit_atomic_exchange): New. Try to emit an - atomic_exchange pattern. - (maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange - using __sync_lock_test_and_set. - (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an - exchange using a compare_and_swap loop. - (expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set. - (expand_atomic_test_and_set): New. Expand test_and_set operation. - (expand_atomic_exchange): Use new maybe_emit_* functions. - (expand_atomic_store): Use new maybe_emit_* functions. - * builtins.c (expand_builtin_sync_lock_test_and_set): Call - expand_sync_lock_test_and_set routine. - (expand_builtin_atomic_exchange): Remove parameter from call. - (expand_builtin_atomic_clear): Use atomic_clear pattern if present. - (expand_builtin_atomic_test_and_set): Add target and simply call - expand_atomic_test_and_set. - (expand_builtin): Add target to expand_builtin_atomic_test_and_set. - * expr.h (expand_atomic_exchange): Add parameter. - (expand_sync_lock_test_and_set): New prototype. - (expand_atomic_test_and_set, expand_atomic_clear): New prototypes. - -2011-11-24 H.J. Lu - - PR target/51134 - * config/i386/i386.h (processor_costs): Revert revision 181357. - * config/i386/i386.c (cost models): Likewise. - (core_cost): Likewise. - (promote_duplicated_reg): Likewise. - (promote_duplicated_reg_to_size): Likewise. - (processor_target): Likewise. - (expand_set_or_movmem_via_loop_with_iter): Likewise. - (expand_set_or_movmem_via_loop): Likewise. - (emit_strset): Likewise. - (expand_movmem_epilogue): Likewise. - (expand_setmem_epilogue): Likewise. - (expand_movmem_prologue): Likewise. - (expand_setmem_prologue): Likewise. - (expand_constant_movmem_prologue): Likewise. - (expand_constant_setmem_prologue): Likewise. - (decide_alg): Likewise. - (decide_alignment): Likewise. - (ix86_expand_movmem): Likewise. - (ix86_expand_setmem): Likewise. - (ix86_slow_unaligned_access): Likewise. - * config/i386/i386.md (strset): Likewise. - * config/i386/sse.md (vec_dupv4si): Likewise. - (vec_dupv2di): Likewise. - -2011-11-24 Georg-Johann Lay - - * config/avr/avr.md (*rotlhi2.15): Set length to 4. - -2011-11-24 Razya Ladelsky - - * tree-data-ref.c (initialize_data_dependence_relation): Update - comment for the self dependence case. - (compute_self_dependence): Remove. - * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to - compute_self_dependenc. - -2011-11-24 Alan Modra - - * c-decl.c (warn_if_shadowing): Don't warn if shadowed - identifier is from system header. - -2011-11-23 Jakub Jelinek - - PR target/51261 - * config/i386/i386.c (decide_alg): Initialize *dynamic_check - even if !optimize. - -2011-11-23 Vladimir Makarov - - PR rtl-optimization/48455 - * doc/invoke.texi (-fira-region): Document default values. - - * flags-types.h (enum ira_region): Add new value - IRA_REGION_AUTODETECT. - - * common.opt (fira-region): Set up initial value to - IRA_REGION_AUTODETECT. - - * toplev.c (process_options): Set up flag_ira_region depending on - -O options. - - * ira.c (ira.c): Remove optimize guard for ira_build. - -2011-11-23 Chung-Lin Tang - - PR rtl-optimization/50496 - * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX - only after epilogue is created. Add comments. - -2011-11-22 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter. - Generate the barrier required for the memory model. - (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New. - (UNSPEC_CMPXCHG_REL): New. - * config/ia64/sync.md (mem_thread_fence): New. - (atomic_load, atomic_store): New. - (atomic_compare_and_swap): New. - (cmpxchg_acq_, cmpxchg_acq_di): New. - (atomic_exchange): New. - (xchg_acq_): Rename from sync_lock_test_and_set. - (atomic_, atomic_nand): New. - (atomic_fetch_, atomic_fetch_nand): New. - (atomic__fetch, atomic_nand_fetch): New. - (fetchadd_rel_): New. - (sync_, sync_nand): Remove. - (sync_old_, sync_old_nand): Remove. - (sync_new_, sync_new_nand): Remove. - (sync_compare_and_swap): Remove. - (sync_lock_release): Remove. - - * config/ia64/ia64.md: Use define_c_enum for UNSPEC_* - and UNSPECV_* constants. - -2011-11-22 Tom de Vries - - PR rtl-optimization/50764 - * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are - not moved past preceding jump. - -2011-11-22 Jeff Law - - * doc/contrib.texi: Add entry for David Binderman. - -2011-11-22 Andreas Krebbel - - * postreload.c (reload_combine): Mark reg_state as invalid at - volatile insns if there has been a use already. - -2011-11-21 Aldy Hernandez - - * opts.c (finish_options): Do not fail for -fgnu-tm. - * gimple-streamer-out.c (output_gimple_stmt): Handle - GIMPLE_TRANSACTION. - * gimple-streamer-in.c (input_gimple_stmt): Same. - * lto-cgraph.c (input_overwrite_node): Read tm_clone bit. - (lto_output_node): Write tm_clone bit. - -2011-11-22 Ian Lance Taylor - - * doc/install.texi (Configuration): Correct doc of - --enable-build-poststage1-with-cxx: it is not experimental. - -2011-11-22 Jakub Jelinek - - PR tree-optimization/51074 - * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR - handling for BYTES_BIG_ENDIAN. - * optabs.c (can_vec_perm_for_code_p): Likewise. - -2011-11-22 Michael Matz - - PR other/51125 - * trans-mem.c (expand_block_tm): Ignore clobbers. - -2011-11-22 Iain Sandoe - - * config/darwin.h (ENDFILE_SPEC): New. - (DARWIN_CRT1_SPEC): Add crttms.o. - (STARTFILE_SPEC): Likewise for dynamic libs and bundles. - * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o. - -2011-11-22 Michael Matz - - PR c++/51264 - * tree.c (iterative_hash_expr): Remove break after return. - -2011-11-22 Iain Sandoe - - * target.def (tm_clone_table_section): New hook. - * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. - * doc/tm.texi: Regenerate. - * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section. - * output.h (default_clone_table_section): New prototype. - * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New. - * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype. - * config/darwin.c (darwin_tm_clone_table_section): New. - -2011-11-21 Torvald Riegel - - * trans-mem.c (diagnose_tm_1): Print an expression instead of a - declaration in error messages for indirect calls. - -2011-11-21 David S. Miller - - * config/sparc/sparc.c (sparc_regmode_natural_size): New function - implementing REGMODE_NATURAL_SIZE taking into consideration vector - modes. - (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P. - * config/sparc/sparc-protos.h (sparc_regmode_natural_size, - sparc_modes_tieable_p): Declare. - * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE, - MODES_TIEABLE_P): Use new helper functions. - - Revert - 2011-11-16 Andreas Krebbel - - PR middle-end/50325 - * expmed.c (store_bit_field_1): Use extract_bit_field on big - endian targets if the source cannot be exactly covered by word - mode chunks. - -2011-11-21 Jakub Jelinek - - PR debug/50827 - * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP - macro instead of XEXP. - -2011-11-21 Andreas Tobler - - * configure: Regenerate. - -2011-11-21 Georg-Johann Lay - - * config/avr/avr.c (output_reload_in_const): Loading a byte with 0 - must not affect cc0. - * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any - register does not change cc0. Same for any constant to ld-register. - -2011-11-21 Uros Bizjak - - * config/i386/mmx.md (unspec) : - Move from config/i386/i386.md - (unspecv) : Ditto. - * config/i386/sse.md (unspec) : Ditto. - (unspecv) : - Ditto. - * config/i386/sync.md (unspec) : Ditto. - (unspecv) : Ditto. - (sse2_lfence): Move from config/i386/sse.md. - (*sse2_lfence): Ditto. - (sse_sfence): Ditto. - (*sse_sfence): Ditto. - (sse2_mfence): Ditto. - (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also - for TARGET_64BIT. - (mem_thread_fence): Use mfence_sse2. - -2011-11-21 Georg-Johann Lay - - * config/avr/avr.h (struct base_arch_s): Add field sfr_offset. - * config/avr/avr-devices.c: Ditto. And initialize it. - * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define - __AVR_SFR_OFFSET__. - * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove. - (out_movhi_r_mr, out_movhi_mr_r): Remove. - (out_movsi_r_mr, out_movsi_mr_r): Remove. - * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20. - (*insv.io, *insv.not.io): Ditto. - * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static. - (print_operand): Implement "%i" to print address as I/O address. - (output_movqi): Clean up call of out_movqi_mr_r. - (output_movhi): Clean up call of out_movhi_mr_r. - (avr_file_start): Use avr_current_arch->sfr_offset instead of - magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1. - (avr_out_sbxx_branch): Use %i instead of %m-0x20. - (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static. - (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len. - (out_shift_with_cnt): Clean up code: Use avr_asm_len. - (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources. - (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources. - Clean up call of avr_out_store_psi. - (output_reload_in_const): Don't cut symbols longer than 2 bytes. - (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to - try if setting pre-cleared register is advantageous. - (avr_out_plus_1): Use gen_int_mode instead of GEN_INT. - -2011-11-20 Joey Ye - - * expr.c (expand_expr_real_1): Correctly handle strict volatile - bitfield loads smaller than mode size. - -2011-11-20 Richard Henderson - - * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs. - -2011-11-20 Uros Bizjak - - PR target/51235 - * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP - patterns for supported mode only. - - PR target/51236 - * config/i386/i386.c (ix86_expand_builtin) - : Use CODE_FOR_avx2_gathersiv4di. - -2011-11-20 Uros Bizjak - - * config/i386/i386.md (UNSPEC_MOVNTI): Remove. - (UNSPEC_MOVNTQ): New unspec. - * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi. - Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT. - * config/i386/sse.md (sse2_movnti): Use UNSPEC_MOVNT instead of - UNSPEC_MOVNTI. - (STORENT_MODE): Add DI and V4DI modes. - -2011-11-20 Nathan Sidwell - - PR gcov-profile/51113 - * coverage.c (build_var): Propagate visibility for public - decls. Use make_decl_one_only for PIC correctness. - - testsuite/ - * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage - * gcc.misc-tests/gcov-16.c: New. - * gcc.misc-tests/gcov-17.c: New. - * g++.dg/gcov/gcov-8.C: New. - * g++.dg/gcov/gcov-9.C: New. - * g++.dg/gcov/gcov-10.C: New. - -2011-11-19 Eric Botcazou - - PR rtl-optimization/51187 - * reorg.c (relax_delay_slots): Do not consider a jump useless if there - is a barrier between the jump and its target label. - -2011-11-19 Patrick Marlier - - PR middle-end/51211 - * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION. - -2011-11-19 Eric Botcazou - - * expmed.c (store_bit_field_1): Revert bogus formatting change. - -2011-11-19 Richard Earnshaw - - PR target/50493 - * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial - overlap of src and dest operands. - -2011-11-19 Iain Sandoe - - * config/darwin.h (ASM_DEBUG_SPEC): New. - * config/darwin9.h (ASM_DEBUG_SPEC): New. - -2011-11-18 Jan Hubicka - - * config/i386/i386.c (atom_cost): Disable SSE loop until alignment - issues are fixed. - -2011-11-18 Anatoly Sokolov - - * config/cris/cris.c (cris_function_value_regno_p): Make static. - (TARGET_FUNCTION_VALUE_REGNO_P): Define. - * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove. - * config/cris/cris-protos.h (cris_function_value_regno_p): Remove. - -2011-11-18 H.J. Lu - - PR target/33944 - * doc/extend.texi: Document __builtin_ia32_movnti64. - - * config/i386/emmintrin.h (_mm_stream_si64): New. - - * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG. - - * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64. - (bdesc_special_args): Update __builtin_ia32_movnti. Add - __builtin_ia32_movnti64. - (ix86_expand_special_args_builtin): Handle - VOID_FTYPE_PLONGLONG_LONGLONG. - - * config/i386/i386.md (UNSPEC_MOVNTI): New. - - * config/i386/sse.md (sse2_movntsi): Renamed to ... - (sse2_movnti): This. - -2011-11-18 Georg-Johann Lay - - PR target/49868 - * config/avr/avr.h (base_arch_s): Add field n_segments. - (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, - ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces. - (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines. - (INIT_EXPANDERS): New define. - * config/avr/avr-protos.h (avr_mem_pgmx_p): New. - (avr_init_expanders): New. - (avr_emit_movmemhi, avr_out_movmem): New. - (avr_xload_libgcc_p): New. - * config/avr/avr-c.c (avr_register_target_pragmas): Register - address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx. - (avr_cpu_cpp_builtins): Add built-in defines __PGM1, - __PGM2, __PGM3, __PGM4, __PGM5, __PGMX. - * config/avr/avr-devices.c (avr_arch_types): Set field n_segments. - - * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover - 3 bits instead of just 1. - (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables. - (progmem_section): Change from section to array of sections. - (progmem_section_prefix): New static variable. - (avr_file_start): Print set for __RAMPZ__ - (avr_option_override): Move initialization of RTXes from here... - (avr_init_expanders): ...to this new function. - (avr_pgm_segment): New static function. - (avr_decl_pgm_p): Handle error_mark_node. - (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions. - (avr_out_xload, avr_find_unused_d_reg): New static functions. - (expand_prologue, expand_epilogue): Use rampz_rtx. - (print_operand): Hande CONST_STRING. - (avr_xload_libgcc_p): New static function. - (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM. - (avr_progmem_p): Return 2 for 24-bit flash address space. - (avr_out_sbxx_branch): Clean-up code from ASn macros. - (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's - address and print symbolically. - (avr_asm_named_section, avr_section_type_flags, - avr_encode_section_info, avr_asm_select_section, - avr_addr_space_address_mode, avr_addr_space_pointer_mode, - avr_addr_space_legitimate_address_p, avr_addr_space_convert, - avr_addr_space_legitimize_address): Handle new address spaces. - (avr_output_progmem_section_asm_op): New static function. - (avr_asm_init_sections): Initialize progmem_section[]. - (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM. - (avr_const_address_lo16): New static function. - (avr_assemble_integer): Use it to handle 3-byte integers. - (avr_emit_movmemhi, avr_out_movmem): New functions. - - * config/avr/predicates.md (nox_general_operand): Handle new - address spaces. - * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM. - (adjust_len): Add xload, movmem. - (SP_ADDR): New define_constants. - (isa): Add "lpm", "lpmx", "elpm", "elpmx". - (enabled): Handle them. - (load_libgcc): New expander. - (*load..libgcc): Rename to load__libgcc. - (xload8_A, xload_A): New insn-and-splits. - (xload_8, xload__libgcc, xload_, loadmem_elpm): New insns. - (mov): Handle new address spaces. - (movmemhi): Rewrite using avr_emit_movmemhi. - (MOVMEM_r_d): New mode attribute. - (movmem_, movmem_qi_elpm): New insns. - (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote - C-code. Use label instead of hard-coded instrunction lengths. - -2011-11-18 Martin Jambor - - PR tree-optimization/50605 - * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs - of IPA invariant decls. - -2011-11-18 Bill Schmidt - - * tree-outof-ssa.c (insert_back_edge_copies): Add call to - mark_dfs_back_edges. - -2011-11-18 Iain Sandoe - - PR target/49992 - * configure.ac: Remove ranlib special-casing for Darwin. - * configure: Regenerate. - -2011-11-18 Uros Bizjak - - PR tree-optimization/51118 - * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure - before using TREE_TYPE accessor on expr. - -2011-11-17 Jan Hubicka - - PR bootstrap/51134 - * i386.c (atom_cost): Fix 32bit memset description. - (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check - for epilogue loops. - (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing - byte loop. - (decide_alg): sse_loop is not useable wthen SSE2 is disabled; - when not optimizing always use rep movsb or lincall; do not produce - word sized loops when optimizing memset for size (to avoid need - for large constants). - (ix86_expand_movmem): Get into sync with ix86_expand_setmem; - choose unroll factors better; always do 128bit moves when producing - SSE loops; do not produce loopy epilogue when size is too small. - (promote_duplicated_reg_to_size): Do not look into desired alignments - when doing vector expansion. - (ix86_expand_setmem): Track better when promoted value is available; - choose unroll factors more sanely. Output loopy epilogue only - when needed. - -2011-11-17 Steve Ellcey - - PR middle-end/51144 - * output.h (fprint_w): Remove. - * final.c (fprint_w): Remove. - (output_addr_const): Change fprint_w back to fprintf. - -2011-11-17 Andrew Pinski - - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS. - -2011-11-17 Andrew MacLeod - - * builtins.c (expand_builtin): Remove 4th parameter representing - weak/strong mode when __atomic_compare_exchange becomes a library call. - -2011-11-17 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get - new pseudo for target after convert_modes. - (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise. - -2011-11-17 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get - new pseudo for target after convert_modes. - (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise. - -2011-11-17 Richard Henderson - - * builtins.c (expand_builtin_mem_thread_fence): Remove. - (expand_builtin_mem_signal_fence): Remove. - (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence. - (expand_builtin_sync_synchronize): Likewise. - (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence. - * optabs.c (expand_asm_memory_barrier): Split out from - expand_builtin_mem_signal_fence. - (expand_mem_thread_fence): New, a combination of code from - expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize. - (expand_mem_signal_fence): Moved and renamed from - expand_builtin_mem_signal_fence. - (expand_atomic_exchange): Use expand_mem_thread_fence. - (expand_atomic_load, expand_atomic_store): Likewise. - * expr.h, optabs.h: Update decls. - -2011-11-17 Bin Cheng - - PR rtl-optimization/50663 - * cprop.c (implicit_set_indexes): New global variable. - (insert_set_in_table): Add additional parameter and record implicit - set information. - (hash_scan_set): Add additional parameter and pass it to above. - (hash_scan_insn): Pass false to hash_scan_set. - (compute_hash_table_work): Pass true to hash_scan_set. - (compute_cprop_data): Add implicit set to AVIN of block which the - implicit set is recorded for. - (one_cprop_pass): Handle implicit_set_indexes array. - -2011-11-17 Michael Matz - - PR middle-end/50644 - PR middle-end/50741 - * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of - current function. - (remove_unused_locals): Ditto. - -2011-11-16 Richard Henderson - - * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy - ALIAS_SET_MEMORY_BARRIER when creating a new memory. - (alpha_split_atomic_exchange_12): Likewise. - * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise. - -2011-11-16 Joseph Myers - - * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove. - -2011-11-16 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): - Default to minimum alignment if decl is NULL. - -2011-11-16 Uros Bizjak - - * config/i386/sse.md (round2_vec_pack_sfix): Optimize V2DFmode - sequence for AVX. - (_round_vec_pack_sfix): Ditto. - -2011-11-16 Venkataramanan Kumar - - * doc/invoke.texi: Document AMD bdver1 and btver1. - -2011-11-16 Richard Earnshaw - Bernd Schmidt - Sebastian Huber - - PR target/49641 - * config/arm/arm.c (store_multiple_sequence): Avoid cases where - the base reg is stored iff compiling for Thumb1. - -2011-11-16 Razya Ladelsky - - PR tree-optimization/49960 - * tree-data-ref.c (initialize_data_dependence_relation): Add - initializations. - Remove call to compute_self_dependence. - (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition. - (compute_self_dependence): Remove old code. Add call to - compute_affine_dependence. - (compute_all_dependences): Remove call to compute_self_dependence. - Add call to compute_affine_dependence. - -2011-11-16 Andreas Krebbel - - PR middle-end/50325 - * expmed.c (store_bit_field_1): Use extract_bit_field on big - endian targets if the source cannot be exactly covered by word - mode chunks. - -2011-11-15 Joseph Myers - - * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to - ELF_STRING_LIMIT. - -2011-11-15 Richard Henderson - - * config/alpha/alpha.c (alpha_pre_atomic_barrier): New. - (alpha_post_atomic_barrier): New. - (alpha_split_atomic_op): New memmodel argument; honor it. - (alpha_split_compare_and_swap): Take array of operands. Honor - memmodel; always set bool output - (alpha_expand_compare_and_swap_12): Similarly. - (alpha_split_compare_and_swap_12): Similarly. - (alpha_split_atomic_exchange): Similarly. Rename from - alpha_split_lock_test_and_set. - (alpha_expand_atomic_exchange_12): Similarly. Rename from - alpha_expand_lock_test_and_set_12. - (alpha_split_atomic_exchange_12): Similarly. Rename from - alpha_split_lock_test_and_set_12. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md (UNSPECV_CMPXCHG): New. - * config/alpha/constraints.md ("w"): New. - * config/alpha/predicates.md (mem_noofs_operand): New. - * config/alpha/sync.md (atomic_compare_and_swap): Rename from - sync_compare_and_swap; add the new parameters. - (atomic_exchange): Update from sync_test_and_set. - (atomic_fetch_): Update from sync_old_. - (atomic__fetch): Update from sync_new_. - (atomic_): Update from sync_. - -2011-11-16 Tom de Vries - - * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1. - -2011-11-16 Alan Modra - - PR rtl-optimization/51051 - PR bootstrap/51086 - * function.c (thread_prologue_and_epilogue_insns): Guard - emitting return with single_succ_p test. - -2011-11-15 Joern Rennecke - - * config/epiphany/epiphany.md (movcc): Fix code to - get mode from CMP_OP1 if CMP_OP0 is VOIDmode. - -2011-11-15 Uros Bizjak - - * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX. - (vec_pack_sfix_trunc_v2df): Ditto. - (vec_pack_sfix_v2df): Ditto. - (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and - avx_vec_concatv8si patterns. - (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and - avx_vec_concatv8si patterns. - -2011-11-15 Torvald Riegel - - * c-parser.c (c_parser_transaction_expression): Require parentheses - when parsing transaction expressions. - -2011-11-15 Tristan Gingold - - * incpath.c (get_added_cpp_dirs): New function. - * incpath.h (get_added_cpp_dirs): Declare. - * config/vms/vms-c.c (vms_c_register_includes): New function. - (vms_std_modules): New variable. - * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define. - (vms_c_register_includes): Declare. - -2011-11-15 Tristan Gingold - - * c-family/c-pragma.h (pragma_extern_prefix): Declare. - * c-family/c-pragma.c (pragma_extern_prefix): Make it public. - * config/vms/vms-c.c (saved_extern_prefix): New variable. - (vms_pragma_extern_prefix): New function. - (vms_c_register_pragma): Register vms_pragma_extern_prefix. - -2011-11-15 Georg-Johann Lay - - PR target/49868 - * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces. - (REGISTER_TARGET_PRAGMAS): New define. - * config/avr/avr-protos.h (avr_mem_pgm_p): New. - (avr_load_libgcc_p): New. - (avr_register_target_pragmas): New. - (asm_output_external_libcall): Remove. - (avr_log_t): Add field "progmem". Order alphabetically. - * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem. - * config/avr/avr-c.c (langhooks.h): New include. - (avr_register_target_pragmas): New function. Register address - space __pgm. - (avr_cpu_cpp_builtins): Add built-in define __PGM. - - * config/avr/avr.c: Include "c-family/c-common.h". - (TARGET_LEGITIMATE_ADDRESS_P): Remove define. - (TARGET_LEGITIMIZE_ADDRESS): Remove define. - (TARGET_ADDR_SPACE_SUBSET_P): Define to... - (avr_addr_space_subset_p): ...this new static function. - (TARGET_ADDR_SPACE_CONVERT): Define to... - (avr_addr_space_convert): ...this new static function. - (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to... - (avr_addr_space_address_mode): ...this new static function. - (TARGET_ADDR_SPACE_POINTER_MODE): Define to... - (avr_addr_space_pointer_mode): ...this new static function. - (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to... - (avr_addr_space_legitimate_address_p): ...this new static function. - (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to... - (avr_addr_space_legitimize_address): ...this new static function. - (avr_mode_code_base_reg_class): Handle address spaces. - (avr_regno_mode_code_ok_for_base_p): Ditto. - (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables. - (avr_option_override): Initialize them. - (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop - variables. - (avr_pgm_segment): New static function. - (avr_decl_pgm_p, avr_mem_pgm_p): New static functions. - (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions. - (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call - avr_out_lpm to handle loads from progmem. - (avr_load_libgcc_p): New static function. - (avr_progmem_p): Test if decl is in flash. - (avr_pgm_pointer_const_p): New static function. - (avr_nonconst_pointer_addrspace): New static function. - (avr_pgm_check_var_decl): New static function. - (avr_insert_attributes): Use it. Change error message to report - cause (progmem or address space) when code wants to write to flash. - (avr_section_type_flags): Unset section flag SECTION_BSS for - data in progmem. - - * config/avr/predicates.md (nop_general_operand): New predicate. - (nox_general_operand): New predicate. - * config/avr/avr.md (LPM_REGNO): New define_constant. - (load_libgcc): New expander. - (*load..libgcc): New insn. - (mov): Handle loads from non-generic AS. - (movmemhi): Ditto. Propagate address space information to newly - created MEM. - (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1 - to nox_general_operand. - (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to - nop_general_operand. - (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto. - (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto. - (split-lpmx): New split. - (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, - *lshrhi3_const, *lshrsi3_const): Indent, unquote C. - -2011-11-15 Maxim Kuvyrkov - - * ipa-cp.c (ipa_value_from_jfunc): Make global. - (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead. - (get_indirect_edge_target): Rename, make global. - (devirtualization_time_bonus, estimate_local_effects,) - (ipcp_discover_new_direct_edges): Update. - * ipa-inline-analysis.c (evaluate_conditions_for_edge): - Generalize to also handle types. Rename to ... - (evaluate_properties_for_edge): Use instead of - evaluate_conditions_for_edge. - (estimate_edge_devirt_benefit): New function. - (estimate_calls_size_and_time): Use it. - (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,) - (inline_merge_summary): Update. - (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate - parameter information at the call site and pass it on to subroutines. - * tree-inline.c (estimate_num_insns): Distinguish between direct and - indirect calls. - (init_inline_once): Set size and time costs or indirect calls. - * tree-inline.h (eni_weights): Add indirect_call_cost. - -2011-11-15 Tom de Vries - - PR tree-optimization/51005 - * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to - mark_basic_block_deleted. - (update_worklist): Inline purge_bbs. - (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry) - (delete_block_update_dominator_info): Remove. - (replace_block_by): Remove update_vops parameter. Partially evaluate - for update_vops == false. - (apply_clusters): Remove update_vops parameter. Remove update_vops - argument in replace_block_by call. - (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test. - (tail_merge_optimize): Remove update_vops argument to apply_clusters. - Remove call to purge_bbs. Add calls to calculate_dominance_info and - free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling - update_debug_stmts. Mark vop var for renaming, if necessary. - -2011-11-15 Bernd Schmidt - - PR rtl-optimization/51051 - * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the - move would cause fallthrough into the exit block. - -2011-11-14 Richard Henderson - - * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is - handled. - (emit_store_conditional): Likewise. - (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New. - (rs6000_adjust_atomic_subword): New. - (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New. - (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite - for pre-reload expansion. - (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi, - rs6000_expand_compare_and_swapqhi): Merge into ... - (rs6000_expand_atomic_compare_and_swap): ... here. New function. - rs6000_split_lock_test_and_set; expand immediately. Handle - QImode and HImode. - * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename - from UNSPECV_LWSYNC. - * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove. - (mem_thread_fence): New. - (hwsync): Rename from memory_barrier. - (*hwsync): Rename from *sync_internal. - (lwsync, *lwsync): Mirror hwsync implementation. - (isync): Don't reference memory. - (loadsync): New. - (atomic_load, atomic_store): New. - (ATOMIC): New mode iterator. - (load_locked): Rename from load_locked_. - (store_conditional): Rename from store_conditional_. - (sync_compare_and_swap): Remove. - (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove. - (sync_compare_and_swapqhi_internal): Remove. - (sync_lock_test_and_set): Remove. - (sync_): Remove. - (*sync_si_internal, *sync_di_internal): Remove. - (sync_nand, *sync_nand_internal): Remove. - (sync_old_): Remove. - (*sync_old_si_internal): Remove. - (*sync_old_di_internal): Remove. - (sync_old_nand): Remove. - (*sync_old_nand_internal): Remove. - (sync_new_): Remove. - (*sync_new_si_internal): Remove. - (*sync_new_di_internal): Remove. - (sync_new_nand): Remove. - (*sync_new_nand_internal): Remove. - (*atomic_andsi, *atomic_anddi): Remove. - (*sync_addshort_internal, *sync_subshort_internal): Remove. - (*sync_andsi_internal, *sync_boolsi_internal): Remove. - (*sync_boolcshort_internal): Remove. - (sync_lock_release): Remove. - (atomic_compare_and_swap): New. - (atomic_exchange): New. - (atomic_, atomic_nand): New. - (atomic_fetch_, atomic_fetch_nand): New. - (atomic__fetch, atomic_nand_fetch): New. - -2011-11-14 Uros Bizjak - - * config/i386/sse.md (round2): Use register_operand for - operand 1 predicate. - (round2_sfix): Ditto. - (round2_vec_pack_sfix): Ditto for operand 1 and operand 2. - -2011-11-14 Nathan Sidwell - - * gcov.c (canonicalize_name): Protect use of S_ISLNK. - -2011-11-14 Jan Hubicka - - PR target/51126 - * config/i386/i386.c (core cost model): Correct pasto. - -2011-11-14 Uros Bizjak - - * config/i386/sse.md (round2_sfix): New expander. - (round2_vec_pack_sfix): Ditto. - (_round_sfix): Ditto. - (_round_vec_pack_sfix): Ditto. - * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND, - V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND, - V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types. - * config/i386/i386.c (ix86_builtins): Add - IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and - IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines. - (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256}, - __builtin_ia32_roundpd_az_vec_pack_sfix{,256}, - __builtin_ia32_{floorps,ceilps}_sfix{,256}and - __builtin_ia32_roundps_az_sfix{,256} descriptions. - (ix86_expand_sse_round_vec_pack_sfix): New. - (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND, - V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and - V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of - CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix, - CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256. - (ix86_builtin_vectorized_function): Handle - BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and - BUILT_IN_{I,L,LL}ROUND{,F} - -2011-11-14 Jan Hubicka - - PR middle-end/50598 - * cgraph.h (varpool_externally_visible_p): Declare. - (varpool_add_new_variable): Declare. - * tree-emultls.c (get_emutls_init_templ_addr, - new_emutls_decl): Use varpool_add_new_variable. - * ipa.c (varpool_externally_visible_p): Export. - * varpool.c (varpool_add_new_variable): New function. - -2011-11-14 Michael Zolotukhin - Jan Hubicka - - * config/i386/i386.h (processor_costs): Add second dimension to - stringop_algs array. - * config/i386/i386.c (cost models): Initialize second dimension of - stringop_algs arrays. - (core_cost): New costs based on generic64 costs with updated stringop - values. - (promote_duplicated_reg): Add support for vector modes, add - declaration. - (promote_duplicated_reg_to_size): Likewise. - (processor_target): Set core costs for core variants. - (expand_set_or_movmem_via_loop_with_iter): New function. - (expand_set_or_movmem_via_loop): Enable reuse of the same iters in - different loops, produced by this function. - (emit_strset): New function. - (expand_movmem_epilogue): Add epilogue generation for bigger sizes, - use SSE-moves where possible. - (expand_setmem_epilogue): Likewise. - (expand_movmem_prologue): Likewise for prologue. - (expand_setmem_prologue): Likewise. - (expand_constant_movmem_prologue): Likewise. - (expand_constant_setmem_prologue): Likewise. - (decide_alg): Add new argument align_unknown. Fix algorithm of - strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop - (decide_alignment): Update desired alignment according to chosen move - mode. - (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves. - (ix86_expand_setmem): Likewise. - (ix86_slow_unaligned_access): Implementation of new hook - slow_unaligned_access. - * config/i386/i386.md (strset): Enable half-SSE moves. - * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si. - (vec_dupv2di): Add expand for vec_dupv2di. - -2011-11-14 Dimitrios Apostolou - - PR bootstrap/51094 - PR middle-end/51116 - * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove. - * varasm.c (default_elf_internal_label): Remove. - -2011-11-14 Kai Tietz - - * gcov.c (generate_results): Add missing semicolon and correct indent. - -2011-11-14 Ira Rosen - - PR bootstrap/51112 - * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype. - -2011-11-14 Mingjie Xing - - * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes} - to @pxref{Function Attributes}. - -2011-11-13 Oleg Endo - - PR target/50694 - * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A): - New macros. - (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options - taking the default configuration into account. - -2011-11-13 Jonathan Wakely - - * doc/install.texi (Specific): Fix anchor for - x86_64-*-solaris2.1[0-9]*. - -2011-11-13 Nathan Sidwell - - * gcov.c (source_prefix, source_length): New globals. - (flag_relative_only): Likewise. - (print_usage, options, process_args): Update. - (generate_results): Use coverage.name, check - flag_relative_only. Adjust messages. - (find_source): Check source_prefix. - (output_lines): Use coverage.name, adjust messages. - * doc/gcov.texi (Invoking Gcov): Document new options. - -2011-11-12 Jason Merrill - - PR c++/51060 - * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup. - (gimplify_modify_expr): Don't try to simplify it. - -2011-11-12 Dimitrios Apostolou - - PR bootstrap/51094 - * config/elfos.h (STRING_ASM_OP): Define. - * varasm.c (default_elf_asm_output_limited_string): Use it. - - PR bootstrap/51094 - * gcc/configure.ac: Check for stpcpy declaration. - * system.h: Declare it if not. - * config.in, configure: Regenerate. - -2011-11-12 Richard Henderson - - * config/rs6000/rs6000.md (fix_truncsi2_stfiwx): Use - nonimmediate_operand for the destination. - (fixuns_truncsi2_stfiwx): Likewise. - - * builtins.c (expand_builtin_compare_and_swap): If target is const0, - don't pass the target to expand_atomic_compare_and_swap. - (expand_builtin_atomic_compare_exchange): Likewise. - - * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New. - * config/sh/sh.c (sh_init_sync_libfuncs): New. - - * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New. - * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default. - * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. - -2011-11-12 Iain Sandoe - - PR target/45233 - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): - Only expand a symbol ref. into an access when the entity is defined - in the TU. - -2011-11-12 Jan Hubicka - - PR bootstrap/50822 - * cgraphunit.c (output_weakrefs): Output really only weakrefs. - -2011-11-12 Nathan Sidwell - - * gcov.c (struct name_map): New. - (names, n_names, a_names): New global vars. - (print_usage): Adjust usage. - (generate_results): Canonicalize main file name. - (release_structures): Adjust. - (name_search, name_sort): New callbacks. - (find_source): Look for and create a canonical name. - (canonicalize_name): New. - (make_gcov_file_name): Reimplement and fix mangling. - (mangle_name): New. - * doc/gcov.texi: Update documentation about path preservation. - -2011-11-11 David S. Miller - - * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete. - * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete. - -2011-11-11 Jakub Jelinek - - * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper): - New prototype. - * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New - function. - (ix86_expand_epilogue): Use it. - * config/i386/i386.md (return, simple_return): Call it in the - expanders. - - PR tree-optimization/51091 - * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P - rhs also in the va_list_simple_ptr case. - - PR tree-optimization/51058 - * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function. - (vect_schedule_slp): Call it. - * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL, - don't replace scalar calls with setting of their lhs to zero here. - - PR tree-optimization/51074 - * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions. - (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR, - VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and - VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands. - (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or - CONSTRUCTOR operands. - * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary - expressions. - * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements - to 0 .. 2 * elements - 1. - -2011-11-11 Richard Henderson - - * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed. - (dump_gimple_omp_atomic_store): Likewise. - * optabs.c (can_atomic_exchange_p): New. - * optabs.h (can_atomic_exchange_p): Declare. - * omp-low.c (expand_omp_atomic_load): Implement. - (expand_omp_atomic_store): Likewise. - (expand_omp_atomic): Update for new arguments to load/store. - -2011-11-11 Eric Botcazou - - * cprop.c: Adjust outdated comments throughout. - (hash_scan_set): Rename PAT parameter into SET. - (cprop_pavloc): Rename into... - (cprop_avloc): ...this. - (cprop_absaltered): Rename into... - (cprop_kill): ...this. - (alloc_cprop_mem): Adjust for above renaming. - (free_cprop_mem): Likewise. - (compute_cprop_data): Likewise. - (compute_local_properties): Rename TRANSP parameter into KILL and - adjust throughout. Rework comments. - (try_replace_reg): Fix long line. - (cprop_jump): Likewise. - (constprop_register): Fix prototype and take INSN last. - (cprop_insn): Adjust calls to above function. Fix long lines. - (bypass_block): Likewise. - (one_cprop_pass): Likewise. - -2011-11-11 Uros Bizjak - - * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES. - (ELF_STRING_LIMIT): Rename from STRING_LIMIT. - -2011-11-11 Jason Merrill - - * varasm.c (default_elf_asm_output_limited_string): #ifdef - ELF_ASCII_ESCAPES. - (default_elf_asm_output_ascii): Likewise. - -2011-11-11 Uros Bizjak - - PR target/50762 - * config/i386/constraints.md (j): New address constraint. - * config/i386/predicates.md (lea_address_operand): Redefine as - special predicate. - * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1. - (*lea_4_zext): Ditto. - -2011-11-11 David S. Miller - - Revert - 2011-11-05 David S. Miller - - * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. - (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. - (*zero_extend_v8qi__insn, - *zero_extend_v4hi__insn): New insns. - * config/sparc/sparc.c (vector_init_move_words, - vector_init_prepare_elts, sparc_expand_vector_init_vis2, - sparc_expand_vector_init_vis1): New functions. - (vector_init_bshuffle): Rewrite to handle more cases and make use - of locs[] array prepared by vector_init_prepare_elts. - (vector_init_fpmerge, vector_init_faligndata): Delete. - (sparc_expand_vector_init): Rewrite using new infrastructure. - -2011-11-11 Jakub Jelinek - - * opts-common.c (generate_canonical_option): Free opt_text - it it has been allocated here and not stored anywhere. - - * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN - vector. - (vect_create_new_slp_node): Don't allocate node before checking stmt - type. - (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always - free def_stmts vectors and additionally free oprnd_info. - (vect_build_slp_tree): Adjust callers. Call it even if - stop_recursion. If vect_create_new_slp_node or - vect_build_slp_tree fails, properly handle freeing memory. - If it succeeded, clear def_stmts in oprnd_info. - -2011-11-11 Dimitrios Apostolou - - * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on - multiple lines for readability. - * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare. - (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf. - * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data, - dw2_asm_data_uleb128, dw2_asm_delta_uleb128, - dw2_asm_delta_sleb128): Convert fprintf calls to the new functions. - * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of - fprintf. - * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions - serving as fast replacements for fprintf integer to string conversions. - (sprint_ul_rev): Internal helper for the above. - (output_addr_const) : Don't use fprintf. - * varasm.c: Fix some whitespace inconsistencies. - (default_elf_asm_output_limited_string): New. - (default_elf_asm_output_ascii): Likewise. - (default_elf_internal_label): Likewise. - * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and - stpcpy instead of sprintf. - (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label. - (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and - STRING_LIMIT macros. - (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that - provide the same functionality. - * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf. - -2011-11-10 Andrew MacLeod - - * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear. - -2011-11-10 Andrew MacLeod - - PR middle-end/51038 - * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear. - (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set. - (expand_builtin): Add cases for test_and_set and clear. - * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New. - (BUILT_IN_ATOMIC_CLEAR): New. - -2011-11-10 Roberto Agostino Vitillo - - PR debug/50983 - * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt - value in the current line table. - -2011-11-10 Nathan Sidwell - - * gcov.c (struct function_info): Make src an index, not a pointer. - (struct source_info): Remove index and next source fields. - (fn_end): New static var. - (sources_index): Remove. - (sources): Now a pointer to an array, not a list. - (n_sources, a_sources): New. - (process_file): Adjust for changes to read_graph_file. Insert - functions into source lists and check line numbers here. - (generate_results): Only allocate lines for sources with - contents. Adjust for source array. - (release_structures): Likewise. - (find_source): Return source index, adjust for source array. - (read_graph_file): Return function list. Don't insert into source - lists here. - (read_count_file): Take list of functions. - (solve_flow_graph): Reverse the arc lists here. - (add_line_counts): Adjust for source array. - -2011-11-10 Jakub Jelinek - - PR middle-end/51077 - * tree-object-size.c (addr_object_size): Check TREE_CODE of - MEM_REF's operand rather than code of the MEM_REF itself. - -2011-11-10 Andrew MacLeod - - PR rtl-optimization/51040 - * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should - be AND followed by NOT. - * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND - should be AND followed by NOT. - -2011-11-10 Jakub Jelinek - - * vec.h (VEC_BASE): If base is at offset 0 in the structure, - use &(P)->base even if P is NULL. - - PR rtl-optimization/51023 - * combine.c (simplify_comparison) : Don't use - val_signbit_known_clear_p for signed comparison narrowing - optimization. Don't check for non-VOIDmode, use - HWI_COMPUTABLE_MODE_P macro. - : Don't check for non-VOIDmode. - Optimize even when const_op is equal to GET_MODE_MASK (mode), - don't optimize if const_op is negative. - -2011-11-10 Richard Guenther - - PR tree-optimization/51042 - * tree-ssa-pre.c (phi_translate_1): Avoid recursing on - self-referential expressions. Refactor code to avoid duplication. - -2011-11-10 Richard Guenther - - PR tree-optimization/51070 - * tree-loop-distribution.c (generate_builtin): Do not replace - the loop with a builtin if the partition contains statements which - results are used outside of the loop. - (pass_loop_distribution): Verify and collect. - -2011-11-10 Richard Guenther - - PR tree-optimization/51030 - * tree-ssa-phiopt.c (jump_function_from_stmt): New function. - (value_replacement): Use it to handle trivial non-empty - intermediate blocks. - -2011-11-10 Richard Guenther - - PR middle-end/51071 - * gimple.c (gimple_has_side_effects): Remove checking code - that doesn't belong here. - -2011-11-10 Ira Rosen - - PR tree-optimization/51058 - * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR. - -2011-11-10 Jakub Jelinek - - PR tree-optimization/51000 - * tree-vect-patterns.c (vect_recog_bool_pattern): If adding - a pattern stmt for a bool store, adjust DR_STMT too. - Don't handle bool conversions to single bit precision lhs. - * tree-vect-stmts.c (vect_remove_stores): If next is a pattern - stmt, remove its related stmt and free its stmt_vinfo. - (free_stmt_vec_info): Free also pattern stmt's vinfo and - pattern def stmt's vinfo. - * tree-vect-loop.c (destroy_loop_vec_info): Don't try to - free pattern stmt's vinfo here. - (vect_transform_loop): When calling vect_remove_stores, - do gsi_next first and don't call gsi_remove. If not strided - store, free stmt vinfo for gsi_stmt (si) rather than stmt. - -2011-11-09 Jakub Jelinek - - PR target/50911 - * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is - V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode - to V4SFmode. - - * function.h (requires_stack_frame_p): New prototype. - * function.c (requires_stack_frame_p): No longer static. - * config/i386/i386.c (ix86_finalize_stack_realign_flags): If - stack_realign_fp was just a conservative guess for a function - which doesn't use sp/fp/argp at all, clear frame_pointer_needed - and stack realignment. - -2011-11-09 Paolo Carlini - - PR preprocessor/51061 - * incpath.c (merge_include_chains): Make sure to not pass null - pointers to free_path. - -2011-11-09 Paolo Carlini - - * doc/invoke.texi ([Option Summary, C++ Language Options]): - Add -Wzero-as-null-pointer-constant. - -2011-11-07 Matthew Gretton-Dann - - * config/arm/arm-cores.def: Add -mcpu=cortex-a7. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm-tune.md: Likewise. - * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7. - * doc/invoke.texi: Document -mcpu=cortex-a7. - -2011-11-09 Richard Guenther - - Revert - 2011-11-09 Richard Guenther - - * tree-cfg.c (verify_gimple_call): Verify that - gimple_call_cannot_inline_p is returning a conservative - correct result according to gimple_check_call_matching_types. - -2011-11-09 Richard Guenther - - PR tree-optimization/51039 - * tree-cfg.c (verify_gimple_call): Verify that - gimple_call_cannot_inline_p is returning a conservative - correct result according to gimple_check_call_matching_types. - * ipa-inline-analysis.c (estimate_function_body_sizes): Remove - code dealing with un-inlinablility. - * gimple-streamer-in.c (input_gimple_stmt): Update the - non-inlinable flag. - -2011-11-09 Richard Guenther - - PR tree-optimization/51039 - * tree-inline.c (setup_one_parameter): Always perform a - valid gimple type change. - (declare_return_variable): Likewise. - -2011-11-09 Jakub Jelinek - - * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf, - vconduv4sfv4si): New patterns. - * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle - different dest_mode from comparison mode. - -2011-11-09 Richard Guenther - - * gimple-fold.c (canonicalize_constructor_val): Mark - address-taken variables addressable. - -2011-11-09 Ira Rosen - - PR tree-optimization/51015 - * tree-vect-loop.c (vect_determine_vectorization_factor): Expect - vectype to be set for pattern def stmts. - -2011-11-09 Alan Modra - - * function.c (bb_active_p): Delete. - (dup_block_and_redirect, active_insn_between): New functions. - (convert_jumps_to_returns, emit_return_for_exit): New functions, - split out from.. - (thread_prologue_and_epilogue_insns): ..here. Delete - shadowing variables. Don't do prologue register clobber tests - when shrink wrapping already failed. Delete all last_bb_active - code. Instead compute tail block candidates for duplicating - exit path. Remove these from antic set. Duplicate tails when - reached from both blocks needing a prologue/epilogue and - blocks not needing such. - * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and - HAVE_simple_return. - * bb-reorder.c (get_uncond_jump_length): Make global. - * bb-reorder.h (get_uncond_jump_length): Declare. - * cfgrtl.c (rtl_create_basic_block): Comment typo fix. - (rtl_split_edge): Likewise. Warning fix. - (rtl_duplicate_bb): New function. - (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block. - * Makefile.in (function.o): Update dependencies. - -2011-11-08 Ulrich Weigand - Georg-Johann Lay - - * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space - argument. - (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. - * doc/tm.texi: Regenerate. - - * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address - space argument. - (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. - * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise. - (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. - * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space - argument. - (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto. - * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto. - (avr_regno_mode_code_ok_for_base_p): Ditto. - * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto. - (avr_regno_mode_code_ok_for_base_p): Ditto. - (avr_reg_ok_for_addr_p): Pass AS down to - avr_regno_mode_code_ok_for_base_p. - - * addresses.h (base_reg_class): Add address space argument. - Pass to MODE_CODE_BASE_REG_CLASS. - (ok_for_base_p_1): Add address space argument. Pass to - REGNO_MODE_CODE_OK_FOR_BASE_P. - (regno_ok_for_base_p): Add address space argument. Pass to - ok_for_base_p_1. - - * regrename.c (scan_rtx_address): Add address space argument. - Pass address space to regno_ok_for_base_p and base_reg_class. - Update recursive calls. - (scan_rtx): Pass address space to scan_rtx_address. - (build_def_use): Likewise. - * regcprop.c (replace_oldest_value_addr): Add address space - argument. Pass to regno_ok_for_base_p and base_reg_class. - Update recursive calls. - (replace_oldest_value_mem): Pass address space to - replace_oldest_value_addr. - (copyprop_hardreg_forward_1): Likewise. - - * reload.c (find_reloads_address_1): Add address space argument. - Pass address space to base_reg_class and regno_ok_for_base_p. - Update recursive calls. - (find_reloads_address): Pass address space to base_reg_class, - regno_ok_for_base_p, and find_reloads_address_1. - (find_reloads): Pass address space to base_reg_class. - (find_reloads_subreg_address): Likewise. - - * ira-costs.c (record_reg_classes): Update calls to base_reg_class. - (ok_for_base_p_nonstrict): Add address space argument. Pass to - ok_for_base_p_1. - (record_address_regs): Add address space argument. Pass to - base_reg_class and ok_for_base_p_nonstrict. Update recursive calls. - (record_operand_costs): Pass address space to record_address_regs. - (scan_one_insn): Likewise. - - * caller-save.c (init_caller_save): Update call to base_reg_class. - * ira-conflicts.c (ira_build_conflicts): Likewise. - * reload1.c (maybe_fix_stack_asms): Likewise. - -2011-11-08 Michael Matz - - * gengtype.c (write_field_root): Avoid out-of-scope access of newv. - - * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers. - - * tree.h (TREE_CLOBBER_P): New macro. - * gimple.h (gimple_clobber_p): New inline function. - * gimplify.c (gimplify_bind_expr): Add clobbers for all variables - that go out of scope and live in memory. - * tree-ssa-operands.c (get_expr_operands): Transfer volatility also - for constructors. - * cfgexpand.c (decl_to_stack_part): New static variable. - (add_stack_var): Allocate it, and remember mapping. - (fini_vars_expansion): Deallocate it. - (stack_var_conflict_p): Add early outs. - (visit_op, visit_conflict, add_scope_conflicts_1, - add_scope_conflicts): New static functions. - (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy. - (expand_used_vars): Add scope conflicts. - (expand_gimple_stmt_1): Expand clobbers to nothing. - (expand_debug_expr): Ditto. - - * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely. - * tree-ssa-live.c (remove_unused_locals): Remove clobbers that - refer to otherwise unused locals. - * tree-sra.c (build_accesses_from_assign): Ignore clobbers. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of - SSA names aren't necessary. - (propagate_necessity): Accept and ignore constructors on the rhs, tidy. - * gimple.c (walk_gimple_op): Accept constructors like mem_rhs. - * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store - any known value. - * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they - don't zero-initialize something. - * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore - clobber RHS, we don't want PHI nodes with those. - -2011-11-08 Jakub Jelinek - - * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX - if not TARGET_PREFER_AVX128 return 32-byte integer vectors. - -2011-11-08 Richard Guenther - - PR tree-optimization/51012 - * ipa-prop.c (update_indirect_edges_after_inlining): Fixup - non-inlinable state. - * cgraph.c (cgraph_make_edge_direct): Likewise. - -2011-11-08 Eric Botcazou - - PR rtl-optimization/47698 - * ifcvt.c (noce_operand_ok): Move around comment. - -2011-11-08 Richard Guenther - - PR lto/50999 - * lto-opts.c (append_to_collect_gcc_options): Split out from... - (lto_write_options): ... here. Prepend frontend specific flags. - -2011-11-08 Jakub Jelinek - - * config/i386/sse.md (*avx_vperm2f1283_nozero): Emit mask - 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128. - - * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument. - Handle vectorization of SLP calls. - (vect_analyze_stmt): Adjust caller, add call to it for SLP too. - (vect_transform_stmt): Adjust vectorizable_call caller, remove - assertion. - * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start - with op_idx 3. - (vect_build_slp_tree): Allow CALL_EXPR. - -2011-11-08 Richard Guenther - - * gimple-fold.c (canonicalize_constructor_val): Make sure - we have referenced vars setup before adding to them. - -2011-11-07 Richard Henderson - Aldy Hernandez - Andrew MacLeod - Torvald Riegel - - Merged from transactional-memory. - - * gtm-builtins.def: New file. - * trans-mem.c: New file. - * trans-mem.h: New file. - - * opts.c (finish_options): Error out when using -flto and -fgnu-tm. - - * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants. - (ix86_handle_tm_regparm_attribute, struct bdesc_tm, - ix86_builtin_tm_load, ix86_builtin_tm_store, - ix86_init_tm_builtins): New. - (ix86_init_builtins): Initialize TM builtins. - (struct ix86_attribute_table): Add "*tm regparm". - * config/i386/i386-builtin-types.def (PV2SI): Define. - (PCV2SI): Define. - Define V2SI_FTYPE_PCV2SI. - Define V4SF_FTYPE_PCV4SF. - Define V8SF_FTYPE_PCV8SF. - Define VOID_PV2SI_V2SI. - - * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and - tm-max-aggregate-size. - * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and - TARGET_VECTORIZE_BUILTIN_TM_STORE hooks. - * doc/tm.texi: Regenerate. - - * attribs.c (apply_tm_attr): New. - (init_attributes): Allow '*' prefix for overrides. - (register_attribute): Likewise. - * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New. - (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST, - ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST, - ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST, - ATTR_TMPURE_NOTHROW_LIST): New. - * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR, - BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248], - BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE, - BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New. - * builtins.def: Include gtm-builtins.def. Add comments regarding - transactional memory synchronization. - (DEF_TM_BUILTIN): New. - * c-parser.c (struct c_parser): Add in_transaction. - (c_parser_transaction, c_parser_transaction_expression, - c_parser_transaction_cancel, c_parser_transaction_attributes): New. - (c_parser_attribute_any_word): Split out from c_parser_attributes. - (c_parser_statement_after_labels): Handle RID_TRANSACTION*. - (c_parser_unary_expression): Same. - * c-tree.h (c_finish_transaction): Declare. - * c-typeck.c (c_finish_transaction): New. - (build_function_call_vec): Call tm_malloc_replacement. - * calls.c (is_tm_builtin): New. - (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE. - * cfgbuild.c (make_edges): Add edges for REG_TM notes. - * cfgexpand.c (expand_call_stmt): Call - mark_transaction_restart_calls. - (gimple_expand_cfg): Free the tm_restart map. - (mark_transaction_restart_calls): New. - * cfgrtl.c (purge_dead_edges): Look for REG_TM notes. - * cgraph.c (dump_cgraph_node): Handle tm_clone. - * cgraph.h (struct cgraph_node): Add tm_clone field. - (decl_is_tm_clone): New. - (struct cgraph_local_info): Add tm_may_enter_irr. - (cgraph_copy_node_for_versioning): Declare. - * cgraphunit.c (cgraph_copy_node_for_versioning): Export; - copy analyzed from old version. - * combine.c (distribute_notes): Handle REG_TM notes. - * common.opt: Add -fgnu-tm. - * crtstuff.c (__TMC_LIST__, __TMC_END__): New. - (__do_global_dtors_aux): Deregister clone table. - (frame_dummy): Register clone table. - * emit-rtl.c (try_split): Handle REG_TM. Early return if no function - body. - * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and - GIMPLE_TRANSACTION. - (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE. - * gimple-pretty-print.c: Include trans-mem.h. - (dump_gimple_fmt): Add %x. - (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction. - (dump_gimple_eh_else, dump_gimple_transaction): New. - (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. - * gimple.c (gimple_build_eh_else, gimple_build_transaction): New. - (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt - field. - (walk_gimple_op): Handle GIMPLE_TRANSACTION. - (walk_gimple_stmt): Initialize and honor removed_stmt. - Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. - (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. - * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New. - * gimple.h (struct gimple_statement_eh_else, - gimple_statement_transaction, GTMA_*): New. - (gimple_statement_d): Add gimple_statement_eh_else and - gimple_transaction. - (gimple_build_eh_else, gimple_build_transaction, - gimple_fold_call, diagnose_tm_safe_errors): Declare. - (get_call_expr_in): Remove prototype. - (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. - (gimple_eh_else_n_body, gimple_eh_else_e_body, - gimple_eh_else_set_n_body, gimple_eh_else_set_e_body, - gimple_transaction_body, gimple_transaction_label, - gimple_transaction_label_ptr, gimple_transaction_subcode, - gimple_transaction_set_body, gimple_transaction_set_label, - gimple_transaction_set_subcode): New. - (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt. - * gimplify.c (create_tmp_var_name): Use clean_symbol_name. - (voidify_wrapper_expr): Handle TRANSACTION_EXPR. - (gimplify_transaction): New. - (gimplify_expr): Handle TRANSACTION_EXPR. - * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New. - * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling - TM pure functions. - * Makefile.in: Add trans-mem.o and dependencies. - (BUILTINS_DEF): Add gtm-builtins.def. - (gimple-pretty-print.o): Depend on TRANS_MEM_H. - (GTFILES): Add trans-mem.c. - * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION. - * output.h (record_tm_clone_pair, finish_tm_clone_pairs, - get_tm_clone_pair): Declare. - * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New. - * passes.c (init_optimization_passes): Place transactional memory - passes. - * print-tree.c (print_node): Dump tm-clone. - * recog.c (peep2_attempt): Handle REG_TM. - * reg-notes.def (TM): New. - * rtlanal.c (alloc_reg_note): Handle REG_TM. - * target.def (builtin_tm_load, builtin_tm_store): New. - * targhooks.c (default_builtin_tm_load_store): New. - * targhooks.h (default_builtin_tm_load_store): Declare. - * timevar.def (TV_TRANS_MEM): New. - * toplev.c (compile_file): Call finish_tm_clone_pairs. - * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION. - (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary - writes into the statements to update labels. - (is_ctrl_altering_stmt): Add TM ending statements. Handle - GIMPLE_TRANSACTION. - (verify_gimple_transaction): New. - (verify_gimple_stmt): Handle GIMPLE_TRANSACTION. - (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. - (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION. - (dump_function_to_file): Display [tm-clone] if applicable. - * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h. - (struct_ptr_hash): Same. - (collect_finally_tree): Handle GIMPLE_EH_ELSE. - (replace_goto_queue_1): Likewise. - (get_eh_else): New. - (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE. - (lower_try_finally_nofallthru): Likewise. - (lower_try_finally_onedest): Likewise. - (lower_try_finally_copy): Likewise. - (lower_try_finally_switch): Likewise. - (lower_try_finally): Likewise. - (decide_copy_try_finally): Likewise. - (lower_eh_constructs_2): Likewise. - (refactor_eh_r): Likewise. - * tree-flow.h (struct gimple_df): Add tm_restart field. - Define tm_restart_node. - * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION. - (estimate_num_insns): Likewise. - (init_inline_once): Init tm_cost. - * tree-inline.h (struct eni_weights_d): Add tm_cost. - * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init, - pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare. - * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR. - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle - BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE. - Add support for TM vector loads. Add support for TM logging builtins. - (call_may_clobber_ref_p_1): Add support for vector stores. - * tree-ssa-structalias.c (find_func_aliases): Add support for TM - vector stores and loads. Handle BUILT_IN_TM_MEMSET, - BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE. - * tree.c (strip_invariant_refs): Moved from gimple.c to here. - (local_define_builtin): Handle ECF_TM_PURE. - (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE. - * tree.def (TRANSACTION_EXPR): New. - * tree.h (strip_invariant_refs): Moved from gimple.h to here. - (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK, - TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED, - BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P, - CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New. - (ECF_TM_PURE, ECF_TM_BUILTIN): New. - (struct tree_function_decl): Add tm_clone_flag. - (struct_ptr_eq, struct_ptr_hash): New. - (apply_tm_attr): Declare. - (is_tm_safe_or_pure): New. - (build_tm_abort_call, is_tm_safe, is_tm_pure, - is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement, - tm_malloc_replacement): Declare. - * varasm.c (tm_clone_hash): New. - (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair, - dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New. - (struct tm_alias_pair): New. Declare VEC types for object. - -2011-11-07 Richard Henderson - - * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set, - OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior, - OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand, - OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior, - OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and - rename from the direct_optab_index enum. - (sync_compare_and_swap_optab, sync_lock_test_and_set_optab, - sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab, - sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab, - sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab, - sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read - from the optab_table, not the direct_optab_table. - (init_sync_libfuncs): Declare. - (can_compare_and_swap_p): Update parameters. - * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New. - (can_compare_and_swap_p): Add allow_libcall parameter; if true, - test for the legacy compare-and-swap libcall. - (expand_atomic_exchange): Use the legacy test-and-set libcall. - (expand_atomic_compare_and_swap): Use the legacy CAS libcall. - (struct atomic_op_functions): Update for optab type changes. - (maybe_emit_op): Likewise. - (expand_atomic_fetch_op): Use the legacy fetch-op libcalls. - * builtins.c (fold_builtin_atomic_always_lock_free): Update call - to can_compare_and_swap_p. - * omp-low.c (expand_omp_atomic_fetch_op): Likewise. - (expand_omp_atomic_pipeline): Likewise. - * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab, - sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular - optabs. - * doc/md.texi (sync_compare_and_swap): Update docs for libcalls. - -2011-11-07 Jakub Jelinek - - * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add. - * config/i386/i386.c (enum ix86_builtins): Add - IX86_BUILTIN_VEC_PACK_SFIX256. - (bdesc_args): Add __builtin_ia32_vec_pack_sfix256. - (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF. - (ix86_builtin_vectorized_function): Also vectorize lrint using - 256-bit vectors for -mavx. - -2011-11-07 Anatoly Sokolov - - * config/cris/constraints.md: New file. - * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN, - CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P, - CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT, - EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, - EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove. - * config/cris/cris.c: Incule "tm-constrs.h". - (cris_print_operand): Use satisfies_constraint_O. - (cris_normal_notice_update_cc, cris_rtx_costs): Use - satisfies_constraint_I. - (cris_address_cost): Use satisfies_constraint_L. - * config/cris/cris.md: Include "constraints.md". - (*mov_side, *mov_sidesisf, *mov_side_mem, - *mov_sidesisf_mem, *clear_side, *ext_sideqihi, - *ext_sidesi, *op_side, *op_swap_side, - *extopqihi_side, *extopsi_side, *extopqihi_swap_side, - *extopsi_swap_side): Use satisfies_constraint_N and - satisfies_constraint_J. - (moversideqi movemsideqi mover2side peephole2): Use - satisfies_constraint_N and satisfies_constraint_J. - (andu peephole2): Use satisfies_constraint_I and - satisfies_constraint_O. - -2011-11-07 Uros Bizjak - - * config/i386/i386.c (ix86_builtin_vectorized_function): Handle - BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF. - -2011-11-07 Andrew MacLeod - - * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so - SWITCHABLE_TARGET can change the values during compilation. - (expand_atomic_fetch_op): Handle parameter change ripples for - get_atomic_op_for_code call. - -2011-11-07 Andrew MacLeod - - * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and - __atomic_store. - * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set - only when originated from that builtin. - (expand_atomic_store): Expand to __sync_lock_release when originated - from that builtin. - * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that - expand_atomic_exchange call originated from here. - (expand_builtin_sync_lock_release): Add flag that expand_atomic_store - call originated from here. - (expand_builtin_atomic_exchange): Add origination flag. - (expand_builtin_atomic_store): Add origination flag. - * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean - parameters to indicate implementation fall back options. - -2011-11-07 Georg-Johann Lay - - * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P - now, not only CONST_INT and CONST_DOUBLE. - (output_movqi): Use output_reload_in_const. - (output_reload_inhi): Ditto. - (output_reload_insisf): Move assertion to output_reload_in_const. - (avr_out_reload_inpsi): Ditto. - -2011-11-07 Nathan Sidwell - - * gcov.c (object_summary): Replace with ... - (object_runs): ... this. - (process_file): Remove functions with no data. - (generate_results): Ignore files with no lines. - (release_function): New helper, broken out of ... - (release_structures): ... here. Use it. - (read_count_file): Adjust for new data file format. - (output_lines): Use object_runs. - * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete. - (struct gcov_ctr_info): Move definition. - (struct gcov_fn_info): Add key field, use gcov_ctr_info for - trailing array. - (struct gcov_info): Add merge function array, remove mask and - counts. Trailing array is array of pointers to function info. - * coverage.c (struct function_list): Replace counter numbers with - counter arrays. Add fndecl field. GTYify. - (counts_entry): Remove chain workspace. - (functions_head): GTYify. - (prg_n_ctrs): Remove. - (fn_v_ctrs): New. - (tree_ctr_tables): Remove. - (read_counts_file): Cope with blank entries and expect program - summaries before functions. Don't warn on missing entries. - (coverage_counter_alloc): Allocate individual function arrays. - (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust - for individual function arrays. - (coverage_end_function): GTYify function list object. Finalize - function's counter arrays. - (build_var): New. Create a counter-related variable with - appropriate linkage. - (build_fn_info_type): Adjust for new runtime structure. - (build_fn_info_value): Rename to ... - (build_fn_info): ... here. Build new format data. - (build_ctr_info_type, build_ctr_info_value): Remove. - (build_info_type): New. Build new format data structure. - (build_info): Adjust for new format data. - (create_coverage): Likewise. - * gcov-dump.c (tag_function): Recognize placeholders. - -2011-11-07 Georg-Johann Lay - - * config/avr/constraints.md (Cm2): New constraint for int -2. - * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2. - (*negqihi2): New insn. - -2011-11-07 H.J. Lu - - * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check - HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18. - -2011-11-07 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_builtin): If gather mask - argument is known to have all high bits set, pass pc_rtx as - second argument to the expander instead of op0. - * config/i386/sse.md (*avx2_gathersi_2, - *avx2_gatherdi_2): New patterns. - * config/i386/avx2intrin.h (_mm256_i32gather_pd, - _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using - _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of - _mm256_set1_pd. - - PR tree-optimization/50789 - * tree-vect-stmts.c (process_use): Add force argument, avoid - exist_non_indexing_operands_for_use_p check if true. - (vect_mark_stmts_to_be_vectorized): Adjust callers. Handle - STMT_VINFO_GATHER_P. - (gen_perm_mask): New function. - (perm_mask_for_reverse): Use it. - (reverse_vec_element): Rename to... - (permute_vec_elements): ... this. Add Y and MASK_VEC arguments, - generalize for any permutations. - (vectorizable_load): Adjust caller. Handle STMT_VINFO_GATHER_P. - * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook. - * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it. - * doc/tm.texi: Regenerate. - * tree-data-ref.c (initialize_data_dependence_relation, - compute_self_dependence): No longer static. - * tree-data-ref.h (initialize_data_dependence_relation, - compute_self_dependence): New prototypes. - * tree-vect-data-refs.c (vect_check_gather): New function. - (vect_analyze_data_refs): Detect possible gather load data refs. - * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field. - (STMT_VINFO_GATHER_P): Define. - (vect_check_gather): New prototype. - * config/i386/i386-builtin-types.def: Add types for alternate - gather builtins. - * config/i386/sse.md (AVXMODE48P_DI): Remove. - (VEC_GATHER_MODE): Rename mode_attr to... - (VEC_GATHER_IDXSI): ... this. - (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs. - (avx2_gathersi, *avx2_gathersi): Use - instead of . - (avx2_gatherdi): Use instead of - and instead of VEC_GATHER_MODE - on src and mask operands. - (*avx2_gatherdi): Likewise. Use VEC_GATHER_MODE iterator - instead of AVXMODE48P_DI. - (avx2_gatherdi256, *avx2_gatherdi256): Removed. - * config/i386/i386.c (enum ix86_builtins): Add - IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF, - IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI. - (ix86_init_mmx_sse_builtins): Create those builtins. - (ix86_expand_builtin): Handle those builtins and adjust expansions - of other gather builtins. - (ix86_vectorize_builtin_gather): New function. - (TARGET_VECTORIZE_BUILTIN_GATHER): Define. - -2011-11-07 Uros Bizjak - - * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check. - -2011-11-07 Tristan Gingold - - * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs. - * config/vms/t-vms: Add vms-c.o rule. - * config/vms/vms-c.c: New file. - * config/vms/vms-protos.h (vms_c_register_pragma): New prototype. - * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define. - -2011-11-07 Tristan Gingold - - * config/alpha/vms.h (TARGET_OBJECT_SUFFIX, - TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS, - TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE, - POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h - (SUBTARGET_OS_CPP_BUILTINS): Define. - (TARGET_DEFAULT): Tune according to POINTER_SIZE. - (MASK_RETURN_ADDR): Define in 64 bit mode. - * config/ia64/vms.h: Likewise. - * config/vms/vms.h: New file. - * config/vms/vms64.h: New file. - * config/alpha/vms64.h: Removed. - * config/ia64/vms64.h: Removed. - * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*): - Adjust for above change. - -2011-11-07 Enkovich Ilya - - PR target/50962 - * config/i386/i386-protos.h (ix86_use_lea_for_mov): New. - * config/i386/i386.c (ix86_use_lea_for_mov): Likewise. - * config/i386/i386.md (movsi_internal): Emit lea if profitable. - (movdi_internal_rex64): Likewise. - -2011-11-07 Sergey Ostanevich - - PR rtl-optimization/47698 - * ifcvt.c (noce_operand_ok): Return false for mems with side effects. - -2011-11-07 Tristan Gingold - - * common/config/alpha/alpha-common.c (alpha_option_init_struct): - New function. - (TARGET_OPTION_INIT_STRUCT): Define. - * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET) - (TARGET_MAX_ANCHOR_OFFSET) - (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine. - -2011-11-06 Quentin Neill - - Fix r180999, update ChangeLog - * config.gcc: Add f16cintrin.h. - * config/i386/f16cintrin.h: Add missing endif. - -2011-11-06 Sebastian Huber - - * config.gcc (arm*-*-rtemseabi*): New target. - * config/arm/rtems-eabi.h: New. - * config/arm/t-rtems-eabi: New. - -2011-11-06 David S. Miller - - * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete. - (zero_extend_v8qi_vis, zero_extend_v4hi_vis, - *zero_extend_v8qi__insn, - *zero_extend_v4hi__insn): Express using vec_merge - and vec_duplicate instead of using an UNSPEC. - -2011-11-07 Alan Modra - - PR target/30282 - * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit - blockage for ABI_V4. - -2011-11-06 Dave Korn - - * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent - libgcj version bump. - * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. - -2011-11-06 Eric Botcazou - - * gcse.c: Adjust outdated comments throughout. - (struct mem_conflict_info): New structure. - (mems_conflict_for_gcse_p): Use it to communicate with caller. - (load_killed_in_block_p): Pass it to note_stores. - (hash_expr): Remove superfluous line break. - (hash_scan_set): Rename PAT parameter into SET. - (hash_scan_insn): Reorder cases. - (canon_list_insert): Fix long line. - (edge_list): Delete. - (prune_expressions): Rename E local variable into EXPR. - (compute_pre_data): Return struct edge_list * object. - (pre_expr_reaches_here_p_work): Fix formatting. - (process_insert_insn): Move around comment. - (pre_edge_insert): Fix long line. - (pre_insert_copies): Likewise. - (gcse_emit_move_after): Swap SRC and DEST parameters. - (pre_delete): Adjust call to gcse_emit_move_after. - (pre_gcse): Take struct edge_list * parameter. Fix long line. - (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines. - Use a local list of edges. - (hoist_code): Fix long line. Adjust call to gcse_emit_move_after. - (pre_ldst_expr_hash): Fix long line. - (free_ldst_mems): Rename into... - (free_ld_motion_mems): ...this. - (first_ls_expr): Delete. - (next_ls_expr): Likewise. - (print_ldst_list): Do not use above two functions. - (simple_mem): Adjust interface. - (compute_ld_motion_mems): Fix formatting. - (update_ld_motion_stores): Reuse local variable. - -2011-11-06 Joseph Myers - - * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas - specifiers. - (build_null_declspecs): Initialize align_log and alignas_p fields. - (declspecs_add_alignas): New. - * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS. - (c_parser_declspecs): Handle _Alignas specifiers. - (c_parser_alignas_specifier): New. - (c_parser_alignof_expression): Diagnose alignof use for non-C1X. - Diagnose _Alignof (expression). - * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields. - (declspecs_add_alignas): Declare. - * ginclude/stddef.h (max_align_t): Define for C1X and C++11. - * ginclude/stdalign.h: New. - * Makefile.in (USER_H): Add stdalign.h. - -2011-11-06 Joern Rennecke - - * regset.h (fixed_reg_set_regset): Declare. - * dse.c: Include regset.h . - (struct insn_info): Add member fixed_regs_live. - (note_add_store_info): New typedef. - (note_add_store): New function. - (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t. - Use gen_add3_insn / gen_move_insn. - Check new insn for unwanted clobbers before emitting it. - (check_for_inc_dec): Rename to... - (check_for_inc_dec_1:) ... this. Return bool. Take insn_info - parameter. Changed all callers in file. - (check_for_inc_dec, copy_fixed_regs): New functions. - (scan_insn): Set fixed_regs_live field of insn_info. - * rtl.h (check_for_inc_dec): Update prototype. - * postreload.c (reload_cse_simplify): Take new signature of - check_ind_dec into account. - * reginfo.c (fixed_reg_set_regset): New variable. - (init_reg_sets_1): Initialize it. - -2011-11-06 Jakub Jelinek - - * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove - any user labels. - -2011-11-06 John David Anglin - - * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs. - Remove dependence of declaration and target define on definition of - HPUX_LONG_DOUBLE_LIBRARY. Update implementation. - -2011-11-06 Andrew Macleod - Richard Henderson - Aldy Hernandez - - Merged from cxx-mem-model. - - * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models - * coretypes.h (enum memmodel): New. enumerated memory model type. - * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H) - * genopinit,c (optabs): Add atomic direct optab handlers. - * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins. - * builtin-types.def (BT_CONST_VOLATILE_PTR, - BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, - BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, - BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT, - BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, - BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, - BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types. - * expr.h (expand_atomic_*): Add prototypes. - (expand_{bool,val}_compare_and_swap): Remove prototypes. - * c-typeck.c (build_function_call_vec): Don't reprocess __atomic - parameters. - * common.opt (Winvalid-memory-model): New warning flag. - (finline-atomics): New. Flag to disable atomic inlining. - * params.h (ALLOW_LOAD_DATA_RACES): New. - (ALLOW_PACKED_LOAD_DATA_RACES): New. - (ALLOW_PACKED_STORE_DATA_RACES): New. - * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New. - (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New. - (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New. - * builtins.c (is_builtin_name): Handle __atomic. - (get_memmodel): New. Extract memory model. - (expand_expr_force_mode): New. Factor out common code for ensuring an - integer argument is in the proper mode. - (expand_builtin_sync_operation): Remove ignore param. Always call - expand_atomic_fetch_op instead of the old expanders. - (expand_builtin_compare_and_swap, - expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode, - call atomic expanders instead of sync expanders. - (expand_builtin_sync_lock_release): Call atomic_store expander. - (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load, - expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New. - (expand_builtin_atomic_exchange): New. - (fold_builtin_atomic_always_lock_free, - expand_builtin_atomic_always_lock_free, - fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free): - New. - (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence, - expand_builtin_atomic_signal_fence): New. - (expand_builtin_mem_signal_fence): New. - (expand_builtin): Add cases for BUILT_IN_ATOMIC_*. - (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE. - * optabs.h (DOI_atomic_*): Define new atomics. - (atomic_*_optab): Define. - (can_compare_and_swap_p, expand_atomic_compare_and_swap): New - prototypes. - * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove. - (expand_sync_lock_test_and_set): Remove. - (expand_atomic_load, expand_atomic_store): New. - (expand_atomic_exchange): New. - (expand_atomic_compare_and_swap): New. Implements - atomic_compare_exchange via compare and swap. - (struct atomic_op_functions): Opcode table struct for fetch ops. - (get_atomic_op_for_code): New. Return an opcode table entry. - (maybe_emit_op): New. Try to emit a fetch op. - (expand_atomic_fetch_op): New. - (expand_val_compare_and_swap_1): Remove. - (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove. - (expand_atomic_compare_and_swap): Rename from - expand_atomic_compare_exchange. Rewrite to return both success and - oldval return values; expand via both atomic and sync optabs. - (can_compare_and_swap_p): New. - (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap. - (maybe_gen_insn): Handle 7 and 8 operands. - * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual - fetch_op optabs, only test can_compare_and_swap_p. Use __atomic - builtins instead of __sync builtins. - (expand_omp_atomic_pipeline): Use can_compare_and_swap_p. - * doc/extend.texi: Document __atomic built-in functions. - * doc/invoke.texi: Document data race parameters. - * doc/md.texi: Document atomic patterns. - * config/i386/i386.md (UNSPEC_MOVA): New. - (UNSPECV_CMPXCHG): Split into ... - (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, - UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New. - * config/i386/sync.md (ATOMIC): New mode iterator. - (atomic_load, atomic_store): New. - (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New. - (mem_thread_fence): Rename from memory_barrier. - Handle the added memory model parameter. - (mfence_nosse): Rename from memory_barrier_nosse. - (sync_compare_and_swap): Split into ... - (atomic_compare_and_swap): this and ... - (atomic_compare_and_swap): this. Handle the new parameters. - (atomic_compare_and_swap_single): Rename from - sync_compare_and_swap; rewrite to use split unspecs. - (atomic_compare_and_swap_double): Rename from - sync_double_compare_and_swap; rewrite to use split unspecs. - (*atomic_compare_and_swap_doubledi_pic): Rename from - sync_double_compare_and_swapdi_pic; rewrite to use split unspecs. - (atomic_fetch_add): Rename from sync_old_add; add memory - model parameter. - (*atomic_fetch_add_cmp): Similarly. - (atomic_add, atomic): Similarly. - (atomic_sub): Similarly. Use x86_maybe_negate_const_int. - (sync_lock_test_and_set): Merge with ... - (atomic_exchange): ... this. - -2011-11-6 Richard Guenther - - * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag. - -2011-11-06 Ira Rosen - - * tree-vectorizer.h (vectorizable_condition): Add argument. - * tree-vect-loop.c (vectorizable_reduction): Fail for condition - in SLP. Update calls to vectorizable_condition. - * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to - the arguments. Pass it to vect_is_simple_use_1. - (vectorizable_condition): Add slp_node to the arguments. Support - vectorization of basic blocks. Fail for reduction in SLP. Update - calls to vect_is_simple_cond and vect_is_simple_use. Support SLP: - call vect_get_slp_defs to get vector operands. - (vect_analyze_stmt): Update calls to vectorizable_condition. - (vect_transform_stmt): Likewise. - * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR. - (vect_get_and_check_slp_defs): Handle COND_EXPR. Allow pattern - def stmts. - (vect_build_slp_tree): Handle COND_EXPR. - (vect_analyze_slp_instance): Push pattern statements to root node. - (vect_get_constant_vectors): Fix comments. Handle COND_EXPR. - -2011-11-05 David S. Miller - - * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. - (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. - (*zero_extend_v8qi__insn, - *zero_extend_v4hi__insn): New insns. - * config/sparc/sparc.c (vector_init_move_words, - vector_init_prepare_elts, sparc_expand_vector_init_vis2, - sparc_expand_vector_init_vis1): New functions. - (vector_init_bshuffle): Rewrite to handle more cases and make use - of locs[] array prepared by vector_init_prepare_elts. - (vector_init_fpmerge, vector_init_faligndata): Delete. - (sparc_expand_vector_init): Rewrite using new infrastructure. - -2011-11-05 Joern Rennecke - - * config.gcc (epiphany-*-*): New architecture. - (epiphany-*-elf): New configuration. - * config/epiphany, common/config/epiphany : New directories. - * doc/extend.texi (disinterrupt attribute): Add Epiphany. - (interrupt attribute): Add Epiphany. - (long_call, short_call attribute): Add Epiphany. - * doc/invoke.texi (Options): Add Epiphany options. - * doc/md.texi (Machine Constraints): Add Epiphany constraints. - * doc/install.texi (Options specification): - Add --with-stack-offset=@var{num} description. - (host/target specific issues): Add epiphany-*-elf. - * doc/contrib.texi (Contributors): Mention Epiphany port. - -2011-11-05 Jakub Jelinek - - PR tree-optimization/50693 - * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with - non-forced user labels. - (gimple_merge_blocks): Turn non-forced user labels into - debug bind stmt with the label as first operand and reset value. - (gimple_duplicate_bb): Don't duplicate label debug stmts. - * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL. - * final.c (final_scan_insn): Likewise. - (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL. - * var-tracking.c (debug_label_num): New variable. - (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs, - instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes. - * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle - NOTE_INSN_DELETED_DEBUG_LABEL. - (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs. - * insn-notes.def (DELETED_DEBUG_LABEL): New note kind. - * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL. - * gengtype.c (adjust_field_rtx_def): Likewise. - * config/i386/i386.c (ix86_output_function_epilogue): For MachO - clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL - if their are at the end of function and nop hasn't been emitted. - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise. - -2011-11-05 Georg-Johann Lay - - PR rtl-optimization/50448 - * cprop.c (try_replace_reg): Also try to replace uses of FROM that - appear in SET_DEST. - -2011-11-05 Peter Dufault , - Sebastian Huber - - * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS): - Extend rs6000_spe handling. - -2011-11-05 Ralf Corsépius - - * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib. - Remove -mcpu=601 multilib. - Remove -Dmpc8260 multilib. - * config/rs6000/rtems.h: Allow --float-gprs=... to override grps - on E500 targets. - -2011-11-05 Quentin Neill - - Piledriver f16cintrin.h fix. - * config/i386/f16cintrin.h: Contents moved from immintrin.h. - * config/i386/immintrin.h: Include f16cintrin.h. - * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h. - - -2011-11-04 Eric Botcazou - - PR c++/50608 - * c-parser.c (c_parser_postfix_expression) : Adjust call - to fold_offsetof. - * c-typeck.c (build_unary_op) : Call fold_offsetof_1. - -2011-11-04 Alan Modra - - * reload1.c (gen_reload): Don't use REGNO on SUBREGs. - * print-rtl.c (print_rtx): Don't segfault on negative regno. - -2011-11-04 David S. Miller - - PR target/49965 - * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the - fact that sparc_emit_float_lib_cmp modifies the comparison in - operands[1]. - -2011-11-04 Ralf Corsépius - - * config/lm32/t-rtems: New. - * config.gcc (lm32-*-rtems*): Add t-rtems. - -2011-11-04 Eric Botcazou - - PR target/50979 - * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8. - -2011-11-04 Jiangning Liu - - PR rtl-optimization/38644 - * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier - for epilogue having stack adjustment. - -2011-11-04 Georg-Johann Lay - - PR target/50931 - * config/avr/avr-modes.def: New file defining PSImode. - * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__, - __UINT24_MAX__): New built-in defines. - * config/avr/avr.md (adjust_len): Add tstpsi, mov24, reload_in24, - ashlpsi, ashrpsi, lshrpsi. - (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI. - (MOVMODE): New mode iterator. - (movpsi): New expander. - (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE. - (*reload_inpsi, *movpsi): New insns. - (*reload_inpsi): New RTL peephole. - (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi, - *addpsi3_sign_extend.hi): New insns. - (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi, - *subpsi3_sign_extend.hi): New insns. - (divmodpsi4, udivmodpsi4): New define insn-and-split. - (*divmodpsi4_call, *udivmodpsi4_call): New insns. - (andpsi3, iorpsi3, xorpsi3): New insns. - (*rotlpsi2.1, *rotlpsi2.23): New insns. - (*rotw): Insn condition only allow even-sized modes. - (*rotb): Insn condition allows odd-sized modes. - (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns. - (negpsi2, one_cmplpsi2): New insns. - (extendqipsi2, extendhipsi2, extendpsisi2): New insns. - (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New - insn-and-splits. - (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns. - (cbranchpsi4): New expander. - * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints. - * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi, - avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3, - avr_out_reload_inpsi): New prototypes. - - * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to... - (avr_scalar_mode_supported_p): ...this new static function. - (avr_asm_len): Always return "". - (avr_out_load_psi, avr_out_store_psi): New static functions. - (avr_out_movpsi, avr_out_reload_inpsi): New functions. - (avr_out_tstpsi): New function. - (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions. - (avr_out_plus_1, output_reload_in_const): Handle 3-byte types. - (avr_simplify_comparison_p): Ditto. - (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24, - ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI, - ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI. - (avr_rtx_costs_1): Report PSI costs. - (avr_libcall_value): Handle odd-sized parameters. - (avr_init_builtin_int24): New static function to define built-in - 24-bit types __int24 and __uint24. - (avr_init_builtins): Use it. - -2011-11-04 Thomas Doerfler - - PR target/50989 - * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional - support for VFP floating point model. - -2011-11-04 Tristan Gingold - - * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section. - -2011-11-04 Ira Rosen - - Unrevert: - 2011-10-24 Ira Rosen - - PR tree-optimization/50730 - * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block - analysis if encountered unsupported data-ref. - -2011-11-04 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New - function. - * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf): - New prototype. - * config/i386/sse.md (floatuns2): Use it. - For floatunsv8siv8sf2 require TARGET_AVX2. - - * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add - XORP argument. Subtract 0x1p31 instead of 0x1p32. Use normal - signalling comparison instead of non-signalling. Store into - *XORP pseudo holding 0x80000000 integers if 0x1p31 has been - subtracted and 0 otherwise. - * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): - Adjust prototype. - * config/i386/sse.md (fixuns_trunc2): Enable - already for TARGET_SSE2. Xor in vector initialized by - ix86_expand_adjust_ufix_to_sfix_si at the end. - (vec_pack_ufix_trunc_): Likewise. - - * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle - not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P, - WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what - vectorizable_type_demotion and vectorizable_type_promotion did. - Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer - is {,un}signed {char,short}. - (vect_create_vectorized_demotion_stmts): Fix comment typo. For - recursive calls unconditionally use VEC_PACK_TRUNC_EXPR. - Push vec_dest back to the vec_dsts vector at the end. - (vect_create_vectorized_promotion_stmts): Don't recurse, do just - one step. Removed multi_step_cvt, vec_dsts, slp_node and - prev_stmt_info arguments, add vec_dest argument. Push always - into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0 - with vec_tmp at the end after freeing old *vec_oprnd0 vector. - (vectorizable_type_demotion, vectorizable_type_promotion): Removed. - (vect_analyze_stmt): Don't call vectorizable_type_demotion and - vectorizable_type_promotion. Call vectorizable_conversion even - for SLP bb vectorization. - (vect_transform_stmt): Call vectorizable_conversion instead of - vectorizable_type_demotion and vectorizable_type_promotion. - (supportable_widening_operation): Clear *multi_step_cvt first, - simplify c1/c2 computation, free *interm_types vector on failure. - (supportable_narrowing_operation): Clear *multi_step_cvt first, - free *interm_types vector on failure, handle multi-step - FIX_TRUNC_EXPR. - -2011-11-04 Tristan Gingold - - * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl - argument. Conditionally generate crash debug info. Adjust - for alpha_funcs_tree removal. - (machine_function): Add links field. - (alpha_start_function): Conditionally generate crash debug info. - (alpha_end_function): Adjust call to alpha_write_linkage. - (alpha_funcs): Remove. - (links_kind): Remove. - (alpha_links): Remove num, target and lkind field. Add func field. - (alpha_links_tree): Remove. - (alpha_funcs_tree): Remove. - (alpha_need_linkage): Remove. - (alpha_use_linkage): Change prototype. Adjust. - (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL. - Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro. - * config/alpha/alpha-protos.h (alpha_use_linkage): Update. - (alpha_need_linkage): Remove. - * config/alpha/alpha.md: Update calls to alpha_use_linkage. - Adjust calls to alpha_need_linkage. - -2011-11-03 Uros Bizjak - - * sched-vis.c (print_value): Handle STRICT_LOW_PART. - -2011-11-03 Uros Bizjak - - * config/i386/i386.md (lround2, - rint2, floor2, lfloor2, - btrunc2, lwp_lwpval3): Use operands[N] instead of operandN. - -2011-11-03 Rainer Orth - - PR target/50978 - * config/arm/t-bpabi: New file. - * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for - arm*-*-linux-*eabi. - (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for - arm*-*-uclinux*eabi. - (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file - for arm*-*-eabi*. - -2011-11-03 Michael Matz - - PR bootstrap/50857 - * configure.ac: Check for -fno-exceptions -fno-rtti. - * configure: Regenerate. - * Makefile.in (NOEXCEPTION_FLAGS): New flag. - (ALL_CXXFLAGS): Use it. - -2011-11-03 Uros Bizjak - - * config/i386/i386.md: Use {} for multi-line preparation statements. - -2011-11-03 Eric Botcazou - - * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into... - (movtf_insn_sp32): ...this. - (movtf_insn_sp64_no_fpu): Consolidate into... - (movtf_insn_sp64): ...this. - (movtf_insn_sp64_hq): Do not test TARGET_FPU. - * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise. - -2011-11-03 Tristan Gingold - - * config/vms/vms.c (vms_patch_builtins): Fix typo. - -2011-11-03 Richard Guenther - - PR lto/44965 - * lto-opts.c: Re-implement. - * lto-streamer.h (lto_register_user_option): Remove. - (lto_read_file_options): Likewise. - (lto_reissue_options): Likewise. - (lto_clear_user_options): Likewise. - (lto_clear_file_options): Likewise. - * opts-global.c (post_handling_callback): Remove. - (set_default_handlers): Do not set post_handling_callback. - (decode_options): Remove LTO specific code. - * lto-wrapper.c (merge_and_complain): New function. - (run_gcc): Read all input file options and - prepend a merged set before the linker driver options. - * gcc.c (driver_post_handling_callback): Remove. - (set_option_handlers): Do not set post_handling_callback. - * opts-common.c (handle_option): Do not call post_handling_callback. - * opts.h (struct cl_option_handlers): Remove post_handling_callback. - -2011-11-03 Richard Guenther - - * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION. - -2011-11-03 Martin Jambor - - * ipa-prop.c (type_change_info): New fields offset, object, - known_current_type and multiple_types_encountered. - (extr_type_from_vtbl_ptr_store): New function. - (check_stmt_for_type_change): Use it, set multiple_types_encountered if - the result is different from the previous one. - (detect_type_change): Renamed to detect_type_change_1. New parameter - comp_type. Set up new fields in tci, build known type jump - functions if the new type can be identified. - (detect_type_change): New function. - * tree.h (DECL_CONTEXT): Comment new use. - -2011-11-03 Richard Guenther - - PR lto/48217 - * lto-wrapper.c (get_options_from_collect_gcc_options): Properly - decode an encoded literal '. - -2011-11-03 Tristan Gingold - - * collect2.c (main): Add support of -f (response file) on AIX. - -2011-11-03 Ira Rosen - - PR tree-optimization/50912 - * tree-vectorizer.h (slp_void_p): New. - (struct _slp_tree): Replace left and right with children. Update - documentation. - (struct _slp_oprnd_info): New. - (vect_get_vec_defs): Declare. - (vect_get_slp_defs): Update arguments. - * tree-vect-loop.c (vect_create_epilog_for_reduction): Call - vect_get_vec_defs instead of vect_get_slp_defs. - (vectorizable_reduction): Likewise. - * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument. - Update call to vect_get_slp_defs. - (vectorizable_conversion): Update call to vect_get_vec_defs. - (vectorizable_assignment, vectorizable_shift, - vectorizable_operation): Likewise. - (vectorizable_type_demotion): Call vect_get_vec_defs instead of - vect_get_slp_defs. - (vectorizable_type_promotion, vectorizable_store): Likewise. - (vect_analyze_stmt): Fix typo. - * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal. - (vect_print_slp_tree, vect_mark_slp_stmts, - vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts, - vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations, - vect_schedule_slp_instance): Likewise. - (vect_create_new_slp_node): New. - (vect_create_oprnd_info, vect_free_oprnd_info): Likewise. - (vect_get_and_check_slp_defs): Pass information about defs using - oprnds_info, allow any number of operands. - (vect_build_slp_tree): Likewise. Update calls to - vect_get_and_check_slp_defs. Fix comments. - (vect_analyze_slp_instance): Move node creation to - vect_create_new_slp_node. - (vect_get_slp_defs): Allow any number of operands. - -2011-11-02 Peter Bergner - Iain Sandoe - - * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define. - (get_ppc476_thunk_name): Use it. - (rs6000_code_end): Likewise. - (macho_branch_islands): Fix typo. - -2011-11-02 Paolo Carlini - Jason Merrill - - PR c++/50810 - * configure.ac: Add -Wno-narrowing to warning options. - * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. - -2011-11-02 Eric Botcazou - - PR target/50945 - * config/sparc/sparc.md (movsf_insn): Reindent constraints. - (movdf_insn_sp32): Likewise. Remove redundant G constraint. - (movdf_insn_sp64): Likewise. - (DFmode splitter): Do not test TARGET_FPU. - (movtf_insn_sp32): Reindent constraints. - (movtf_insn_sp32_no_fpu): Likewise. - (movtf_insn_sp64): Likewise. - (movtf_insn_sp64_hq): Likewise. - (movtf_insn_sp64_no_fpu): Likewise. - -2011-11-02 Paolo Carlini - - PR c++/50956 - * builtins.c (fold_builtin_memchr): Fix cast. - -2011-11-02 Teresa Johnson - - * config/i386/predicates.md (promotable_binary_operator): Add minus - to the list of promotable operators. - -2011-11-02 Rainer Orth - - * gthr-single.h, gthr.h: Move to ../libgcc. - * gthr-aix.h: Move to ../libgcc/config/rs6000. - * gthr-dce.h: Move to ../libgcc/config/pa. - * gthr-lynx.h: Move to ../libgcc/config. - * gthr-mipssde.h: Move to ../libgcc/config/mips. - * gthr-posix.h: Move to ../libgcc/config. - * gthr-rtems.h: Likewise. - * gthr-tpf.h: Move to ../libgcc/config/s390. - * gthr-vxworks.h: Move to ../libgcc/config. - * gthr-win32.h: Move to ../libgcc/config/i386. - * configure.ac (gthread_flags): Remove - (gthr-default.h): Don't create. - (thread_file): Don't substitute. - * configure: Regenerate. - * Makefile.in (GCC_THREAD_FILE): Remove. - (GTHREAD_FLAGS): Remove. - (libgcc.mvars): Remove GTHREAD_FLAGS. - * config/t-vxworks (EXTRA_HEADERS): Remove. - -2011-11-02 Rainer Orth - Paolo Bonzini - - * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove. - * configure: Regenerate. - * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove. - (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list). - (libgcc_tm.h, cs-libgcc_tm.h): Remove. - (clean): Remove libgcc_tm.h - * mkconfig.sh: Don't include libgcc_tm.h in tm.h. - * config.gcc (libgcc_tm_file): Remove. - (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi. - (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi. - (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file. - (avr-*-rtems*): Likewise. - (avr-*-*): Likewise. - (frv-*-elf): Likewise. - (frv-*-*linux*): Likewise. - (h8300-*-rtems*): Likewise. - (h8300-*-elf*): Likewise. - (i[34567]86-*-darwin*): Likewise. - (x86_64-*-darwin*): Likewise. - (rx-*-elf*): Likewise. - (tic6x-*-elf): Likewise. - (tic6x-*-uclinux): Likewise. - (i[34567]86-*-linux*, x86_64-*-linux*): Likewise. - -2011-11-02 Rainer Orth - - * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS) - (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA) - (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET) - (INCLUDES_FOR_TARGET): Remove. - (LIBGCC2_CFLAGS): Don't export. - (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify): - Remove. - (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies. - (libgcc.mvars): Likewise. - Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST, - LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS, - TARGET_LIBGCC2_CFLAGS. - Emit GTHREAD_FLAGS. - * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc. - * config/darwin-64.c: Move to ../libgcc/config. - * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, - config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, - config/udivmodsi4.c: Move to ../libgcc/config. - * config/gthr-posix.c: Move to ../libgcc/config/alpha. - * config/memcmp.c, config/memcpy.c, config/memmove.c, - config/memset.c: Move to ../libgcc/config. - * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove. - * config/t-freebsd: Remove. - * config/t-freebsd-thread: Move to ../libgcc/config. - * config/t-libgcc-pic: Move to ../libgcc/config. - * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove. - * config/t-linux: Remove. - * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): - Remove. - * config/t-openbsd-thread: Move to ../libgcc/config. - * config/t-rtems (LIBGCC2_INCLUDES): Remove. - * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove. - * config/t-svr4: Remove. - * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS) - (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove. - * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config. - * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S. - * config/alpha/t-alpha, config/alpha/t-ieee: Remove. - * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove. - * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha. - * config/arm/bpabi.c, config/arm/unaligned-funcs.c, - config/arm/fp16.c, config/arm/linux-atomic.c, - config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm. - * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC) - (TARGET_LIBGCC2_CFLAGS): Remove. - * config/arm/t-bpabi, config/arm/t-linux: Remove. - * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS) - (LIB2FUNCS_STATIC_EXTRA): Remove. - * config/arm/t-netbsd: Remove. - * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC) - (TARGET_LIBGCC2_CFLAGS): Remove. - * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove. - * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC) - (TARGET_LIBGCC2_CFLAGS): Remove. - * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS) - (LIBGCC, INSTALL_LIBGCC): Remove. - * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove. - * config/bfin/t-bfin-linux: Likewise. - * config/bfin/t-bfin-uclinux: Likewise. - * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, - config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, - config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, - config/c6x/ltf.c: Move to ../libgcc/config/c6x. - * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove. - * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove. - * config/cris/arit.c: Move to ../libgcc/config/cris. - * config/cris/cris_abi_symbol.c: Remove. - * config/cris/cris.h: Remove obsolete comment. - * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S. - * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC) - ($(LIB2FUNCS_EXTRA)): Remove. - * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC) - (LIBGCC): Remove. - * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. - * config/fr30/t-fr30: Remove. - * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, - config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, - config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move - to ../libgcc/config/frv. - * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) - (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c) - (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove. - * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. - * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, - config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, - config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300. - * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) - (LIBGCC, INSTALL_LIBGCC): Remove. - * config/i386/gthr-win32.c: Move to ../libgcc/config/i386. - * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove. - * config/i386/t-cygwin: Remove. - * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) - (LIB2FUNCS_EXCLUDE): Remove. - * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) - (LIBGCC, INSTALL_LIBGCC): Remove. - * config/i386/t-gthr-win32: Move to ../libgcc/config/i386. - * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove. - * config/i386/t-mingw-w32: Likewise. - * config/i386/t-mingw-w64: Likewise. - * config/i386/t-openbsd: Likewise. - * config/i386/t-nto: Remove. - * config/ia64/quadlib.c: Move to ../libgcc/config/ia64. - * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) - (quadlib.c): Remove. - * config/ia64/t-ia64: Remove comment. - * config/iq2000/lib2extra-funcs.c: Move to - ../libgcc/config/iq2000/lib2funcs.c. - * config/iq2000/t-iq2000: Remove. - * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c. - * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c. - * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. - * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove. - * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC) - (INSTALL_LIBGCC): Remove. - * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k. - * config/m68k/t-floatlib: Remove. - * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove. - * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove. - Fix typo. - (LIBGCC, INSTALL_LIBGCC): Remove. - * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c. - * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c. - * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove. - * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC) - (INSTALL_LIBGCC): Remove. - * config/mips/t-isa3264: Likewise. - * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove. - * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC) - (INSTALL_LIBGCC): Remove. - * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove. - * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC) - (INSTALL_LIBGCC): Remove. - * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS) - (LIB2FUNCS_STATIC_EXTRA): Remove. - * config/mips/vr4120-div.S: Move to ../libgcc/config/mips. - * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove. - * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove. - * config/pa/fptr.c, config/pa/linux-atomic.c: Move to - ../libgcc/config/pa. - * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S. - * config/pa/quadlib.c: Move to ../libgcc/config/pa. - * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove. - * config/pa/t-linux, config/pa/t-linux64: Remove. - * config/pa/t-pa-hpux, config/pa/t-pa-hpux10, - config/pa/t-pa-hpux11, config/pa/t-pa64: Remove. - * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA): - Remove. - * config/picochip/libgccExtras: Move to ../libgcc/config/picochip. - * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET) - (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove. - * config/rs6000/crtresfpr.asm: Move to - ../libgcc/config/rs6000/crtresfpr.S. - * config/rs6000/crtresgpr.asm: Move to - ../libgcc/config/rs6000/crtresgpr.S. - * config/rs6000/crtresxfpr.asm: Move to - ../libgcc/config/rs6000/crtresxfpr.S. - * config/rs6000/crtresxgpr.asm: Move to - ../libgcc/config/rs6000/crtresxgpr.S. - * config/rs6000/crtsavfpr.asm: Move to - ../libgcc/config/rs6000/crtsavfpr.S. - * config/rs6000/crtsavgpr.asm: Move to - ../libgcc/config/rs6000/crtsavgpr.S. - * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000. - * config/rs6000/darwin-fpsave.asm: Move to - ../libgcc/config/rs6000/darwin-fpsave.S. - * config/rs6000/darwin-gpsave.asm: Move to - ../libgcc/config/rs6000/darwin-gpsave.S. - * config/rs6000/darwin-tramp.asm: Move to - ../libgcc/config/rs6000/darwin-tramp.S. - * config/rs6000/darwin-vecsave.asm: Move to - ../libgcc/config/rs6000/darwin-vecsave.S. - * config/rs6000/darwin-world.asm: Move to - ../libgcc/config/rs6000/darwin-world.S. - * config/rs6000/e500crtres32gpr.asm: Move to - ../libgcc/config/rs6000/e500crtres32gpr.S. - * config/rs6000/e500crtres64gpr.asm: Move to - ../libgcc/config/rs6000/e500crtres64gpr.S. - * config/rs6000/e500crtres64gprctr.asm: Move to - ../libgcc/config/rs6000/e500crtres64gprctr.S. - * config/rs6000/e500crtrest32gpr.asm: Move to - ../libgcc/config/rs6000/e500crtrest32gpr.S. - * config/rs6000/e500crtrest64gpr.asm: Move to - ../libgcc/config/rs6000/e500crtrest64gpr.S. - * config/rs6000/e500crtresx32gpr.asm: Move to - ../libgcc/config/rs6000/e500crtresx32gpr.S. - * config/rs6000/e500crtresx64gpr.asm: Move to - ../libgcc/config/rs6000/e500crtresx64gpr.S. - * config/rs6000/e500crtsav32gpr.asm: Move to - ../libgcc/config/rs6000/e500crtsav32gpr.S. - * config/rs6000/e500crtsav64gpr.asm: Move to - ../libgcc/config/rs6000/e500crtsav64gpr.S. - * config/rs6000/e500crtsav64gprctr.asm: Move to - ../libgcc/config/rs6000/e500crtsav64gprctr.S. - * config/rs6000/e500crtsavg32gpr.asm: Move to - ../libgcc/config/rs6000/e500crtsavg32gpr.S. - * config/rs6000/e500crtsavg64gpr.asm: Move to - ../libgcc/config/rs6000/e500crtsavg64gpr.S. - * config/rs6000/e500crtsavg64gprctr.asm: Move to - ../libgcc/config/rs6000/e500crtsavg64gprctr.S. - * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S. - * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) - (TARGET_LIBGCC2_CFLAGS): Remove. - * config/rs6000/t-aix52: Likewise. - * config/rs6000/t-darwin: Remove. - * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS) - (LIB2FUNCS_EXTRA): Remove. - * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove. - * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove. - * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC) - (INSTALL_LIBGCC): Remove. - * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA) - (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S) - (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC) - (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext)) - ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext)) - ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove. - * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA) - (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove. - * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove. - * config/rs6000/t-vxworks: Remove comment. - * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S. - * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove. - * config/sh/linux-atomic.asm: Move to - ../libgcc/config/sh/linux-atomic.S. - * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove. - * config/sh/t-netbsd: Remove. - * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): - Remove. - * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove. - * config/sparc/t-leon: Likewise. - * config/sparc/t-leon3: Likewise. - * config/sparc/t-linux64: Likewise. - * config/sparc/t-netbsd64: Fix typo. - Remove comment. - * config/spu/divmodti4.c, config/spu/divv2df3.c, - config/spu/float_disf.c, config/spu/float_unsdidf.c, - config/spu/float_unsdisf.c, config/spu/float_unssidf.c, - config/spu/mfc_multi_tag_release.c, - config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, - config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, - config/spu/multi3.c: Move to ../libgcc/config/spu. - * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE) - (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC) - (INSTALL_LIBGCC): Remove. - * config/stormy16/stormy16-lib2.c: Move to - ../libgcc/config/stormy16/lib2.c. - * config/stormy16/stormy16-lib2-ashlsi3.c: Move to - ../libgcc/config/stormy16/ashlsi3.c. - * config/stormy16/stormy16-lib2-ashrsi3.c: Move to - ../libgcc/config/stormy16/ashrsi3.c. - * config/stormy16/stormy16-lib2-clzhi2.c: Move to - ../libgcc/config/stormy16/clzhi2.c. - * config/stormy16/stormy16-lib2-cmpsi2.c: Move to - ../libgcc/config/stormy16/cmpsi2.c. - * config/stormy16/stormy16-lib2-ctzhi2.c: Move to - ../libgcc/config/stormy16/ctzhi2.c. - * config/stormy16/stormy16-lib2-divsi3.c: Move to - ../libgcc/config/stormy16/divsi3.c. - * config/stormy16/stormy16-lib2-ffshi2.c: Move to - ../libgcc/config/stormy16/ffshi2.c. - * config/stormy16/stormy16-lib2-lshrsi3.c: Move to - ../libgcc/config/stormy16/lshrsi3.c. - * config/stormy16/stormy16-lib2-modsi3.c: Move to - ../libgcc/config/stormy16/modsi3.c. - * config/stormy16/stormy16-lib2-parityhi2.c: Move to - ../libgcc/config/stormy16/parityhi2.c. - * config/stormy16/stormy16-lib2-popcounthi2.c: Move to - ../libgcc/config/stormy16/popcounthi2.c. - * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to - ../libgcc/config/stormy16/ucmpsi2.c. - * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to - ../libgcc/config/stormy16/udivmodsi4.c. - * config/stormy16/stormy16-lib2-udivsi3.c: Move to - ../libgcc/config/stormy16/udivsi3.c. - * config/stormy16/stormy16-lib2-umodsi3.c: Move to - ../libgcc/config/stormy16/umodsi3.c. - * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16. - * config/v850/t-v850 (INSTALL_LIBGCC): Remove. - * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa. - * config/xtensa/t-elf: Remove. - * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove. - * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread - from tmake_file. - (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, - *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file. - (*-*-netbsd*): Remove t-libgcc-pic from tmake_file. - (*-*-openbsd*): Likewise. - Remove t-openbsd-thread for posix threads. - (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file. - (alpha*-*-freebsd*): Likewise. - (alpha*-*-netbsd*): Likewise. - (alpha*-*-openbsd*): Likewise. - (alpha64-dec-*vms*): Likewise. - (alpha*-dec-*vms*): Likewise. - (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file. - (arm*-*-linux*): Remove t-linux from tmake_file. - Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi. - (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for - arm*-*-uclinux*eabi. - (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from - tmake_file for arm*-*-eabi*. - (fr30-*-elf): Remove tmake_file. - (hppa*64*-*-linux*): Remove tmake_file. - (hppa*-*-linux*): Likewise. - (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from - tmake_file. - (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file. - (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from - tmake_file. - (i[34567]86-*-elf*): Remove tmake_file. - (x86_64-*-elf*): Likewise. - (i[34567]86-*-nto-qnx*): Likewise. - (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file. - (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32 - from tmake_file if using win32 threads. - (iq2000*-*-elf*): Remove tmake-file. - (microblaze*-linux*): Likewise. - (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) - (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) - (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) - (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for - sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd. - (xtensa*-*-elf*): Remove tmake_file. - -2011-11-02 Rainer Orth - - * Makefile.in (LIB1ASMSRC): Don't export. - (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC. - * config/arm/arm.c: Update lib1funcs.asm filename. - * config/arm/linux-eabi.h: Likewise. - * config/arm/bpabi-v6m.S, config/arm/bpabi.S, - config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to - ../libgcc/config/arm. - * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S. - * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove. - * config/arm/t-bpabi: Likewise. - * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove. - * config/arm/t-strongarm-elf: Likewise. - * config/arm/t-symbian: Likewise. - * config/arm/t-vxworks: Likewise. - * config/arm/t-wince-pe: Likewise. - * config/avr/libgcc.S: Move to ../libgcc/config/avr. - * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S. - * config/bfin/t-bfin: Remove. - * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/bfin/t-bfin-linux: Likewise. - * config/bfin/t-bfin-uclinux: Likewise. - * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S. - * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S. - * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S. - * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename. - * config/h8300/lib1funcs.asm: Move to - ../libgcc/config/h8300/lib1funcs.S. - * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S. - * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/i386/t-interix: Likewise. - * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S. - * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove. - * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove. - * config/m32c/m32c.c: Update m32c-lib1.S filename. - * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S. - * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove. - * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S. - * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file. - * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S. - * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S. - * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/mips/mips16.S: Move to ../libgcc/config/mips. - * config/mips/t-libgcc-mips16: Remove. - * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove. - * config/pa/milli64.S: Move to ../libgcc/config/pa. - * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove. - * config/pa/t-linux64: Likewise. - * config/picochip/libgccExtras/fake_libgcc.asm: Move to - ../libgcc/config/picochip/lib1funcs.S. - * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove. - * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S. - * config/sh/lib1funcs.h: Move to ../libgcc/config/sh. - * config/sh/sh.h: Update lib1funcs.asm filename. - * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove. - * config/sh/t-netbsd: Likewise. - * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE): - Remove. - * config/sh/t-sh64 (LIB1ASMFUNCS): Remove. - * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S. - * config/sparc/lb1spl.asm: Remove. - * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config/sparc/t-leon: Likewise. - * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove. - * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S. - * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove - * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S. - * config/vax/t-linux: Remove. - * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to - ../libgcc/config/xtensa. - * config/xtensa/lib1funcs.asm: Move to - ../libgcc/config/xtensa/lib1funcs.S. - * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove. - * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file. - (bfin*-*): Likewise. - (mips64*-*-linux*, mipsisa64*-*-linux*): Remove - mips/t-libgcc-mips16 from tmake_file. - (mips*-*-linux*): Likewise. - (mips*-sde-elf*): Likewise. - (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) - (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) - (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise. - (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise. - (mips-*-elf*, mipsel-*-elf*): Likewise. - (mips64-*-elf*, mips64el-*-elf*): Likewise. - (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise. - (mips*-*-rtems*): Likewise. - (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise. - (vax-*-linux*): Remove vax/t-linux from tmake_file. - -2011-11-02 Rainer Orth - - * config.gcc (extra_parts): Remove. - (*-*-freebsd*): Remove extra_parts. - (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, - *-*-gnu*, *-*-kopensolaris*-gnu): Likewise. - (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file. - Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*, - *-*-netbsdelf[2-9]*. - (*-*-openbsd*): Remove t-libc-ok from tmake_file. - (alpha*-*-linux*): Remove extra_parts. - (alpha*-*-freebsd*): Likewise. - (bfin*-linux-uclibc*): Likewise. - (fr30-*-elf): Likewise. - (moxie-*-elf): Likewise. - (moxie-*-uclinux*): Likewise. - (h8300-*-rtems*): Remove h8300/t-elf from tmake_file. - (h8300-*-elf*): Likewise. - (hppa*64*-*-hpux11*): Remove extra_parts. - (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from - tmake_file. - (x86_64-*-elf*): Likewise. - (i[34567]86-*-freebsd*): Remove tmake_file. - (x86_64-*-freebsd*): Likewise. - (x86_64-*-netbsd*): Likewise. - (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove - t-libc-ok from tmake_file. - (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, - i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, - i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from - tmake_file. - Remove extra_parts. - (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): - Remove i386/t-crtstuff from tmake_file. - (i[34567]86-*-lynxos*): Likewise. - Remove extra_parts. - (ia64*-*-elf*): Remove extra_parts. - (ia64*-*-freebsd*): Likewise. - (ia64*-*-linux*): Likewise. - (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file. - (m32r-*-elf*): Remove extra_parts. - (m32rle-*-elf*): Likewise. - (m32r-*-rtems*): Likewise. - (m68k-*-elf*, fido-*-elf*): Likewise. - (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file. - (m68k-*-rtems*): Remove extra_parts. - (mep-*-*): Likewise. - (microblaze*-linux*): Likewise. - (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise. - (mips*-*-linux*): Likewise. - (powerpc-*-lynxos*): Likewise. - (s390x-ibm-tpf*): Likewise. - (score-*-elf): Likewise. - Remove tmake_file. - (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*, - sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*, - sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file. - Remove sh/t-superh from tmake_file for sh*-superh-elf. - Remove sh/t-linux64 from tmake_file for sh64*-*-linux*. - (sh-*-rtems*): Remove sh/t-elf from tmake_file. - (sh-wrs-vxworks): Likewise. - (sparc-*-linux*): Remove extra_parts. - (sparc64-*-linux*): Likewise. - (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise. - (xstormy16-*-elf): Likewise. - (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file. - (am33_2.0-*-linux*): Remove extra_parts. - * configure.ac (extra_parts): Don't substitute. - * configure: Regenerate. - * crtstuff.c: Move to ../libgcc. - * Makefile.in (CRTSTUFF_CFLAGS): Remove. - (EXTRA_PARTS): Remove. - (CRTSTUFF_T_CFLAGS): Remove. - (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS). - (GCC_EXTRA_PARTS): Remove. - (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS, - CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S. - Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS. - ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o) - ($(T)crtbeginT.o): Remove. - * config/alpha/t-vms (EXTRA_PARTS): Remove. - ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove. - * config/alpha/vms-dwarf2.asm: Move to - ../libgcc/config/alpha/vms-dwarf2.S. - * config/alpha/vms-dwarf2eh.asm: Move to - ../libgcc/config/alpha/vms-dwarf2eh.S. - * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S. - * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S. - * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - * config/arm/t-linux: Remove comment. - * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove. - * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove. - * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S. - * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S. - * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S. - * config/bfin/t-bfin (EXTRA_PARTS): Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove. - ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove - (EXTRA_MULTILIB_PARTS): Remove. - * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS, - EXTRA_MULTILIB_PARTS): Remove. - * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove. - ($(T)crtlibid.o): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S. - * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S. - * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. - * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS, - CRTSTUFF_T_CFLAGS_S): Remove. - * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove. - * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. - * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S. - * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S. - * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove. - * config/frv/frvbegin.c, config/frv/frvend.c: Move to - ../libgcc/config/frv. - * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove. - (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove. - * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove. - (CRTSTUFF_T_CFLAGS): Remove. - * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S. - * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S. - * config/h8300/t-elf: Remove. - * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c: - Move to ../libgcc/config/i386. - * config/i386/t-crtstuff: Remove. - * config/i386/t-i386elf: Remove. - * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove. - * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove. - * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S. - * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S. - * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S. - * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S. - * config/ia64/t-vms: Remove. - * config/ia64/vms-crtinit.asm: Move to - ../libgcc/config/ia64/vms-crtinit.S. - * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove. - * config/m32r/initfini.c: Move to ../libgcc/config/m32r. - * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. - * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove. - ($(T)crtinit.o, $(T)crtfini.o): Remove. - (m32rx, m32r2): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S. - * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S. - * config/m68k/t-crtstuff: Remove. - * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove. - * config/m68k/t-m68kelf: Remove. - * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove. - * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S. - * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S. - * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove. - (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove. - * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S. - * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S. - * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS, - EXTRA_PARTS): Remove. - ($(T)crti$(objext), $(T)crtn$(objext)): Remove. - * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S. - * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S. - * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/mips/t-isa3264: Likewise. - * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove. - * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove. - (CRTSTUFF_T_CFLAGS): Remove. - * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): - Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove. - * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - ($(T)crti.o, $(T)crtn.o): Remove. - * config/mmix/crti.asm: Move to ../libgcc/config/crti.S. - * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S. - * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove. - * config/moxie/crti.asm, config/moxie/crtn.asm: Remove. - * config/pa/stublib.c: Move to libgcc/config/pa. - * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. - * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove. - * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove. - (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o) - (pthread_mutex_unlock-stub.o, pthread_once-stub.o) - ($(T)libgcc_stub.a): Remove. - * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove. - (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o) - (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o) - (pthread_mutex_unlock-stub.o, pthread_once-stub.o) - ($(T)libgcc_stub.a): Remove. - * config/rs6000/eabi-cn.asm: Move to - ../../../libgcc/config/rs6000/eabi-cn.S. - * config/rs6000/eabi-ci.asm: Move to - ../../../libgcc/config/rs6000/eabi-ci.S. - * config/rs6000/sol-ci.asm: Move to - ../../../libgcc/config/rs6000/sol-ci.S. - * config/rs6000/sol-cn.asm: Move to - ../../../libgcc/config/rs6000/sol-cn.S. - * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove. - (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. - * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): - Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove. - (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove. - ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext), - ($(T)ncrtn$(objext)): Remove. - (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. - * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. - * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove. - * config/score/crti.asm: Move to ../libgcc/config/score/crti.S. - * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S. - * config/score/t-score-elf: Remove. - * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S. - * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S. - * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S. - * config/sh/lib1funcs-4-300.asm: Move to - ../../../libgcc/config/sh/lib1funcs-4-300.S. - * config/sh/lib1funcs-Os-4-200.asm: Move to - ../libgcc/config/sh/lib1funcs-Os-4-200.S. - * config/sh/t-elf: Remove. - * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove. - * config/sh/t-linux64: Remove. - * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove. - * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove. - (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove. - ($(T)ic_invalidate_array_4-100.o) - ($(T)libic_invalidate_array_4-100.a) - ($(T)ic_invalidate_array_4-200.o) - ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o) - ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o) - ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o) - ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o) - ($(T)libgcc-4-300.a): Remove. - * config/sh/t-superh: Remove. - * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. - * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove. - * config/spu/cache.S: Move to ../libgcc/config/spu. - * config/spu/cachemgr.c: Move to ../libgcc/config/spu. - * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove. - ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o) - ($(T)cache64k.o, $(T)cache128k.o): Remove. - * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove. - * config/t-libc-ok: Remove. - * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. - * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove. - * config/t-netbsd: Remove. - * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove. - * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. - * config/vms/t-vms (VMS_EXTRA_PARTS): Remove. - ($(T)vcrt0.o, $(T)pcrt0.o): Remove. - * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms. - * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S. - * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S. - * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. - (EXTRA_MULTILIB_PARTS): Remove. - * config/xtensa/t-linux: Remove. - * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove. - -2011-11-02 Uros Bizjak - - * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use - CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2. - -2011-11-02 Rainer Orth - - PR translation/45116 - * Makefile.in (slibdir): Remove, don't export. - (SHLIB_NM_FLAGS): Remove. - (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL, - SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, - SHLIB_MAPFILES, SHLIB_NM_FLAGS. - (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK. - (gcc.o): Pass SHLIB instead of SHLIB_LINK. - (gccspec.o): Likewise. - (installdirs): Don't create $(DESTDIR)$(slibdir). - * configure.ac (slibdir): Remove. - * configure: Regenerate. - * libgcc-libsystem.ver: Move to ../libgcc/config. - * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc. - * config/libgcc-glibc.ver: Move to ../libgcc/config. - * config/t-libunwind (SHLIB_LC): Remove. - * config/t-linux (SHLIB_MAPFILES): Remove. - * config/t-slibgcc-dummy: Rename to config/t-slibgcc. - * config/t-slibgcc-elf-ver: Remove. - * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to - ../libgcc/config. - * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move - to ../libgcc/config/alpha. - * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, - SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC, - SHLIB_SYMVECX2, SHLIB_LINK): Remove. - * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm. - * config/arm/t-bpabi (SHLIB_MAPFILES): Remove. - * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, - SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove. - * config/arm/t-symbian (SHLIB_LC): Remove. - * config/bfin/libgcc-bfin.ver: Move to - ../libgcc/config/bfin/libgcc-glibc.ver. - * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove. - * config/c6x/libgcc-c6xeabi.ver: Move to - ../libgcc/config/c6x/libgcc-eabi.ver. - * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove. - * config/cris/libgcc.ver: Move to - ../libgcc/config/cris/libgcc-glibc.ver. - * config/cris/t-linux (SHLIB_MAPFILES): Remove. - * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv. - * config/frv/t-linux (SHLIB_MAPFILES): Remove. - * config/i386/darwin-libgcc.10.4.ver: Move to - ../libgcc/config/i386/libgcc-darwin.10.4.ver. - * config/i386/darwin-libgcc.10.5.ver: Move to - ../libgcc/config/i386/libgcc-darwin.10.5.ver. - * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386. - * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION, - SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL) - SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK, - SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove. - * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION, - SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove. - * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to - ../libgcc/config/i386. - * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to - ../libgcc/config/i386. - * config/i386/t-linux: Move to ../libgcc/config/i386. - * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386. - * config/i386/t-mingw-w32 (SHLIB_LC): Remove. - * config/i386/t-mingw-w64: Likewise. - * config/i386/t-mingw32: Remove. - * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move - to ../libgcc/config/ia64. - * config/ia64/t-glibc: Remove. - * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove. - * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove. - * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, - SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove. - * config/ia64/vms_symvec_libgcc_s.opt: Remove. - * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r. - * config/m32r/t-linux (SHLIB_MAPFILES): Remove. - * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k. - * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove. - * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux. - * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: - Move to ../libgcc/config/pa. - * config/rs6000/darwin-libgcc.10.4.ver: Move to - ../libgcc/config/rs6000/libgcc-darwin.10.4.ver. - * config/rs6000/darwin-libgcc.10.5.ver: Move to - ../libgcc/config/rs6000/libgcc-darwin.10.5.ver. - * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, - SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove. - * config/rs6000/t-aix52: Likewise. - * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to - ../libgcc/config/sh. - * config/sparc/libgcc-sparc-glibc.ver: Move to - ../libgcc/config/sparc/libgcc-glibc.ver. - * config/sparc/t-linux: Move to ../libgcc/config/sparc. - * config/xtensa/t-linux (SHLIB_MAPFILES): Remove. - * config/xtensa/libgcc-xtensa.ver: Move to - ../libgcc/config/xtensa/libgcc-glibc.ver. - * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with - t-slibgcc in tmake_file. - Remove t-slibgcc-nolc-override for *-*-freebsd[34], - *-*-freebsd[34].* with pthreads. - (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, - *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace - t-slibgcc-elf-ver with t-slibgcc in tmake_file. - (*-*-netbsd*): Likewise. - (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. - (*-*-*vms*): Add t-slibgcc to tmake_file. - (alpha*-*-linux*): Remove alpha/t-linux from tmake_file. - (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in - tmake_file. - (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for - arm*-*-linux-*eabi. - (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in - tmake_file. - (crisv32-*-linux*, cris-*-linux*): Likewise. - (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, - pa/t-slibgcc-dwarf-ver from tmake_file. - (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in - tmake_file. - Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. - (hppa*64*-*-hpux11*): Likewise. - (hppa[12]*-*-hpux11*): Likewise. - (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in - tmake_file. - (x86_64-*-darwin*): Likewise. - (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file. - Add t-slibgcc to tmake_file. - (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. - Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*, - i[34567]86-w64-*. - Remove i386/t-mingw-pthread from tmake_file. - (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file. - (ia64*-*-hpux*): Add t-slibgcc to tmake_file. - (ia64-hp-*vms*): Likewise. - (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in - tmake_file. - (m32rle-*-linux*): Likewise. - (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file. - (microblaze*-linux*): Remove t-slibgcc-elf-ver, - t-slibgcc-nolc-override from tmake_file. - (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in - tmake_file. - (powerpc-*-darwin*): Likewise. - (powerpc64-*-darwin*): Likewise. - (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file. - (powerpc-*-linux*, powerpc64-*-linux*): Likewise. - (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add - t-slibgcc to tmake_file. - (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. - (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise. - (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise. - (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise. - (sparc-*-linux*): Remove sparc/t-linux from tmake_file. - (sparc64-*-linux*): Likewise. - (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in - tmake_file. - (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu, - x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux - from tmake_file. - -2011-11-02 Richard Guenther - - PR tree-optimization/50902 - * tree-vect-stmts.c (vectorizable_load): Properly convert - an invariant initializer element. - -2010-11-02 Richard Guenther - - PR tree-optimization/50890 - * gimple.h (gimple_fold_call): Remove. - * gimple-fold.c (fold_stmt_1): Move all call related code to ... - (gimple_fold_call): ... here. Make static. Update the - cannot-inline flag on direct calls. - * ipa-inline.c (early_inliner): Copy the cannot-inline flag - from the statements to the edges. - -2011-11-01 Ian Lance Taylor - - * godump.c (struct macro_hash_value): Define. - (macro_hash_hashval): New static function. - (macro_hash_eq, macro_hash_del): New static functions. - (go_define): Use macro_hash_value to store values in macro_hash. - Replace an old value on a redefinition. Don't print anything to - go_dump_file. - (go_undef): Delete the entry from the hash table. - (go_output_typedef): For an enum, use macro_hash_value, and don't - print anything to go_dump_file. - (go_print_macro): New static function. - (go_finish): Traverse macro_hash with go_print_macro. - (dump_go_spec_init): Update macro_hash creation for macro_hash_value. - -2011-11-02 Alan Modra - - * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED. - -2011-11-01 Paolo Carlini - - PR c++/44277 - * doc/invoke.texi: Document -Wzero-as-null-pointer-constant. - -2011-11-01 Andrew Stubbs - - * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning. - -2011-11-01 Uros Bizjak - - * config/i386/i386.md (splitters for int-float conversion): Use - SUBREG_REG on SUBREGs in splitter constraints. - -2011-11-01 Jakub Jelinek - - * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New - prototype. - * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New - function. - * config/i386/sse.md (fixuns_trunc2): Use it. - (ssepackfltmode): New mode attr. - (vec_pack_ufix_trunc_): New expander. - -2011-11-01 Uros Bizjak - - PR target/50940 - * config/i386/i386.md (floatsi2_vector_sse_with_temp splitter): - Compare mode to V4SFmode, not V4SImode. - -2011-11-01 Peter Bergner - - * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant. - * config/rs6000/476.h: New file. - * config/rs6000/476.opt: Likewise. - * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define. - (SET_TARGET_LINK_STACK): Likewise. - (TARGET_ASM_CODE_END): Define. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable - TARGET_LINK_STACK for -mtune=476 and -mtune=476fp. - (rs6000_legitimize_tls_address): Emit the link stack preserving GOT - code if TARGET_LINK_STACK. - (rs6000_emit_load_toc_table): Likewise. - (output_function_profiler): Likewise - (macho_branch_islands): Likewise - (machopic_output_stub): Likewise - (get_ppc476_thunk_name): New function. - (rs6000_code_end): Likewise. - * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): - Convert to a define_expand. - (load_toc_v4_PIC_1_normal): New define_insn. - (load_toc_v4_PIC_1_476): Likewise. - (load_toc_v4_PIC_1b_normal): Likewise. - (load_toc_v4_PIC_1b_476): Likewise. - -2011-11-01 Georg-Johann Lay - - PR target/50910 - * config/avr/avr.opt (-mbranch-cost=): New option. - * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost. - * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs. - * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns. - (*addhi3_zero_extend1): Remove % in constraint of operand 1. - (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns. - -2011-11-01 Tom de Vries - - PR tree-optimization/50908 - * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed - before update_vuses, test for 1 predecessor rather than two. - (delete_block_update_dominator_info): New function, part of it factored - out of ... - (replace_block_by): Use delete_block_update_dominator_info. Call - update_vuses after deleting bb1 and updating dominator info, instead of - before. - -2011-11-01 David S. Miller - - * config/sparc/sparc.c (vector_init_faligndata): New function. - (sparc_expand_vector_init): Use it for V4HImode on VIS1. - - * config/sparc/sparc.c (sparc_expand_vcond): New function. - * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it. - * config/sparc/sparc.md (vcond): New VIS3 expander. - (vconduv8qiv8qi): Likewise. - -2011-11-01 Alexandre Oliva - - PR debug/50869 - * cselib.c (cfa_base_preserved_regno): Initialize. - (cselib_expand_value_rtx_1): Don't expand it. - * var-tracking.c (vt_expand_var_loc_chain): Initialize depth. - Check it's only zero if result is NULL. - -2011-11-01 Jakub Jelinek - - * config/i386/sse.md (fixuns_trunc2): New - expander. - - * config/i386/sse.md (sseintvecmode): Remove duplicate modes. - (sseintvecmodelower): New mode iterator. - (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into... - (float2): ... this using VF1 iterator. - (floatunsv4siv4sf2): Macroize into... - (floatuns2): ... this using VF1 iterator. - -2011-10-31 David S. Miller - - * config/sparc/sparc.md (cmask patterns): Allow zero operand. - - * dwarf2out.c (cached_next_real_insn): New. - (dwarf2out_end_epilogue): Set it to NULL_RTX. - (dwarf2out_var_location): Remove cached_next_real_insn local static. - -2011-10-31 Richard Henderson - - * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256. - (floatv4siv4sf2): Rename from sse2_cvtdq2ps. - (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps. - (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256. - (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq. - (floatv4siv4df2): Rename from avx_cvtdq2pd256. - (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256. - (vec_unpacku_float_hi_v8si): Update for insn pattern name changes. - * config/i386/i386.md (splitters for int-float conversion): Likewise. - * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise. - (bdesc_args): Likewise. - (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove. - (ix86_vectorize_builtin_conversion): Remove. - (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. - -2011-10-31 Martin Jambor - - * ipa-prop.c (mark_modified): Moved up in the file. - (is_parm_modified_before_call): Renamed to - is_parm_modified_before_stmt, moved up in the file. - (load_from_unmodified_param): New function. - (compute_complex_assign_jump_func): Also attempt to create pass - through jump functions for values loaded from (addressable) - parameters. - -2011-10-31 Jakub Jelinek - - * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def - in a loop and has different type from op0, cast it to op0's type - before the loop first. For slp give up. Don't crash if op1_vectype - is NULL. - -2011-10-31 Paul Brook - - * cgraphunit.c: Don't mark clones as static constructors. - -2011-10-31 David Edelsohn - - * gcc-ar: Do not include stdio.h. - -2011-10-31 Diego Novillo - - * tree-streamer-out.c (pack_ts_base_value_fields): Emit - TYPE_ADDR_SPACE. - * tree-streamer-in.c (unpack_ts_base_value_fields): Read - TYPE_ADDR_SPACE. - -2011-10-30 David S. Miller - - * config/sparc/sparc.c (vector_init_bshuffle): New function. - (vector_init_fpmerge): New function. - (sparc_expand_vector_init): Use them to improve non-const cases. - - * dwarf2out.c (dwarf2out_var_location): When processing several - consecutive location notes, cache the result of next_real_insn(). - -2011-10-30 Uros Bizjak - - * config/i386/i386.md (avx2_vec_dup): Macroize insn from - avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator. - (vec_dupv4sf): Remove expander. - (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx. - (vec_dupv2df): Remove expander. - (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3. - (*vec_concatv2df): Merge *vec_concatv2df_sse3. - (*vec_dupv4si): Merge *vec_dupv4si_avx. - (*vec_dupv2di): Merge *vec_dupv2di_sse3. - -2011-10-30 Dmitry Plotnikov - - * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions. - * optabs.c (supportable_convert_operation): New function. - * optabs.h (supportable_convert_operation): New prototype. - * tree-vect-stmts.c (vectorizable_conversion): Change condition and - behavior for NONE modifier case. - * tree.h (VECTOR_INTEGER_TYPE_P): New macro. - -2011-10-30 Jakub Jelinek - - * tree-vectorizer.h (NUM_PATTERNS): Bump to 9. - * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New - function. - (vect_vect_recog_func_ptrs): Add it. - -2011-10-30 David S. Miller - - * reorg.c (label_before_next_insn): New function. - (relax_delay_slots): Use it instead of prev_label. - * rtl.h (prev_label): Delete declaration. - * emit-rtl.c (prev_label): Remove. - -2011-10-30 Revital Eres - - * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog - as BB_DISABLE_SCHEDULE. - (mark_loop_unsched): New function. - (sms_schedule): Call it. - -2011-10-29 John David Anglin - - PR target/50617 - * config/pa/protos.h (attr_length_save_restore_dltp): Delete. - (cmpib_comparison_operator): Likewise. - (following_cal, output_and, output_ior, output_move_double, - output_fp_move_double, output_block_move, output_block_clear, - output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra, - output_movb, output_parallel_movb, output_parallel_addb, output_call, - output_indirect_call, output_millicode_call, output_mul_insn, - output_div_insn, output_mod_insn, singlemove_string, - output_arg_descriptor, output_global_address, print_operand, - legitimize_pic_address, hppa_encode_label, symbolic_expression_p, - fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence, - emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay, - hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call, - attr_length_indirect_call, return_addr_rtx, function_arg_padding, - insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p, - output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move, - hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p, - compute_zdepdi_operands, output_64bit_and, output_64bit_ior, - reloc_needed, magic_milli, shadd_constant_p): Consistently prefix - exported functions and variables with "pa_". - * config/pa/predicates.md: Likewise. - * config/pa/pa64-hpux.h: likewise. - * config/pa/som.h: Likewise. - * config/pa/elf.h: Likewise. - * config/pa/pa64-linux.h: Likewise. - * config/pa/pa.md: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa-linux.h: Likewise. - * config/pa/pa.h: Likewise. - * config/pa/constraints.md: Likewise. - -2011-10-29 Uros Bizjak - - * config/i386/i386.md (xop_sha3): Rename from xop_ashl3. - Update all uses. - (xop_shl3): Rename from xop_lshl3. Update all uses. - * config/i386/i386.c: Update all uses. - -2011-10-29 Uros Bizjak - - * config/i386/i386.md (lshlv16qi3): Remove expander. - (lshrv16qi3): New expander. - (v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3 - using any_shiftrt code iterator. Cleanup. - (ashlv16qi3): Cleanup. - (ashrv2di3): Ditto. - -2011-10-29 John David Anglin - - PR target/50691 - * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol - references. - (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC - and TLS_MODEL_LOCAL_DYNAMIC symbol references. - -2011-10-29 Georg-Johann Lay - - PR target/50887 - * config/avr/avr.opt (-maccumulate-args): New option. - * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to - avr_starting_frame_offset. - (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args. - * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove. - (UNSPECV_WRITE_SP_IRQ_OFF): Remove. - (UNSPECV_WRITE_SP): New constant. - (*addhi3_sp_R): Rewrite to... - (*addhi3_sp): ...this new insn. - (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to... - (movhi_sp_r): ...this new insn. - * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New. - (avr_starting_frame_offset): New. - * config/avr/avr.c (avr_accumulate_outgoing_args): New function. - (avr_starting_frame_offset): New function. - (avr_outgoing_args_size): New static function. - (avr_initial_elimination_offset): Use it. - (avr_simple_epilogue): Use it. - (avr_asm_function_end_prologue): Use it. - (expand_epilogue): Use it. - (expand_prologue): Use it. Break out code to... - (avr_prologue_setup_frame): ...this new static function. - (avr_can_eliminate): Allow eliminating to frame pointer if there - is one. - (avr_frame_pointer_required_p): Use frame pointer if target has a - nonlocal label. - * config/avr/constraints.md (R): Remove. - (Csp): New constraint. - * config/avr/predicates.md (avr_sp_immediate_operand): Use it. - -2011-10-29 Andi Kleen - - * gcc-ar.c (target_machine): Add. - -2011-10-29 Anatoly Sokolov - - * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p, - cris_constant_index_p, cris_base_p, cris_index_p, - cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p, - cris_legitimate_address_p): New functions. - (TARGET_LEGITIMATE_ADDRESS_P): Define. - (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type - from rtx to const_rtx. - (cris_print_operand_address, cris_address_cost, - cris_side_effect_mode_ok): Use - cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, - cris_biap_index_p and cris_bdap_index_p. - * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P, - BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, - REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. - (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use - cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, - cris_biap_index_p and cris_bdap_index_p. - * config/cris/cris.md (moversideqi movemsideqi peephole2): Use - cris_base_p. - * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p, - cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New - prototype. - (cris_pic_symbol_type, cris_valid_pic_const): Update prototype. - -2011-10-21 Andi Kleen - - * ggc-page (PAGE_ALIGN): Add. - (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read): - Replace ROUND_UP with PAGE_ALIGN. - -2011-10-20 Andi Kleen - - * ggc-page (alloc_anon): Add check argument. - (alloc_page): Add fallback to 1 page allocation. - Adjust alloc_anon calls to new argument. - -2011-10-18 Andi Kleen - - * ggc-page (release_pages): First free large continuous - chunks in the madvise path. - -2011-10-18 Andi Kleen - - * ggc-page.c (alloc_pages): Always round up entry_size. - -2011-10-19 Andi Kleen - - * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib. - (native): Add gcc-ar, gcc-nm, gcc-ranlib. - (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o, - gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add. - (install): Depend on install-gcc-ar. - (install-gcc-ar): Add. - (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib. - * gcc-ar.c: Add new file. - -2011-10-28 Pat Haugen - - * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble. - * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble - type for V2DF. - (VStype_div): Use vector types for V2DF/V4SF. - (VStype_sqrt): Use *sqrt types. - (VS_spdp_type): Change type to vecdouble. - (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws, - vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds, - vsx_xvcvspuxds): Likewise. - (*vsx_fms4): Set type via . - (*vsx_eq__p, *vsx_gt__p, *vsx_ge__p): Set type via - . - * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe. - (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt, - power7-dsqrt): Correct insn latency. - (power7-vecsimple): Add veccmp type and correct dispatch/VSU values. - (power7-veccmp): Delete. - (power7-vecfloat): Correct latency/dispatch/VSU values. - (define_bypass "power7-vecfloat"): Correct latency and types. - (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values. - (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New. - -2011-10-28 Uros Bizjak - - * config/i386/i386.md (shift_insn): Rename code attribute from - shiftrt_insn. Also handle ashift RTX. - (shift): Rename code attribute from shiftrt. Also handle ashift RTX. - (vshift): New code attribute. - (*): Rename from *. Update asm templates. - (any_lshift): Move and rename code iterator from ... - * config/i386/sse.md (lshift): ... here. - (lshift_insn): Remove code attribute. - (lshift): Remove code attribute. - (vlshr3): Use lshiftrt RTX. - (vashr3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX. - (vashl3, ashlv16qi3): Use ashift RTX. - (avx2_v): Rename from avx2_v. Use - any_lshift code iterator. Update asm template. - (3): Macroize insn from lshr3 and ashl3 - usign any_lshift code iterator. - * config/i386/mmx.md (mmx_3): Macroize insn from - mmx_lshr3 and mmx_ashl3 usign any_lshift code iterator. - * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update. - -2011-10-28 Georg-Johann Lay - - PR target/49313 - * config/avr/avr.md (parityhi2): Expand allowing pseudos. - (*parityhi2): New pre-reload insn-and-split to map 16-bit parity - to the libgcc insn. - (*parityqihi2): Same for 8-bit parity. - -2011-10-28 Julian Brown - - PR rtl-optimization/47918 - * reload1.c (set_initial_label_offsets): Use initial offsets - for labels on the nonlocal_goto_handler_labels chain. - -2011-10-28 Iain Sandoe - - * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): - Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA. - (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm. - (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from - config/t-darwin. - * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable. - (GP_SAVE_INLINE): Likewise. - (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, - RESTORE_FP_SUFFIX): Set to empty strings. - * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin. - (debug_stack_info): Print savres_strategy. - (rs6000_savres_routine_name): Implement for Darwin. - (rs6000_make_savres_rtx): Adjust used register for Darwin. - (rs6000_emit_prologue): Implement out-of-line saves for Darwin. - (rs6000_output_function_prologue): Don't emit .extern for Mach-O. - (rs6000_emit_epilogue): Implement out-of-line saves for Darwin. - * config/rs6000/darwin-gpsave.asm: New file. - -2011-10-28 Jakub Jelinek - - * config/i386/sse.md (VI4SD_AVX2): Removed. - (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators. - (vashl3): Use VI12_128 iterator instead of VI124_128. - Add another expander using VI48_128 iterator for - TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator - for TARGET_AVX2. - (vlshr3): Likewise. Change register_operand predicate to - nonimmediate_operand on last operand in the VI12_128 expander. - (vashr3): Use VI128_128 iterator instead of VI124_128. - (vashrv4si3, vashrv8si3): New expanders. - (avx2_ashrvv8si, avx2_ashrvv4si, avx2_vv8si, - avx2_vv2di): Removed. - (avx2_ashrv): New insn with VI4_AVX2 iterator. - (avx2_v): Macroize using VI48_AVX2 - iterator. Simplify pattern. - -2010-10-28 Richard Guenther - - PR driver/50876 - * lto-wrapper.c (get_options_from_collect_gcc_options): - Properly count arguments. - (run_gcc): Use an obstack to collect argv, properly separate - switches and their arguments. - -2011-10-28 Jakub Jelinek - - * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different - vector mode from vectype's mode. - -2011-10-28 Chung-Lin Tang - - PR rtl-optimization/49720 - * simplify-rtx.c (simplify_relational_operation_1): Detect - infinite recursion condition in "(eq/ne (plus x cst1) cst2) - simplifies to (eq/ne x (cst2 - cst1))" case. - -2011-10-27 David S. Miller - - * config/sparc/sparc.md (snedi_special): Only match when not VIS3. - (*snedi_zero): Likewise. - (*snedi_zero_trunc): Likewise. - (snedi_special_vis3): New expander. - (*snedi_zero_vis3): New insn. - (*snedi_zero_trunc_vis3): Likewise. - (*sltu_insn_vis3): Likewise. - (*sltu_insn_vis3_trunc): Likewise. - (addxc): Likewise. - (*addxc_trunc_sp64_vis3): Likewise. - * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the - gen_snedi_special_vis3 expander, and try GTU/LTU addx based - sequences on DImode values. - - * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f' - constraint. - - * regcprop.c (copyprop_hardreg_forward_1): Reject the - transformation when we narrow the mode on big endian. - -2011-10-27 Jakub Jelinek - - * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2, - vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders. - (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns. - - * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x' - overrides for -masm=intel memory. - * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd, - sse4_1_v8qiv8hi2, avx2_v8qiv8si2, - sse4_1_v4hiv4si2, avx2_v4hiv4di2, - sse4_1_v2siv2di2): Use %q1 instead of %1 for -masm=intel. - (sse4_1_v4qiv4si2, avx2_v4qiv4di2, - sse4_1_v2hiv2di2): Use %k1 instead of %1 for -masm=intel. - (sse4_1_v2qiv2di2): Use %w1 instead of %1 for -masm=intel. - -2011-10-27 Martin Jambor - - * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info - to parm_ainfo. - (ipa_compute_jump_functions_for_edge): Likewise. - (ipa_compute_jump_functions): Likewise. - (ipa_analyze_indirect_call_uses): Likewise. - (ipa_analyze_call_uses): Likewise. - (ipa_analyze_params_uses): Likewise. - (ipa_analyze_node): Likewise. - -2011-10-27 Uros Bizjak - - PR target/50875 - * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn - constraints. Change alternative 1 to "x,m,1". - -2011-10-27 Jakub Jelinek - - * Makefile.in (build/gencheck.o): Depend on tree.def and - c-family/c-common.def. - - * tree-ssa-strlen.c: Include expr.h. - (get_stridx): Don't use c_strlen, instead use string_constant - and compute string length from it. - * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H). - -2011-10-27 Eric Botcazou - - PR rtl-optimization/46603 - PR bootstrap/50879 - * reload.c (push_reload): In the out case, restore previous behavior - for subregs that don't have word mode. - -2011-10-27 Ian Lance Taylor - - * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if - CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not. - (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is - defined. - -2011-10-27 Richard Henderson - - * optabs.c (expand_vec_perm): Use the correct mode for scaling the - selector. Save the qimode constant selector for later use by the - qimode vec_perm pattern. - -2011-10-27 Bernd Schmidt - - * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg - to unit_req_factor to the right enum type. - (get_unit_operand_masks, reshuffle_units, try_rename_operands, - hwloop_optimize): Remove unused variables. - -2010-10-27 Richard Guenther - - PR middle-end/50731 - * tree-vect-generic.c (do_binop): Handle scalar operands. - -2011-08-27 Uros Bizjak - - PR target/37191 - * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers - from different units in a single alternative. - -2011-10-26 David S. Miller - - * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences - if we're comparing DImode and comparison is other than EQ or NE. - - * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until - LEU/LTU/GEU/GTU is attempted. - * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn - and split. - (*neg_seqsi_sign_extend): Likewise. - (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64, - *neg_sgeu_extend_sp64): New insns. - - * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare. - * config/sparc/sparc.md (movcc, movcc): Call it. - (*mov_cc_v9): Normalize to expect operand 0 always in operand 4. - (*mov_cc_reg_sp64): Likewise. - (*movsf_cc_v9): Likewise. - (*movsf_cc_reg_sp64): Likewise. - (*movdf_cc_v9): Likewise. - (*movdf_cc_reg_sp64): Likewise. - (*movtf_cc_hq_v9): Likewise. - (*movtf_cc_reg_hq_sp64): Likewise. - (*movtf_cc_v9): Likewise. - (*movtf_cc_reg_sp64): Likewise. - * config/sparc/sparc.c (sparc_expand_conditional_move): New function. - (sparc_print_operand): Delete 'c' and 'd' handling, no longer used. - -2011-10-26 Eric Botcazou - - * reload.c (reload_inner_reg_of_subreg): Change type of return value - and type of OUTPUT parameter to bool and adjust. Document MODE and - OUTPUT parameters. Use HARD_REGISTER_P. Reorder final condition - and improve associated comment. - (push_reload): Clarify and update comments about reloading of subregs. - Adjust calls to reload_inner_reg_of_subreg. Compute the class upfront - for the reloading of subregs in the out case as well. - -2011-10-26 Alexandre Oliva - - PR debug/50826 - * var-tracking.c (rtx_debug_expr_p): New. - (use_type): Don't use debug exprs to track non-VTA variables. - -2011-10-26 Jeff Law - - * doc/invoke.texi (sink-frequency-threshold): Document. - * tree-ssa-sink.c: Include params.h. - (select_best_block): New function. - (statement_sink_location): Use it. - * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM. - -2011-10-26 Iain Sandoe - - PR target/48108 - * config/darwin.c (top level): Amend comments concerning LTO output. - (lto_section_num): New variable. (darwin_lto_section_e): New GTY. - (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New. - (LTO_NAMES_SECTION): Rename. - (darwin_asm_named_section): Record LTO section counts and switches - in a vec of darwin_lto_section_e. - (darwin_file_start): Remove unused code. - (darwin_file_end): Put an LTO section termination label. Handle - output of the wrapped LTO sections, index and names table. - -2011-10-26 Alan Modra - - * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded - declaration. - (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp. - (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx. Use - simple_return in pattern, emit instruction, and set jump_label. - (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx. Use - simple_return rather than return. - (emit_cfa_restores): New function. - (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap. - Add missing cfa_restores for SAVE_WORLD. Add missing LR cfa_restore - when using out-of-line gpr restore. Add missing LR and FP regs - cfa_restores for out-of-line fpr restore. Consolidate code setting - up cfa_restores. Formatting. Use LR_REGNO define. - (rs6000_output_mi_thunk): Use simple_return rather than return. - * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise. - (return_internal*): Likewise. - (any_return, return_pred, return_str): New iterators. - (return, conditional return insns): Provide both return and - simple_return variants. - * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define. - (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13. - Move r11 and r0 later to suit shrink-wrapping. - -2011-10-26 Richard Guenther - - * lto-wrapper.c (run_gcc): Properly init/free obstack. - -2011-10-26 Jakub Jelinek - - * config/i386/i386.md (UNSPEC_VSIBADDR): New. - * config/i386/predicates.md (vsib_address_operand, - vsib_mem_operator): New predicates. - * config/i386/i386.c (ix86_print_operand_address): Handle - UNSPEC_VSIBADDR addresses. - * config/i386/sse.md (avx2_gathersi, avx2_gatherdi, - avx2_gatherdi256): Adjust expanders to use MEM with - UNSPEC_VSIBADDR address. - (*avx2_gathersi, *avx2_gatherdi, *avx2_gatherdi256): - Adjust insns to use MEM with UNSPEC_VSIBADDR address. - -2011-10-26 Tom de Vries - - PR tree-optimization/50763 - * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or - phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2. - -2011-10-26 Richard Guenther - - PR lto/41844 - * Makefile.in (lto-wrapper): Depend on and link against opts-common.o. - (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H). - * lto-wrapper.c (get_options_from_collect_gcc_options): New function. - (run_gcc): Use it. Filter out language specific options. - -2011-10-26 Andreas Tobler - - * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the - 32-bit target does. - -2011-10-25 Paolo Carlini - - PR driver/46617 - * gcc.c (main): Fix fatal_error string for translation. - -2011-10-25 Ian Lance Taylor - - * tree-eh.c (do_return_redirection): Remove return_value_p - parameter. Change all callers. - (lower_try_finally_nofallthru): Remove local return_val. - (lower_try_finally_onedest): Likewise. - (lower_try_finally_copy): Likewise. - (lower_try_finally_switch): Likewise. - -2011-10-25 H.J. Lu - - * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and - remove "&& !TARGET_64BIT" - (*mmx_maskmovq_rex): Removed. - -2011-10-25 Eric Botcazou - - PR rtl-optimization/46603 - * reload.c (push_reload): In the out case, reload the subreg as well - as the reg if it has word mode. - -2011-10-25 Eric Botcazou - - * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily - suppress debug info for the parent type. - -2011-10-25 Eric Botcazou - - * config/ia64/ia64.c (ia64_profile_hook): Fix thinko. - -2011-10-25 Richard Henderson - - * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove. - (vec_extract_even, vec_extract_odd): Remove. - - * config/rs6000/altivec.md (vec_extract_evenv8hi, - vec_extract_evenv16qi, vec_extract_oddv4si, - vec_extract_oddv4sf): Remove. - - * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf, - vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si, - vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi, - vec_interleave_highv4sf, vec_interleave_lowv4sf, - vec_interleave_highv4si, vec_interleave_lowv4si, - vec_interleave_highv8hi, vec_interleave_lowv8hi, - vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove. - - * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop. - [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise. - [VEC_INTERLEAVE_LOW_EXPR]: Likewise. - * optabs.c (expand_binop): Implement vec_interleave_high_optab, - vec_interleave_low_optab, vec_extract_even_optab, - vec_extract_odd_optab with expand_vec_perm. - (can_vec_perm_for_code_p): New. - * optabs.h: Update. - * tree-vect-data-refs.c (vect_strided_store_supported): Allow for - fallback via can_vec_perm_for_code_p. - (vect_strided_load_supported): Likewise. - * tree-vect-generic.c (expand_vector_operations_1): Never lower - VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR, - VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR. - - * target.def (vec_perm_const_ok): Change parameters to mode and - array of indicies. - * doc/tm.texi: Rebuild. - * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change - parameters to mode and array of indicies. - * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here. - * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p. - Change parameters to mode and array of indicies. - (expand_vec_perm_1): Rename from expand_vec_perm_expr_1. - (expand_vec_perm): Rename from expand_vec_perm_expr. Change - parameters to mode and rtx inputs. Try lowering to QImode - vec_perm_const before trying fully variable permutation. - * optabs.h: Update decls. - * tree-vect-generic.c (lower_vec_perm): Extract array of indices from - VECTOR_CST to pass to can_vec_perm_p. - * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type - from int pointer to unsigned char pointer. - (vect_transform_slp_perm_load): Update for change to can_vec_perm_p. - * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. - - * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name. - (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR, - VEC_INTERLEAVE_LOW_EXPR): Likewise. - -2011-10-25 Mike Stump - - * reload.c (regno_clobbered_p): Fix typo. - -2011-10-25 Dodji Seketeli - - * input.c (expand_location): Rewrite using linemap_resolve_location - and linemap_expand_location. Add a comment. - -2011-10-25 Jakub Jelinek - - PR tree-optimization/50596 - * tree-vect-stmts.c (vect_mark_relevant): Only use - FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME. - (vectorizable_store): If is_pattern_stmt_p look through - VIEW_CONVERT_EXPR on lhs. - * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern): - Use unsigned type instead of signed. - (vect_recog_bool_pattern): Optimize also stores into bool memory in - addition to casts from bool to integral types. - (vect_mark_pattern_stmts): If pattern_stmt already has vinfo - created, don't create it again. - -2011-10-25 Kai Tietz - - * config/i386/i386.c (ix86_frame_pointer_required): Require - frame-pointer, if setjmp is used for 32-bit ms-abi. - -2011-10-24 Michael Meissner - - * builtins.c (set_builtin_user_assembler_name): Remove extra - newline added in October 11th, 2011 change. - -2011-10-24 David S. Miller - - * config/sparc/little-endian.opt: Delete. - * config.gcc: Remove references to config/sparc/little-endian.opt - * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc. - * config/sparc/linux64.h: Delete references to -mlittle-endian. - * config/sparc/netbsd-elf.h: Likewise. - * config/sparc/openbsd64.h: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sp64-elf.h: Likewise and delete overrides for - BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN. - * config/sparc/sparc.c (dump_target_flag_bits): Remove reference - to MASK_LITTLE_ENDIAN. - * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete. - - * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns. - Only use D, Y, and Z constraints in vector insns. - - * config/sparc/sparc.md (cpu_feature, enabled): New attributes. - (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern - called *movsi_insn. - (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate - into *movdi_insn_sp32. - (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into - one pattern called *movdi_insn_sp64. - (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu): - Consolidate into one pattern called *movsf_insn. - (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3, - *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate - into *movdf_insn_sp32. - (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3, - *movdf_insn_sp64_no_fpu): Consolidate into one pattern called - *movdf_insn_sp64. - (*zero_extendsidi2_insn_sp64_novis3, - *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern - called *zero_extendsidi2_insn_sp64. - (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3): - Consolidate into one pattern named *sign_extendsidi2_insn. - (*mov_insn_novis3, *mov_insn_vis3): - Consolidate into one pattern named *mov_insn. - (*mov_insn_sp64_novis3, - *mov_insn_sp64_novis3): Consolidate into one pattern - named *mov_insn_sp64. - (*mov_insn_sp32_novis3, - *mov_insn_sp32_vis3): Consolidate into one pattern - named *mov_insn_sp32. - -2011-10-24 Andreas Krebbel - - * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY. - (zero_length_string): Change assertion to accept strinfo without - length but with stmt instead. - Set the endptr pointer also if starting a new chain. - (adjust_related_strinfos): Ignore strinfos marked for delayed - length computation. - (handle_builtin_strcpy): Mark earlier strinfo elements also for - delayed length computation. - -2011-10-24 Georg-Johann Lay - - PR target/50820 - Port from 4.6 branch r180379 - * doc/invoke.texi (AVR Options): New subsubsection to explain EIND - handling and indirect jump/calls on devices > 128k. - -2011-10-24 Anatoly Sokolov - Georg-Johann Lay - - PR target/49824 - * doc/extend.texi (Declaring Attributes of Functions): - Document OS_main and OS_task attributes. - (Specifying Attributes of Variables): Move up - subsection "AVR Variable Attributes" as of alphabetical order. - -2011-10-24 Richard Guenther - - * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants - to vector element type. - (vectorizable_assignment): Bail out for non-mode-precision operations. - (vectorizable_shift): Likewise. - (vectorizable_operation): Likewise. - (vectorizable_type_demotion): Likewise. - (vectorizable_type_promotion): Likewise. - (vectorizable_store): Handle non-mode-precision stores. - (vectorizable_load): Handle non-mode-precision loads. - (get_vectype_for_scalar_type_and_size): Return a vector type - for non-mode-precision integers. - * tree-vect-loop.c (vectorizable_reduction): Bail out for - non-mode-precision reductions. - -2011-10-24 Julian Brown - - * config/m68k/m68k.c (notice_update_cc): Tighten condition for - setting CC_REVERSED for FP comparisons. - -2011-10-24 Richard Guenther - - PR tree-optimization/50838 - * tree-data-ref.c (dr_analyze_indices): Properly canonicalize - a MEM_REF base if we change it. - -2011-10-24 Bernd Schmidt - - PR bootstrap/50836 - * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h". - - PR rtl-optimization/50833 - * function.c (thread_prologue_and_epilogue_insns): Expect the - return insn optimization only if optimize. - -2011-10-24 Georg-Johann Lay - - * config/avr/avr.c: Break long lines. - Define target hooks on the fly if applicable. - (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition - overridden later. - (targetm): Move definition to end of file. - (avr_can_eliminate): Make static on the fly. - (avr_frame_pointer_required_p): Ditto. - (avr_hard_regno_scratch_ok): Ditto. - (avr_builtin_setjmp_frame_value): Make static on the fly. - Indent according to coding rules. - (avr_case_values_threshold): Ditto. - (avr_attribute_table): Move down. - -2011-10-24 Ira Rosen - - PR tree-optimization/50730 - * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block - analysis if encountered unsupported data-ref. - -2011-10-23 David S. Miller - - * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus - cpu adjustment. - * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit, - append -mcpu=v9 when -mv8plus is given. - - * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move - between float and non-float regs when VIS3. - * config/sparc/sparc.c (eligible_for_restore_insn): We can't - use a restore when the source is a float register. - (sparc_split_regreg_legitimate): When VIS3 allow moves between - float and integer regs. - (sparc_register_move_cost): Adjust to account for VIS3 moves. - (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an - integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS. - (sparc_secondary_reload): On 32-bit with VIS3 when moving between - float and integer regs we sometimes need a FP_REGS class - intermediate move to satisfy the reload. When this happens - specify an extra cost of 2. - (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard. - (*movdi_insn_sp32_v9): Likewise. - (*movdi_insn_sp64): Likewise. - (*movsf_insn): Likewise. - (*movdf_insn_sp32_v9): Likewise. - (*movdf_insn_sp64): Likewise. - (*zero_extendsidi2_insn_sp64): Likewise. - (*sign_extendsidi2_insn): Likewise. - (*movsi_insn_vis3): New insn. - (*movdi_insn_sp32_v9_vis3): New insn. - (*movdi_insn_sp64_vis3): New insn. - (*movsf_insn_vis3): New insn. - (*movdf_insn_sp32_v9_vis3): New insn. - (*movdf_insn_sp64_vis3): New insn. - (*zero_extendsidi2_insn_sp64_vis3): New insn. - (*sign_extendsidi2_insn_vis3): New insn. - (TFmode reg/reg split): Make sure both REG operands are float. - (*mov_insn): Add "_novis3" suffix and !VIS3 guard. Remove - easy constant to integer reg alternatives. - (*mov_insn_sp64): Likewise. - (*mov_insn_sp32_novis3): Likewise. - (*mov_insn_vis3): New insn. - (*mov_insn_sp64_vis3): New insn. - (*mov_insn_sp32_vis3): New insn. - (VM64 reg<-->reg split): New splitter for 32-bit. - - * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function. - * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate): - Declare it. - * config/sparc/sparc.md (DImode reg/reg split): Use it. - (DFmode reg/reg split): Likewise. - - * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for - generating fzero and fone instructions. - (DImode const_int --> reg splitter): Only trigger for integer regs. - - * config/sparc/predicates.md (input_operand): Disallow vector - constants other than 0 and -1. - * config/sparc/sparc.c (sparc_preferred_reload_class): Return - NO_REGS for vector constants other than 0 and -1. - - * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG, - SPARC_INT_REG_P): Define. - (HARD_REGNO_NREGS): Use SPARC_INT_REG_P. - (REGNO_OK_FOR_INDEX_P): Likewise. - * config/sparc/sparc.c (gen_df_reg): Likewise. - (eligible_for_return_delay): Likewise. - (eligible_for_sibcall_delay): Likewise. - (sparc_legitimate_address_p): Likewise. - (emit_save_or_restore_regs): Likewise. - (registers_ok_for_ldd_peep): Likewise. - * config/spac/sparc.md (DI mode splitters): Likewise. - (SF mode const splitters): Likewise. - (DF mode splitters): Likewise. - (32-bit DI mode logical op splitters): Likewise. - -2011-10-23 Paolo Carlini - - PR c++/50841 - Revert: - 2011-10-23 Paolo Carlini - - PR c++/50810 - * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. - -2011-10-23 Uros Bizjak - - * config/i386/sse.md (avx2_lshl3): Remove insn pattern. - (VI248_256): Remove mode iterator. - * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3 - instead of gen_avx2_lshlv4di3. - (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of - CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3. - -2011-10-23 Uros Bizjak - - * config/i386/sse.md (sseintprefix): Rename from gthrfirstp. - (_maskload): Delete expander. - (_maskload) Merge insn - pattern from *avx2_maskload and - *avx_maskload using V48_AVX mode - iterator. Use sseintprefix mode attribute. - (_maskstore): Delete expander. - (_maskstore) Merge insn - pattern from *avx2_maskstore and - *avx_maskstore using V48_AVX mode - iterator. Use sseintprefix mode attribute. - (*avx2_gathersi) Use sseintprefix and ssemodesuffix mode - attributes. - (*avx2_gatherdi): Ditto. - (*avx2_gatherdi256): Ditto. - (VI48_AVX2): Remove mode iterator. - (gthrlastfp): Remove mode attribute. - -2011-10-23 Paolo Carlini - - PR c++/50810 - * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. - -2011-10-23 Tom de Vries - - PR tree-optimization/50763 - * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored - out of ... - (same_succ_flush_bbs): Use same_succ_flush_bb. - (purge_bbs): Remove argument. Remove calls to same_succ_flush_bbs, - release_last_vdef and delete_basic_block. - (unlink_virtual_phi): New function. - (update_vuses): Add and use vuse1_phi_args argument. Set var to - SSA_NAME_VAR of vuse1 or vuse2, and use var. Handle case that - def_stmt2 is NULL. Use phi result as phi arg in case vuse1 or vuse2 - is NULL_TREE. Replace uses of vuse1 if vuse2 is NULL_TREE. Fix code - to limit replacement of uses. Propagate phi argument for phis with a - single argument. - (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE. - Set vuse1_phi_args if vuse1 is a phi defined in bb1. Add - vuse1_phi_args as argument to call to update_vuses. Call - release_last_vdef, same_succ_flush_bb, delete_basic_block. Update - CDI_DOMINATORS info. - (tail_merge_optimize): Remove argument in call to purge_bbs. Remove - call to free_dominance_info. Only call calculate_dominance_info once. - -2011-10-23 Eric Botcazou - - * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR. - - PR tree-optimization/44683 - * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if - we can be sure that there are no signed zeros involved. - -2011-10-23 Jan Hubicka - - * ipa-inline.c (estimate_badness): Scale up and handle overflows. - -2011-10-23 Uros Bizjak - - PR target/50788 - * config/i386/sse.md (_maskload): - Remove (match_dup 0). - (*avx2_maskload): New insn pattern. - (*avx_maskload): Ditto. - (*avx2_maskstore): Ditto. - (*avx_maskstore): Ditto. - (*avx2_maskmov): Remove insn pattern. - (*avx_maskmov): Ditto. - -2011-10-23 Ira Rosen - - PR tree-optimization/50819 - * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove - the last argument. - * tree-vect-loop.c (vect_analyze_loop_2): Update call to - vect_analyze_data_ref_dependences. - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove - the last argument. Check load-after-store dependence for unknown - dependencies in basic blocks. - (vect_analyze_data_ref_dependences): Update call to - vect_analyze_data_ref_dependences. - * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo. - * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove. - (vect_slp_analyze_bb_1): Update call to - vect_analyze_data_ref_dependences. Don't call - vect_bb_vectorizable_with_dependencies. - -2011-10-22 David S. Miller - - * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS, - SECONDARY_OUTPUT_RELOAD_CLASS): Delete. - * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine. - (sparc_secondary_reload): New function. - - * config/sparc/sparc.h (sparc_costs): Remove extern decl. - (struct processor_costs): Move from here.. - * config/sparc/sparc.c (struct processor_costs): To here. - (sparc_costs): Mark static. - - * config/sparc/sparc.c (short_branch, reg_unused_after): Delete. - * config/sparc/sparc-protos.h (short_branch, reg_unused_after): - Get rid of declarations. - -2011-10-21 Paul Brook - - * config/c6x/c6x.c (c6x_asm_emit_except_personality, - c6x_asm_init_sections): New functions. - (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define. - -2011-10-21 Jakub Jelinek - - PR target/50813 - * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle - V4DImode and V8SImode for !TARGET_AVX2. - -2011-10-21 Bernd Schmidt - - PR bootstrap/50825 - * sched-deps.c (add_dependence): If not doing predication, promote - REG_DEP_CONTROL to REG_DEP_ANTI. - -2011-10-21 Georg-Johann Lay - - * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X - instead of X to avr_legitimize_reload_address. - * config/avr/avr-protos.h (avr_legitimize_reload_address): Change - first argument's type from rtx to rtx*. - * config/avr/avr.c (avr_legitimize_reload_address): Ditto. - Pass PX to push_reload instead of &X. Change log messages for - better distinction. - -2011-10-21 Roland Stigge - - PR translation/47064 - * params.def: Fix typo "compilatoin" -> "compilation". - -2011-10-21 H.J. Lu - Kirill Yukhin - - PR target/50740 - * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only - if max_level allows that. - -2011-10-21 Bernd Schmidt - - * reg-notes.def (DEP_CONTROL): New. - * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when - not doing speculation. - * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets, - record_hard_reg_uses_1, record_hard_reg_uses): New functions. - * function.c (record_hard_reg_sets, record_hard_reg_uses, - record_hard_reg_uses_1): Remove; move to rtlanal.c. - * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions. - * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h". - (MUST_RECOMPUTE_SPEC_P): New macro. - (real_insn_for_shadow): New function. - (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions, - toggle_cancelled_flags): New static functions. - (schedule_insn): Relax an assert to only check for empty hard back - dependencies. Skip cancelled dependencies. Call - check_clobbered_conditions. - (copy_insn_list): Remove function, renamed moved to lists.c. - (save_backtrack_point): Use new spelling copy_INSN_LIST. - (unschedule_insns_until): Ensure TODO_SPEC is reset properly. - (restore_last_backtrack_point): Likewise. Call toggle_cancelled_flags. - (estimate_insn_tick): Ignore cancelled dependencies. - (haifa_speculate_insn): Move declaration. - (try_ready): Move code into recompute_todo_spec and call it. Tweak - some asserts. Ensure predicated patterns are restored if necessary. - Dump DEP_CONTROL flag. - (haifa_change_pattern): Merge with sched_change_pattern. - (sched_change_pattern): Remove function. - * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove. All - uses changed to simply not test NON_FLUSH_JUMP_P. - (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle - REG_DEP_CONTROL. - (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative. - (reg_pending_control_uses, control_dependency_cache): New static - variables. - (sched_get_reverse_condition_uncached): New function. - (sd_find_dep_between): Remove pointless assert. Look in - control_dependency_cache. - (ask_dependency_caches, set_dependency_caches, sd_delete_dep, - extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL - and control_dependency_cache. - (sd_unresolve_dep): Use dep_spec_p. - (add_dependence): Now a wrapper around add_dependence_1, handling - REG_DEP_CONTROL specially. - (flush_pending_lists): Clear pending_jump_insns. - (sched_analyze_1): Handle pending_jump_insns like a memory flush. - (sched_analyze_2): Unconditionally add to pending memory flushes, - keep previous behaviour but apply it to pending_jump_insns instead. - (sched_analyze_insn): Defer adding jump reg dependencies using - reg_pending_control_uses; add them to the control_uses list. Handle - pending_jump_insns and control_uses when adding dependence lists. - (deps_analyze_insn): Update INSN_COND_DEPS. - (deps_analyze_insn): Add jumps to pending_jump_insns rather than - last_pending_memory_flush. - (init_deps): Initialize pending_jump_insns. - (free_deps): Free control_uses. - (remove_from_deps): Remove from pending_jump_insns. - (init_deps_global): Allocate reg_pending_control_uses). - (finish_deps_global): Free it. - (add_dependence_1): Renamed from add_dependence. Handle - REG_DEP_CONTROL. - * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare. - (copy_INSN_LIST, concat_INSN_LIST): Declare. - * sched-int.h (struct deps_reg): Add control_uses. - (struct deps_desc): Add pending_jump_insns. - (struct _haifa_deps_insn_data): Add cond_deps. - (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat. - (INSN_COND_DEPS, PREDICATED_PAT): New macros. - (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word. - (DEP_CONTROL): New macro. - (DEP_TYPES): Include it. - (HARD_DEP): Adjust definition. - (DEP_CANCELLED): New macro. - (enum SCHED_FLAGS): Add DO_PREDICATION. - (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare. - * sched-rgn.c (concat_INSN_LIST): Remove function. - (deps_join): Handle pending_jump_insns. - (free_pending_lists): Likewise. - * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final - schedule. - -2011-10-21 Georg-Johann Lay - - PR target/50820 - * config/avr/libgcc.S (__EIND__): New define to 0x3C. - (__tablejump__): Consistently use EIND for indirect jump/call. - (__tablejump_elpm__): Ditto. - -2011-10-21 Bernd Schmidt - - * config/c6x/c6x.md (attr "op_pattern"): New. - (load_sdata_pic, mov_insn for QIHIM and SISFVM): Set it. - * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_): - Likewise. - * config/c6x/c6x-mult.md: Regenerate. - * config/c6x/c6x.c: Include "regrename.h". - (unit_req_table): New typedef. - (unit_reqs): Use it for the declaration. - (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance, - get_unit_operand_masks, try_rename_operands, reshuffle_units): New - static functions. - (count_unit_reqs): New arg reqs. All callers changed. Use - get_unit_reqs, and don't merge here. - (res_mii): New arg reqs. All callers changed. Rewrite to use a loop - using unit_req_factor. - (hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after - count_unit_reqs. - (c6x_reorg): Add reg notes problem, and call df_analyze. - * Makefile.in ($(out_object_file)): Depend on regrename.h. - -2011-10-21 Kai Tietz - - * fold-const.c (simple_operand_p_2): Handle integral - casts from boolean-operands. - -2011-10-21 Jan Hubicka - - * cgraph.c (dump_cgraph_node): Dump alias flag. - * cgraphunit.c (handle_alias_pairs): Handle weakrefs with - no destination. - (get_alias_symbol): New function. - (output_weakrefs): Output also weakrefs with no destinatoin. - (lto_output_node): Output weakref alias flag when at function boundary. - -2011-10-21 Andrew Stubbs - - PR target/50809 - * config/arm/driver-arm.c (vendors): Make static. - -2011-10-21 Uros Bizjak - - * config/i386/i386.c (ix86_emit_swdivsf): Force b into register. - (ix86_emit_swsqrtsf): Force a into register. - -2011-10-20 Mike Stump - - * regcprop.c (copyprop_hardreg_forward_1): Update recog_data - after validate_change wipes it out. - -2011-10-20 Ulrich Weigand - - * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32 - before using the shufb instruction. - -2011-10-20 Kirill Yukhin - - PR target/50766 - * config/i386/i386.md (bmi_bextr_): Update register/ - memory operand order. - (bmi2_bzhi_3): Ditto. - (bmi2_pdep_3): Ditto. - (bmi2_pext_3): Ditto. - -2011-10-20 Richard Henderson - - * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok. - * optabs.c (can_vec_perm_expr_p): Update to match. - (expand_vec_perm_expr): Likewise. - * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename - from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK. - * doc/tm.texi.in: Likewise. - -2011-10-20 Sergey Ostanevich - - PR target/50572 - * config/i386/i386.c (processor_target_table): Change Atom - align_loops_max_skip to 15. - -2011-10-20 Richard Henderson - - * target.def (builtin_vec_perm): Remove. - * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. - - * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove. - (IX86_BUILTIN_VEC_PERM_*): Remove. - (bdesc_args): Remove vec_perm builtins - (ix86_expand_builtin): Likewise. - (ix86_expand_vec_perm_const_1): Rename from - ix86_expand_vec_perm_builtin_1. - (extract_vec_perm_cst): Merge into... - (ix86_vectorize_vec_perm_const_ok): ... here. Rename from - ix86_vectorize_builtin_vec_perm_ok. - (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. - - * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove. - (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. - - * config/spu/spu.c (spu_builtin_vec_perm): Remove. - (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. - -2011-10-20 Uros Bizjak - - PR target/47989 - * config/i386/i386.h (RECIP_MASK_DEFAULT): New define. - * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT. - * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC - implements vectorized single float division and vectorized sqrtf(x) - with reciprocal sequence with additional Newton-Raphson step with - -ffast-math. - -2011-10-20 Dodji Seketeli - - * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename - ggc_alloced_size_order_for_request into ggc_round_alloc_size like - it was done in ggc-page.c. - - PR other/50659 - * doc/cppopts.texi: Use @smallexample/@end smallexample in - documentation for -fdebug-cpp instead of @quotation/@end quotation - that is not supported by contrib/texi2pod.pl. - -2011-10-19 Jan Hubicka - - * ipa-inline.c (inline_small_functions): Always update all calles after - inlining. - -2011-10-19 Jan Hubicka - - PR bootstrap/50709 - * ipa-inline.c (inline_small_functions): Fix checking code to not make - effect on fibheap stability. - -2011-10-20 Maxim Kuvyrkov - - * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs. - -2011-10-20 Ramana Radhakrishnan - - PR target/50106 - * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return - reg size from 1-3. - -2011-10-20 Richard Guenther - - * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR - and rotates to the set of expensive operations. - -2011-10-19 David S. Miller - - * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p. - (sparc_emit_set_const32): Likewise. - (sparc_emit_set_const64_longway): Likewise. - (sparc_emit_set_const64): Likewise. - (sparc_legitimize_pic_address): Likewise. - (memory_ok_for_ldd): Likewise. - -2011-10-20 Dehao Chen - - * profile.c (compute_branch_probabilities): Compute and dump the - overlap between the static estimation and the instrumentation profile. - (OVERLAP_BASE): New macro. - (compute_frequency_overlap): New function - -2011-10-19 Jakub Jelinek - - * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use - d->op1 instead of d->op0 for the second vpshufb. - (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates. - (ix86_expand_vec_perm_const): If mask indicates two operands are - needed, but both are the same and expanding them as d.op0 == d.op1 - failed, retry with d.op0 != d.op1. - (ix86_expand_vec_perm_builtin): Likewise. Handle sorry printing - also for d.nelt == 32. - - PR middle-end/50754 - * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore - VEC_PERM_EXPR. - -2011-10-19 Bernd Schmidt - - * regrename.h: New file. - * regrename.c: Include it. Also include "emit-rtl.h". - (struct du_head, struct du_chain, du_head_p DEF_VEC and - DEF_VEC_ALLOC_P): Move to regrename.h. - (do_replace): Remove declaration. - (insn_rr): New variable. - (cur_operand): New static variable. - (regrename_chain_from_id): Renamed from chain_from_id and no longer - static. All callers changed. - (record_operand_use): New static function. - (scan_rtx_reg): Use it. - (find_best_rename_reg): New function, broken out of rename_chains. - (rename_chains): Use it. Don't update chain regno and nregs here, ... - (regrename_do_replace): ... do it here instead. Renamed from - do_replace, and no longer static. All callers changed. - (regrename_analyze): No longer static. New arg bb_mask. - All callers changed. If bb_mask is nonzero, use it to limit the - number of basic blocks we analyze. If we failed to analyze a block, - clear insn operand data. - (record_out_operands): New arg insn_info. Update cur_operand if it is - nonnull. - (build_def_use): If insn_rr is nonnull, pass an insn_info to - record_out_operands, and update cur_operand here as well. - (regrename_init, regrename_finish): New functions. - (regrename_optimize): Use them. - * Makefile.in (regrename.o): Adjust dependencies. - -2011-10-19 Tom de Vries - - PR tree-optimization/50769 - * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2 - unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add - dummy argument .MEM to phi when increasing number of arguments of phi by - redirecting edges to the block with phi. - -2011-10-19 Rainer Orth - - PR bootstrap/50777 - * configure.ac: Save and restore CXXFLAGS around - gcc_AC_CHECK_DECLS uses. - Check for madvise() declaration with g++ if --enable-build-with-cxx. - * configure: Regenerate. - * config.in: Regenerate. - * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE. - -2011-10-19 Alexandre Oliva - - PR debug/49310 - * var-tracking.c (loc_exp_dep, onepart_aux): New structs. - (variable_part): Replace offset with union. - (enum onepart_enum, onepart_enum_t): New. - (variable_def): Drop cur_loc_changed, add onepart. - (value_chain_def, const_value_chain): Remove. - (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking. - (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros. - (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise. - (value_chain_pool, value_chains): Remove. - (dropped_values): New. - (struct parm_reg): Only if HAVE_window_save. - (vt_stack_adjustments): Don't record register arguments. - (dv_as_rtx): New. - (dv_onepart_p): Return a onepart_enum_t. - (onepart_pool): New. - (dv_pool): Remove. - (dv_from_rtx): New. - (variable_htab_free): Release onepart aux data. Reset flags. - (value_chain_htab_hash, value_chain_htab_eq): Remove. - (unshare_variable): Use onepart field. Propagate onepart aux - data or offset. Drop cur_loc_changed. - (val_store): Cope with NULL insn. Rephrase dump output. Check - for unsuitable locs. Add FIXME on using cselib locs. - (val_reset): Remove FIXME of unfounded concerns. - (val_resolve): Check for unsuitable locs. Add FIXME on using - cselib locs. - (variable_union): Use onepart field, adjust access to offset. - (NO_LOC_P): New. - (VALUE_CHANGED, DECL_CHANGED): Update doc. - (set_dv_changed): Clear NO_LOC_P when changed. - (find_loc_in_1pdv): Use onepart field. - (intersect_loc_chains): Likewise. - (unsuitable_loc): New. - (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list. - (add_value_chain, add_value_chains): Remove. - (add_cselib_value_chains, remove_value_chain): Likewise. - (remove_value_chains, remove_cselib_value_chains): Likewise. - (canonicalize_loc_order_check): Use onepart. Drop cur_loc_changed. - (canonicalize_values_star, canonicalize_vars_star): Use onepart. - (variable_merge_over_cur): Likewise. Adjust access to offset. - Drop cur_loc_changed. - (variable_merge_over_src): Use onepart field. - (remove_duplicate_values): Likewise. - (variable_post_merge_new_vals): Likewise. - (find_mem_expr_in_1pdv): Likewise. - (dataflow_set_preserve_mem_locs): Likewise. Drop cur_loc_changed - and value chains. - (dataflow_set_remove_mem_locs): Likewise. Use VAR_LOC_FROM. - (variable_different_p): Use onepart field. Move onepart test out - of the loop. - (argument_reg_set): Drop. - (add_uses, add_stores): Preserve but do not record in dynamic - tables equivalences for ENTRY_VALUEs and CFA_based addresses. - Avoid unsuitable address expressions. - (EXPR_DEPTH): Unlimit. - (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH. - (prepare_call_arguments): Use DECL_RTL_IF_SET. - (dump_var): Adjust access to offset. - (variable_from_dropped, recover_dropped_1paux): New. - (variable_was_changed): Drop cur_loc_changed. Use onepart. - Preserve onepart aux in empty_var. Recover empty_var and onepart - aux from dropped_values. - (find_variable_location_part): Special-case onepart. Adjust - access to offset. - (set_slot_part): Use onepart. Drop cur_loc_changed. Adjust - access to offset. Initialize onepaux. Drop value chains. - (delete_slot_part): Drop value chains. Use VAR_LOC_FROM. - (VEC (variable, heap), VEC (rtx, stack)): Define. - (expand_loc_callback_data): Drop dummy, cur_loc_changed, - ignore_cur_loc. Add expanding, pending, depth. - (loc_exp_dep_alloc, loc_exp_dep_clear): New. - (loc_exp_dep_insert, loc_exp_dep_set): New. - (notify_dependents_of_resolved_value): New. - (update_depth, vt_expand_var_loc_chain): New. - (vt_expand_loc_callback): Revamped. - (resolve_expansions_pending_recursion): New. - (INIT_ELCD, FINI_ELCD): New. - (vt_expand_loc): Use the new macros above. Drop ignore_cur_loc - parameter, adjust all callers. - (vt_expand_loc_dummy): Drop. - (vt_expand_1pvar): New. - (emit_note_insn_var_location): Operate on non-debug decls only. - Revamp multi-part cur_loc recomputation and one-part expansion. - Drop cur_loc_changed. Adjust access to offset. - (VEC (variable, heap)): Drop. - (changed_variables_stack, changed_values_stack): Drop. - (check_changed_vars_0, check_changed_vars_1): Remove. - (check_changed_vars_2, check_changed_vars_3): Remove. - (values_to_stack, remove_value_from_changed_variables): New. - (notify_dependents_of_changed_value, process_changed_values): New. - (emit_notes_for_changes): Revamp onepart updates. - (emit_notes_for_differences_1): Use onepart. Drop cur_loc_changed - and value chains. Propagate onepaux. Recover empty_var and onepaux - from dropped_values. - (emit_notes_for_differences_2): Drop value chains. - (emit_notes_in_bb): Adjust. - (vt_emit_notes): Drop value chains, changed_variables_stack. - Initialize and release dropped_values. - (create_entry_value): Revamp. - (vt_add_function_parameter): Use new interface. - (note_register_arguments): Remove. - (vt_initialize): Drop value chains and register arguments. - (vt_finalize): Drop value chains. Release windowed_parm_regs only - if HAVE_window_save. - * rtl.h: Document various pass-local uses of RTL flags. - * tree.h (DECL_RTL_KNOWN_SET): New. - * doc/invoke.texi (param max-vartrack-expr-depth): Update - description and default. - -2011-10-19 Georg-Johann Lay - - PR target/50447 - * config/avr/avr.md (cc): New alternative out_plus_noclobber. - (adjust_len): Ditto. - (addhi3): Don't pipe through short; use gen_int_mode instead. - Prior to reload, expand to gen_addhi3_clobber. - (*addhi3): Use avr_out_plus_noclobber if applicable, use - out_plus_noclobber in cc and adjust_len attribute. - (addhi3_clobber): 2 new RTL peepholes. - (addhi3_clobber): New insn. - * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype. - * config/avr/avr.c (avr_out_plus_noclobber): New function. - (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER. - (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0. - Set cc0 to set_zn for adiw on 16-bit values. - (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER. - (expand_epilogue): No need to add 0 to frame_pointer_rtx. - -2011-10-19 Richard Guenther - - PR middle-end/50780 - * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify - the condition is properly gimple before using it. - * tree-eh (stmt_could_throw_1_p): Properly extract the - operation type from comparisons. - -2011-10-19 Roland Stigge - - PR translation/48638 - * plugin.c (add_new_plugin): Fix typo in fatal_error message. - -2011-10-19 Roland Stigge - - PR translation/49517 - * config/rx/rx.c (rx_print_operand): Fix typo in warning message. - -2011-10-19 Richard Guenther - - PR middle-end/50768 - * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite. - -2011-10-19 Andrey Belevantsev - - PR rtl-optimization/50340 - * sel-sched-ir.c (update_target_availability): LHS register - availability is not known if the unavailable LHS of the other - expression is a different register. - -2011-10-19 Ulrich Weigand - - PR target/50310 - * config/spu/spu.c (spu_emit_vector_compare): Support unordered - floating-point comparisons. - -2011-10-19 Jan Hubicka - - * cgraphunit.c (handle_alias_pairs): Also handle wekref with - destination declared. - (output_weakrefs): New function. - * varpool.c (varpool_create_variable_alias): Handle external aliases. - -2011-10-19 Jakub Jelinek - - * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as - second argument instead of mode. - -2011-10-18 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use - mode SUBREG of operands[0] as target. - (valid_perm_using_mode_p): Don't ignore higher bits of d->perm. - (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si. - (expand_vec_perm_1): Handle identity and some broadcast - permutations. - (expand_vec_perm_interleave2): Handle also 32-byte modes, using - vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation. - For d->testing_p return true earlier to avoid creating more GC - garbage. - (expand_vec_perm_vpermq_perm_1): New function. - (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true - earlier to avoid creating more GC garbage. Fix handling of - V16HImode. Avoid some SUBREGs in SET_DEST. - (expand_vec_perm_broadcast_1): Return false for 32-byte integer - vector modes. - (expand_vec_perm_vpshufb4_vpermq2): New function. - (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1 - and expand_vec_perm_vpshufb4_vpermq2. - -2011-10-18 Andrew Stubbs - - * config/arm/driver-arm.c (host_detect_local_cpu): Close the file - before exiting. - -2011-10-18 Andrew Stubbs - - PR tree-optimization/50717 - * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type' - parameter. Calculate 'type' from stmt. - (convert_mult_to_widen): Update call the is_widening_mult_p. - (convert_plusminus_to_widen): Likewise. - -2011-10-18 Ulrich Weigand - - * config/spu/spu.c (struct machine_function): New data structure. - (spu_init_machine_status): New function. - (spu_option_override): Install it. - (get_pic_reg): Set and use cfun->machine->pic_reg. - (spu_split_immediate): Do not set crtl->uses_pic_offset_table. - (need_to_save_reg): Use cfun->machine->pic_reg instead of - checking crtl->uses_pic_offset_table. - (spu_expand_prologue): Likewise. - -2011-10-18 Jakub Jelinek - - PR tree-optimization/50735 - * function.c (gimplify_parameters): Use create_tmp_var instead of - create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex - or vector type, set DECL_GIMPLE_REG_P. - -2011-10-18 Andrew Stubbs - - * config.host (arm*-*-linux*): Add driver-arm.o and x-arm. - * config/arm/arm.opt: Add 'native' processor_type and - arm_arch enum values. - * config/arm/arm.h (host_detect_local_cpu): New prototype. - (EXTRA_SPEC_FUNCTIONS): New define. - (MCPU_MTUNE_NATIVE_SPECS): New define. - (DRIVER_SELF_SPECS): New define. - * config/arm/driver-arm.c: New file. - * config/arm/x-arm: New file. - * doc/invoke.texi (ARM Options): Document -mcpu=native, - -mtune=native and -march=native. - -2011-10-18 Alexander Monakov - - PR rtl-optimization/50205 - * sel-sched.c (count_occurrences_1): Simplify on the assumption that - p->x is a register. Forbid substitution when the same register is - found in a different mode. - (count_occurrences_equiv): Assert that 'what' is a register. - -2011-10-18 Richard Guenther - - PR tree-optimization/50767 - * tree-ssa-pre.c (create_expression_by_pieces): Update the - folded statement. - -2011-10-18 Julian Brown - - * config/arm/arm.c (arm_block_move_unaligned_straight) - (arm_adjust_block_mem, arm_block_move_unaligned_loop) - (arm_movmemqi_unaligned): New. - (arm_gen_movmemqi): Support unaligned block copies. - -2011-10-18 Ira Rosen - - * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo, - vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document. - * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR, - VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. - (op_code_prio): Likewise. - (op_symbol_code): Handle WIDEN_LSHIFT_EXPR. - * optabs.c (optab_for_tree_code): Handle - VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. - (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo. - * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo. - * genopinit.c (optabs): Initialize the new optabs. - * expr.c (expand_expr_real_2): Handle - VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. - * gimple-pretty-print.c (dump_binary_rhs): Likewise. - * tree-vectorizer.h (NUM_PATTERNS): Increase to 8. - * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR, - VEC_WIDEN_LSHIFT_LO_EXPR): New. - * cfgexpand.c (expand_debug_expr): Handle new tree codes. - * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add - vect_recog_widen_shift_pattern. - (vect_handle_widen_mult_by_const): Rename... - (vect_handle_widen_op_by_const): ...to this. Handle shifts. - Add a new argument, update documentation. - (vect_recog_widen_mult_pattern): Assume that only second - operand can be constant. Update call to - vect_handle_widen_op_by_const. - (vect_recog_over_widening_pattern): Fix typo. - (vect_recog_widen_shift_pattern): New. - * tree-vect-stmts.c (vectorizable_type_promotion): Handle - widening shifts. - (supportable_widening_operation): Likewise. - * tree-inline.c (estimate_operator_cost): Handle new tree codes. - * tree-vect-generic.c (expand_vector_operations_1): Likewise. - * tree-cfg.c (verify_gimple_assign_binary): Likewise. - * config/arm/neon.md (neon_vec_shiftl_): New. - (vec_widen_shiftl_lo_, neon_vec_shiftl_hi_, - vec_widen_shiftl_hi_, neon_vec_shift_left_): - Likewise. - * config/arm/predicates.md (const_neon_scalar_shift_amount_operand): - New. - * config/arm/iterators.md (V_innermode): New. - * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand - for widening shift. - -2011-10-18 Richard Guenther - - * tree-ssa-alias.h (struct pt_solution): Remove - vars_contains_restrict member. - (pt_solutions_same_restrict_base): Remove. - (pt_solution_set): Adjust. - * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove - vars_contains_restrict handling. - (dump_points_to_solution): Likewise. - (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base. - * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var - field. - (new_var_info): Do not initialize it. - (ipa_escaped_pt): Adjust. - (make_constraint_from_restrict): Make the tag global. - (make_constraint_from_global_restrict): New function. - (make_constraint_from_heapvar): Remove. - (create_variable_info_for): Do not make restrict vars point - to NONLOCAL. - (intra_create_variable_infos): Likewise. - (find_what_var_points_to): Remove vars_contains_restrict handling. - (pt_solution_set): Adjust. - (pt_solution_ior_into): Likewise. - (pt_solutions_same_restrict_base): Remove. - (compute_points_to_sets): Do not test is_restrict_var. - * cfgexpand.c (update_alias_info_with_stack_vars): Adjust. - * gimple-pretty-print.c (pp_points_to_solution): Likewise. - -2011-10-18 Tom de Vries - - PR tree-optimization/50672 - * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function, - factored out of ... - (mark_virtual_phi_result_for_renaming): Use - mark_virtual_operand_for_renaming. - * tree-flow.h (mark_virtual_operand_for_renaming): Declare. - * tree-ssa-tail-merge.c (release_last_vdef): New function. - (purge_bbs): Add update_vops parameter. Call release_last_vdef for each - deleted basic block. - (tail_merge_optimize): Add argument to call to purge_bbs. - -2011-10-18 Richard Guenther - - PR middle-end/50716 - * expr.c (get_object_or_type_alignment): New function. - (expand_assignment): Use it. - (expand_expr_real_1): Likewise. - -2011-10-18 Dodji Seketeli - - PR bootstrap/50760 - * input.c (dump_line_table_statistics): Use long, not size_t. - -2011-10-17 Eric Botcazou - - * config/sparc/sparc.md (in_call_delay): Fix formatting issues. - -2011-10-17 Simon Baldwin - Ian Lance Taylor - - * configure.ac: Add --with-native-system-header-dir. Set and - substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header - when setting target_header_dir. - * config.gcc: Always set native_system_header_dir. - (*-*-gnu*): Set native_system_header_dir. Don't use t-gnu. - (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't - use i386/t-djgpp. - (i[34567]86-*-mingw* | x86_64-*-mingw*): Set - native_system_header_dir. - (spu-*-elf*): Set native_system_header_dir. - * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to - @NATIVE_SYSTEM_HEADER_DIR@. - (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR. - * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define. - (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from - STANDARD_INCLUDE_COMPONENT. - (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename - STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR. - * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and - STANDARD_INCLUDE_COMPONENT. - * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove. - * config/i386/t-mingw-w32: Likewise. - * config/i386/t-mingw-w64: Likewise. - * config/spu/t-spu-elf: Likewise. - * config/i386/t-djgpp: Remove. - * config/t-gnu: Remove. - * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define. - (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from - STANDARD_INCLUDE_COMPONENT. - * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define. - * config/spu/spu-elf.h: Likewise. - * config/vms/xm-vms.h: Likewise. - * config/gnu.h: Likewise. - * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR - and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and - NATIVE_SYSTME_HEADER_COMPONENT. - * doc/install.texi (Configuration): Document - --with-native-system-header-dir. Mention it in the documentation - for --with-sysroot and --with-build-sysroot. - * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or - STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to - NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of - STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR. - * doc/fragments.texi (Target Fragment): Don't document - NATIVE_SYSTEM_HEADER_DIR. - * configure, doc/tm.texi: Rebuild. - -2011-10-17 Richard Henderson - - * config/sparc/sparc.md: Use register_or_zero_operand where rJ - is the constraint. - - * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm): New - patterns. - * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function. - * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare. - -2011-10-17 David S. Miller - - * config/sparc/sparc-modes.def: Add single entry vector modes for - DImode and SImode. - * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete - mode iterators. - (mov): Revert back to plain SFmode pattern. - (*movsf_insn): Likewise. - (mov): Revert back to plain DFmode pattern. - (*movdf_insn_sp32): Likewise. - (*movdf_insn_sp32_v9): Likewise. - (*movdf_insn_sp64): Likewise. - (V64 mode splitters) Likewise. - (addsi3): Remove VIS alternatives. - (subsi3): Likewise. - (and3): Revert to DImode only pattern. - (and3_sp32): Likewise. - (*and3_sp64): Likewise. - (and3): Likewise. - (*and_not__sp32): Likewise. - (*and_not__sp64): Likewise. - (*and_not_): Likewise. - (ior3): Likewise. - (*ior3_sp32): Likewise. - (*ior3_sp64): Likewise. - (ior3): Likewise. - (*or_not__sp32): Likewise. - (*or_not__sp64): Likewise. - (*or_not_): Likewise. - (xor3): Likewise. - (*xor3_sp32): Likewise. - (*xor3_sp64): Likewise. - (xor3): Likewise. - (V64I mode splitters): Likewise. - (*xor_not__sp32): Likewise. - (*xor_not__sp64): Likewise. - (*xor_not_): Likewise. - (one_cmpl2): Likewise. - (*one_cmpl2_sp32): Likewise. - (*one_cmpl2_sp64): Likewise. - (one_cmpl2): Likewise. - (VM32, VM64, VMALL): New mode iterators. - (vbits, vconstr, vfptype): New mode attributes. - (mov): New expander. - (*mov_insn): New insn. - (*mov_insn_sp64): New insn. - (*mov_insn_sp32): New insn, and associated splitter - specifically for the register to memory case. - (vec_init): New expander. - (VADDSUB): New mode iterator. - (v2si3, v2hi3): Remove and replace - with... - (3): New consolidated pattern. - (VL): New mode iterator for logical operations. - (vlsuf): New more attribute. - (vlop): New code iterator. - (vlinsn, vlninsn): New code attributes. - (3): New insn to non-negated vector logical ops. - (*not_3): Likewise for negated variants. - (*nand_vis): New insn. - (vlnotop): New code iterator. - (*_not1_vis, *_not2_vis): New insns. - (one_cmpl2): New insn. - (faligndata_vis): Rewrite to use VM64 iterator. - (bshuffle_vis): Likewise. - (v3): Use GCM mode iterator. - (fp64_vis): Use V1DI mode. - (VASS mode iterator): Use V1SI not SI mode. - * config/sparc/sparc.c (sparc_vis_init_builtins): Account for - single-entry vector mode changes. - (sparc_expand_builtin): Likewise. - (sparc_expand_vector_init): New function. - * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare. - -2011-10-17 Kai Tietz - - * fold-const.c (simple_operand_p_2): New function. - (fold_truthop): Rename to - (fold_truth_andor_1): function name. - Additionally remove branching creation for logical and/or. - (fold_truth_andor): Handle branching creation for logical and/or here. - -2011-10-17 Andi Kleen - - * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP. - -2011-10-17 Georg-Johann Lay - - * config/avr/avr.h (ASSEMBLER_DIALECT): Remove. - * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes. - (adjust_len): Add alternative "call". - (isa, enabled): New insn attributes. - (length): Use match_test with AVR_HAVE_JMP_CALL instead of - mcu_mega attribute. - (*sbrx_branch): Ditto. - (*sbrx_and_branch): Ditto. - (*sbix_branch): Ditto. - (*sbix_branch_bit7): Ditto. - (*sbix_branch_tmp): Ditto. - (*sbix_branch_tmp_bit7): Ditto. - (jump): Ditto. - (negsi2): Use attribute "isa" instead of assembler dialect. - (extendhisi2): Ditto. - (call_insn, call_value_insn): Set adjust_len attribute. - (indirect_jump): Indent to coding rules. - (call_prologue_saves): Use isa attribute instead of mcu_mega. - (epilogue_restores): Ditto. Fix setting of SP as described in the - RTX pattern. - (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump - and *indirect_jump_avr6. - (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib. - (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove. - (*tablejump_rjmp, *tablejump_lib): Remove. - * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL. - -2011-10-17 Paolo Carlini - - PR c++/50757 - * doc/invoke.texi ([Wnonnull]): Update. - -2011-10-17 Richard Henderson - - PR 50746 - * optabs.c (expand_vec_perm_expr): Fix indexing error. - -2011-10-17 Sergio Durigan Junior - - * configure.ac: Display `yes' if the SystemTap header has been found. - * configure: Regenerate. - -2011-10-08 Andi Kleen - - PR other/50636 - * config.in, configure: Regenerate. - * configure.ac (madvise): Add to AC_CHECK_FUNCS. - * ggc-page.c (USING_MADVISE): Add. - (page_entry): Add discarded field. - (alloc_page): Check for discarded pages. - (release_pages): Add USING_MADVISE branch. - -2011-10-17 Richard Guenther - - PR tree-optimization/50729 - * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test. - (simplify_conversion_using_ranges): Properly test the - intermediate result. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * ggc.h (ggc_round_alloc_size): Declare new public entry point. - * ggc-none.c (ggc_round_alloc_size): New public stub function. - * ggc-page.c (ggc_alloced_size_order_for_request): New static - function. Factorized from ggc_internal_alloc_stat. - (ggc_round_alloc_size): New public function. Uses - ggc_alloced_size_order_for_request. - (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request. - * ggc-zone.c (ggc_round_alloc_size): New public function extracted - from ggc_internal_alloc_zone_stat. - (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size. - * toplev.c (general_init): Initialize - line_table->alloced_size_for_request. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros. - (num_expanded_macros_counter, num_macro_tokens_counter): Declare - new counters. - (dump_line_table_statistics): Define new function. - * input.h (dump_line_table_statistics): Declare new function. - * toplev.c (dump_memory_report): Call dump_line_table_statistics. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * doc/cppopts.texi: Document -fdebug-cpp. - * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * gcc/diagnostic.h (diagnostic_report_current_module): Add a - location parameter. - * diagnostic.c (diagnostic_report_current_module): Add a location - parameter to the function definition. Use it instead of - input_location. Resolve the virtual location rather than just - looking up its map and risking to touch a resulting macro map. - (default_diagnostic_starter): Pass the relevant diagnostic - location to diagnostic_report_current_module. - * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New. - (virt_loc_aware_diagnostic_finalizer): Likewise. - (diagnostic_report_current_function): Pass the - relevant location to diagnostic_report_current_module. - * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare - new function. - * toplev.c (general_init): By default, use the new - virt_loc_aware_diagnostic_finalizer as diagnostic finalizer. - * Makefile.in: Add vec.h dependency to tree-diagnostic.c. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * doc/cppopts.texi (-ftrack-macro-expansion): Document new option. - * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of - preprocessor related options. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * input.h (struct expanded_location): Move to libcpp/line-map.h. - (LOCATION_COLUMN): New accessor - (in_system_header_at): Use linemap_location_in_system_header_p. - * diagnostic.c (diagnostic_report_current_module): Adjust to avoid - touching the internals of struct line_map. Use the public API instead. - (diagnostic_report_diagnostic): Don't use relational operator '<' - on virtual locations. Use linemap_location_before_p instead. - * input.c (expand_location): Adjust to expand to the tokens' - spelling location when macro location tracking is on. - - -2011-10-08 Andi Kleen - - * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512 - -2011-10-13 Andi Kleen - - * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim. - -2011-10-16 Ira Rosen - - PR tree-optimization/50727 - * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add - DEF_STMT to the list of statements to be replaced by the - pattern statements. - -2011-10-16 Eric Botcazou - - PR rtl-optimization/50615 - * combine.c (distribute_notes) : Skip if I3 is a no-op. - -2011-10-16 Jakub Jelinek - - PR tree-optimization/50596 - * tree-vectorizer.h (NUM_PATTERNS): Increase to 7. - * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add - vect_recog_bool_pattern. - (check_bool_pattern, adjust_bool_pattern_cast, - adjust_bool_pattern, vect_recog_bool_pattern): New functions. - -2011-10-16 Ira Rosen - - * tree-vect-stmts.c (vectorizable_load): For SLP without permutation - treat the first load of the node as the first element in its - interleaving chain. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if - necessary and possible. - (vect_build_slp_tree): Add new argument. Allow load groups of any size - in basic blocks. Keep all the loads for further permutation check. - Use the new argument to determine if there is a permutation. Update - the recursive calls. - (vect_supported_load_permutation_p): Allow subchains of interleaving - chains in basic block vectorization. - (vect_analyze_slp_instance): Update the call to vect_build_slp_tree. - Check load permutation based on the new parameter. - (vect_schedule_slp_instance): Don't start from the first element in - interleaving chain unless the loads are permuted. - -2011-10-15 Jan Hubicka - - PR target/48668 - PR target/50689 - * cgraphunit.c (cgraph_expand_function): Expand thunks and alises - after function body. - -2011-10-15 Richard Henderson - - * tree-vect-slp.c: Include langhooks.h. - (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin. - (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify - mask creation for VEC_PERM_EXPR. - * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask, - not the builtin. - (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin. - * Makefile.in (tree-vect-slp.o): Update dependency. - * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant. - -2011-10-15 Alan Modra - - PR bootstrap/50738 - * ifcvt.c (dead_or_predicable): Revert accidental commit with - HAVE_simple_return test. - -2011-10-15 Alan Modra - - * ifcvt.c (dead_or_predicable): Disable if-conversion when - doing so is likely to kill a shrink-wrapping opportunity. - - PR rtl-optimization/49941 - * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps. - - * rtl.h (set_return_jump_label): Declare. - * function.c (set_return_jump_label): New function, extracted.. - (thread_prologue_and_epilogue_insns): ..from here. Use it in - another instance to set return jump_label. - * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label. - * reorg.c (find_end_label): Likewise. - -2011-10-14 David S. Miller - - * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling - with a more complete cpp test. - * config/sparc/linux64.h: Likewise. - * config/sparc/linux.h: Likewise. - * config/sparc/sparc.opt (sparc_debug): New target variable. - (mdebug): New target option. - * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL, - TARGET_DEBUG_OPTIONS): New defines. - * config/sparc/sparc.c (debug_target_flag_bits, - debug_target_flags): New functions. - (sparc_option_override): Add name strings back to cpu_table[]. - Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print - out the target flags before and after override processing as well - as the selected cpu. If MASK_V8PLUS, make sure that the selected - cpu is at least v9. - -2011-10-15 Oleg Endo - - PR target/49263 - * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro. - * config/sh/sh.c (sh_rtx_costs): Add test instruction case. - * config/sh/sh.md (tstsi_t): Name existing insn. Make inner - and instruction commutative. - (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not, - tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor, - tstsi_t_zero_extract_subreg_xor_little, - tstsi_t_zero_extract_subreg_xor_big): New insns. - (*movsicc_t_false, *movsicc_t_true): Replace space with tab in - asm output. - (*andsi_compact): Reorder alternatives so that K08 is considered first. - -2011-10-14 Eric Botcazou - - PR target/50354 - * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default - processor is at least V9 and TARGET_64BIT_DEFAULT is defined. - -2011-10-14 Gerald Pfeifer - - * invoke.texi (AVR Options): Avoid \leq{}. - -2011-10-14 Kai Tietz - - * gimplify.c (gimplify_expr): Take care that for bitwise-binary - transformation the operands have compatible types. - -2011-10-14 Jakub Jelinek - - * config/i386/sse.md (vec_widen_smult_hi_v8hi, - vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi, - vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2 - mode iterator and any_extend code iterator. - (vec_widen_mult_hi_v8si, vec_widen_mult_lo_v8si): New expanders. - (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable - also for TARGET_SSE4_1 using pmuldq insn. - (sdot_prodv8hi): Macroize using VI2_AVX2 iterator. - (sse2_sse4_1): New code attr. - (udot_prodv4si): Macroize using any_extend code iterator. - (dot_prodv8si): New expander. - -2011-10-14 Yakovlev Vladimir - - * config/i386/i386.c (atom_cost): Changed cost for loading - QImode using movzbl. - -2011-10-14 Michael Meissner - - * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my - change on October 11th, 2011. - -2011-10-14 Jakub Jelinek - - * config/i386/sse.md (vec_interleave_high, - vec_interleave_low): Add AVX2 expanders for VI_256 modes. - * config/i386/i386.c (expand_vec_perm_interleave3): New function. - (ix86_expand_vec_perm_builtin_1): Call it. - -2011-10-14 Georg-Johann Lay - - Fix thinko from r179765 - * config/avr/avr.c (avr_option_override): Don't override - flag_omit_frame_pointer if not actually needed. - -2011-10-14 Georg-Johann Lay - - PR target/46278 - * doc/invoke.texi (AVR Options): Document -mstrict-X. - - * config/avr/avr.opt (-mstrict-X): New option. - (avr_strict_X): New variable reflecting -mstrict-X. - * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter - outer_code and pass it down to avr_regno_mode_code_ok_for_base_p. - (avr_legitimate_address_p): Pass outer_code to - avr_reg_ok_for_addr_p and use that function in case PLUS. - (avr_mode_code_base_reg_class): Depend on avr_strict_X. - (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code. - (avr_option_override): Disable -fcaller-saves if -mstrict-X is on. - -2011-10-14 Jakub Jelinek - - * config/i386/sse.md (neg2): Use VI_AVX2 iterator instead - of VI_128. - - * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator. - (ashl3): Use VI248_AVX2 iterator instead of VI248_128. - Use instead of TI in mode attr. - -2011-10-14 David Alan Gilbert - - * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c). - * config/arm/linux-atomic.c: Change comment to point to 64bit version. - (SYNC_LOCK_RELEASE): Instantiate 64bit version. - * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c. - -2011-10-14 David Alan Gilbert - - * config/arm/arm.c (arm_output_ldrex): Support ldrexd. - (arm_output_strex): Support strexd. - (arm_output_it): New helper to output it in Thumb2 mode only. - (arm_output_sync_loop): Support DI mode. Change comment to - not support const_int. - (arm_expand_sync): Support DI mode. - * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH - and LDREXD. - * config/arm/iterators.md (NARROW): move from sync.md. - (QHSD): New iterator for all current ARM integer modes. - (SIDI): New iterator for SI and DI modes only. - * config/arm/sync.md (sync_predtab): New mode_attr. - (sync_compare_and_swapsi): Fold into sync_compare_and_swap. - (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi. - (sync_si): Fold into sync_. - (sync_nandsi): Fold into sync_nand. - (sync_new_si): Fold into sync_new_. - (sync_new_nandsi): Fold into sync_new_nand. - (sync_old_si): Fold into sync_old_. - (sync_old_nandsi): Fold into sync_old_nand. - (sync_compare_and_swap): Support SI & DI. - (sync_lock_test_and_set): Likewise. - (sync_): Likewise. - (sync_nand): Likewise. - (sync_new_): Likewise. - (sync_new_nand): Likewise. - (sync_old_): Likewise. - (sync_old_nand): Likewise. - (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI. - (arm_sync_lock_test_and_setsi): Likewise. - (arm_sync_new_si): Likewise. - (arm_sync_new_nandsi): Likewise. - (arm_sync_old_si): Likewise. - (arm_sync_old_nandsi): Likewise. - (arm_sync_compare_and_swap NARROW): use sync_predtab, fix indent. - (arm_sync_lock_test_and_setsi NARROW): Likewise. - (arm_sync_new_ NARROW): Likewise. - (arm_sync_new_nand NARROW): Likewise. - (arm_sync_old_ NARROW): Likewise. - (arm_sync_old_nand NARROW): Likewise. - -2011-10-14 David Alan Gilbert - - PR target/48126 - * config/arm/arm.c (arm_output_sync_loop): Move label before barrier. - -2011-10-14 David Alan Gilbert - - * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1. - -2011-10-14 Paolo Carlini - - * doc/invoke.texi ([Wformat-zero-length]): Tidy. - -2011-10-14 Jakub Jelinek - - * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also - on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs. - -2011-10-14 Richard Guenther - - PR tree-optimization/50723 - * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING. - -2011-10-14 Nicola Pero - - * gengtype.c (files_rules): Added rules for objc/objc-map.h and - objc/objc-map.c. - -2011-10-14 Paolo Carlini - - PR c++/17212 - * doc/invoke.texi ([Wformat-zero-length]): Update. - -2011-10-14 Iain Sandoe - - PR bootstrap/50699 - * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only - build for powerpc targets. (darwin_patch_builtins): Only build for - powerpc targets. - -2011-10-14 Jakub Jelinek - - * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to... - (avx_cvtdq2pd256_2): ... this. - (sseunpackfltmode): New mode attr. - (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi, - vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize - using VI2_AVX2 iterator. - (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders. - -2011-10-13 David S. Miller - - * config/sparc/sparc.md (plusminus): New code iterator. - (plusminus_insn): New code attr. - (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge - using plusminus and plusminus_insn. - (fpadd64_vis, fpsub64_vis): Likewise. - -2011-10-13 Richard Henderson - - * doc/md.texi (vec_perm): Document fallback to byte permutation. - * genopinit.c (optabs): Add vec_perm_const. - * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p. - Reject non-vector modes. Allow fallback to byte permutation. - (expand_vec_perm_expr_1): Split out from ... - (expand_vec_perm_expr): ... here. Allow fallback to byte permutation. - * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New. - * tree-vect-generic.c (lower_vec_perm): Update for name change. - -2011-10-13 Richard Henderson - - * config/rs6000/altivec.md (vec_permv16qi): New pattern. - - * config/rs6000/spu.md (vec_permv16qi): New pattern. - - * config/i386/i386.c (ix86_expand_vec_perm_const): New. - * config/i386/i386-protos.h: Update. - * config/i386/sse.md (VEC_PERM_CONST): New mode iterator. - (vec_perm_const): New expander. - - * optabs.c (expand_vector_broadcast): New. - (expand_binop): Expand scalar shifts of vectors to vector shifts - of vectors, if the former isn't supported. - * tree-vect-generic.c (expand_vector_operations_1): Don't do that - here; always simplify to scalar shift of vector if possible. - - * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode - test for vector splat. - -2011-10-13 Jakub Jelinek - - * config/i386/sse.md (vec_set): Change V_128 iterator mode to V. - -2011-10-13 Jakub Jelinek - Richard Guenther - - * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector - or complex vars even if their DECL_UID is in not_reg_needs bitmap. - -2011-10-13 Jakub Jelinek - - * config/i386/sse.md (reduc_umin_v8hi): New pattern. - * config/i386/i386.c (ix86_build_const_vector): Handle - also V32QI, V16QI, V16HI and V8HI modes. - (emit_reduc_half): New function. - (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN. - Use emit_reduc_half helper function. - -2011-10-13 Lawrence Crowl - Diego Novillo - - * lto-streamer-in.c (input_struct_function_base): Factor out of ... - (input_function): ... here. - * lto-streamer-out.c (output_struct_function_base): Factor out of ... - (output_function): ... here. - -2011-10-13 Gabriel Charette - Diego Novillo - - * streamer-hooks.h (struct streamer_hooks): Add hooks - input_location and output_location. - * lto-streamer-in.c (lto_input_location): Use - streamer_hooks.input_location, if set. - * lto-streamer-out.c (lto_output_location): Use - streamer_hooks.output_location, if set. - -2011-10-13 Eric Botcazou - - * doc/invoke.texi (SPARC options): Document -mfix-at697f. - * config/sparc/sparc.opt (mfix-at697f): New option. - * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (sparc_reorg): New function. - -2011-10-13 Richard Guenther - - PR tree-optimization/50712 - * ipa-split.c (split_function): Always re-gimplify parameters - when they are not gimple vals before passing them. Properly - check for type compatibility. - -2011-10-13 Tom de Vries - - * function.c (gimplify_parameters): Set number of arguments of call to - BUILT_IN_ALLOCA_WITH_ALIGN to 2. - -2011-10-13 Tom de Vries - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P - for static const strings. - * varasm.c (build_constant_desc): Generate the memory location of the - constant using gen_const_mem. - -2011-10-13 Richard Guenther - - PR tree-optimization/50698 - * tree-data-ref.c (split_constant_offset_1): Also process - offsets of &MEM. - -2011-10-12 David S. Miller - - * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete. - (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New - unspecs. - (fpmerge_vis): Remove inaccurate comment, represent using vec_select - of a vec_concat. - (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns. - (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis): - Reimplement as unspecs and remove inaccurate comments. - (vis3_shift_patname): New code attr. - (_vis): Rename to - "v3". - (vis3_addsub_ss_patname): New code attr. - (_vis): Rename to - "3". - * config/sparc/sparc.c (sparc_vis_init_builtins): Update to - accommodate pattern name changes. - - * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF - to zero when assembler lacks support for such instructions. - * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3 - and MASK_FMAF in defaults when assembler lacks necessary support. - -2011-10-12 Jakub Jelinek - - * config/i386/sse.md (vec_unpacks_lo_, - vec_unpacks_hi_, vec_unpacku_lo_, - vec_unpacku_hi_): Change VI124_128 mode to VI124_AVX2. - * config/i386/i386.c (ix86_expand_sse_unpack): Handle - V32QImode, V16HImode and V8SImode for TARGET_AVX2. - - * config/i386/sse.md (vec_avx2): New mode_attr. - (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ... - (mul3): ... this. - - * config/i386/i386.md (UNSPEC_VPERMDI): Remove. - * config/i386/i386.c (ix86_expand_vec_perm): Handle - V16QImode and V32QImode for TARGET_AVX2. - (MAX_VECT_LEN): Increase to 32. - (expand_vec_perm_blend): Add support for 32-byte integer - vectors with TARGET_AVX2. - (valid_perm_using_mode_p): New function. - (expand_vec_perm_pshufb): Add support for 32-byte integer - vectors with TARGET_AVX2. - (expand_vec_perm_vpshufb2_vpermq): New function. - (expand_vec_perm_vpshufb2_vpermq_even_odd): New function. - (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors - with TARGET_AVX2. - (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq - and expand_vec_perm_vpshufb2_vpermq_even_odd. - * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2 - 32-byte integer vector modes. - (vec_pack_trunc_): Use VI248_AVX2 instead of VI248_128. - (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto. - (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate - 4 new operands. - (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use - match_dup, instead add 4 new operands and require they have - right cross-lane values. - (avx2_permv4di): Change into define_expand. - (avx2_permv4di_1): New instruction. - (avx2_permv2ti): Use nonimmediate_operand instead of register_operand - for "xm" constrained operand. - (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2. - - * config/i386/sse.md (avx2_gathersi, - avx2_gatherdi, avx2_gatherdi256): Add clobber of - match_scratch, change memory_operand to register_operand, - add (mem:BLK (scratch)) use. - (*avx2_gathersi, *avx2_gatherdi, - *avx2_gatherdi256): Add clobber of match_scratch, - add earlyclobber to the output operand and match_scratch, - add (mem:BLK (scratch)) use, change the other mem to match_operand. - Use %p6 instead of %c6 in the pattern. - * config/i386/i386.c (ix86_expand_builtin): Adjust for - operand 2 being a Pmode register_operand instead of memory_operand. - -2011-10-12 Kai Tietz - - * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active. - -2011-10-12 Steve Ellcey - - * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses. - -2011-10-12 Richard Guenther - - * tree-ssa-alias.c (maybe_skip_until): Cache also at the point - of the first store we visit in a basic-block. - (get_continuation_for_phi): Search for a candidate VUSE that - might dominates all others. Do pairwise disambiguation against - that candidate. - -2011-10-12 Paul Koning - - PR tree-optimization/50189 - * tree-vrp.c (extract_range_from_assert): Use the type of - the variable, not the limit. - -2011-10-12 Richard Guenther - - PR tree-optimization/50700 - * tree-object-size.c (addr_object_size): Simplify and treat - MEM_REF bases consistently. - -2011-10-12 Bernd Schmidt - - * function.c (prepare_shrink_wrap, bb_active_p): New function. - (thread_prologue_and_epilogue_insns): Use bb_active_p. Call - prepare_shrink_wrap, then recompute bb_active_p for the last block. - -2011-10-12 Joseph Myers - - PR c/50565 - * convert.c (convert_to_integer): Do not narrow operands of - pointer subtraction. - -2011-10-12 Nick Clifton - - * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro. Used to - emit a .eabi_attribute assembler directive, possibly with a - comment attached. - * config/arm/arm.c (arm_file_start): Use the new macro. - * config/arm/arm-c.c (arm_output_c_attributes): Likewise. - -2011-10-12 Georg-Johann Lay - - PR target/49939 - * config/avr/avr.md (*movqi): Rename to movqi_insn. - (*call_insn): Rename to call_insn. - (*call_value_insn): Rename to call_value_insn. - * config/avr/avr.c (avr_2word_insn_p): New static function. - (jump_over_one_insn_p): Use it. - -2011-10-12 Richard Sandiford - - PR middle-end/48660 - * expr.h (copy_blkmode_to_reg): Declare. - * expr.c (copy_blkmode_to_reg): New function. - (expand_assignment): Don't expand register RESULT_DECLs before - the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a - RESULT_DECL register. - (expand_expr_real_1): Handle BLKmode decls when looking for promotion. - * stmt.c (expand_return): Move BLKmode-to-register code into - copy_blkmode_to_reg. - -2011-10-11 Eric Botcazou - - PR target/49965 - * config/sparc/sparc.md (movcc): Do not save comparison code. - (movcc): Likewise. - -2011-10-11 Bill Schmidt - - * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP. - -2011-10-11 Michael Meissner - - * tree.h (built_in_decls): Delete old interface with two parallel - arrays to hold standard builtin declarations, and replace it with - a function based interface that can support creating builtins on - the fly in the future. Change all uses, and poison the old - names. Make sure 0 is not a legitimate builtin index. - (implicit_built_in_decls): Ditto. - (built_in_info): Ditto. - (BUILTIN_VALID_P): Ditto. - (builtin_decl_explicit): Ditto. - (builtin_decl_implicit): Ditto. - (set_builtin_decl): Ditto. - (set_builtin_decl_implicit_p): Ditto. - (builtin_decl_explicit_p): Ditto. - (builtin_decl_implicit_p): Ditto. - * tree-complex.c (expand_complex_libcall): Ditto. - * tree-loop-distribution.c (generate_memset_zero): Ditto. - * tree-ssa-strlen.c (get_string_length): Ditto. - (handle_builtin_strcpy): Ditto. - (handle_builtin_strcat): Ditto. - * tree.c (iterative_hash_expr): Ditto. - (local_define_builtin): Ditto. - (build_common_builtin_nodes): Ditto. - * builtins.c (built_in_decls): Ditto. - (implicit_built_in_decls): Ditto. - (built_in_info): Ditto - (expand_builtin_classify_type): Ditto. - (mathfn_built_in_1): Ditto. - (expand_builtin_cexpi): Ditto. - (expand_builtin_mempcpy_args): Ditto. - (expand_builtin_stpcpy): Ditto. - (gimplify_va_arg_expr): Ditto. - (expand_builtin_sync_operation): Ditto. - (build_builtin_expect_predicate): Ditto. - (fold_builtin_memory_op): Ditto. - (fold_builtin_strcpy): Ditto. - (fold_builtin_stpcpy): Ditto. - (fold_builtin_strncpy): Ditto. - (fold_builtin_interclass_mathfn): Ditto. - (fold_builtin_classify): Ditto. - (fold_builtin_2): Ditto. - (fold_builtin_strstr): Ditto. - (fold_builtin_strrchr): Ditto. - (fold_builtin_strpbrk): Ditto. - (fold_builtin_strcat): Ditto. - (fold_builtin_strncat): Ditto. - (fold_builtin_strcspn): Ditto. - (fold_builtin_fputs): Ditto. - (fold_builtin_sprintf): Ditto. - (fold_builtin_snprintf): Ditto. - (expand_builtin_memory_chk): Ditto. - (fold_builtin_memory_chk): Ditto. - (fold_builtin_stxcpy_chk): Ditto. - (fold_builtin_strncpy_chk): Ditto. - (fold_builtin_strcat_chk): Ditto. - (fold_builtin_strncat_chk): Ditto. - (fold_builtin_sprintf_chk_1): Ditto. - (fold_builtin_snprintf_chk_1): Ditto. - (fold_builtin_printf): Ditto. - (fold_builtin_fprintf): Ditto. - (fold_call_stmt): Ditto. - (set_builtin_user_assembler_name): Ditto. - * tree-emutls.c (emutls_common_1): Ditto. - * omp-low.c (scan_omp): Ditto. - (lower_rec_input_clauses): Ditto. - (lower_reduction_clauses): Ditto. - (expand_parallel_call): Ditto. - (expand_task_call): Ditto. - (maybe_catch_exception): Ditto. - (optimize_omp_library_calls): Ditto. - (expand_omp_for_generic): Ditto. - (expand_omp_for_static_nochunk): Ditto. - (expand_omp_for_static_chunk): Ditto. - (expand_omp_sections): Ditto. - (expand_omp_atomic_fetch_op): Ditto. - (expand_omp_atomic_pipeline): Ditto. - (expand_omp_atomic_mutex): Ditto. - (lower_omp_single_simple): Ditto. - (lower_omp_single_copy): Ditto. - (lower_omp_master): Ditto. - (lower_omp_ordered): Ditto. - (lower_omp_critical): Ditto. - * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto. - * builtins.c (DEF_BUILTIN_STUB): Ditto. - (BUILT_IN_NONE): Ditto. - * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto. - * gimple-low.c (lower_function_body): Ditto. - (lower_builtin_setjmp): Ditto. - * c-decl.c (merge_decls): Ditto. - * tree-eh.c (lower_resx): Ditto. - (lower_resx): Ditto. - (lower_eh_dispatch): Ditto. - * function (gimplify_parameters): Ditto. - * c-typeck.c (build_function_call_vec): Ditto. - * gimplify.c (build_stack_save_restore): Ditto. - (gimplify_vla_decl): Ditto. - (gimplify_modify_expr_to_memcpy): Ditto. - (gimplify_modify_expr_to_memset): Ditto. - (gimplify_variable_sized_compare): Ditto. - (gimplify_function_tree): Ditto. - * calls.c (emit_call_1): Ditto. - * tree-ssa-forprop.c (simplify_builtin_call): Ditto. - * tree-nested.c (convert_nl_goto_reference): Ditto. - (convert_tramp_reference_op): Ditto. - (finalize_nesting_tree_1): Ditto. - * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. - (tree_ssa_prefetch_arrays): Ditto. - * tree-streamer-in.c (streamer_get_builtin_tree): Ditto. - * system.h (built_in_decls): Ditto. - (implicit_built_in_decls): Ditto. - * tree-vect-generic.c (expand_vector_operations_1): Ditto. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto. - * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. - (ix86_veclibabi_svml): Ditto. - (ix86_veclibabi_acml): Ditto. - * config/vms/vms.c (vms_patch_builtins): Ditto. - * config/ia64/ia64.c (ia64_init_builtins): Ditto. - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto. - (rs6000_builtin_vectorized_libmass): Ditto. - (rs6000_init_builtins): Ditto. - * config/darwin.c (darwin_override_options): Ditto. - (darwin_patch_builtin): Ditto. - (darwin_rename_builtins): Ditto. - * config/pa/pa.c (pa_init_builtins): Ditto. - -2011-10-11 Bill Schmidt - - * tree.h (copy_ref_info): Expose existing function. - * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to... - * tree-ssa-address.c (copy_ref_info): ...here, and remove static token. - -2011-10-11 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New - prototype. - (avr_regno_mode_code_ok_for_base_p): New prototype. - * config/avr/avr.h (BASE_REG_CLASS): Remove. - (REGNO_OK_FOR_BASE_P): Remove. - (REG_OK_FOR_BASE_NOSTRICT_P): Remove. - (REG_OK_FOR_BASE_STRICT_P): Remove. - (MODE_CODE_BASE_REG_CLASS): New define. - (REGNO_MODE_CODE_OK_FOR_BASE_P): New define. - * config/avr/avr.c (avr_mode_code_base_reg_class): New function. - (avr_regno_mode_code_ok_for_base_p): New function. - (avr_reg_ok_for_addr_p): New static function. - (avr_legitimate_address_p): Use it. Beautify. - -2011-10-11 Georg-Johann Lay - - PR target/50447 - * config/avr/avr.md (cc): Add out_plus attribute alternative. - (addsi3): Use it. Adapt avr_out_plus to new prototype. Use - avr_out_plus for all CONST_INT addends. - * config/avr/avr-protos.h (avr_out_plus): Change prototype. - * config/avr/avr.c (notice_update_cc): Call avr_out_plus on - CC_OUT_PLUS. - (avr_out_plus_1): Change prototype and report effect on cc0. - (avr_out_plus): Ditto. - (adjust_insn_length): Adapt call to avr_out_plus to new prototype. - -2011-10-11 H.J. Lu - - * config/i386/i386.c (ix86_expand_special_args_builtin): Remove - the extra break. - -2011-10-11 Artjoms Sinkarovs - - * doc/invoke.texi: Document new warning. - * common.opt (Wvector-operation-performance): Define new warning. - * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded - vector operation. - (exapnd_vector_parallel): Warn about expanded vector operation. - (lower_vec_shuffle): Warn about expanded vector operation. - * c-typeck.c (c_build_vec_perm_expr): Store correct location - when creating VEC_PERM_EXPR. - -2011-10-11 Richard Guenther - - PR tree-optimization/50204 - * tree-ssa-alias.c (get_continuation_for_phi_1): Split out - two argument handling from ... - (get_continuation_for_phi): ... here. Handle arbitrary number - of PHI args. - -2011-10-11 Richard Sandiford - - * modulo-sched.c: Fix comment typo. Mention the possibility - of using scheduling windows of II+1 cycles. - -2011-10-11 Tristan Gingold - - * doc/invoke.texi (C Dialect Options): Document - -fallow-parameterless-variadic-functions. - * c-parser.c (c_parser_parms_list_declarator): Handle it. - -2011-10-10 Georg-Johann Lay - - * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer - to 0 if frame pointer is needed for unwinding. - -2011-10-10 Uros Bizjak - - PR bootstrap/50665 - * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm. Move from enum - optab_index to enum direct_optab_index. - (vec_perm_optab): Update. - -2011-10-10 Anatoly Sokolov - - * config/cris/cris.c (cris_preferred_reload_class): New function. - (TARGET_PREFERRED_RELOAD_CLASS): Define. - * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove. - -2011-10-10 Georg-Johann Lay - - * config/avr/avr.md (*tablejump_rjmp): Change insn condition to - !AVR_HAVE_JMP_CALL. - (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL. - (*tablejump_enh, *tablejump): Remove insns. - * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND + - EIJMP for indirect jump. Use LPM Z+ where available. - -2011-10-10 Richard Henderson - - * doc/md.texi (vec_perm_const): Fix typo in cindex. - -2011-10-10 Kirill Yukhin - Yakovlev Vladimir - - * config/i386/sse.md (fma_fnmsub_): Fix a typo. - -2011-10-10 Richard Guenther - - PR middle-end/50389 - * gimple-fold.c (gimplify_and_update_call_from_tree): Do not - mark symbols for renaming. Append the VUSE to all statements - that possibly can have one. - -2011-10-10 Richard Guenther - - * ipa-split.c (pass_split_functions): Add verification TODOs. - (pass_feedback_split_functions): Likewise. - -2011-10-10 Richard Guenther - - PR middle-end/50195 - * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2) - only when optimizing. - -2011-10-10 Nick Clifton - - PR middle-end/49801 - * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and - df_get_live_out instead of accessing the bitmaps directly. - (execute_compare_elim_after_reload): Remove calls to df_set_flags, - df_live_add_problem and df_analyze. - -2011-10-10 Michael Matz - - PR middle-end/50638 - * tree-emutls.c (gen_emutls_addr): Call add_referenced_var. - -2011-10-10 Richard Sandiford - - * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages. - (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete. - (node_sched_params): Remove first_reg_move and nreg_moves. - (ps_num_consecutive_stages, extend_node_sched_params): New functions. - (update_node_sched_params): Move up file. - (print_node_sched_params): Print the stage. Don't dump info related - to first_reg_move and nreg_moves. - (set_columns_for_row): New function. - (set_columns_for_ps): Move up file and use set_columns_for_row. - (schedule_reg_move): New function. - (schedule_reg_moves): Call extend_node_sched_params and - schedule_reg_move. Extend size of uses bitmap. Initialize - num_consecutive_stages. Return false if a move could not be - scheduled. - (apply_reg_moves): Don't emit moves here. - (permute_partial_schedule): Handle register moves. - (duplicate_insns_of_cycles): Remove for_prolog. Emit moves according - to the same stage-count test as ddg nodes. - (generate_prolog_epilog): Update calls accordingly. - (sms_schedule): Allow move-scheduling to add a new first stage. - -2011-10-10 Richard Sandiford - - * modulo-sched.c (ps_insn): Adjust comment. - (ps_reg_move_info): New structure. - (partial_schedule): Add reg_moves field. - (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params. - (node_sched_params): Turn first_reg_move into an identifier. - (ps_reg_move): New function. - (ps_rtl_insn): Cope with register moves. - (ps_first_note): Adjust comment and assert that the instruction - isn't a register move. - (node_sched_params): Replace with... - (node_sched_param_vec): ...this vector. - (set_node_sched_params): Adjust accordingly. - (print_node_sched_params): Take a partial schedule instead of a ddg. - Use ps_rtl_insn and ps_reg_move. - (generate_reg_moves): Rename to... - (schedule_reg_moves): ...this. Remove rescan parameter. Record each - move in the partial schedule, but don't emit it here. Don't perform - register substitutions here either. - (apply_reg_moves): New function. - (duplicate_insns_of_cycles): Use register indices directly, - rather than finding instructions using PREV_INSN. Use ps_reg_move. - (sms_schedule): Call schedule_reg_moves before committing to - a partial schedule. Try the next ii if the schedule fails. - Use apply_reg_moves instead of generate_reg_moves. Adjust - call to print_node_sched_params. Free node_sched_param_vec - instead of node_sched_params. - (create_partial_schedule): Initialize reg_moves. - (free_partial_schedule): Free reg_moves. - -2011-10-10 Richard Sandiford - - * modulo-sched.c (ps_insn): Replace node field with an identifier. - (SCHED_ASAP): Replace with.. - (NODE_ASAP): ...this macro. - (SCHED_PARAMS): New macro. - (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW) - (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS. - (node_sched_params): Remove asap. - (ps_rtl_insn, ps_first_note): New functions. - (set_node_sched_params): Use XCNEWVEC. Don't copy across the - asap values. - (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP. - (generate_reg_moves): Pass ids to the SCHED_* macros. - (update_node_sched_params): Take a ps insn identifier rather than - a node as parameter. Use ps_rtl_insn. - (set_columns_for_ps): Update for above field and SCHED_* macro changes. - (permute_partial_schedule): Use ps_rtl_insn and ps_first_note. - (optimize_sc): Update for above field and SCHED_* macro changes. - Update calls to try_scheduling_node_in_cycle and - update_node_sched_params. - (duplicate_insns_of_cycles): Adjust for above field and SCHED_* - macro changes. Use ps_rtl_insn and ps_first_note. - (sms_schedule): Pass ids to the SCHED_* macros. - (get_sched_window): Adjust for above field and SCHED_* macro changes. - Use NODE_ASAP instead of SCHED_ASAP. - (try_scheduling_node_in_cycle): Remove node parameter. Update - call to ps_add_node_check_conflicts. Pass ids to the SCHED_* macros. - (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle. - (ps_insert_empty_row): Adjust for above field changes. - (compute_split_row): Use ids rather than nodes. - (verify_partial_schedule): Adjust for above field changes. - (print_partial_schedule): Use ps_rtl_insn. - (create_ps_insn): Take an id rather than a node. - (ps_insn_find_column): Adjust for above field changes. - Use ps_rtl_insn. - (ps_insn_advance_column): Adjust for above field changes. - (add_node_to_ps): Remove node parameter. Update call to - create_ps_insn. - (ps_has_conflicts): Use ps_rtl_insn. - (ps_add_node_check_conflicts): Replace node parameter than an id. - -2011-10-10 Richard Sandiford - - * modulo-sched.c (undo_replace_buff_elem): Delete. - (generate_reg_moves): Don't build and return an undo list. - (free_undo_replace_buff): Delete. - (sms_schedule): Adjust call to generate_reg_moves. - Don't call free_undo_replace_buff. - -2011-10-10 Matthias Klose - - * common/config/m32c: Remove empty directory. - -2011-10-10 Georg-Johann Lay - - * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter. - -2011-10-10 Georg-Johann Lay - - PR target/50652 - * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of - atmega164a to 0x100. - -2011-10-09 Eric Botcazou - - * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make - the replacement if the conversion to the LHS type is not useless. - -2011-10-09 Ira Rosen - - PR tree-optimization/50635 - * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add - DEF_STMT to the list of statements to be replaced by the - pattern statements. - (vect_handle_widen_mult_by_const): Don't check TYPE_OUT. - -2011-10-09 Anatoly Sokolov - - * system.h: Commit forgotten hunk in previous patch. - (OUTPUT_ADDR_CONST_EXTRA): Poison. - -2011-10-08 Nicola Pero - - PR libobjc/50428 - * doc/objc.texi (Garbage Collection): Updated example to protect - +initialize against execution in subclasses. - -2011-10-07 Richard Henderson - - * doc/extend.texi (__builtin_shuffle): Improve the description to - include the modulus of the selector. Mention OpenCL. - * doc/md.texi (vec_perm, vec_perm_const): Document named patterns. - - * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR. - * genopinit.c (optabs): Rename vshuffle to vec_perm. - * c-typeck.c (c_build_vec_perm_expr): Rename from - c_build_vec_shuffle_expr. Update for name changes. - * optabs.c (expand_vec_perm_expr_p): Rename from - expand_vec_shuffle_expr_p. - (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr. - * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle. - (vec_perm_optab): Rename from vshuffle_optab. - * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c, - c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c, - tree-ssa-operands.c, tree-vect-generic.c: Update for name changes. - - * config/i386/i386.c (ix86_expand_vec_perm): Rename from - ix86_expand_vshuffle. - * config/i386/i386-protos.h: Update. - * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2. - (vec_perm): Rename from vshuffle. - -2011-10-07 Richard Henderson - - * config/i386/predicates.md (avx2_pblendw_operand): New. - * config/i386/sse.md (sse4_1_pblendw): Un-macroize. - (avx2_pblendw, *avx2_pblendw): New expander and insn. - -2011-10-07 Richard Henderson - - * config/i386/i386.c (bdesc_args): Update code for - __builtin_ia32_palignr256. Change type of __builtin_ia32_pslldqi256, - and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT. - (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT. - * config/i386/sse.md (mode iterator V16): Add V2TI. - (mode iterator SSESCALARMODE): Use V2TI not V4DI. - (mode attr ssse3_avx2): Add V2TI. - (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove. - -2011-10-07 David S. Miller - - PR 50655 - * configure.ac: Add .register directives to VIS3 test. - * configure: Regenerate. - -2011-10-07 Richard Henderson - - * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu. - -2011-10-07 Richard Henderson - - PR 49752 - * fold-const.c (fold_checksum_tree): Remove out-of-date assert. - -2011-10-07 Andrew Stubbs - - * config/arm/predicates.md (shift_amount_operand): Remove constant - range check. - (shift_operator): Check range of constants for all shift operators. - -2011-10-07 Andreas Krebbel - - * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion. - Load GOT pointer for non-pic builds. - (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12. - (s390_emit_call): Likewise. - -2011-10-07 Tom de Vries - - PR middle-end/50527 - * tree.c (build_common_builtin_nodes): Add local_define_builtin for - BUILT_IN_ALLOCA_WITH_ALIGN. Mark that BUILT_IN_ALLOCA_WITH_ALIGN can - throw. - * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN - arglist. Set align for BUILT_IN_ALLOCA_WITH_ALIGN. - (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN. - (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN. - * tree-ssa-ccp.c (evaluate_stmt): Set align for - BUILT_IN_ALLOCA_WITH_ALIGN. - (fold_builtin_alloca_for_var): Rename to ... - (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd - BUILT_IN_ALLOCA_WITH_ALIGN argument. - (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using - fold_builtin_alloca_with_align. - (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN. - * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using - DEF_BUILTIN_STUB. - * ipa-pure-const.c (special_builtin_state): Handle - BUILT_IN_ALLOCA_WITH_ALIGN. - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1) - (call_may_clobber_ref_p_1): Same. - * function.c (gimplify_parameters): Lower vla to - BUILT_IN_ALLOCA_WITH_ALIGN. - * gimplify.c (gimplify_vla_decl): Same. - * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN. - * tree-mudflap.c (mf_xform_statements): Same. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) - (mark_all_reaching_defs_necessary_1, propagate_necessity): Same. - * varasm.c (incorporeal_function_p): Same. - * tree-object-size.c (alloc_object_size): Same. - * gimple.c (gimple_build_call_from_tree): Same. - -2011-10-07 Bernd Schmidt - - * function.c (frame_required_for_rtx): Remove function. - (requires_stack_frame_p): New arg set_up_by_prologue. All callers - changed. Compute a set of mentioned registers and compare against - the new arg rather than calling frame_required_for_rtx. - (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue - reg set. Convert the unconverted_simple_returns mechanism to store - jump insns rather than their basic blocks. Also check the - orig_entry_edge destination for new blocks. - -2011-10-07 Jakub Jelinek - - PR tree-optimization/50650 - * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't - call vect_is_simple_cond here, instead fail if cond_expr isn't - COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL - for cond_expr's first operand. - * tree-vect-stmts.c (vect_is_simple_cond): Static again. - * tree-vectorizer.h (vect_is_simple_cond): Remove prototype. - -2011-10-07 Andreas Krebbel - - * config/s390/s390.md (DWH, dwh): New mode macros. - ("umulsidi3"): Extend to support "umulditi3" as well. - -2011-10-07 Uros Bizjak - H.J. Lu - - PR target/50603 - * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of - integer PLUS RTX to a register to improve address combine. - -2011-10-06 Richard Henderson - - * combine-stack-adjust.c (maybe_move_args_size_note): Add after - parameter; use it to decide whether to merge two notes. - (combine_stack_adjustments_for_block): Use maybe_move_args_size_note - for the deallocation case as well. - -2011-10-06 Anatoly Sokolov - - * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison. - * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation. - * doc/tm.texi: Regenerate. - * target.def (output_addr_const_extra): Use - hook_bool_FILEptr_rtx_false. - * targhooks.c (default_asm_output_addr_const_extra): Remove. - * targhooks.h (default_asm_output_addr_const_extra): Remove. - * hooks.c (hook_bool_FILEptr_rtx_false): New functions. - * hooks.h (hook_bool_FILEptr_rtx_false): Declare. - -2011-10-06 David S. Miller - - * config/sparc/sparc.md (popcount2, clz2): Split up into... - (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the - SI mode 64-bit code gen case explicitly zero-extend and truncate. - (*popcount_sp64): Split up into... - (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the - SImode case use truncate. - (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the - subtract so the compiler can optimize it. - (SIDI): Remove unused mode iterator. - -2011-10-06 Bernd Schmidt - - * function.c (thread_prologue_and_epilogue_insns): Emit split prologue - on the orig_entry_edge. Don't account for it in prologue_clobbered. - -2011-10-06 Jakub Jelinek - - PR tree-optimization/50596 - * tree-vectorizer.h (vect_is_simple_cond): New prototype. - (NUM_PATTERNS): Change to 6. - * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New - function. - (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern. - (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt - if it already has one, and don't set STMT_VINFO_VECTYPE in it - if it is already set. - * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle - COND_EXPR in pattern stmts. - (vect_is_simple_cond): No longer static. - -2001-10-06 Richard Henderson - - * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support. - * config/i386/sse.md (sseshuffint): Remove. - (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI. - (VSHUFFLE_AVX2): New mode iterator. - (vshuffle): Use it. - (avx_vec_concat): Rename from *vec_concat_avx. - - * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode - for vector_all_ones_operand. - (ix86_expand_int_vcond): Distinguish between comparison mode - and data mode. Allow them to differ. - (ix86_expand_vshuffle): Don't force data mode to match maskmode. - -2001-10-06 Richard Henderson - - * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the - mask operand. Tidy the code. - -2011-10-06 Jakub Jelinek - - * tree-vect-patterns.c (vect_pattern_recog_1): Use - vect_recog_func_ptr typedef for the first argument. - (vect_pattern_recog): Rename vect_recog_func_ptr variable - to vect_recog_func, use vect_recog_func_ptr typedef for it. - - PR tree-optimization/49279 - * tree-ssa-structalias.c (find_func_aliases): Don't handle - CAST_RESTRICT. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow - restrict propagation. - * tree-ssa.c (useless_type_conversion_p): Don't return false - if TYPE_RESTRICT differs. - -2011-10-06 Bernd Schmidt - - * function.c (thread_prologue_and_epilogue_insns): Build a vector - of unconverted simple return blocks rather than trying to - recompute them later based on bb_flags bitmap tests. - -2011-10-06 Michael Matz - - * tree-flow.h (get_var_ann): Don't declare. - * tree-flow-inline.h (get_var_ann): Remove. - (set_is_used): Use var_ann, not get_var_ann. - * tree-dfa.c (add_referenced_var): Inline body of get_var_ann. - * tree-profile.c (gimple_gen_edge_profiler): Call - find_referenced_var_in. - (gimple_gen_interval_profiler): Ditto. - (gimple_gen_pow2_profiler): Ditto. - (gimple_gen_one_value_profiler): Ditto. - (gimple_gen_average_profiler): Ditto. - (gimple_gen_ior_profiler): Ditto. - (gimple_gen_ic_profiler): Ditto plus call add_referenced_var. - (gimple_gen_ic_func_profiler): Call add_referenced_var. - * tree-mudflap.c (execute_mudflap_function_ops): Call - add_referenced_var. - -2011-10-06 Jakub Jelinek - - * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs - don't set SSA_NAME_DEF_STMT that has been already set by - gimple_build_assign_with_ops. - (vect_recog_pow_pattern, vect_recog_widen_sum_pattern, - vect_operation_fits_smaller_type, vect_recog_over_widening_pattern): - Likewise. - - * tree.h (avoid_folding_inline_builtin): New prototype. - * builtins.c (avoid_folding_inline_builtin): No longer static. - * gimple-fold.c (gimple_fold_builtin): Give up if - avoid_folding_inline_builtin returns true. - -2011-10-06 Richard Guenther - - * tree-vect-generic.c (vector_element): Look at previous - generated results. - -2011-10-06 David Edelsohn - - PR target/39950 - * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define - __powerpc__, __PPC__, __unix__. - -2011-10-06 Michael Matz - - * i386/i386.opt (recip_mask, recip_mask_explicit, - x_recip_mask_explicit): New variables and cl_target member. - (mrecip=): New option. - * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV, - RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks. - (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV, - TARGET_RECIP_VEC_SQRT): New tests. - * i386/i386.md (divsf3): Check TARGET_RECIP_DIV. - (sqrt2): Check TARGET_RECIP_SQRT. - * i386/sse.md (div3): Check TARGET_RECIP_VEC_DIV. - (sqrt2): Check TARGET_RECIP_VEC_SQRT. - * i386/i386.c (ix86_option_override_internal): Set recip_mask - for -mrecip and -mrecip=options. - (ix86_function_specific_save): Save recip_mask_explicit. - (ix86_function_specific_restore): Restore recip_mask_explicit. - - * doc/invoke.texi (ix86 Options): Document the new option. - -2011-10-06 Bernd Schmidt - - PR target/49049 - * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. - -2011-10-06 Ulrich Weigand - - PR target/50305 - * config/arm/arm.c (arm_legitimize_reload_address): Recognize - output of a previous pass through legitimize_reload_address. - Do not attempt to optimize addresses if the base register is - equivalent to a constant. - -2011-10-06 Andreas Krebbel - - * function.c (thread_prologue_and_epilogue_insns): Mark - last_bb_active as possibly unused. It is unused for targets which - do neither have "return" nor "simple_return" expanders. - -2011-10-06 Richard Guenther - - * fold-const.c (fold_ternary_loc): Also fold non-constant - vector CONSTRUCTORs. Make more efficient. - * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands. - (cprop_into_stmt): Don't propagate into virtual operands. - (optimize_stmt): Really dump original statement. - -2011-10-06 Nick Clifton - - * config/rx/rx.md (smin3): Revert previous delta. - -2011-10-06 Richard Guenther - - PR tree-optimization/38884 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial - reads from aggregate SSA names. - -2011-10-05 Jakub Jelinek - - * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace - argument, truncate it at the beginning instead of allocating there - and freeing at the end. - (vect_pattern_recog): Allocate stmts_to_replace here and free at end, - pass its address to vect_pattern_recog_1. - -2011-10-05 David S. Miller - - * config/sparc/sparc.opt (POPC): New option. - * doc/invoke.texi: Document it. - * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by - default on Niagara-2 and later. - * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. - * config/sparc/sparc.md (SIDI): New mode iterator. - (ffsdi2): Delete commented out pattern and comments. - (popcount2, clz2): New expanders. - (*popcount_sp64, popcountsi_v8plus, popcountdi_v8plus, - *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns. - -2011-10-06 Artjoms Sinkarovs - - PR middle-end/50607 - * c-tree.h (c_expr_t): New typedef for struct c_expr. - (C_EXPR_APPEND): New macro. - * c-parser.c (c_parser_get_builtin_args): Preserve - original_tree_code of c_expr structure. - (c_parser_postfix_expression): Adjust to the new function. - -2011-10-05 Bernd Schmidt - - * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap - if profiling after the prologue. - -2011-10-05 Jakub Jelinek - - PR tree-optimization/50613 - * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT - operand is ADDR_EXPR, fallthru into ADDR_EXPR handling, - and if it is neither that not SSA_NAME, give up. - -2011-10-05 Richard Henderson - - * tree-vect-generic.c (vector_element): Never fail. Use - build_zero_cst. Tidy up type references. - (lower_vec_shuffle): Never fail. Mask shuffle indicies. Reduce - code duplication. Do update_stmt here ... - (expand_vector_operations_1): ... not here. - - * config/i386/i386.c (ix86_expand_vshuffle): Never fail. Handle - TARGET_XOP. Fix pshufb constant vector creation. Reduce code - duplication. Handle V2DI without SSE4.1. - * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl. - * config/i386/i386.md (vshuffle): Remove assert for ok. - -2011-10-05 Uros Bizjak - - * config/i386/i386.c (distance_non_agu_define): Simplify calculation - of "found". Simplify return value calculation. - (distance_agu_use): Ditto. - -2011-10-05 Bernd Schmidt - - PR bootstrap/50621 - * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only - if the function was not shrink-wrapped. - (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached - to an insn. - * function.c (thread_prologue_and_epilogue_insns): Make sure the - shrink_wrapped flag is set even if there is no dump file. - -2011-10-05 DJ Delorie - Nick Clifton - - * config/rx/rx.opt (mpid): Define. - * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid - (MULTILIB_DIRNAMES): Add pid. - * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val) - (rx_num_interrupt_regs): New variable. - (rx_gp_base_regnum): New function. Returns the number of the - small data area register. - (rx_pid_base_regnum): New function. Returns the number of the pid - base register. - (rx_decl_for_addr): New function. Returns the symbolic part of a MEM. - (rx_pid_data_operand): New function. Returns whether an object is - in the position independent data area. - (rx_legitimize_address): New function. Puts undecided PID - objects in the PID data area. - (rx_is_legitimate_address): Add support for PID operands. - (rx_print_operand_address): Likewise. - (rx_print_operand): Likewise. - (rx_maybe_pidify_operand): New function. Determine if an operand - is suitable for PID addressing. - (rx_gen_move_template): Add PID support. - (rx_conditional_register_usage): Likewise. - (rx_option_override): Initialise rx_num_interrupt_regs. - (rx_is_legitimate_constant): Add support for PID constants. - (TARGET_LEGITIMIZE_ADDRESS): Define. - * config/rx/constraints.md (Rpid): Define. - (Rpda): Define. - * config/rx/rx.md (UNSPEC_PID_ADDR): Define. - (tablejump): Add PID support. - (mov<>): Likewise. - (mov<>_internal): Likewise. - (addsi3): Convert to an expander. Add PID support. - (pid_addr): New pattern. - * config/rx/rx.h (CPP_SPEC): Define. - (ASM_SPEC): Pass -mpid and -mint-register on to assembler. - (CASE_VECTOR_PC_RELATIVE): Define. - (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode. - * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype. - * doc/invoke.texi (RX Options): Document -mpid command line option. - -2011-10-05 Richard Guenther - - PR tree-optimization/38885 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads - from constants. - -2011-10-05 Bernd Schmidt - - * doc/invoke.texi (-fshrink-wrap): Document. - * opts.c (default_options_table): Add it. - * common.opt (fshrink-wrap): Add. - * function.c (emit_return_into_block): Remove useless declaration. - (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx, - requires_stack_frame_p, gen_return_pattern): New static functions. - (emit_return_into_block): New arg simple_p. All callers changed. - Use gen_return_pattern. - (thread_prologue_and_epilogue_insns): Implement shrink-wrapping. - * config/i386/i386.md (return): Expand into a simple_return. - (simple_return): New expander): - (simple_return_internal, simple_return_internal_long, - simple_return_pop_internal_long, simple_return_indirect_internal): - Renamed from return_internal, return_internal_long, - return_pop_internal_long and return_indirect_internal; changed to use - simple_return. - * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand - simple returns. - (ix86_pad_returns): Likewise. - * function.h (struct rtl_data): Add member shrink_wrapped. - * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that - are not jumps or sibcalls can't be compared. - -2011-10-05 Richard Guenther - - * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of - vector type. - (simplify_unary_expression): Handle BIT_FIELD_REFs. - (try_to_simplify): Handle BIT_FIELD_REFs. - -2011-10-05 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_out_addto_sp): New prototype. - * config/avr/avr.c (avr_out_addto_sp): New function. - (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP. - * config/avr/avr.md (adjust_len): Add "addto_sp". - (*movhi_sp): Remove insn. - (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R. - -2011-10-05 Richard Guenther - - * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops - with an embedded expression valueize and fold that as well. - * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name - results from gimple_fold_stmt_to_constant_1. - -2011-10-05 Nick Clifton - - * config/rx/rx.md (tablejump): Add missing label. - (adddi3_internal): Mark operand 0 as early-clobbered. - (smaxsi3): Revert previous delta. - (adc_internal): Fix whitespace in generated asm. - (adc_flags): Likewise. - -2011-10-05 Andreas Krebbel - - * expmed.c (expand_mult_highpart_optab): Replace optab_handler - with the new widening_optab_handler. - -2011-10-05 Richard Guenther - - PR tree-optimization/50609 - * gimple-fold.c (fold_array_ctor_reference): Also handle - vector typed constructors. - (fold_ctor_reference): Dispatch to fold_array_ctor_reference - for vector typed constructors. - -2011-10-05 Uros Bizjak - - * config/i386/i386.c (ix86_emit_binop): New static function. - (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl - instructions. - (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions. - -2011-10-04 David S. Miller - - * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB, - UNSPEC_XMUL): New unspecs. - (muldi3_v8plus): Use output_v8plus_mult. - (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend): - New VIS 3.0 combiner patterns. - (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis, - fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64, - umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus, - xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0 - builtins patterns. - * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins. - (output_v8plus_mult): New function. - * config/sparc/sparc-protos.h: Declare it. - * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd, - __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd, - __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics. - * doc/extend.texi: Document new builtins. - -2011-10-04 Richard Henderson - - * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable. - Avoid save_expr unless two_arguments. - -2011-10-04 Ozkan Sezer - - * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT. - * config/i386/mingw32.h (CPP_SPEC): Likewise. - -2011-10-04 David S. Miller - - * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc - under Linux. - -2011-10-04 Jakub Jelinek - - PR tree-optimization/50604 - * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy, - fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure - last argument to memcpy has size_type_node type instead of ssizetype. - * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node - instead of TREE_TYPE (len) as type for newlen. - - PR tree-optimization/50522 - * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test - TYPE_RESTRICT. - (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base - unconditionally. - - * fold-const.c (fold_unary_loc): Don't optimize - POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by - casting the inner pointer if it isn't TYPE_RESTRICT. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through - casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer. - -2011-10-04 Joseph Myers - - * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff. - -2011-10-04 Jan Hubicka - - * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter. - * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order. - * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order. - * lto-cgraph.c (order_base): New static var. - (lto_output_node): Stream in order. - (lto_output_varpool_node): Stream out order. - (input_node): Stream in order. - (input_varpool_node): Stream out order. - (input_cgraph_1): Initialize order base; update call of - lto_input_toplevel_asms. - -2011-10-04 Georg-Johann Lay - - PR target/50566 - * config/avr/avr-protos.h (avr_legitimize_reload_address): New - prototype. - * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code - from here... - * config/avr/avr.c (avr_legitimize_reload_address) ...to this new - function. Log if avr_log.legitimize_reload_address. - -2011-10-04 Eric Botcazou - - * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests. - -2011-10-04 Andreas Krebbel - - * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local - variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd. - -2011-10-03 David S. Miller - - * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make - GSR_REG an input operand to UNSPEC instead of a parallel USE. - (faligndata_vis): Likewise and use DI mode. - (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis): - Reference GSR_REG in DI mode, simplify convoluted expressions by using - zero_extract. - (bshuffle_vis): Reference GSR_REG in DI mode. - -2011-10-03 Maxim Kuvyrkov - - * tree-eh.c (remove_unreachable_handlers): Obvious cleanup. - -2011-10-03 Jakub Jelinek - Ian Lance Taylor - - * godump.c (go_output_typedef): Support printing enum values that - don't fit in a signed HOST_WIDE_INT. - -2011-10-03 Anatoly Sokolov - - * config/cris/cris.c (cris_output_addr_const_extra): Make static. - (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. - * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove. - * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove. - -2011-10-03 Anatoly Sokolov - - * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static. - (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. - * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove. - * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove. - -2011-10-03 Steve Ellcey - - PR target/49967 - * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*. - (gcc_cv_ld_static_option): Ditto. - (gcc_cv_ld_dynamic_option): Ditto. - * configure: Regenerate. - -2011-10-03 David S. Miller - - * config/sparc/sparc.md (bmask_vis): Split into explicit 'di' - and 'si' patterns which describe the GSR changes explicitly in the - RTL using zero_extract. - (bshuffle_vis): Put the GSR use inside of the unspec. - - * config/sparc/sparc.md (bshuffle_vis): Don't wrap - GSR_REG in a USE, since it's now a true arg to the UNSPEC. - -2011-10-03 Artjoms Sinkarovs - - * optabs.c (expand_vec_shuffle_expr_p): New function. Checks - if given expression can be expanded by the target. - (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR - using target vector instructions. - * optabs.h: New optab vshuffle. - (expand_vec_shuffle_expr_p): New prototype. - (expand_vec_shuffle_expr): New prototype. - (vshuffle_optab): New optab. - * genopinit.c: Adjust to support vecshuffle. - * c-tree.h (c_build_vec_shuffle_expr): New prototype. - * expr.c (expand_expr_real_2): Adjust. - * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR - recognizing the cases of two and three arguments. - (convert_arguments) (build_binary_op) - (scalar_to_vector) (build_array_ref): Spurious whitespace. - * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR. - * tree.def: New tree code VEC_SHUFFLE_EXPR. - * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR. - * tree-vect-generic.c (vector_element): New function. Returns an - element of the vector at the given position. - (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported - by the backend or expand an expression piecewise. - (expand_vector_operations_1): Adjusted. - (gate_expand_vector_operations_noop): New gate function. - * Makefile.in (tree-vect-generic.o): New include. - * gimple.c (get_gimple_rhs_num_ops): Adjust. - * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR. - * passes.c: Move veclower down. - * tree-pretty-print.c (dump_generic_node): Recognize - VEC_SHUFFLE_EXPR as valid expression. - * c-parser.c (c_parser_get_builtin_args): Helper function for the - builtins with variable number of arguments. - (c_parser_postfix_expression): Use a new helper function for - RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE. - * tree-ssa-operands: Adjust. - * c-family/c-common.c: New __builtin_shuffle keyword. - * c-family/c-common.h: New __builtin_shuffle keyword. - * gcc/doc/extend.texi: Adjust. - - * gcc/config/i386/sse.md: (sseshuffint) New mode_attr. Correspondence - between the vector and the type of the mask when shuffling. - (vecshuffle): New expansion. - * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype. - * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function. - (ix86_vectorize_builtin_vec_perm_ok): Adjust. - -2011-10-03 Jakub Jelinek - - PR tree-optimization/50587 - * tree-ssa-reassoc.c (init_range_entry): Stop iterating when - arg0 is not a SSA_NAME. - -2011-10-03 Richard Sandiford - - * ipa-inline-analysis.c (MAX_TIME): Update comment. - -2011-10-02 Richard Henderson - David S. Miller - - * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove - conditional insn type setting, we always emit a shift. - (*ashlsi3_extend, *lshrsi3_extend0): New patterns. - (*lshrsi3_extend): Rename to *lshrsi3_extend1. - * config/sparc/predicates.md (const_one_operand): Delete. - -2011-10-02 Gerald Pfeifer - - * invoke.texi (SPARC Options): Refer to GNU/Linux. - -2011-10-02 Richard Sandiford - - * config/mips/mips.c (mips_frame_barrier): New function. - (mips_expand_prologue): Call it after allocating stack space. - (mips_deallocate_stack): New function. - (mips_expand_epilogue): Call mips_frame_barrier and - mips_deallocate_stack. - -2011-10-02 Richard Sandiford - - PR target/49696 - * config/mips/sync.md (sync__12): Allow zero operands. - (sync_old__12, sync_new__12, sync_nand_12): Likewise. - (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise. - -2011-10-02 Jan Hubicka - - * cgraphunit.c (verify_edge_count_and_frequency): Bounds check. - - * cgraphunit.c (ipa_passes): Remove unrechable nodes. - * lto-streamer-out.c (produce_symtab): Skip unused extern declarations. - * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external - functions are reachable when address is taken. - * tree-sra.c (modify_function): Free dominance info. - -2011-10-02 Jan Hubicka - - * ipa-inline-analysis.c (inline_summary_alloc): Bounds check. - - * ipa-inline-analysis.c (reset_inline_edge_summary): New function. - (reset_inline_summary): New function. - (compute_inline_parameters, inline_node_removal_hook, - inline_edge_removal_hook): Use it. - (inline_free_summary): Reset holders correctly. - (inline_generate_summary): Free summary before computing it. - -2011-10-02 Paolo Carlini - - PR preprocessor/36819 - * incpath.c (merge_include_chains): Call free_path on - heads[QUOTE] and tails[QUOTE]. - -2011-10-02 Jan Hubicka - - PR lto/47247 - * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve - when resolution is already availbale from plugin. - (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP. - * cgraph.c (ld_plugin_symbol_resolution): Add - prevailing_def_ironly_exp. - * lto-cgraph.c (LDPR_NUM_KNOWN): Update. - * ipa.c (varpool_externally_visible_p): IRONLY variables are never - externally visible. - * varasm.c (resolution_to_local_definition_p): Add - LDPR_PREVAILING_DEF_IRONLY_EXP. - (resolution_local_p): Likewise. - -2011-10-01 David S. Miller - - * config/sparc/sparc.opt (VIS3): New option. - * doc/invoke.texi: Document it. - * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is - not capable of such instructions. - * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ - to 0x300 when TARGET_VIS3. - * config/sparc/sparc-modes.def: Create 16-byte vector modes. - * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32, - UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs. - (V64N8, VASS): New mode iterators. - (vis3_shift, vis3_addsub_ss): New code iterators. - (vbits, vconstr): New mode attributes. - (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes. - (cmask8_vis, cmask16_vis, cmask32_vis, - fchksm16_vis, _vis, pdistn_vis, - fmean16_vis, fpadd64_vis, fpsub64_vis, - _vis, fucmp8_vis): New - VIS 3.0 instruction patterns. - * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by - default when targetting capable cpus. TARGET_VIS3 implies - TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled. - (sparc_vis_init_builtins): Emit new VIS 3.0 builtins. - (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result - is ignored. - * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16, - __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16, - __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32, - __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16, - __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s, - __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s, - __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8, - __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces. - * doc/extend.texi: Document new VIS 3.0 builtins. - -2011-10-01 Eric Botcazou - - * ira-color.c (assign_hard_reg): Fix typo. - -2011-09-30 H.J. Lu - - * doc/extend.texi: Add missing ','. - -2011-09-30 Bernd Schmidt - - * common/config/c6x/c6x-common.c (c6x_option_optimization_table): - Enable -fmodulo-sched at -O2 and above. - * config/c6x/c6x.md (doloop_end): New expander. - (mvilc, sploop, spkernel, loop_end): New patterns. - (loop_end with memory destination splitter): New. - * config/c6x/c6x.c: Include "hw-doloop.h". - (enum unitreqs): New. - (unit_req_table): New typedef. - (unit_reqs): New static variable. - (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs, - res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch, - hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above, - hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions. - (struct c6x_sched_context): New member last_scheduled_iter0. - (init_sched_state): Initialize it. - (c6x_variable_issue): Update it. - (sploop_max_uid_iter0): New static variable. - (c6x_sched_reorder_1): Be careful about issuing sploop. - (c6x_reorg): Call c6x_hwlooops before the final schedule. - -2011-09-30 Georg-Johann Lay - - PR target/50566 - * config/avr/avr-protos.h (avr_log_t): New field address_cost. - * config/avr/avr.c (avr_address_cost): Use it. - * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it. - (avr_log_vadump): Unknown %-codes finish printing. - -2011-09-30 Jakub Jelinek - - PR inline-asm/50571 - * gimple-fold.c (fold_stmt_1) : If - input constraints allow mem and not reg, pass true instead of - false as second argument to maybe_fold_reference. - - PR tree-optimization/46309 - * fold-const.c (make_range, merge_ranges): Remove prototypes. - (make_range_step): New function. - (make_range): Use it. - * tree.h (make_range_step): New prototypes. - * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H). - * tree-ssa-reassoc.c: Include diagnostic-core.h. - (struct range_entry): New type. - (init_range_entry, range_entry_cmp, update_range_test, - optimize_range_tests): New functions. - (reassociate_bb): Call optimize_range_tests. - -2011-09-30 Jakub Jelinek - Richard Guenther - - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle - BUILT_IN_STRDUP and BUILT_IN_STRNDUP. - * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix - handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK. - (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT, - BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK. - -2011-09-30 Jan Beulich - - * lto-cgraph.c (output_cgraph): Remove processing of - 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead. - (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call - lto_input_toplevel_asms() instead. - * lto-section-in.c (lto_section_name): Add "asm" entry. - * lto-streamer-in.c (lto_input_toplevel_asms): New. - * lto-streamer-out.c (lto_output_toplevel_asms): New. - * lto-streamer.h (LTO_minor_version): Bump. - (enum lto_section_type): Add LTO_section_asm. - (struct lto_asm_header): New. - (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare. - * tree-streamer.h (streamer_write_string_cst): Declare. - * tree-streamer-out.c (write_string_cst): Rename to - streamer_write_string_cst and make global. Handle incoming string - being NULL. - (streamer_write_tree_header): Adjust call to renamed function. - -2011-09-30 Bernd Schmidt - - * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns, - modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left, - modulo_last_stage): New static variables. - (set_modulo_params, discard_delay_pairs_above): New functions. - (struct delay_pair): New member stages. - (htab_i2_traverse, htab_i1_traverse): New static functions. - (record_delay_slot_pair): New arg stages. All callers changed. - Record it. - (pair_delay): Take stages into account. - (add_delay_dependencies): Don't do so for stage pairs. - (struct sched_block_state): New member modulo_epilogue. - (save_backtrack_point): Don't set SHADOW_P for stage pairs. - (unschedule_insns_until): Decrease modulo_insns_scheduled. - Set HARD_DEP without using or. - (resolve_dependencies): New static function. - (prune_ready_list): New arg modulo_epilogue_p. All callers changed. - If it is true, allow only insns with INSN_EXACT_TICK set. - (schedule_block): Return bool, always true for normal scheduling, - true or false depending on modulo scheduling success otherwise. - Add bookkeeping for modulo scheduling, and call resolve_dependencies - on everything left over after a modulo schedule. - (haifa_sched_init): Remove check_cfg call. Clear modulo_ii. - * sched-int.h (schedule_block, record_delay_slot_pair): Adjust - declarations. - (set_modulo_params, discard_delay_pairs_above): Declare. - * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New. - * doc/invoke.texi (--param): Document it. - - * sched-ebb.c (schedule_ebb): No longer static. Remove declaration. - New arg modulo_scheduling. All callers changed. Move note handling - code here from schedule_ebbs. - (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken - out of schedule_ebbs. - (schedule_ebbs): Call them. Remove note handling code moved to - schedule_ebb. - * sched-int.h (schedule_ebb, schedule_ebbs_init, - schedule_ebbs_finish): Declare. - -2011-09-30 Richard Guenther - - PR middle-end/50574 - * tree-cfg.c (verify_gimple_comparison): Compare component - mode sizes for vector comparisons. - -2011-09-30 Revital Eres - - * ddg.c (autoinc_var_is_used_p): New function. - (create_ddg_dep_from_intra_loop_link, - add_cross_iteration_register_deps): Call it. - * ddg.h (autoinc_var_is_used_p): Declare. - * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p. - (sms_schedule): Handle instructions with REG_INC. - -2011-09-30 Revital Eres - - * modulo-sched.c (generate_reg_moves): Skip instructions that - do not set a register and verify no regmoves are created for - !single_set instructions. - -2011-09-30 Bernd Schmidt - - * hw-doloop.c (scan_loop): Compute register usage only for non-debug - insns. - -2011-09-30 Ramana Radhakrishnan - - PR target/50099 - * config/arm/iterators.md (qhs_zextenddi_cstr): New. - (qhs_zextenddi_op): New. - * config/arm/arm.md ("zero_extenddi2"): Use them. - * config/arm/predicates.md ("arm_extendqisi_mem_op"): - Distinguish between ARM and Thumb2 states. - -2011-09-30 David S. Miller - - * config/sparc/sparc.opt (VIS2): New option. - * doc/invoke.texi: Document it. - * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN, - UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N, - UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs. - (define_attr type): New insn type 'edgen'. - (bmask_vis, bshuffle_vis, edge8n_vis, - edge8ln_vis, edge16n_vis, edge16ln_vis, - edge32n_vis, edge32ln_vis): New insn VIS 2.0 - patterns. - * niagara.md: Handle edgen. - * niagara2.md: Likewise. - * ultra1_2.md: Likewise. - * ultra3.md: Likewise. - * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ - to 0x200 when TARGET_VIS2. - * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by - default when targetting capable cpus. TARGET_VIS2 implies - TARGET_VIS, clear and it when TARGET_FPU is disabled. - (sparc_vis_init_builtins): Emit new VIS 2.0 builtins. - (sparc_expand_builtin): Fix predicate indexing when builtin returns - void. - (sparc_fold_builtin): Do not eliminate bmask when result is ignored. - * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi, - __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi, - __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln, - __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces. - * doc/extend.texi: Document new VIS 2.0 builtins. - -2011-09-29 Nick Clifton - Bernd Schmidt - - * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file. - * config/frv/frvend.c: Likewise. - * config/frv/frv.c (frv_function_prologue): Move misplaced - CALL_ARG_LOCATION notes back to their proper locations. - -2011-09-29 Georg-Johann Lay - - PR target/50566 - * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool. - * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed - from avr_rtx_costs. - (avr_legitimate_address_p): Use avr_edump to print log information - filtered by avr_log. - (extra_constraint_Q): Ditto. - (avr_legitimize_address): Ditto. - (avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1. - (final_prescan_insn): Use avr_log.rtx_costs as filter. - -2011-09-29 Richard Sandiford - - * config/arm/arm-protos.h (arm_modes_tieable_p): Declare. - * config/arm/arm.h (MODES_TIEABLE_P): Use it. - * config/arm/arm.c (arm_modes_tieable_p): New function. Allow - NEON vector and structure modes to be tied. - -2011-09-29 Bill Schmidt - - * graphite-scop-detection.c (make_close_phi_nodes_unique): New - forward declaration. - (remove_duplicate_close_phi): Detect and repair creation of - duplicate close-phis for a containing loop. - -2011-09-27 Andi Kleen - - * gcc.c (get_local_tick). Rename to get_random_number. Read from - /dev/urandom. Add getpid call. - (compare_debug_dump_opt_spec_function): Drop getpid call. - -2011-09-26 Andi Kleen - - * toplev.c (init_local_tick): Try reading random seed - from /dev/urandom. - -2011-09-26 Andi Kleen - - * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add. - * lto-streamer.c (lto_get_section_name): Remove crc32_string. - Handle numerical random seed. - * lto-streamer.h (lto_file_decl_data): Change id to - unsigned HOST_WIDE_INT. - * toplev.c (random_seed): Add. - (init_random_seed): Change for numerical random seed. - (get_random_seed): Return as HOST_WIDE_INT. - (set_random_seed): Crc32 existing string. - * toplev.h (get_random_seed): Change to numercal return. - * tree.c (get_file_function_name): Remove CRC. Handle - numerical random seed. - -2011-09-29 Georg-Johann Lay - - PR target/50566 - * config.gcc (extra_objs): Add avr-log.o for $target in: - avr-*-rtems*, avr-*-*. - * config/avr/t-avr (avr-log.o): New rule to compile... - * config/avr/avr-log.c: ...this new file. - * config/avr/avr.opt (mlog=): New option. - * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros. - (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes. - (avr_log_set_avr_log): New prototype. - (avr_log_t): New typedef. - (avr_log): New declaration. - * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log. - -2011-09-29 Artjoms Sinkarovs - - * expr.c (do_store_flag): Expand vector comparison by - building an appropriate VEC_COND_EXPR. - * c-typeck.c (build_binary_op): Typecheck vector comparisons. - (c_objc_common_truthvalue_conversion): Adjust. - * tree-vect-generic.c (do_compare): Helper function. - (expand_vector_comparison): Check if hardware supports - vector comparison of the given type or expand vector piecewise. - (expand_vector_operation): Treat comparison as binary - operation of vector type. - (expand_vector_operations_1): Adjust. - -2011-09-29 Richard Guenther - - * tree.c (build_opaque_vector_type): Make opaque vectors - variant types of the corresponding non-opaque type. Make - sure to share opaque vector types properly. - -2011-09-29 David S. Miller - - * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16, - UNSPEC_ARRAY32): New unspec. - (define_attr type): New type 'array'. - (array{8,16,32}_vis): New patterns. - * config/sparc/ultra1_2.md: Add reservations for 'array'. - * config/sparc/ultra3.md: Likewise. - * config/sparc/niagara.md: Likewise. - * config/sparc/niagara2.md: Likewise. - * config/sparc/sparc.c (sparc_vis_init_builtins): Build new - array builtins. - * config/sparc/visintrin.h (__vis_array8, __vis_array16, - __vis_array32): New. - * doc/extend.texi: Document new VIS builtins. - - * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr. - (VIS pixel-compare insn): Just use . - - * config/sparc/sparc.md (VIS pixel-compare insn): There is only one - code iterator used, so just use . There are two mode iterators - so explicitly use . - -2011-09-29 Iain Sandoe - - * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for - Darwin >= 9. - -2011-09-28 David S. Miller - - * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, - UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to... - (UNSPEC_FCMP): New unspec. - (gcond): New code iterator. - (gcond_name): New code attr. - (GCM): New mode iterator. - (gcm_name): New mode attr. - (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators. - -2011-09-28 Oleg Endo - - PR target/49486 - * config/sh/sh.md (negdi2): Move expansion into split to - allow more combination options. Add T_REG clobber. - (abssi2): New expander. - (*negdi2, *abssi2, *negabssi2): New insns. - (cneg): Change from insn to insn_and_split. Rename to - negsi_cond. Add alternative for non-SH4. - -2011-09-28 Richard Sandiford - - * config/arm/neon.md (neon_move_lo_quad_): Delete. - (neon_move_hi_quad_): Likewise. - (move_hi_quad_, move_lo_quad_): Use subreg moves. - -2011-09-28 Nick Clifton - - * config/rx/predicates.md (rx_minmax_operand): New predicate. - Accepts immediates and a restricted subset of MEMs. - * config/rx/rx.md (int_modes): New iterator. - (smaxsi3, sminsi3): Delete and replace with... - (smax3, smin3): New patterns. - (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns. - -2011-09-28 Richard Guenther - - PR middle-end/50460 - * fold-const.c (try_move_mult_to_index): Handle &a.array the - same as &a.array[0]. - -2011-09-28 Kai Tietz - - * configure.ac: Add test for new section attribute - specifier "e" via define HAVE_GAS_SECTION_EXCLUDE. - * config.in: Regenerated. - * configure: Regenerated. - * config/i386/winnt.c (i386_pe_asm_named_section): Emit - new section flag "e" for excluded sections, if supported. - Otherwise we mark section withc SECTION_EXCLUDE flag as never-load. - -2011-09-28 Richard Sandiford - - * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-28 Richard Sandiford - - * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-27 Sriraman Tallam - - * output.h (SECTION_EXCLUDE): New macro. - * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE. - -2011-09-27 Richard Sandiford - - * fwprop.c (forward_propagate_and_simplify): After checking - reg/subreg combinations, check whether the modes are the same. - -2011-09-27 Bernd Schmidt - Richard Sandiford - - * config/mips/mips.c (mips_add_cfa_restore): New function. - (mips16e_save_restore_reg): Use it. - (mips_restore_reg): Likewise. Split double FPRs for - REG_CFA_RESTORE notes. - -2011-09-27 Richard Sandiford - - PR middle-end/50386 - PR middle-end/50326 - * tree-sra.c (build_ref_for_model): Use the type of the field as - the type of the COMPONENT_REF. - -2011-09-27 Jeff Law - - * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale - non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE. - (find_if_case_1): Use the probability of the THEN clause when - determining if speculation is profitable. - (find_if_case_2): Similarly for the ELSE clause. - -2011-09-27 Jakub Jelinek - - * common.opt: Add -foptimize-strlen option. - * Makefile.in (OBJS): Add tree-ssa-strlen.o. - (tree-sssa-strlen.o): Add dependencies. - * opts.c (default_options_table): Enable -foptimize-strlen - by default at -O2 if not -Os. - * passes.c (init_optimization_passes): Add pass_strlen - after pass_object_sizes. - * timevar.def (TV_TREE_STRLEN): New timevar. - * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter. - * tree-pass.h (pass_strlen): Declare. - * tree-ssa-strlen.c: New file. - * c-decl.c (merge_decls): If compatible stpcpy prototype - is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. - -2011-09-27 Tom de Vries - - PR middle-end/43864 - * tree-ssa-tail-merge.c: New file. - (struct same_succ_def): Define. - (same_succ, const_same_succ): New typedef. - (struct bb_cluster_def): Define. - (bb_cluster, const_bb_cluster): New typedef. - (struct aux_bb_info): Define. - (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define. - (gvn_uses_equal): New function. - (same_succ_print, same_succ_print_traverse, update_dep_bb) - (stmt_update_dep_bb, local_def, same_succ_hash) - (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete) - (same_succ_reset): New function. - (same_succ_htab, same_succ_edge_flags) - (deleted_bbs, deleted_bb_preds): New var. - (debug_same_succ): New function. - (worklist): New var. - (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ) - (init_worklist, delete_worklist, delete_basic_block_same_succ) - (same_succ_flush_bbs, purge_bbs, update_worklist): New function. - (print_cluster, debug_cluster, update_rep_bb) - (add_bb_to_cluster, new_cluster, delete_cluster): New function. - (all_clusters): New var. - (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors) - (merge_clusters, set_cluster): New function. - (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate) - (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi) - (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect) - (find_clusters_1, find_clusters): New function. - (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function. - (update_bbs): New var. - (apply_clusters): New function. - (update_debug_stmt, update_debug_stmts): New function. - (tail_merge_optimize): New function. - tree-pass.h (tail_merge_optimize): Declare. - * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize. - * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o. - (tree-ssa-tail-merge.o): New rule. - * opts.c (default_options_table): Set OPT_ftree_tail_merge by - default at OPT_LEVELS_2_PLUS. - * tree-ssa-sccvn.c (vn_valueize): Move to ... - * tree-ssa-sccvn.h (vn_valueize): Here. - * timevar.def (TV_TREE_TAIL_MERGE): New timevar. - * common.opt (ftree-tail-merge): New switch. - * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS) - (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter. - * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge. - (-ftree-tail-merge, max-tail-merge-comparisons) - (max-tail-merge-iterations): New item. - -2011-09-27 Jan Hubicka - - * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows. - -2011-09-27 Jan Hubicka - - * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle - parameters passed by reference; handle loads from non-SSA scalars - and update comments. - -2011-09-27 Bernd Schmidt - - PR rtl-optimization/50249 - * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument - instead of opnum and type. All callers changed. Remove useless - declaration. - Search forward for other reloads of the same type for the same operand - using the same register; if any are found, return false. - (reload_regs_reach_end_p): Same argument changes; all callers changed. - -2011-09-27 Andi Kleen - Jan Hubicka - - * doc/invoke.texi (ffat-lto-objects): Document. - * toplev.c (compile_file): Do not output assembly when doing slim lto; - Output __gnu_slim_lto when doing slim lto. - * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto. - (cgraph_optimize): Return early when doing slim lto. - * opts.c (finish_options): Complain about lack of linker plugin - when doing slim lto. - * common.opt (ffat-lto-objects): New. - -2011-09-27 Richard Sandiford - - * ipa-inline-analysis.c (predicate_probability): Avoid comparison - between signed and unsigned. - -2011-09-27 Ira Rosen - - * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block - vectorization. - (vectorizable_type_promotion): Likewise. - (vect_analyze_stmt): Call vectorizable_type_demotion and - vectorizable_type_promotion for basic blocks. - (supportable_widening_operation): Don't assume loop vectorization. - * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for - basic blocks. Update vectorization factor for basic block - vectorization. - (vect_analyze_slp_instance): Allow multiple types for basic block - vectorization. Recheck unrolling factor after construction of SLP - instance. - -2011-09-27 Richard Guenther - - * tree-object-size.c (compute_object_sizes): Fix dumping of - folded statement. - -2011-09-27 Richard Guenther - - PR tree-optimization/50363 - * tree-ssa-pre.c (create_expression_by_pieces): Handle - pointer conversions in POINTER_PLUS_EXPRs properly. - -2011-09-27 Richard Sandiford - - * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi) - (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di) - (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si) - (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands - that produce subreg moves. Define using VQX iterators. - -2011-09-27 Georg-Johann Lay - - * config/avr/avr.md (ashrqi3): Split alternative "n" - into its remaining parts C03, C04, C05, C06, C07 and describe - impact in CC by attribute "cc" appropriately. - * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0 - by digging RTX. - -2011-09-27 Jakub Jelinek - - * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE - from 3 x MAX_MACHINE_MODE. - (CONSTM1_RTX): Define. - * emit-rtl.c (const_tiny_rtx): Change into array of - 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE. - (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are - CONSTM1_RTX. - (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and - MODE_VECTOR_INT modes. - * simplify-rtx.c (simplify_binary_operation_1) : - Optimize if one operand is CONSTM1_RTX. - * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x - into mask | x. - -2011-09-26 David S. Miller - - * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode. - (fcmp{le,ne,gt,eq}{16,32}): Likewise. - * config/sparc/visintrin.h: Update edge and pixel-compare - intrinsics to return 'long' instead of 'int'. - * doc/extend.texi: Update documentation to match. - * config/sparc/sparc.c (eligible_for_return_delay): When leaf or - flat, allow any instruction. Otherwise, when V9 allow parallels - which consist only of sets to registers outside of %o0 to %o5. - (sparc_vis_init_builtins): Update VIS builtin types for edge - and pixel-compare. - - * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS - is enabled, mark %gsr as global. - * config/sparc/sparc.md (UNSPEC_WRGSR): Delete. - (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec. - - * config/sparc/sparc-c.c: New file implementing sparc_target_macros, - which will now define __VIS and __VIS__ when -mvis is enabled. - * config/sparc/t-sparc: Likewise. - * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs, - and add t-sparc to tmake_file for all sparc targets. - * config/sparc/sparc-protos.h (sparc_target_macros): Declare. - * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it. - - * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit - builtins for VIS vector addition and subtraction. - * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s, - __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s, - __vis_fpsub32, __vis_fpsub32s): New. - * doc/extend.texi: Document new VIS intrinsics. - -2011-09-26 Georg-Johann Lay - - * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536. - * config/avr/avr.c (avr_out_compare): Print shorter sequence for - EQ/NE comparisons against +/-1 in the case of unused-after, - non-ld-regs target. - -2011-09-26 Jakub Jelinek - - * gimple-fold.c (gimplify_and_update_call_from_tree): Set - gctx.into_ssa after push_gimplify_context. - - * gimple.c (gimple_build_call_valist): New function. - * gimple.h (gimple_build_call_valist): New prototype. - * tree-ssa-propagate.c (finish_update_gimple_call): New function. - (update_gimple_call): Likewise. - (update_call_from_tree): Use finish_update_gimple_call. - * tree-ssa-propagate.h (update_gimple_call): New prototype. - -2011-09-26 Richard Guenther - - PR tree-optimization/50472 - * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold - volatile references. - -2011-09-26 Bingfeng Mei - - * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P. - * target.def: (addr_space_subset_p): Likewise. - -2011-09-26 Tom de Vries - - * tree-ssa-alias.h (pt_solution_singleton_p): Declare. - * tree-ssa-structalias.c (pt_solution_singleton_p): New function. - * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution - of new var. - -2011-09-26 Georg-Johann Lay - - PR target/50465 - * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn. - * config/avr/avr.md (*reload_insi, *reload_insf): Change call to - output_reload_insisf. - (adjust_len): Set default to "no". - Remove alternative "yes". Add alternatives: "mov8", "mov16", - "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi", - "lshrhi", "ashlsi, "ashrsi", "lshrsi". - (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3, - *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3, - *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const, - *lshrsi3_const): Set attribute "adjust_len". - * config/avr/avr.c (output_reload_insisf): Remove parameter "insn". - (output_movsisf): Don't pass insn to output_reload_insisf. - (adjust_insn_length): Handle new alternatives to adjust_len. - Remove handling of ADJUST_LEN_YES. Clean-up code. - -2011-09-26 Eric Botcazou - - * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of - may_trap_p to detect loads that may trap of fault. - -2011-09-26 Georg-Johann Lay - - * config/avr/avr-protos.h (output_reload_inhi): Change prototype. - * config/avr/avr.md (adjust_len): Add "reload_in16" alternative. - (*reload_inhi): Use it. Adapt call to output_reload_inhi to new - prototype. - (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L". - * config/avr/avr.c: Rename output_reload_insisf_1 to - output_reload_in_const. - (avr_popcount_each_byte): Handle SFmode, too. - (output_reload_in_const): Change so it can handle HI loads, too. - Use avr_popcount_each_byte to work out if scratch register must be - created on the fly. - (output_reload_inhi): Rewrite using output_reload_in_const and... - (output_movhi): ...use it to print constants' loads. - (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code. - -2011-09-25 David S. Miller - - * config/sparc/constraints.md (C, P, Z): New constraints for - const_doube, const_int, and const_vector "all ones" values. - Make unused constraint letters comment match reality. - * config/sparc/predicates.md (const_all_ones_operand, - register_or_zero_or_all_ones_operand): New predicates. - * config/sparc/sparc.c (sparc_expand_move): Allow all ones - as well as zero constants when VIS. - (sparc_legitimate_constant_p): Likewise. - * config/sparc/sparc.md (movsi_insn): Add fones alternative. - (movsf_insn): Likewise - (movdi_insn_sp64): Add fone alternative. - (movdf_insn_sp32_v9): Likewise. - (movdf_insn_sp64): Likewise. - - * configure.ac: Add feature check to make sure the assembler - supports the FMAF, HPC, and VIS 3.0 instructions found on - Niagara-3 and later cpus. - * configure: Rebuild. - * config.in: Likewise. - * config/sparc/sparc.opt: New option '-mfmaf'. - * config/sparc/sparc.md: Add float fused multiply-add patterns. - * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro. - (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed. - * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC, - ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise. - * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on - by default for Niagara-3 and later. Turn it off if TARGET_FPU is - disabled. - (sparc_rtx_costs): Handle 'FMA'. - * doc/invoke.texi: Document -mfmaf. - -2011-09-25 Jakub Jelinek - - * tree-ssa-structalias.c (intra_create_variable_infos): Treat - TYPE_RESTRICT REFERENCE_TYPE parameters like restricted - DECL_BY_REFERENCE parameters. - -2011-09-25 Eric Botcazou - - * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore - if there is no outgoing edge. - - * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and - integral types. - -2011-09-25 Ira Rosen - - * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part - of vect_analyze_bb here. - (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1. - -2011-09-25 Ira Rosen - - * tree-data-ref.c (dr_analyze_innermost): Add new argument. - Allow not simple iv if analyzing basic block. - (create_data_ref): Update call to dr_analyze_innermost. - (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise. - * tree-loop-distribution.c (generate_memset_zero): Likewise. - * tree-predcom.c (find_looparound_phi): Likewise. - * tree-data-ref.h (dr_analyze_innermost): Add new argument. - -2011-09-24 David S. Miller - - * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103. - (SPARC_GSR_REG): Define. - (FIXED_REGISTERS): Mark GSR as fixed. - (CALL_USED_REGISTERS): Mark GSR as call used. - (HARD_REGNO_NREGS): GSR is always 1 register. - (REG_CLASS_CONTENTS): Add GSR to ALL_REGS. - (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end. - (REGISTER_NAMES): Add "%gsr". - * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete. - (UNSPEC_WRGSR): New unspec. - (GSR_REG): New constant. - (type): Add new insn type 'gsr'. - (fpack16_vis, fpackfix_vis, fpack32_vis, - faligndata_vis)): Add use of GSR_REG. - (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64, - rdgsr_v8plus): New expanders and insns. - (alignaddr_vis, alignaddrl_vis): Reimplement - using patterns which show that this is a plus in addition to a - modification of GSR_REG, instead of an unspec. - * config/sparc/ultra1_2.md: Handle 'gsr'. - * config/sparc/ultra3.md: Likewise. - * config/sparc/niagara.md: Likewise. - * config/sparc/niagara2.md: Likewise. - * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out - end of table. - (sparc_option_override): Make -mvis imply -mv8plus. - (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries - for %gsr. - (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and - __builtin_vis_read_gsr. - (sparc_expand_buildin): Handle builtins that take one argument and - return void. - (sparc_fold_builtin): Never fold writes to %gsr. - * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New. - * doc/extend.texi: Document new VIS intrinsics. - -2011-09-23 Jan Hubicka - - * ipa-inline-transform.c (inline_call): Add comment. - * ipa-inline.h (inline_param_summary): New structure and vector. - (struct inline_edge_summary): Add param field. - * ipa-inline-analysis.c (CHANGED): New constant. - (add_clause): Handle CHANGED and NOT_CONSTANT. - (predicate_probability): New function. - (dump_condition): Dump CHANGED predicate. - (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker - of unknown function wide invariant. - (evaluate_conditions_for_edge): Handle change probabilities. - (inline_edge_duplication_hook): Copy param summaries. - (inline_edge_removal_hook): Free param summaries. - (dump_inline_edge_summary): Fix dumping of indirect edges and callee - sizes; dump param summaries. - (will_be_nonconstant_predicate): Use CHANGED predicate. - (record_modified_bb_info): New structure. - (record_modified): New function. - (param_change_prob): New function. - (estimate_function_body_sizes): Compute param summaries. - (estimate_edge_size_and_time): Add probability argument. - (estimate_node_size_and_time): Add inline_param_summary argument; - handle predicate probabilities. - (remap_predicate): Fix formating. - (remap_edge_change_prob): New function. - (remap_edge_summaries): Rename from ...; use remap_edge_change_prob. - (remap_edge_predicates): ... this one. - (inline_merge_summary): Remap edge summaries; handle predicate - probabilities; remove param summaries after we are done. - (do_estimate_edge_time): Update. - (do_estimate_edge_growth): Update. - (read_inline_edge_summary): Read param info. - (inline_read_summary): Fix formating. - (write_inline_edge_summary): Write param summaries. - -2011-09-23 Jakub Jelinek - - * config/i386/i386.c (ix86_print_operand): Handle %~. - (ix86_print_operand_punct_valid_p): Return true also for '~'. - * config/i386/sse.md (i128): New mode_attr. - (vec_extract_hi_, vec_extract_hi_, - avx_vbroadcastf128_, *avx_vperm2f128_full, - *avx_vperm2f128_nozero, vec_set_lo_, - vec_set_hi_, *vec_concat_avx): Use in the - patterns, use "" for "mode" attribute. - (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi, - vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use - %~128 in the patterns, use "OI" for "mode" attribute. - -2011-09-23 Georg-Johann Lay - - PR target/50447 - * config/avr/avr.md (adjust_len): Add alternatives "tsthi", - "tstsi", "compare". - (*cmpqi_sign_extend): Use s8_operand. - (*cmphi, *cmpsi): Rewrite using avr_out_compare. - * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove - prototypes. - (out_tsthi, out_tstsi): Remove prototypes. - (avr_out_tsthi, avr_out_tstsi): New prototypes. - * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions. - (avr_asm_len): Negative length now sets *plen to -length. - (compare_sign_p): Return bool instead of int. - (compare_diff_p, compare_eq_p): Ditto and make static. - (avr_out_tsthi): New function. - (avr_out_tstsi): New function. - (avr_out_compare): New function. - (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI, - ADJUST_LEN_COMPARE. - -2011-09-23 Georg-Johann Lay - - PR target/50447 - * config/avr/avr.md: (adjust_len): Add alternative "out_plus". - (addsi3): Rewrite using QI scratch register. Adjust text - peepholes using plus:SI. - (*addsi3_zero_extend.hi): New insn. - (*subsi3_zero_extend.hi): New insn. - (*subhi3_zero_extend1): Set attribute "cc" to "set_czn". - (*subsi3_zero_extend): Ditto. - (subsi3): Change predicate #2 to register_operand. - * config/avr/avr-protos.h (avr_out_plus): New prototype. - (avr_out_plus_1): New static function. - (avr_out_plus): New function. - (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS. - -2011-09-23 Jakub Jelinek - - * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For - GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX. - -2011-09-23 Ian Lance Taylor - - * godump.c (go_define): Treat a single character in single quotes, - or a string, as an operand. - -2011-09-23 Martin Jambor - - * ipa-prop.h (jump_func_type): Updated comments. - (ipa_known_type_data): New type. - (ipa_jump_func): Use it to describe known type jump functions. - * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to - reflect the new known type jump function contents. - (compute_known_type_jump_func): Likewise. - (combine_known_type_and_ancestor_jfs): Likewise. - (try_make_edge_direct_virtual_call): Likewise. - (ipa_write_jump_function): Likewise. - (ipa_read_jump_function): Likewise. - * ipa-cp.c (ipa_value_from_known_type_jfunc): New function. - (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc. - (propagate_accross_jump_function): Likewise. - -2011-09-23 Georg-Johann Lay - - PR target/50446 - * config/avr/avr.md (rotlqi3): Support all offsets 0..7. - (rotlqi3_4): Turn insn into expander. - (*rotlqi3): New insn. - (rotlhi3, rotlsi3): Support rotate left/right by 1. - (*rotlhi2.1, *rotlhi2.15): New insns. - (*rotlsi2.1, *rotlsi2.31): New insns. - * config/avr/constraints.md (C03, C05, C06, C07): New constraints. - -2011-09-23 Bin Cheng - - * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors. - -2011-09-22 Maxim Kuvyrkov - - * ipa-prop.c (ipa_print_node_jump_functions): Fix typos. - -2011-09-22 Andreas Krebbel - - * reload.c (find_reloads): Set operand_mode to Pmode for address - operands consisting of just a CONST_INT. - -2011-09-22 Uros Bizjak - - PR target/50482 - * config/i386/i386.c (ix86_expand_sse_movcc): When generating - blendv, force op_true to register if it doesn't satisfy - nonimmediate_operand predicate. - -2011-09-22 Richard Sandiford - - PR middle-end/50113 - PR middle-end/50061 - * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to - get the locate.where_pad value for register-only arguments. - * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling. - (arm_pad_reg_upward): Handle null types. - -2011-09-22 Jan Hubicka - - * ipa-inline-analysis.c: Fix overly long lines. - -2011-09-22 Jan Hubicka - - * ipa-inline-transform.c (inline_call): Always update jump functions - after inlining. - * ipa-inline.c (ipa_inline): Likewise; do not call - ipa_create_all_structures_for_iinln. - (ipa_inline): Always free jump functions. - * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack. - (remap_edge_predicates): Fix pasto. - (inline_merge_summary): Remove nlined edge predicate; remove hack. - (inline_analyze_function): Always initialize jump functions. - (inline_generate_summary): Likewise. - (inline_write_summary): Always write jump functions when ipa-cp - is not doing that. - (inline_read_summary): Always read jump functions when ipa-cp - is not doing that. - * ipa-prop.c (iinlining_processed_edges): Remove. - (update_indirect_edges_after_inlining): Do not use - iinlining_processed_edges; instead set param_index to -1. - (propagate_info_to_inlined_callees): Only try to indirect inlining - when asked to do so; update jump functions of indirect calls, too; - remove jump functions of the inlined edge. - (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges. - (ipa_create_all_structures_for_iinln): Remove. - (ipa_free_all_structures_after_iinln): Do not free - iinlining_processed_edges. - * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove. - -2011-09-22 Richard Sandiford - - * config/arm/predicates.md (expandable_comparison_operator): New - predicate, extracted from... - (arm_comparison_operator): ...here. - * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4) - (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc) - (movdfcc): Use expandable_comparison_operator. - -2011-09-22 Georg-Johann Lay - - PR target/50447 - PR target/50465 - * config/avr/avr-protos.h (avr_out_bitop): New prototype. - (avr_popcount_each_byte): New prototype. - * config/avr/avr.c (avr_popcount): New static function. - (avr_popcount_each_byte): New function. - (avr_out_bitop): New function. - (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to - avr_out_bitop. Cleanup code. - * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints. - (Ca4, Co4, Cx4): New constraints. - * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute - alternative. - (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop. - (andsi3, iorsi3, xorsi3): Ditto. - (*iorhi3_clobber, *iorsi3_clobber): Remove insns. - -2011-09-22 Ira Rosen - - PR tree-optimization/50451 - * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for - constant operands in reduction. - (vect_get_slp_defs): Don't create vector operand for NULL scalar - operand. - -2011-09-22 David S. Miller - - * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark - fpack16, fpack32, fpackfix as const. - - * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG, - I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New - constants. Use them everywhere. - -2011-09-22 Oleg Endo - - * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs. - Added AND special case. Adapted comments. - (sh_rtx_costs): Added XOR and IOR case. - -2011-09-21 Jan Hubicka - - * ipa-inline-analsis.c (compute_inline_parameters): Set - cfun and current_function_decl. - -2011-09-21 Jan Hubicka - - * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow - handled components in parameter of builtin_constant_p. - (will_be_nonconstant_predicate): Allow loads of non-SSA parameters. - -2011-09-21 Jan Hubicka - - * ipa-inline.c (relative_time_benefit): Fix wrong bracketting. - * ipa-inline.h (estimate_edge_time): Fix pasto. - * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping. - -2011-09-21 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_sse_movcc): Use - blendvps, blendvpd and pblendvb if possible. - -2011-09-21 Uros Bizjak - - PR target/50464 - * config/i386/sse.md (xop_pcmov_): Change - operand 1 predicate to register_operand and operand 2 predicate - to nonimmediate_operand. - * config/i386/i386.c (ix86_expand_sse_movcc): When generating - xop_pcmov, force op_true to register. Also, force op_false to - register if it doesn't satisfy nonimmediate_operand predicate. - -2011-09-21 Kirill Yukhin - - * config/i386/bmi2intrin.h (_mulx_u64): New. - (_mulx_u32): Ditto. - -2011-09-21 Jan Hubicka - - PR tree-optimization/50433 - * ipa-inline-analysis.c (eliminated_by_inlining_prob): - Use get_base_address. - -2011-09-21 Jakub Jelinek - - * config/i386/sse.md (3 smaxmin:VI124_128 expander): Use - nonimmediate_operand instead of register_operand predicate for operands - 1 and 2, force them into registers if expanding them as comparison. - (3 umaxmin:VI124_128 expander): Similarly. For UMAX - V8HImode force into register just operand 1. - -2011-09-21 Georg-Johann Lay - - PR target/45099 - * config/avr/avr.c (avr_function_arg_advance): Change error to - warning if a fixed register is needed as function argument. - -2011-09-21 Georg-Johann Lay - - PR target/50449 - PR target/50465 - * config/avr/avr.md (adjust_len): New insn attribute. - (*reload_insi, *reload_insf): Use it. - (*movsi, *movsf): Use new interface of output_movsisf. - * config/avr/avr-protos.h (output_movsisf): Change prototype. - * config/avr/avr.c (output_movsisf): Ditto. - (adjust_insn_length): Use insn attribute "adjust_len" to adjust - lengths of insns *reload_insi, *reload_insf. - (output_reload_insisf_1): New static function. - (output_reload_insisf): Use it. - -2011-09-21 David S. Miller - - * config/sparc/sparc.c (def_builtin): Change from macro into function. - (def_builtin_const): New. - (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins - other than alignaddr and falignaddr. - - * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT, - UNSPEC_FCMPEQ): New unspec codes. - (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis, - fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns. - * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for - new pixel compare VIS patterns. - * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32, - __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32, - __vis_fcmpeq16, __vis_fcmpeq32): New. - * doc/extend.texi: Document new pixel compare VIS intrinsics. - -2011-09-21 Tom de Vries - - * final.c (final): Handle if JUMP_LABEL is not LABEL_P. - -2011-09-20 David S. Miller - - * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec. - (aligneddrl_vis): New pattern. - (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, - edge32l_vis): Adjust to take Pmode arguments, and return SImode. - * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new - alignaddrl insn, and adjust edge operations for updated types. - * config/sparc/visintrin.h: Likewise. - * doc/extend.texi: Make typing in VIS documentation match reality. - -2011-09-20 Terry Guo - - * config/arm/arm-arches.def: Add armv6s-m. - * config/arm/arm-tables.opt: Regenerate. - -2011-09-20 Wei Guozhi - - PR rtl-optimization/49452 - * postreload.c (reload_combine): Invalidate use information when across - volatile insn. - -2011-09-19 Maxim Kuvyrkov - - * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg): - Remove maintenance overhead. - (haifa_sched_init, sched_finish): Update. - -2011-09-19 Uros Bizjak - - * config/i386/mmx.md (*mov_internal_rex64): Use if_then_else RTX - to calculate unit, prefix_rep and prefix_data16 attributes. - (*mov_internal): Ditto for unit attribute. - (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes. - (*movv2sf_internal): Ditto. - * config/i386/sse.md (VI1248_256): Remove mode iterator. - (avx2_eq3): Use VI_256 instead of VI1248_256. - (*avx2_eq3): Ditto. - (avx2_gt3): Ditto. - -2011-09-19 Uros Bizjak - - * config/i386/i386.md (maxmin): New code iterator. - * config/i386/sse.md (3): Macroize expander - from 3 and 3 using maxmin - code iterator. - (*avx2_3): Macroize isn from - *avx2_3 and *avx2_3 using - maxmin code iterator. - (3): Merge with v8hi3. - (3): Merge with umaxv4si3 and - v16qi3. - -2011-09-19 Alan Modra - Michael Meissner - - PR target/50341 - * config/rs6000/rs6000.md (call_indirect_aix): Do not - split the load of the indirect function's TOC from the call to - prevent the compiler from moving the load of the new TOC above - code that references the current function's TOC. - (call_indirect_aix_internal): Ditto. - (call_indirect_aix_nor11): Ditto. - (call_indirect_aix_internal2): Ditto. - (call_value_indirect_aix): Ditto. - (call_value_indirect_aix_internal): Ditto. - (call_value_indirect_aix_nor11): Ditto. - (call_value_indirect_aix_internal2): Ditto. - -2011-09-19 Jakub Jelinek - - * config/i386/sse.md (*sse4_1_extractps): Change into - define_insn_and_split, add =x 0 n and =x x n alternatives - and split them after reload. - -2011-09-19 Alexandre Oliva - - * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4. - -2011-09-19 Alexandre Oliva - - * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs. - -2011-09-19 Ira Rosen - - PR tree-optimization/50413 - * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize - a basic block if one of its data-refs can't be analyzed. - -2011-09-19 Paul Brook - - * config/arm/predicates.md (shift_amount_operand): Check constant - shift count is in range. - (const_shift_operand): Remove. - -2011-09-18 Eric Botcazou - Iain Sandoe - - PR target/50091 - * config/rs6000/rs6000.md (probe_stack): Use explicit operand. - * config/rs6000/rs6000.c (output_probe_stack_range): Likewise. - -2011-09-18 H.J. Lu - - * config/i386/bmiintrin.h: Remove tmp. - * config/i386/tbmintrin.h: Likewise. - -2011-09-18 Ira Rosen - - PR tree-optimization/50414 - * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and - MIN_EXPR. - -2011-09-18 Ira Rosen - - PR tree-optimization/50412 - * tree-vect-data-refs.c (vect_analyze_group_access): Fail for - acceses that require epilogue loop if vectorizing outer loop. - -2011-09-17 David S. Miller - - * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L, - UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L): - New unspecs. - (define_attr type): New type 'edge'. - (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, - edge32l_vis): New patterns. - * config/sparc/ultra1_2.md: Add insn reservation for 'edge'. - * config/sparc/ultra3.md: Likewise. - * config/sparc/niagara.md: Likewise. - * config/sparc/niagara2.md: Likewise. - * config/sparc/sparc.d (sparc_vis_init_builtins): Generate - builtins for VIS edge instructions. - * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l) - (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New - intrinsics. - (__v8qi, __v4qi): Make unsigned. - (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi, - __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al, - __vis_fpack32): Fix types. - * doc/extend.texi: Document new 'edge' VIS intrinsics. - - * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer - divide costs. - (niagara3_costs): New. - (sparc_option_override): Use it. - * gcc/config/sparc/niagara2.md: Adjust with more accurate - Niagara-3 reservations. - -2011-09-17 Jakub Jelinek - - * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI. - (sse2_avx, sseinsnmode): Add V2TI. - (REDUC_SMINMAX_MODE): New mode iterator. - (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf, - reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove. - (reduc__): New smaxmin and umaxmin expanders. - (sse2_lshrv1ti3): Rename to... - (_lshr3): ... this. Use VIMAX_AVX2 mode - iterator. Move before umaxmin expanders. - * config/i386/i386.h (VALID_AVX256_REG_MODE, - SSE_REG_MODE_P): Accept V2TImode. - * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode, - V16HImode, V8SImode and V4DImode. - - * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode - and V4DImode. - (ix86_build_signbit_mask): Likewise. - (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode. - (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3 - instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3. - * config/i386/sse.md (avx2_3 umaxmin expand): Rename to... - (3) ... this. - (avx2_3 smaxmin expand): Rename to... - (3) ... this. - (smax3, smin3): Macroize using smaxmin code iterator. - (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and - VI8_AVX2 mode iterator. - (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and - VI8_AVX2 mode iterator. - (vcond, vcondu): - New expanders. - -2011-09-17 Richard Sandiford - - * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-16 David S. Miller - - * config/sparc/visintrin.h: New file. - * config.gcc: Add it to extra_headers on sparc. - -2011-09-16 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ... - (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode. - * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf, - reduc_smin_v4sf): Adjust callers. - (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): - New expanders. - - * config/i386/sse.md (vec_extract_hi_, - vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use - vextracti128 instead of vextractf128 for -mavx2 and - integer vectors. For V4DFmode fix up mode attribute. - (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors. - (vec_set_lo_, vec_set_hi_): For VI8F_256 modes use V4DF - instead of V8SF mode attribute. - (avx2_extracti128): Change into define_expand. - * config/i386/i386.c (ix86_expand_vector_extract): Handle - 32-byte vector modes if TARGET_AVX. - -2011-09-16 Georg-Johann Lay - - * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern. - (umulqi3_highpart, smulqi3_highpart): Ditto. - (*maddqihi4.const, *umaddqihi4.uconst): Ditto. - (*msubqihi4.const, *umsubqihi4.uconst): Ditto. - (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto. - -2011-09-16 Georg-Johann Lay - - PR target/50358 - * config/avr/avr.md (*ashiftqihi2.signx.1): New insn. - (*maddqi4, *maddqi4.const): New insns. - (*msubqi4, *msubqi4.const): New insns. - * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases - PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for - HImode by 1 in the case of multiplying with a CONST_INT. - Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI. - -2011-09-15 Jan Hubicka - - PR lto/50430 - * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on - error_mark_node in the DECL_INITIAL of vtable. - -2011-09-15 Diego Novillo - - * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from - @SYSROOT_CFLAGS_FOR_TARGET@. - * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot. - * configure: Regenerate. - (site.exp): Add definition of TEST_ALWAYS_FLAGS. - Remove setting of GCC_UNDER_TEST. - -2011-09-15 Uros Bizjak - - * config/i386/i386.c (output_fp_compare): Return %v prefixed - instruction mnemonics for TARGET_AVX. - - * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in - "type" attribute calculation. - (*movdf_internal): Ditto. - (*movsf_internal): Ditto. - -2011-09-15 James Greenhalgh - - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro. - -2011-09-15 Jason Merrill - - PR c++/50361 - * expr.c (count_type_elements): Handle NULLPTR_TYPE. - -2011-09-15 Jan Hubicka - - * ipa-inline-analysis.c (add_condition): Add conditions parameter; - simplify obviously true clauses. - (and_predicates, or_predicates): Add conditions parameter. - (inline_duplication_hoook): Update. - (mark_modified): New function. - (unmodified_parm): New function. - (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate, - set_switch_stmt_execution_predicate, will_be_nonconstant_predicate): - Use unmodified_parm. - (estimate_function_body_sizes): Update. - (remap_predicate): Update. - -2011-09-15 Ira Rosen - - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow - read-after-read dependencies in basic block SLP. - -2011-09-14 Richard Sandiford - - * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-14 Richard Sandiford - - * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-14 Richard Sandiford - - * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-14 Richard Sandiford - - * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref - throughout file. - * config/rs6000/constraints.md: Likewise. - -2011-09-14 Richard Sandiford - - * config/microblaze/microblaze.md: Use match_test rather than - eq/ne symbol_ref throughout file. - -2011-09-14 Richard Sandiford - - * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-14 Tom de Vries - - PR middle-end/50251 - * explow.c (emit_stack_restore): Set crtl->need_drap if - stack_restore is emitted. - -2011-09-14 Julian Brown - - * config/arm/arm.c (arm_override_options): Add unaligned_access - support. - (arm_file_start): Emit attribute for unaligned access as appropriate. - * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD) - (UNSPEC_UNALIGNED_STORE): Add constants for unspecs. - (insv, extzv): Add unaligned-access support. - (extv): Change to expander. Likewise. - (extzv_t1, extv_regsi): Add helpers. - (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu) - (unaligned_storesi, unaligned_storehi): New. - (*extv_reg): New (previous extv implementation). - * config/arm/arm.opt (munaligned_access): Add option. - * config/arm/constraints.md (Uw): New constraint. - * expmed.c (store_bit_field_1): Adjust bitfield numbering according - to size of access, not size of unit, when BITS_BIG_ENDIAN != - BYTES_BIG_ENDIAN. Don't use bitfield accesses for - volatile accesses when -fstrict-volatile-bitfields is in effect. - (extract_bit_field_1): Likewise. - -2011-09-14 Richard Sandiford - - * simplify-rtx.c (simplify_subreg): Check that the inner mode is - a scalar integer before applying integer-only optimisations to - inner arithmetic. - -2011-09-14 Bernd Schmidt - - * config/mips/mips.c (mips_expand_epilogue): Generate a - simple_return only if the return address is in r31. - -2011-09-13 Bernd Schmidt - - * cfgcleanup.c (try_head_merge_bb): If get_condition returns - NULL for a jump that is a cc0 insn, pick the previous insn for - move_before. - -2011-09-13 Richard Sandiford - - * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-13 Richard Sandiford - - * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-13 Richard Sandiford - - * config/mn10300/mn10300.md: Use match_test rather than eq/ne - symbol_ref throughout file. - -2011-09-13 Richard Sandiford - - * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-13 Richard Sandiford - - * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-13 Richard Sandiford - - * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref - throughout file. - * config/arm/neon.md: Likewise. - * config/arm/vfp.md: Likewise. - * config/arm/thumb2.md: Likewise. - * config/arm/cortex-m4.md: Likewise. - -2011-09-13 Sevak Sargsyan - - * config/arm/neon.md (neon_vabd_2, neon_vabd_3): New - define_insn patterns for combine. - -2011-09-13 Giuseppe Scrivano - - * reorg.c: Always define make_return_insns. - -2011-09-13 Jan Hubicka - - PR other/49533 - * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output. - -2011-09-13 Jan Hubicka - - PR other/49533 - * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos. - -2011-09-13 Paul Brook - - * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - (ARM_TARGET2_DWARF_FORMAT): Provide default definition. - * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define. - * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define. - * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define. - * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h. - * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h. - * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code - enabling unwind tables. - (c6x_debug_unwind_info): New function. - (TARGET_ARM_EABI_UNWINDER): Define. - (TARGET_DEBUG_UNWIND_INFO): Define. - * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define. - (TARGET_EXTRA_CFI_SECTION): Remove. - * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set. - * ginclude/unwind-arm-common.h: New file. - -2011-09-13 Georg-Johann Lay - - PR target/50358 - * config/avr/predicates.md (const_1_to_6_operand): New predicate. - * config/avr/avr.md: (extend_s): New code attribute. - (mul_r_d): New code attribute. - (*maddqihi4, *umaddqihi4): New insns. - (*msubqihi4, *umsubqihi4): New insns. - (*usmaddqihi4, *sumaddqihi4): New insns. - (*usmsubqihi4, *susubdqihi4): New insns. - (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits. - (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits. - (*umsubqihi4.uconst.ashift): New insn-and-split. - (*msubqihi4.sconst.ashift): New insn-and-split. - (*sumaddqihi4.uconst): New insn-and-split. - (*sumsubqihi4.uconst): New insn-and-split. - * config/avr/avr.c (avr_rtx_costs): Report costs of above in case - PLUS:HI and MINUS:HI. - -2011-09-13 Revital Eres - - modulo-sched.c (remove_node_from_ps): Return void instead of bool. - (optimize_sc): Adjust call to remove_node_from_ps. - (sms_schedule): Add print info. - -2011-09-13 Bernd Schmidt - - * rtl.c (copy_rtx): Do not handle frame_related, jump or call - flags specially. - -2011-09-12 Jakub Jelinek - - PR bootstrap/50010 - * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between - NOTE_INSN_CFI notes, with the exception of - NOTE_INSN_SWITCH_TEXT_SECTIONS. - -2011-09-12 Bernd Schmidt - Richard Sandiford - - * config/mips/mips.c (mips_epilogue): New structure. - (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when - restoring registers. - (mips_epilogue_emit_cfa_restores): New function. - (mips_epilogue_set_cfa): Likewise. - (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring - the current CFA register from the stack, redefine the CFA in terms - of the stack pointer. - (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information - to the epilogue instructions. - -2011-09-12 Richard Sandiford - - * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p - argument. - (mips16e_build_save_restore): Update accordingly. - -2011-09-12 Jakub Jelinek - - PR rtl-optimization/50212 - * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): - Skip also lps with NULL landing_pad or non-LABEL_P landing_pad. - - PR debug/50299 - * calls.c (load_register_parameters): Use use_reg_mode instead - of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE - entry. - (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument - for stack CALL_INSN_FUNCTION_USAGE uses. - * expr.h (use_reg_mode): New prototype. - (use_reg): Changed into inline around use_reg_mode. - * expr.c (use_reg): Renamed to... - (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST - mode to that mode instead of VOIDmode. - * var-tracking.c (prepare_call_arguments): Don't track parameters - whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible - to it using lowpart_subreg. Convert VALUE and REG/MEM to the - EXPR_LIST mode. - -2011-09-12 Georg-Johann Lay - - PR target/43746 - * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define. - (progmem_section): New Variable. - (avr_asm_init_sections): Initialize it. - (TARGET_ASM_SELECT_SECTION): Define to... - (avr_asm_select_section): ... this new Function. - (avr_replace_prefix): New Function. - (avr_asm_function_rodata_section): Use it. - (avr_insert_attributes): Don't add section attribute for PROGMEM. - (avr_section_type_flags): Use avr_progmem_p instead of section - name to detect if object is in PROGMEM. - (avr_asm_named_section): Set section name prefix for objects in - PROGMEM. - -2011-09-12 Jakub Jelinek - - PR bootstrap/50352 - * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the - sprintf format string. - -2011-09-12 Richard Guenther - - PR tree-optimization/50343 - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check - that the reduction is over an SSA name before checking its definition. - -2011-09-11 Richard Sandiford - - * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref - throughout file. - -2011-09-11 Richard Sandiford - - * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref - throughout file. - * config/mips/sb1.md: Likewise. - * config/mips/predicates.md: Replace (match_test "!...") - with (not (match_test "...")) - * config/mips/constraints.md: Likewise. - -2011-09-09 Andrew Stubbs - - * config/arm/arm-cores.def (generic-armv7-a): New architecture. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm-tune.md: Regenerate. - * config/arm/arm.c (arm_file_start): Output .arch directive when - user passes -mcpu=generic-*. - (arm_issue_rate): Add genericv7a support. - * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec. - (ASM_CPU_SPEC): New define. - * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec). - * config/arm/semi.h (ASM_SPEC): Likewise. - * doc/invoke.texi (ARM Options): Document -mcpu=generic-* - and -mtune=generic-*. - -2011-09-09 Richard Guenther - - PR tree-optimization/50328 - * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one - constant or default-def operand. - -2011-09-09 Richard Guenther - - * tree-ssa-pre.c (create_expression_by_pieces): Fold the - last statement. - -2011-09-09 Richard Guenther - - * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator - instead of a statement. - * gimple-fold.c (fold_stmt_inplace): Likewise. - * sese.c (graphite_copy_stmts_from_block): Adjust. - * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. - * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use - fold_stmt. - (forward_propagate_addr_into_variable_array_index): Likewise. - (forward_propagate_addr_expr_1): adjust. - (associate_plusminus): Likewise. - (ssa_forward_propagate_and_combine): Likewise. - * tree-ssa-mathopts.c (replace_reciprocal): Adjust. - (execute_cse_reciprocals): Likewise. - * tree-ssa.c (insert_debug_temp_for_var_def): Adjust. - -2011-09-09 Nick Clifton - - * config/mn10300/mn10300.c (mn10300_split_and_operand_count): - Return a positive value to indicate that the bits at the - bottom of the register should be cleared. - -2011-09-09 Richard Guenther - - * tree-ssa-operands.c (swap_tree_operands): Always adjust - existing operand positions. - -2011-09-09 Richard Guenther - - PR middle-end/50333 - * tree-data-ref.c (split_constant_offset): Do not try to handle - ternary ops. - -2011-09-08 Andrew Stubbs - - PR tree-optimization/50318 - * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct - typo in use of mult_rhs1 and mult_rhs2. - -2011-09-08 Uros Bizjak - - * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes. - (standard_sse_constant_opcode) : Change vpcmpeqd template. - -2011-09-08 Bernd Schmidt - - * config/arm/arm.md (push_multi): Emit predicates. - (push_fp_multi): Likewise. - * config/arm/arm.c (vfp_output_fstmd): Likewise. - -2011-09-08 Dodji Seketeli - - PR c++/33255 - Support -Wunused-local-typedefs warning - * c-decl.c (lookup_name): Use the new maybe_record_typedef_use. - (pushdecl): Use the new record_locally_defined_typedef. - (store_parm_decls): Allocate cfun->language. - (finish_function): Use the new maybe_warn_unused_local_typedefs, - and free cfun->language. - (c_push_function_context): Allocate cfun->language here only if needed. - (c_pop_function_context): Likewise, mark cfun->language - for collection only when it should be done. - * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes. - * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new - maybe_record_local_typedef_use. - * doc/invoke.texi: Update documentation for - -Wunused-local-typedefs. - -2011-09-08 Enkovich Ilya - - * config/i386/i386-protos.h (ix86_lea_outperforms): New. - (ix86_avoid_lea_for_add): Likewise. - (ix86_avoid_lea_for_addr): Likewise. - (ix86_split_lea_for_addr): Likewise. - - * config/i386/i386.c (LEA_MAX_STALL): New. - (increase_distance): Likewise. - (insn_defines_reg): Likewise. - (insn_uses_reg_mem): Likewise. - (distance_non_agu_define_in_bb): Likewise. - (distance_agu_use_in_bb): Likewise. - (ix86_lea_outperforms): Likewise. - (ix86_ok_to_clobber_flags): Likewise. - (ix86_avoid_lea_for_add): Likewise. - (ix86_avoid_lea_for_addr): Likewise. - (ix86_split_lea_for_addr): Likewise. - (distance_non_agu_define): Search in pred BBs added. - (distance_agu_use): Search in succ BBs added. - (IX86_LEA_PRIORITY): Value changed from 2 to 0. - (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL. - (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision. - - * config/i386/i386.md: Split added to transform non destructive - add into move and add. - (lea_1): transformed into insn_and_split to avoid AGU stalls. - (lea_2): Likewise. - -2011-09-08 Martin Jambor - - PR tree-optimization/50287 - * ipa-split.c (split_function): Do not create SSA names for - non-gimple-registers. - -2011-09-08 Richard Guenther - - PR tree-optimization/19831 - * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also - skip builtins with vdefs that do not really store something. - (propagate_necessity): For calls to free that we can associate - with an allocation function do not mark the freed pointer - definition necessary. - (eliminate_unnecessary_stmts): Remove a call to free if - the associated call to an allocation function is not necessary. - -2011-09-08 Richard Guenther - - PR tree-optimization/19831 - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark - allocation functions as necessary. - -2011-09-08 Iain Sandoe - - * config/darwin-driver.c (darwin_find_version_from_kernel): New routine - cut from ... - (darwin_default_min_version): Amended to provide defaults - for the cross directory case. - (darwin_driver_init): call darwin_default_min_version unconditionally. - * config/darwin.h (DEF_MIN_OSX_VERSION): New. - * config/darwin9.h: Likewise. - * config/darwin10.h: Likewise. - * config/rs6000/darwin7.h: Likewise. - -2011-09-08 Jakub Jelinek - - PR target/50310 - * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return - code early if TARGET_AVX. - (ix86_expand_fp_vcond): Handle LTGT and UNEQ. - -2011-09-07 Jakub Jelinek - - * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector - duplicates. - - PR target/50310 - * config/i386/sse.md (*andnot3, *3): Fix up - "mode" attribute computation. - -2011-09-07 Bernd Schmidt - - * regrename.c (struct du_head): Make nregs signed. - (closed_chains): Remove. - (create_new_chain): Return the new chain. - (chain_from_id): New static function. - (dump_def_use_chain): Change argument to be an int, indicating - the first ID to print. All callers changed. - (merge_overlapping_regs): Use chain_from_id. Assert that - chains don't conflict with themselves. - (rename_chains): Take no argument. Iterate over id_to_chain - rather to find chains to rename. Clear tick before the main loop. - (struct incoming_reg_info): New struct. - (struct bb_rename_info): New struct. - (init_rename_info, set_incoming_from_chain, merge_chains): New - static functions. - (regrename_analyze): New static function, broken out of - regrename_optimize. Record and make use of open chain information - at basic block boundaries, and merge chains where possible. - (scan_rtx_reg): Make this_nregs signed. Don't update - closed_chains. - (build_def_use): Return a bool to indicate success. All callers - changed. Don't initialize global data here. - (regrename_optimize): Move most code out of here into - regrename_analyze. - * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set, - range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New - static inline functions. - * vec.h (FOR_EACH_VEC_ELT_FROM): New macro. - - * bb-reorder.c (insert_section_boundary_note): Don't check - optimize_function_for_speed_p. - (gate_handle_partition_blocks): Do it here instead. - (gate_handle_reorder_blocks): Move preliminary checks here ... - (rest_of_handle_reorder_blocks): ... from here. - -2011-09-07 Martin Jambor - - PR middle-end/50301 - * ipa-cp.c (find_more_values_for_callers_subset): Check jump - function index bounds. - (perhaps_add_new_callers): Likewise. - -2011-09-07 Martin Jambor - - PR tree-optimization/49911 - * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced - enumerations to the corresponding plain integer type. - -2011-09-07 Richard Guenther - - PR tree-optimization/50319 - * tree-if-conv.c (set_bb_predicate): Assert we only set - canonical predicates. - (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR - around canonical predicates. - (predicate_bbs): Do not re-gimplify already canonical - predicates. Properly unshare them though. - (find_phi_replacement_condition): Simplify. - -2011-09-07 Richard Sandiford - - PR target/49030 - * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare. - * config/arm/arm.c (maybe_get_arm_condition_code): New function, - reusing the old code from get_arm_condition_code. Return ARM_NV - for invalid comparison codes. - (get_arm_condition_code): Redefine in terms of - maybe_get_arm_condition_code. - * config/arm/predicates.md (arm_comparison_operator): Use - maybe_get_arm_condition_code. - -2011-09-07 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): - Canonicalize negated predicates by swapping edges. - (forward_propagate_into_cond): Likewise. - -2011-09-07 Richard Guenther - - PR tree-optimization/50213 - * tree-flow.h (simple_iv_increment_p): Declare. - * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle - POINTER_PLUS_EXPR. - * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do - not propagate simple IV counter increments. - -2011-09-07 Eric Botcazou - Iain Sandoe - - * config/rs6000/rs6000.c (compute_save_world_info): Test - cfun->has_nonlocal_label to determine if the out-of-line save - world call may be used. - -2011-09-07 Nick Clifton - - * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump - label on the parallel part of the insn. - -2011-09-07 Jakub Jelinek - - PR debug/50191 - * dwarf2out.c (mem_loc_descriptor) : Try - avoid_constant_pool_reference first instead of last. - -2011-09-06 Michael Meissner - - * doc/configfiles.texi (Configuration Files): Update documentation - about tm_p.h and remove FIXME comment. - -2011-09-06 Uros Bizjak - - * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG. - (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX. - -2011-09-06 Iain Sandoe - - * config/darwin10.h Remove duplicate LIB_SPEC. - -2011-09-06 Enkovich Ilya - - PR middle-end/44382 - * target.def (reassociation_width): New hook. - - * doc/tm.texi.in (reassociation_width): Likewise. - - * doc/tm.texi (reassociation_width): Likewise. - - * doc/invoke.texi (tree-reassoc-width): New param documented. - - * hooks.h (hook_int_uint_mode_1): New default hook. - - * hooks.c (hook_int_uint_mode_1): Likewise. - - * config/i386/i386.h (ix86_tune_indices): Add - X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. - - (TARGET_REASSOC_INT_TO_PARALLEL): New. - (TARGET_REASSOC_FP_TO_PARALLEL): Likewise. - - * config/i386/i386.c (initial_ix86_tune_features): Add - X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. - - (ix86_reassociation_width): New function. - - * params.def (PARAM_TREE_REASSOC_WIDTH): New param added. - - * tree-ssa-reassoc.c (get_required_cycles): New function. - (get_reassociation_width): Likewise. - (swap_ops_for_binary_stmt): Likewise. - (rewrite_expr_tree_parallel): Likewise. - - (rewrite_expr_tree): Refactored. Part of code moved into - swap_ops_for_binary_stmt. - - (reassociate_bb): Now checks reassociation width to be used and - call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed. - -2011-09-06 Richard Guenther - - PR tree-optimization/47025 - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END - uses nothing. - (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like - BUILT_IN_FREE. - (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument - definitely points to. - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): - BUILT_IN_VA_START doesn't let its va_list argument escape. - * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does - not make any previous stores necessary. - -2011-09-06 Martin Jambor - - * ipa-inline.h (struct inline_summary): Move versionable flag... - * cgraph.h (struct cgraph_local_info): ...here - * ipa-cp.c (determine_versionability): Use the new versionable flag. - (determine_versionability): Likewise. - (ipcp_versionable_function_p): Likewise. - (ipcp_generate_summary): Likewise. - * ipa-inline-analysis.c (dump_inline_summary): Do not dump the - versionable flag. - (compute_inline_parameters): Do not clear the versionable flag. - (inline_read_section): Do not stream the versionable flag. - (inline_write_summary): Likewise. - * lto-cgraph.c (lto_output_node): Stream the versionable flag. - (input_overwrite_node): Likewise. - -2011-09-06 Richard Guenther - - PR tree-optimization/48149 - * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug. - (vn_valueize): Move earlier. - (valueize_expr): Use vn_valueize. - (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR - operands. - (simplify_unary_expression): Simplify. - -2011-09-06 Richard Guenther - - PR tree-optimization/48317 - * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true - trailing array. - (sizeof_vn_nary_op): New inline function. - (vn_nary_op_lookup_pieces): Adjust. - (vn_nary_op_insert_pieces): Likewise. - * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length. - (init_vn_nary_op_from_pieces): Adjust signature. Deal with - any number of operands. - (vn_nary_length_from_stmt): New function. - (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling. - (vn_nary_op_lookup_pieces): Adjust signature and allocate properly - sized temporary. - (vn_nary_op_lookup): Likewise. - (vn_nary_op_lookup_stmt): Likewise. - (vn_nary_op_insert_into): Likewise. - (vn_nary_op_insert_stmt): Likewise. - (visit_use): Handle CONSTRUCTOR as nary. - * tree-ssa-pre.c (phi_translate_1): Adjust. - (create_expression_by_pieces): Likewise. - (compute_avail): Likewise. - -2011-09-06 Ira Rosen - - * config/arm/arm.c (arm_preferred_simd_mode): Check - TARGET_NEON_VECTORIZE_DOUBLE instead of - TARGET_NEON_VECTORIZE_QUAD. - (arm_autovectorize_vector_sizes): Likewise. - * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse - mask of mvectorize-with-neon-double. Add RejectNegative. - (mvectorize-with-neon-double): New. - -2011-09-06 Richard Guenther - - * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching. - -2011-09-06 Tom de Vries - - * recog.c (asm_labels_ok): New function. - (check_asm_operands): Use asm_labels_ok. - -2011-09-05 Richard Sandiford - - PR target/49606 - * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode. - (PMODE_INSN): New macro. - * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN. - (mips_got_load, mips_expand_synci_loop): Likewise. - (mips_save_gp_to_cprestore_slot): Handle SImode and DImode - cprestore patterns. - (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode - copygp_mips16 patterns. - (mips_expand_prologue): Handle SImode and DImode potential_cprestore - and use_cprestore patterns. - (mips_override_options): Check for incompatible -mabi and -mlong - combinations. - * config/mips/mips.md (unspec_got): Rename to... - (unspec_got_): ...this. - (copygp_mips16): Use the Pmode iterator. - (potential_cprestore, cprestore, use_cprestore): Likewise. - (clear_cache, indirect_jump): Use PMODE_INSN. - (indirect_jump): Rename to... - (indirect_jump_): ...this. - (tablejump): Use PMODE_INSN. - (tablejump): Rename to... - (tablejump_): ...this. - (exception_receiver): Handle restore_gp_si and restore_gp_di. - (restore_gp): Use the Pmode iterator. - * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use - PMODE_INSN. - -2011-09-05 Richard Sandiford - - * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. - Fix the type of the BIT_AND_EXPR. - -2011-09-05 David S. Miller - - * config.host: Add driver-sparc.o and sparc/x-sparc on - native sparc*-*-linux* builds. - * config/sparc/driver-sparc.c: Correct Linux strings. - * config/sparc/linux.h: Add DRIVER_SELF_SPECS. - * config/sparc/linux64.h: Likewise. - * doc/invoke.texi: Document that Linux also supports - -mcpu=native and -mtune=native on sparc. - - * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3, - PROCESSOR_NIAGARA4): New. - * config/sparc/sparc.opt: Handle new processor types. - * config/sparc/sparc.md: Add to "cpu" attribute. - * config/sparc/sparc.h (TARGET_CPU_niagara3, - TARGET_CPU_niagara4): New, treat as niagara2. - * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2. - * config/sparc/sol2.h: Likewise. - * config/sparc/niagara2.md: Schedule niagara3 like niagara2. - * config/sparc/sparc.c (sparc_option_override): Add - niagara3 and niagara4 handling. - (sparc32_initialize_trampoline): Likewise. - (sparc64_initialize_trampoline): Likewise. - (sparc_use_sched_lookahead): Likewise. - (sparc_issue_rate): Likewise. - (sparc_register_move_cost): Likewise. - * config/sparc/driver-sparc.c (cpu_names): Use niagara3 - and niagara4 as appropriate. - * doc/invoke.texi: Document new processor types. - * config.gcc: Recognize niagara3 and niagara4 in --with-cpu - and --with-tune options. - - * config/sparc/sol2-64.h: Move ... - * config/sparc/default-64.h: ... to here. Update comment. - * config.gcc: Update Solaris sparc to use default-64.h, also - prefix this header into the list on sparc64-*-linux. - * config/sparc/linux64.h (TARGET_DEFAULT): Only override if - TARGET_64BIT_DEFAULT is defined. Remove commented out reference - to MASK_HARD_QUAD. - -2011-09-05 Georg-Johann Lay - - PR target/50289 - * config/avr/avr.c (sequent_regs_live): Don't recognize sequences - that contain global register variable. - -2011-09-05 Richard Guenther - - * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace. - -2011-09-05 Richard Guenther - - * stor-layout.c (layout_type): Use size_binop for array size - calculations. - -2011-09-05 Georg-Johann Lay - - * config/avr/avr.h (progmem_section): Remove Declaration. - * config/avr/avr.c (progmem_section): Make static and rename to - progmem_swtable_section. - (avr_output_addr_vec_elt): No need to switch sections. - (avr_asm_init_sections): Use output_section_asm_op as section - callback for progmem_swtable_section. - (avr_output_progmem_section_asm_op): Remove Function. - (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define. - (avr_asm_function_rodata_section): New static Function. - * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output - alignment 2**1 for jump tables. - -2011-09-04 Jan Hubicka - - * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that - parameter is SSA name. - -2011-09-04 Richard Guenther - - Revert - 2011-08-31 Richard Guenther - - * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE - special-casing. - -2011-09-04 Iain Sandoe - - PR debug/49901 - * config/darwin.h (DEBUG_MACRO_SECTION): New macro. - -2011-09-04 Jakub Jelinek - Ira Rosen - - PR tree-optimization/50208 - * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an - argument. Check that def_stmt is inside the loop. - (vect_recog_widen_mult_pattern): Update calls to - vect_handle_widen_mult_by_cons. - (vect_operation_fits_smaller_type): Check that def_stmt is - inside the loop. - -2011-09-04 Ira Rosen - - * tree-vectorizer.c (vect_print_dump_info): Print line - number when dumping to a file. - (vectorize_loops): Add new messages to dump file. - -2011-09-03 Martin Jambor - - * ipa-prop.h (ipa_jump_func_t): New typedef. - (struct ipa_edge_args): Removed field argument_count, field - jump_functions turned into a vector. - (ipa_set_cs_argument_count): Removed. - (ipa_get_cs_argument_count): Updated to work on vectors. - (ipa_get_ith_jump_func): Likewise. - * ipa-prop.c (ipa_count_arguments): Removed. - (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access - jump functions. Update caller. - (compute_pass_through_member_ptrs): Likewise. - (compute_cst_member_ptr_arguments): Likewise. - (ipa_compute_jump_functions_for_edge): Get number of arguments from - the statement, allocate vector. - (ipa_compute_jump_functions): Do not call ipa_count_arguments. - (duplicate_ipa_jump_func_array): Removed. - (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count. - (ipa_read_node_info): Allocate vector. - -2011-09-03 John David Anglin - - PR middle-end/50232 - * config/pa/pa.md (return): Define "return" insn pattern. - (epilogue): Use it when no epilogue is needed. - * config/pa/pa.c (pa_can_use_return_insn): New function. - * config/pa/pa-protos.h (pa_can_use_return_insn): Declare. - -2011-09-03 Eric Botcazou - - * cfgexpand.c (add_stack_var): Assert that the alignment is not zero. - * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change. - Force at least BITS_PER_UNIT alignment on the new variable. - -2011-09-02 Gary Funck - - * opts.c (print_specific_help): Fix off-by-one compare in - assertion check. - * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, - CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): - Increase by +5 to allow for more languages. - * optc-gen.awk: Generate #if that ensures that the number of - languages is within the implementation-defined limit. - -2011-09-02 Michael Matz - - PR middle-end/50260 - * ipa-split.c (split_function): Call add_referenced_var. - - * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann. - (cond_if_else_store_replacement_1): Ditto. - * tree-ssa-pre.c (get_representative_for): Ditto. - (create_expression_by_pieces): Ditto. - (insert_into_preds_of_block): Ditto. - * tree-sra.c (create_access_replacement): Ditto. - (get_replaced_param_substitute): Ditto. - -2011-09-02 Bernd Schmidt - - * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New - automata_options. - (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit. - (l1w, s1w, l2w, s2w): Define in the main automaton. - (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New - units. - * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member. - (c6x_unit_names): Add the new units. - (c6x_unit_codes): New static array. - (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1, - UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1, - UNIT_QID_SIDE_OFFSET): New macros. - (RESERVATION_S2): Adjust value. - (c6x_option_override): Compute c6x_unit_codes. - (assign_reservations): Take the unit_mask of the last instruction - into account. Detect floating point reservations by looking for - the new units. Don't assign reservations if the field is already - nonzero. - (struct c6x_sched_context): Add member prev_cycle_state_ctx. - (init_sched_state): Initialize it. - (c6x_clear_sched_context): Free it. - (insn_set_clock): Clear reservation. - (prev_cycle_state): New static variable. - (c6x_init_sched_context): Save it. - (c6x_sched_init): Allocate space for it and clear it. - (c6x_sched_dfa_pre_cycle_insn): New static function. - (c6x_dfa_new_cycle): Save state at the start of a new cycle. - (c6x_variable_issue): Only record units in the unit_mask that - were not set at the start of the cycle. - (c6x_variable_issue): Compute and store the unit_mask from the - current state. - (reorg_split_calls): Ensure the new information remains correct. - (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT, - TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define. - * config/c6x/c6x.h (CPU_UNITS_QUERY): Define. - * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_): - Add special reservations. - * config/c6x/c6x-sched.md: Regenerate. - -2011-09-02 Martin Jambor - - * ipa-prop.h (ipa_node_params): Removed fields - called_with_var_arguments and node_versionable. - (ipa_set_called_with_variable_arg): Removed. - (ipa_is_called_with_var_arguments): Likewise. - * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert. - (determine_versionability): Do not check for type attributes and va - builtins. Record versionability into inline summary. - (initialize_node_lattices): Do not check - ipa_is_called_with_var_arguments. - (propagate_constants_accross_call): Likewise, ignore arguments we do - not have PARM_DECLs for, set variable flag for parameters that were - not passed a value. - (create_specialized_node): Dump info that we cannot change signature. - * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable - number of arguments. - (ipa_make_edge_direct_to_target): Likewise. - (ipa_update_after_lto_read): Likewise. - (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag. - * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if - they were remapped. - -2011-09-02 Richard Guenther - - PR tree-optimization/27460 - PR middle-end/29269 - * doc/md.texi (vcond): Document. - * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion - optab with two modes. - * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu. - (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu. - (vcond_optab): Adjust. - (vcondu_optab): Likewise. - (expand_vec_cond_expr_p): Adjust prototype. - * optabs.c (get_vcond_icode): Adjust. - (expand_vec_cond_expr_p): Likewise. - (expand_vec_cond_expr): Likewise. - * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison - vector type. - (vectorizable_condition): Allow differing types for comparison - and result. - * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode - for the comparison. - * config/i386/sse.md (vcond): Split to - vcond, vcond, - vcond and - vcondu. - (vcondv2di): Change to vcondv2di. - (vconduv2di): Likewise. - * config/arm/neon.md (vcond): Change to vcond*. - (vcondu): Likewise. - * config/ia64/vect.md (vcond): Likewise. - (vcondu): Likewise. - (vcondv2sf): Likewise. - * config/mips/mips-ps-3d.md (vcondv2sf): Likewise. - * config/rs6000/paired.md (vcondv2sf): Likewise. - * config/rs6000/vector.md (vcond): Likewise. - (vcondu): Likewise. - * config/spu/spu.md (vcond): Likewise. - (vcondu): Likewise. - -2011-09-02 Richard Guenther - - * pretty-print.h (pp_unsigned_wide_integer): New. - * tree-pretty-print.c (dump_generic_node): Print unsigned - host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer. - -2011-09-02 Richard Sandiford - - PR target/49987 - * config/rs6000/rs6000.c (paired_expand_vector_init): Check for - valid CONST_VECTOR operands. - (rs6000_expand_vector_init): Likewise. - -2011-09-02 Martin Jambor - - * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta. - * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use - BINFO_VTABLE. Parameter delta removed, all callers updated. - * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead - BINFO_VTABLE. - * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated - all calls. - * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed - handling of thunk_delta. - * ipa-cp.c (get_indirect_edge_target): Removed parameter delta. - (devirtualization_time_bonus): Do not handle thunk deltas. - (ipcp_discover_new_direct_edges): Likewise. - * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. - (try_make_edge_direct_simple_call): Likewise. - (try_make_edge_direct_virtual_call): Likewise. - * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark - parameter set as unused. - (output_edge_opt_summary): Likewise. Mark both parameters as unused. - * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark - parameter set as unused. - (output_edge_opt_summary): Likewise. Mark both parameters as unused. - (input_edge_opt_summary): Likewise. - * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream - BINFO_VIRTUALS at all. - * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise. - -2011-09-02 Richard Guenther - - * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0). - (ccp_fold_stmt): Continue replacing args when folding alloca fails. - -2011-08-31 Richard Guenther - - * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR - handling here, from ... - (expand_expr_real_1): ... here. - * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR - and VEC_COND_EXPR. - * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR - a GIMPLE_TERNARY_RHS. - * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR - and VEC_COND_EXPR here ... - (verify_gimple_assign_single): ... not here. - * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding. - * tree-object-size.c (cond_expr_object_size): Adjust. - (collect_object_sizes_for): Likewise. - * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs. - * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify. - (ssa_forward_propagate_and_combine): Adjust. - * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR - as ternary. - * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust. - * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise. - * tree-vect-stmt.c (vectorizable_condition): Likewise. - * tree-vrp.c (extract_range_from_cond_expr): Likewise. - (extract_range_from_assignment): Likewise. - -2011-08-31 Richard Sandiford - - * config/i386/i386.md: Use (match_test ...) for attribute tests. - * config/i386/mmx.md: Likewise. - * config/i386/sse.md: Likewise. - * config/i386/predicates.md (call_insn_operand): Use - (not (match_test "...")) instead of (match_test "!...") - * config/i386/constraints.md (w): Likewise. - -2011-08-31 Richard Sandiford - - * doc/md.texi: Describe the use of match_tests in attribute tests. - * rtl.def (MATCH_TEST): Update commentary. - * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag) - (write_test_expr, walk_attr_value): Handle MATCH_TEST. - -2011-08-31 Richard Sandiford - - * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. - (attr_string): Use copy_md_ptr_loc. - -2011-08-31 Martin Jambor - - PR middle-end/49886 - * ipa-inline-analysis.c (compute_inline_parameters): Set - can_change_signature of noes with typde attributes. - * ipa-split.c (split_function): Do not skip any arguments if - can_change_signature is set. - -2011-08-31 Martin Jambor - - * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias - check removed. - -2011-08-31 Richard Guenther - - * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE - special-casing. - -2011-08-31 Marc Glisse - - * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals. - -2011-08-31 Tom de Vries - - PR middle-end/43513 - * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule. - * tree-ssa-ccp.c (params.h): Include. - (fold_builtin_alloca_for_var): New function. - (ccp_fold_stmt): Use fold_builtin_alloca_for_var. - -2011-08-30 Uros Bizjak - - * config/i386/i386.c (ix86_valid_target_attribute_inner_p): - Handle FMA option. - -2011-08-30 Andrew Stubbs - - * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2, - b3 and b4 unsigned. - -2011-08-30 Andrew Stubbs - - * config/arm/arm.c (arm_gen_constant): Set can_negate correctly - when code is SET. - -2011-08-30 Richard Guenther - - PR middle-end/48571 - * gimple.h (maybe_fold_offset_to_address): Remove. - (maybe_fold_offset_to_reference): Likewise. - (maybe_fold_stmt_addition): Likewise. - (may_propagate_address_into_dereference): Likewise. - * tree-inline.c (remap_gimple_op_r): Do not reconstruct - array references. - * gimple-fold.c (canonicalize_constructor_val): Likewise. - Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF - addresses instead. - (may_propagate_address_into_dereference): Remove. - (maybe_fold_offset_to_array_ref): Likewise. - (maybe_fold_offset_to_reference): Likewise. - (maybe_fold_offset_to_address): Likewise. - (maybe_fold_stmt_addition): Likewise. - (fold_gimple_assign): Do not reconstruct array references but - instead canonicalize invariant POINTER_PLUS_EXPRs to invariant - MEM_REF addresses. - (gimple_fold_stmt_to_constant_1): Likewise. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. - * gimplify.c (gimplify_conversion): Likewise. - (gimplify_expr): Likewise. - -2011-08-30 Ilya Tocar - - * config/i386/fmaintrin.h: New. - * config.gcc: Add fmaintrin.h. - * config/i386/i386.c - (enum ix86_builtins) : New. - : Likewise. - * config/i386/sse.md (fmai_vmfmadd_): New. - (*fmai_fmadd_): Likewise. - (*fmai_fmsub_): Likewise. - (*fmai_fnmadd_): Likewise. - (*fmai_fnmsub_): Likewise. - * config/i386/immintrin.h: Add fmaintrin.h. - -2011-08-30 Bernd Schmidt - - * genautomata.c (NO_COMB_OPTION): New macro. - (no_comb_flag): New static variable. - (gen_automata_option): Handle NO_COMB_OPTION. - (comb_vect_p): False if no_comb_flag. - (add_vect): Move computation of min/max values. Return early if - no_comb_flag. - * doc/md.texi (automata_option): Document no-comb-vect. - - * config/i386/i386.c (get_pc_thunk_name): Change prefix to - "__x86.get_pc_thunk". - - * bb-reorder.c (insert_section_boundary_note): Only do it if - we reordered the blocks; i.e. not if !optimize_function_for_speed_p. - -2011-08-30 Christian Bruel - - * coverage.c (coverage_init): Check flag_branch_probabilities instead of - flag_profile_use. - -2011-08-29 Michael Meissner - - * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default - to off. Document switch. - * doc/invoke.texi (-msave-toc-indirect): Ditto. - -2011-08-29 Jakub Jelinek - - * gthr-posix.h (__gthread_active_p): Do not use preprocessor - conditionals and comments inside macro arguments. - -2011-08-29 Artjoms Sinkarovs - Richard Guenther - - * tree.h (constant_boolean_node): Adjust prototype. - * fold-const.c (fold_convert_loc): Move aggregate conversion - leeway down. - (constant_boolean_node): Make value parameter boolean, add - vector type handling. - (fold_unary_loc): Use constant_boolean_node. - (fold_binary_loc): Preserve types properly when folding - COMPLEX_EXPR <__real x, __imag x>. - * gimplify.c (gimplify_expr): Handle vector comparison. - * tree.def (EQ_EXPR, ...): Document behavior on vector typed - comparison. - * tree-cfg.c (verify_gimple_comparison): Verify vector typed - comparisons. - -2011-08-29 Jakub Jelinek - - PR middle-end/48722 - * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs, - reset_used_flags also in CALL_INSN_FUNCTION_USAGE. - (verify_rtl_sharing): Likewise and verify_rtx_sharing - in there too. - (unshare_all_rtl_in_chain): For CALL_INSNs - copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE. - -2011-08-29 Richard Guenther - - * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location - on the built ADDR_EXPR. - -2011-08-29 Jakub Jelinek - - PR debug/50215 - * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn - before adding ENTRY_VALUE to val->locs. - -2011-08-28 Mikael Pettersson - - PR bootstrap/50218 - * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize - comp. - -2011-08-27 Bernd Schmidt - - * doc/rtl.texi (simple_return): Document. - (parallel, PATTERN): Here too. - * doc/md.texi (return): Mention it's allowed to expand to simple_return - in some cases. - (simple_return): Document standard pattern. - * gengenrtl.c (special_rtx): SIMPLE_RETURN is special. - * final.c (final_scan_insn): Use ANY_RETURN_P on body. - * reorg.c (function_return_label, function_simple_return_label): - New static variables, replacing... - (end_of_function_label): ... this. - (simplejump_or_return_p): New static function. - (optimize_skip, steal_delay_list_from_fallthrough, - fill_slots_from_thread): Use it. - (relax_delay_slots): Likewise. Use ANY_RETURN_P on body. - (rare_destination, follow_jumps): Use ANY_RETURN_P on body. - (find_end_label): Take a new arg which is one of the two return - rtxs. Depending on which, set either function_return_label or - function_simple_return_label. All callers changed. - (make_return_insns): Make both kinds. - (dbr_schedule): Adjust for two kinds of end labels. - * function.c (emit_return_into_block): Set JUMP_LABEL properly. - * genemit.c (gen_exp): Handle SIMPLE_RETURN. - (gen_expand, gen_split): Use ANY_RETURN_P. - * df-scan.c (df_uses_record): Handle SIMPLE_RETURN. - * rtl.def (SIMPLE_RETURN): New code. - * ifcvt.c (find_if_case_1): Be more careful about - redirecting jumps to the EXIT_BLOCK. - * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p, - returnjump_p_1): Handle SIMPLE_RETURNs. - * print-rtl.c (print_rtx): Likewise. - * rtl.c (copy_rtx): Likewise. - * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P. - * combine.c (simplify_set): Likewise. - * resource.c (find_dead_or_set_registers, mark_set_resources): - Likewise. - * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1, - copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs. - (init_emit_regs): Initialize simple_return_rtx. - * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to - force_nonfallthru_and_redirect. - * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN. - (GR_SIMPLE_RETURN): New enum value. - (simple_return_rtx): New macro. - * basic-block.h (force_nonfallthru_and_redirect): Adjust - declaration. - * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label - argument. All callers changed. Be careful about what kinds of - returnjumps to generate. - * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb, - ix86_pad_short_function): Likewise. - * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds - of return. - * config/mips/mips.md (any_return): New code_iterator. - (optab): Add cases for return and simple_return. - (return): Expand to a simple_return. - (simple_return): New pattern. - (*, *_internal for any_return): New patterns. - (return_internal): Remove. - * config/mips/mips.c (mips_expand_epilogue): Make the last insn - a simple_return_internal. - -2011-08-27 Uros Bizjak - - * config/i386/sse.md (*absneg2): Fix split condition. - (vec_extract_lo_): Prevent both operands in memory. - (vec_extract_lo_v16hi): Ditto. - (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. - -2011-08-27 Uros Bizjak - - * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note. - (*sse2_mulv4si3): Ditto. - (mulv2di3): Ditto. - * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV - notes to REG_EQUAL. - -2011-08-27 Uros Bizjak - - PR target/50202 - * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note - when all outputs are unused. - (sse4_2_pcmpistr): Ditto. - -2011-08-26 Uros Bizjak - - * config/i386/i386.md (round2): New expander. - * config/i386/i386.c (enum ix86_builtins): Add - IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}. - (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256} - descriptions. - (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins. - (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor. - -2011-08-26 Uros Bizjak - - PR middle-end/50083 - * convert.c (convert_to_integer) : Convert - only when TARGET_C99_FUNCTIONS. - : Ditto. - : Ditto. - -2011-08-26 Michael Matz - Jakub Jelinek - - PR lto/50165 - * lto-streamer-in.c (canon_file_name): Initialize new_slot->len; - don't call strlen twice, use memcpy. - -2011-08-26 H.J. Lu - - * config/i386/bmi2intrin.h: Allow in . - * config/i386/bmiintrin.h: Likewise. - * config/i386/lzcntintrin.h: Likewise. - - * config/i386/immintrin.h: Include , - and . - -2011-08-26 Rainer Orth - - PR target/50166 - * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main. - * configure: Regenerate. - -2011-08-26 Jakub Jelinek - - PR c/50179 - * c-typeck.c (c_process_expr_stmt): Skip over nops and - call mark_exp_read even if exprv is ADDR_EXPR. - -2011-08-26 Richard Sandiford - - * df-problems.c (df_note_bb_compute): Pass uses rather than defs - to df_set_dead_notes_for_mw. - -2011-08-26 Richard Guenther - - * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF]. - -2011-08-26 Zdenek Dvorak - Tom de Vries - - * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field. - (struct ivopts_data): Add loop_single_exit_p field. - (niter_for_exit): Change parameter desc_p into return value. Return - desc if desc->may_be_zero. Free desc if unused. - (niter_for_single_dom_exit): Change return type. - (find_induction_variables): Handle changed return type of - niter_for_single_dom_exit. Dump may_be_zero. - (add_candidate_1): Keep original base and step type for IP_ORIGINAL. - (set_use_iv_cost): Add and handle comp parameter. - (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add - comp argument to set_use_iv_cost. - (strip_wrap_conserving_type_conversions, expr_equal_p) - (difference_cannot_overflow_p, iv_elimination_compare_lt): New function. - (may_eliminate_iv): Add comp parameter. Handle new return type of - niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt. - (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost - and may_eliminate_iv. - (rewrite_use_compare): Move call to iv_elimination_compare to ... - (may_eliminate_iv): Here. - (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p. - -2011-08-26 Tom de Vries - - * tree-pretty-print (dump_generic_node): Test for NULL_TREE before - accessing TREE_TYPE. - -2011-08-26 Jiangning Liu - - * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well. - (*ior_scc_scc_cmp): Likewise - (*and_scc_scc): Likewise. - (*and_scc_scc_cmp): Likewise. - (*and_scc_scc_nodom): Likewise. - (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2. - -2011-08-26 Jakub Jelinek - - * rtlanal.c (nonzero_bits1): Handle CLRSB. - -2011-08-26 Richard Guenther - - * expr.c (string_constant): Handle &MEM_REF. - -2011-08-26 Andrew Stubbs - - * config/arm/arm.c (struct four_ints): New type. - (count_insns_for_constant): Delete function. - (find_best_start): Delete function. - (optimal_immediate_sequence): New function. - (optimal_immediate_sequence_1): New function. - (arm_gen_constant): Move constant splitting code to - optimal_immediate_sequence. - Rewrite constant negation/invertion code. - -2011-08-26 Andrew Stubbs - - * config/arm/arm-protos.h (const_ok_for_op): Add prototype. - * config/arm/arm.c (const_ok_for_op): Add support for addw/subw. - Remove prototype. Remove static function type. - * config/arm/arm.md (*arm_addsi3): Add addw/subw support. - Add arch attribute. - * config/arm/constraints.md (Pj, PJ): New constraints. - -2011-08-26 Ramana Radhakrishnan - - * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New. - ("cortex_a9_multiply_long"): New and use above. Handle all - long multiply cases. - ("cortex_a9_multiply"): Handle smmul and smmulr. - ("cortex_a9_mac"): Handle smmla. - -2011-08-25 Richard Henderson - - PR 50132 - PR 49864 - * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for - non-constant stack adjutment. - * expr.c (find_args_size_adjust): Break out from ... - (fixup_args_size_notes): ... here. - * rtl.h (find_args_size_adjust): Declare. - -2011-08-25 Uros Bizjak - - * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3, - sse4 and sse4_noavx. - (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx. - (*pushdf_rex64): Change Y2 register constraint to x. - (*movdf_internal_rex64): Ditto. - (*zero_extendsidi2_rex64): Ditto. - (*movdi_internal): Change Y2 register constraint to x - and update "isa" attribute. - (*pushdf): Ditto. - (*movdf internal): Ditto. - (zero_extendsidi2_1): Ditto. - (*truncdfdf_mixed): Ditto. - (*truncxfdf2_mixed): Ditto. - * config/i386/mmx.md (*mov_internal_rex64): Change Y2 - register constraint to x. - (*movv2sf_internal_rex64): Ditto. - (*mov_internal): Change Y2 register constraint to x - and add "isa" attribute. - (*movv2sf_internal): Ditto. - (*vec_extractv2si_1): Ditto. - * config/i386/sse.md ("vec_set_0): Change Y2 and Y4 register - constraints to x and update "isa" attribute. - (*vec_interleave_highv2df): Change Y3 registerconstraint - to x and update "isa" attribute. - (*vec_interleave_lowv2df): Ditto. - (*vec_concatv2df): Change Y2 register constraint to x and - update "isa" attribute. - (sse2_loadld): Ditto. - (*vec_extractv2di_1): Ditto. - (*vec_dupv4si): Ditto. - (*vec_dupv2di): Ditto. - (*vec_concatv4si): Ditto. - (vec_concatv2di): Ditto. - * config/i386/constraints.md (Y2): Remove. - (Y3): Ditto. - (Y4): Ditto. - -2011-08-25 Bernd Schmidt - - * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use, - dump_def_use_chain): Don't declare. - (mark_conflict, create_new_chain): Move before users. - (regrename_optimize): Move to near end of file. - -2011-08-25 Georg-Johann Lay - - * config/avr-protos.h (byte_immediate_operand): Remove Prototype. - (secondary_input_reload_class): Remove Prototype. - * config/avr/avr.c (byte_immediate_operand): Remove Function. - * config/avr/avr.md (setmemhi): Use u8_operand. - (strlenhi): Use const0_rtx for comparison. - * config/avr/avr.h (avr_reg_order): Remove Declaration. - -2011-08-25 Georg-Johann Lay - - * config/avr/avr.c (reg_class_tab): Make local to - avr_regno_reg_class. Return smallest register class available. - -2011-08-25 Georg-Johann Lay - - * config/avr/avr.c (STR_PREFIX_P): New Define. - (avr_asm_declare_function_name): Use it. - (avr_asm_named_section): Use it. - (avr_section_type_flags): Use it. - -2011-08-25 Bernd Schmidt - - * doc/md.texi (automata_option): Document collapse-ndfa. - * genautomata.c (COLLAPSE_OPTION): New macro. - (collapse_flag): New static variable. - (struct description): New member normal_decls_num. - (struct automaton): New members advance_ainsn and collapse_ainsn. - (gen_automata_option): Check for COLLAPSE_OPTION. - (collapse_ndfa_insn_decl): New static variable. - (add_collapse_ndfa_insn_decl, special_decl_p): New functions. - (find_arc): If insn is the collapse-ndfa insn, accept any arc we find. - (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if - necessary. Use normal_decls_num rather than decls_num, remove - test for special decls. - (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p. - (make_automaton); Likewise. Use the new advance_cycle_insn member - of struct automaton. - (create_composed_state): Disallow advance-cycle arcs if collapse_flag - is set. - (NDFA_to_DFA): Don't create composed states for the collapse-ndfa - transition. Create the necessary transitions for it. - (create_ainsns): Return void. Take an automaton_t argument, and - update its ainsn_list, advance_ainsn and collapse_ainsn members. All - callers changed. - (COLLAPSE_NDFA_VALUE_NAME): New macro. - (output_tables): Output code to define it. - (output_internal_insn_code_evaluation): Output code to accept - const0_rtx as collapse-ndfa transition. - (output_default_latencies, output_print_reservation_func, - output_print_description): Reorganize loops to use normal_decls_num - as loop bound; remove special case for advance_cycle_insn_decl. - (initiate_automaton_gen): Handle COLLAPSE_OPTION. - (check_automata_insn_issues): Check for collapse_ainsn. - (expand_automate): Allocate sufficient space. Initialize - normal_decls_num. - -2011-08-25 Georg-Johann Lay - - * config/avr/avr.md: Fix indentation from r177991. - -2011-08-25 Bernd Schmidt - - * regrename.c (struct du_head): Remove member terminated. - (create_new_chain): Don't initialize it. - (scan_rtx_reg): Don't set or test it, test the open_chains_set - bitmap instead. - (tick, this_tick): New global variables, moved out of - regrename_optimize. - (current_id, open_chains, closed_chains, open_chains_set, - live_in_chains, live_hard_regs): Reorder declarations. - (dump_def_use_chain): Move function earlier in the file. - (rename_chains): New static function, broken out of - regrename_optimize. - (regrename_optimize): Use it. Remove #if 0'ed code. - -2011-08-25 Bernhard Reutner-Fischer - - * varasm.c: (default_binds_local_p_1): Commentary typo fix. - -2011-08-24 H.J. Lu - - PR target/50172 - * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed. - -2011-08-24 Richard Guenther - - * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the - ref in the basic-block case. Move stripping array-refs - to the place we create an access-function for it. Remove - bogus stripping down a MEM_REF to its base. - -2011-08-24 Richard Guenther - - * fold-const.c (fold_comparison): Fold &a < &a + 4 even - with -fno-strict-overflow. - -2011-08-24 Richard Guenther - - * tree-vectorizer.c (vect_print_dump_info): Avoid the - file and location clutter when dumping to dump files. - -2011-08-24 Simon Baldwin - - * gengtype-state.c (write_state): Remove timestamped header line. - -2011-08-24 Joseph Myers - - * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o) - (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o) - (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o) - (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New. - (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o) - (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o) - (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation - rules. - (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER). - -2011-08-24 Joseph Myers - - * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@). - -2011-08-24 Richard Guenther - - PR tree-optimization/50067 - * tree-data-ref.c (dr_analyze_indices): Do not add an access - function for a MEM_REF base that has no evolution in the loop - nest or that is not analyzable. - -2011-08-23 Vladimir Makarov - - * ira.c (ira_init_register_move_cost): Check small subclasses - through ira_reg_class_max_nregs and ira_available_class_regs. - -2011-08-23 Uros Bizjak - - * config/i386/constraints.md (Yp): New register constraint. - * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using - Yp register constraint. - (*addqi_1): Merge with *addqi_1_lea using Yp register constraint. - (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint. - (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint. - -2011-08-23 Kirill Yukhin - - * config/i386/sse.md (mul3_highpart): Update. - -2011-08-23 Mark Heffernan - - PR middle-end/38509 - * common.opt (Wfree-nonheap-object): New option. - * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object. - * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object - to warning. - (expand_builtin): Make warning conditional. - -2011-08-23 Uros Bizjak - - * config/i386/i386.md (type): Add imulx, ishiftx and rotatex. - (length_immediate): Handle imulx, ishiftx and rotatex. - (imm_disp): Ditto. - (isa): Add bmi2. - (enabled): Handle bmi2. - (*mul3): Split from *mul3. - (*umul3): Ditto. Add imulx BMI2 alternative. - (*bmi2_umulditi3_1): New insn pattern. - (*bmi2_umulsidi3_1): Ditto. - (*umul3 splitter): New splitter to avoid flags dependency. - (*bmi2_ashl3_1): New insn pattern. - (*ashl3_1): Add ishiftx BMI2 alternative. - (*ashl3_1 splitter): New splitter to avoid flags dependency. - (*bmi2_ashlsi3_1_zext): New insn pattern. - (*ashlsi3_1_zext): Add ishiftx BMI2 alternative. - (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency. - (*bmi2_3_1): New insn pattern. - (*3_1): Add ishiftx BMI2 alternative. - (*3_1 splitter): New splitter to avoid - flags dependency. - (*bmi2_si3_1_zext): New insn pattern. - (*si3_1_zext): Add ishiftx BMI2 alternative. - (*si3_1_zext splitter): New splitter to avoid - flags dependency. - (*bmi2_rorx3_1): New insn pattern. - (*3_1): Add rotatex BMI2 alternative. - (*rotate3_1 splitter): New splitter to avoid flags dependency. - (*rotatert3_1 splitter): Ditto. - (*bmi2_rorxsi3_1_zext): New insn pattern. - (*si3_1_zext): Add rotatex BMI2 alternative. - (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency. - (*rotatertsi3_1_zext splitter): Ditto. - -2011-08-23 Kirill Yukhin - - * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New. - (OPTION_MASK_ISA_BMI2_UNSET): Likewise. - (ix86_handle_option): Handle OPT_mbmi2 case. - * config.gcc (i[34567]86-*-*): Add bmi2intrin.h. - (x86_64-*-*): Likewise. - * config/i386/bmi2intrin.h: New file. - * config/i386/cpuid.h (bit_BMI2): New. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect - BMI2 feature. - * config/i386/i386-c.c (ix86_target_macros_internal): - Conditionally define __BMI2__. - * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2. - Handle BMI2 option. - (ix86_valid_target_attribute_inner_p): Handle BMI2 option. - (print_reg): New code. - (ix86_print_operand): Likewise. - (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, - IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, - IX86_BUILTIN_PEXT64. - (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, - IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, - IX86_BUILTIN_PEXT64. - * config/i386/i386.h (TARGET_BMI2): New. - * config/i386/i386.md (UNSPEC_PDEP): New. - (UNSPEC_PEXT): Likewise. - (*bmi2_bzhi_3): Likewise. - (*bmi2_pdep_3): Likewise. - (*bmi2_pext_3): Likewise. - * config/i386/i386.opt (mbmi2): New. - * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__ - is defined. - * doc/extend.texi: Document BMI2 built-in functions. - * doc/invoke.texi: Document -mbmi2. - -2011-08-23 Jakub Jelinek - - PR middle-end/50161 - * simplify-rtx.c (simplify_const_unary_operation): If - op is CONST_INT, don't look at op_mode, but use instead mode. - * optabs.c (add_equal_note): For FFS, CLZ, CTZ, - CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for - operation and TRUNCATE/ZERO_EXTEND if needed. - * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap): - Document that operand mode must be same as operation mode, - or VOIDmode. - * config/avr/avr.md (paritysi2, *parityqihi2.libgcc, - *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc, - *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2, - *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops - use the mode of operand for the operation and add truncate - or zero_extend around if needed. - * config/c6x/c6x.md (ctzdi2): Likewise. - * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise. - -2011-08-12 Michael Matz - - * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment. - (gimple_expand_cfg): Merge alignment info for coalesced pointer - SSA names. - -2011-08-23 Richard Guenther - - * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency. - * tree-affine.h (aff_comb_cannot_overlap_p): Declare. - * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved - from ... - * tree-ssa-loop-im.c (cannot_overlap_p): ... here. - (mem_refs_may_alias_p): Adjust. - * tree-data-ref.h (dr_may_alias_p): Adjust. - * tree-data-ref.c: Include tree-affine.h. - (dr_analyze_indices): Do nothing for the non-loop case. - (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate - more cases in the non-loop case. - * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust - calls to dr_may_alias_p. - (write_alias_graph_to_ascii_ecc): Likewise. - (write_alias_graph_to_ascii_dot): Likewise. - (build_alias_set_optimal_p): Likewise. - -2011-08-23 Richard Guenther - - PR tree-optimization/50162 - * tree-vect-stmts.c (vectorizable_call): Fix argument lookup. - -2011-08-23 Richard Guenther - - * tree-data-ref.c (dr_analyze_indices): Add comments, handle - REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs. - (create_data_ref): Also dump access functions for the created data-ref. - -2011-08-22 Uros Bizjak - Kirill Yukhin - - PR target/50155 - * config/i386/sse.md (VI_AVX2): New. - (3): Use VI_AVX2 mode iterator. - (*3): Ditto. - (_andnot3): Ditto. - (*andnot3): Fix order of cond operands. - Add asserts for correct TARGET_xxx. - (*3): Ditto. - -2011-08-22 Anatoly Sokolov - - * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro. - * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove. - * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change - regclass argument type to reg_class_t. Change 'max' and 'v' vars - and return types to unsigned char. Use reg_class_contents instead - of class_contents. - (TARGET_CLASS_MAX_NREGS): Define. - -2011-08-22 Bernd Schmidt - - * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation - to make computed_jump_p return true. - -2011-08-22 Rainer Orth - - * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it. - (PICFLAG_FOR_TARGET): Substitute. - * aclocal.m4: Regenerate. - * configure: Regenerate. - -2011-08-22 Dodji Seketeli - - * c-family/c-pch.c (c_common_read_pch): Re-set line table right - after reading in the pch. - -2011-08-22 H.J. Lu - - * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined. - * configure: Regenerated. - -2011-08-22 Jakub Jelinek - - PR tree-optimization/50133 - * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location - from stmt instead of some statement around gsi. - - PR middle-end/50141 - * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if - innerdecl is a VAR_DECL. - -2011-08-22 Kirill Yukhin - - * config/i386/avx2intrin.h: New file. - * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI, - PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI, - V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI, - V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI, - V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI, - V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI, - V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI, - V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI, - V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI, - V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI, - V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT, - V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI, - V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI, - V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI, - V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI, - V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT, - V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT, - V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI, - VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI, - VOID_FTYPE_PV8SI_V8SI_V8SI, - V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT, - V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT, - V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT, - V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT, - V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT, - V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT, - V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT, - V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT, - V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT, - V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT, - V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT, - V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT, - V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT, - V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT, - V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT, - V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT, - V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT, - V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT, - V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT, - V4DI_FTYPE_V4DI_INT_CONVERT, - V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New. - * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256, - IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, - IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, - IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, - IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, - IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, - IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, - IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, - IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, - IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, - IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, - IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, - IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, - IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, - IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, - IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, - IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, - IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, - IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, - IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, - IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, - IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, - IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, - IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, - IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, - IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, - IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, - IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, - IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, - IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, - IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, - IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, - IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, - IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, - IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, - IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, - IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, - IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, - IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, - IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, - IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, - IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, - IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, - IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, - IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, - IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, - IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, - IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, - IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, - IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, - IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, - IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, - IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, - IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, - IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, - IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, - IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, - IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, - IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS, - IX86_BUILTIN_VBROADCASTSS_PS256, - IX86_BUILTIN_VBROADCASTSD_PD256, - IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, - IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, - IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, - IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, - IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, - IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, - IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, - IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, - IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, - IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, - IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, - IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, - IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256, - IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, - IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, - IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, - IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, - IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI, - IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF, - IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF, - IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF, - IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF, - IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI, - IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI, - IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI, - IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI. - (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256, - IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, - IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, - IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, - IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256. - (bdesc_args): Add IX86_BUILTIN_MPSADBW256, - IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, - IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, - IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, - IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, - IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, - IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, - IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, - IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, - IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, - IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, - IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, - IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, - IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, - IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, - IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, - IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, - IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, - IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, - IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, - IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, - IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, - IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, - IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, - IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, - IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, - IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, - IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, - IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, - IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, - IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, - IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, - IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, - IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, - IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, - IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, - IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, - IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, - IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, - IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, - IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, - IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, - IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, - IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, - IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, - IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, - IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, - IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, - IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, - IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, - IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, - IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, - IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, - IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, - IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, - IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, - IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, - IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, - IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256, - IX86_BUILTIN_VBROADCASTSD_PD256, - IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, - IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, - IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, - IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, - IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, - IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, - IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, - IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, - IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, - IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, - IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, - IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, - IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, - IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI. - (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF, - IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF, - IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF, - IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF, - IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI, - IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI, - IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI, - IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI, - IX86_BUILTIN_GATHERDIV8SI. - (ix86_preferred_simd_mode): Support AVX2 modes. - (ix86_expand_args_builtin): Support AVX2 builtins. - (ix86_expand_special_args_builtin): Likewise. - (ix86_expand_builtin): Likewise. - * config/i386/i386.md (UNSPEC_VPERMSI): New. - (UNSPEC_VPERMDF): Likewise. - (UNSPEC_VPERMSF): Likewise. - (UNSPEC_VPERMDI): Likewise. - (UNSPEC_VPERMTI): Likewise. - (UNSPEC_GATHER): Likewise. - (ssemodesuffix): Extend. - * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__ - is defined. - * config/i386/predicates.md (const1248_operand): New. - * config/i386/sse.md (VI1_AVX2): New mode iterator. - (VI2_AVX2): Likewise. - (VI4_AVX2): Likewise. - (VI8_AVX2): Likewise. - (VIMAX_AVX2): Likewise. - (SSESCALARMODE): Likewise. - (VI12_AVX2): Likewise. - (VI24_AVX2): Likewise. - (VI124_AVX2): Likewise. - (VI248_AVX2): Likewise. - (VI48_AVX2): Likewise. - (VI4SD_AVX2): Likewise. - (V48_AVX2): Likewise. - (AVX256MODE2P): Likewise. - (AVXMODE48P_DI): Likewise. - (sse2_avx2): New mode attribute. - (ssse3_avx2): Likewise. - (sse4_1_avx2): Likewise. - (avx_avx2): Likewise. - (ssebytemode): Likewise. - (AVXTOSSEMODE): Likewise. - (AVXMODE48P_DI): Likewise. - (gthrfirstp): Likewise. - (gthrlastp): Likewise. - (lshift): New code_iterator - (lshift): New code attribute. - (lshift): Likewise. - (ssescalarmodesuffix): Update. - (sseunpackmode): Likewise. - (ssepackmode): Likewise. - (avx2_vec_dupv4sf): New insn pattern. - (avx2_vec_dupv8sf): Likewise. - (avx2_interleave_highv4di): Likewise. - (avx2_interleave_lowv4di): Likewise. - (avx2_umulv4siv4di3): Likewise - (*avx2_umulv4siv4di3): Likewise - (avx2_pmaddwd): Likewise. - (*avx2_pmaddwd): Likewise. - (avx2_lshrqv4di3): Likewise. - (avx2_lshlqv4di3): Likewise. - (avx2_lshl3): Likewise. - (avx2_3): Likewise. - (*avx2_3): Likewise. - (avx2_3): Likewise. - (*avx2_3): Likewise. - (avx2_eq3): Likewise. - (*avx2_eq3): Likewise. - (avx2_gt3): Likewise. - (avx2_interleave_highv32qi): New. - (avx2_interleave_lowv32qi): Likewise. - (avx2_interleave_highv16hi): Likewise. - (avx2_interleave_lowv16hi): Likewise. - (avx2_interleave_highv8si): Likewise. - (avx2_interleave_lowv8si): Likewise. - (avx2_pshufd): Likewise. - (avx2_pshufd_1): Likewise. - (avx2_pshuflwv3): Likewise. - (avx2_pshuflw_1): Likewise. - (avx2_pshufhwv3): Likewise. - (avx2_pshufhw_1): Likewise. - (avx2_uavgv32qi3): Likewise. - (*avx2_uavgv32qi3): Likewise. - (avx2_uavgv16hi3): Likewise. - (*avx2_uavgv16hi3): Likewise. - (avx2_pmovmskb): Likewise. - (avx2_phaddwv16hi3): Likewise. - (avx2_phadddv8si3): Likewise. - (avx2_phaddswv16hi3): Likewise. - (avx2_phsubwv16hi3): Likewise. - (avx2_phsubdv8si3): Likewise. - (avx2_phsubswv16hi3): Likewise. - (avx2_pmaddubsw256): Likewise. - (avx2_umulhrswv16hi3): Likewise. - (*avx2_umulhrswv16hi3): Likewise. - (avx2_packusdw): Likewise. - (avx2_pblendd): Likewise. - (avx2_v16qiv16hi2): Likewise. - (avx2_v8qiv8si2): Likewise. - (avx2_v8hiv8si2): Likewise. - (avx2_v4qiv4di2): Likewise. - (avx2_v4hiv4di2): Likewise. - (avx2_v4siv4di2): Likewise. - (avx2_pbroadcast): Likewise. - (avx2_permvarv8si): Likewise. - (avx2_permv4df): Likewise. - (avx2_permvarv8sf): Likewise. - (avx2_permv4di): Likewise. - (avx2_permv2ti): Likewise. - (avx2_vec_dupv4df): Likewise. - (avx2_vbroadcasti128_): Likewise. - (avx2_vec_set_lo_v4di): Likewise. - (avx2_vec_set_hi_v4di): Likewise. - (*avx2_maskmov): Likewise. - (avx2_extracti128): Likewise. - (avx2_inserti128): Likewise. - (avx2_ashrvv8si): Likewise. - (avx2_ashrvv4si): Likewise. - (avx2_vv8si): Likewise. - (avx2_v): Likewise. - (avx2_vv2di): Likewise. - (avx2_gathersi): Likewise. - (*avx2_gathersi): Likewise. - (avx2_gatherdi): Likewise. - (*avx2_gatherdi): Likewise. - (avx2_gatherdi256): Likewise. - (*avx2_gatherdi256): Likewise. - (3): Use VI mode iterator. - (*3): Use VI mode iterator. - (_3): Rename from - sse2_3. Use VI12_AVX2 mode iterator. - (*_3): Rename from - *sse2_3. Use VI12_AVX2 mode iterator. - (mul3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator. - (*mul3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator. - (mul3_highpart): Rename from mulv8hi3_highpart. - Use VI2_AVX2 mode iterator. - (*mul3_highpart): Rename from *mulv8hi3_highpart. - Use VI2_AVX2 mode iterator. - (mul3): Rename from mulv4si3. Use VI4_AVX2 mode iterator. - (*mul3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator. - (*_mulv2siv2di3): Rename from *sse4_1_mulv4si3. - Use VI4_AVX2 mode iterator. - (ashr3): Use VI24_AVX2 mode iterator. - (lshr3): Use VI248_AVX2 mode iterator. - (_ashl3): Rename from sse2_ashlv1ti3. - Use VIMAX_AVX2 mode iterator. - (_andnot3): Rename from sse2_andnot3. - Use VI mode iterator. - (*andnot3): Update for AVX2. - (*3): Likewise. - (_packsswb): Rename from sse2_packsswb. - Use VI1_AVX mode iterator. - (_packssdw): Rename from sse2_packssdw. - Use VI2_AVX mode iterator. - (_packuswb): Rename from sse2_packsswb. - Use VI1_AVX mode iterator. - (_psadbw): Rename from sse2_psadbw. - Use VI8_AVX2 mode iterator. - (_pshufb3): Rename from ssse3_pshufbv16qi3. - Use VI1_AVX2 mode iterator. - (_psign3): Rename from ssse3_psign3. - Use VI124_AVX2 mode iterator. - (_palignr): Rename from ssse3_palignrti. - Use SSESCALARMODE mode iterator. - (abs2): Use VI124_AVX2 mode iterator. - (_movntdqa): Rename from sse4_1_movntdqa. - Use VI8_AVX2 mode iterator. - (_mpsadbw): Rename from sse4_1_mpsadbw. - Use VI1_AVX2 mode iterator. - (_pblendvb): Rename from sse4_1_pblendvb. - Use VI1_AVX2 mode iterator. - (_pblendw): Rename from sse4_1_pblendvb. - Use VI2_AVX2 mode iterator. - (_maskload): Rename from - avx_maskload. Use V48_AVX2 mode iterator. - (_maskstore): Rename from - avx_maskstore. - Use V48_AVX2 mode iterator. - * doc/extend.texi: Document AVX2 built-in functions. - * doc/invoke.texi: Document -mavx2. - -2011-08-22 Matthias Klose - - Revert: - 2011-07-11 Arthur Loiret - Matthias Klose - * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if - tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc - convention. - * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. - -2011-08-22 Mikael Pettersson - - PR bootstrap/50146 - * ira-color.c (assign_hard_reg): Move saved_nregs declaration - to #ifndef HONOR_REG_ALLOC_ORDER block. - -2011-08-21 Richard Henderson - - * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN. - * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P. - * resource.c (next_insn_no_annul): Likewise. - (mark_set_resources): Likewise. - * reorg.c (delete_from_delay_slot): Likewise. - (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise. - (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing. - -2011-08-21 Uros Bizjak - - * config/i386/i386.md (any_div): Remove. - (sgnprefix): Update for removal. - (u): Ditto. - -2011-08-20 Vladimir Makarov - - * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class - for ira_reg_class_max_nregs. Increase pressure by 1. - (mark_pseudo_regno_subword_dead): Use allocno class - for ira_reg_class_max_nregs. - -2011-08-20 Richard Henderson - - * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, - config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, - config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, - config/c6x/ltf.c: Adjust include path for soft-fp. - -2011-08-20 H.J. Lu - - PR other/46770 - * config.gcc (tm_file): Add initfini-array.h if - .init_arrary/.fini_array are supported. - - * crtstuff.c: Don't generate .ctors nor .dtors sections if - USE_INITFINI_ARRAY is defined. - - * output.h (default_elf_init_array_asm_out_constructor): New. - (default_elf_fini_array_asm_out_destructor): Likewise. - * varasm.c (elf_init_array_section): Likewise. - (elf_fini_array_section): Likewise. - (get_elf_initfini_array_priority_section): Likewise. - (default_elf_init_array_asm_out_constructor): Likewise. - (default_elf_fini_array_asm_out_destructor): Likewise. - - * config/initfini-array.h: New. - -2011-08-20 Richard Sandiford - - * config/mips/mips.c (mips_class_max_nregs): Check that the mode is - OK for ST_REGS and FP_REGS before taking those classes into account. - -2011-08-20 Richard Sandiford - - * config/mips/mips.c (mips_reorg_process_insns): Check for jumps - before checking for annulled branches. - -2011-08-20 Uros Bizjak - - * config/i386/i386.c (ix86_binary_operator_ok): Use - satisfies_constraint_L. - -2011-08-20 Uros Bizjak - Michael Matz - - * config/i386/i386.c (ix86_expand_round_sse4): Expand as - trunc (a + copysign (nextafter (0.5, 0.0), a)). - -2011-08-20 Anatoly Sokolov - - * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove. - * doc/tm.texi: Regenerate. - * targhooks.c (default_preferred_output_reload_class): Don't use - PREFERRED_OUTPUT_RELOAD_CLASS macro. - * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison. - -2011-08-20 Jakub Jelinek - - PR tree-optimization/48739 - * tree-ssa.c: Include cfgloop.h. - (execute_update_addresses_taken): When updating ssa, if in loop closed - SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa. - * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H). - -2011-08-19 Vladimir Makarov - - PR rtl-optimization/49936 - * ira.c (ira_init_register_move_cost): Ignore too small subclasses - for calculation of max register move costs. - -2011-08-19 Joseph Myers - - * c-parser.c (c_parser_postfix_expression): Convert operands of - __builtin_complex to their semantic types. - -2011-08-19 H.J. Lu - - PR middle-end/49721 - * explow.c (convert_memory_address_addr_space): Also permute the - conversion and addition of constant for zero-extend. - -2011-08-19 Joseph Myers - - * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX. - * doc/extend.texi (__builtin_complex): Document. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants - beyond conversions. - (convert_mult_to_widen): Convert constant inputs to the right type. - (convert_plusminus_to_widen): Don't automatically reject inputs that - are not an SSA_NAME. - Convert constant inputs to the right type. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs - to the correct type. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle - unsigned inputs of different modes. - (convert_plusminus_to_widen): Likewise. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument - 'type'. - Use 'type' from caller, not inferred from 'rhs'. - Don't reject non-conversion statements. Do return lhs in this case. - (is_widening_mult_p): Add new argument 'type'. - Use 'type' from caller, not inferred from 'stmt'. - Pass type to is_widening_mult_rhs_p. - (convert_mult_to_widen): Pass type to is_widening_mult_p. - (convert_plusminus_to_widen): Likewise. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME. - Ensure the the larger type is the first operand. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (convert_mult_to_widen): Convert - unsupported unsigned multiplies to signed. - (convert_plusminus_to_widen): Likewise. - -2011-08-19 Andrew Stubbs - - * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single - conversion statement separating multiply-and-accumulate. - -2011-08-19 Richard Guenther - - PR tree-optimization/50067 - * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF - offset only if we accounted for it. - -2011-08-19 Andrew Stubbs - - * config/arm/arm.md (maddhidi4): Remove '*' from name. - * expr.c (expand_expr_real_2): Use find_widening_optab_handler. - * optabs.c (find_widening_optab_handler_and_mode): New function. - (expand_widen_pattern_expr): Use find_widening_optab_handler. - (expand_binop_directly): Likewise. - (expand_binop): Likewise. - * optabs.h (find_widening_optab_handler): New macro define. - (find_widening_optab_handler_and_mode): New prototype. - * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR - type precision rules. - (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR. - * tree-ssa-math-opts.c (build_and_insert_cast): New function. - (is_widening_mult_rhs_p): Allow widening by more than one mode. - Explicitly disallow mis-matched input types. - (convert_mult_to_widen): Use find_widening_optab_handler, and cast - input types to fit the new handler. - (convert_plusminus_to_widen): Likewise. - -2011-08-19 Andrew Stubbs - - * expr.c (expand_expr_real_2): Use widening_optab_handler. - * genopinit.c (optabs): Use set_widening_optab_handler for $N. - (gen_insn): $N now means $a must be wider than $b, not consecutive. - * optabs.c (widened_mode): New function. - (expand_widen_pattern_expr): Use widening_optab_handler. - (expand_binop_directly): Likewise. - (expand_binop): Likewise. - * optabs.h (widening_optab_handlers): New struct. - (optab_d): New member, 'widening'. - (widening_optab_handler): New function. - (set_widening_optab_handler): New function. - * tree-ssa-math-opts.c (convert_mult_to_widen): Use - widening_optab_handler. - (convert_plusminus_to_widen): Likewise. - -2011-08-19 Joseph Myers - - * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if - pedantic. - * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment. - * ginclude/stdnoreturn.h (noreturn): Don't define for C++. - -2011-08-19 Joseph Myers - - * opth-gen.awk: Do not declare target save/restore structures and - functions if IN_RTS defined. - -2011-08-19 Matthew Gretton-Dann - - PR target/49437 - * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue - when stack was realigned in interrupt handler prologue. - -2011-08-18 Joseph Myers - - * c-decl.c (shadow_tag_warned): Check for _Noreturn. - (quals_from_declspecs): Assert _Noreturn not present. - (grokdeclarator): Handle _Noreturn. - (build_null_declspecs): Initialize noreturn_p. - (declspecs_add_scspec): Handle RID_NORETURN. - * c-parser.c (c_token_starts_declspecs, c_parser_declspecs) - (c_parser_attributes): Handle RID_NORETURN. - * c-tree.h (struct c_declspecs): Add noreturn_p. - * ginclude/stdnoreturn.h: New. - * Makefile.in (USER_H): Add stdnoreturn.h. - -2011-08-18 Kirill Yukhin - - * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New. - (OPTION_MASK_ISA_AVX_UNSET): Update. - (OPTION_MASK_ISA_AVX2_UNSET): New. - (ix86_handle_option): Handle OPT_mavx2 case. - * config/i386/cpuid.h (bit_AVX2): New. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect - AVX2 feature. - * config/i386/i386-c.c (ix86_target_macros_internal): - Conditionally define __AVX2__. - * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2. - Define "core-avx2" processor alias. Handle avx2 option. - (ix86_valid_target_attribute_inner_p): Handle avx2 option. - * config/i386/i386.h (TARGET_AVX2): New. - * config/i386/i386.opt (mavx2): New. - * doc/invoke.texi: Document -mavx2. - -2011-08-18 Vladimir Makarov - - PR rtl-optimization/49890 - * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude - subclasses of class which is superset of a pressure class. - -2011-08-18 H.J. Lu - Igor Zamyatin - - * config/i386/i386-c.c (ix86_target_macros_internal): Replace int - with HOST_WIDE_INT for isa_flag. - (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for - isa variables. - - * config/i386/i386.c (ix86_target_string): Replace int with - HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. - (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. - (pta_flags): Removed. - (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). - (pta): Use HOST_WIDE_INT on flags. - (builtin_isa): Use HOST_WIDE_INT on isa. - (ix86_add_new_builtins): Likewise. - (def_builtin): Use HOST_WIDE_INT on mask. - (def_builtin_const): Likewise. - (builtin_description): Likewise. - - * config/i386/i386.opt (ix86_isa_flags): Replace int with - HOST_WIDE_INT. - (ix86_isa_flags_explicit): Likewise. - (x_ix86_isa_flags_explicit): Likewise. - -2011-08-17 Vladimir Makarov - - PR rtl-optimization/50107 - * ira-int.h (ira_hard_reg_not_in_set_p): Remove. - (ira_hard_reg_in_set_p): New. - - * ira-color.c (calculate_saved_nregs): New. - (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all - hard regs. - (allocno_reload_assign, fast_allocation): Use - ira_hard_reg_set_intersection_p instead of - ira_hard_reg_not_in_set_p. - - * ira.c (setup_reg_renumber): Use - ira_hard_reg_set_intersection_p instead of - ira_hard_reg_not_in_set_p. - (setup_allocno_assignment_flags, calculate_allocation_cost): Use - ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p. - - * ira-costs.c (ira_tune_allocno_costs): Use - ira_hard_reg_set_intersection_p instead of - ira_hard_reg_not_in_set_p. - -2011-08-18 H.J. Lu - Igor Zamyatin - - * hwint.h (HOST_WIDE_INT_1): New. - - * opt-functions.awk (switch_bit_fields): Initialize the - host_wide_int field. - (host_wide_int_var_name): New. - (var_type_struct): Check and return HOST_WIDE_INT. - - * opt-read.awk: Handle HOST_WIDE_INT for "Variable". - - * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. - - * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly - check masks for HOST_WIDE_INT. - - * opts-common.c (set_option): Support HOST_WIDE_INT flag_var. - (option_enabled): Likewise. - (get_option_state): Likewise. - - * opts.h (cl_option): Add cl_host_wide_int. Change var_value - to HOST_WIDE_INT. - -2011-08-18 Rainer Orth - Marc Glisse - - PR libstdc++-v3/1773 - * target.def (decl_mangling_context): New C++ hook. - * doc/tm.texi: Regenerate. - * config/sol2-cxx.c, config/sol2-stubs.c: New files. - * config/sol2-protos.h: Group by source file. - (solaris_cxx_decl_mangling_context): Declare. - * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define. - * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets. - Use $<. - * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs. - Add sol2-stubs.o to extra_objs. - -2011-08-18 Jakub Jelinek - - PR target/50009 - * stor-layout.c (update_alignment_for_field): Don't ICE on - packed flexible array members if ms_bitfield_layout_p. - - PR target/50092 - * config/i386/i386.c (assign_386_stack_local): Call validize_mem - on the result before returning it. - - PR debug/50017 - * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi) - is a debug stmt, use location of the first non-debug stmt after it. - -2011-08-18 Richard Sandiford - - * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET. - (arm_size_rtx_costs): Likewise. - -2011-08-18 Richard Guenther - - * tree.h (tree_int_cst_msb): Remove. - * tree.c (tree_int_cst_msb): Likewise. - (tree_int_cst_sign_bit): Move from ... - * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here. - -2011-08-18 Richard Sandiford - - * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. - * doc/tm.texi: Regenerate. - * target.def (rtx_costs): Add an opno parameter. - * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with... - (hook_bool_rtx_int_int_int_intp_bool_false): ...this. - * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with... - (hook_bool_rtx_int_int_int_intp_bool_false): ...this. - * cse.c (COST_IN): Add an opno parameter. - (notreg_cost): Likewise. Update call to rtx_cost. - (COST, fold_rtx): Update accordingly. - * dojump.c (prefer_and_bit_test): Update call to rtx_cost. - * expmed.c (emit_store_flag): Likewise. - * optabs.c (avoid_expensive_constant): Add an opno parameter. - Update call to rtx_cost. - (expand_binop_directly, expand_binop): Likewise. - (expand_twoval_binop, prepare_cmp_insn): Likewise. - * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters. - (set_src_cost, get_full_set_src_cost): Update accordingly. - * rtlanal.c (rtx_cost): Add an opno parameter. Update call - to target hook. - (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost. - (default_adress_cost): Update calls to rtx_cost. - - * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs) - (arm_slowmul_rtx_costs): Adjust calls to rtx_cost. - (arm_rtx_costs): Add an opno parameter. - * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and - adjust any recursive rtx-cost calls. - * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise. - * config/bfin/bfin.c (bfin_rtx_costs): Likewise. - * config/c6x/c6x.c (c6x_rtx_costs): Likewise. - * config/cris/cris.c (cris_rtx_costs): Likewise. - * config/frv/frv.c (frv_rtx_costs): Likewise. - * config/h8300/h8300.c (h8300_rtx_costs): Likewise. - * config/i386/i386.c (ix86_rtx_costs): Likewise. - * config/ia64/ia64.c (ia64_rtx_costs): Likewise. - * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise. - * config/lm32/lm32.c (lm32_rtx_costs): Likewise. - * config/m32c/m32c.c (m32c_rtx_costs): Likewise. - * config/m32r/m32r.c (m32r_rtx_costs): Likewise. - * config/m68k/m68k.c (m68k_rtx_costs): Likewise. - * config/mcore/mcore.c (mcore_rtx_costs): Likewise. - * config/mep/mep.c (mep_rtx_cost): Likewise. - * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise. - * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost. - (mips_zero_extend_cost): Add an opno parameter. - * config/mmix/mmix.c (mmix_rtx_costs): Likewise. - * config/mn10300/mn10300.c (mn10300_address_cost): Update call - to rtx_cost. - (mn10300_rtx_costs): Add an opno parameter and adjust any recursive - rtx-cost calls. - * config/pa/pa.c (hppa_rtx_costs): Likewise. - * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise. - * config/picochip/picochip.c (picochip_rtx_costs): Likewise. - * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise. - (rs6000_debug_rtx_costs): Likewise. - * config/s390/s390.c (s390_rtx_costs): Likewise. - * config/score/score-protos.h (score_rtx_costs): Likewise. - * config/score/score.c (score_rtx_costs): Likewise. - * config/sh/sh.c (andcosts): Update call to rtx_cost. - (sh_rtx_costs): Add an opno parameter. - * config/sparc/sparc.c (sparc_rtx_costs): Likewise. - * config/spu/spu.c (spu_rtx_costs): Likewise. - * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise. - * config/v850/v850.c (v850_rtx_costs): Likewise. - * config/vax/vax.c (vax_rtx_costs): Likewise. - * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise. - -2011-08-18 Richard Sandiford - - * rtl.h (set_src_cost, get_full_set_src_cost): New functions. - * auto-inc-dec.c (attempt_change): Use set_src_cost instead of - rtx_cost. - * calls.c (precompute_register_parameters): Likewise. - * combine.c (expand_compound_operation, make_extraction): Likewise. - (force_to_mode, distribute_and_simplify_rtx): Likewise. - * dse.c (find_shift_sequence): Likewise. - * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise. - * expr.c (compress_float_constant): Likewise. - * fwprop.c (should_replace_address, try_fwprop_subst): Likewise. - * gcse.c (want_to_gcse_p): Likewise. - * ifcvt.c (noce_try_sign_mask): Likewise. - * loop-doloop.c (doloop_optimize): Likewise. - * loop-invariant.c (create_new_invariant): Likewise. - * optabs.c (avoid_expensive_constant): Likewise. - * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands) - (try_replace_in_use, reload_cse_move2add): Likewise. - * reload1.c (calculate_elim_costs_all_insns): Likewise. - (note_reg_elim_costly): Likewise. - * rtlanal.c (insn_rtx_cost): Likewise. - * simplify-rtx.c (simplify_binary_operation_1): Likewise. - * stmt.c (lshift_cheap_p): Likewise. - * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise. - * config/avr/avr.c (final_prescan_insn): Likewise. - * config/bfin/bfin.c (bfin_rtx_costs): Likewise. - * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise. - -2011-08-18 Richard Sandiford - - * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions. - * auto-inc-dec.c (attempt_change): Use set_rtx_cost. - * cfgloopanal.c (seq_cost): Likewise. - * loop-invariant.c (create_new_invariant): Likewise. - * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn) - (reload_cse_move2add): Use get_full_set_rtx_cost. - -2011-08-18 Richard Guenther - - * expr.c (get_inner_reference): Fix typo in last change. - -2011-08-18 Paolo Carlini - Joseph Myers - - PR tree-optimization/49963 - * hwint.c (absu_hwi): Define. - * hwint.h (absu_hwi): Declare. - * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead - of abs_hwi. - * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. - * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. - -2011-08-18 Richard Guenther - - * expr.c (get_inner_reference): Sign-extend the constant - twos-complement offset before doing arbitrary precision - arithmetic on it. - * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. - (get_constraint_for_1): Pass the offset of a MEM_REF unchanged - to get_constraint_for_ptr_offset. - -2011-08-17 Kaz Kojima - - PR target/50068 - * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule. - -2011-08-17 Richard Guenther - - * tree.h (convert_to_ptrofftype_loc): New function. - (convert_to_ptrofftype): Define. - * builtins.c (expand_builtin_bzero): Use size_type_node. - (fold_builtin_bzero): Likewise. - (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer. - * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc. - * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc. - (cgraph_redirect_edge_call_stmt_to_callee): Use size_int. - * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus. - * fold-const.c (build_range_check): Negate using the original type. - (fold_unary_loc): Use fold_build_pointer_plus_loc. - * gimple-fold.c (gimple_adjust_this_by_delta): Use - convert_to_ptrofftype. - * gimplify.c (gimplify_self_mod_expr): Likewise. - * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise. - (graphite_create_new_loop_guard): Likewise. - * graphite-sese-to-poly.c (my_long_long): Remove. - (scop_ivs_can_be_represented): Adjust. - * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p. - * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus. - * tree-loop-distribution.c (build_size_arg_loc): Use - size_type_node. - (generate_memset_zero): Simplify. - * tree-mudflap.c: Use fold_convert, not convert. - * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in - its own type. - (determine_offset): Likewise for DR_STEP. - (valid_initializer_p): Likewise. - * tree-profile.c (prepare_instrumented_value): Convert the pointer - to an integer type of same size. - * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer - to sizetype without need. - * tree-ssa-address.c (tree_mem_ref_addr): Likewise. - * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype. - * tree-ssa-loop-manip.c (create_iv): Likewise. - (determine_exit_conditions): Adjust comment. - * tree-ssa-pre.c (create_expression_by_pieces): Use - convert_to_ptrofftype. - * tree-ssa-structalias.c (get_constraint_for_1): Likewise. - * varasm.c (array_size_for_constructor): Compute using double_ints. - -2011-08-16 Ulrich Weigand - - * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests - when generating an integer result where possible. Short-cut - comparison against 0 also for QImode. - -2011-08-16 Ulrich Weigand - - * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro. - * config/spu/spu-protos.h (spu_legitimize_reload_address): Add - prototype. - * config/spu/spu.c (spu_legitimize_reload_address): New function. - (spu_legitimate_address_p): Do not check displacement if the base - is an eliminable stack register. - -2011-08-16 Anatoly Sokolov - - * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS, - PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. - * config/m32c/m32c-protos.h (m32c_preferred_reload_class, - m32c_preferred_output_reload_class): Remove. - * config/m32c/m32c.c (m32c_preferred_reload_class): Make static. - Change rclass argument and return types to reg_class_t. Use - reg_class_subset_p instead of class_sizes. - (m32c_preferred_output_reload_class): Make static. Change rclass - argument and return types to reg_class_t. - (TARGET_PREFERRED_RELOAD_CLASS, - TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. - -2011-08-16 Kai Tietz - - * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option. - -2011-08-16 Richard GUenther - - PR tree-optimization/50082 - * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow - warnings here, instead of ... - (ssa_forward_propagate_and_combine): ... here. - (forward_propagate_into_comparison_1): Adjust. - (forward_propagate_into_comparison): Likewise. - (forward_propagate_into_gimple_cond): Likewise. - (forward_propagate_into_cond): Likewise. - -2011-08-16 Andreas Schwab - - * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def - instead of ggc_alloc_zone_vec_rtvec_def. - -2011-08-16 Richard Guenther - - * tree.h (ptrofftype_p): New helper function. - * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR - offset verification. - (verify_gimple_assign_binary): Likewise. - * tree.c (build2_stat): Likewise. - * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise. - (reset_evolution_in_loop): Likewise. - * tree-chrec.h (build_polynomial_chrec): Likewise. - -2011-08-16 Liang Wang - - * ggc.h (ggc_alloc_rtvec_sized): Change arguments of - ggc_alloc_zone_vec_rtvec_def. - -2011-08-16 Richard Guenther - - * tree-vrp.c (extract_range_from_multiplicative_op_1): New - helper factored out from ... - (extract_range_from_binary_expr_1): ... here. Re-structure - to not glob handling too different tree codes. - -2011-08-15 Richard Henderson - - PR middle-end/50006 - * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size - setting out to include allocate_stack named pattern as well. - * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note. - * stmt.c (expand_stack_restore): Likewise. - -2011-08-15 Richard Guenther - - PR middle-end/50082 - * fold-const.c (maybe_canonicalize_comparison_1): Properly - convert the modified operand to the other operand type. - (fold_comparison): Call maybe_canonicalize_comparison_1 with - useless conversions stripped from comparison operands. - -2011-08-15 Richard Guenther - - * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case. - (extract_range_from_unary_expr_1): Restructure. - -2011-08-15 Richard Guenther - - PR tree-optimization/50058 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate - copy matching. - -2011-08-15 Ramana Radhakrishnan - - PR target/50022 - * config/arm/arm.c (output_move_double): Add 2 parameters - to count the number of insns emitted and whether to emit or not. - Use the flag to decide when to emit and count number of instructions - that will be emitted. - Handle case where output_move_double might be called for calculating - lengths with an invalid constant. - (arm_count_output_move_double_insns): Define. - * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare. - (output_move_double): Adjust prototype. - * config/arm/vfp.md ("*movdi_vfp"): Adjust call to - output_move_double. - ("*movdi_vfp_cortexa8"): Likewise and add attribute - for ce_count. - * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double. - ("*movdf_soft_insn"): Likewise. - * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise. - ("*cirrus_thumb2_movdi"): Likewise. - ("*thumb2_cirrus_movdf_hard_insn"): Likewise. - ("*cirrus_movdf_hard_insn"): Likewise. - * config/arm/neon.md (*neon_mov VD): Likewise. - * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise. - ("mov_internal VMMX"): Likewise. - * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise. - -2011-08-14 Uros Bizjak - - * config/i386/i386.c (ix86_expand_round_sse4): New function. - * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype. - * config/i386/i386.md (round2): Use ix86_expand_round_sse4 - for TARGET_ROUND. - - (rint2): Simplify TARGET_ROUND check. - (floor2): Ditto. - (ceil2): Ditto. - (btrunc2): Ditto. - -2011-08-14 Anatoly Sokolov - - * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine - as mmix_preferred_output_reload_class. - -2011-08-14 Georg-Johann Lay - - * PR target/49903 - * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum. - (branch_unspec): New insn. - (branch): Beauty farm. - * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC - to be IF_THEN_ELSE. - (avr_compare_pattern, avr_reorg_remove_redundant_compare): - New static functions. - (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN. - Use CONST_INT_P. Beauty. - -2011-08-12 Richard Henderson - - PR rtl-opt/49994 - * sched-init.h (struct deps_desc): Add sched_before_next_jump. - * sched-deps.c (init_deps): Clear it. - (deps_analyze_insn): Consume it. - (sched_analyze_insn): Fill it. - -2011-08-12 Ramana Radhakrishnan - - PR target/48328 - * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance - for tbh instructions. - -2011-08-12 Diego Novillo - - * data-streamer.h (streamer_write_zero): Rename from output_zero. - (streamer_write_uhwi): Rename from lto_output_uleb128. - (streamer_write_hwi): Rename from output_sleb128. - (streamer_write_string): Rename from lto_output_string. - (streamer_string_index): Rename from lto_string_index. - (streamer_write_string_with_length): Rename from - lto_output_string_with_length. - (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream. - (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream. - (streamer_read_string): Rename from lto_input_string. - (streamer_read_indexed_string): Rename from input_string_internal. - (streamer_read_uhwi): Rename from lto_input_uleb128. - (streamer_read_hwi): Rename from lto_input_sleb128. - (streamer_write_hwi_in_range): Rename from lto_output_int_in_range. - (streamer_read_hwi_in_range): Rename from lto_input_int_in_range. - (streamer_write_enum): Rename from lto_output_enum. - (streamer_read_enum): Rename from lto_input_enum. - (streamer_write_record_start): Rename from output_record_start. - (streamer_read_record_start): Rename from input_record_start. - (streamer_write_bitpack): Rename from lto_output_bitpack. - (streamer_read_bitpack): Rename from lto_input_bitpack. - (streamer_write_char_stream): Rename from lto_output_1_stream. - (streamer_read_uchar): Rename from lto_input_1_unsigned. - * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d. - (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p. - (streamer_read_string_cst): Rename from input_string_cst. - (streamer_read_chain): Rename from lto_input_chain. - (streamer_alloc_tree): Rename from lto_materialize_tree. - (streamer_read_tree_body): Rename from lto_input_tree_pointers. - (streamer_get_pickled_tree): Rename from lto_get_pickled_tree. - (streamer_get_builtin_tree): Rename from lto_get_builtin_tree. - (streamer_read_integer_cst): Rename from lto_input_integer_cst. - (streamer_read_tree_bitfields): Rename from tree_read_bitfields. - (streamer_write_chain): Rename from lto_output_chain. - (streamer_write_tree_header): Rename from lto_output_tree_header. - (streamer_pack_tree_bitfields): Rename from pack_value_fields. - (streamer_write_tree_body): Rename from lto_output_tree_pointers. - (streamer_write_integer_cst): Rename from lto_output_integer_cst. - (streamer_write_builtin): Rename from lto_output_builtin_tree. - (streamer_check_handled_ts_structures): Rename from - check_handled_ts_structures. - (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert. - (streamer_tree_cache_insert_at): Rename from - lto_streamer_cache_insert_at. - (streamer_tree_cache_append): Rename from lto_streamer_cache_append. - (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup. - (streamer_tree_cache_get): Rename from lto_streamer_cache_get. - (streamer_tree_cache_create): Rename from lto_streamer_cache_create. - (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete. - * tree-streamer-out.c (write_string_cst): Rename from output_string_cst. - (write_identifier): Rename from output_identifier. - (write_ts_common_tree_pointers): Rename from - lto_output_ts_common_tree_pointers. - (write_ts_vector_tree_pointers): Rename from - lto_output_ts_vector_tree_pointers. - (write_ts_complex_tree_pointers): Rename from - lto_output_ts_complex_tree_pointers. - (write_ts_decl_minimal_tree_pointers): Rename from - lto_output_ts_decl_minimal_tree_pointers. - (write_ts_decl_common_tree_pointers): Rename from - lto_output_ts_decl_common_tree_pointers. - (write_ts_decl_non_common_tree_pointers): Rename from - lto_output_ts_decl_non_common_tree_pointers. - (write_ts_decl_with_vis_tree_pointers): Rename from - lto_output_ts_decl_with_vis_tree_pointers. - (write_ts_field_decl_tree_pointers): Rename from - lto_output_ts_field_decl_tree_pointers. - (write_ts_function_decl_tree_pointers): Rename from - lto_output_ts_function_decl_tree_pointers. - (write_ts_type_common_tree_pointers): Rename from - lto_output_ts_type_common_tree_pointers. - (write_ts_type_non_common_tree_pointers): Rename from - lto_output_ts_type_non_common_tree_pointers. - (write_ts_list_tree_pointers): Rename from - lto_output_ts_list_tree_pointers. - (write_ts_vec_tree_pointers): Rename from - lto_output_ts_vec_tree_pointers. - (write_ts_exp_tree_pointers): Rename from - lto_output_ts_exp_tree_pointers. - (write_ts_block_tree_pointers): Rename from - lto_output_ts_block_tree_pointers. - (write_ts_binfo_tree_pointers): Rename from - lto_output_ts_binfo_tree_pointers. - (write_ts_constructor_tree_pointers): Rename from - lto_output_ts_constructor_tree_pointers. - (write_ts_target_option): Rename from lto_output_ts_target_option. - (write_ts_translation_unit_decl_tree_pointers): Rename from - lto_output_ts_translation_unit_decl_tree_pointers. - * tree-streamer.c (streamer_tree_cache_add_to_node_array): - Rename from lto_streamer_cache_add_to_node_array. - (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1. - (record_common_node): Rename from lto_record_common_node. - - * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward - declarations. - * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused - function. - * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove - unused function. - * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H. - (ipa-reference.o): Likewise. - * lto-section-out.c: Include data-streamer.h. - * ipa-reference.c: Include data-streamer.h. - -2011-08-12 Nick Clifton - - * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern. - * doc/md.texi (cmpstrn): Note that the comparison stops if both - fetched bytes are zero. - (cmpstr): Likewise. - (cmpmem): Note that the comparison does not stop if both of the - fetched bytes are zero. - -2011-08-12 Uros Bizjak - - * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L} - BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions. - * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL, - BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting - to integer_type_node. - * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL, - BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND. - * builtins.c (expand_builtin_in): Ditto. - (mathfn_built_in_1): Ditto. - (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and - BUILT_IN_IFLOOR. - (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and - BUILT_IN_IROUND. - (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR - BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL, - BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets. - -2011-08-12 Richard Guenther - - * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X. - -2011-08-12 Romain Geissler - - * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H. - -2011-08-12 Richard Sandiford - - * config/arm/arm.c (get_label_padding): New function. - (create_fix_barrier, arm_reorg): Use it. - -2011-08-11 Uros Bizjak - - PR target/49781 - * config/i386/i386.md (*lea_5_zext): New. - (*lea_6_zext): Ditto. - * config/i386/predicates.md (const_32bit_mask): New predicate. - (lea_address_operand): Reject AND. - * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with - const_32bit_mask immediate. - (ix86_print_operand_address): Handle AND. - (memory_address_length): Ditto. - -2011-08-11 Romain Geissler - Brian Hackett - - * plugin.def: Add event for finish_decl. - * plugin.c (register_callback, invoke_plugin_callbacks): Same. - * c-decl.c (finish_decl): Invoke callbacks on above event. - * doc/plugins.texi: Document above event. - -2011-08-11 Richard Guenther - - * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant - lookups, make looking through aggregate copies stronger. - -2011-08-11 Richard Henderson - - PR bootstrap/50018 - * expr.c (fixup_args_size_notes): Accept and ignore normal calls. - -2011-08-11 Richard Guenther - - * lto-cgraph.c (input_node): Use DECL_BUILT_IN. - * tree-vrp.c (stmt_interesting_for_vrp): Likewise. - (vrp_visit_stmt): Likewise. - -2011-08-11 Richard Guenther - - PR middle-end/50040 - * gimplify.c (gimplify_modify_expr_complex_part): Mark the - load of the other piece with TREE_NO_WARNING. - * tree-flow.h (warn_uninit): Adjust prototype. - * tree-ssa.c (warn_uninit): Take uninitialized SSA name, - the base variable and the expression that is used separately. - Properly query all TREE_NO_WARNING flags. - (struct walk_data): Remove. - (warn_uninitialized_var): Likewise. - (warn_uninitialized_vars): Do not walk gimple pieces but simply - look at all SSA uses of the statement. Handle unused memory - separately. - * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust. - -2011-08-11 Kazuhiro Inaoka - - * config/rx/rx.md (movsicc): Allow register to register transfers. - (*movsicc): Likewise. - (*stcc): Restrict this pattern to EQ and NE compares. - (*stcc_reg): New pattern. Works for any comparison but only for - register transfers. - -2011-08-11 Diego Novillo - - * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): - Call stream_write_tree instead of output_record_start. - (lto_output_ts_binfo_tree_pointers): Likewise. - - * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h. - Convert it to a macro. - (stream_read_tree): Likewise. - - * lto-streamer.h (lto_stream_as_builtin_p): Move ... - * tree-streamer.h (lto_stream_as_builtin_p): ... here. - - * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append - and tree_read_bitfields. - * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c - (lto_write_tree): Call it. - * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c - * streamer-hooks.h (struct streamer_hooks): Remove fields - name, is_streamable and alloc_tree. Update all users. - * tree-streamer-in.c (tree_read_bitfields): Factor out of ... - (lto_materialize_tree): ... here. - Handle CALL_EXPR codes. - Remove call to lto_streamer_cache_append. - * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes. - * tree-streamer.h (tree_read_bitfields): Declare. - - * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H. - (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H. - * tree-streamer.h (stream_read_tree): New. Replace all calls - to lto_input_tree with it. - (stream_write_tree): New. Replace all calls to lto_output_tree, - lto_output_tree_ref and lto_output_tree_or_ref with it. - * lto-streamer-in.c (lto_read_tree): Inline code from - lto_streamer_read_tree. - (lto_input_tree): Move from tree-streamer-in.c. - * lto-streamer-out.c (lto_output_tree_ref): Make static. - Remove handling of NULL values for EXPR. - Do not handle EXPRs that are not indexable. - (lto_write_tree): Move from tree-streamer-out.c. - Inline lto_streamer_write_tree. - (lto_output_tree): Move from tree-streamer-out.c. - If REF_P is true and EXPR is indexable, call lto_output_tree_ref. - * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c. - (lto_preload_common_nodes): Likewise. - Remove assertions and adjustments for nodes - main_identifier_node, ptrdiff_type_node and fileptr_type_node. - (lto_streamer_hooks_init): Set streamer_hooks.write_tree to - lto_output_tree and streamer_hooks.read_tree to lto_input_tree. - * lto-streamer.h (lto_input_tree): Declare. - (lto_output_tree_ref): Remove. - * streamer-hooks.h (struct streamer_hooks): Remove fields - preload_common_nodes, indexable_with_decls_p, - pack_value_fields, unpack_value_fields and output_tree_header. - Update all users. - * tree-streamer-in.c (lto_materialize_tree): Make extern. - (lto_input_tree_pointers): Likewise. - (lto_read_tree): Move to lto-streamer-in.c. - (lto_input_integer_cst): Make extern. - (lto_get_pickled_tree): Likewise. - (lto_get_builtin_tree): Likewise. - (lto_input_tree): Move to lto-streamer-in.c. - * tree-streamer-out.c (pack_value_fields): Make extern. - (lto_output_tree_or_ref): Remove. Replace all callers with - calls to stream_write_tree. - (lto_output_builtin_tree): Make extern. - (lto_streamer_write_tree): Inline into lto_write_tree. - (lto_output_tree_pointers): Make extern. - (lto_output_tree_header): Likewise. - (lto_output_integer_cst): Likewise. - (lto_write_tree): Move to lto-streamer-out.c. - (lto_output_tree): Likewise. - * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c - (preload_common_nodes): Likewise. - (lto_streamer_cache_create): Call it. - * tree-streamer.h: Include streamer-hooks.h. - (stream_write_tree): New. - (stream_read_tree): New. - (lto_input_tree): Remove. - (lto_materialize_tree): Declare. - (lto_input_tree_pointers): Declare. - (lto_get_pickled_tree): Declare. - (lto_get_builtin_tree): Declare. - (lto_input_integer_cst): Declare. - (lto_output_tree_header): Declare. - (pack_value_fields): Declare. - (lto_output_tree_pointers): Declare. - (lto_output_integer_cst): Declare. - (lto_output_builtin_tree): Declare. - -2011-08-11 Sergey Grechanik - - * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge - only if producer writes to the register given by regno. - -2011-08-11 Sergey Grechanik - Alexander Monakov - - * sched-deps.c (sched_get_condition_with_rev): Rename to ... - (sched_get_condition_with_rev_uncached): ... this. Factor out - condition caching logic into ... - (sched_get_condition_with_rev): ... this. Reimplement. Do not - attempt to use cache for instructions with zero luid. - (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND. - * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND. - -2011-08-11 Sergey Grechanik - - * sel-sched-ir.c (get_seqno_of_a_pred): Rename to - get_seqno_for_a_jump. Update the caller. - (get_seqno_by_succs): New. Use it ... - (get_seqno_for_a_jump): ... here to find a seqno if looking at - predecessors was not sufficient. - (get_seqno_by_preds): Include head in iteration range, exclude insn. - -2011-08-11 Dmitry Melnik - - * sel-sched-ir.c (invalidate_av_set): Remove the assert. - -2011-08-11 Sergey Grechanik - - * sel-sched-ir.h (register_unavailable_p): Declare. - * sel-sched-ir.c (register_unavailable_p): New. Use it... - (set_unavailable_target_for_expr): ... here to properly test - availability of a register. - (speculate_expr): Ditto. - * sel-sched.c (substitute_reg_in_expr): Ditto. - (av_set_could_be_blocked_by_bookkeeping_p): Ditto. - -2011-08-11 Sergey Grechanik - - * sel-sched.c (verify_target_availability): Fix usage of - hard_regno_nregs. - -2011-08-11 Dmitry Melnik - - * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of - recognized by cannot_copy_insn_p hook and volatile instructions. - -2011-08-11 Dmitry Melnik - - * sel-sched-ir.c (merge_expr_data): Take maximum spec. - -2011-08-11 Richard Sandiford - - * doc/md.texi (define_bypass): Say that the instruction names can - be filename-style globs. - * Makefile.in (FNMATCH_H): Define. - (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H). - * genattrtab.c: Include fnmatch.h. - (bypass_list): Change field name from "insn" to "pattern". - (gen_bypass_1): Update accordingly. - (process_bypasses): Use fnmatch to check for matches between - insn reservations and define_bypasses. - * genautomata.c: Include fnmatch.h. - (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern - and out_pattern respectively. - (gen_bypass, insert_bypass): Update accordingly. - (for_each_matching_insn, process_bypass_2, process_bypass_1) - (process_bypass): New functions. - (process_decls): Use process_bypass. Update after field name changes. - -2011-08-11 Georg-Johann Lay - - PR target/49687 - * config/avr/avr.md (smulqi3_highpart): New insn. - (umulqi3_highpart): New insn. - (*subqi3.ashiftrt7): New insn. - (smulhi3_highpart): New expander. - (umulhi3_highpart): Nex expander. - (*smulhi3_highpart_call): New insn. - (*umulhi3_highpart_call): New insn. - (extend_u): New code attribute. - (extend_prefix): Rename code attribute to extend_su. - * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of - widening QI/HI multiply. - -2011-08-11 Ira Rosen - - PR tree-optimization/50039 - * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check - that DEF_STMT has a stmt_vec_info. - -2011-08-10 Richard Guenther - - * tree.h (can_trust_pointer_alignment): Remove. - * builtins.c (can_trust_pointer_alignment): Remove. - -2011-08-10 Artjoms Sinkarovs - - * c-typeck.c (scalar_to_vector): New function. Try scalar to - vector conversion. - (stv_conv): New enum for scalar_to_vector return type. - (build_binary_op): Adjust. - * doc/extend.texi: Description of scalar to vector expansion. - -2011-08-10 Richard Guenther - - * tree.h (get_pointer_alignment): Remove max-align argument. - (get_object_alignment): Likewise. - * builtins.c (get_object_alignment_1): Adjust. - (get_object_alignment): Remove max-align argument. - (get_pointer_alignment): Likewise. - (expand_builtin_strlen): Adjust. - (expand_builtin_memcpy): Likewise. - (expand_builtin_mempcpy_args): Likewise. - (expand_builtin_strncpy): Likewise. - (expand_builtin_memset_args): Likewise. - (expand_builtin_memcmp): Likewise. - (expand_builtin_strcmp): Likewise. - (expand_builtin_strncmp): Likewise. - (get_builtin_sync_mem): Likewise. - (fold_builtin_memset): Likewise. - (fold_builtin_memory_op): Likewise. - (expand_builtin_memory_chk): Likewise. - * emit-rtl.c (get_mem_align_offset): Likewise. - (set_mem_attributes_minus_bitpos): Likewise. - * expr.c (expand_assignment): Likewise. - (expand_expr_real_1): Likewise. - * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise. - * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. - * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise. - * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. - * value-prof.c (gimple_stringops_transform): Likewise. - -2011-08-10 Paulo J. Matos - - * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo. - * doc/tm.texi: Regenerate. - -2011-08-10 Georg-Johann Lay - - PR target/29560 - * config/avr/avr.md (*ashlhiqi3): New insn-and-split. - (*ashlqihiqi3): New insn-and-splits. - (*ashlqihiqi3.mem): New insn-and-splits. - Add peephole2 to map ashlhi3 to ashlqi3 if high part of - shift target is unused. - -2011-08-10 Richard Guenther - - PR tree-optimization/49937 - * tree-ssa-ccp.c (get_value_from_alignment): Re-implement - using get_object_alignment_1. - -2011-08-09 Uros Bizjak - - * config/i386/i386.c (ix86_emit_i387_round): New function. - * config/i386/i386-protos.h (ix86_emit_i387_round): Declare. - * config/i386/i386.md (round2): Use X87MODEF mode iterator. - Use ix86_emit_i387_round to expand round function for i387 math. - (lround2): Use X87MODEF mode iterator. - Use ix86_emit_i387_round to expand {l,ll}round function for i387 math. - -2011-08-09 Rainer Orth - - * config/sync.c: Move to ../libgcc. - * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS. - * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS): - Remove. - -2011-08-09 Anatoly Sokolov - - * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro. - * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove. - * config/mmix/mmix.c (mmix_register_move_cost): Make static. - Change 'from' and 'to' arguments type to reg_class_t. - (TARGET_REGISTER_MOVE_COST): Define. - -2011-08-09 Vladimir Makarov - - PR target/50026 - Revert: - PR rtl-optimization/49990 - * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't - ignore classes which can not change mode. - (find_costs_and_classes): Ditto. - -2011-08-09 Richard Guenther - - * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise - information for ranges with only negative values. - (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and - BIT_AND_EXPR handling to handle ranges with negative values. - -2011-08-09 Kirill Yukhin - - * config/i386/i386.c: Remove traling spaces. - * config/i386/sse.md: Likewise. - (*fma_fmadd_): Fix insn alternative 1 mnemonic. - (*fma_fmsub_): Likewise. - (*fma_fnmadd_): Likewise. - (*fma_fnmsub_): Likewise. - -2011-08-09 Nick Clifton - - * config/rx/rx.md: Disable extender peepholes at -O3. - -2011-08-09 Uros Bizjak - - PR target/49781 - * config/i386/i386.md (reload_noff_load): New. - (reload_noff_store): Ditto. - * config/i386/i386.c (ix86_secondary_reload): Use - CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle - double-word moves from/to non-offsetable addresses instead of - generating XMM temporary. - -2011-08-09 Anatoly Sokolov - - * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. - -2011-08-09 Ira Rosen - - PR tree-optimization/50014 - * tree-vect-loop.c (vectorizable_reduction): Get def type before - calling vect_get_vec_def_for_stmt_copy (). - -2011-08-08 Vladimir Makarov - - PR rtl-optimization/49990 - * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't - ignore classes which can not change mode. - (find_costs_and_classes): Ditto. - -2011-08-08 Richard Henderson - - PR middle-end/49990 - * config/i386/i386.c (ix86_expand_prologue): Call - for SEH target gen_prologue_use instead of gen_blockage - at prologue's end. - -2011-08-08 Martin Jambor - - PR middle-end/49923 - * tree-sra.c (access_precludes_ipa_sra_p): Also check access - memory alignment. - -2011-08-08 Diego Novillo - - * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H. - (DATA_STREAMER_H): New. - (GIMPLE_STREAMER_H): New. - (TREE_STREAMER_H): New. - (STREAMER_HOOKS_H): New. - (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o, - gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o, - tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o. - (data-streamer.o): New. - (data-streamer-in.o): New. - (data-streamer-out.o): New. - (gimple-streamer-in.o): New. - (gimple-streamer-out.o): New. - (streamer-hooks.o): New. - (tree-streamer.o): New. - (tree-streamer-in.o): New. - (tree-streamer-out.o): New. - (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. - (lto-streamer-in.o): Add dependency on DATA_STREAMER_H, - GIMPLE_STREAMER_H and TREE_STREAMER_H. - (lto-streamer-out.o): Add dependency on DATA_STREAMER_H, - GIMPLE_STREAMER_H and TREE_STREAMER_H. - (lto-streamer.o): Add dependency on STREAMER_HOOKS_H. - (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. - (ipa-inline-analysis.o): Likewise. - (ipa-pure-const.o): Likewise. - * data-streamer-in.c: New. - * data-streamer-out.c: New. - * data-streamer.c: New. - * data-streamer.h: New. - * gimple-streamer-in.c: New. - * gimple-streamer-out.c: New. - * gimple-streamer.h: New. - * ipa-inline-analysis.c: Include data-streamer.h. - * ipa-prop.c: Include data-streamer.h. - * ipa-pure-const.c: Include data-streamer.h. - * lto-cgraph.c: Include data-streamer.h. - * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c. - (lto_input_widest_uint_uleb128): Likewise. - (lto_input_sleb128): Likewise. - (bp_unpack_var_len_unsigned): Likewise. - (bp_unpack_var_len_int): Likewise. - * lto-section-out.c (lto_output_uleb128_stream): Move to - data-streamer-out.c. - (lto_output_widest_uint_uleb128_stream): Likewise. - (lto_output_sleb128_stream): Likewise. - (bp_pack_var_len_unsigned): Likewise. - (bp_pack_var_len_int): Likewise. - * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h. - (struct string_slot): Remove. Update all users. - (lto_tag_check_set): Make extern. - (lto_tag_check_range): Move to lto-streamer.h. - (lto_tag_check): Likewise. - (hash_string_slot_node): Remove. Update all users. - (eq_string_slot_node): Remove. Update all users. - (string_for_index): Move to data-streamer-in.c - (input_string_internal): Likewise. - (input_string_cst): Move to tree-streamer-in.c. - (input_identifier): Likewise. - (lto_input_string): Move to data-streamer-in.c - (input_record_start): Move to data-streamer.h - (canon_file_name): Use new definition of struct string_slot - from data-streamer.h. Set S_SLOT.LEN. - (lto_input_location): Make extern. - (lto_input_chain): Move to tree-streamer-in.c. - (lto_init_eh): Make extern. - (input_phi): Move to gimple-streamer-in.c. - (input_gimple_stmt): Likewise. - (input_bb): Likewise. - (unpack_ts_base_value_fields): Move to tree-streamer-in.c. - (unpack_ts_real_cst_value_fields): Likewise. - (unpack_ts_fixed_cst_value_fields): Likewise. - (unpack_ts_decl_common_value_fields): Likewise. - (unpack_ts_decl_wrtl_value_fields): Likewise. - (unpack_ts_decl_with_vis_value_fields): Likewise. - (unpack_ts_function_decl_value_fields): Likewise. - (unpack_ts_type_common_value_fields): Likewise. - (unpack_ts_block_value_fields): Likewise. - (unpack_ts_translation_unit_decl_value_fields): Likewise. - (unpack_value_fields): Likewise. - (lto_materialize_tree): Likewise. - (lto_input_ts_common_tree_pointers): Likewise. - (lto_input_ts_vector_tree_pointers): Likewise. - (lto_input_ts_complex_tree_pointers): Likewise. - (lto_input_ts_decl_minimal_tree_pointers): Likewise. - (lto_input_ts_decl_common_tree_pointers): Likewise. - (lto_input_ts_decl_non_common_tree_pointers): Likewise. - (lto_input_ts_decl_with_vis_tree_pointers): Likewise. - (lto_input_ts_field_decl_tree_pointers): Likewise. - (lto_input_ts_function_decl_tree_pointers): Likewise. - (lto_input_ts_type_common_tree_pointers): Likewise. - (lto_input_ts_type_non_common_tree_pointers): Likewise. - (lto_input_ts_list_tree_pointers): Likewise. - (lto_input_ts_vec_tree_pointers): Likewise. - (lto_input_ts_exp_tree_pointers): Likewise. - (lto_input_ts_block_tree_pointers): Likewise. - (lto_input_ts_binfo_tree_pointers): Likewise. - (lto_input_ts_constructor_tree_pointers): Likewise. - (lto_input_ts_target_option): Likewise. - (lto_input_ts_translation_unit_decl_tree_pointers): Likewise. - (lto_input_tree_pointers): Likewise. - (lto_get_pickled_tree): Likewise. - (lto_get_builtin_tree): Likewise. - (lto_read_tree): Likewise. - (lto_input_integer_cst): Likewise. - (lto_input_tree): Likewise. - * lto-streamer-out.c: Include data-streamer.h, - gimple-streamer.h and streamer-hooks.h. - (struct string_slot): Move to data-streamer.h. - (hash_string_slot_node): Likewise. - (eq_string_slot_node): Likewise. - (lto_string_index): Move to data-streamer-out.c. - (lto_output_string_with_length): Likewise. - (lto_output_string): Likewise. - (output_string_cst): Move to tree-streamer-out.c. - (output_identifier): Likewise. - (output_zero): Move to data-streamer-out.c - (output_uleb128): Likewise. - (output_sleb128): Likewise. - (output_record_start): Move to data-streamer.h - (pack_ts_base_value_fields): Move to tree-streamer-out.c. - (pack_ts_real_cst_value_fields): Likewise. - (pack_ts_fixed_cst_value_fields): Likewise. - (pack_ts_decl_common_value_fields): Likewise. - (pack_ts_decl_wrtl_value_fields): Likewise. - (pack_ts_decl_with_vis_value_fields): Likewise. - (pack_ts_function_decl_value_fields): Likewise. - (pack_ts_type_common_value_fields): Likewise. - (pack_ts_block_value_fields): Likewise. - (pack_ts_translation_unit_decl_value_fields): Likewise. - (pack_value_fields): Likewise. - (lto_output_chain): Likewise. - (lto_output_ts_common_tree_pointers): Likewise. - (lto_output_ts_vector_tree_pointers): Likewise. - (lto_output_ts_complex_tree_pointers): Likewise. - (lto_output_ts_decl_minimal_tree_pointers): Likewise. - (lto_output_ts_decl_common_tree_pointers): Likewise. - (lto_output_ts_decl_non_common_tree_pointers): Likewise. - (lto_output_ts_decl_with_vis_tree_pointers): Likewise. - (lto_output_ts_field_decl_tree_pointers): Likewise. - (lto_output_ts_function_decl_tree_pointers): Likewise. - (lto_output_ts_type_common_tree_pointers): Likewise. - (lto_output_ts_type_non_common_tree_pointers): Likewise. - (lto_output_ts_list_tree_pointers): Likewise. - (lto_output_ts_vec_tree_pointers): Likewise. - (lto_output_ts_exp_tree_pointers): Likewise. - (lto_output_ts_block_tree_pointers): Likewise. - (lto_output_ts_binfo_tree_pointers): Likewise. - (lto_output_ts_constructor_tree_pointers): Likewise. - (lto_output_ts_target_option): Likewise. - (lto_output_ts_translation_unit_decl_tree_pointers): Likewise. - (lto_output_tree_pointers): Likewise. - (lto_output_tree_header): Likewise. - (lto_output_builtin_tree): Likewise. - (lto_write_tree): Likewise. - (lto_output_integer_cst): Likewise. - (lto_output_tree): Likewise. - (output_phi): Move to gimple-streamer-out.c. - (output_gimple_stmt): Likewise. - (output_bb): Likewise. - * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h. - (streamer_hooks): Move to streamer-hooks.c. - (check_handled_ts_structures): Move to tree-streamer.c - (lto_streamer_cache_add_to_node_array): Likewise. - (lto_streamer_cache_insert_1): Likewise. - (lto_streamer_cache_insert): Likewise. - (lto_streamer_cache_insert_at): Likewise. - (lto_streamer_cache_append): Likewise. - (lto_streamer_cache_lookup): Likewise. - (lto_streamer_cache_get): Likewise. - (lto_record_common_node): Likewise. - (lto_preload_common_nodes): Likewise. - (lto_streamer_cache_create): Likewise. - (lto_streamer_cache_delete): Likewise. - (streamer_hooks_init): Move to streamer-hooks.c. - * lto-streamer.h: Include diagnostic.h - (struct output_block, struct lto_input_block, - struct data_in, struct bitpack_d): Remove forward declarations. - (struct bitpack_d): Move to data-streamer.h. - (struct lto_streamer_cache_d): Move to tree-streamer.h. - (struct streamer_hooks): Move to streamer-hooks.h. - (bp_pack_var_len_unsigned): Move to data-streamer.h. - (bp_pack_var_len_int): Likewise. - (bp_unpack_var_len_unsigned): Likewise. - (bp_unpack_var_len_int): Likewise. - (lto_input_location): Declare. - (lto_tag_check_set): Declare. - (lto_init_eh): Declare. - (lto_output_tree_ref): Declare. - (lto_output_location): Declare. - (bitpack_create): Move to data-streamer.h. - (bp_pack_value): Likewise. - (lto_output_bitpack): Likewise. - (lto_input_bitpack): Likewise. - (bp_unpack_value): Likewise. - (lto_output_1_stream): Likewise. - (lto_input_1_unsigned): Likewise. - (lto_output_int_in_range): Likewise. - (lto_input_int_in_range): Likewise. - (bp_pack_int_in_range): Likewise. - (bp_unpack_int_in_range): Likewise. - (lto_output_enum): Likewise. - (lto_input_enum): Likewise. - (bp_pack_enum): Likewise. - (bp_unpack_enum): Likewise. - * streamer-hooks.c: New. - * streamer-hooks.h: New. - * tree-streamer-in.c: New. - * tree-streamer-out.c: New. - * tree-streamer.c: New. - * tree-streamer.h: New. - -2011-08-08 Rainer Orth - - * gthr-posix95.h: Remove. - * gthr.h [_PTHREADS95]: Remove. - * configure.ac (enable_threads): Remove posix95. - * configure: Regenerate. - * doc/install.texi (Configuration, --enable-threads): Remove posix95. - -2011-08-08 Uros Bizjak - - PR target/49781 - * config/i386/i386.c (ix86_decompose_address): Allow zero-extended - SImode addresses. - (ix86_print_operand_address): Handle zero-extended addresses. - (memory_address_length): Add length of addr32 prefix for - zero-extended addresses. - (ix86_secondary_reload): Handle moves to/from double-word general - registers from/to zero-extended addresses. - * config/i386/predicates.md (lea_address_operand): Reject - zero-extended operands. - -2011-08-08 H.J. Lu - - PR other/48007 - * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86. - - * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned. - (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise. - - * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New. - (_Unwind_Context_Reg_Val): Likewise. - (_Unwind_Get_Unwind_Word): Likewise. - (_Unwind_Get_Unwind_Context_Reg_Val): Likewise. - (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field. - (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT - for EXTENDED_CONTEXT_BIT. - (__frame_state_for): Likewise. - (uw_init_context_1): Likewise. - (_Unwind_GetGR): Updated. - (_Unwind_SetGR): Likewise. - (_Unwind_GetGRPtr): Likewise. - (_Unwind_SetGRPtr): Likewise. - (_Unwind_SetGRValue): Likewise. - (_Unwind_GRByValue): Likewise. - (uw_install_context_1): Likewise. - - * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and - ASSUME_EXTENDED_UNWIND_CONTEXT. - * doc/tm.texi: Regenerated. - -2011-08-08 Rainer Orth - - * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS). - -2011-08-08 Rainer Orth - - * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't - Linux/GNU-specific. - (DEC Alpha Options, -mtune): Likewise. - (MIPS Options, -march): native is supported on IRIX. - -2011-08-08 Rainer Orth - - * config/sparc/driver-sparc.c: New file. - * config/sparc/x-sparc: New file. - * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*. - * config/sparc/sparc.opt (native): New value for enum processor_type. - * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare. - * config/sparc/sparc.c (sparc_option_override): Abort if - PROCESSOR_NATIVE gets here. - * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare. - (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS, - DRIVER_SELF_SPECS): Define. - * doc/invoke.texi (SPARC Options, -mcpu): Document native. - (SPARC Options, -mtune): Likewise. - * configure.ac (EXTRA_GCC_LIBS): Check for libkstat. - Substitute result. - * configure: Regenerate. - * Makefile.in (EXTRA_GCC_LIBS): Set. - (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS). - (cpp$(exeext)): Likewise. - -2011-08-08 Richard Guenther - - * tree-vrp.c (extract_range_from_unary_expr_1): New function, - split out from ... - (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR - by composition. - -2011-08-08 Mikael Pettersson - - PR tree-optimization/50005 - * ipa-inline-analysis (remap_predicate): Add cast to - silence signed/unsigned comparison warning. - -2011-08-08 Richard Sandiford - - * modulo-sched.c (get_sched_window): Use a table for the debug output. - Print the current ii. - (sms_schedule_by_order): Reduce whitespace in dump line. - -2011-08-08 Richard Sandiford - - * modulo-sched.c (get_sched_window): Use just one loop for predecessors - and one loop for successors. Fix upper bound of memory range. - -2011-08-06 Uros Bizjak - - PR target/50001 - * config/alpha/alpha.c (alpha_instantiate_decls): New function. - (TARGET_INSTANTIATE_DECLS): New define. - -2011-08-06 Paolo Bonzini - Mikael Morin - - * Makefile.in (INCLUDES_FOR_TARGET): New. - (LIBGCC2_CFLAGS): Use it. - (CRTSTUFF_CFLAGS): Use it instead of INCLUDES. - -2011-08-06 Uros Bizjak - - * config/i386/i386.c (ix86_compute_frame_layout): Simplify - frame->save_regs_using_mov calculation. - -2011-08-06 Uros Bizjak - - * config/i386/i386.md (ssemodesuffix): Remove V8SI mode. - * config/i386/sse.md (castmode): New mode attribute. - (avx__): Rename from - avx__. - -2011-08-05 Jan Hubicka - - PR middle-end/49494 - * ipa-inline-analysis.c (remap_predicate): Add bounds check. - -2011-08-05 Jan Hubicka - - PR middle-end/49500 - * tree-emultls.c (new_emutls_decl):Add alias_of parameter; - handle aliases. - (create_emultls_var):New function. - (ipa_lower_emutls): Handle aliases correctly. - -2011-08-05 Jan Hubicka - - PR middle-end/49735 - * ipa-inline.c (recursive_inlining): Look through aliases. - -2011-08-05 Jason Merrill - - * config/i386/i386.c (setup_incoming_varargs_ms_64): Move - declarations to beginning of function. - -2011-08-05 Bernd Schmidt - - PR rtl-optimization/49900 - * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to - ensure basic blocks stay in the same order. - -2011-08-05 Aldy Hernandez - - * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to - store_bit_field. - (s390_expand_atomic): Same. - -2011-08-05 Richard Henderson - - PR rtl-opt/49977 - * dwarf2cfi.c (scan_insn_after): Split out of ... - (scan_trace): ... here. Correctly place notes wrt sequences. - -2011-08-05 Kaz Kojima - Richard Henderson - - PR rtl-opt/49982 - * expr.c (fixup_args_size_notes): Look through no-op moves. - -2011-08-05 Uros Bizjak - - * config/i386/i386.md (*push2): Use "o" constraint instead - of "m" for operand 0. Add type and mode attribute. - (*pushxf_nointeger"): Use "<" constraint for operand 0. - (*pushdf_rex64): New pattern, split out of *pushdf. Use "m" - constraint instead of "o" for opreand 1. - (*pushdf): Disable for TARGET_64BIT. Correct mode attribute. - (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for - operand 0, alternative 4. - (*movdf_internal_rex64): Ditto for operand 0, alernative 6. - -2011-08-05 Uros Bizjak - - * config/i386/predicates.md (lea_address_operand): Rename from - no_seg_address_operand. - * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename. - (*lea_1_zext): Ditto. - (*lea_2): Ditto. - (*lea_2_zext): Ditto. - -2011-08-05 Uros Bizjak - - * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of - parts.base and parts.index. - * config/i386/predicates.md (aligned_operand): Ditto. - (cmpxchg8b_pic_memory_operand): Ditto. - -2011-08-05 Rainer Orth - - * config/soft-fp: Move to ../libgcc. - * Makefile.in (SFP_MACHINE): Remove. - (libgcc-support): Remove $(SFP_MACHINE) dependency. - * config/arm/sfp-machine.h: Move to ../libgcc/config/arm. - * config/arm/t-arm-softfp: Move to - ../libgcc/config/arm/t-softfp. - * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x. - * config/c6x/t-c6x-softfp: Remove. - * config/i386/sfp-machine.h: Move to ../libgcc/config/i386. - * config/i386/t-fprules-softfp: Move to - ../libgcc/config/t-softfp-tf. - * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64. - * config/ia64/t-fprules-softfp: Remove. - * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32. - * config/lm32/t-fprules-softfp: Remove. - * config/moxie/sfp-machine.h: Remove. - * config/moxie/t-moxie-softfp: Remove. - * config/rs6000/darwin-ldouble-format: Move to - ../libgcc/config/rs6000/ibm-ldouble-format. - * config/rs6000/darwin-ldouble.c: Move to - ../libgcc/config/rs6000/ibm-ldouble.c - * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000. - * config/rs6000/libgcc-ppc64.ver: Likewise. - * config/rs6000/sfp-machine.h: Likewise. - * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove - $(srcdir)/config/rs6000/libgcc-ppc64.ver. - (LIB2FUNCS_EXTRA): Remove. - (TARGET_LIBGCC2_CFLAGS): Remove. - * config/rs6000/t-aix52: Likewise - * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove - $(srcdir)/config/rs6000/darwin-ldouble.c. - (SHLIB_MAPFILES): Remove. - * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove - $(srcdir)/config/rs6000/darwin-ldouble.c. - * config/rs6000/t-fprules-softfp: Move to - ../libgcc/config/t-softfp-sfdf. - * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000. - * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove. - * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove - $(srcdir)/config/rs6000/darwin-ldouble.c. - * config/score/sfp-machine.h: Move to ../libgcc/config/score. - * config/score/t-score-softfp: Remove. - * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp, - soft-fp/t-softfp from tmake_file. - (arm*-*-uclinux*): Likewise. - (arm*-*-ecos-elf): Likewise. - (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. - (arm*-*-rtems*): Likewise. - (arm*-*-elf): Likewise. - (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from - tmake_file. - (moxie-*-uclinux*): Likewise. - (moxie-*-rtems*): Likewise. - (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from - tmake_file. - (lm32-*-rtems*): Likewise. - (lm32-*-uclinux*): Likewise. - (powerpc-*-freebsd*): Remove rs6000/t-freebsd, - rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. - (powerpc-*-linux*, powerpc64-*-linux*): Remove - rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. - (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from - tmake_file. - (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from - tmake_file. - (tic6x-*-uclinux): Likewise. - (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp, - soft-fp/t-softfp from tmake_file. - (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) - (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise. - (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise. - (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. - (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise. - -2011-08-05 Rainer Orth - - * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove. - (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies. - (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS, - TPBIT, TPBIT_FUNCS. - * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc. - * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c): - Remove. - * config/arm/t-vxworks: Likewise. - * config/arm/t-wince-pe: Likewise. - * config/avr/t-avr (fp-bit.c, FPBIT): Remove. - * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/bfin/t-bfin-elf: Likewise. - * config/bfin/t-bfin-linux: Likewise. - * config/bfin/t-bfin-uclinux: Likewise. - * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c): - Remove. - * config/fr30/t-fr30: Likewise. - * config/frv/t-frv: Likewise. - * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove. - * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/m32c/t-m32c: Likewise. - * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove. - * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/mcore/t-mcore: Likewise. - * config/mep/t-mep: Likewise. - * config/microblaze/t-microblaze: Likewise. - * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove. - * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/mips/t-sdemtk (FPBIT, DPBIT): Remove. - * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/mn10300/t-linux: Remove. - * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/pdp11/t-pdp11: Likewise. - * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove. - * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000. - * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. - * config/rs6000/t-aix52: Likewise. - * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove - $(srcdir)/config/rs6000/ppc64-fp.c. - * config/rs6000/t-fprules-fpbit: Remove. - * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove. - * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/sh/t-netbsd (FPBIT, DPBIT): Remove. - * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/sparc/t-elf: Likewise. - * config/sparc/t-leon: Likewise. - * config/sparc/t-leon3: Likewise. - * config/spu/t-spu-elf: Likewise. - (DPBIT_FUNCS): Remove. - * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. - * config/v850/t-v850: Likewise. - * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file. - (avr-*-*): Likewise. - (h8300-*-rtems*): Set libgcc_tm_file. - (h8300-*-elf*): Likewise. - (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from - tmake_file. - (powerpc-*-eabisim*): Likewise. - (powerpc-*-elf*): Likewise. - (powerpc-*-eabialtivec*): Likewise. - (powerpc-xilinx-eabi*): Likewise. - (powerpc-*-eabi*): Likewise. - (powerpc-*-rtems*): Likewise. - (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise. - (powerpcle-*-elf*): Likewise. - (powerpcle-*-eabisim*): Likewise. - (powerpcle-*-eabi*): Likewise. - (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file. - (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file. - * doc/fragments.texi (Target Fragment, Floating Point Emulation): - Remove. - -2011-08-05 Rainer Orth - - * Makefile.in (UNWIND_H): Remove. - (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to - ../libgcc/Makefile.in. - (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. - (LIBUNWINDDEP): Remove. - (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. - (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, - LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. - (stmp-int-hdrs): Remove $(UNWIND_H) dependency. - Don't copy $(UNWIND_H). - * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling. - * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. - * aclocal.m4: Regenerate. - * configure: Regenerate. - * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, - unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, - unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, - unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. - * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. - * config/arm/libunwind.S, config/arm/pr-support.c, - config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to - ../libgcc/config/arm. - * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. - * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. - * config/frv/t-frv ($(T)frvbegin$(objext)): Use - $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. - ($(T)frvend$(objext)): Likewise. - * config/ia64/t-glibc (LIB2ADDEH): Remove. - * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. - * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, - config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to - ../libgcc/config/ia64. - * config/ia64/t-hpux (LIB2ADDEH): Remove. - * config/ia64/t-ia64 (LIB2ADDEH): Remove. - * config/ia64/t-vms (LIB2ADDEH): Remove. - * config/ia64/vms.h (UNW_IVMS_MODE, - MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. - * config/picochip/t-picochip (LIB2ADDEH): Remove. - * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. - * config/rs6000/t-darwin (LIB2ADDEH): Remove. - * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. - * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use - $(srcdir)/../libgcc to refer to unwinder sources. - * config/spu/t-spu-elf (LIB2ADDEH): Remove. - * config/t-darwin (LIB2ADDEH): Remove. - * config/t-freebsd (LIB2ADDEH): Remove. - * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. - * config/t-libunwind-elf: Move to ../libgcc/config. - * config/t-linux (LIB2ADDEH): Remove. - * config/t-sol2 (LIB2ADDEH): Remove. - * config/xtensa/t-xtensa (LIB2ADDEH): Remove. - * system.h (MD_FROB_UPDATE_CONTEXT): Poison. - -2011-08-05 H.J. Lu - - * config/i386/i386.c (processor_alias_table): Add core-avx-i. - - * doc/invoke.texi: Document core-avx-i. - -2011-08-05 Rainer Orth - - * tsystem.h (CONST_CAST2, CONST_CAST): Define. - -2011-08-05 Ira Rosen - - * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the - result of multiple results reduction when extracting the final - value using scalar code. - -2011-08-05 Richard Guenther - - PR tree-optimization/49984 - * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR. - -2011-08-05 Richard Guenther - - * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always - return true for constant integer ranges. - (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and - BIT_IOR_EXPR handling. - -2011-08-04 Kai Tietz - - * config/i386/i386.c (setup_incoming_varargs_ms_64): Set - ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero. - -2011-08-04 Ira Rosen - - * tree-vectorizer.h (struct _stmt_vec_info): Add new field for - pattern def statement, and its access macro. - (NUM_PATTERNS): Set to 5. - * tree-vect-loop.c (vect_determine_vectorization_factor): Handle - pattern def statement. - (vect_transform_loop): Likewise. - * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new - function vect_recog_over_widening_pattern (). - (vect_operation_fits_smaller_type): New function. - (vect_recog_over_widening_pattern, vect_mark_pattern_stmts): - Likewise. - (vect_pattern_recog_1): Move the code that marks pattern - statements to vect_mark_pattern_stmts (), and call it. Update - documentation. - * tree-vect-stmts.c (vect_supportable_shift): New function. - (vect_analyze_stmt): Handle pattern def statement. - (new_stmt_vec_info): Initialize pattern def statement. - -2011-08-04 Richard Henderson - - PR target/49964 - * config/i386/i386.c (ix86_expand_call): Don't create nested - PARALLELs for TARGET_VZEROUPPER. - (ix86_split_call_vzeroupper): Fix extraction of the original call. - * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't - recognize nested PARALLELs. - (*call_pop_vzeroupper, *sibcall_pop_vzeroupper, - *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper, - *sibcall_value_pop_vzeroupper): Likewise. - -2011-08-04 Richard Henderson - - PR middle-end/49968 - * calls.c (expand_call): Use fixup_args_size_notes for - emit_stack_restore. - * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets - in non-standard modes. - -2011-08-04 Jakub Jelinek - - * gcc.c (self_spec): New variable. - (static_specs): Add self_spec. - (main): Call do_self_spec on "self_spec" specs after reading - user specs files. Move compare_debug handling right after that. - -2011-08-04 Richard Guenther - - * tree-vrp.c (vrp_expr_computes_nonnegative): Remove. - (value_range_nonnegative_p): New function. - (ssa_name_nonnegative_p): Use it. - (value_range_constant_singleton): New function. - (op_with_constant_singleton_value_range): Use it. - (extract_range_from_binary_expr_1): New function, split out from ... - (extract_range_from_binary_expr): ... this. Remove fallback - constant folding done here. - -2011-08-04 Richard Guenther - - PR tree-optimization/49806 - * tree-vrp.c (op_with_boolean_value_range_p): New function. - (simplify_truth_ops_using_ranges): Simplify. Allow inserting - a new statement for a final conversion to bool. - -2011-08-04 Romain Geissler - - * gengtype-state.c: Include "bconfig.h" if - GENERATOR_FILE is defined, "config.h" otherwise. - * gengtype.c: Likewise. - * gengtype-lex.l: Likewise. - * gengtype-parse.c: Likewise. - * Makefile.in (gengtype-lex.o-warn): New variable. - (plugin_resourcesdir): Likewise. - (plugin_bindir): Likewise. - (plugin_includedir): Use $(plugin_resourcesdir) as prefix base. - (MOSTLYCLEANFILES): Add gengtype$(exeext). - (native): Depend on gengtype$(exeext) is $enable_plugin - is set to "yes". - (gtype.state): Depend on s-gtype. Use temporary file. - (gengtype-lex.o): New rule. - (gengtype-parse.o): Likewise. - (gengtype-state.o): Likewise. - (gengtype$(exeext)): Likewise. - (install-gengtype): Likewise. - (gengtype.o): Likewise. - (build/gengtype.o): Depend on version.h. - (build/gengtype-state): Depend on double-int.h, version.h, - $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o. - (install-plugin): Depend on install-gengtype. - -2011-08-04 Jakub Jelinek - - PR middle-end/49905 - * tree.h (init_attributes): New prototype. - * attribs.c (init_attributes): No longer static. - -2011-08-04 Ramana Radhakrishnan - - * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify - maybe_suffix. - -2011-08-03 David Li - - * tree-optimize.c (execute_fixup_cfg): Fix up entry - outgoing edge counts after inlining. - -2011-08-03 David Li - - * profile.c (compute_branch_probabilities): Compute - function frequency after profile annotation. - -2011-08-04 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify - use_backchain_to_restore_sp initialisation. - (rs6000_legitimate_offset_address_p): Simplify offset test. - -2011-08-03 Richard Henderson - - * config/spu/spu.md: Use define_c_enum instead of define_constants. - (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*. - (UNSPECV_NOP): New. - -2011-08-03 Richard Henderson - - PR target/34888 - * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0. - -2011-08-03 Jakub Jelinek - - PR tree-optimization/49948 - * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements. - -2011-08-03 Anatoly Sokolov - - * config/m32c/m32c.c (class_sizes): Remove. - (reduce_class): Change arguments and return type to reg_class_t. - Change type cc var to HARD_REG_SET. Change type best var to - reg_class_t. Change type best_size var to unsigned int. Remove - initialization class_sizes var. Use reg_class_size array instead - of class_sizes. Use reg_class_contents array instead - of class_contents. - -2011-08-03 Richard Guenther - - PR middle-end/49958 - * fold-const.c (fold_binary_loc): Only associate - (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if - overflow wraps. - -2011-08-03 Alan Modra - - PR rtl-optimization/49941 - * jump.c (mark_jump_label): Comment. - (mark_jump_label_1): Set JUMP_LABEL for return jumps. - * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared. - (mark_used_flags): Don't mark RETURN. - -2011-08-03 Richard Guenther - - PR tree-optimization/49938 - * tree-scalar-evolution.c (interpret_loop_phi): Gracefully - deal with a POLYNOMIAL_CHREC. - -2011-08-03 Revital Eres - - * modulo-sched.c (calculate_stage_count, - calculate_must_precede_follow, get_sched_window, - try_scheduling_node_in_cycle, remove_node_from_ps): Add - declaration. - (update_node_sched_params, set_must_precede_follow, optimize_sc): - New functions. - (reset_sched_times): Call update_node_sched_params. - (sms_schedule): Call optimize_sc. - (get_sched_window): Change function arguments. - (sms_schedule_by_order): Update call to get_sched_window. - Call set_must_precede_follow. - (calculate_stage_count): Add function argument. - -2011-08-02 Richard Henderson - - PR target/49864 - PR target/49879 - * reg-notes.def (REG_ARGS_SIZE): New. - * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop. - (expand_call): Add REG_ARGS_SIZE to emit_stack_restore. - * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to - different stack levels. - * combine-stack-adj.c (adjust_frame_related_expr): Remove. - (maybe_move_args_size_note): New. - (combine_stack_adjustments_for_block): Use it. - * combine.c (distribute_notes): Place REG_ARGS_SIZE. - * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member. - (dw_trace_info): Add beg_true_args_size, end_true_args_size, - beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined. - (cur_cfa): New. - (queued_args_size): Remove. - (add_cfi_args_size): Assert size is non-negative. - (stack_adjust_offset, dwarf2out_args_size): Remove. - (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove. - (notice_args_size, notice_eh_throw): New. - (dwarf2out_frame_debug_def_cfa): Use cur_cfa. - (dwarf2out_frame_debug_adjust_cfa): Likewise. - (dwarf2out_frame_debug_cfa_offset): Likewise. - (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset. - (dwarf2out_frame_debug): Don't handle non-frame-related-p insns. - (change_cfi_row): Don't emit args_size. - (maybe_record_trace_start_abnormal): Split out from ... - (maybe_record_trace_start): Here. Set args_size_undefined. - (create_trace_edges): Update to match. - (scan_trace): Handle REG_ARGS_SIZE. - (connect_traces): Connect args_size between EH insns. - * emit-rtl.c (try_split): Handle REG_ARGS_SIZE. - * explow.c (suppress_reg_args_size): New. - (adjust_stack_1): Split out from ... - (adjust_stack): ... here. - (anti_adjust_stack): Use it. - (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE. - * expr.c (mem_autoinc_base): New. - (fixup_args_size_notes): New. - (emit_single_push_insn_1): Rename from emit_single_push_insn. - (emit_single_push_insn): New. Generate REG_ARGS_SIZE. - * recog.c (peep2_attempt): Handle REG_ARGS_SIZE. - * reload1.c (reload_as_needed): Likewise. - * rtl.h (fixup_args_size_notes): Declare. - -2011-08-02 Paolo Carlini - - PR bootstrap/49914 - * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead - of abs. - * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. - * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. - -2011-08-02 Richard Henderson - - * config/h8300/h8300.c (push, pop): Return the insn. - (h8300_swap_into_er6): Generate correct unwind info. - (h8300_swap_out_of_er6): Likewise. - * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a - complex cfa expression. - (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too. - -2011-08-02 H.J. Lu - - * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. - -2011-08-02 Richard Henderson - - PR target/49878 - * config/h8300/h8300.c (h8300_move_ok): New. - * config/h8300/h8300-protos.h: Declare it. - * config/h8300/h8300.md (P): New mode iterator. - (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok. - (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise. - (movsi, *movsi_h8300, *movsi_h8300hs): Likewise. - (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY. - (*pushqi1_h8300hs_

): Macroize from pushqi1_h8300hs_advanced - and pushqi1_h8300hs_normal; use PRE_MODIFY and - register_no_sp_elim_operand. - (*pushhi1_h8300hs_

): Similarly. - (pushqi1, pushhi1, pushhi1_h8300): Remove. - * config/h8300/predicates.md (register_no_sp_elim_operand): New. - -2011-08-02 Richard Henderson - - PR target/49881 - * config/avr/avr.md (push1): Don't constrain the operand. - -2011-08-02 Jakub Jelinek - - * c-parser.c (enum c_parser_prec): New enum, moved from within - c_parser_binary_expression. - (c_parser_binary_expression): Add PREC argument. Stop parsing - if operator has lower or equal precedence than PREC. - (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust - callers. - (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics. - Adjust c_finish_omp_atomic caller. - (c_parser_omp_taskyield): New function. - (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. - (c_parser_omp_clause_name): Handle final and mergeable clauses. - (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New - functions. - (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL - and PRAGMA_OMP_CLAUSE_MERGEABLE. - (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. - (c_parser_omp_clause_reduction): Handle min and max. - * c-typeck.c (c_finish_omp_clauses): Don't complain about - const qualified predetermined vars in firstprivate clause. - andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. - Handle MIN_EXPR and MAX_EXPR. - * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL - and OMP_CLAUSE_MERGEABLE. - (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD - and OMP_ATOMIC_CAPTURE_NEW. - * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and - OMP_CLAUSE_MERGEABLE. - (omp_clause_code_name): Likewise. - (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. - * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL - and OMP_CLAUSE_MERGEABLE. - (OMP_CLAUSE_FINAL_EXPR): Define. - * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and - OMP_CLAUSE_MERGEABLE. - (expand_task_call): Likewise. - (expand_omp_atomic_load, expand_omp_atomic_store): New functions. - (expand_omp_atomic_fetch_op): Handle cases where old or new - value is needed afterwards. - (expand_omp_atomic): Call expand_omp_atomic_load resp. - expand_omp_atomic_store. - * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle - OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW. - (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle - OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. - * tree-nested.c (convert_nonlocal_omp_clauses, - convert_local_omp_clauses): Likewise. - * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD, - OMP_ATOMIC_CAPTURE_NEW): New. - * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New. - (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value): - New inlines. - * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin. - * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE, - OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. - -2011-08-02 Kai Tietz - - * gimple.c (canonicalize_cond_expr_cond): Handle cast from - boolean-type. - (ssa_forward_propagate_and_combine): Interprete result of - forward_propagate_comparison. - * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for - boolean-typed operands for comparisons. - -2011-08-02 Georg-Johann Lay - - * config/avr/libgcc.S: Gather related function in the - same input section. - (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4, - __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external - references. - (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4, - __udivmodsi4, __divmodsi4, __prologue_saves__, - __epilogue_restores__, _exit, __tablejump2__, __tablejump__, - __do_copy_data, __do_clear_bss, __do_global_ctors, - __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF. - -2011-08-02 Uros Bizjak - - PR target/47766 - * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value. - (stack_protect_test): The pattern compares ptr_mode value. - -2011-08-02 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE - note for save_LR_around_toc_setup sequence. - -2011-08-01 H.J. Lu - - * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long. - -2011-08-01 Sebastian Pop - Joseph Myers - - * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H. - * hwint.c: Include diagnostic-core.h. - (abs_hwi): New. - (gcd): Moved here... - (pos_mul_hwi): New. - (mul_hwi): New. - (least_common_multiple): Moved here... - * hwint.h (gcd): ... from here. - (least_common_multiple): ... from here. - (HOST_WIDE_INT_MIN): New. - (HOST_WIDE_INT_MAX): New. - (abs_hwi): Declared. - (gcd): Declared. - (pos_mul_hwi): Declared. - (mul_hwi): Declared. - (least_common_multiple): Declared. - * omega.c (check_pos_mul): Removed. - (check_mul): Removed. - (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and - mul_hwi instead of check_mul. - -2011-08-01 Richard Henderson - - PR target/49881 - * config/avr/avr.h (PUSH_ROUNDING): New. - * config/avr/avr.md (pushqi1): Rename from *pushqi. - (*pushhi, *pushsi, *pushsf): Remove. - (MPUSH): New mode iterator. - (push1): New expander. - -2011-08-01 Anatoly Sokolov - - * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS, - PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. - * config/mmix/mmix-protos.h (mmix_preferred_reload_class, - mmix_preferred_output_reload_class): Remove. - * config/mmix/mmix.c (mmix_preferred_reload_class, - mmix_preferred_output_reload_class): Make static. Change rclass - argument and return type to reg_class_t. - (TARGET_PREFERRED_RELOAD_CLASS, - TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. - -2011-08-01 Joern Rennecke - - * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER - handling. - -2011-08-01 H.J. Lu - - PR target/47766 - * config/i386/i386.md (PTR): New. - (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT. - (stack_protect_test): Likewise. - (stack_protect_set_): Replace ":P" with ":PTR". - (stack_tls_protect_set_): Likewise. - (stack_tls_protect_test_): Likewise. - -2011-08-01 Uros Bizjak - - PR target/49927 - * config/i386/i386.c (ix86_address_subreg_operand): New. - (ix86_decompose_address): Use ix86_address_subreg_operand. - (ix86_legitimate_address_p): Do not assert that subregs satisfy - register_no_elim_operand in DImode. - -2011-08-01 Ira Rosen - - PR tree-optimization/49926 - * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement - in a chain doesn't have uses both inside and outside the loop. - -2011-08-01 Georg-Johann Lay - - * config/avr/avr.h (mcu_type_s): Add errata_skip field. - * config/avr/avr-devices.c (avr_mcu_types): Use it. - * config/avr/avr-mcus.def (AVR_MCU): Use it. - * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin - define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__. - * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit): - Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__ - to detect if XJMP must not be skipped. - -2011-08-02 Alan Modra - - * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p): - Delete. - * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static. - (rs6000_emit_prologue): Don't prematurely return when - TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in - save_toc_in_prologue case. - (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for - calls_alloca. - -2011-08-01 Georg-Johann Lay - - * config/avr/avr-devices.c: Delete SVN property svn:executable. - * config/avr/predicates.md: Ditto. - * config/avr/driver-avr.c: Ditto. - * config/avr/genopt.sh: Set SVN property svn:executable to *. - -2011-08-01 H.J. Lu - - * calls.c (emit_library_call_value_1): Declare size only if - BLOCK_REG_PADDING is defined. - -2011-08-01 Kirill Yukhin - - PR target/49547 - * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h. - (x86_64-*-*): Likewise. - * config/i386/i386.opt (mlzcnt): New. - * config/i386/abmintrin.h: File removed. - (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ... - * config/i386/lzcntintrin.h: ... here. New file. - (__lzcnt): Rename to ... - (__lzcnt32): ... this. - * config/i386/bmiintrin.h (head): Update copyright year. - (__lzcnt_u16): Removed. - (__lzcnt_u32): Likewise. - (__lzcnt_u64): Likewise. - * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__ - is defined, remove abmintrin.h. - * config/i386/cpuid.h (bit_LZCNT): New. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect - LZCNT feature. - * config/i386/i386-c.c (ix86_target_macros_internal): Define - __LZCNT__ if needed. - * config/i386/i386.c (ix86_target_string): New option -mlzcnt. - (ix86_option_override_internal): Handle LZCNT option. - (ix86_valid_target_attribute_inner_p): Likewise. - (struct builtin_description bdesc_args) : Update. - * config/i386/i386.h (TARGET_LZCNT): New. - (CLZ_DEFINED_VALUE_AT_ZERO): Update. - * config/i386/i386.md (clz2): Update insn constraint. - (clz2_lzcnt): Likewise. - * doc/invoke.texi: Mention -mlzcnt option. - * doc/extend.texi: Likewise. - -2011-08-01 Julian Brown - - * configure.ac (fixed-point): Add ARM support. - * configure: Regenerate. - * config/arm/arm.c (arm_fixed_mode_set): New struct. - (arm_set_fixed_optab_libfunc): New. - (arm_set_fixed_conv_libfunc): New. - (arm_init_libfuncs): Initialise fixed-point helper libfuncs with - ARM-specific names. - (aapcs_libcall_value): Return sub-word-size fixed-point libcall - return values in SImode. - (arm_return_in_msb): Return fixed-point types in the msb. - (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types - upwards. - (arm_scalar_mode_supported_p): Support fixed-point modes. - (arm_vector_mode_supported_p): Support vector fixed-point modes. - * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE) - (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE) - (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE) - (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define. - * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL): - New mode iterators. - (qaddsub_suf): New mode attribute. - * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare - vector modes. - * config/arm/predicates.md (sat_shift_operator): New predicate. - * config/arm/arm-fixed.md: New. - * config/arm/arm.md: Include arm-fixed.md. - * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md. - -2011-08-01 Julian Brown - - * calls.c (emit_library_call_value_1): Support padding for libcall - arguments and return values. - * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values - downwards in big-endian mode. - -2011-08-01 Rainer Orth - - PR debug/49887 - * config/sol2.c (solaris_code_end): Rename to solaris_file_end. - * config/sol2-protos.h: Likewise. - * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call - solaris_code_end. - * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine. - * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call - solaris_file_end. - * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove. - -2011-08-01 Julian Brown - - * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST. - -2011-08-01 Julian Brown - - * final.c (output_addr_const): Print fixed-point constants as - decimal not hex. - -2011-08-01 Richard Guenther - - * stor-layout.c (initialize_sizetypes): Properly sign-extend - bitsiztype TYPE_MAX_VALUE. - -2011-08-01 Julian Brown - - * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point - comparison helpers. - -2011-07-31 Richard Henderson - - * config/h8300/crti.asm: Add flags to .section directive. - * config/h8300/crtn.asm: Likewise. - -2011-07-31 Richard Henderson - - * stor-layout.c (initialize_sizetypes): Handle unsigned short. - * tree.c (build_common_tree_nodes): Likewise. - -2011-07-31 Kaz Kojima - - PR target/49880 - * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1. - (divsi3_i1): Likewise. - -2011-07-31 Bill Schmidt - - PR tree-optimization/49749 - * tree-ssa-reassoc.c (get_rank): New forward declaration. - (PHI_LOOP_BIAS): New macro. - (phi_rank): New function. - (loop_carried_phi): Likewise. - (propagate_rank): Likewise. - (get_rank): Add calls to phi_rank and propagate_rank. - -2011-07-31 H.J. Lu - - * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead - of TARGET_64BIT. - (PTRDIFF_TYPE): Likewise. - -2011-07-31 Uros Bizjak - - PR target/49920 - * config/i386/i386.md (strset): Do not expand strset_singleop - when %eax or $edi are fixed. - (*strsetdi_rex_1): Disable when %eax or %edi are fixed. - (*strsetsi_1): Ditto. - (*strsethi_1): Ditto. - (*strsetqi_1): Ditto. - (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed. - (*rep_stossi): Ditto. - (*rep_stosqi): Ditto. - (*strlenqi_1): Ditto. - (cmpstrnsi): Also fail when %ecx is fixed. - (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed. - (*cmpstrnqi_1): Ditto. - (*strmovdi_rex_1): Disable when %esi or %edi are fixed. - (*strmovsi_1): Ditto. - (*strmovhi_1): Ditto. - (*strmovqi_1): Ditto. - (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed. - (*rep_movsi): Ditto. - (*rep_movqi): Ditto. - -2011-07-31 Mikael Pettersson - - PR target/47908 - * config/m68k/m68k.c (m68k_override_options_after_change): New function. - Disable instruction scheduling for non-ColdFire targets. - (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. - -2011-07-31 Revital Eres - - * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation - of anti-dep edge from a branch. - (add_cross_iteration_register_deps): Create anti-dep edge from - a branch. - -2011-07-31 Revital Eres - - * modulo-sched.c: Change comment. - (reset_sched_times): Fix print message. - (print_partial_schedule): Add print info. - -2011-07-31 Tom de Vries - - PR middle-end/43513 - * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of - get_object_alignment and TYPE_ALIGN. - -2011-07-30 Tom de Vries - - PR middle-end/43513 - * tree-ssa-dce.c (ref_may_be_aliased): Add assert. - (propagate_necessity): Handle WITH_SIZE_EXPR call arg. - -2011-07-29 Rainer Orth - - * config/mips/driver-native.c [__sgi__]: Include , - . - (cpu_types): New array. - (cputype): New function. - (host_detect_local_cpu): Only define buf, f if !__sgi__. - Use scaninvent instead of /proc/cpuinfo if __sgi__. - * config.host: Also use driver-native.o, mips/x-native on - mips-sgi-irix*. - * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare. - (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define. - (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS. - -2011-07-29 Jakub Jelinek - - PR middle-end/49897 - PR middle-end/49898 - * omp-low.c (use_pointer_for_field): If disallowing copy-in/out - in nested parallel and outer is a gimple_reg, mark it as addressable - and set its bit in task_shared_vars bitmap too. - -2011-07-29 Uros Bizjak - - * config/i386/predicates.md (tp_or_register_operand): Remove predicate. - -2011-07-29 Rainer Orth - - * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY, - IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define. - (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE, - AMASK_LOCKPFTCHOK): Define. - (host_detect_local_cpu): Remove buf, f, cpu_names. - Define cpu_types, implver, amask. - Use __builtin_alpha_implver, __builtin_alpha_amask to determine - native CPU. - * config.host: Also use driver-alpha.o, alpha/x-alpha on - alpha*-dec-osf*. - * config/alpha/osf5.h [__alpha__ || __alpha] - (host_detect_local_cpu): Declare. - (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS) - (DRIVER_SELF_SPECS): Define. - -2011-07-29 Uros Bizjak - - PR target/47715 - * config/i386/i386.md (*load_tp_x32): New. - (*load_tp_x32_zext): Ditto. - (*add_tp_x32): Ditto. - (*add_tp_x32_zext): Ditto. - (*load_tp_): Disable for TARGET_X32 targets. - (*add_tp_): Ditto. - * config/i386/i386.c (get_thread_pointer): Load thread pointer in - ptr_mode and convert to Pmode if needed. - -2011-07-29 Georg-Johann Lay - - PR target/49687 - * config/avr/avr.md (mulsi3, *mulsi3, mulusi3, - mulssi3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3, - *mulsi3): - Add X to register footprint: Clobber r26/r27. - -2011-07-29 Richard Guenther - - * builtins.c (fold_builtin_signbit): Build the comparison - with a proper type. - -2011-07-29 Richard Guenther - - PR tree-optimization/49893 - * tree-predcom.c (suitable_reference_p): Volatile references - are not suitable. - -2011-07-29 Georg-Johann Lay - - PR target/49313 - * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. - (__ctzsi2): Result for 0 may be undefined. - (__ctzhi2): Result for 0 may be undefined. - (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. - (__popcountsi2): Ditto. And don't clobber r26. - (__popcountdi2): Ditto. And don't clobber r27. - * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. - (parityhi2): New expand. - (paritysi2): New expand. - (popcounthi2): New expand. - (popcountsi2): New expand. - (clzhi2): New expand. - (clzsi2): New expand. - (ctzhi2): New expand. - (ctzsi2): New expand. - (ffshi2): New expand. - (ffssi2): New expand. - (copysignsf3): New insn. - (bswapsi2): New expand. - (*parityhi2.libgcc): New insn. - (*parityqihi2.libgcc): New insn. - (*paritysihi2.libgcc): New insn. - (*popcounthi2.libgcc): New insn. - (*popcountsi2.libgcc): New insn. - (*popcountqi2.libgcc): New insn. - (*popcountqihi2.libgcc): New insn-and-split. - (*clzhi2.libgcc): New insn. - (*clzsihi2.libgcc): New insn. - (*ctzhi2.libgcc): New insn. - (*ctzsihi2.libgcc): New insn. - (*ffshi2.libgcc): New insn. - (*ffssihi2.libgcc): New insn. - (*bswapsi2.libgcc): New insn. - -2011-07-29 Richard Guenther - - * tree-vrp.c (get_value_range): Only set parameter default - definitions to varying, leave others at undefined. - (extract_range_from_binary_expr): Fix undefined handling. - (vrp_visit_phi_node): Handle merged undefined state. - -2011-07-29 Wei Guozhi - - PR rtl-optimization/49799 - * combine.c (make_compound_operation): Check if the bit field is valid - before change it to bit field extraction. - -2011-07-29 Bernd Schmidt - - PR rtl-optimization/49891 - * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for - newly created returnjumps. - -2011-07-28 DJ Delorie - - * expr.c (expand_expr_addr_expr_1): Detect a user request for a - local frame in a naked function, and produce a suitable error for - that specific case. - - * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI - registers to be reloaded in HI classes when the target is HI. - -2011-07-28 Sebastian Pop - - * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with - bound_one, bound_two. - -2011-07-28 Sebastian Pop - - PR middle-end/48648 - * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle - CLAST assignments. - (translate_clast): Same. - (translate_clast_assignment): New. - -2011-07-28 Sebastian Pop - - PR tree-optimization/49876 - * sese.c (rename_uses): Do not return false on gloog_error: set - the new_expr to integer_zero_node and continue code generation. - (graphite_copy_stmts_from_block): Remove early exit on gloog_error. - -2011-07-28 Jakub Jelinek - - PR debug/49846 - * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack - arguments also check if they aren't initialized with a MODE_INT - mode of the same size. - -2011-07-28 Aldy Hernandez - - * expr.c (get_bit_range): Handle *MEM_REF's. - -2011-07-28 Bernd Schmidt - - * rtlanal.c (tablejump_p): False for returns. - * reorg.c (first_active_target_insn): New static function. - (find_end_label): Set JUMP_LABEL for a new returnjump. - (optimize_skip, get_jump_flags, rare_destination, - mostly_true_jump, get_branch_condition, - steal_delay_list_from_target, own_thread_p, - fill_simple_delay_slots, follow_jumps, fill_slots_from_thread, - fill_eager_delay_slots, relax_delay_slots, make_return_insns, - dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs. - * jump.c (delete_related_insns): Likewise. - (jump_to_label_p): New function. - (redirect_target): New static function. - (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS. - (redirect_jump_1): Assert that the new label is nonnull. - (redirect_jump): Likewise. - (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels. - * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the - exit block. - (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers - changed. Ensure that the right label is passed to redirect_jump. - * function.c (emit_return_into_block, - thread_prologue_and_epilogue_insns): Ensure new returnjumps have - ret_rtx in their JUMP_LABEL. - * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL. - * emit-rtl.c (skip_consecutive_labels): Allow the caller to - pass ret_rtx as label. - * cfglayout.c (fixup_reorder_chain): Use - force_nonfallthru_and_redirect rather than force_nonfallthru. - (duplicate_insn_chain): Copy JUMP_LABELs for returns. - * rtl.h (ANY_RETURN_P): New macro. - (jump_to_label_p): Declare. - * resource.c (find_dead_or_set_registers): Handle ret_rtx in - JUMP_LABELs. - (mark_target_live_regs): Likewise. - * basic-block.h (force_nonfallthru_and_redirect): Declare. - * cfgrtl.c (force_nonfallthru_and_redirect): No longer static. - * config/alpha/alpha.c (alpha_tablejump_addr_vec, - alpha_tablejump_best_label): Remove functions. - * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec, - alpha_tablejump_best_label): Remove declarations. - * config/sh/sh.c (barrier_align, split_branches): Adjust for - ret_rtx in JUMP_LABELs. - * config/arm/arm.c (is_jump_table): Likewise. - -2011-07-28 Uros Bizjak - - * config/i386/predicates.md (pic_32bit_opreand): Do not define as - special predicate. Remove explicit mode checks. - -2011-07-28 Jakub Jelinek - - * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize - DW_AT_data_member_location containing just DW_OP_plus_uconst. - - PR debug/49871 - * dwarf2out.c (size_of_die, value_format, output_die): Use - DW_FORM_udata instead of DW_FORM_data[48] for - dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3. - -2011-07-28 H.J. Lu - - * config/i386/i386.md (*tls_global_dynamic_64): Update - length attribute. - -2011-07-28 Uros Bizjak - - PR target/47715 - * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from - tls_symbolic_operand check. Update code sequence for TARGET_X32. - (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. - (tls_dynamic_gnu2_64): Ditto. - (*tls_dynamic_gnu2_lea_64): Ditto. - (*tls_dynamic_gnu2_call_64): Ditto. - (*tls_dynamic_gnu2_combine_64): Ditto. - -2011-07-28 H.J. Lu - - * config.gcc: Set need_64bit_hwint to yes for x86 targets. - -2011-07-28 H.J. Lu - - PR target/47364 - * config/i386/i386.md (strlen): Replace SWI48x with P. - -2011-07-28 Ramana Radhakrishnan - - * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints - before the core constraints. Adjust attributes. - ("*thumb2_movdf_vfp"): Likewise. - -2011-07-28 Kai Tietz - - * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case. - (simplify_truth_ops_using_ranges): Likewise. - (build_assert_expr_for): Likewise. - (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case - and handle BIT_NOT_EXPR for truth-operation. - -2011-07-28 Georg-Johann Lay - - PR target/49313 - Undo r176835 from trunk - 2011-07-27 Georg-Johann Lay - -2011-07-28 Georg-Johann Lay - - PR target/49687 - * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit. - Add _muluhisi3, _mulshisi3, _usmulhisi3. - * config/avr/libgcc.S (__mulsi3): Rewrite. - (__mulhisi3): Rewrite. - (__umulhisi3): Rewrite. - (__usmulhisi3): New. - (__muluhisi3): New. - (__mulshisi3): New. - (__mulohisi3): New. - (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to - declare. - * config/avr/predicates.md (pseudo_register_operand): Rewrite. - (pseudo_register_or_const_int_operand): New. - (combine_pseudo_register_operand): New. - (u16_operand): New. - (s16_operand): New. - (o16_operand): New. - * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI. - * config/avr/avr.md (QIHI, QIHI2): New mode iterators. - (any_extend, any_extend2): New code iterators. - (extend_prefix): New code attribute. - (mulsi3): Rewrite. Turn insn to expander. - (mulhisi3): Ditto. - (umulhisi3): Ditto. - (usmulhisi3): New expander. - (*mulsi3): New insn-and-split. - (mulusi3): New insn-and-split. - (mulssi3): New insn-and-split. - (mulohisi3): New insn-and-split. - (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3, - *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3, - *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3, - *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New - insn-and-split. - (*mulsi3_call): Rewrite. - (*mulhisi3_call): Rewrite. - (*umulhisi3_call): Rewrite. - (*usmulhisi3_call): New insn. - (*muluhisi3_call): New insn. - (*mulshisi3_call): New insn. - (*mulohisi3_call): New insn. - (extendqihi2): Use combine_pseudo_register_operand as predicate - for operand 1. - (extendqisi2): Ditto. - (zero_extendqihi2): Ditto. - (zero_extendqisi2): Ditto. - (zero_extendhisi2): Ditto. - (extendhisi2): Ditto. Don't early-clobber operand 0. - -2011-07-28 Uros Bizjak - - * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX. - -2011-07-27 Sebastian Pop - - PR tree-optimization/49471 - * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned - iv only when the largest type is unsigned. Do not call - lang_hooks.types.type_for_size. - -2011-07-27 Sebastian Pop - - PR middle-end/45450 - * graphite-poly.c (apply_poly_transforms): Disable legality check - after an openscop read. - -2011-07-27 Sebastian Pop - - PR middle-end/47691 - * graphite-clast-to-gimple.c (translate_clast_user): Update use of - copy_bb_and_scalar_dependences. - * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error. - (graphite_copy_stmts_from_block): Update call to rename_uses. - (copy_bb_and_scalar_dependences): Update call to - graphite_copy_stmts_from_block. - * sese.h (copy_bb_and_scalar_dependences): Update declaration. - -2011-07-27 Georg-Johann Lay - - PR target/49313 - * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. - (__ctzsi2): Result for 0 may be undefined. - (__ctzhi2): Result for 0 may be undefined. - (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. - (__popcountsi2): Ditto. And don't clobber r26. - (__popcountdi2): Ditto. And don't clobber r27. - * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. - (parityhi2): New expand. - (paritysi2): New expand. - (popcounthi2): New expand. - (popcountsi2): New expand. - (clzhi2): New expand. - (clzsi2): New expand. - (ctzhi2): New expand. - (ctzsi2): New expand. - (ffshi2): New expand. - (ffssi2): New expand. - (copysignsf3): New insn. - (bswapsi2): New expand. - (*parityhi2.libgcc): New insn. - (*parityqihi2.libgcc): New insn. - (*paritysihi2.libgcc): New insn. - (*popcounthi2.libgcc): New insn. - (*popcountsi2.libgcc): New insn. - (*popcountqi2.libgcc): New insn. - (*popcountqihi2.libgcc): New insn-and-split. - (*clzhi2.libgcc): New insn. - (*clzsihi2.libgcc): New insn. - (*ctzhi2.libgcc): New insn. - (*ctzsihi2.libgcc): New insn. - (*ffshi2.libgcc): New insn. - (*ffssihi2.libgcc): New insn. - (*bswapsi2.libgcc): New insn. - -2011-07-27 Uros Bizjak - - * config/i386/i386.c (ix86_expand_move): Do not explicitly check - the mode of symbolic_opreand RTXes. - -2011-07-27 Uros Bizjak - - * config/i386/predicates.md (x86_64_movabs_operand): Return false - for pic_32bit_operand RTXes. - * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand - in DImode. - -2011-07-27 Kai Tietz - - * config/i386/i386.c (ix86_option_override_internal): Allow -mabi - for 32-bit, too. - (ix86_handle_abi_attribute): Allow function attributes - ms_abi/sysv_abi in 32-bit mode, too. - * doc/extend.texi: Adjust attribute documentation. - - * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR - expression handling. - (and_var_with_comparison_1): Likewise. - -2011-07-27 Aldy Hernandez - - * params.h (ALLOW_STORE_DATA_RACES): New. - * params.def (PARAM_ALLOW_STORE_DATA_RACES): New. - * Makefile.in (expr.o): Depend on PARAMS_H. - * machmode.h (get_best_mode): Add argument. - * fold-const.c (optimize_bit_field_compare): Add argument to - get_best_mode. - (fold_truthop): Same. - * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field. - * expr.c (emit_group_store): Same. - (copy_blkmode_from_reg): Same. - (write_complex_part): Same. - (optimize_bitfield_assignment_op): Add argument. - Add argument to get_best_mode. - (get_bit_range): New. - (expand_assignment): Calculate maxbits and pass it down accordingly. - (store_field): New argument. - (expand_expr_real_2): New argument to store_field. Include params.h. - * expr.h (store_bit_field): New argument. - * stor-layout.c (get_best_mode): Restrict mode expansion by taking - into account maxbits. - * calls.c (store_unaligned_arguments_into_pseudos): New argument - to store_bit_field. - * expmed.c (store_bit_field_1): New argument. Use it. - (store_bit_field): Same. - (store_fixed_bit_field): Same. - (store_split_bit_field): Same. - (extract_bit_field_1): Pass new argument to get_best_mode. - (extract_bit_field): Same. - * stmt.c (store_bit_field): Pass new argument to store_bit_field. - * doc/invoke.texi: Document parameter allow-store-data-races. - -2011-07-27 Jakub Jelinek - - * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option. - -2011-07-27 Kai Tietz - - * tree-vrp.c (extract_range_from_binary_expr): Remove - TRUTH-binary cases and add new bitwise-cases. - (extract_range_from_assignment): Likewise. - (register_edge_assert_for_1): Likeiwise. - (register_edge_assert_for): Likewise. - (simplify_truth_ops_using_ranges): Likewise. - (simplify_stmt_using_ranges): Likewise. - -2011-07-26 H.J. Lu - - PR target/47372 - * config/i386/i386.c (ix86_delegitimize_address): Call - simplify_gen_subreg for PIC with mode of x only if modes of - x and orig_x are different. - -2011-07-26 Jakub Jelinek - - * dwarf2out.c (output_macinfo_op): Ensure fd->filename points - to GC allocated copy of the string. - (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections - before .debug_line, not after it. - -2011-07-26 Sebastian Pop - - PR middle-end/47046 - * tree-chrec.h (evolution_function_is_affine_p): Recursively call - evolution_function_is_affine_p on CHREC_RIGHT. - -2011-07-26 Sebastian Pop - - * tree-data-ref.c (max_stmt_executions_tree): Do not call - lang_hooks.types.type_for_size. - -2011-07-26 Sebastian Pop - - PR middle-end/47653 - * graphite-scop-detection.c (graphite_can_represent_loop): Discard - loops using wrapping semantics. - -2011-07-26 Sebastian Pop - - PR middle-end/48805 - * tree-scalar-evolution.c (instantiate_scev_r): Return - chrec_dont_know for ADDR_EXPR. - -2011-07-26 Uros Bizjak - H.J. Lu - - PR target/47369 - PR target/49853 - * config/i386/i386.c (ix86_expand_move): Call convert_to_mode - if legitimize_tls_address returned operand in wrong mode. Allow - SImode and DImode symbolic operand for PIC. Call convert_to_mode - if legitimize_pic_address returned operand in wrong mode. - -2011-07-26 Martin Jambor - - * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and - return false for invariants. - -2011-07-26 Uros Bizjak - - * config/i386/i386.md (add->lea splitter): Implement using SWI - mode iterator. Change operand 2 predicate to . - (add->lea zext splitter): Change operand 2 predicate to - x86_64_nonmemory_operand. - -2011-07-26 Richard Guenther - - * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block - frequency makes everything hot. - -2011-07-26 Richard Guenther - - PR tree-optimization/49840 - * tree-vrp.c (range_fits_type_p): Properly handle full - double-int precision. - -2011-07-26 Martin Jambor - - PR bootstrap/49786 - * ipa-cp.c (update_profiling_info): Avoid overflow when updating - counts. - (update_specialized_profile): Likewise. - -2011-07-26 Uros Bizjak - H.J. Lu - - PR target/47381 - PR target/49832 - PR target/49833 - * config/i386/i386.md (i): Change SImode attribute to "e". - (g): Change SImode attribute to "rme". - (di): Change SImode attribute to "nF". - (general_operand): Change SImode attribute to x86_64_general_operand. - (general_szext_operand): Change SImode attribute to - x86_64_szext_general_operand. - (immediate_operand): Change SImode attribute to - x86_64_immediate_operand. - (nonmemory_operand): Change SImode attribute to - x86_64_nonmemory_operand. - (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. - (*movsi_internal): Ditto. Use "e" constraint in alternative 2. - (*lea_1): Use SWI48 mode iterator. - (*lea_1_zext): New insn pattern. - (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. - (*bt): Ditto. - (*add1): Use x86_64_general_operand predicate for operand 2. - Update operand constraints. - (addsi_1_zext): Ditto. - (*add2): Ditto. - (*addsi_3_zext): Ditto. - (*subsi_1_zext): Ditto. - (*subsi_2_zext): Ditto. - (*subsi_3_zext): Ditto. - (*addsi3_carry_zext): Ditto. - (*si3_zext_cc_overflow): Ditto. - (*mulsi3_1_zext): Ditto. - (*andsi_1): Ditto. - (*andsi_1_zext): Ditto. - (*andsi_2_zext): Ditto. - (*si_1_zext): Ditto. - (*si_2_zext): Ditto. - (*test_1): Use predicate for operand 1. - (*and_2): Ditto. - (movcc): Use predicate for operands 1 and 2. - (add->lea splitter): Check operand modes in insn constraint. Extend - operands less than SImode wide to SImode. - (add->lea zext splitter): Do not extend input operands to DImode. - (*lea_general_1): Handle only QImode and HImode operands. - (*lea_general_2): Ditto. - (*lea_general_3): Ditto. - (*lea_general_1_zext): Remove. - (*lea_general_2_zext): Ditto. - (*lea_general_3_zext): Ditto. - (*lea_general_4): Check operand modes in insn constraint. Extend - operands less than SImode wide to SImode. - (ashift->lea splitter): Ditto. - * config/i386/i386.c (ix86_print_operand_address): Print address - registers with 'q' modifier on 64bit targets. - * config/i386/predicates.md (pic_32bit_opreand): Define as special - predicate. Reject non-SI and non-DI modes. - -2011-07-25 Andrew Pinski - - PR tree-opt/49671 - * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and - TREE_THIS_NOTRAP into the inner most MEM_REF. - Always copy TREE_THIS_VOLATILE. - * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and - arguments are not volatile references. - -2011-07-25 Richard Henderson - - * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove. - * final.c (final_scan_insn): Don't test for it. - (rest_of_clean_state): Likewise. - -2011-07-25 Richard Henderson - - PR debug/49841 - * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn. - (emit_frame_save): Likewise. - (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save - insn onto a dummy blockage insn after the join label. - -2011-07-25 Richard Henderson - - * dwarf2cfi.c (dw_trace_info): Add ID member. - (get_trace_index): Remove. Change users to use ID member. - (before_next_cfi_note): New. - (connect_traces): Remove unreachable traces before the main loop. - Look across one trace and generate remember/restore_state if needed. - -2011-07-25 Richard Henderson - - * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New. - -2011-07-25 Joern Rennecke - - * genattr.c (write_upcase, gen_attr ): - Move to ... - * genattr-common.c ... here. - (main): Call gen_attr. - * optc-gen.awk: Make generated program include insn-attr-common.h . - * Makefile.in (oprions.o): Depend on insn-attr-common.h - -2011-07-25 Anatoly Sokolov - - * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, - PRINT_OPERAND_PUNCT_VALID_P): Remove macro. - * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p, - m32c_print_operand, m32c_print_operand_address): Remove. - * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static. - Change return type to bool. Change argument type to bool. - (m32c_print_operand, m32c_print_operand_address): Make static. - (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, - TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. - -2011-07-25 Rainer Orth - - * doc/sourcebuild.texi (Effective-Target Keywords, Environment - attributes): Document mmap. - -2011-07-25 Anatoly Sokolov - - * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, - PRINT_OPERAND_PUNCT_VALID_P): Remove macro. - * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p, - mmix_print_operand, mmix_print_operand_address): Remove. - * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static. - Change return type to bool. Change argument type to bool. - (mmix_print_operand, mmix_print_operand_address): Make static. - (mmix_intval, mmix_output_condition): Change 'x' argument type - to const_rtx. - (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, - TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. - -2011-07-25 Georg-Johann Lay - - PR target/39386 - * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as - shift counter for x << x and x >> x shifts. - -2011-07-25 Rainer Orth - - PR target/47124 - * config.gcc: Reject *-*-solaris2 configuration. - -2011-07-25 Richard Sandiford - - PR tree-optimization/49809 - * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use - gimple_get_lhs instead of gimple_assign_lhs. - -2011-07-25 Rainer Orth - - * system.h [__cplusplus]: Wrap C function declarations in extern "C". - -2011-07-25 Richard Guenther - - PR tree-optimization/49822 - * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify - more. Make sure to preserve stmts with side-effects. Properly - handle virtual defs, follow a longer def chain. - -2011-07-22 Romain Geissler - - PR plugins/45348 - PR plugins/48425 - PR plugins/46577 - * Makefile.in: Do not flatten c-family directory when installing - plugin headers. - -2011-07-25 Eric Botcazou - - * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of - original nodes if we are dealing with virtual clones. - -2011-07-25 Bernd Schmidt - - * common/config/c6x/c6x-common.c: New file. - -2011-07-25 Roman Zhuykov - - * tree-flow.h (tree_ssa_loop_version): Remove unused declaration. - -2011-07-25 Richard Guenther - - PR tree-optimization/49715 - * tree-vrp.c: Include expr.h and optabs.h. - (range_fits_type_): New function. - (simplify_float_conversion_using_ranges): Likewise. - (simplify_stmt_using_ranges): Call it. - * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies. - * optabs.c (can_float_p): Export. - * optabs.h (can_float_p): Declare. - -2011-07-25 Richard Guenther - - * tree-vrp.c (num_vr_values, values_propagated): New global vars. - (get_value_range): For out-of-range SSA names or names created - after propagation return a read-only varying range. - (dump_all_value_ranges): Adjust. - (vrp_initialize): Likewise. - (vrp_finalize): Likewise. - -2011-07-24 Richard Henderson - - PR debug/49831 - * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip - them entirely. - -2011-07-24 Richard Henderson - - PR debug/49825 - * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier. - (dwarf2out_notice_stack_adjust): Use args_size from call_insn. - -2011-07-24 Richard Henderson - - PR debug/49827 - * dwarf2cfi.c (create_trace_edges): Handle sequences properly. - -2011-07-24 Richard Henderson - - * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter. - Zero args_size for abnormal edges. Adjust all callers. - -2011-07-24 Richard Henderson - - PR debug/49825 - * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size. - -2011-07-24 H.J. Lu - - PR bootstrap/49835 - * collect2.c (demangle_flag): Removed. - -2011-07-24 Sandra Loosemore - - * configure.ac (demangler_in_ld): Default to yes. - * configure: Regenerated. - * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't - mess with COLLECT_NO_DEMANGLE, and just pass --demangle and - --no-demangle options straight through to ld. When - HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a - way that has the intended effect on Windows. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c: Include basic-block.h. - (dw_label_info): Remove. - (trace_work_list, trace_index): New. - (remember_row, emit_cfa_remember): Remove. - (dw_trace_info_hash, dw_trace_info_eq): New. - (get_trace_index, get_trace_info): New. - (save_point_p): New. - (free_cfi_row): Remove. - (add_cfi): Do not emit DW_CFA_remember_state. - (cfa_row_equal_p): New. - (barrier_args_size): Remove. - (compute_barrier_args_size_1, compute_barrier_args_size): Remove. - (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size. - (maybe_record_trace_start, create_trace_edges, scan_trace): New. - (dwarf2out_cfi_begin_epilogue): Remove. - (dwarf2out_frame_debug_restore_state): Remove. - (connect_traces, create_pseudo_cfg): New. - (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces. - * Makefile.in (dwarf2cfi.o): Update. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (dw_trace_info): New. - (dw_label_info): New. - (cie_return_save): New. - (cur_trace): New. - (queued_args_size): Rename from args_size. Update all users. - (cfa_store, cfa_temp, regs_saved_in_regs): Remove. - (def_cfa_1): Use cur_trace instead of cfa_*. - (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise. - (clobbers_queued_reg_save, reg_saved_in): Likewise. - (dwarf2out_frame_debug_expr): Likewise. - (create_cie_data): Split out from ... - (execute_dwarf2_frame): ... here. Initialize cur_trace. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc. - Update all users to match. - (execute_dwarf2_frame): Free reg_saved_in_data. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY. - (queued_reg_saves): Don't GTY. Change to a VEC. - (queue_reg_save): Update to match. - (dwarf2out_flush_queued_reg_saves): Likewise. - (clobbers_queued_reg_save): Likewise. - (reg_saved_in): Likewise. - (execute_dwarf2_frame): Free queued_reg_saves. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (add_cfi_args_size): Split out from... - (dwarf2out_args_size): ... here. - (add_cfi_restore): Split out from ... - (dwarf2out_frame_debug_cfa_restore): ... here. - (def_cfa_0): Split out from ... - (def_cfa_1): ... here. - (cfi_oprnd_equal_p, cfi_equal_p): New. - (change_cfi_row): New. - (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index. - (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note. - (output_cfis): Remove. - * dwarf2out.c (output_fde): Simplify output_cfi loop. - (dwarf2out_switch_text_section): Don't call output_cfis. - (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New. - * dwarf2out.h: Update decls. - (enum dw_val_class): Add dw_val_class_none. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (update_row_reg_save): New. - (dwarf2out_frame_debug_cfa_expression): Use it. - (dwarf2out_frame_debug_cfa_restore): Likewise. - (reg_save): Likewise. Do not emit DW_CFA_same_value. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users. - -2011-07-23 Richard Henderson - - * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New. - (cie_cfi_row): New. - (new_cfi_row, copy_cfi_row, free_cfi_row): New. - (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove. - (cur_row, remember_row): New. - (def_cfa_1): Use cur_row instead of the old_* variables. - (dwarf2out_frame_debug_restore_state): Similarly. - (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise. - (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa. - (dwarf2out_frame_debug_adjust_cfa): Likewise. - (dwarf2out_frame_debug_cfa_offset): Likewise. - (dwarf2out_frame_debug_expr): Likewise. - (execute_dwarf2_frame): Set up cur_row. - * dwarf2out.h (struct cfa_loc): Mark for GTY. - -2011-07-23 Richard Henderson - - * basic-block.h (EDGE_PRESERVE): New. - (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it. - * bb-reorder.c: Include except.h. - (fix_up_crossing_landing_pad): New. - (find_rarely_executed_basic_blocks_and_crossing_edges): Place - landing pads in the right partition. Duplicate as necessary. - (partition_hot_cold_basic_blocks): Fix up DF info after - duplicating landing pads. - * cfg.c (dump_edge_info): Add crossing and preserve to bitnames. - * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING - is set properly. Validate that EH edges are not CROSSING. - * except.c (expand_dw2_landing_pad_for_region): Split out from ... - (dw2_build_landing_pads): ... here. - (convert_to_eh_region_ranges): Remove code to fixup crossing - landing pads. - * except.h (expand_dw2_landing_pad_for_region): Declare. - * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges. - -2011-07-23 Richard Earnshaw - - PR target/49816 - * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure. - -2011-07-22 Jason Merrill - - * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing. - -2011-07-22 Richard Henderson - - * bb-reorder.c (gate_handle_partition_blocks): Honor optimize. - -2011-07-22 Richard Henderson - - * jump.c (maybe_propagate_label_ref): Split out of... - (mark_all_labels): ... here. Do not attempt label_ref - propagation while in cfglayout mode. - -2011-07-22 Jakub Jelinek - - * dwarf2out.c (struct macinfo_struct): Change code to unsigned char. - (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define. - (dwarf_attr_name): Handle DW_AT_GNU_macros. - (dwarf2out_define): If the vector is empty and - lineno is 0, emit a dummy entry first. - (dwarf2out_undef): Likewise. Remove redundant semicolon. - (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op, - optimize_macinfo_range): New functions. - (output_macinfo): Use them. If !dwarf_strict and .debug_str is - mergeable, optimize longer strings using - DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP, - optimize longer sequences of define/undef ops from headers - using DW_MACRO_GNU_transparent_include. For !dwarf_strict - emit a section headers. - (dwarf2out_init): For !dwarf_strict set debug_macinfo_section - and macinfo_section_label to DEBUG_MACRO_SECTION - resp. DEBUG_MACRO_SECTION_LABEL. - (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros - instead of DW_AT_macro_info. - - PR other/32998 - * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New - options. - * dwarf2out.c: Include opts.h. - (dchar_p): New typedef. Define heap VEC for it. - (producer_string): New variable. - (gen_producer_string): New function. - (gen_compile_unit_die): Use it. - (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed. - * Makefile.in (dwarf2out.o): Depend on $(OPTS_H). - * doc/invoke.texi: Document -grecord-gcc-switches and - -gno-record-gcc-switches, add a -grecord-gcc-switches reference - to -frecord-gcc-switches description. - -2011-07-22 Jason Merrill - - PR c++/30112 - * c-decl.c (c_linkage_bindings): Define. - -2011-07-22 Eric Botcazou - - PR debug/49815 - * var-tracking.c (vt_finalize): Always free windowed_parm_regs. - -2011-07-22 H.J. Lu - - * config/i386/i386.c (ix86_option_override_internal): Disallow - MS ABI in x32 mode. - (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi - only for TARGET_LP64. - (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT. - -2011-07-22 Michael Meissner - - * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to - avoid warnings when GCC is built with a C++ compiler. - -2011-07-22 Martin Jambor - - PR lto/49796 - * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false - if decl node is in another partition, call cgraph_get_node only once. - -2011-07-22 Uros Bizjak - - * config.gcc (x86_64-*-linux*): Set - default_gnu_indirect_function to yes. - -2011-07-22 Richard Guenther - - PR tree-optimization/45819 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly - preserve volatile and notrap flags. - -2011-07-22 Rainer Orth - Ralf Wildenhues - - PR bootstrap/49794 - * configure.ac: Test AM_ICONV with CXX. - * configure: Regenerate. - * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST. - -2011-07-22 Rainer Orth - - PR bootstrap/49797 - * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing. - (set_cloog_options): Use it. - -2011-07-22 Jakub Jelinek - - PR c++/49756 - * gcc.c (main): Call stack_limit_increase (64MB). - * toplev.c (toplev_main): Likewise. - -2011-07-21 H.J. Lu - - * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg - instead of force_reg. - -2011-07-21 H.J. Lu - - * config/i386/i386.c (ix86_expand_move): Convert to Pmode if - needed and use force_reg after convert. - (ix86_expand_call): Likewise. - (ix86_expand_special_args_builtin): Likewise. - (ix86_expand_builtin): Likewise. - -2011-07-21 Sebastian Pop - - PR middle-end/47654 - PR middle-end/49649 - * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2 - in parameter. Initialize v1 and v2 based on the values returned - by clast_name_to_lb_ub. - (type_for_clast_red): Pass v1 and v2 in parameter, and set their - values. - (type_for_clast_bin): Same. - (type_for_clast_expr): Same. - (type_for_clast_eq): Update calls to type_for_clast_expr. - (type_for_clast_for): Same. - (build_iv_mapping): Same. - * graphite-ppl.h (value_min): New. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (type_for_interval): Generate signed - types whenever possible. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (struct clast_name_index): Add lb - and ub fields. - (new_clast_name_index): Add lb and ub parameters. - (free_clast_name_index): New. - (clast_name_to_lb_ub): New. - (save_clast_name_index): Add lb and ub parameters. - (compute_bounds_for_param): New. - (type_for_level): Removed. - (type_for_clast_for): Removed level parameter. Do not call - type_for_level. - (graphite_create_new_loop): Store the lb and ub for the clast_name - of the iterator of the loop that has been generated. - (graphite_create_new_loop_guard): Remove parameter level. - (create_params_index): Store the lb and ub of each parameter. - (gloog): Use free_clast_name_index. Pass to create_params_index - the current scop. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (max_signed_precision_type): Removed. - (max_precision_type): Inline max_signed_precision_type. - (type_for_clast_red): Use max_precision_type. - (type_for_clast_bin): Same. - (type_for_clast_for): Same. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed - type_for_interval. - (gcc_type_for_value): Renamed type_for_value. - (gcc_type_for_clast_term): Renamed type_for_clast_term. - (gcc_type_for_clast_expr): Renamed type_for_clast_expr. - (gcc_type_for_clast_red): Renamed type_for_clast_red. - (gcc_type_for_clast_bin): Renamed type_for_clast_bin. - (gcc_type_for_clast_eq): Renamed type_for_clast_eq. - (graphite_translate_clast_equation): Update calls. - (compute_type_for_level): Renamed type_for_level. - (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for. - (build_iv_mapping): Update calls. - (graphite_create_new_loop_guard): Same. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme - comment. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (struct ivs_params): New. - (clast_name_to_gcc): Use ivs_params to pass around parameters. - (clast_to_gcc_expression): Same. - (clast_to_gcc_expression_red): Same. - (gcc_type_for_clast_term): Same. - (gcc_type_for_clast_expr): Same. - (gcc_type_for_clast_red): Same. - (gcc_type_for_clast_bin): Same. - (gcc_type_for_clast_eq): Same. - (graphite_translate_clast_equation): Same. - (graphite_create_guard_cond_expr): Same. - (graphite_create_new_guard): Same. - (graphite_create_new_loop): Same. - (build_iv_mapping): Same. - (translate_clast_user): Same. - (graphite_create_new_loop_guard): Same. - (translate_clast): Same. - (translate_clast_for_loop): Same. - (translate_clast_for): Same. - (translate_clast_guard): Same. - (initialize_cloog_names): Fix typo. - (gloog): Initialize an ivs_params struct, pass it to translate_clast. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (struct clast_name_index): Add level. - (new_clast_name_index): Add level parameter. - (clast_name_to_level): New. - (save_clast_name_index): Add level parameter. - (newivs_to_depth_to_newiv): Removed. - (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv. - (graphite_create_new_loop): Add level parameter. Pass level to - save_clast_name_index. - (translate_clast_for_loop): Pass level to graphite_create_new_loop. - (create_params_index): Pass level to save_clast_name_index. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not - recompute type, lb, and ub. Get them from... - (graphite_create_new_loop_guard): ...here. Pass in parameter - pointers to type, lb, and ub. - (translate_clast_for_loop): Update function calls. - (translate_clast_for): Same. - -2011-07-21 Sebastian Pop - - * graphite-clast-to-gimple.c (compute_bounds_for_level): Call - psct_dynamic_dim. - (translate_clast_for_loop): Pass loop level to dependency_in_loop_p. - (gcc_type_for_iv_of_clast_loop): Update use of level. - (gloog): Start counting nesting level from 0. - * graphite-clast-to-gimple.h (get_scattering_level): Removed. - * graphite-dependences.c (graphite_carried_dependence_level_k): Call - psct_dynamic_dim on level. - -2011-07-21 H.J. Lu - - * config/i386/i386.c (ix86_legitimize_address): Convert to - Pmode if needed. - -2011-07-21 H.J. Lu - - * config/i386/i386.c (function_value_64): Always return pointers - in Pmode. - (ix86_promote_function_mode): New. - (TARGET_PROMOTE_FUNCTION_MODE): Likewise. - -2011-07-21 Bill Schmidt - - PR tree-optimization/49749 - * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and - remove no-longer-used maxrank variable. - -2011-07-21 Georg-Johann Lay - - * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs. - -2011-07-21 Jason Merrill - - * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New. - * recog.h (struct insn_data_d): Check it instead of - HAVE_DESIGNATED_INITIALIZERS. - * genoutput.c (output_insn_data): Likewise. - -2011-07-21 Richard Guenther - - PR tree-optimization/49770 - * tree-ssa-sccvn.c (valueize_refs_1): Return whether we - valueized any operand. Renamed from ... - (valueize_refs): ... this. New wrapper around valueize_refs_1. - (valueize_shared_reference_ops_from_ref): Return whether we - valueized any operand. - (vn_reference_lookup): Only when we valueized any operand - use the valueized reference for alias analysis. Do not preserve - the original reference tree in this case. - -2011-07-21 Uros Bizjak - - * config/i386/i386.c (ix86_decompose_address): Reject all but - register operands and subregs of DImode hard registers in index. - -2011-07-21 Kai Tietz - - * fold-const.c (fold_unary_loc): Preserve indirect - comparison cast to none-boolean type. - * tree-ssa.c (useless_type_conversion_p): Preserve cast - from/to boolean-type. - * gimplify.c (gimple_boolify): Handle boolification of comparisons. - (gimplify_expr): Boolifiy non aggregate-typed comparisons. - * tree-cfg.c (verify_gimple_comparison): Check result - type of comparison expression. - * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test - of condition result and disallow type-cast sinking into comparison. - -2011-07-21 Richard Guenther - - * tree-ssa-forwprop.c (combine_conversions): Return whether - we have to run cfg-cleanup. Properly remove dead stmts. - (ssa_forward_propagate_and_combine): Adjust. - -2011-07-21 Richard Sandiford - - * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK. - -2011-07-21 Kai Tietz - - * tree-ssa-propagate.c (substitute_and_fold): Use - do_dce flag to deside, if BB's statements are scanned - in last to first, or first to last order. - -2011-07-21 Georg-Johann Lay - - * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0. - -2011-07-20 H.J. Lu - Uros Bizjak - Richard Henderson - - * config/i386/constraints.md (w): New. - - * config/i386/i386.c (ix86_output_addr_vec_elt): Check - TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD. - - * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64 - instead of TARGET_64BIT. - - * config/i386/i386.md (indirect_jump): Replace - nonimmediate_operand with indirect_branch_operand. - (*indirect_jump): Likewise. Replace constraint "m" with "w". - (tablejump): Replace nonimmediate_operand with indirect_branch_operand. - Convert operand 0 to Pmode for x32 if not PIC. - (*tablejump_1): Replace nonimmediate_operand with - indirect_branch_operand. Replace constraint "m" with "w". - (*call_vzeroupper): Replace constraint "m" with "w". - (*call): Likewise. - (*call_rex64_ms_sysv_vzeroupper): Likewise. - (*call_rex64_ms_sysv): Likewise. - (*call_value_vzeroupper): Likewise. - (*call_value): Likewise. - (*call_value_rex64_ms_sysv_vzeroupper): Likewise. - (*call_value_rex64_ms_sysv): Likewise. - (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT. - - * config/i386/predicates.md (indirect_branch_operand): New. - (call_insn_operand): Support x32. - -2011-07-20 Michael Eager - - * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12. - -2011-07-20 Richard Henderson - - * cfg.c (dump_bb_info): Dump basic_block->flags. - * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info. - -2011-07-20 Uros Bizjak - - * config/i386/i386.c (ix86_decompose_address): Allow only subregs - of DImode hard registers in index. - (ix86_legitimate_address_p): Allow subregs of base and index to span - more than a word. Assert that subregs of base and index satisfy - register_no_elim_operand predicates. Reject addresses where - base and index have different modes. - -2011-07-20 Robert Millan - - * config.gcc (mips*-*-linux*): Remove redundant tm_file entry. - -2011-07-20 Ulrich Weigand - - * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by - removing now-unnecessary assignment. - -2011-07-20 Ulrich Weigand - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting - memory address space to the type's address space. - -2011-07-20 Georg-Johann Lay - - PR target/36467 - PR target/49687 - * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2 - and expand appropriately if there is a CONST_INT in operand2. - (usmulqihi3): New insn. - (*sumulqihi3): New insn. - (*osmulqihi3): New insn. - (*oumulqihi3): New insn. - (*muluqihi3.uconst): New insn_and_split. - (*muluqihi3.sconst): New insn_and_split. - (*mulsqihi3.sconst): New insn_and_split. - (*mulsqihi3.uconst): New insn_and_split. - (*mulsqihi3.oconst): New insn_and_split. - (*ashifthi3.signx.const): New insn_and_split. - (*ashifthi3.signx.const7): New insn_and_split. - (*ashifthi3.zerox.const): New insn_and_split. - (mulsqihi3): New insn. - (muluqihi3): New insn. - (muloqihi3): New insn. - * config/avr/predicates.md (const_2_to_7_operand): New. - (const_2_to_6_operand): New. - (u8_operand): New. - (s8_operand): New. - (o8_operand): New. - (s9_operand): New. - (register_or_s9_operand): New. - -2011-07-20 Kai Tietz - - * builtins.c (fold_builtin_expect): See through the cast - from truthvalue_type_node to long. - -2011-07-20 Michael Meissner - - * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions - where we can use them from the standard and altivec instruction - sets, instead of always using the 3 operand VSX forms that require - the destination to overlap one of the inputs. - (vsx_fms*): Ditto. - (vsx_fnma*): Ditto. - (vsx_fnms*): Ditto. - - * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d - for DF types. - (fmsdf4_fpr): Ditto. - (nfmadf4_fpr): Ditto. - (nfmsdf4_fpr): Ditto. - -2011-07-20 Sandra Loosemore - - * genrecog.c (make_insn_sequence): Correct position numbering - when filtering out match_scratch and match_dup. - -2011-07-20 Richard Guenther - - * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify - against already removed statements. - (forward_propagate_into_comparison): Remove dead defining stmts. - (forward_propagate_into_gimple_cond): Likewise. - (forward_propagate_into_cond): Simplify. - (ssa_forward_propagate_and_combine): Handle changed cfg from - forward_propagate_into_comparison. - * tree-ssa-phiopt.c (conditional_replacement): Use proper - locations for newly built statements. - -2011-07-20 Georg-Johann Lay - - * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0. - -2011-07-20 Andreas Krebbel - - * config/s390/s390.c (s390_class_max_nregs): Fix return type. - * config/s390/s390-protos.h (s390_class_max_nregs): Likewise. - -2011-07-20 Richard Guenther - - PR middle-end/18908 - * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision. - * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus - ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X. - -2011-07-20 Vladimir Makarov - - * config/frv/frv.c (frv_register_move_cost): Define explicitly - costs for subclasses of GR_REGS. - -2011-07-20 Uros Bizjak - - PR target/49780 - * config/i386/predicates.md (no_seg_addres_operand): No more special. - * config/i386/i386.c (ix86_decompose_address): Allow only subregs - of DImode hard registers in base. - (ix86_legitimate_address_p): Allow SImode and DImode base and index - registers. - -2011-07-20 Richard Guenther - - * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily. - (unify_nodes): Deal with that. - (solve_graph): Likewise. - -2011-07-20 Chung-Lin Tang - - * config/arm/arm.c (arm_canonicalize_comparison): Add case to - canonicalize left operand from ZERO_EXTEND to AND. - -2011-07-20 Anatoly Sokolov - - * target.def (class_max_nregs): New hook. - * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document. - * doc/tm.texi: Regenerate. - * targhooks.c (default_class_max_nregs): New function. - * targhooks.h (default_class_max_nregs): Declare. - * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and - x_ira_reg_class_min_nregs arrays to unsigned char. - * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target - hook instead of CLASS_MAX_NREGS macro. - * reginfo.c (restore_register_info): Ditto. - * ira-conflicts.c (process_regs_for_copy): Use - ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. - Change type rclass and aclass vars to reg_class_t. - * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs - array instead of CLASS_MAX_NREGS macro. Change type rclass var to - reg_class_t. - * reload.c (combine_reloads, find_reloads, find_reloads_address_1): - Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. - - * config/i386/i386.h (CLASS_MAX_NREGS): Remove. - * config/i386/i386.c (ix86_class_max_nregs): New function. - (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook - instead of CLASS_MAX_NREGS macro. - (TARGET_CLASS_MAX_NREGS): Define. - * config/avr/avr.h (CLASS_MAX_NREGS): Remove. - * config/avr/avr-protos.h (class_max_nregs): Remove declaration. - * config/avr/avr.c (class_max_nregs): Remove function. - * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove. - * config/spu/spu.h (CLASS_MAX_NREGS): Remove. - * config/mep/mep.h (CLASS_MAX_NREGS): Remove. - * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove. - * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove. - * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove. - * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove. - * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove. - * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove. - * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove. - * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove. - * config/score/score.h (CLASS_MAX_NREGS): Remove. - * config/vax/vax.h (CLASS_MAX_NREGS): Remove. - * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove. - * config/v850/v850.h (CLASS_MAX_NREGS): Remove. - -2011-07-19 Eric Botcazou - - * cif-code.def (OVERWRITABLE): Fix typo and move around. - (TARGET_OPTIMIZATION_MISMATCH): Delete. - (EH_PERSONALITY): Fix typo. - (NON_CALL_EXCEPTIONS): Fix message. - (OPTIMIZATION_MISMATCH): Adjust message. - * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH. - -2011-07-19 Ian Lance Taylor - - * doc/install.texi (Configuration): Document - --enable-build-poststage1-with-cxx. - -2011-07-19 Robert Millan - - * config/mips/gnu-user.h: Copy from linux.h. Update comments. - (GLIBC_DYNAMIC_LINKER): Remove. - - * config/mips/gnu-user64.h: Copy from linux64.h. Update comments. - (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) - (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) - (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove. - (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32, - GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32. - - * config/mips/linux.h: Remove everything except for ... - (GLIBC_DYNAMIC_LINKER): ... this macro. - - * config/mips/linux64.h: Remove everything except for ... - (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) - (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) - (BIONIC_DYNAMIC_LINKERN32): ... these macros. - (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64) - (GNU_USER_LINK_EMULATIONN32): New macros. - - * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*): - Use the new headers. - -2011-07-19 Richard Sandiford - - * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs. - Add offset_known_p and size_known_p fields. - (MEM_OFFSET_KNOWN_P): Update accordingly. - (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise. - * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes. - (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset) - (clear_mem_offset, set_mem_size, clear_mem_size, change_address) - (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill) - (init_emit_regs): Likewise. - -2011-07-19 Richard Sandiford - - * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document. - (MEM_OFFSET): Change from returning an rtx to returning a - HOST_WIDE_INT. - * rtl.h (MEM_OFFSET_KNOWN_P): New macro. - (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx. - * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. - (clear_mem_offset): Declare. - * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using - MEM_OFFSET_KNOWN_P to test whether the offset is known, and - MEM_OFFSET to get a HOST_WIDE_INT offset. - (nonoverlapping_memrefs_p): Likewise. Adjust calls to... - (adjust_offset_for_component_ref): Take a bool "known_p" - parameter and a HOST_WIDE_INT "offset" parameter. - * builtins.c (get_memory_rtx): As for ao_ref_from_mem. - Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather - than an rtx. Use clear_mem_offset to clear the offset. - * cfgcleanup.c (merge_memattrs): Likewise. - * dwarf2out.c (tls_mem_loc_descriptor): Likewise. - * function.c (assign_parm_find_stack_rtl): Likewise. - (assign_parm_setup_stack): Likewise. - * print-rtl.c (print_rtx): Likewise. - * reload.c (find_reloads_subreg_address): Likewise. - * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. - * var-tracking.c (INT_MEM_OFFSET): Likewise. - * emit-rtl.c (set_reg_attrs_from_value): Likewise. - (get_mem_align_offset): Likewise. - (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. - (clear_mem_offset): New function. - * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT - offset rather than an rtx. Assume both the expressio and offset - are available. - (r10k_needs_protection_p_1): Update accordingly, checking the - expression and offset availability here instead. - -2011-07-19 Richard Sandiford - - * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document. - (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT. - * rtl.h (MEM_SIZE_KNOWN_P): New macro. - (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx. - * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. - (clear_mem_size): Declare. - * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. - (clear_mem_size): New function. - * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using - MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE - to get a HOST_WIDE_INT size. Adjust calls to set_mem_size, - passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size - to clear the size. - (nonoverlapping_memrefs_p): Likewise. - * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise. - (expand_builtin_init_trampoline): Likewise. - * calls.c (compute_argument_addresses): Likewise. - * cfgcleanup.c (merge_memattrs): Likewise. - * dce.c (find_call_stack_args): Likewise. - * dse.c (record_store, scan_insn): Likewise. - * dwarf2out.c (dw_sra_loc_expr): Likewise. - * expr.c (emit_block_move_hints): Likewise. - * function.c (assign_parm_find_stack_rtl): Likewise. - * print-rtl.c (print_rtx): Likewise. - * reload.c (find_reloads_subreg_address): Likewise. - * rtlanal.c (may_trap_p_1): Likewise. - * var-tracking.c (track_expr_p): Likewise. - * varasm.c (assemble_trampoline_template): Likewise. - * config/arm/arm.c (arm_print_operand): Likewise. - * config/h8300/h8300.c (h8sx_emit_movmd): Likewise. - * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise. - (expand_setmem_via_rep_stos, expand_constant_movmem_prologue) - (expand_constant_setmem_prologue): Likewise. - * config/mips/mips.c (mips_get_unaligned_mem): Likewise. - * config/rs6000/rs6000.c (expand_block_move): Likewise. - (adjacent_mem_locations): Likewise. - * config/s390/s390.c (s390_expand_setmem): Likewise. - (s390_expand_insv): Likewise. - * config/s390/s390.md (*extzv, *extv): Likewise. - (*extendqi2_short_displ): Likewise. - * config/sh/sh.c (expand_block_move): Likewise. - * config/sh/sh.md (extv, extzv): Likewise. - -2011-07-19 Richard Sandiford - - * emit-rtl.c (mem_attrs_eq_p): New function, split out from... - (mem_attrs_htab_eq): ...here. - (find_mem_attrs): Replace with... - (set_mem_attrs): ...this function. Take a mem_attrs structure - rather than individual fields. - (set_mem_attributes_minus_bitpos, set_mem_alias_set) - (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) - (set_mem_size, change_address, adjust_address_1, offset_address) - (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): - Update accordingly. - -2011-07-19 Richard Sandiford - - * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE) - (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs. - Provide a dummy definition of MEM_ADDR_SPACE for generators. - (target_rtl): Add x_mode_mem_attrs. - (mode_mem_attrs): New macro. - (get_mem_attrs): New function. - * emit-rtl.c (get_mem_attrs): Rename to... - (find_mem_attrs): ...this. - (set_mem_attributes_minus_bitpos, set_mem_alias_set) - (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) - (set_mem_size, change_address, adjust_address_1, offset_address) - (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): - Update accordingly. - (init_emit_regs): Initialize mode_mem_attrs. - -2011-07-19 Richard Guenther - - * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove - TRUTH_*_EXPR handling. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree-ssa-pre.c (fully_constant_expression): Likewise. - * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre): - Likewise. - (is_and_or_or): Likewise. - (is_norm_cond_subset_of): Likewise. - -2011-07-19 Richard Guenther - - * tree.h (fold_build_pointer_plus_loc): New helper function. - (fold_build_pointer_plus_hwi_loc): Likewise. - (fold_build_pointer_plus): Define. - (fold_build_pointer_plus_hwi): Likewise. - * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus. - (fold_builtin_memory_op): Likewise. - (fold_builtin_stpcpy): Likewise. - (fold_builtin_memchr): Likewise. - (fold_builtin_strstr): Likewise. - (fold_builtin_strchr): Likewise. - (fold_builtin_strrchr): Likewise. - (fold_builtin_strpbrk): Likewise. - (fold_builtin_strcat): Likewise. - (expand_builtin_memory_chk): Likewise. - (fold_builtin_memory_chk): Likewise. - * c-typeck.c (build_unary_op): Likewise. - * cgraphunit.c (thunk_adjust): Likewise. - * fold-const.c (build_range_check): Likewise. - (fold_binary_loc): Likewise. - * omp-low.c (extract_omp_for_data): Likewise. - (expand_omp_for_generic): Likewise. - (expand_omp_for_static_nochunk): Likewise. - (expand_omp_for_static_chunk): Likewise. - * tree-affine.c (add_elt_to_tree): Likewise. - * tree-data-ref.c (split_constant_offset_1): Likewise. - * tree-loop-distribution.c (generate_memset_zero): Likewise. - * tree-mudflap.c (mf_xform_derefs_1): Likewise. - * tree-predcom.c (ref_at_iteration): Likewise. - * tree-ssa-address.c (tree_mem_ref_addr): Likewise. - (add_to_parts): Likewise. - (create_mem_ref): Likewise. - * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. - * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise. - (number_of_iterations_le): Likewise. - * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise. - * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. - (vect_create_addr_base_for_vector_ref): Likewise. - * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise. - (vect_create_cond_for_alias_checks): Likewise. - * tree-vrp.c (extract_range_from_assert): Likewise. - * config/alpha/alpha.c (alpha_va_start): Likewise. - (alpha_gimplify_va_arg_1): Likewise. - * config/i386/i386.c (ix86_va_start): Likewise. - (ix86_gimplify_va_arg): Likewise. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. - * config/mep/mep.c (mep_expand_va_start): Likewise. - (mep_gimplify_va_arg_expr): Likewise. - * config/mips/mips.c (mips_va_start): Likewise. - (mips_gimplify_va_arg_expr): Likewise. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. - * config/rs6000/rs6000.c (rs6000_va_start): Likewise. - (rs6000_gimplify_va_arg): Likewise. - * config/s390/s390.c (s390_va_start): Likewise. - (s390_gimplify_va_arg): Likewise. - * config/sh/sh.c (sh_va_start): Likewise. - (sh_gimplify_va_arg_expr): Likewise. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. - * config/spu/spu.c (spu_va_start): Likewise. - (spu_gimplify_va_arg_expr): Likewise. - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): - Likewise. - (xstormy16_gimplify_va_arg_expr): Likewise. - * config/xtensa/xtensa.c (xtensa_va_start): Likewise. - (xtensa_gimplify_va_arg_expr): Likewise. - -2011-07-19 Richard Guenther - - * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling. - (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST - handling. - - PR middle-end/18908 - * expr.c (expand_expr_real_2): Do not unnecessarily truncate the - result of BIT_*_EXPR to bitfield precision. - -2011-07-19 Richard Sandiford - - PR tree-optimization/49742 - * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call - as a potential write. - -2011-07-19 Richard Guenther - - * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h. - * tree-ssa-forwprop.c: Include gimple-pretty-print.h. - (forward_propagate_comparison): Simplify, remove obsolete code. - -2011-07-19 Richard Guenther - - * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as - BIT_XOR_EXPR, same as the RTL expander does. - * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL. - (verify_gimple_assign_unary): Likewise. - * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR. - * tree-ssa-forwprop.c (forward_propagate_comparison): Handle - BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR. - -2011-07-19 Jakub Jelinek - - PR tree-optimization/49768 - * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL - if offset is smaller than bitoffset, but offset+size is bigger - than bitoffset. - -2011-07-19 Ira Rosen - - PR tree-optimization/49771 - * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of - zero step, set segment length to the size of the data-ref's type. - -2011-07-18 Martin Jambor - - * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general - comments. - (ipcp_values_pool): Declare. - (ipcp_sources_pool): Likewise. - (ipcp_lattice): Changed to forward declaration. - (ipa_param_descriptor): Removed fields ipcp_lattice, types and - cannot_devirtualize. - (ipa_node_params): New fields descriptors, lattices, known_vals, - clone_for_all_contexts and node dead, removed fields params and - count_scale. - (ipa_set_param_count): Removed. - (ipa_get_param_count): Made to work with descriptors vector. - (ipa_get_param): Updated. - (ipa_param_cannot_devirtualize_p): Removed. - (ipa_param_types_vec_empty): Likewise. - (ipa_set_param_used): New function. - (ipa_get_param_used): Updated to use descriptors vector. - (ipa_func_list): Removed. - (ipa_init_func_list): Removed declaration. - (ipa_push_func_to_list_1): Likewise. - (ipa_pop_func_from_list): Likewise. - (ipa_push_func_to_list): Removed. - (ipa_lattice_from_jfunc): Remove declaration. - (ipa_get_jf_pass_through_result): Declare. - (ipa_get_jf_ancestor_result): Likewise. - (ipa_value_from_jfunc): Likewise. - (ipa_get_lattice): Update. - (ipa_lat_is_single_const): New function. - * ipa-prop.c (ipa_push_func_to_list_1): Removed. - (ipa_init_func_list): Likewise. - (ipa_pop_func_from_list): Likewise. - (ipa_get_param_decl_index): Fix coding style. - (count_formal_params): Removed. - (count_formal_params_1): Renamed to count_formal_params. - (ipa_populate_param_decls): Update to use descriptors vector. - (ipa_initialize_node_params): Likewise. - (visit_ref_for_mod_analysis): Use ipa_set_param_used. - (ipa_analyze_params_uses): Likewise. - (ipa_free_node_params_substructures): Likewise and free also lattices - and known values. - (duplicate_array): Removed. - (ipa_edge_duplication_hook): Add the new edge to the list of edge - clones. - (ipa_node_duplication_hook): Update to use new lattices. - (ipa_free_all_structures_after_ipa_cp): Free alloc pools. - (ipa_free_all_structures_after_iinln): Likewise. - (ipa_write_node_info): Update to use new lattices. - (ipa_read_node_info): Likewise. - (ipa_get_jf_pass_through_result): New function. - (ipa_get_jf_ancestor_result): Likewise. - (ipa_value_from_jfunc): Likewise. - (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc. - * ipa-cp.c: Reimplemented. - * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed. - (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter. - (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. - * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies. - * doc/invoke.texi (devirt-type-list-size): Removed description. - (ipa-cp-value-list-size): Added description. - -2011-07-18 Richard Henderson - - * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns - before calling create_basic_block. - -2011-07-18 Jakub Jelinek - - PR middle-end/49675 - * tree.c (build_common_builtin_nodes): Register - __builtin_return_address, __cyg_profile_func_enter - and __cyg_profile_func_exit. - -2011-07-18 Richard Henderson - - * bb-reorder.c (emit_barrier_after_bb): Split out of ... - (add_labels_and_missing_jumps): ... here. - (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it. - -2011-07-18 Uros Bizjak - - PR target/47744 - * config/i386/i386.c (ix86_decompose_address): Allow only subregs - of DImode hard registers in PLUS address chains. - -2011-07-18 Rainer Orth - - PR bootstrap/49769 - * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts. - (alpha*-*-freebsd*): Likewise. - (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, - i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, - i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o, - crtprec80.o, crtfastmath.o to extra_parts for all targets. - (ia64*-*-elf*): Remove extra_parts. - (sparc-*-linux*): Add crtfastmath.o to extra_parts. - (sparc64-*-linux*): Likewise. - (sparc64-*-freebsd*): Likewise. - - Revert: - * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts. - (ia64*-*-linux*): Likewise. - (mips64*-*-linux*): Likewise. - (mips*-*-linux*): Likewise. - -2011-07-18 David Edelsohn - - * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug. - -2011-07-18 Richard Guenther - - * gimplify.c (gimplify_expr): Use input_location, not saved_location - when building new trees. - -2011-07-18 Richard Guenther - - * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR - expansion result to bitfield precision if required. - -2011-07-18 Rainer Orth - - * config.gcc (i[3456x]86-*-netware*): Remove. - - * gthr-nks.h: Remove. - * configure.ac (enable_threads): Remove nks. - * configure: Regenerate. - - * config/i386/i386.c (ix86_encode_section_info): Remove netware - reference. - * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove - reference. - - * config/i386/netware-libgcc.c, - gcc/config/i386/netware-libgcc.def, - gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c, - gcc/config/i386/netware.h, gcc/config/i386/netware.opt, - gcc/config/i386/nwld.c, gcc/config/i386/nwld.h, - gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove - - * doc/extend.texi (Function Attributes, - callee_pop_aggregate_return): Remove i?86-netware reference. - * doc/install.texi (Configuration, --enable-threads): Remove nks. - -2011-07-17 John David Anglin - - PR target/49746 - Revert: - 2010-12-30 John David Anglin - - * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean - patterns. - -2011-07-17 Eric Botcazou - - PR middle-end/49732 - * tree.c (walk_tree_1) : Do not walk a pointed-to type. - -2011-07-16 Matthias Klose - - * doc/install.texi: Document --enable-static-libjava. - -2011-07-15 Richard Henderson - - * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): - Replace all three arguments by returning a VEC of edges. - (add_labels_and_missing_jumps): Accept a VEC of edges, not bare - pointers and counts. - (fix_edges_for_rarely_executed_code): Merge ... - (rest_of_handle_partition_blocks): ... into... - (partition_hot_cold_basic_blocks): ... here. Return todo items if - any work was performed. - (pass_partition_blocks): Clear todo_flags_finish. - -2011-07-15 Paolo Carlini - Jakub Jelinek - Jonathan Wakely - - PR libstdc++/49745 - * gthr-posix.h: Do not include unconditionally; use - _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS. - -2011-07-15 Jason Merrill - - PR testsuite/49741 - * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts - rather than --tool_opts. - -2011-07-15 Basile Starynkevitch - - * doc/plugins.texi (Building GCC plugins): gengtype needs its - corresponding gtype.state. - -2011-07-15 John David Anglin - - PR target/49723 - * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT. - -2011-07-15 Eric Botcazou - - PR target/48220 - * doc/md.texi (Standard Names): Document window_save. - * cfgexpand.c (expand_debug_parm_decl): New function extracted from - expand_debug_expr and expand_debug_source_expr. If the target has - a window_save instruction, adjust the ENTRY_VALUE_EXP. - (expand_debug_expr) : Call expand_debug_parm_decl if the - SSA_NAME_VAR is a parameter. - (expand_debug_source_expr) : Call expand_debug_parm_decl. - * var-tracking.c (parm_reg_t): New type and associated vector type. - (windowed_parm_regs): New variable. - (adjust_insn): If the target has a window_save instruction and this - is the instruction, make its effect on parameter registers explicit. - (next_non_note_insn_var_location): New function. - (emit_notes_in_bb): Use it instead of NEXT_INSN throughout. - (vt_add_function_parameter): If the target has a window_save insn, - adjust the incoming RTL and record that in windowed_parm_regs. - (vt_finalize): Free windowed_parm_regs. - -2011-07-15 Bernd Schmidt - - * doc/invoke.texi (C6X Options): New section. - * doc/md.texi (TI C6X family): New section. - * config.gcc: Handle tic6x, in particular tic6x-*-elf and - tic6x-*-uclinux. - * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm, - count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME): - Provide C6X definitions. - * config/c6x/c6x.md: New file. - * config/c6x/constraints.md: New file. - * config/c6x/predicates.md: New file. - * config/c6x/c6x-sched.md.in: New file. - * config/c6x/c6x-sched.md: New file. - * config/c6x/gensched.sh: New file. - * config/c6x/c6x-mult.md.in: New file. - * config/c6x/genmult.sh: New file. - * config/c6x/c6x-mult.md: New file. - * config/c6x/sync.md: New file. - * config/c6x/c6x-protos.h: New file. - * config/c6x/sfp-machine.h: New file. - * config/c6x/c6x.c: New file. - * config/c6x/c6x.h: New file. - * config/c6x/crti.s: New file. - * config/c6x/crtn.s: New file. - * config/c6x/lib1funcs.asm: New file. - * config/c6x/c6x-modes.def: New file. - * config/c6x/genopt.sh: New file. - * config/c6x/c6x.opt: New file. - * config/c6x/c6x-tables.opt: New file. - * config/c6x/c6x-opts.h: New file. - * config/c6x/c6x-isas.def: New file. - * config/c6x/elf.h: New file. - * config/c6x/elf-common.h: New file. - * config/c6x/uclinux-elf.h: New file. - * config/c6x/t-c6x: New file. - * config/c6x/t-c6x-elf: New file. - * config/c6x/t-c6x-uclinux: New file. - * config/c6x/t-c6x-softfp: New file. - * config/c6x/gtd.c: New file. - * config/c6x/gtf.c: New file. - * config/c6x/ltd.c: New file. - * config/c6x/ltf.c: New file. - * config/c6x/ged.c: New file. - * config/c6x/gef.c: New file. - * config/c6x/led.c: New file. - * config/c6x/lef.c: New file. - * config/c6x/eqd.c: New file. - * config/c6x/eqf.c: New file. - * config/c6x/libgcc-c6xeabi.ver: New file. - - Revert - 2003-07-10 Eric Botcazou - PR rtl-optimization/11320 - * sched-int.h (struct deps) [reg_conditional_sets]: New field. - (struct sched_info) [compute_jump_reg_dependencies]: New prototype. - * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to - current_sched_info->compute_jump_reg_dependencies. Record which - registers are used and which registers are set by the jump. - Clear deps->reg_conditional_sets after a barrier. - Set deps->reg_conditional_sets if the insn is a COND_EXEC. - Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. - (init_deps): Initialize reg_conditional_sets. - (free_deps): Clear reg_conditional_sets. - * sched-ebb.c (compute_jump_reg_dependencies): New prototype. - Mark registers live on entry of the fallthrough block and conditionally - set as set by the jump. Mark registers live on entry of non-fallthrough - blocks as used by the jump. - * sched-rgn.c (compute_jump_reg_dependencies): New prototype. - Mark new parameters as unused. - -2011-07-14 Andrew Pinski - - PR tree-opt/49309 - * tree-mudflap.c (mf_xform_derefs_1 ): - Use fold_build2_loc instead of build2. - Use the correct type for the new tree. - -2011-07-14 Bernd Schmidt - - PR rtl-optimization/11320 - * config/ia64/ia64.md (load_symptr_low): Show a MEM. - * config/ia64/ia64.c (ia64_expand_load_address): Generate it. - -2011-07-14 Georg-Johann Lay - - PR target/49487 - * config/avr/avr.md (rotl3): Generate SCRATCH instead - of REG. - (*rotw): Use const_int_operand for operand2. - Use match_scatch for operand3. - (*rotb): Ditto - * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH. - -2011-07-14 Richard Guenther - - PR tree-optimization/49651 - * tree-ssa-structalias.c (get_constraint_for_1): Properly - handle dereferences with subvariables. - -2011-07-14 Richard Guenther - - * gimple-fold.c (fold_gimple_assign): Remove operand swapping. - (fold_stmt_1): Do it here directly on gimple and as a first thing. - -2011-07-14 Richard Guenther - - * fold-const.c (fold_binary_loc): Convert the !bool_var result, - not bool_var when folding bool_var != 1 or bool_var == 0. - -2011-07-14 Bernd Schmidt - - * haifa-sched.c (schedule_insns): Remove outdated comment. - (schedule_block): When computing a known value for TODO_SPEC, - just set it rather than using logical operations. - (try_ready): Likewise. Use a local variable rather than a - pointer to TODO_SPEC. Reorder an if statement to move the - easy case to the then block. - * sched-deps.c (dep_spec_p): New static function. - (update_dep): Use it to decide whether to call - change_spec_dep_to_hard. - (get_back_and_forw_lists): Use it. - (sd_resolve_dep): Likewise. - (init_dep): If !USE_DEPS_LIST, use zero to initialize status. - (haifa_note_mem_dep): Likewise. - (check_dep): Likewise. - (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION. - (sched_free_deps): Free in two passes. - -2011-07-14 Richard Sandiford - - PR middle-end/49736 - * expr.c (all_zeros_p): Undo bogus part of last change. - -2011-07-14 Matthias Klose - - * doc/extend.texi (optimize attribute): Fix typo. - -2011-07-14 Richard Guenther - - * gimplify.c (gimplify_expr): Only do required conversions. - -2011-07-14 Georg-Johann Lay - - PR target/43746 - * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove, - i.e. use default_elf_select_section. - (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove. - (READONLY_DATA_SECTION_ASM_OP): Remove. - (TARGET_ASM_NAMED_SECTION): Move from here... - * config/avr/avr.c: ...to here. - (avr_asm_init_sections): Set unnamed callback of readonly_data_section. - (avr_asm_named_section): Make static. - -2011-07-13 Rainer Orth - - PR bootstrap/49739 - * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o - and crtfastmath.o for Linux/x86. - -2011-07-14 Bernd Schmidt - - * haifa-sched.c: Include "hashtab.h" - (sched_no_dce): New global variable. - (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN, - SHADOW_P): New macros. - (last_clock_var, cycle_issued_insns): Move declarations. - (must_backtrack): New static variable. - (struct delay_pair): New structure. - (delay_htab, delay_htab_i2): New static variables. - (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq, - record_delay_slot_pair, pair_delay, add_delay_dependencies): New - functions. - (dep_cost_1): If delay pairs exist, try to look up the insns and - use the correct pair delay if we find them. - (rank-for_schedule): Tweak priority for insns that must be scheduled - soon to avoid backtracking. - (queue_insn): Detect conditions which force backtracking. - (ready_add): Likewise. - (struct sched_block_state): Add member shadows_only_p. - (struct haifa_save_data): New structure. - (backtrack_queue): New static variable. - (mark_backtrack_feeds, copy_insn_list, save_backtrack_point, - unschedule_insns_until, restore_last_backtrack_point, - free_topmost_backtrack_point, free_backtrack_queue, - estimate_insn_tick, estimate_shadow_tick): New functions. - (prune_ready_list): New arg shadows_only_p. All callers changed. - If true, remove everything that isn't SHADOW_P. Look up delay - pairs and estimate ticks to avoid scheduling the first insn too early. - (verify_shadows): New function. - (schedule_block): Add machinery to enable backtracking. - (sched_init): Take sched_no_dce into account when setting - DF_LR_RUN_DCE. - (free_delay_pairs): New function. - (init_h_i_d): Initialize INSN_EXACT_TICK. - * Makefile.in (haifa-sched.o): Add $(HASHTAB_H). - * sched-deps.c (sd_unresolve_dep): New function. - * sched-int. (struct haifa_sched_info): New fields save_state - and restore_state. - (struct _haifa_insn_data): New fields exact_tick, tick_estimate, - feeds_backtrack_insn and shadow_p. - (DO_BACKTRACKING): New value in enum SCHED_FLAGS. - (sched_no_dce): Declare variable. - (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies, - sd_unresolve_dep): Declare functions. - * modulo-sched.c (sms_sched_info): Clear the two new fields. - * sched-rgn.c (rgn_const_sched_info): Likewise. - * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. - * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions. - (ebb_sched_info): Add them for the two new fields. - (add_deps_for_risky_insns): Call add_delay_dependencies. - -2011-07-13 Michael Meissner - - * config/rs6000/rs6000.opt (-mpointers-to-nested-functions): - Rename -mr11. - * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto. - (rs6000_call_indirect_aix): Ditto. - * config/rs6000/rs6000.md (call_indirect_aix): Ditto. - (call_indirect_aix_internal): Ditto. - (call_indirect_aix_nor11): Ditto. - (call_indirect_aix_internal2): Ditto. - (call_value_indirect_aix): Ditto. - (call_value_indirect_aix_internal): Ditto. - (call_value_indirect_aix_nor11): Ditto. - (call_value_indirect_aix_internal2): Ditto. - * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto. - -2011-07-13 Jason Merrill - - * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts. - -2011-07-13 Ulrich Weigand - - * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2. - * config/spu/spu.md ("clrsb2"): New expander. - -2011-07-13 Thomas Schwinge - - * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo. - * configure: Regenerate. - -2011-07-13 Ulrich Weigand - - * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define. - (asm_file_start): Remove. - (spu_machine_dependent_reorg): Call compute_bb_for_insn and - free_bb_for_insn around code that modifies insns before - restarting df analysis. - -2011-07-13 Rainer Orth - - PR target/49541 - * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ... - (LINK_SPEC): ... here. - -2011-07-13 Bernd Schmidt - - * haifa-sched.c (struct sched_block_state): New. - (schedule_block): Move some local variables into such a structure. - -2011-07-13 Rainer Orth - - * config/i386/crtprec.c: Move to ../libgcc/config/i386. - * config/i386/t-crtpc: Remove. - * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. - * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from - tmake_file. - (x86_64-*-darwin*): Likewise. - (i[34567]86-*-linux*): Likewise. - (x86_64-*-linux*): Likewise. - - * config/i386/sol2.h (ENDFILE_SPEC): Redefine. - Handle -mpc32, -mpc64, -mpc80. - -2011-07-13 Rainer Orth - - * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha. - * config/alpha/t-crtfm: Remove. - * config/i386/crtfastmath.c: Move to ../libgcc/config/i386. - * config/i386/t-crtfm: Remove. - * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64. - * config/mips/crtfastmath.c: Move to ../libgcc/config/mips. - * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc. - * config/sparc/t-crtfm: Remove. - - * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file. - (alpha*-*-freebsd*): Likewise. - (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file. - (x86_64-*-darwin*): Likewise. - (i[34567]86-*-linux*): Likewise. - (x86_64-*-linux*): Likewise. - (x86_64-*-mingw*): Likewise. - (ia64*-*-elf*): Remove crtfastmath.o from extra_parts. - (ia64*-*-freebsd*): Likewise. - (ia64*-*-linux*): Likewise. - (mips64*-*-linux*): Likewise. - (mips*-*-linux*): Likewise. - (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file. - (sparc64-*-linux*): Likewise. - (sparc64-*-freebsd*): Likewise. - -2011-07-13 Rainer Orth - - * config/darwin-crt2.c: Move to ../libgcc/config/rs6000. - * config/darwin-crt3.c: Move to ../libgcc/config. - * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. - ($(T)crt3$(objext)): Remove. - * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove. - ($(T)crt2$(objext)): Remove. - * config.gcc (powerpc-*-darwin*): Remove extra_parts. - (powerpc64-*-darwin*): Likewise. - -2011-07-13 H.J. Lu - - * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode. - - * config/i386/i386.md (*addsi_1_zext): Renamed to ... - (addsi_1_zext): This. - -2011-07-13 Bernd Schmidt - - * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook. - * doc/tm.texi: Regenerate. - * target.def (mergeable_rodata_prefix): New defhookpod. - * varasm.c (mergeable_string_section, mergeable_constant_section): - Use it. Allocate name with alloca. - -2011-07-13 H.J. Lu - - * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma. - -2011-07-13 Richard Sandiford - - * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten - overlap check. - -2011-07-13 Richard Sandiford - - * tree.h (categorize_ctor_elements): Remove comment. Fix long line. - (count_type_elements): Delete. - (complete_ctor_at_level_p): Declare. - * expr.c (flexible_array_member_p): New function, split out from... - (count_type_elements): ...here. Make static. Replace allow_flexarr - parameter with for_ctor_p. When for_ctor_p is true, return the - number of elements that should appear in the top-level constructor, - otherwise return an estimate of the number of scalars. - (categorize_ctor_elements): Replace p_must_clear with p_complete. - (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p. - (complete_ctor_at_level_p): New function, borrowing union logic - from old categorize_ctor_elements_1. - (mostly_zeros_p): Return true if the constructor is not complete. - (all_zeros_p): Update call to categorize_ctor_elements. - * gimplify.c (gimplify_init_constructor): Update call to - categorize_ctor_elements. Don't call count_type_elements. - Unconditionally prevent clearing for variable-sized types, - otherwise rely on categorize_ctor_elements to detect - incomplete initializers. - -2011-07-13 Richard Guenther - - * tree-vrp.c (simplify_conversion_using_ranges): Make sure - the final type is integral. - -2011-07-13 Bernd Schmidt - - * sched-int.h (struct _dep): Add member cost. - (DEP_COST, UNKNOWN_DEP_COST): New macros. - * sched-deps.c (init_dep_1): Initialize DEP_COST. - * haifa-sched.c (dep_cost_1): Use and set DEP_COST. - (sched_change_pattern): Reset it for dependent insns. - -2011-07-13 Rainer Orth - - * Makefile.in (CRT0STUFF_T_CFLAGS): Remove. - ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove. - * config/i386/netware-crt0.c: Move to ../libgcc/config/i386. - * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove. - (CRT0_S, MCRT0_S): Remove. - ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def): - Remove. - (s-crt0): Remove. - * config.gcc (i[3456x]86-*-netware*): Remove extra_parts. - -2011-07-12 Eric Botcazou - - * cse.c (insert_with_costs): Put semi-colon after empty loop body - on the next line. - * emit-rtl.c (push_to_sequence): Likewise. - * haifa-sched.c (max_issue): Likewise. - * matrix-reorg.c (add_allocation_site): Likewise. - * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. - * reload.c (alternative_allows_const_pool_ref): Likewise. - * sched-rgn.c (rgn_add_block): Likewise. - (rgn_fix_recovery_cfg): Likewise. - * tree.c (attribute_list_contained): Likewise. - -2011-07-12 Uros Bizjak - - * config/i386/i386.c: Tidy processor feature bitmasks. - (m_P4_NOCONA): New. - -2011-07-12 Andrew Pinski - - PR rtl-opt/49474 - * cprop.c (find_implicit_sets): Correct the condition. - -2011-07-12 Richard Henderson - - PR target/49713 - * dwarf2out.h (dwarf_frame_regnum): Remove. - * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno - earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number. - * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New. - (execute_dwarf2_frame): Initialize them. - (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace - users of the macros with the variables. - (expand_builtin_dwarf_sp_column): Revert last change. - (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the - result of DWARF_FRAME_REGNUM into a local variable. - -2011-07-12 Richard Henderson - - PR target/49714 - * config/i386/i386.c (x86_output_mi_thunk): Use - machopic_indirect_call_target instead of machopic_indirection_name - directly. - -2011-07-12 Laurent GUERBY - Eric Botcazou - - * prefix.h: Wrap up in extern "C" block. - -2011-07-12 Harsha Jagasia - - AMD bdver2 Enablement - * config.gcc (i[34567]86-*-linux* | ...): Add bdver2. - (case ${target}): Add bdver2. - * config/i386/driver-i386.c (host_detect_local_cpu): Let - -march=native recognize bdver2 processors. - * config/i386/i386-c.c (ix86_target_macros_internal): Add - bdver2 def_and_undef - * config/i386/i386.c (struct processor_costs bdver2_cost): New - bdver2 cost table. - (m_BDVER2): New definition. - (m_AMD_MULTIPLE): Includes m_BDVER2. - (initial_ix86_tune_features): Add bdver2 tuning. - (processor_target_table): Add bdver2 entry. - (static const char *const cpu_names): Add bdver2 entry. - (ix86_option_override_internal): Add bdver2 instruction sets. - (ix86_issue_rate): Add bdver2. - (ix86_adjust_cost): Add bdver2. - (has_dispatch): Add bdver2. - * config/i386/i386.h (TARGET_BDVER2): New definition. - (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2. - (enum processor_type): Add PROCESSOR_BDVER2. - * config/i386/i386.md (define_attr "cpu"): Add bdver2. - * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to - description. - -2011-07-12 Richard Henderson - - PR target/49714 - * config/i386/i386.c (x86_output_mi_thunk): Fix mode for - destination address in memory on some paths. - -2011-07-12 Bernd Schmidt - - * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention - TARGET_FUNCTION_ARG_ROUND_BOUNDARY. - (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook. - * function.c (locate_and_pad_parm): Take it into account. - * target.def (function_arg_round_boundary): New hook. - * targhooks.c (default_function_arg_round_boundary): New function. - * targhooks.h (default_function_arg_round_boundary): Declare. - * doc/tm.texi: Regenerate. - -2011-07-12 Richard Guenther - - * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics. - Do not perform no-op changes. - -2011-07-12 Richard Sandiford - - * config/arm/predicates.md (neon_struct_operand): Make a normal - predicate. - (neon_struct_or_register_operand): New predicate. - * config/arm/neon.md (movmisalign): Replace predicates - with neon_struct_or_register_operand. - (*movmisalign_neon_store, *movmisalign_neon_load): Use - neon_struct_operand instead of memory_operand. - -2011-07-12 Martin Jambor - - * cgraph.h (cgraph_get_node_or_alias): Removed declaration. - * cgraph.c (cgraph_get_node_or_alias): Removed. - (change_decl_assembler_name): Changed all calls to - cgraph_get_node_or_alias to a call to cgraph_get_node. - (cgraph_make_decl_local): Likewise. - * lto-symtab.c (lto_symtab_resolve_symbols): Likewise. - * varasm.c (default_binds_local_p_1): Likewise. - (decl_binds_to_current_def_p): Likewise. - -2011-07-12 Jakub Jelinek - - PR tree-optimization/49712 - * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF. - -2011-07-11 Bernd Schmidt - - * genautomata.c (add_arc): Return void. All callers changed. - (make_automaton): Remove dead code. - -2011-07-11 Richard Henderson - - * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New. - (DW_FRAME_POINTER_REGNUM): New. - (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum. - (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here. - (dwf_regno): New. - (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa, - dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register, - dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr): - Use it. - * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum. - * dwarf2out.h (dwarf_frame_regnum): New. - (struct cfa_loc): Document the domain of the reg member. - -2011-07-11 Uros Bizjak - - * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr. - Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE. - -2011-07-11 Jakub Jelinek - - PR debug/49676 - * dwarf2out.c (int_shift_loc_descriptor): New function. - (int_loc_descriptor): If shorter, emit i as - (i >> shift), shift, DW_OP_shl for suitable shift value. - Similarly, try to optimize large negative values using - DW_OP_neg of a positive value if shorter. - (size_of_int_shift_loc_descriptor): New function. - (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor - changes. - (mem_loc_descriptor) : Emit zero-extended constants - that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor + - DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former - is shorter. - (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large - addend as added DW_OP_plus if it is shorter. - -2011-07-11 Rainer Orth - - * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define. - (DTORS_SECTION_ASM_OP): Define. - -2011-07-11 Rainer Orth - - * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc. - * config/t-dfprules: Move to ../libgcc/config. - * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, - i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, - i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file. - (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): - Likewise. - (i[34567]86-*-cygwin*): Likewise. - (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. - (powerpc-*-linux*, powerpc64-*-linux*): Likewise. - * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove. - (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS, - D64PBIT_FUNCS, D128PBIT_FUNCS. - -2011-07-11 Richard Guenther - - * tree-vrp.c (simplify_conversion_using_ranges): Manually - translate the source value-range through the conversion chain. - -2011-07-11 Richard Sandiford - - * expr.c (expand_expr_real_1): Use expand_insn for movmisalign. - -2011-07-11 Arthur Loiret - - * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build - a bi-arch compiler defaulting to 31-bit. In this case: - (tmake_file): Add s390/t-linux64. - * doc/install.texi: Add s390-linux to the list of targets supporting - --enable-targets=all. - -2011-07-11 Arthur Loiret - Matthias Klose - - * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build - a tri-arch compiler defaulting to 32-bit (ABI o32). In this case: - (tm_file): Add mips/linux64.h. - (tmake_file): Add mips/t-linux64. - (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. - * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT - instead of hardcoded mabi=n32. - * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if - tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc - convention. - -2011-07-11 Andreas Krebbel - - * passes.c (init_optimization_passes): Add invariant motion pass - after induction variable optimization. - -2011-07-11 Georg-Johann Lay - - PR target/39633 - * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only - offsets 1..5 set cc0 in a usable way. - -2011-07-11 Romain Geissler - - * tree.h (call_expr_arg): Remove. - (call_expr_argp): Likewise. - -2011-07-11 Eric Botcazou - - * config/sparc/sparc.md (save_register_window_1): Rename to... - (window_save): ...this. - * config/sparc/sparc.c (emit_save_register_window): Rename to... - (emit_window_save): ...this. - (sparc_expand_prologue): Adjust to above renaming. - -2011-07-10 H.J. Lu - - * config/i386/i386.c (ix86_trampoline_init): Use movl instead - of movabs for x32. - -2011-07-10 Richard Henderson - - * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and - run final, instead of emitting text directly. - -2011-07-10 H.J. Lu - - * config/i386/i386.c (ix86_option_override_internal): Turn on - OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and - small PIC models for TARGET_X32. - -2011-07-10 Hans-Peter Nilsson - - PR target/49684 - * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include - $(LIBGCC2_CFLAGS). - - PR bootstrap/49680 - * config/cris/cris.c (cris_asm_output_case_end): Robustify against - stray notes and debug insns by using prev_nonnote_nondebug_insn - instead of PREV_INSN. - -2011-07-09 Richard Henderson - - * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE, - DWARF_TYPE_SIGNATURE_SIZE): Move from ... - * dwarf2out.c: ... here. - (output_all_cfis): Remove. - (dwarf2out_switch_text_section): Use output_cfis directly. - (size_of_locs): Export. - (output_loc_sequence, output_loc_sequence_raw): Export. - (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi, - output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc, - output_cfa_loc_raw): Move to ... - * dwarfcfi.c: ... here. - * dwarf2out.h: Update decls. - -2011-07-09 Richard Henderson - - * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN, - DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ... - * dwarf2cfi.c: ... here. - (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove. - (DWARF_ROUND, DWARF_CIE_ID): Remove. - * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove. - (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove. - (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove. - -2011-07-09 Richard Henderson - - * dwarf2cfi.c (cie_return_save): New. - (queue_reg_save): Use compare_reg_or_pc. - (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column. - (dwarf2out_frame_debug_expr): Likewise. - (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too. - (initial_return_save): Likewise. - (execute_dwarf2_frame): Save and restore initial return save from - the cie to the fde. - * config/mips/mips.c (mips_frame_set): Remove special case for - DWARF_FRAME_RETURN_COLUMN. - -2011-07-09 Richard Henderson - - * dwarf2cfi.c (lookup_cfa): Remove. - (execute_dwarf2_frame): Assert queues are empty on entry. - Setup initial cfa directly, not via lookup_cfa. - Don't clear args_size state here. - -2011-07-09 Richard Henderson - - * dwarf2cfi.c (add_cfi_vec): New. - (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec. - (def_cfa_1, reg_save): Remove for_cie argument. Update all callers. - (execute_dwarf2_frame): Set add_cfi_vec. - -2011-07-09 Richard Henderson - - * defaults.h (ASM_COMMENT_START): Move here... - * dwarf2asm.c: ... from here. - * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates. - * toplev.c: Remove ifndef tests of ASM_COMMENT_START. - * varasm.c: Likewise. - -2011-07-09 Richard Henderson - - PR debug/49686 - * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here... - (create_cfi_notes): ... do it here instead. - -2011-07-09 Jakub Jelinek - - PR debug/49676 - * dwarf2out.c (size_of_int_loc_descriptor): New function. - (address_of_int_loc_descriptor): Use it. - (scompare_loc_descriptor): Optimize EQ/NE comparison with constant. - -2011-07-09 Richard Henderson - - * config/pdp11/pdp11.md (define_c_enum "unspecv"): New. - (prologue, epilogue): New. - (return, *rts): New. - (blockage, setd, seti): New. - * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove. - (TARGET_ASM_FUNCTION_EPILOGUE): Remove. - (pdp11_saved_regno): New. - (pdp11_expand_prologue): Rename from pdp11_output_function_prologue; - generate rtl instead of text. - (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue. - (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno. - * config/pdp11/pdp11-protos.h: Update. - -2011-07-09 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't - try to insert an rtl prologue here. - (rs6000_output_function_epilogue): Similarly. - * config/rs6000/rs6000.md (prologue): Emit a barrier to - satisfy !TARGET_SCHED_PROLOG. - (epilogue, sibcall_epilogue): Likewise. - -2011-07-09 Eric Botcazou - - * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around. - (FP_REG_P): Delete. - (IN_OR_GLOBAL_P): Likewise. - -2011-07-08 Jason Merrill - - PR c++/45437 - * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in - compound assignment. - - * cgraph.c (cgraph_add_to_same_comdat_group): New. - * cgraph.h: Declare it. - * ipa.c (function_and_variable_visibility): Make sure thunks - have the right visibility. - -2011-07-08 Richard Henderson - - PR bootstrap/49680 - * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after - any tablejump vector. - - PR bootstrap/49680 - * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the - end of the prologue. - -2011-07-08 Jakub Jelinek - - PR target/49621 - * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use - CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE. - * config/rs6000/vector.md (vector_select_, - vector_select__uns): Change second operand of NE to - CONST0_RTX (mode) instead of const0_rtx. - * config/rs6000/altivec.md (*altivec_vsel, - *altivec_vsel_uns): Expect second operand of NE to be - zero_constant of the corresponding vector mode. - * config/rs6000/vsx.md (*vsx_xxsel, *vsx_xxsel_uns): - Likewise. - -2011-07-08 Sebastian Pop - - * graphite-dependences.c (build_alias_set_powerset): Remove - continue from loop, add one more assert. - -2011-07-08 Georg-Johann Lay - - PR target/46779 - * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite. - In particular, allow 8-bit values in r28 and r29. - (avr_hard_regno_scratch_ok): Disallow any register that might be - part of the frame pointer. - (avr_hard_regno_rename_ok): Same. - (avr_legitimate_address_p): Don't allow SUBREGs. - -2011-07-08 Julian Brown - - * config/arm/neon.md (vec_shr_, vec_shl_): Disable in - big-endian mode. - (reduc_splus_, reduc_uplus_, reduc_smin_) - (reduc_smax_, reduc_umin_, reduc_umax_) - (neon_vec_unpack_lo_, neon_vec_unpack_hi_) - (vec_unpack_hi_, vec_unpack_lo_) - (neon_vec_mult_lo_, vec_widen_mult_lo_) - (neon_vec_mult_hi_, vec_widen_mult_hi_) - (vec_pack_trunc_, neon_vec_pack_trunc_): Disable for Q - registers in big-endian mode. - -2011-07-08 Bernd Schmidt - - * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined - in terms of another. - (write_attr_value): Write a cast if necessary. - - * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default. - * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN. - (REG_WORDS_BIG_ENDIAN): Document. - * doc/tm.texi: Regenerate. - * reload.c (operands_match_p): Take it into account. - (reload_adjust_reg_for_mode): Likewise. - * rtlanal.c (subreg_get_info): Likewise. - -2011-07-08 Richard Guenther - - * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index - folding. - -2011-07-08 Kai Tietz - - * fold-const.c (fold_truth_andor): Factored out truth_andor - label from fold_binary as function. - (fold_binary_loc): Replace truth_andor lable - by function fold_truth_andor. - -2011-07-08 Kirill Yukhin - - PR middle-end/49519 - * calls.c (mem_overlaps_already_clobbered_arg_p): Additional - check if address is stored in register. If so - give up. - (check_sibcall_argument_overlap_1): Do not perform check of - overlapping when it is call to address. - -2011-07-08 Georg-Johann Lay - - * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead - of magic '31'. - -2011-07-08 Bernd Schmidt - - * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of - GET_MODE_BITSIZE where appropriate. - (widen_leading, expand_parity, expand_ctz, expand_ffs, - expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump, - expand_float, expand_fix): Likewise. - * expr.c (convert_move, convert_modes, expand_expr_real_2, - expand_expr_real_1, reduce_to_bit_field_precision): Likewise. - * stor-layout.c (get_mode_bounds): Likewise. - * cfgexpand.c (convert_debug_memory_address, expand_debug_expr): - Likewise. - * convert.c (convert_to_integer): Likewise. - * expmed.c (expand_shift_1): Likewise. - - * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against - a bitsize. - - * optabs.c (expand_binop): Tighten conditions for doubleword - expansions. - (widen_bswap): Assert that mode bitsize and precision are the same. - * stor-layout.c (get_best_mode): Skip modes that have lower - precision than bitsize. - * recog.c (simplify_while_replacing): Assert that bitsize and - precision are the same. - -2011-07-08 Rainer Orth - - * Makefile.in (LIBGCOV): Remove. - (libgcc.mvars): Remove LIBGCOV. - * libgov.c: Move to ../libgcc. - -2011-07-08 Rainer Orth - - * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc. - -2011-07-08 Martin Jambor - - * tree-sra.c (analyze_all_variable_accesses): Dump that a struture - is too big for total scalarization. - -2011-07-07 Richard Henderson - - * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef. - (DBX_DEBUGGING_INFO): Undef. - -2011-07-07 Richard Henderson - - * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter. - Handle some opcodes specially for debugging. - * print-rtl.c: Include dwarf2out.h - (print_rtx): Handle NOTE_INSN_CFI. - * Makefile.in (print-rtl.o): Update. - -2011-07-07 Richard Henderson - - * tree-pass.h (pass_dwarf2_frame): Declare. - * passes.c (init_optimization_passes): Add it. - * dwarf2cfi.c (dwarf2out_frame_debug): Make static. - (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue; - make static, do not call add_cfis_to_fde. - (dwarf2out_frame_debug_init, dwarf2cfi_function_init, - dwarf2out_frame_init): Merge into... - (execute_dwarf2_frame): ... here. New function. - (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change - saved_do_cfi_asm to a tri-state variable. - (gate_dwarf2_frame, pass_dwarf2_frame): New. - * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde - if it has yet to be done. Don't call dwarf2cfi_function_init. - * dwarf2out.h, debug.h: Update decls. - * final.c (final_start_function): Don't call - dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue. - * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init. - * toplev.c (lang_dependent_init): Likewise. - -2011-07-07 Richard Henderson - - * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use, - FDE_TABLE_INCREMENT): Replace with... - (fde_vec): ... this, a new vector. - (current_fde): Remove. Replace all users with cfun->fde. - (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec. - (size_of_aranges, dwarf2out_finish): Likewise. - (dwarf2out_alloc_current_fde): Break out from ... - (dwarf2out_begin_prologue): ... here. - (dwarf2out_frame_init): Remove. - * dwarf2cfi.c: Update all users of current_fde. - (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init. - * dwarf2out.h: Update decls. - (dw_fde_node): Add fde_index member. - * function.h (struct function): Add fde member. - -2011-07-07 Bernd Schmidt - Richard Henderson - - * dwarf2cfi.c (add_cfi): Remove. - (dwarf2out_cfi_label): Remove force argument. Only generate the - label name. - (add_fde_cfi): Simplify the different code paths. - (add_cie_cfi): New. - (old_cfa, old_cfa_remember): New. - (def_cfa_1, reg_save): Remove label, add for_cie parameter. - (last_reg_save_label): Remove. - (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save, - dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, - dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, - dwarf2out_frame_debug_cfa_expression, - dwarf2out_frame_debug_cfa_restore, - dwarf2out_frame_debug_cfa_window_save, - dwarf2out_frame_debug_expr): Remove label parameter. - (cfi_label_required_p, add_cfis_to_fde): New. - (dwarf2out_frame_debug_after_prologue): New. - (dwarf2cfi_frame_init): Initialize old_cfa. - (dwarf2out_frame_debug_restore_state): Likewise. - * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm. - (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here. - * final.c (final_start_function): Call - dwarf2out_frame_debug_after_prologue. - -2011-07-07 Bernd Schmidt - Richard Henderson - - * dwarf2cfi.c (cfi_insn): New. - (dwarf2out_cfi_label): Don't emit cfi label here. - (add_fde_cfi): Create a NOTE_INSN_CFI. - (dwarf2out_frame_debug): Setup cfi_insn. - (dwarf2out_frame_debug_init): Loop over insns creating CFI notes. - (dwarf2out_cfi_begin_epilogue): Make static. - (dwarf2out_frame_debug_restore_state): Make static. - * dwarf2out.c (output_cfi_directive): Make static. - (dwarf2out_emit_cfi): New. - * dwarf2out.h: Update. - * final.c (final): Remove CFI notes. - (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue, - dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug. - Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL. - * insn-notes.def (NOTE_INSN_CFI): New. - (NOTE_INSN_CFI_LABEL): New. - * rtl.h (union rtunion_def): Add rt_cfi member. - (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New. - -2011-07-07 Richard Henderson - - * dwarf2cfi.c: New file. - * Makefile.in (OBJS): Add it. - (GTFILES): Add dwarf2cfi.c and dwarf2out.h. - * gengtype.c (open_base_files): Include dwarf2out.h. - * coretypes.h (enum var_init_status): Move from ... - * rtl.h: ... here. - * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame, - dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num, - expand_builtin_dwarf_sp_column, init_return_column_size, - expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi, - dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi, - lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size, - old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save, - stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1, - compute_barrier_args_size, dwarf2out_args_size, - dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust, - queued_reg_saves, reg_saved_in_data, regs_saved_in_regs, - compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label, - queue_reg_save, dwarf2out_flush_queued_reg_saves, - clobbers_queued_reg_save, reg_saved_in, cfa_temp, - dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, - dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, - dwarf2out_frame_debug_cfa_expression, - dwarf2out_frame_debug_cfa_restore, - dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr, - dwarf2out_frame_debug, dwarf2out_frame_debug_init, - dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, - get_cfa_from_loc_descr): Move to dwarf2cfi.c. - (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type, - dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node, - dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref, - dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node, - dw_loc_descr_node): Move to dwarf2out.h. - (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode, - mem_loc_descriptor): Export. - (build_cfa_aligned_loc): Export. Take CFA as a parameter. - (dwarf2out_frame_init): Extract CIE generation code to - dwarf2cfi_frame_init. - -2011-07-07 Eric Botcazou - - PR target/49660 - * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add - MASK_V8PLUS, remove commented out flag and reorder. - -2011-07-07 Jakub Jelinek - - PR c/49644 - * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with - one non-complex and one complex argument, call c_save_expr on both - operands. - -2011-07-07 Martin Jambor - - PR middle-end/49495 - * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function. - (verify_cgraph_node): Some functinality moved to - verify_edge_corresponds_to_fndecl, call it. - -2011-07-07 Joseph Myers - - * config.gcc (*local*): Remove. - * doc/install-old.texi: Don't mention local configurations. - -2011-07-07 Jakub Jelinek - - PR debug/49522 - * df-problems.c (dead_debug_reset): Remove dead_debug_uses - referencing debug insns that have been reset. - (dead_debug_insert_before): Don't assert reg is non-NULL, - instead return immediately if it is NULL. - -2011-07-07 Joseph Myers - - * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove. - -2011-07-07 Bernd Schmidt - - * hw-doloop.c: New file. - * hw-doloop.h: New file. - * Makefile.in (OBJS): Add hw-doloop.o. - (hw-doloop.o): New rule. - ($(obj_out_file)): Add hw-doloop.h dependency. - * config/bfin/bfin.c: Include "hw-doloop.h". - (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove. - (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove. - (hwloop_optimize): Renamed from bfin_optimize_loop. Argument - type changed to hwloop_info. Return bool, true if the loop was - successfully optimized. Remove code that was moved to - hw-doloop.c, and adjust other parts. - (hwloop_fail): New static function, containing parts that used - to be in bfin_optimize_loop. - (bfin_discover_loop, bfin_discover_loops, free_loops, - bfin_reorder_loops): Remove. - (hwloop_pattern_reg): New static function. - (bfin_doloop_hooks): New variable. - (bfin_reorg_loops): Remove most code, call reorg_loops. - * config/bfin/bfin.md (doloop_end splitter): Also enable if - loop counter is a memory_operand. - -2011-07-07 H.J. Lu - - * config.gcc: Support --with-multilib-list for x86 Linux targets. - - * configure.ac: Mention x86-64 for --with-multilib-list. - * configure: Regenerated. - - * config/i386/gnu-user64.h (SPEC_64): Support x32. - (SPEC_32): Likewise. - (ASM_SPEC): Likewise. - (LINK_SPEC): Likewise. - (TARGET_THREAD_SSP_OFFSET): Likewise. - (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise. - (SPEC_X32): New. - - * config/i386/i386.h (TARGET_X32): New. - (TARGET_LP64): New. - (LONG_TYPE_SIZE): Likewise. - (POINTER_SIZE): Likewise. - (POINTERS_EXTEND_UNSIGNED): Likewise. - (OPT_ARCH64): Support x32. - (OPT_ARCH32): Likewise. - - * config/i386/i386.opt (mx32): New. - - * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New. - (GLIBC_DYNAMIC_LINKERX32): Likewise. - * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise. - (GLIBC_DYNAMIC_LINKERX32): Likewise. - - * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New. - (BIONIC_DYNAMIC_LINKERX32): Likewise. - (GNU_USER_DYNAMIC_LINKERX32): Likewise. - - * config/i386/t-linux64: Support TM_MULTILIB_CONFIG. - - * doc/install.texi: Document --with-multilib-list for Linux/x86-64. - - * doc/invoke.texi: Document -mx32. - -2011-07-07 Richard Sandiford - - * doc/invoke.texi (mwords-little-endian): Deprecate. - * config/arm/arm.opt (mwords-little-endian): Likewise. - * config/arm/arm.c (arm_option_override): Warn about the deprecation - of -mwords-little-endian. - -2011-07-07 Richard Sandiford - - * reload1.c (choose_reload_regs): Use mode sizes to check whether - an old reload register completely defines the required value. - -2011-07-07 Richard Guenther - - * fold-const.c (fold_unary_loc): Do not strip sign-changes - for NEGATE_EXPR. - -2011-07-07 Richard Guenther - - * tree-vrp.c (simplify_conversion_using_ranges): New function. - (simplify_stmt_using_ranges): Call it. - -2011-07-07 Kai Tietz - - * tree-ssa-forwprop.c (truth_valued_ssa_name): New function. - (lookup_logical_inverted_value): Likewise. - (simplify_bitwise_binary_1): Likewise. - (simplify_bitwise_binary): Use simplify_bitwise_binary_1. - -2011-07-07 Joseph Myers - - * gcc.c (%[Spec]): Don't document. - (struct spec_list): Update comment. - (do_spec_1): Don't handle %[Spec]. - * doc/invoke.texi (%[@var{name}]): Remove documentation of spec. - -2011-07-07 Joseph Myers - - * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't - default based on TARGET_ASM_NAMED_SECTION. - * common/common-target.def (have_named_sections): Default to true. - * common/config/default-common.c: Don't include tm.h. - * common/config/picochip/picochip-common.c - (TARGET_HAVE_NAMED_SECTIONS): Don't define. - * common/config/m32c/m32c-common.c: Remove. - * config.gcc (m32c*-*-*): Set target_has_targetm_common=no. - * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. - * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. - * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. - * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. - * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. - * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. - -2011-07-07 Jakub Jelinek - - PR middle-end/49640 - * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands - and last COMPONENT_REF operand call gimplify_expr on it if non-NULL. - -2011-07-07 Rainer Orth - - PR libmudflap/49550 - * gcc.c (MFWRAP_SPEC): Also wrap mmap64. - -2011-07-07 Rainer Orth - - PR target/39150 - * configure.ac (gcc_cv_as_hidden): Also accept - x86_64-*-solaris2.1[0-9]*. - (gcc_cv_as_cfi_directive): Likewise. - (gcc_cv_as_comdat_group_group): Likewise. - (set_have_as_tls): Likewise. - * configure: Regenerate. - * config.gcc (i[34567]86-*-solaris2*): Also handle - x86_64-*-solaris2.1[0-9]*. - * config.host (i[34567]86-*-solaris2*): Likewise. - * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove. - * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine. - [USE_GLD] (ARCH_DEFAULT_EMULATION): Define. - (TARGET_LD_EMULATION): Use it. - * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define. - (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default. - * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define. - (ASM_CPU64_DEFAULT_SPEC): Define. - (ASM_CPU_SPEC): Use %(asm_cpu_default). - (ASM_SPEC): Redefine. - (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT. - * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce. - * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document. - (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]* - configuration. - (Specific, x86_64-*-solaris2.1[0-9]*): Document. - -2011-07-07 Rainer Orth - - * config/sol2.h (ASM_SPEC): Split into ... - (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. - * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. - * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine. - (ASM_SPEC): Use ASM_SPEC_BASE. - * config/sparc/sol2.h (ASM_SPEC): Redefine. - -2011-07-07 Georg-Johann Lay - - * config/avr/avr.md (*reload_insi): Change predicate #1 to - const_int_operand. Ditto for peep2 producing this insn. - Add argument to output_reload_insisf call. - (*movsi,*movsf): Add argument to output_movsisf call. - (*reload_insf): New insn and new peep2 to produce it. - * config/avr/avr-protos.h (output_movsisf): Change prototype. - (output_reload_insisf): Change prototype. - * config/avr/avr.c (avr_asm_len): New function. - (output_reload_insisf): Rewrite. - (output_movsisf): Change prototype. output_reload_insisf for - all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory. - (adjust_insn_length): Add argument to output_movsisf and - output_reload_insisf call. - -2011-07-07 Bernd Schmidt - - * emit-rtl.c (paradoxical_subreg_p): New function. - * rtl.h (paradoxical_subreg_p): Declare. - * combine.c (set_nonzero_bits_and_sign_copies, get_last_value, - apply_distributive_law, simplify_comparison, simplify_set): Use it. - * cse.c (record_jump_cond, cse_insn): Likewise. - * expr.c (force_operand): Likewise. - * rtlanal.c (num_sign_bit_copies1): Likewise. - * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise. - * reload.c (push_secondary_reload, find_reloads_toplev): Likewise. - (push_reload): Use precision to check for paradoxical subregs. - * expmed.c (extract_bit_field_1): Likewise. - - * machmode.h (HWI_COMPUTABLE_MODE_P): New macro. - * combine.c (set_nonzero_bits_and_sign_copies): Use it. - (find_split-point, combine_simplify_rtx, simplify_if_then_else, - simplify_set, simplify_logical, expand_compound_operation, - make_extraction, force_to_mode, if_then_else_cond, extended_count, - try_widen_shift_mode, simplify_shift_const_1, simplify_comparison, - record_value_for_reg): Likewise. - * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise. - * simplify-rtx. c (simplify_unary_operation_1, - simplify_binary_operation_1, simplify_const_relational_operation): - Likewise. - - * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION - instead of GET_MODE_BITSIZE where appropriate. - * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1, - num_sign_bit_copies1, canonicalize_condition, low_bitmask_len, - init_num_sign_bit_copies_in_rep): Likewise. - * cse.c (fold_rtx, cse_insn): Likewise. - * loop-doloop.c (doloop_modify, doloop_optimize): Likewise. - * simplify-rtx.c (simplify_unary_operation_1, - simplify_const_unary_operation, simplify_binary_operation_1, - simplify_const_binary_operation, simplify_ternary_operation, - simplify_const_relational_operation, simplify_subreg): Likewise. - * combine.c (try_combine, find_split_point, combine_simplify_rtx, - simplify_if_then_else, simplify_set, expand_compound_operation, - expand_field_assignment, make_extraction, if_then_else_cond, - make_compound_operation, force_to_mode, make_field_assignment, - reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, - extended_count, try_widen_shift_mode, simplify_shift_const_1, - simplify_comparison, record_promoted_value, simplify_compare_const, - record_dead_and_set_regs_1): Likewise. - - Revert: - * simplify-rtx.c (simplify_const_binary_operation): Use the - shift_truncation_mask hook instead of performing modulo by width. - Compare against mode precision, not bitsize. - * combine.c (combine_simplify_rtx, simplify_shift_const_1): - Use shift_truncation_mask instead of constructing the value manually. - -2011-07-06 Michael Meissner - - * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New - declaration. - (rs6000_save_toc_in_prologue_p): Ditto. - - * config/rs6000/rs6000.opt (-mr11): New switch to disable loading - up the static chain (r11) during indirect function calls. - (-msave-toc-indirect): New undocumented debug switch. - - * config/rs6000/rs6000.c (struct machine_function): Add - save_toc_in_prologue field to note whether the prologue needs to - save the TOC value in the reserved stack location. - (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need - to save the TOC in the prologue, do so. - (rs6000_trampoline_init): Don't allow creating AIX style - trampolines if -mno-r11 is in effect. - (rs6000_call_indirect_aix): New function to create AIX style - indirect calls, adding support for -mno-r11 to suppress loading - the static chain, and saving the TOC in the prologue instead of - the call body. - (rs6000_save_toc_in_prologue_p): Return true if we are saving the - TOC in the prologue. - - * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed - register numbers. - (TOC_REGNUM): Ditto. - (STATIC_CHAIN_REGNUM): Ditto. - (ARG_POINTER_REGNUM): Ditto. - (SFP_REGNO): Delete, unused. - (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and - function descriptor offsets. - (TOC_SAVE_OFFSET_64BIT): Ditto. - (AIX_FUNC_DESC_TOC_32BIT): Ditto. - (AIX_FUNC_DESC_TOC_64BIT): Ditto. - (AIX_FUNC_DESC_SC_32BIT): Ditto. - (AIX_FUNC_DESC_SC_64BIT): Ditto. - (ptrload): New mode attribute for the appropriate load of a pointer. - (call_indirect_aix32): Delete, rewrite AIX indirect function calls. - (call_indirect_aix64): Ditto. - (call_value_indirect_aix32): Ditto. - (call_value_indirect_aix64): Ditto. - (call_indirect_nonlocal_aix32_internal): Ditto. - (call_indirect_nonlocal_aix32): Ditto. - (call_indirect_nonlocal_aix64_internal): Ditto. - (call_indirect_nonlocal_aix64): Ditto. - (call): Rewrite AIX indirect function calls. Add support for - eliminating the static chain, and for moving the save of the TOC - to the function prologue. - (call_value): Ditto. - (call_indirect_aix): Ditto. - (call_indirect_aix_internal): Ditto. - (call_indirect_aix_internal2): Ditto. - (call_indirect_aix_nor11): Ditto. - (call_value_indirect_aix): Ditto. - (call_value_indirect_aix_internal): Ditto. - (call_value_indirect_aix_internal2): Ditto. - (call_value_indirect_aix_nor11): Ditto. - (call_nonlocal_aix32): Relocate in the rs6000.md file. - (call_nonlocal_aix64): Ditto. - - * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and - -mno-r11 documentation. - -2011-07-06 Jonathan Wakely - - PR other/49658 - * doc/extend.texi (Compound Literals): Fix typo. - -2011-07-06 James Greenhalgh - - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP. - -2011-07-06 Basile Starynkevitch - - * configure.ac (plugin-version.h): Generate - GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR, - GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer - macros. - - * configure: Regenerate. - - * doc/plugins.texi (Building GCC plugins): Mention - GCCPLUGIN_VERSION ... constant macros in plugin-version.h. - -2011-07-06 Bernd Schmidt - - * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro. - * combine.c (make_extraction, gen_lowpart_or_truncate, - apply_distributive_law, simplify_comparison, - reg_truncated_to_mode, record_truncated_value): Use it. - * cse.c (notreg_cost): Likewise. - * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise. - * expr.c (convert_move, convert_modes): Likewise. - * optabs.c (expand_binop, expand_unop): Likewise. - * postreload.c (move2add_last_label): Likewise. - * regmove.c (optimize_reg_copy_3): Likewise. - * rtlhooks.c (gen_lowpart_general): Likewise. - * simplify-rtx.c (simplify_unary_operation_1): Likewise. - -2011-07-06 Joseph Myers - - * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define. - -2011-07-06 Bernd Schmidt - - * cse.c (find_comparison_args): Use val_mode_signbit_set_p. - * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION. - (val_mode_signbit_p, val_mode_signbit_set_p): New functions. - (simplify_const_unary_operation, simplify_binary_operation_1, - simplify_const_binary_operation, simplify_const_relational_operation): - Use them. Use GET_MODE_MASK for masking and sign-extensions. - * combine.c (set_nonzero_bits_and_sign_copies, simplify_set, - combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine, - simplify_shift_const_1, simplify_comparison): Likewise. - * expr.c (convert_modes): Likewise. - * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise. - * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise. - * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare. - - * simplify-rtx.c (simplify_ternary_operation): Remove dead code. - -2011-07-06 Richard Guenther - - PR tree-optimization/49645 - * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global - register variables. - * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences - in type qualification here ... - (copy_reference_ops_from_ref): ... not here. - (vn_reference_lookup_3): ... or here. - (copy_reference_ops_from_ref): Record decl bases as MEM[&decl]. - (vn_reference_lookup): Do the lookup with a valueized ao-ref. - -2011-07-06 Ian Lance Taylor - - * doc/install.texi (Configuration): It's - --enable-gnu-indirect-function, not --enable-indirect-function. - -2011-07-06 Bernd Schmidt - - * simplify-rtx.c (simplify_const_binary_operation): Use the - shift_truncation_mask hook instead of performing modulo by width. - Compare against mode precision, not bitsize. - * combine.c (combine_simplify_rtx, simplify_shift_const_1): - Use shift_truncation_mask instead of constructing the value manually. - -2011-07-06 H.J. Lu - - PR middle-end/47383 - * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for - address computation and convert to address_mode if needed. - -2011-07-06 Richard Guenther - - * tree.c (build_common_tree_nodes_2): Merge with - build_common_tree_nodes. - * tree.h (build_common_tree_nodes): Adjust prototype. - (build_common_tree_nodes_2): Remove. - * doc/tm.texi.in (lang_hooks.builtin_function): Adjust. - * doc/tm.texi (lang_hooks.builtin_function): Regenerate. - -2011-07-05 Jakub Jelinek - - PR tree-optimization/49618 - * tree-eh.c (tree_could_trap_p) : For DECL_WEAK - t recurse on the decl. - : For DECL_WEAK decls - return true if expr isn't known to be defined in current - TU or some other LTO partition. - -2011-07-05 Michael Meissner - - * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to - override CASE_VALUES_THRESHOLD. - - * stmt.c (toplevel): Include params.h. - (case_values_threshold): Use the --param case-values-threshold - value if non-zero, otherwise use machine dependent value. - (expand_case): Use case_values_threshold. - - * Makefile.in (stmt.o): Add $(PARAMS_H) dependency. - - * doc/invoke.texi (--param case-values-threshold): Document. - -2011-07-05 Richard Henderson - - * dwarf2out.c (dwarf2out_cfi_label): Make static. - (dwarf2out_flush_queued_reg_saves): Make static. - (dwarf2out_reg_save): Remove. - (dwarf2out_return_save): Remove. - (dwarf2out_return_reg): Remove. - (dwarf2out_reg_save_reg): Remove. - (dwarf2out_def_cfa): Merge into ... - (dwarf2out_frame_init): ... here. - * dwarf2out.h, tree.h: Remove declarations as necessary. - -2011-07-05 Richard Henderson - - * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove. - (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. - (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for - the alloc insn. - - * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove. - (IA64_CHANGE_CFA_IN_EPILOGUE): Remove. - (process_epilogue): Don't call dwarf2out_def_cfa. - - * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to - indicate the return address save. - (process_cfa_register): Likewise. - - * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove. - (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it. - - * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER - for ar.pfs save at alloc insn. - -2011-07-05 Richard Henderson - - * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove. - (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. - (arm_expand_prologue): Use REG_CFA_REGISTER to mark the - stack pointer save. - (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN. - (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit - proper unwind info for a REG_CFA_REGISTER save of stack pointer. - * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove. - -2011-07-05 Richard Henderson - - * config/vax/vax.md (define_c_enum unspecv): New. Define the - VUNSPEC_* constants here instead of via define_constants. - (VUNSPEC_PEM): New constant. - (procedure_entry_mask): New insn. - (prologue): New expander. - * config/vax/vax.c (vax_add_reg_cfa_offset): New. - (vax_expand_prologue): Rename from vax_output_function_prologue; - emit rtl instead of text. - (TARGET_ASM_FUNCTION_PROLOGUE): Remove. - (print_operand): Add 'x' prefix. - -2011-07-05 H.J. Lu - - PR middle-end/47715 - * calls.c (precompute_register_parameters): Promote the function - argument before checking non-legitimate constant. - -2011-07-05 Sebastian Pop - - PR tree-optimization/47654 - * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool. - (lst_do_strip_mine_loop): Return an int. - (lst_do_strip_mine): Same. - (scop_do_strip_mine): Same. - (scop_do_block): Loop blocking should strip-mine at least two loops. - * graphite-interchange.c (lst_interchange_select_outer): Return an int. - (scop_do_interchange): Same. - * graphite-poly.h (scop_do_interchange): Update declaration. - (scop_do_strip_mine): Same. - -2011-07-05 Sebastian Pop - - * graphite-clast-to-gimple.c (precision_for_value): Removed. - (precision_for_interval): Removed. - (gcc_type_for_interval): Use mpz_sizeinbase. - -2011-07-05 Sebastian Pop - - * graphite-ppl.h (value_max): Correct computation of max. - -2011-07-05 Sebastian Pop - - * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space. - -2011-07-05 Richard Guenther - - * c-decl.c (c_init_decl_processing): Defer building common - tree nodes to c_common_nodes_and_builtins. - -2011-07-05 Razya Ladelsky - - PR tree-optimization/49580 - * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of - the loop's number of iterations. - * tree-parloops.c (transform_to_exit_first_loop): Add the - handling of the loop's number of iterations before the call - to gimple_duplicate_sese_tail. - Insert the stmt caclculating the new rhs of the loop's - condition stmt to the preheader instead of iters_bb. - -2011-07-05 H.J. Lu - - PR rtl-optimization/47449 - * fwprop.c (forward_propagate_subreg): Don't propagate hard - register nor zero/sign extended hard register. - -2011-07-05 Richard Guenther - - PR tree-optimization/49518 - PR tree-optimization/49628 - * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip - irrelevant and invariant data-references. - (vect_analyze_data_ref_access): For invariant loads clear the - group association. - -2011-07-04 Jakub Jelinek - - PR rtl-optimization/49619 - * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification - pass VOIDmode as op0_mode to recursive call, and return temp even - when different from tor, just if it is not IOR of the original - PLUS arguments. - - PR rtl-optimization/49472 - * simplify-rtx.c (simplify_unary_operation_1) : When - negating MULT, negate the second operand instead of first. - (simplify_binary_operation_1) : If one operand is - a NEG and the other is MULT, don't attempt to optimize by negation - of the MULT operand if it only moves the NEG operation around. - - PR debug/49602 - * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard - get_current_def return value if it can't be trusted to be - the current value of the variable in the current bb. - -2011-07-04 Uros Bizjak - - PR target/49600 - * config/i386/i386.md (SSE2 int->float split): Push operand 1 in - general register to memory for !TARGET_INTER_UNIT_MOVES. - -2011-07-04 Georg-Johann Lay - - PR target/44643 - * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY - instead of TREE_READONLY. - -2011-07-04 Georg-Johann Lay - - * doc/extend.texi (AVR Built-in Functions): Update documentation - of __builtin_avr_fmul*. - * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL. - * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto. - * config/avr/avr.md (fmul): Rename to fmul_insn. - (fmuls): Rename to fmuls_insn. - (fmulsu): Rename to fmulsu_insn. - (fmul,fmuls,fmulsu): New expander. - (*fmul.call,*fmuls.call,*fmulsu.call): New Insn. - * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu. - * config/avr/libgcc.S (__fmul): New function. - (__fmuls): New function. - (__fmulsu,__fmulsu_exit): New function. - -2011-07-04 Richard Guenther - - PR tree-optimization/49615 - * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix - basic-block index check. - -2011-07-04 Georg-Johann Lay - - * longlong.h (count_leading_zeros, count_trailing_zeros, - COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16 - resp. 64. - -2011-07-03 Ira Rosen - - PR tree-optimization/49610 - * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has - a basic block. - -2011-07-02 Eric Botcazou - Olivier Hainque - Nicolas Setton - - * tree.h (TYPE_ARTIFICIAL): New flag. - * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to - the DIE of the type if it is artificial. - (gen_array_type_die): Likewise. - (gen_enumeration_type_die): Likewise. - (gen_struct_or_union_type_die): Likewise. - * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL. - * lto-streamer-out.c (pack_ts_base_value_fields): Likewise. - -2011-07-01 Jakub Jelinek - - * tree-object-size.c (pass_through_call): Handle - BUILT_IN_ASSUME_ALIGNED. - -2011-07-01 Martin Jambor - - * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs. - -2011-07-01 H.J. Lu - - PR middle-end/48016 - * explow.c (update_nonlocal_goto_save_area): Use proper mode - for stack save area. - * function.c (expand_function_start): Likewise. - -2011-07-01 Richard Guenther - - PR middle-end/49596 - * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes - may have unknown refs. - -2011-07-01 Kai Tietz - - * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo. - -2011-07-01 Rainer Orth - - * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5. - * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it. - (Specific, mips-sgi-irix6): Likewise. - -2011-07-01 Rainer Orth - - PR libmudflap/49549 - * doc/sourcebuild.texi (Effective-Target Keywords): Document gld. - -2011-07-01 Jakub Jelinek - - * tree-pretty-print.c (dump_generic_code) : Print - [idx]= and [idx1 ... idx2]= before initializers if needed for - array initializers. - -2011-07-01 Chen Liqin - - * config.gcc (score-*-elf): Remove score7.o. - * config/score/t-score-elf: Likewise. - * config/score/score.c: Merge score7 to score.c and - remove forwarding functions. - * config/score/score7.c: Deleted. - * config/score/score7.h: Deleted. - -2011-07-01 Richard Guenther - - PR tree-optimization/49603 - * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert. - -2011-06-30 Martin Jambor - - * tree-sra.c (struct access): Rename total_scalarization to - grp_total_scalarization - (completely_scalarize_var): New function. - (sort_and_splice_var_accesses): Set total_scalarization in the - representative access. - (analyze_access_subtree): Propagate total scalarization accross the - tree, no holes in totally scalarized trees, simplify coverage - computation. - (analyze_all_variable_accesses): Call completely_scalarize_var instead - of completely_scalarize_record. - -2011-06-30 Richard Henderson - - * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove. - (TARGET_DEEP_BRANCH_PREDICTION): Remove. - * config/i386/i386.c: Don't include dwarf2out.h. - (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION. - (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete - all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves. - (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn. - (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION. - -2011-06-30 Richard Henderson - - * reg-notes.def (REG_CFA_FLUSH_QUEUE): New. - * dwarf2out.c (dwarf2out_frame_debug): Handle it. - * final.c (final_scan_insn): Look for it, and invoke - dwarf2out_frame_debug before the insn if found. - -2011-06-30 Richard Henderson - - * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX - as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN. - -2011-06-30 Richard Henderson - - * dwarf2out.c (struct reg_saved_in_data): Provide a typedef. - Define a vector of this type. - (regs_saved_in_regs): Use a VEC. - (num_regs_saved_in_regs): Remove. - (compare_reg_or_pc): New. - (record_reg_saved_in_reg): Split out from... - (dwarf2out_flush_queued_reg_saves): ... here. - (clobbers_queued_reg_save): Update for VEC. - (reg_saved_in): Likewise. - (dwarf2out_frame_debug_init): Likewise. - (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg. - (dwarf2out_frame_debug_cfa_register): Likewise. - -2011-06-30 Eric Botcazou - - PR tree-optimization/49572 - * tree-ssa-dom.c (initialize_hash_element) : Use the - type of the RHS instead of that of the LHS for the expression type. - -2011-06-30 Eric Botcazou - - * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro - unconditionally. - -2011-06-30 Richard Guenther - - * opts.c (finish_options): Do not disable IPA-PTA during ltrans. - * tree-ssa-structalias.c (create_variable_info_for): Do not - add initial constraints for non-var-decls. Properly handle - globals in other ltrans partitions. - (intra_create_variable_infos): Manually create constraints for - the fake no-alias parameter. - (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly - and assert there are no clones. - -2011-06-30 Richard Guenther - - PR tree-optimization/46787 - * tree-data-ref.c (dr_address_invariant_p): Remove. - (find_data_references_in_stmt): Invariant accesses are ok now. - * tree-vect-stmts.c (vectorizable_load): Handle invariant loads. - * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow - invariant loads. - -2011-06-30 Martin Jambor - - PR tree-optimization/49094 - * tree-sra.c (tree_non_mode_aligned_mem_p): New function. - (build_accesses_from_assign): Use it. - -2011-06-30 Jakub Jelinek - - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix - handling of BUILT_IN_ASSUME_ALIGNED. - - PR debug/49364 - * dwarf2out.c (output_abbrev_section): Don't return early - if abbrev_die_table_in_use is 1. - (dwarf2out_finish): Instead don't call output_abbrev_section - nor emit abbrev_section_label in that case. - -2011-06-30 Nick Clifton - - * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling - for the V850E. - -2011-06-30 Jakub Jelinek - - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix - handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK. - -2011-06-30 Ira Rosen - - * tree-vect-loop.c (vect_determine_vectorization_factor): Handle - both pattern and original statements if necessary. - (vect_transform_loop): Likewise. - * tree-vect-patterns.c (vect_pattern_recog): Update documentation. - * tree-vect-stmts.c (vect_mark_relevant): Add new argument. - Mark the pattern statement only if the original statement doesn't - have its own uses. - (process_use): Call vect_mark_relevant with additional parameter. - (vect_mark_stmts_to_be_vectorized): Likewise. - (vect_get_vec_def_for_operand): Use vectorized pattern statement. - (vect_analyze_stmt): Handle both pattern and original statements - if necessary. - (vect_transform_stmt): Don't store vectorized pattern statement - in the original statement. - (vect_is_simple_use_1): Use related pattern statement only if the - original statement is irrelevant. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. - -2011-06-29 Changpeng Fang - - * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask - option. - * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL - entry. - (TARGET_AVX128_OPTIMAL): New definition. - * config/i386/i386.c (initial_ix86_tune_features): Initialize - X86_TUNE_AVX128_OPTIMAL entry. - (ix86_option_override_internal): Enable the generation - of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set. - (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128. - (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128. - -2011-06-29 Eric Botcazou - - PR tree-optimization/49539 - * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA - names by means of stmt_references_abnormal_ssa_name. - (associate_plusminus): Call can_propagate_from before propagating - from definition statements. - (ssa_forward_propagate_and_combine): Remove superfluous newline. - -2011-06-29 Richard Guenther - - * doc/invoke.texi: Document -scev dump modifier. - * tree-pass.h (TDF_SCEV): New dump flag. - * tree-dump.c (dump_option_value_in): Add scev. - * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV. - * tree-scalar-evolution.c: Likewise. - -2011-06-29 Nathan Sidwell - - * config/arm/unwind-arm.c (enum __cxa_type_match_result): New. - (cxa_type_match): Correct declaration. - (__gnu_unwind_pr_common): Reconstruct additional indirection - when __cxa_type_match returns succeeded_with_ptr_to_base. - -2011-06-29 Ulrich Weigand - - PR rtl-optimization/49114 - * reload.c (struct replacement): Remove SUBREG_LOC member. - (push_reload): Do not set it. - (push_replacement): Likewise. - (subst_reload): Remove dead code. - (copy_replacements): Remove assertion. - (copy_replacements_1): Do not handle SUBREG_LOC. - (move_replacements): Likewise. - (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode. - Detect subregs via recursive descent instead of via SUBREG_LOC. - -2011-06-29 Georg-Johann Lay - - * config/avr/avr.c (avr_encode_section_info): Dispatch to - default_encode_section_info. - -2011-06-29 Richard Sandiford - - PR tree-optimization/49545 - * builtins.c (get_object_alignment_1): Update function comment. - Do not use DECL_ALIGN for functions, but test - TARGET_PTRMEMFUNC_VBIT_LOCATION instead. - * fold-const.c (get_pointer_modulus_and_residue): Don't check - for functions here. - * tree-ssa-ccp.c (get_value_from_alignment): Likewise. - -2011-06-29 Jakub Jelinek - - PR debug/49567 - * dwarf2out.c (mem_loc_descriptor) : Give up for - non-MODE_INT modes instead of asserting the mode has MODE_INT class. - -2011-06-29 Georg-Johann Lay - - PR target/34734 - * config/avr/avr.c (avr_handle_progmem_attribute): Move warning - about uninitialized data attributed 'progmem' from here... - (avr_encode_section_info): ...to this new function. - (TARGET_ENCODE_SECTION_INFO): New define. - (avr_section_type_flags): For data in ".progmem.data", remove - section flag SECTION_WRITE. - -2011-06-29 Georg-Johann Lay - - * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3, - _xmulhisi3_exit. - * config/avr/libgcc.S (_xmulhisi3_exit): New Function. - (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp. - (__umulhisi3): Ditto. - * config/avr/avr.md (mulhisi3): New insn expender. - (umulhisi3): New insn expender. - (*mulhisi3_call): New insn. - (*umulhisi3_call): New insn. - -2011-06-28 Joseph Myers - - * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED. - -2011-06-28 Richard Henderson - - * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete - all code and arguments that handled pushes. Update all callers. - -2011-06-28 Richard Henderson - - * config/arm/arm.c (arm_output_function_prologue): Don't call - thumb1_output_function_prologue. - (arm_expand_prologue): Avoid dead store. - (number_of_first_bit_set): Use ctz_hwi. - (thumb1_emit_multi_reg_push): New. - (thumb1_expand_prologue): Merge thumb1_output_function_prologue - to emit the entire prologue as rtl. - (thumb1_output_interwork): Split out from - thumb1_output_function_prologue. - (thumb1_output_function_prologue): Remove. - (arm_attr_length_push_multi): Handle thumb1. - * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New. - (prologue_thumb1_interwork): New. - (*push_multi): Allow thumb1; use push_mult_memory_operand. - * config/arm/predicates.md (push_mult_memory_operand): New. - -2011-06-28 Eric Botcazou - - * config/sparc/sync.md (*stbar): Delete. - (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8. - -2011-06-28 Eric Botcazou - - * tree-ssa-dom.c (initialize_hash_element): Fix oversight. - -2011-06-28 Rainer Orth - - * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove. - (TARGET_64BIT_DEFAULT): Define. - * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front - of tm_file. - * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define. - -2011-06-28 Joseph Myers - - * common.opt (in_lto_p): New Variable entry. - * flags.h (in_lto_p): Move to common.opt. - * gcc.c: Include params.h. - (set_option_handlers): Also use common_handle_option and - target_handle_option. - (main): Call global_init_params, finish_params and init_options_struct. - * opts.c (debug_type_names): Move from toplev.c. - (print_filtered_help): Access quiet_flag through opts pointer. - (common_handle_option): Return early in the driver for some options. - Access in_lto_p, dwarf_version and warn_maybe_uninitialized through - opts pointer. - * toplev.c (in_lto_p): Move to common.opt. - (debug_type_names): Move to opts.c. - * Makefile.in (OBJS): Remove opts.o. - (OBJS-libcommon-target): Add opts.o. - (gcc.o): Update dependencies. - -2011-06-28 Kai Tietz - - * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking. - -2011-06-28 Ramana Radhakrishnan - - * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier - with '=' constraint modifier. - (*divdf3_vfp): Likewise. - ("*mulsf3_vfp"): Likewise. - ("*muldf3_vfp"): Likewise. - ("*mulsf3negsf_vfp"): Likewise. - ("*muldf3negdf_vfp"): Likewise. - -2011-06-28 Nick Clifton - - * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker - relaxation when performing an incremental link. - -2011-06-28 Kai Tietz - - * tree-ssa-math-opts.c (execute_optimize_bswap): Search - within BB from last to first. - -2011-06-28 Joseph Myers - - * genattr-common.c: New. Based on genattr.c. - * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h. - (MOSTLYCLEANFILES): Add insn-attr-common.h. - (opts.o): Update dependencies. - (.PRECIOUS): Add insn-attr-common.h. - (simple_rtl_generated_h): Add insn-attr-common.h. - (build/genattr-common.o): New. - (genprogrtl): Add attr-common. - * genattr.c (main): Include insn-attr-common.h. Don't generate - definitions of DELAY_SLOTS or INSN_SCHEDULING. - * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h. - -2011-06-28 Georg-Johann Lay - - * config.gcc (tm_file): Add elfos.h and avr/elf.h for - avr-*-* and avr-*-rtems* targets. - - * config/avr/elf.h: New file. - (ASM_OUTPUT_BEFORE_CASE_LABEL): Define. - (TARGET_ASM_SELECT_SECTION): Define. - (INIT_SECTION_ASM_OP): Undefine. - (FINI_SECTION_ASM_OP): Undefine. - (READONLY_DATA_SECTION_ASM_OP): Undefine. - (PCC_BITFIELD_TYPE_MATTERS): Undefine. - (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine. - * config/avr/avr.h: - (PREFERRED_DEBUGGING_TYPE): Move to elf.h. - (TARGET_ASM_NAMED_SECTION): Move to elf.h. - (MAX_OFILE_ALIGNMENT): Move to elf.h. - (STRING_LIMIT): Move to elf.h. - (ASM_DECLARE_FUNCTION_NAME): Move to elf.h. - (ASM_DECLARE_OBJECT_NAME): Remove. - (ESCAPES): Remove. - (ASM_OUTPUT_SKIP): Remove. - (DWARF2_DEBUGGING_INFO): Remove. - (OBJECT_FORMAT_ELF): Remove. - (USER_LABEL_PREFIX): Remove. - (ASM_OUTPUT_EXTERNAL): Remove. - (ASM_OUTPUT_ASCII): Remove. - (TYPE_ASM_OP): Remove. - (SIZE_ASM_OP): Remove. - (WEAK_ASM_OP): Remove. - (STRING_ASM_OP): Remove. - (SET_ASM_OP): Remove. - (ASM_WEAKEN_LABEL): Remove. - (TYPE_OPERAND_FMT): Remove. - (ASM_DECLARE_FUNCTION_SIZE): Remove. - (ASM_FINISH_DECLARE_OBJECT): Remove. - (NO_DOLLAR_IN_LABEL): Remove. - (ASM_GENERATE_INTERNAL_LABEL): Remove. - (ASM_OUTPUT_CASE_LABEL): Remove. - * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use - ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON. - (gas_output_ascii): Remove. - (gas_output_limited_string): Remove. - (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove. - * config/avr/avr-protos.h - (gas_output_ascii): Remove prototye. - (gas_output_limited_string): Remove prototype. - -2011-06-27 Richard Earnshaw - - PR target/48637 - * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid - asm operands. - -2011-06-27 Jan Hubicka - - * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of - node instead of references in node. - -2011-06-27 Richard Henderson - - * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition. - * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins - inside ifdef. - -2011-06-27 Jakub Jelinek - - * c-decl.c (union lang_tree_node): Use it in chain_next expression. - - * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New. - * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin. - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, - find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED. - * tree-ssa-ccp.c (bit_value_assume_aligned): New function. - (evaluate_stmt, execute_fold_all_builtins): Handle - BUILT_IN_ASSUME_ALIGNED. - * tree-ssa-dce.c (propagate_necessity): Likewise. - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, - call_may_clobber_ref_p_1): Likewise. - * builtins.c (is_simple_builtin, expand_builtin): Likewise. - (expand_builtin_assume_aligned): New function. - * doc/extend.texi (__builtin_assume_aligned): Document. - - PR debug/49544 - * cselib.c (promote_debug_loc): If cselib_preserve_constants - and l has two DEBUG_INSN owned locs instead of just one, adjust - the second location's setting_insn too. - -2011-06-27 Rainer Orth - - PR libmudflap/38738 - * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define. - -2011-06-27 Nick Clifton - - * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert - bit position of highest bit set into a count of the high zero bits. - -2011-06-27 Eric Botcazou - - * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types. - -2011-06-27 Eric Botcazou - - PR lto/48492 - * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list - to a NULL parent. - -2011-06-27 Richard Guenther - - PR tree-optimization/49394 - * passes.c (execute_one_pass): Restore current_pass after - applying IPA transforms. - -2011-06-27 Kai Tietz - - * tree-ssa-math-opts.c (do_shift_rotate): Zero bits - out of type precision after operation. - (find_bswap): Take for limit value the integer auto-promotion - into account. - -2011-06-27 Eric Botcazou - - * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the - forward scan as well. - -2011-06-27 Tristan Gingold - - PR target/44241 - * config/vms/vms-protos.h: New file. - * config/vms/vms-crtlmap.map: New file. - * config/vms/vms.c: New file. - * config/vms/make-crtlmap.awk: New file. - * config/vms/vms-crtl.h: File removed. - * config/vms/vms-crtl-64.h: File removed. - * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets. - * config/alpha/vms64.h: Do not include vms-crtl-64.h - * config/alpha/alpha.c (alpha_init_builtins): Remove code to - clear some builtins on VMS. Calls vms_patch_builtins. - (avms_asm_output_external): Remove. - * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove. - (struct crtl_name_spec): Remove - (DO_CTRL_NAMES): Remove. - * config/ia64/vms.h (struct crtl_name_spec): Remove - (DO_CTRL_NAMES): Remove. - * config/ia64/ia64.c (alpha_init_builtins): Remove code to - clear some builtins on VMS. Calls vms_patch_builtins. - (ia64_asm_output_external): Remove DO_CRTL_NAME. - * config/ia64/vms64.h: Do not include vms-crtl-64.h - * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file. - -2011-06-27 Tristan Gingold - - * config/alpha/alpha.c (alpha_end_function): Always generate .end - directive on VMS. - -2011-06-27 Eric Botcazou - - * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if - the function receives nonlocal gotos. - -2011-06-27 Richard Guenther - - PR tree-optimization/49536 - * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): - For non-scalar inner types use a scalar type according to - the scalar inner mode. - -2011-06-27 Richard Guenther - - PR tree-optimization/49365 - * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9. - -2011-06-27 Richard Guenther - - PR tree-optimization/49169 - * fold-const.c (get_pointer_modulus_and_residue): Don't rely on - the alignment of function decls. - -2011-06-26 Iain Sandoe - - PR target/47997 - * config/darwin.c (darwin_mergeable_string_section): Place string - constants in '.cstring' rather than '.const' when CF/NSStrings are - active. - -2011-06-26 Eric Botcazou - - * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment. - (emit_save_register_window): Likewise. - (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables. - (sparc_flat_expand_prologue): Add comment. Always emit blockage. - Swap back %o7/%i7 in register naming. - -2011-06-25 Iain Sandoe - - PR driver/49371 - * config/darwin.c (darwin_override_options): Improve warning when - mdynamic-no-pic is given together with fPIC/fpic, also warn when it - is given with fpie/fPIE. - * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC. - * config/darwin9.h (PIE_SPEC): New. - -2011-06-25 Basile Starynkevitch - - * timevar.c (timevar_print): Increase width for display of timevar - name. - -2011-06-24 Jakub Jelinek - - PR c++/46400 - * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT - instead of TYPE_CHAIN for chain_next for types. - -2011-06-24 Richard Henderson - - * config/sparc/sparc.md (create_flat_frame_1): Remove. - (create_flat_frame_2, create_flat_frame_3): Remove. - * config/sparc/sparc.c (gen_create_flat_frame_1): Remove. - (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove. - (sparc_flat_expand_prologue): Emit individual instructions - instead of one of the above. - -2011-06-24 Easwaran Raman - - PR rtl-optimization/49429 - PR target/49454 - * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and - MEM_EXPR(y) addressable if emit_block_move_via_libcall is - used to copy y into x. - * calls.c (initialize_argument_information): Mark - an argument addressable if it is passed by invisible reference. - (emit_library_call_value_1): Mark MEM_EXPR (val) addressable - if it is passed by reference. - -2011-06-24 H.J. Lu - - PR rtl-optimization/49504 - * rtlanal.c (nonzero_bits1): Properly handle addition or - subtraction of a pointer in Pmode if pointers extend unsigned. - (num_sign_bit_copies1): Likewise. - -2011-06-24 Martin Jambor - - PR tree-optimizations/49516 - * tree-sra.c (sra_modify_assign): Choose the safe path for - aggregate copies if we also did scalar replacements. - -2011-06-24 Ramana Radhakrishnan - - PR target/49335 - * config/arm/predicates.md (add_operator): New. - * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2. - -2011-06-24 Andi Kleen - - * tree-sra.c (type_internals_preclude_sra_p): Add msg - parameter. Split up ifs and report reason in *msg. - (reject): Add. - (find_var_candiate): Add msg variable. - Split up ifs and report reason to reject. - (find_param_candidates): Add msg variable. - Pass msg to type_internals_preclude_sra_p. - -2011-06-23 Jeff Law - - PR middle-end/48770 - * reload.h (reload): Change to return a bool. - * ira.c (ira): If requested by reload, run a fast DCE pass after - reload has completed. Fix comment typo. - * reload1.c (need_dce): New file scoped static. - (reload): Set reload_completed here. Return whether or not a DCE - pass after reload is needed. - (delete_dead_insn): Set need_dce as needed. - - PR middle-end/49465 - * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition - to detect threading through joiner block. If there was already - an edge to the new target, then do not change the PHI nodes. - -2011-06-23 Jakub Jelinek - - * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use - get_pointer_alignment to see if base isn't sufficiently aligned. - -2011-06-23 Jan Hubicka - - PR tree-optimize/49373 - * tree-pass.h (all_late_ipa_passes): Declare. - * cgraphunit.c (init_lowered_empty_function): Fix properties. - (cgraph_optimize): Execute late passes; remove unreachable funcions - after materialization. - * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or - LTOing. - * passes.c (all_late_ipa_passes): Declare. - (dump_passes, register_pass): Handle late ipa passes. - (init_optimization_passes): Move ipa_pta to late passes; schedule - fixup_cfg at beggining of all_passes. - (apply_ipa_transforms): New function. - (execute_one_pass): When doing simple ipa pass, apply all transforms. - -2011-06-23 Joseph Myers - - * params.c: Include common/common-target.h. Don't include tm.h. - (lang_independent_params): Move from toplev.c. - (global_init_params): New. - * params.h (global_init_params): Declare. - * target.def (default_params): Move to common-target.def. - * toplev.c (lang_independent_options): Remove. - (lang_independent_params): Move to params.c. - (general_init): Use global_init_params. - * common/common-target.def (option_default_params): Move from - target.def. - * common/config/ia64/ia64-common.c: Include params.h. - (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move - from ia64.c. - * common/config/rs6000/rs6000-common.c: Include params.h. - (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move - from rs6000.c. - * common/config/sh/sh-common.c: Include params.h. - (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move - from sh.c. - * common/config/spu/spu-common.c: Include params.h. - (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move - from spu.c. - * config/ia64/ia64.c (ia64_option_default_params, - TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c. - * config/rs6000/rs6000.c (rs6000_option_default_params, - TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c. - * config/sh/sh.c (sh_option_default_params, - TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c. - * config/spu/spu.c (spu_option_default_params, - TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c. - * Makefile.in (OBJS): Remove params.o. - (OBJS-libcommon-target): Add params.o. - (params.o, $(common_out_object_file)): Update dependencies. - * doc/tm.texi: Regenerate. - -2011-06-23 Alan Modra - - PR bootstrap/49383 - * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph - invocation for 2011-06-09 changes. - -2011-06-22 Jakub Jelinek - - PR libgomp/49490 - * omp-low.c (expand_omp_for_static_nochunk): Only - use n ceil/ nthreads size for the first n % nthreads threads in the - team instead of all threads except for the last few ones which - get less work or none at all. - - PR debug/49496 - * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug - uses. - -2011-06-22 Richard Guenther - - PR tree-optimization/49493 - * tree-ssa-structalias.c (get_constraint_for_ssa_var): - Refer to the alias target of variables. - (associate_varinfo_to_alias_1): Remove. - (ipa_pta_execute): Do not associate aliases with anything. - * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors. - (cgraph_function_node): Likewise. - (cgraph_function_or_thunk_node): Likewise. - (varpool_variable_node): Likewise. - -2011-06-22 Nathan Sidwell - - * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo. - * config.gcc (arm*-*-linux*): Default to gnu tls. - (arm*-*-*): Add --with-tls option. - (all_defaults): Add 'tls'. - -2011-06-22 Richard Henderson - - * reg-notes.def (REG_CFA_WINDOW_SAVE): New. - * dwarf2out.c (dwarf2out_frame_debug): Handle it. - (dwarf2out_frame_debug_cfa_window_save): Rename from - dwarf2out_window_save; make static. - * tree.h (dwarf2out_window_save): Don't declare. - - * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove. - (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. - (emit_save_register_window): Rename from gen_save_register_window; - emit the insn and add REG_CFA_* notes. - (sparc_expand_prologue): Update to match. - * config/sparc/sparc.md (save_register_window_1): Simplify from - save_register_window. - -2011-06-22 H.J. Lu - - PR target/49497 - * config/i386/i386.md (*lea_general_2): Always allow SImode. - (*lea_general_2_zext): Likewise. - (imul to lea peepholes): Use const359_operand and check - TARGET_PARTIAL_REG_STALL. - - * config/i386/predicates.md (const359_operand): New. - -2011-06-22 Michael Matz - - * cgraphunit.c (assemble_thunk): Use correct return type. - -2011-06-22 Dmitry Plotnikov - Dmitry Melnik - - * config/arm/arm.c (neon_immediate_valid_for_shift): New function. - (neon_output_shift_immediate): Ditto. - * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New - prototype. - (neon_output_shift_immediate): Ditto. - * config/arm/neon.md (vashl3): Modified constraint. - (vashr3_imm): New insn pattern. - (vlshr3_imm): Ditto. - (vashr3): Modified constraint. - (vlshr3): Ditto. - * config/arm/predicates.md (imm_for_neon_lshift_operand): New - predicate. - (imm_for_neon_rshift_operand): Ditto. - (imm_lshift_or_reg_neon): Ditto. - (imm_rshift_or_reg_neon): Ditto. - - * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr. - -2011-06-22 Jakub Jelinek - - * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for - builtin calls even if likelyvalue is not CONSTANT. - Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC. - Return get_value_for_expr of first operand - for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}. - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle - BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like - their non-checking counterparts. - (call_may_clobber_ref_p_1): Likewise. - (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK - like their non-checking counterparts. - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): - Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK - like their non-checking counterparts. - (find_func_clobbers): Likewise. - * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK - like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC. - - * dwarf2out.c (size_of_loc_descr, output_loc_operands, - mark_base_types, hash_loc_operands, compare_loc_operands): Allow - DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead - of base type reference as argument. - (resolve_addr_in_expr): Likewise. Fix keep computation. - (convert_descriptor_to_signed): Renamed to... - (convert_descriptor_to_mode): ... this. For wider types convert to - unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped. - (typed_binop): New function. - (scompare_loc_descriptor, ucompare_loc_descriptor, - minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes - default to unsigned type instead of signed. - - PR debug/47858 - * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND. - (gimple_build_debug_source_bind_stat): New prototype. - (gimple_build_debug_source_bind): Define. - (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var, - gimple_debug_source_bind_get_value, - gimple_debug_source_bind_get_value_ptr, - gimple_debug_source_bind_set_var, - gimple_debug_source_bind_set_value): New inlines. - * gimple.c (gimple_build_debug_source_bind_stat): New function. - * gimple-pretty-print.c (dump_gimple_debug): Handle - GIMPLE_DEBUG_SOURCE_BIND. - * sese.c (rename_uses): Handle gimple_debug_source_bind_p. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. - * tree-parloops.c (eliminate_local_variables, - separate_decls_in_region): Likewise. - (separate_decls_in_region_debug): Renamed from - separate_decls_in_region_debug_bind. Handle - gimple_debug_source_bind_p. - * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New - prototypes. - (DECL_HAS_DEBUG_ARGS_P): Define. - (struct tree_function_decl): Add has_debug_args_flag field. - * tree.c (debug_args_for_decl): New variable. - (decl_debug_args_lookup, decl_debug_args_insert): New functions. - * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts. - (rewrite_debug_stmt_uses): New function. - (rewrite_stmt): Use it to rewrite debug stmt uses. - * rtl.def (DEBUG_PARAMETER_REF): New. - * rtl.h (DEBUG_PARAMETER_REF_DECL): Define. - * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle - DEBUG_PARAMETER_REF. - * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise. - * print-rtl.c (print_rtx): Likewise. - * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of - SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind - debug stmts in the first bb. - * tree-inline.c (remap_ssa_name): If remapping default def - of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in - a source bind debug stmt. - (remap_gimple_stmt): Handle gimple_debug_source_bind_p. - (maybe_move_debug_stmts_to_successors): Likewise. - (copy_debug_stmt): Likewise. Avoid shadowing a variable. - (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy - debug args vector from old_decl to new_decl. - * ipa-prop.c (ipa_modify_call_arguments): For optimized away - or modified parameters, add debug bind stmts before call - setting DEBUG_EXPR_DECL which is remembered in debug args vector. - * cfgexpand.c (expand_call_stmt): Call expand_debug_expr - on DECL_DEBUG_EXPRs from debug args vector. - (expand_debug_source_expr): New function. - (expand_debug_locations): Use it for source bind insns. - (expand_gimple_basic_block): Handle gimple_debug_source_bind_p. - * var-tracking.c (prepare_call_arguments): Add debug args - to call_arguments if any. - * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr, - output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr, - compare_loc_operands): Handle DW_OP_GNU_parameter_ref. - (get_ref_die_offset, parameter_ref_descriptor): New functions. - (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF. - (gen_subprogram_die): Handle parameters identified by - DEBUG_PARAMETER_REF. - -2011-06-22 Nathan Sidwell - - * doc/invoke.texi (ARM Options): Document -mtls-dialect option. - * doc/install.texi (Configuration): Document --with-tls. - * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ. - (arm_call_tls_get_addr): Clean up. Assert not tls descriptor. - (arm_tls_descseq_addr): New. - (legitimize_tls_address): Add tlsdesc support. - (arm_cannot_copy_insn_p): Check for tlscall. - (arm_emit_tls_decoration): Likewise. - * config/arm/arm.h (TARGET_GNU2_TLS): New. - (OPTION_DEFAULT_SPECS): Add with-tls support. - * config/arm/arm.md (R1_REGNUM): Define. - (tlscall): New. - * config/arm/arm.opt (tls_type): New enumeration type and values. - (mtls-dialect): New switch. - * config/arm/arm-opts.h (enum tls_type): New. - -2011-06-21 Nicola Pero - - * attribs.c (register_attribute): Added assert to check that all - attribute specs are registered with a name that is not empty and - does not start with '_'. - (decl_attributes): Avoid the lookup of the "naked" attribute spec - if the function has no attributes. - * tree.c (is_attribute_with_length_p): Removed. - (is_attribute_p): Removed. - (private_is_attribute_p): New. - (private_lookup_attribute): New. - (lookup_attribute): Removed. - (lookup_ident_attribute): New. - (remove_attribute): Require the first argument to be in the form - 'text', not '__text__'. Updated asserts. - (merge_attributes): Use lookup_ident_attributes instead of - lookup_attribute. - (merge_dllimport_decl_attributes): Use remove_attribute. - (attribute_list_contained): Likewise. - (attribute_list_equal): Immediately return 1 if the arguments are - identical pointers. - * tree.h (is_attribute_p): Made inline. Return a 'bool', not an - 'int'. Require the first argument to be in the form 'text', not - '__text__'. Require the second argument to be an identifier. - (lookup_attribute): Made inline. Require the first argument to be - in the form 'text', not '__text__'. - (private_is_attribute_p, private_lookup_attribute): New. - Updated comments. - -2011-06-21 Andrew MacLeod - - * builtins.c: Add sync_ or SYNC__ to builtin names. - * sync-builtins.def: Add sync_ or SYNC__ to builtin names. - * omp-low.c: Add sync_ or SYNC__ to builtin names. - -2011-06-21 Georg-Johann Lay - - PR target/33049 - * config/avr/avr.md (extzv): New expander. - (*extzv): New insn. - (*extzv.qihi1, *extzv.qihi2): New insn-and-split. - * config/avr/constraints.md (C04): New constraint. - * doc/md.texi (Machine Constraints): Document it. - -2011-06-21 Jakub Jelinek - - PR middle-end/49489 - * builtins.c (expand_builtin_unop): Call expand_unop with 0 as - unsignedp argument instead of 1 for clrsb_optab. - (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT - and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*. - (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*. - * optabs.c (widen_leading): Call widen_operand and expand_unop - with 0 as unsignedp argument instead of 1 for clrsb_optab. - (expand_unop): Subtract difference of mode sizes also for clrsb_optab. - -2011-06-21 Georg-Johann Lay - - * config/avr/avr.md (*jcindirect_jump): Fix build warning. - -2011-06-21 Bernd Schmidt - - * gensupport.c (add_define_attr): New static function. - (is_predicable): Allow multi-alternative lists for the "predicable" - attribute. - (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions. - (process_one_cond_exec): Call alter_attrs_for_insn. - * doc/md.texi (Defining Attributes): Mention some standard names. - (Conditional Execution): Update documentation for "predicable". - - * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl, - __builtin_clrsbll): Document. - * doc/rtl.texi (clrsb): New entry. - * optabs.c (widen_leading): Renamed from widen_clz. New argument - UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab. - (expand_unop): Handle clrsb_optab. - (init_optabs): Initialize it. - * optabs.h (enum optab_index): New entry OTI_clrsb. - (clrsb_optab): Define. - * genopinit.c (optabs): Add an entry for it. - * builtins.c (expand_builtin): Handle clrsb builtin functions. - * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL, - BUILT_IN_CLRSBLL): New. - * rtl.def (CLRSB): New code. - * dwarf2out.c (mem_loc_descriptor): Handle it. - * simplify-rtx.c (simplify_const_unary_operation): Likewise. - Use op_mode rather than mode when optimizing ffs, clz, ctz, parity - and popcount. - * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions. - * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare. - (__ctzDI2): Move declaration. - * config/bfin/bfin.md (clrsbsi2): New expander. - (signbitssi2): Use the CLRSB rtx. - (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx. - * config/bfin/bfin.c (bdesc_1arg): Changed accordingly. - -2011-06-21 Richard Guenther - - * ipa-inline-transform.c (inline_transform): Fix previous change. - -2011-06-21 Ira Rosen - - PR tree-optimization/49478 - * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR - with constant operand. - -2011-06-21 Richard Guenther - - * ipa-inline-transform.c (inline_transform): Fix typo. - -2011-06-21 Richard Guenther - - PR tree-optimization/49483 - * tree-vect-stmts.c (vectorizable_assignment): Also handle - VIEW_CONVERT_EXPR conversions. - -2011-06-21 Joseph Myers - - * config/avr/avr-mcus.def, config/avr/genopt.sh: New files. - * config/avr/avr-tables.opt: New file (generated). - * config.gcc (avr-*-*): Use avr/avr-tables.opt. - * config/avr/avr-devices.c (avr_mcu_types): Move contents to - avr-mcus.def. - * config/avr/avr.c (avr_help, TARGET_HELP): Remove. - (avr_option_override): Don't process -mmcu= argument here. Set - avr_current_device using avr_mcu_index. - (avr_file_start): Use avr_current_device->name instead of avr_mcu_name. - * config/avr/avr.opt (mmcu=): Use Enum. - * config/avr/t-avr (avr-devices.o): Update dependencies. - ($(srcdir)/config/avr/avr-tables.opt): New. - * target.def (help): Remove. - * doc/tm.texi.in (TARGET_HELP): Remove. - * doc/tm.texi: Regenerate. - * opts.c: Don't include target.h. - (common_handle_option): Don't call targetm.help. - * system.h (TARGET_HELP): Poison. - * Makefile.in (opts.o): Update dependencies. - -2011-06-21 Rainer Orth - - * config/usegld.h: New file. - * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove. - (CPP_SUBTARGET_SPEC): Remove -compat-bsd support. - (LIB_SPEC): Likewise. Search /lib. - (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support. - (RDYNAMIC_SPEC): Handle GNU ld. - [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC): - Define. - (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld. - (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define. - [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine. - (STACK_CHECK_STATIC_BUILTIN): Define. - * config/sol2.opt (compat-bsd): Remove. - * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef. - * config/sol2-bi.h: New file. - * config/sol2-gld.h: Remove. - * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS. - (NO_DBX_BNSYM_ENSYM): Remove. - (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove. - (STACK_CHECK_STATIC_BUILTIN): Remove. - Test USE_GLD instead of TARGET_GNU_LD. - * config/i386/sol2-10.h: Rename to ... - * config/i386/sol2-bi.h .. this. - (SUBTARGET_EXTRA_SPECS): Redefine. - (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove. - (MULTILIB_DEFAULTS): Remove. - (DEFAULT_ARCH32_P): Define. - (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove. - (ARCH64_SUBDIR): Define. - Test USE_GLD instead of TARGET_GNU_LD. - (I386_EMULATION): Rename to ... - (ARCH32_EMULATION): ... this. - (X86_64_EMULATION): Rename to ... - (ARCH64_EMULATION): ... this. - (TARGET_LD_EMULATION): Remove. - (LINK_ARCH_SPEC): Remove. - * config/i386/sol2-gas.h: Remove. - * config/i386/t-sol2-10: Rename to ... - * config/i386/t-sol2-64: ... this. - * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine. - (AS_SPARC64_FLAG): Define. - (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine. - (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine - depending on TARGET_CPU_DEFAULT. - (CPP_CPU_SPEC): Redefine. - (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P. - (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine. - (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine. - (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC, - ASM_ARCH_DEFAULT_SPEC): Redefine. - (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, - LINK_ARCH_DEFAULT_SPEC. - [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define. - [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine. - (ARCH64_SUBDIR): Define. - (LINK_ARCH64_SPEC): Redefine. - (CC1_SPEC): Redefine. - (OPTION_DEFAULT_SPECS): Redefine. - (MULTILIB_DEFAULTS): Define. - (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine. - [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine. - [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef. - (NO_DBX_BNSYM_ENSYM): Remove. - (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove. - (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS. - (TARGET_ASM_NAMED_SECTION): Likewise. - (STACK_CHECK_STATIC_BUILTIN): Remove. - * config/sparc/sol2-bi.h: Remove. - * config/sparc/sol2-gas-bi.h: Remove. - * config/sparc/sol2-gas.h: Remove. - * config/sparc/sol2-gld-bi.h: Remove. - * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move - common parts ... - (*-*-solaris2*): ... here. - -2011-06-21 Christian Bruel - - PR other/43564 - * ipa-inline.c (can_inline_edge_p): Check - !DECL_DISREGARD_INLINE_LIMITS. - -2011-06-21 Christian Bruel - - PR middle-end/49139 - * cgraphunit.c (process_function_and_variable_attributes): warn when - always_inline functions that are not inline. - * ipa-inline-transform.c (inline_transform): Always call - optimize_inline. - * tree-inline.c (tree_inlinable_function_p): Use error instead - of sorry. - (expand_call_inline): Likewise. - -2011-06-21 Jakub Jelinek - - * Makefile.in (dg_target_exps): Set. - (check_gcc_parallelize): Parallelize gcc testing into 10 jobs - instead of 7, try to divide it more evenly. - -2011-06-20 Changpeng Fang - - PR target/49089 - * config/i386/i386.c (avx256_split_unaligned_load): New definition. - (avx256_split_unaligned_store): New definition. - (ix86_option_override_internal): Enable avx256 unaligned load/store - splitting only when avx256_split_unaligned_load/store is set. - -2011-06-20 Bernd Schmidt - - * regrename.c (scan_rtx_reg): Handle the case where we write to an - open chain in a smaller mode without failing the entire block. - -2011-06-21 Alan Modra - - * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match - CONST high part large-toc address. - (rs6000_tls_referenced_p): Make static. - * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete. - -2011-06-20 Ramana Radhakrishnan - - PR target/49385 - * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast - one of the operands is a register. - -2011-06-20 Kai Tietz - - * fold-const.c (fold_binary_loc): Add missing folding for truth-not - operations in combination with binary and. - -2011-06-20 Bernd Schmidt - - * regrename.c (do_replace): Don't update notes. - -2011-06-20 Alan Modra - - * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part - of toc-relative address in CONST. - (rs6000_delegitimize_address): Recognize changed address. - (rs6000_legitimize_reload_address): Likewise. - (rs6000_emit_move): Don't force these constants to memory. - * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of - toc-relative address in CONST. - (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise. - (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise. - -2011-06-18 H.J. Lu - - * longlong.h (count_leading_zeros): Use long long builtin for x86-64. - (count_trailing_zeros): Likewise. - -2011-06-18 H.J. Lu - - PR other/49325 - * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if - .init_array can be used with .ctors on targets. - * configure: Regenerated. - -2011-06-18 Eric Botcazou - - * tree-sra.c (type_internals_preclude_sra_p) : Return true - if the element type is volatile. - -2011-06-18 Jan Hubicka - - * lto-symtab.c (lto_varpool_replace_node): Remove code handling - extra name aliases. - (lto_symtab_resolve_can_prevail_p): Likewise. - (lto_symtab_merge_cgraph_nodes): Update alias_of pointers. - * cgraphbuild.c (record_reference): Remove extra body alias code. - (mark_load): Likewise. - (mark_store): Likewise. - * cgraph.h (varpool_node): Remove extra_name filed; - add alias_of and extraname_alias. - (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare. - (varpool_alias_aliased_node): New inline function. - (varpool_variable_node): New function. - * cgraphunit.c (handle_alias_pairs): Handle also variable aliases. - * ipa-ref.c (ipa_record_reference): Allow aliases on variables. - * lto-cgraph.c (lto_output_varpool_node): Update streaming. - (input_varpool_node): Likewise. - * lto-streamer-out.c (produce_symtab): Remove extra name aliases. - (varpool_externally_visible_p): Remove extra body alias code. - (function_and_variable_visibility): Likewise. - * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function. - (ipa_pta_execute): Use it. - * varpool.c (varpool_remove_node): Remove extra name alias code. - (varpool_mark_needed_node): Likewise. - (varpool_analyze_pending_decls): Analyze aliases. - (assemble_aliases): New functoin. - (varpool_assemble_decl): Use it. - (varpool_create_variable_alias): New function. - (varpool_extra_name_alias): Rewrite. - (varpool_for_node_and_aliases): New function. - -2011-06-18 Jakub Jelinek - - PR target/49411 - * config/i386/i386.c (ix86_expand_multi_arg_builtins): If - last_arg_constant and last argument doesn't match its predicate, - for xop_vpermil23 error out and for xop_rotl3 - if it is CONST_INT, mask it, otherwise expand using rotl3. - (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix - spelling of error message. - * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi, - vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use - const_0_to_255_operand instead of const_int_operand. - - Revert: - 2011-05-09 Uros Bizjak - - * config/i386/sse.md (blendbits): Remove mode attribute. - (_blend): Use const_int_operand - instead of const_0_to__operand for operand 3 predicate. - Check integer value of operand 3 in insn constraint. - -2011-06-17 Hans-Peter Nilsson - - PR rtl-optimization/48542 - * reload.c (find_equiv_reg): Stop looking when finding a - setjmp-type call. - * reload1.c (reload_as_needed): Invalidate all reload - registers when crossing a setjmp-type call. - -2011-06-16 Jeff Law - - * tree-ssa-threadupdate.c (struct redirection_data): New field - intermediate_edge. - (THREAD_TARGET2): Define. - (redirection_data_eq): Also check that the intermediate edge is equal. - (lookup_redirection_data): Drop useless argument. Extract the - outgoing_edge and intermediate edge from E. Callers updated. - (copy_phi_args, update_destination_phis): New functions. - (fix_duplicate_block_edges): Likewise. - (create_edge_and_update_destination_phis): Duplicate all the edges - hung off e->aux. Use copy_phi_args. - (create_duplicates): Use fix_duplicate_block_edges. - (fixup_template_block): Likewise. - (redirect_edges): If necessary, redirect the joiner block's incoming - edge to the duplicate of the joiner block. - (thread_block): Don't muck up loops when threading through a joiner - block. - (thread_through_loop_header): Handle threading through a joiner block. - (mark_threaded_blocks, register_jump_thread): Likewise. - * tree-flow.h (register_jump_thread): Add new argument. Callers - updated. - * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function. - (thread_across_edge): Handle threading through a joiner block. - -2011-06-16 Martin Jambor - - PR tree-optimization/49343 - * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to - calculate offset, provide 2nd operand for the new COMPONENT_REF. - -2011-06-16 Iain Sandoe - - * config/darwin-protos.h (machopic_select_rtx_section): Move to - inside RTX_CODE ifdef. - -2011-06-16 Tom de Vries - - PR target/45098 - * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): - Disallow NULL pointer for pointer arithmetic. - -2011-06-16 Ramana Radhakrishnan - - PR target/49398 - Revert. - 2011-06-10 Wei Guozhi - - PR target/45335 - * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da, - stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns. - (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and - related peephole2. - (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and - related peephole2. - * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype. - (arm_legitimate_ldrd_p): New prototype. - (arm_output_ldrd): New prototype. - * config/arm/arm.c (arm_check_ldrd_operands): New function. - (arm_legitimate_ldrd_p): New function. - (arm_output_ldrd): New function. - -2011-06-16 Joern Rennecke - - PR middle-end/46500 - * doc/tm.texi.in: Update Copyright date. - * doc/tm.texi: Regenerate. - * targhooks.c (default_setup_incoming_varargs): Replace - CUMULATIVE_ARGS* argument type with cumulative_args_t. - (default_pretend_outgoing_varargs_named): Likewise. - (hook_pass_by_reference_must_pass_in_stack): Likewise. - (hook_callee_copies_named): Likewise. - (default_function_arg_advance): Likewise. - (default_function_arg): Likewise. - (default_function_incoming_arg): Likewise. - (hook_bool_CUMULATIVE_ARGS_false): Likewise. - (hook_bool_CUMULATIVE_ARGS_true): Likewise. - (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise. - (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. - (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise. - * targhooks.h (default_setup_incoming_varargs): Likewise. - (default_pretend_outgoing_varargs_named): Likewise. - (hook_pass_by_reference_must_pass_in_stack): Likewise. - (hook_callee_copies_named): Likewise. - (default_function_arg_advance): Likewise. - (default_function_arg): Likewise. - (default_function_incoming_arg): Likewise. - (hook_bool_CUMULATIVE_ARGS_false): Likewise. - (hook_bool_CUMULATIVE_ARGS_true): Likewise. - (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise. - (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. - (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise. - * target.def (pass_by_reference): Likewise. - (setup_incoming_varargs, strict_argument_naming): Likewise. - (pretend_outgoing_varargs_named, callee_copies): Likewise. - (arg_partial_bytes, function_arg_advance, function_arg): Likewise. - (function_incoming_arg): Likewise. - * target.h: Don't include "tm.h" . - (cumulative_args_t): New typedef. - [GCC_TM_H] (get_cumulative_args): New static inline function. - [GCC_TM_H] (pack_cumulative_args): Likewise. - * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS* - argument type with cumulative_args_t. - (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise. - (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise. - * config/frv/frv.c (frv_setup_incoming_varargs): Likewise. - (frv_arg_partial_bytes, frv_function_arg): Likewise. - (frv_function_incoming_arg, frv_function_arg_advance): Likewise. - (frv_function_arg_1): Likewise. - * config/s390/s390.c (s390_pass_by_reference): Likewise. - (s390_function_arg_advance, s390_function_arg): Likewise. - * config/m32c/m32c.c (m32c_function_arg): Likewise. - (m32c_pass_by_reference, m32c_function_arg_advance): Likewise. - (m32c_strict_argument_naming): Likewise. - * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise. - (spu_function_arg_advance): Likewise. - (spu_setup_incoming_varargs): Likewise. Make static. - * config/spu/spu-protos.h (spu_setup_incoming_varargs): - Remove prototype. - * config/sparc/sparc.c (sparc_strict_argument_naming): Replace - CUMULATIVE_ARGS* argument type with cumulative_args_t. - (sparc_pass_by_reference, sparc_function_arg_advance): Likewise. - (sparc_function_arg, sparc_function_incoming_arg): Likewise. - (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise. - * config/mep/mep.c (mep_setup_incoming_varargs): Likewise. - (mep_pass_by_reference, mep_function_arg): Likewise. - (mep_function_arg_advance): Likewise. - * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. - (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise. - (m32r_function_arg, m32r_function_arg_advance): Likewise. - * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise. - * config/i386/i386.c (ix86_function_arg_advance): Likewise. - (ix86_function_arg, ix86_pass_by_reference): Likewise. - (ix86_setup_incoming_varargs): Likewise. - * config/sh/sh.c (sh_setup_incoming_varargs): Likewise. - (sh_strict_argument_naming): Likewise. - (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise. - (sh_callee_copies, sh_arg_partial_bytes): Likewise. - (sh_function_arg_advance, sh_function_arg): Likewise. - * config/pdp11/pdp11.c (pdp11_function_arg): Likewise. - (pdp11_function_arg_advance): Likewise. - * config/microblaze/microblaze.c (microblaze_function_arg_advance): - Likewise. - (microblaze_function_arg, function_arg_partial_bytes): Likewise. - * config/avr/avr.c (avr_function_arg): Likewise. - (avr_function_arg_advance): Likewise. - * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise. - (xtensa_function_arg, xtensa_function_incoming_arg): Likewise. - (xtensa_function_arg_1): Likewise. - * config/stormy16/stormy16.c (xstormy16_function_arg_advance): - Likewise. - (xstormy16_function_arg): Likewise. - * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise. - (fr30_arg_partial_bytes, fr30_function_arg): Likewise. - (fr30_function_arg_advance): Likewise. - * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. - (lm32_function_arg, lm32_function_arg_advance): Likewise. - * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise. - (moxie_function_arg, moxie_function_arg_advance): Likewise. - (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise. - * config/cris/cris.c (cris_setup_incoming_varargs): Likewise. - (cris_pass_by_reference, cris_arg_partial_bytes): Likewise. - (cris_function_arg, cris_function_incoming_arg): Likewise. - (cris_function_arg_advance, cris_function_arg_1): Likewise. - * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise. - (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise. - (iq2000_function_arg, iq2000_function_arg_advance): Likewise. - * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise. - (mn10300_function_arg, mn10300_function_arg_advance): Likewise. - (mn10300_arg_partial_bytes): Likewise. - * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise. - (ia64_arg_partial_bytes, ia64_function_arg): Likewise. - (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise. - (ia64_function_arg_1): Likewise. - * config/m68k/m68k.c (m68k_function_arg_advance): Likewise. - (m68k_function_arg): Likewise. - * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise. - (rs6000_function_arg, setup_incoming_varargs): Likewise. - (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise. - * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise. - (picochip_function_arg, picochip_incoming_function_arg): Likewise. - (picochip_arg_advance): Likewise. - * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise. - (mcore_arg_partial_bytes, mcore_function_arg): Likewise. - (mcore_function_arg_advance): Likewise. - * config/score/score.c (score_pass_by_reference): Likewise. - (score_function_arg_advance): Likewise. - (score_arg_partial_bytes): Likewise. Make static. - * config/score/score-protos.h (score_arg_partial_bytes): Don't declare. - * config/arm/arm.c (arm_arg_partial_bytes): Replace - CUMULATIVE_ARGS* argument type with cumulative_args_t. - (arm_function_arg, arm_function_arg_advance): Likewise. - (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise. - * config/pa/pa.c (pa_pass_by_reference): Likewise. - (pa_arg_partial_bytes, pa_function_arg_advance): Likewise. - (pa_function_arg): Likewise. - * config/mips/mips.c (mips_strict_argument_naming): Likewise. - (mips_function_arg, mips_function_arg_advance): Likewise. - (mips_arg_partial_bytes, mips_pass_by_reference): Likewise. - (mips_callee_copies, mips_setup_incoming_varargs): Likewise. - * config/vax/vax.c (vax_function_arg): Likewise. - (vax_function_arg_advance): Likewise. - * config/h8300/h8300.c (h8300_function_arg): Likewise. - (h8300_function_arg_advance): Likewise. - * config/v850/v850.c (v850_pass_by_reference): Likewise. - (v850_strict_argument_naming, v850_function_arg): Likewise. - (v850_arg_partial_bytes, v850_function_arg_advance): Likewise. - (v850_setup_incoming_varargs): Likewise. - * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise. - (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise. - (mmix_function_arg, mmix_pass_by_reference): Likewise. - (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type - with const void *. - * config/bfin/bfin.c (setup_incoming_varargs): Replace - CUMULATIVE_ARGS* argument type with cumulative_args_t. - (bfin_function_arg_advance, bfin_function_arg): Likewise. - (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise. - * calls.c (emit_call_1): Change type of args_so_far to - cumulative_args_t. Changed all callers. - (initialize_argument_information): Likewise. - (expand_call, emit_library_call_value_1): Use pack_cumulative_args. - * dse.c (get_call_args): Likewise. - * expr.c (block_move_libcall_safe_for_call_parm): Likewise. - * function.c (pass_by_reference, reference_callee_copied): Likewise. - (struct assign_parm_data_all): Rename args_so_far to args_so_far_v. - New member args_so_far_v. Changed all users. - * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args. - * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise. - * config/mips/mips.c (mips_output_args_xfer): Likewise. - * config/s390/s390.c (s390_call_saved_register_used): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Likewise. - * config/microblaze/microblaze.c (microblaze_expand_prologue): - Likewise. - * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed - m32r_pass_by_reference. - -2011-06-16 Ira Rosen - - * tree-vectorizer.h (vect_recog_func_ptr): Change the first - argument to be a VEC of statements. - * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the - assert that pattern statements have to have their vector type set. - * tree-vect-patterns.c (vect_recog_widen_sum_pattern): - Change the first argument to be a VEC of statements. Update - documentation. - (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise. - (vect_handle_widen_mult_by_const): New function. - (vect_recog_widen_mult_pattern): Change the first argument to be a - VEC of statements. Update documentation. Check that the constant is - INTEGER_CST. Support multiplication by a constant that fits an - intermediate type - call vect_handle_widen_mult_by_const. - (vect_pattern_recog_1): Update vect_recog_func_ptr and its - call. Handle additional pattern statements if necessary. - -2011-06-16 Nick Clifton - - PR target/49427 - * config.gcc: Set cpu_type to v850 for any V850 architecture. - (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file, - md_file, extra_modes, out_file and extra_options are these are all - deduced from cpu_type. - -2011-06-16 Georg-Johann Lay - - * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift - truncation mask to 63. - -2011-06-16 Georg-Johann Lay - - PR target/49313 - PR target/29524 - * longlong.h: Add AVR support: - (count_leading_zeros): New macro. - (count_trailing_zeros): New macro. - (COUNT_LEADING_ZEROS_0): New macro. - * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2, - _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2, - _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2, - _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3. - (LIB2FUNCS_EXCLUDE): Add _clz. - * config/avr/libgcc.S (XCALL): Move up in file. - (XJMP): New C Macro. - (DEFUN): New asm macro. - (ENDF): New asm macro. - (__ffssi2): New function. - (__ffshi2): New function. - (__loop_ffsqi2): New function. - (__ctzsi2): New function. - (__ctzhi2): New function. - (__clzdi2): New function. - (__clzsi2): New function. - (__clzhi2): New function. - (__paritydi2): New function. - (__paritysi2): New function. - (__parityhi2): New function. - (__parityqi2): New function. - (__popcounthi2): New function. - (__popcountsi2): New function. - (__popcountdi2): New function. - (__popcountqi2): New function. - (__bswapsi2): New function. - (__bswapdi2): New function. - (__ashldi3): New function. - (__ashrdi3): New function. - (__lshrdi3): New function. - Fix suspicous lines. - -2011-06-16 Richard Guenther - - * gimple.c (canonicalize_cond_expr_cond): (bool)x is not - the same as x != 0. - * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 - to (bool) X & 1. - * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow - equality compares against zero for the lower bit. - -2011-06-16 Jakub Jelinek - - PR tree-optimization/49419 - * tree-vrp.c (execute_vrp): Call init_range_assertions - before estimate_numbers_of_iterations, call - free_number_of_iterations_estimates before calling - remove_range_assertions. - -2011-06-16 Revital Eres - - * modulo-sched.c (struct ps_insn): Remove row_rest_count field. - (struct partial_schedule): Add rows_length field. - (verify_partial_schedule): Check rows_length. - (ps_insert_empty_row): Handle rows_length. - (create_partial_schedule): Likewise. - (free_partial_schedule): Likewise. - (reset_partial_schedule): Likewise. - (create_ps_insn): Remove rest_count argument. - (remove_node_from_ps): Update rows_length. - (add_node_to_ps): Update rows_length and call create_ps_insn - without passing row_rest_count. - (rotate_partial_schedule): Update rows_length. - -2011-06-16 Revital Eres - - * ddg.c (add_intra_loop_mem_dep): New function. - (build_intra_loop_deps): Call it. - -2011-06-13 Jeff Law - - * df-problems.c (df_lr_local_compute): Manually CSE - PIC_OFFSET_TABLE_REGNUM. - * df-scan.c (df_get_regular_block_artificial_uses): Likewise. - (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise. - -2011-06-13 Jan Hubicka - - * cgraphunit.c (handle_alias_pairs): New function. - (cgraph_finalize_compilation_unit): Use it. - * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names - as externally visible. - -2011-06-15 Richard Guenther - - * expr.c (expand_expr_real_2): Reduce all integral types to - bitfield precision. - (expand_expr_real_1): Likewise. - -2011-06-15 Martin Jambor - - PR tree-optimization/48613 - * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if - ipa_node_params_vector is NULL. - -2011-06-15 Jakub Jelinek - - PR debug/49382 - * dwarf2out.c (dw_loc_list_node): Add force field. - (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming - location in the list, even if it is modified before first real insn. - (output_loc_list): Emit empty ranges with force flag set. - (dw_loc_list): If first range of a PARM_DECL is empty, set force flag. - -2011-06-15 Alexander Monakov - - PR target/49349 - * sel-sched.c (find_place_for_bookkeeping): Add new parameter - (fence_to_rewind). Use it to notice when bookkeeping will be placed - above a fence. Update comments. - (generate_bookkeeping_insn): Rewind fence when bookkeeping code is - placed just above it. Do not allow NULL place_to_insert. - -2011-06-15 Ira Rosen - - * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove. - (slpeel_tree_peel_loop_to_edge): Don't call - remove_dead_stmts_from_loop. - * tree-vect-loop.c (vect_determine_vectorization_factor): Don't - remove irrelevant pattern statements. For irrelevant statements - check if it is the last statement of a detected pattern, use - corresponding pattern statement instead. - (destroy_loop_vec_info): No need to remove pattern statements, - only free stmt_vec_info. - (vect_transform_loop): For irrelevant statements check if it is - the last statement of a detected pattern, use corresponding - pattern statement instead. - * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert - pattern statements. Set basic block for the new statement. - (vect_pattern_recog): Update documentation. - * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan - operands of pattern statements. - (vectorizable_call): Fix printing. In case of a pattern statement - use the lhs of the original statement when creating a dummy - statement to replace the original call. - (vect_analyze_stmt): For irrelevant statements check if it is - the last statement of a detected pattern, use corresponding - pattern statement instead. - * tree-vect-slp.c (vect_schedule_slp_instance): For pattern - statements use gsi of the original statement. - -2011-06-14 Joseph Myers - - * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to - common/common-target-def.h. - * target.def (default_target_flags, handle_option, - supports_split_stack, optimization_table, init_struct, - except_unwind_info, unwind_tables_default, have_named_sections): - Move to common/common-target.def. - * target.h (enum opt_levels, struct default_options): Move to - common/common-target.h. - * targhooks.c (default_except_unwind_info, - dwarf2_except_unwind_info, sjlj_except_unwind_info, - default_target_handle_option, empty_optimization_table): Move to - common/common-targhooks.c. - * targhooks.h (default_except_unwind_info, - dwarf2_except_unwind_info, sjlj_except_unwind_info, - default_target_handle_option, empty_optimization_table): Move to - common/common-targhooks.h. - * common/common-target-def.h: Include common/common-targhooks.h. - (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION - defined. - * common/common-target.def (handle_option, option_init_struct, - option_optimization_table, default_target_flags, - except_unwind_info, supports_split_stack, unwind_tables_default, - have_named_sections): Move from target.def. - (HOOK_PREFIX): Undefine at end of file. - * common/common-target.h: Include input.h. - (enum opt_levels, struct default_options): Move from target.h. - * common/common-targhooks.c, common/common-targhooks.h: New. - * config.gcc (target_has_targetm_common): Default to yes. - (moxie*): Set target_has_targetm_common=no. - (hppa*-*-*): Don't set target_has_targetm_common=yes. - * doc/tm.texi: Regenerate. - * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H). - (C_TARGET_DEF_H): Add common/common-targhooks.h. - (GCC_OBJS): Remove vec.o. - (OBJS): Remove hooks.o and vec.o. - (OBJS-libcommon-target): Add vec.o, hooks.o and - common/common-targhooks.o. - (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o, - tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o, - expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o, - cfglayout.o, $(out_object_file), $(common_out_object_file)): - Update dependencies. - (common/common-targhooks.o): New. - * common/config/default-common.c: Include tm.h. Add FIXME comment. - * common/config/pa/pa-common.c: Include more headers. Take - copyright dates from pa.c. - (pa_option_optimization_table, pa_handle_option, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS, - TARGET_HANDLE_OPTION): Move from pa.c. - * common/config/alpha/alpha-common.c, - common/config/arm/arm-common.c, common/config/avr/avr-common.c, - common/config/bfin/bfin-common.c, - common/config/cris/cris-common.c, - common/config/fr30/fr30-common.c, common/config/frv/frv-common.c, - common/config/h8300/h8300-common.c, - common/config/i386/i386-common.c, - common/config/ia64/ia64-common.c, - common/config/iq2000/iq2000-common.c, - common/config/lm32/lm32-common.c, - common/config/m32c/m32c-common.c, - common/config/m32r/m32r-common.c, - common/config/m68k/m68k-common.c, - common/config/mcore/mcore-common.c, - common/config/mep/mep-common.c, - common/config/microblaze/microblaze-common.c, - common/config/mips/mips-common.c, - common/config/mmix/mmix-common.c, - common/config/mn10300/mn10300-common.c, - common/config/pdp11/pdp11-common.c, - common/config/picochip/picochip-common.c, - common/config/rs6000/rs6000-common.c, - common/config/rx/rx-common.c, common/config/s390/s390-common.c, - common/config/score/score-common.c, common/config/sh/sh-common.c, - common/config/sparc/sparc-common.c, - common/config/spu/spu-common.c, common/config/v850/v850-common.c, - common/config/vax/vax-common.c, - common/config/xstormy16/xstormy16-common.c, - common/config/xtensa/xtensa-common.c: New. - * config/alpha/alpha.c: Include common/common-target.h. - (alpha_option_optimization_table, alpha_handle_option, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c. - * config/arm/arm-protos.h (arm_except_unwind_info): Declare. - * config/arm/arm.c (arm_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to - arm-common.c. - * config/avr/avr.c (avr_option_optimization_table, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move - to avr-common.c. - * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h. - (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION, - TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c. - * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c. - * config/cris/cris.c (cris_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to - cris-common.c. - * config/fr30/fr30.c (fr30_option_optimization_table, - TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move - to fr30-common.c. - * config/frv/frv.c (frv_option_optimization_table, - MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS, - TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c. - * config/h8300/h8300.c (h8300_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c. - * config/i386/i386-protos.h (ix86_handle_option): Declare. - * config/i386/i386.c: Include common/common-target.h. - (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET, - OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET, - OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET, - OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET, - OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET, - OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET, - OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET, - OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET, - OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET, - OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET, - OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET, - OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET, - OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET, - OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET, - OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET, - OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET, - OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET, - OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET, - OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET, - OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET, - OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET, - OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET, - OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET, - OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET, - OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET, - OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET, - OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET, - OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET, - OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option, - ix86_option_optimization_table, ix86_option_init_struct, - ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS, - TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to - i386-common.c. - * config/i386/t-i386 (i386.o): Update dependencies. - * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare. - * config/ia64/ia64.c (ia64_option_optimization_table, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - ia64_handle_option): Move to ia64-common.c. - * config/iq2000/iq2000.c (iq2000_option_optimization_table, - TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c. - * config/lm32/lm32.c (lm32_option_optimization_table, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move - to lm32-common.c. - * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to - m32c-common.c. - * config/m32r/m32r.c (m32r_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO, - m32r_handle_option): Move to m32r-common.c. - (m32r_memory_move_cost): Remove comment referring to - TARGET_HANDLE_OPTION. - * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option): - Move to m68k-common.c. - * config/mcore/mcore.c (mcore_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c. - * config/mep/mep.c (mep_option_optimization_table, - mep_handle_option, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS): - Move to mep-common.c. - * config/microblaze/microblaze.c - (microblaze_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c. - * config/mips/mips.c (mips_handle_option, - mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to - mips-common.c. - * config/mmix/mmix.c (mmix_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE): - Move to mmix-common.c. - * config/mn10300/mn10300.c (mn10300_option_optimization_table, - mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c. - * config/pa/pa.c: Include common/common-target.h. - (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - pa_handle_option): Move to pa-common.c. - (pa_option_override): Use targetm_common.except_unwind_info. - (pa_asm_output_mi_thunk, pa_function_section): Use - targetm_common.have_named_sections. - * config/pdp11/pdp11.c (pdp11_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT, - pdp11_handle_option, pdp11_option_init_struct): Move to - pdp11-common.c. - * config/picochip/picochip.c (picochip_option_optimization_table, - TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c. - * config/rs6000/rs6000.c: Include common/common-target.h. - (rs6000_option_optimization_table, TARGET_HANDLE_OPTION, - TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct, - rs6000_handle_option): Move to rs6000-common.c. - * config/rs6000/t-rs6000 (rs6000.o): Update dependencies. - * config/rx/rx.c (rx_handle_option, rx_option_optimization_table, - TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c. - * config/s390/s390.c (processor_flags_table, - s390_option_optimization_table, s390_option_init_struct, - s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS, - TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, - TARGET_OPTION_INIT_STRUCT): Move to s390-common.c. - * config/s390/s390.h (processor_flags_table): Declare. - * config/score/score.c (score_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS, - score_handle_option): Move to score-common.c. - * config/sh/sh.c (sh_option_optimization_table, - TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, - sh_handle_option, sh_option_init_struct): Move to sh-common.c. - * config/sparc/sparc.c: Include common/common-target.h. - (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS, - TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c. - * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS, - TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO, - spu_option_init_struct): Move to spu-common.c. - * config/stormy16/stormy16.c (xstorym16_option_optimization_table, - TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c. - * config/v850/v850.c (small_memory_physical_max, - v850_handle_memory_optionn v850_handle_option, - v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS, - TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to - v850-common.c. - * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c. - * config/xtensa/xtensa.c (xtensa_option_optimization_table, - TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE): - Move to xtensa-common.c. - * cfglayout.c: Include common/common-target.h. - (fixup_reorder_chain): Use targetm_common.have_named_sections. - * cfgrtl.c: Include common/common-target.h. - (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use - targetm_common.have_named_sections. - * dbxout.c: Include common/common-target.h. - (dbxout_function_end): Use targetm_common.have_named_sections. - * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use - targetm_common.except_unwind_info. - * dwarf2out.c: Include common/common-target.h. - (dwarf2out_do_frame, dwarf2out_do_cfi_asm, - dwarf2out_begin_prologue, dwarf2out_frame_init, - dwarf2out_frame_finish, dwarf2out_assembly_start): Use - targetm_common.except_unwind_info. - * except.c: Include common/common-target.h. - (init_eh, finish_eh_generation, - output_one_function_exception_table): Use - targetm_common.except_unwind_info. - (switch_to_exception_section): Use targetm_common.have_named_sections. - * explow.c: Include common/common-target.h. - * expr.c: Include common/common-target.h. - (build_personality_function): Use targetm_common.except_unwind_info. - * function.c: Include common/common-target.h. - (expand_function_end): Use targetm_common.except_unwind_info. - * haifa-sched.c: Include common/common-target.h. - (sched_create_recovery_edges): Use targetm_common.have_named_sections. - * lto-opts.c: Include common/common-target.h instead of target.h. - (lto_reissue_options): Use targetm_common.handle_option. - * opts.c: Include common/common-target.h. - (target_handle_option): Use targetm_common.handle_option. - (init_options_struct): Update comment referring to - targetm.target_option.optimization. Use - targetm_common.default_target_flags, - targetm_common.unwind_tables_default and - targetm_common.option_init_struct. - (default_options_optimization): Use - targetm_common.option_optimization_table. - (finish_options): Use targetm_common.except_unwind_info, - targetm_common.unwind_tables_default, - targetm_common.have_named_sections and - targetm_common.supports_split_stack. - * toplev.c: Include common/common-target.h. - (process_options): Use targetm_common.have_named_sections. - * tree-tailcall.c: Include common/common-target.h. - (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info. - * tree.c: Include common/common-target.h. - (build_common_builtin_nodes): Use targetm_common.except_unwind_info. - * varasm.c: Include common/common-target.h. - (resolve_unique_section, hot_function_section, - default_function_section): Use targetm_common.have_named_sections. - -2011-06-14 Easwaran Raman - - PR rtl-optimization/44194 - * dse.c: Include tree-flow.h - (insn_info): Add new field non_frame_wild_read. - (group_info): Add new fields escaped_n and escaped_p. - (kill_on_calls): New variable. - (get_group_info): Initialize gi->escaped_n and gi->escaped_p. - (dse_step0): Initialize kill_on_calls. - (can_escape): New function. - (set_usage_bits): Add additional parameter; record information - about escaped locations. - (record_store): Pass EXPR corresponding to MEM to set_usage_bits. - (dse_step2_nospill): Set kill_on_calls based on - group->escaped_n and group->escaped_n. - (add_wild_read): Refactor into... - (reset_active_stores): ... New function, and - (free_read_records): ... New function. - (add_non_frame_wild_read): New function. - (scan_insn): Call add_non_frame_wild_read on non-const calls. - (scan_reads_nospill): Handle instructions with non_frame_wild_read. - (dse_step5_nospill): Call scan_reads_nospill for instructions - marked as non_frame_wild_read. - (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps. - -2011-06-14 Joseph Myers - - * common/common-target-def.h, common/common-target.def, - common/common-target.h, common/config/default-common.c, - common/config/pa/pa-common.c: New files. - * Makefile.in (common_out_file, common_out_object_file, - COMMON_TARGET_H, COMMON_TARGET_DEF_H): New. - (OBJS-libcommon-target): Include $(common_out_object_file). - (prefix.o): Update dependencies. - ($(common_out_object_file), common/common-target-hooks-def.h, - s-common-target-hooks-def-h): New. - (s-tm-texi): Also check timestamp on common-target.def. - (build/genhooks.o): Update dependencies. - * config.gcc (common_out_file, target_has_targetm_common): Define. - * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with - TARGET_ALWAYS_STRIP_DOTDOT. - * configure.ac (common_out_object_file): Define. - (common_out_file, common_out_object_file): Substitute. - (common): Create directory. - * configure: Regenerate. - * doc/tm.texi.in (targetm_common): Document. - (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry. - * doc/tm.texi: Regenerate. - * genhooks.c (hook_array): Also include common/common-target.def. - * prefix.c (tm.h): Don't include. - (common/common-target.h): Include. - (ALWAYS_STRIP_DOTDOT): Don't define. - (update_path): Use targetm_common.always_strip_dotdot instead of - ALWAYS_STRIP_DOTDOT. - * system.h (ALWAYS_STRIP_DOTDOT): Poison. - -2011-06-14 David Li - - * passes.c (execute_function_todo): Remove TODO_dump_func. - (execute_one_pass): Remove TODO_dump_func. - (execute_function_dump): New function. - * tree-vrp.c: Remove TODO_dump_func. - * regrename.c: Remove TODO_dump_func. - * fwprop.c: Remove TODO_dump_func. - * tree-into-ssa.c: Remove TODO_dump_func. - * tree-complex.c: Remove TODO_dump_func. - * tracer.c: Remove TODO_dump_func. - * tree-loop-distribution.c: Remove TODO_dump_func. - * postreload-gcse.c: Remove TODO_dump_func. - * postreload.c: Remove TODO_dump_func. - * tree-ssa-loop-ch.c: Remove TODO_dump_func. - * tree-tailcall.c: Remove TODO_dump_func. - * ipa-cp.c: Remove TODO_dump_func. - * final.c: Remove TODO_dump_func. - * tree-emutls.c: Remove TODO_dump_func. - * omp-low.c: Remove TODO_dump_func. - * tree-ssa-dse.c: Remove TODO_dump_func. - * tree-ssa-uncprop.c: Remove TODO_dump_func. - * auto-inc-dec.c: Remove TODO_dump_func. - * reorg.c: Remove TODO_dump_func. - * tree-ssa-copyrename.c: Remove TODO_dump_func. - * tree-ssa-ccp.c: Remove TODO_dump_func. - * compare-elim.c: Remove TODO_dump_func. - * mode-switching.c: Remove TODO_dump_func. - * modulo-sched.c: Remove TODO_dump_func. - * tree-call-cdce.c: Remove TODO_dump_func. - * cse.c: Remove TODO_dump_func. - * web.c: Remove TODO_dump_func. - * tree-stdarg.c: Remove TODO_dump_func. - * lto-streamer-out.c: Remove TODO_dump_func. - * tree-ssa-math-opts.c: Remove TODO_dump_func. - * tree-ssa-dom.c: Remove TODO_dump_func. - * tree-nrv.c: Remove TODO_dump_func. - * loop-init.c: Remove TODO_dump_func. - * gimple-low.c: Remove TODO_dump_func. - * ipa-inline.c: Remove TODO_dump_func. - * tree-ssa-sink.c: Remove TODO_dump_func. - * jump.c: Remove TODO_dump_func. - * ifcvt.c: Remove TODO_dump_func. - * tree-ssa-loop.c: Remove TODO_dump_func. - * recog.c: Remove TODO_dump_func. - * dse.c: Remove TODO_dump_func. - * tree-ssa-ifcombine.c: Remove TODO_dump_func. - * matrix-reorg.c: Remove TODO_dump_func. - * tree-eh.c: Remove TODO_dump_func. - * regmove.c: Remove TODO_dump_func. - * function.c: Remove TODO_dump_func. - * tree-vectorizer.c: Remove TODO_dump_func. - * ipa-split.c: Remove TODO_dump_func. - * gcse.c: Remove TODO_dump_func. - * tree-if-conv.c: Remove TODO_dump_func. - * init-regs.c: Remove TODO_dump_func. - * tree-ssa-phiopt.c: Remove TODO_dump_func. - * implicit-zee.c: Remove TODO_dump_func. - * lower-subreg.c: Remove TODO_dump_func. - * bt-load.c: Remove TODO_dump_func. - * tree-dfa.c: Remove TODO_dump_func. - * except.c: Remove TODO_dump_func. - * emit-rtl.c: Remove TODO_dump_func. - * store-motion.c: Remove TODO_dump_func. - * cfgexpand.c: Remove TODO_dump_func. - * tree-cfgcleanup.c: Remove TODO_dump_func. - * cfgcleanup.c: Remove TODO_dump_func. - * tree-ssa-pre.c: Remove TODO_dump_func. - * tree-sra.c: Remove TODO_dump_func. - * tree-mudflap.c: Remove TODO_dump_func. - * tree-ssa-copy.c: Remove TODO_dump_func. - * cfglayout.c: Remove TODO_dump_func. - * tree-ssa-forwprop.c: Remove TODO_dump_func. - * tree-ssa-dce.c: Remove TODO_dump_func. - * ira.c: Remove TODO_dump_func. - * tree-ssa.c: Remove TODO_dump_func. - * integrate.c: Remove TODO_dump_func. - * tree-optimize.c: Remove TODO_dump_func. - * tree-ssa-phiprop.c: Remove TODO_dump_func. - * tree-object-size.c: Remove TODO_dump_func. - * combine.c: Remove TODO_dump_func. - * bb-reorder.c: Remove TODO_dump_func. - * cprop.c: Remove TODO_dump_func. - * var-tracking.c: Remove TODO_dump_func. - * tree-profile.c: Remove TODO_dump_func. - * tree-vect-generic.c: Remove TODO_dump_func. - * reg-stack.c: Remove TODO_dump_func. - * sched-rgn.c: Remove TODO_dump_func. - * tree-ssa-structalias.c: Remove TODO_dump_func. - * tree-switch-conversion.c: Remove TODO_dump_func. - * tree-cfg.c: Remove TODO_dump_func. - * tree-ssa-reassoc.c: Remove TODO_dump_func. - * combine-stack-adj.c: Remove TODO_dump_func. - * dce.c: Remove TODO_dump_func. - * tree-ssanames.c: Remove TODO_dump_func. - * regcprop.c: Remove TODO_dump_func. - -2011-06-14 H.J. Lu - - PR middle-end/47364 - * builtins.c (expand_builtin_strlen): Expand strlen to Pmode - and properly handle result not in Pmode. - -2011-06-14 Robert Millan - - * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'. - * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with - `config/linux.h'. - - * config/i386/kfreebsd-gnu64.h: New file. - * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h' - with `i386/kfreebsd-gnu64.h'. - - * config/i386/linux64.h (GNU_USER_LINK_EMULATION32) - (GNU_USER_LINK_EMULATION64): New macros. - * config/i386/gnu-user64.h (LINK_SPEC): Rely on - `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead - of hardcoding `elf_i386' and `elf_x86_64'. - -2011-06-14 Nick Clifton - - PR target/49403 - * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter. - - PR target/49402 - * config.gcc(v850*-*-*): Avoid duplication of v850.opt. - -2011-06-14 Jakub Jelinek - - PR fortran/49103 - * tree.h (DECL_NONSHAREABLE): Define. - (struct tree_decl_common): Change decl_common_unused to - decl_nonshareable_flag. - * cfgexpand.c (expand_used_vars_for_block, clear_tree_used): - Ignore vars with DECL_NONSHAREABLE bit set. - * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE - on stores to automatic aggregate vars. - - PR rtl-optimization/49390 - Revert: - 2010-06-29 Bernd Schmidt - - * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare - MEM_ALIAS_SET. - -2011-06-14 Zdenek Dvorak - Tom de Vries - - PR target/45098 - * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate): - Document changed semantics. - (max_stmt_executions, max_stmt_executions_int): Declare. - * tree-data-ref.c (estimated_loop_iterations) - (estimated_loop_iterations_int): Move functions... - * tree-ssa-loop-niter.c (estimated_loop_iterations) - (estimated_loop_iterations_int): here. - (record_estimate): Change nb_iterations_upper_bound and - nb_iterations_estimate semantics. - (max_stmt_executions, max_stmt_executions_int): New function. - * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ... - (max_stmt_executions_tree): this. - (analyze_miv_subscript): Use max_stmt_executions_tree instead of - estimated_loop_iterations_tree. - tree-ssa-loop-ivopts.c (avg_loop_niter): Use - max_stmt_executions_int instead of estimated_loop_iterations_int. - * predict.c (predict_loops): Idem. - * tree-parloops.c (parallelize_loops): Idem. - * tree-data-ref.c (analyze_siv_subscript_cst_affine) - (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine) - (init_omega_for_ddr_1): Idem. - * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse) - (loop_prefetch_arrays): Idem - * graphite-sese-to-poly.c (build_loop_iteration_domains): Use - max_stmt_executions instead of estimated_loop_iterations. - * tree-data-ref.c (estimated_loop_iterations_tree): Idem. - * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations - instead of nb_iterations_upper_bound. - -2011-06-13 Jan Hubicka - - * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type. - -2011-06-14 Richard Henderson - - PR debug/48459 - * dwarf2out.c (frame_pointer_fb_offset_valid): New. - (based_loc_descr): Assert it's true. - (compute_frame_pointer_to_fb_displacement): Set it, rather than - aborting immediately. - -2011-06-14 Sanjin Liu - Mingfeng Wu - - * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores. - -2011-06-13 Jan Hubicka - - * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit. - -2011-06-13 Jan Hubicka - - * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY - similarly to DECL_COMDAT. - * cgraphunit.c (cgraph_analyze_function): Likewise. - * ipa.c (function_and_variable_visibility): Likewise. - -2011-06-13 Jan Hubicka - - * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output - BINFO_VIRTUALS when streaming for ltrans unit. - -2011-06-13 David Edelsohn - - * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic. - (movdi_internal64): Same. - -2011-06-13 Edmar Wienskoski - - PR target/44618 - * config/rs6000/rs6000.md (save_gpregs_): Replaced pattern with - a set of similar patterns, where the MATCH_OPERAND for the function - argument is replaced with individual references to hardware registers. - (save_fpregs_): Ditto - (restore_gpregs_): Ditto - (return_and_restore_gpregs_): Ditto - (return_and_restore_fpregs_): Ditto - (return_and_restore_fpregs_aix_): Ditto - -2011-06-13 Jan Hubicka - - * ipa-utils.c (postorder_stack): New structure. - (ipa_reverse_postorder): Handle aliases. - -2011-06-13 Jan Hubicka - - * ipa-inline.c (reset_edge_caches): Walk aliases. - (update_caller_keys): Do not test inlinability of aliases. - * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias. - (do_estimate_growth): Fix typo. - -2011-06-13 Jan Hubicka - - * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from... - (can_remove_node_now_p): ... here; handle same comdat groups. - (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO. - (inline_call): Update use of can_remove_node_now_p. - -2011-06-13 Kaushik Phatak - - * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added - condition to disallow non-identical memory locations. - (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give - preference to bit manipulation instructions. - -2011-06-13 Jan Hubicka - - * cgraph.c (cgraph_for_node_thunks_and_aliases, - cgraph_for_node_and_aliases): Fix thinko in recursive walking. - (nonremovable_p): New function. - (cgraph_can_remove_if_no_direct_calls_p): New function. - (used_from_object_file_p): New functoin. - (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for - references from aliases. - * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline. - * ipa-inline.c (check_caller_edge): New function. - (want_inline_function_called_once_p): Use it; accept aliases called - once, too. - * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME. - -2011-06-13 Ramana Radhakrishnan - - PR target/48454 - * config/arm/neon.md (vec_pack_trunc): Set the lengths - correctly for the case with Quad vectors. - -2011-06-13 Jakub Jelinek - Ira Rosen - - PR tree-optimization/49352 - * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at - all, make sure loop_use_stmt after the loop is a def stmt of a used - SSA_NAME that is the only one defined inside of the loop. Don't - check for COND_EXPR and GIMPLE_BINARY_RHS. - (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if - check_reduction is true. - -2011-06-11 Jan Hubicka - - PR middle-end/49373 - * ipa.c (cgraph_externally_visible_p): Check resolution info. - -2011-06-11 Jan Hubicka - - PR middle-end/48836 - * ipa-inline-transform.c: Include tree-pass.h - (inline_transform): Set TODO_update_ssa_only_virtuals. - * Makefile.in (ipa-inline-transform.o): Add tree-pass.h. - -2011-06-11 Jan Hubicka - - PR middle-end/49378 - * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out - aliases and thunks. - -2011-06-12 Ira Rosen - - * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent): - Take number of iterations to peel into account for equally frequent - misalignment values. - -2011-06-11 Jan Hubicka - - * lto-streamer-out.c (produce_symtab): Stream out the newly - represented aliases. - -2011-06-11 Jan Hubicka - - * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting - varying args. - (ipa_update_after_lto_read): Likewise. - (ipa_write_node_info): Do not sream call_with_var_arguments. - (ipa_read_node_info): Likewise. - -2011-06-11 Jan Hubicka - - * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto. - -2011-06-11 Jan Hubicka - - * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code. - (lto_symtab_resolve_can_prevail_p): Likewise. - (lto_symtab_merge_cgraph_nodes): Update merging of aliases. - * cgraph.c (same_body_aliases_done): New global var. - (cgraph_same_body_alias_1): Rename to ... - (cgraph_create_function_alias): ... this one; reorg to new - representation. - (cgraph_same_body_alias): Use cgraph_create_function_alias; - record references when asked to. - (cgraph_add_thunk): Fix formating. - (cgraph_get_node): Kill same body alias code. - (cgraph_node_for_asm): Likewise. - (cgraph_remove_same_body_alias): Remove. - (cgraph_remove_node): Kill same body alias code. - (cgraph_mark_address_taken_node): Mark also the aliased function - as having address taken. - (dump_cgraph_node): Dump same body aliases. - (cgraph_for_node_thunks_and_aliases): Update for new alias - representation. - (cgraph_for_node_and_aliases): Likewise. - * cgraph.h (same_body): Kll pointer. - (same_body_alias): Update comment. - (same_body_aliases_done): Declare. - (cgraph_remove_same_body_alias): Remove declaration. - (cgraph_create_function_alias): Declare. - (cgraph_process_same_body_aliases): Declare. - (cgraph_function_with_gimple_body_p): Check for alias. - (cgraph_can_remove_if_no_direct_calls_p): Look for aliases. - (cgraph_alias_aliased_node): New function. - (cgraph_function_node): Update for new aliases. - (cgraph_function_or_thunk_node): Likewise. - * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases. - (inline_call): Remove dead aliases. - * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler - name hack for same body aliases. - (clone_of_p): Look through aliases. - (verify_cgraph_node): Verify aliases. - (cgraph_analyze_function): Analyze aliases; fixup C++ bugs. - (cgraph_process_same_body_aliases): New function. - (process_function_and_variable_attributes): Disable weakref warning on - alias. - (cgraph_analyze_functions): Handle aliases. - (cgraph_mark_functions_to_output): Handle aliases same way as thunks. - (assemble_thunks): Rename to ... - (assemble_thunks_and_aliases): ... this one; handle aliases, too. - (cgraph_expand_function): Remove alias output code. - (cgraph_output_in_order): Skip aliases. - (cgraph_preserve_function_body_p): Aliases don't need preserving. - * ipa-ref.c (ipa_ref_use_name): Add alias reference. - (ipa_record_reference): Do not assert on alias references. - (ipa_ref_has_aliases_p): New function. - * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS. - (ipa_ref_has_aliases_p): Declare. - * lto-cgraph.c (lto_output_node): Handle aliases. - (input_node): Likewise. - * lto-streamer-out.c (lto_output): Skip aliases. - (produce_symtab): Kill same_body_alias code. - * ipa-utils.c (ipa_reverse_postorder): Add FIXME. - (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p. - * ipa-inline.c (update_caller_keys): Walk aliases. - (inline_small_functions): Fix thinko in previous patch. - * ipa.c (cgraph_externally_visible_p): Do not walk aliases. - (function_and_variable_visibility): Do not walk same body aliases. - * tree-ssa-structalias.c (associate_varinfo_to_alias): New function. - (ipa_pta_execute): Use it. - -2011-06-11 Uros Bizjak - - * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register. - (*vec_dupv2df): Rename from vec_dupv2df. - (vec_dupv2df): New expander. - -2011-06-11 Uros Bizjak - - * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P. - -2011-06-11 Uros Bizjak - - * config/i386/i386.md: Use default value in "isa" attribute. - * config/i386/sse.md: Ditto. - * config/i386/mmx.md: Ditto. - -2011-06-10 Wei Guozhi - - PR target/45335 - * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da, - stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns. - (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and - related peephole2. - (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and - related peephole2. - * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype. - (arm_legitimate_ldrd_p): New prototype. - (arm_output_ldrd): New prototype. - * config/arm/arm.c (arm_check_ldrd_operands): New function. - (arm_legitimate_ldrd_p): New function. - (arm_output_ldrd): New function. - -2011-06-10 David Li - - * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump. - * passes.c (passr_eq): New function. - (create_pass_tab): New function. - (pass_traverse): New function. - (dump_one_pass): New function. - (dump_pass_list): New function. - (dump_passes): New function. - -2011-06-10 Jan Hubicka - - * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after - setting the nothrow flag. - * ipa-reference.c (propagate): Skip aliases. - * ipa-pure-const.c (propagate_pure_const): Skip aliases. - (propagate_nothrow): Skip aliases; do not update cgraph. - (local_pure_const): Do not update cgraph. - * tree-profile.c (tree_profiling): Do fixup_cfg. - -2011-06-10 Jan Hubicka - - * ipa.c (cgraph_non_local_node_p_1): Break out from ...; - (cgraph_local_node_p): ... here; handle aliases. - (has_addr_references_p): Break out from ...; - (cgraph_remove_unreachable_nodes) ... here. - -2011-06-10 Jan Hubicka - - * opts.c (default_options): Enlist OPT_finline_functions_called_once. - * common.opt (flag_inline_functions_called_once): Do not - initialize to 1. - -2011-06-10 Jan Hubicka - - * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable. - (ipcp_initialize_node_lattices): Do not deal with aliases; - Do not try to propagate through thunks. - (ipcp_change_tops_to_bottom): Do not deal with aliases. - -2011-06-10 Jan Hubicka - - * ipa-prop.c (ipa_write_node_info): Stream jump functions - for indirect calls. - (ipa_read_node_info): Likewise. - -2011-06-10 Bill Schmidt - - PR lto/49302 - * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup. - (build_and_insert_call): Likewise. - (build_and_insert_ref): New. - (gimple_expand_builtin_pow): Minor cleanup. - (gimple_expand_builtin_cabs): New. - (execute_cse_sincos): Add case for BUILT_IN_CABS. - -2011-06-10 Jan Hubicka - - * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable. - (ipcp_cloning_candidate_p): Aliases are not clonning candidates. - (ipcp_initialize_node_lattices): We don't propagate through an aliases. - (ipcp_propagate_stage): Skip aliases when propagating. - (ipcp_need_redirect_p): Skip aliases. - (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and - collect_callers_of_node. - * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures - for aliases. - (ipa_compute_jump_functions): Look through aliases. - -2011-06-10 Rainer Orth - - * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it. - -2011-06-10 Hans-Peter Nilsson - - * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES. - Adjust comments. - * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison. - -2011-06-10 Jan Hubicka - - * ipa-cp.c (ipcp_process_devirtualization_opportunities): - Update call of gimple_get_virt_method_for_binfo. - * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove - refuse_thunks parameter. - (gimple_fold_call): Update. - * ipa-prop.c (try_make_edge_direct_virtual_call): Update. - -2011-06-10 Jan Hubicka - - * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ... - (not_all_callers_have_enough_arguments_p): ... this one; turn into - worker for cgraph_for_node_and_aliases. - (convert_callers_for_node): Break out from ... - (convert_callers): ... here. - (modify_function): Use collect_callers_of_node. - (ipa_early_sra): Use cgraph_for_node_and_aliases. - -2011-06-10 Richard Guenther - - PR tree-optimization/49361 - * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0) - when not already in gimple form. - -2011-06-10 Richard Guenther - - PR bootstrap/49344 - * tree-ssa-math-opts.c (convert_mult_to_fma): Use - FOR_EACH_PHI_OR_STMT_USE. - -2011-06-10 Jan Hubicka - - * ipa-inline-transform.c (can_remove_node_now_p): Move out of... - (clone_inlined_nodes): ... here. - (inline_call): Use cgraph_function_or_thunk_node; redirect edge - to real destination prior inlining. - * ipa-inline.c (caller_growth_limits, can_inline_edge_p, - can_early_inline_edge_p, want_early_inline_function_p, - want_early_inline_function_p, want_inline_small_function_p, - want_inline_self_recursive_call_p, want_inline_function_called_once_p, - edge_badness, update_all_callee_keys, lookup_recursive_calls, - add_new_edges_to_heap, inline_small_functions, flatten_function, - inline_always_inline_functions, early_inline_small_functions): Use - cgraph_function_or_thunk_node. - * ipa-inline-analysis.c (evaluate_conditions_for_edge, - dump_inline_edge_summary, estimate_function_body_sizes): Likewise. - (do_estimate_edge_growth_1): Break out from ... - (do_estimate_growth) ... here; walk aliases. - (inline_generate_summary): Skip aliases. - -2011-06-10 Richard Guenther - - * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts - forward when combining, visit inserted stmts when a stmt was changed. - -2011-06-10 Paolo Carlini - - * tree.h (error_operand_p): Add. - * dbxout.c (dbxout_type_fields): Use the latter. - * c-decl.c (add_stmt): Likewise. - * gimplify.c (omp_add_variable, omp_notice_variable, - gimplify_scan_omp_clauses): Likewise. - -2011-06-10 Georg-Johann Lay - - * config/avr/avr.c (avr_function_arg_advance): Fix thinko about - when a value is actually passed in regs. - -2011-06-10 Eric Botcazou - Laurent Rougé - - * doc/invoke.texi (SPARC options): Add -mflat. - * config/sparc/sparc.opt: Likewise. - * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter. - (sparc_flat_expand_prologue): Declare. - (sparc_flat_expand_epilogue): Likewise. - * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float. - (CPP_ENDIAN_SPEC): Replace with... - (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float. - (CPP_SPEC): Adjust to above change. - (EXTRA_SPECS): Likewise. - (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling. - (INCOMING_REGNO): Likewise. - (OUTGOING_REGNO): Likewise. - (LOCAL_REGNO): Likewise. - (SETUP_FRAME_ADDRESSES): Likewise. - (FIXED_REGISTERS): Set 0 for %fp. - (CALL_USED_REGISTERS): Likewise. - (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf. - (EXIT_IGNORE_STACK): Define to 1 unconditionally. - (RETURN_ADDR_REGNUM): Define. - (RETURN_ADDR_RTX): Use it. - (INCOMING_RETURN_ADDR_REGNUM): Define. - (INCOMING_RETURN_ADDR_RTX): Use it. - (DWARF_FRAME_RETURN_COLUMN): Likewise. - (EH_RETURN_REGNUM): Define. - (EH_RETURN_STACKADJ_RTX): Use it. - (EH_RETURN_HANDLER_RTX): Delete. - (EPILOGUE_USES): Use them and add TARGET_FLAT handling. - * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs): - Delete. - (struct machine_function): Add frame_size, apparent_frame_size, - frame_base_reg, frame_base_offset, n_global_fp_regs and - save_local_in_regs_p fields. - (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg, - sparc_frame_base_offset, sparc_n_global_fp_regs, - sparc_save_local_in_regs_p): New macros. - (sparc_option_override): Error out if -fcall-saved-REG is specified - for Out registers. - (eligible_for_restore_insn): Fix formatting. - (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling. - (eligible_for_sibcall_delay): Likewise. - (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter. - (sparc_legitimate_address_p): Adjust to above change. - (save_global_or_fp_reg_p): New predicate. - (return_addr_reg_needed_p): Likewise. - (save_local_or_in_reg_p): Likewise. - (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling. - (SORR_SAVE, SORR_RESTORE): Delete. - (sorr_pred_t): New typedef. - (sorr_act_t): New enum. - (save_or_restore_regs): Rename to... - (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH - parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P, - ACTION_TRUE and ACTION_FALSE parameters. Implement more general - mechanism. Add CFI information for double-word saves in 32-bit mode. - (emit_adjust_base_to_offset): New function extracted from... - (emit_save_or_restore_regs): ...this. Rename the rest to... - (emit_save_or_restore_regs_global_fp_regs): ...this. - (emit_save_or_restore_regs_local_in_regs): New function. - (gen_create_flat_frame_[123]): New functions. - (sparc_expand_prologue): Use SIZE local variable. Adjust. - (sparc_flat_expand_prologue): New function. - (sparc_asm_function_prologue): Add TARGET_FLAT handling. - (sparc_expand_epilogue): Use SIZE local variable. Adjust. - (sparc_flat_expand_epilogue): New function. - (sparc_can_use_return_insn_p): Add TARGET_FLAT handling. - (output_return): Likewise. - (output_sibcall): Likewise. - (sparc_output_mi_thunk): Likewise. - (sparc_frame_pointer_required): Likewise. - (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf - function optimization. - * config/sparc/sparc.md (flat): New attribute. - (prologue): Add TARGET_FLAT handling. - (save_register_window): Disable if TARGET_FLAT. - (create_flat_frame_[123]): New patterns. - (epilogue): Add TARGET_FLAT handling. - (sibcall_epilogue): Likewise. - (eh_return): New expander. - (eh_return_internal): New insn and splitter. - (return_internal): Add TARGET_FLAT handling. - (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM. - (save_stack_nonlocal): Use RETURN_ADDR_REGNUM. - (nonlocal_goto): Add TARGET_FLAT handling. - * config/sparc/t-elf: Add -mflat multilib. - * config/sparc/t-leon: Likewise. - -2011-06-10 Jan Hubicka - - * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node. - * ipa-pure-const.c (analyze_function): Aliases don't need analysis. - (self_recursive_p): Use cgraph_function_node. - (propagate_pure_const): Likewise. - (propagate_nothrow): Likewise. - * ipa-reference.c (ipa_reference_get_not_read_global): Use - cgraph_function_node. - (propagate_bits): Likewise. - (propagate): Likewise. - -2011-06-10 Ramana Radhakrishnan - Richard Earnshaw - - * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used. - * config/arm/vfp.md (*arm_movdi_vfp): Delete. - (*thumb2_movdi_vfp): Delete. - (*arm_movdi_vfp_cortexa8): Delete. - (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp. - (*movdi_vfp_cortexa8): Likewise. - -2011-06-10 Richard Guenther - - * stor-layout.c (initialize_sizetypes): Give names to all - sizetype kinds. - -2011-06-10 Ira Rosen - - PR tree-optimization/49318 - * tree-vect-loop.c (vect_determine_vectorization_factor): Remove - irrelevant pattern statements. - -2011-06-10 Hans-Peter Nilsson - - * system.h (SETJMP_VIA_SAVE_AREA): Poison. - - PR bootstrap/49354 - * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast - to last assignment. - -2011-06-09 Jan Hubicka - - * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline; - do not recompute reachable flag. - (cgraph_finalize_function, cgraph_analyze_functions): Set - redefined_extern_inline here. - -2011-06-09 Jan Hubicka - - * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ... - (cgraph_only_called_directly_p): ... this one; bring offline. - (resolution_used_from_other_file_p, cgraph_used_from_object_file_p, - varpool_used_from_object_file_p): Drop names from the declaratoin. - (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases, - collect_callers_of_node): New. - (cgraph_function_node, cgraph_function_or_thunk_node): New functions. - (cgraph_edge_recursive_p): Use cgraph_function_node. - * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias. - (cgraph_node_cannot_be_local_p_1): Break out from ... - (cgraph_node_can_be_local_p): ... here; walk aliases. - (cgraph_for_node_thunks_and_aliases): New function. - (cgraph_for_node_and_aliases): New function. - (cgraph_make_node_local_1): Break out from ... - (cgraph_make_node_local) ... here; use - cgraph_for_node_thunks_and_aliases. - (cgraph_set_nothrow_flag_1): Break out from ... - (cgraph_set_nothrow_flag) ... here; - use cgraph_for_node_thunks_and_aliases. - (cgraph_set_const_flag_1): Break out from ... - (cgraph_set_const_flag) ... here; - use cgraph_for_node_thunks_and_aliases. - (cgraph_set_pure_flag_1): Break out from ... - (cgraph_set_pure_flag) ... here; - use cgraph_for_node_thunks_and_aliases. - (cgraph_propagate_frequency_1): Break out from ... - (cgraph_propagate_frequency) ... here; use - cgraph_for_node_thunks_and_aliases. - (cgraph_used_from_object_file_p): Do not care about aliases. - (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p): - New functions. - (collect_callers_of_node_1, collect_callers_of_node): New functions. - -2011-06-10 Hans-Peter Nilsson - - PR rtl-optimization/49154 - * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM. - (enum reg_class): Add SRP_REGS and MOF_SRP_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS) - (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit. - * config/cris/cris.h (cris_register_move_cost): Remove - !TARGET_V32 code. Tweak comments. - -2011-06-09 Jan Hubicka - - * cgraphbuild.c (record_eh_tables): Mark personality function as having - address taken. - -2011-06-10 Hans-Peter Nilsson - - PR rtl-optimization/49154 - * ira-costs.c (setup_regno_cost_classes_by_mode): If there already - is a matching slot in the hashtable, assign it to classes_ptr. - - PR rtl-optimization/49154 - * doc/tm.texi.in (Register Classes): Document rule for the narrowest - register classes. - * doc/tm.texi: Regenerate. - -2011-06-09 Kaz Kojima - - PR target/49307 - * config/sh/sh.md (UNSPEC_CHKADD): New. - (chk_guard_add): New define_insn_and_split. - (symGOT_load): Use chk_guard_add instead of blockage. - -2011-06-09 Kai Tietz - - * libgcc2.c (L_trampoline): Include windows.h for mingw targets. - -2011-06-09 Eric Botcazou - - * config/sparc/sparc.md (return_internal): Adjust 'length' attribute. - -2011-06-09 Wei Guozhi - - PR target/46975 - * config/arm/arm.md (*addsi3_carryin_compare0_): New pattern. - (peephole2 for conditional move): Generate 16 bit instructions. - -2011-06-09 Uros Bizjak - - * config/i386/i386.md (*movdi_internal_rex64): Merge - alternatives 6 and 8. - -2011-06-09 David Li - - * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump. - * passes.c (passr_eq): New function. - (create_pass_tab): New function. - (pass_traverse): New function. - (dump_one_pass): New function. - (dump_pass_list): New function. - (dump_passes): New function. - -2011-06-09 David Li - - * tree-complex.c (tree_lower_complex): Gate cleanup. - * tree-stdarg.c (check_all_va_list_escapes): Ditto. - (execute_optimize_stdarg): Ditto. - * tree-eh.c (execute_lower_eh_dispatch): Ditto. - (execute_cleanup_eh_1): Ditto. - (execute_cleanup_eh): Ditto. - * gcse.c (gate_rtl_pre): Ditto. - (execute_rtl_pre): Ditto. - * except.c (finish_eh_generation): Ditto. - (convert_to_eh_region_ranges): Ditto. - * cprop.c (one_cprop_pass): Ditto. - -2011-06-09 Bernd Schmidt - - PR target/48673 - * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag - in all basic blocks. - -2011-06-09 Rainer Orth - - * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/darwin.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove. - (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - [IN_LIBGCC2]: Don't include . - * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove. - * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/sol2.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove. - (HAVE_ENABLE_EXECUTE_STACK): Define. - * config/alpha/alpha.c (alpha_trampoline_init): Test - HAVE_ENABLE_EXECUTE_STACK. - * config/i386/i386.c (ix86_trampoline_init): Likewise. - * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise. - (sparc64_initialize_trampoline): Likewise. - * libgcc2.c [L_enable_execute_stack]: Remove. - * system.h (ENABLE_EXECUTE_STACK): Poison. - * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove. - * doc/tm.texi: Regenerate. - * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc. - -2011-06-09 Jakub Jelinek - - PR middle-end/49308 - * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn - variable. After resetting and rescanning insn continue with previous - statement. - -2011-06-09 Rainer Orth - - * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*. - (gcc_cv_ld_hidden): Likewise. - * configure: Regenerate. - * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO. - (ix86_stack_protect_fail): Mark unused. - (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine. - * config/rs6000/rs6000.c (rs6000_assemble_visibility) - [TARGET_MACHO]: Don't define. - (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise. - (TARGET_STACK_PROTECT_FAIL): Likewise. - (rs6000_stack_protect_fail): Mark unused. - * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if - USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly. - -2011-06-08 Andi Kleen - - * varasm.c (get_section): Print location of other conflict - for section conflicts. - -2011-06-08 Andi Kleen - - * config/i386/driver-i386.c (host_detect_local_cpu): - Add model 0x2d Intel CPU. - -2011-06-08 Andi Kleen - - * reginfo.c (global_regs_decl): Add. - (globalize_reg): Add decl parameter. Compute location. Pass location - to warnings and add inform. Store decl in global_regs_decl. - * rtl.h (globalize_reg): Update prototype. - * varasm.c (make_decl_rtl): Pass decl to globalize_reg(). - -2011-06-09 Mingjie Xing - - * treestruct.def (TS_TYPE_DECL): Fix the printable name typo. - -2011-06-08 Kaz Kojima - - PR target/49305 - * config/sh/predicates.md (general_movsrc_operand): Check - mode for memory with indexed address for QI and HImode. - (general_movdst_operand): Likewise. - -2011-06-09 Nicola Pero - - * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated. - -2011-06-08 Alexandre Oliva - - * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts. - (num_ssa_operands): Likewise. - (op_iter_init_phiuse): Forward-declare. - (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE. - -2011-06-08 Nick Clifton - - * doc/invoke.texi (ARM Options): Update description of - -mthumb-interwork. - -2011-06-08 H.J. Lu - - * config/i386/driver-i386.c (host_detect_local_cpu): Support - unknown Intel family 0x6 CPUs. - -2011-06-08 Martin Jambor - - * tree-sra.c (mark_rw_status): Removed. - (analyze_access_subtree): New parameter parent instead of - mark_read and mark_write, propagate from that. - -2011-06-08 Julian Brown - - * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI - for double-precision helper functions in hard-float mode if only - single-precision arithmetic is supported in hardware. - -2011-06-08 Alexander Monakov - - PR rtl-optimization/49303 - * sel-sched.c (move_op): Use correct type for 'res'. Verify that - code_motion_path_driver returned 0 or 1. - (sel_region_finish): Clear h_d_i_d. - -2011-06-08 Kaz Kojima - - * config/sh/sh.c (prepare_move_operands): Set pic register - appropriately for global and local dynamic tls models even - if flag_pic is unset. - -2011-06-07 Jason Merrill - - * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set. - -2011-06-07 Xinliang David Li - * passes.c (enable_disable_pass): Handle assembler name. - (is_pass_explicitly_enabled_or_disabled): Ditto. - -2011-06-07 Rainer Orth - - PR tree-optimization/48497 - * doc/sourcebuild.texi (Directives, dg-additional-options): Document. - -2011-06-07 Bill Schmidt - - PR tree-optimization/46728 - * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME - to use gimple_val_nonnegative_real_p. - * gimple-fold.c (gimple_val_nonnegative_real_p): New function. - * gimple.h (gimple_val_nonnegative_real_p): New declaration. - -2011-06-07 H.J. Lu - - * config/i386/i386.md (*movsf_internal): Optimize AVX check. - -2011-06-07 Sergey Grechanik - - * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for - constant vectors. - -2011-06-07 Richard Guenther - - * stor-layout.c (initialize_sizetypes): Initialize all - sizetypes based on target definitions. - (set_sizetype): Remove. - * tree.c (build_common_tree_nodes): Do not call set_sizetype. - * tree.h (set_sizetype): Remove. - -2011-06-07 Nick Clifton - - * config.gcc: Unify V850 architecture options and add support for - newer V850 architectures. - * config/v850/t-v850e: Delete. - -2011-06-07 Richard Guenther - - * tree.c (build_common_tree_nodes): Also initialize size_type_node. - Call set_sizetype from here. - -2011-06-07 Andrew Stubbs - - * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns. - (*maddhisi4tb, *maddhisi4tt): New define_insns. - -2011-06-07 Bernd Schmidt - Andrew Stubbs - - * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening - multiplies. - * doc/md.texi (Canonicalization of Instructions): Document widening - multiply canonicalization. - -2011-06-07 Jakub Jelinek - - PR gcov-profile/49299 - * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge. - -2011-06-07 Ira Rosen - - * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be - a pointer. - * tree-vect-patterns.c (vect_recog_widen_sum_pattern, - vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern, - vect_recog_pow_pattern): Likewise. - (vect_pattern_recog_1): Remove declaration. - (widened_name_p): Remove declaration. Add new argument to specify - whether to check that both types are either signed or unsigned. - (vect_recog_widen_mult_pattern): Update documentation. Handle - unsigned patterns and multiplication by constants. - (vect_pattern_recog_1): Update vect_recog_func references. Use - statement information from the statement returned from pattern - detection functions. - (vect_pattern_recog): Update vect_recog_func reference. - * tree-vect-stmts.c (vectorizable_type_promotion): For widening - multiplication by a constant use the type of the other operand. - -2011-06-06 Richard Sandiford - - PR rtl-optimization/49145 - * combine.c (make_compound_operation): Handle ZERO_EXTEND specially. - -2011-06-06 Jakub Jelinek - - PR debug/49262 - * dwarf2out.c (native_encode_initializer): Decrement count in each - iteration. - - PR debug/49294 - * dwarf2out.c (mem_loc_descriptor) : Give up for - non-MODE_INT modes. - - PR c++/49264 - * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs - if stmt folded into nothing. - * tree-inline.c (fold_marked_statements): If a builtin at the end of - a bb folded into nothing, just update cgraph edges and move to next bb. - * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt - to be NULL. Don't compute count and frequency if new_call is NULL. - -2011-06-04 Diego Novillo - - * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H. - (cgraph.o): Likewise. - (cgraphunit.o): Likewise. - * cgraphunit.c: Include lto-streamer.h - (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init - if LTO is enabled. - * lto-streamer-in.c (unpack_value_fields): Call - streamer_hooks.unpack_value_fields if set. - (lto_materialize_tree): For unhandled nodes, first try to - call lto_streamer_hooks.alloc_tree, if it exists. - (lto_input_ts_decl_common_tree_pointers): Move reading of - DECL_INITIAL to lto_streamer_read_tree. - (lto_read_tree): Call lto_streamer_hooks.read_tree if set. - (lto_streamer_read_tree): New. - (lto_reader_init): Rename from lto_init_reader. - Move initialization code to lto/lto.c. - * lto-streamer-out.c (pack_value_fields): Call - streamer_hooks.pack_value_fields if set. - (lto_output_tree_ref): For tree nodes that are not normally indexable, - call streamer_hooks.indexable_with_decls_p before giving up. - (lto_output_ts_decl_common_tree_pointers): Move handling - for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree. - (lto_output_tree_header): Call streamer_hooks.is_streamable instead of - lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set. - (lto_write_tree): Call lto_streamer_hooks.write_tree if set. - (lto_streamer_write_tree): New. - (lto_output): Call lto_streamer_init directly. - (lto_writer_init): Remove. - * lto-streamer.c (streamer_hooks): New. - (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes - instead of lto_preload_common_nodes. - (lto_is_streamable): Move from lto-streamer.h - (lto_streamer_hooks_init): New. - (streamer_hooks): New. - (streamer_hooks_init): New. - * lto-streamer.h (struct output_block): Forward declare. - (struct lto_input_block): Likewise. - (struct data_in): Likewise. - (struct bitpack_d): Likewise. - (struct streamer_hooks): Declare. - (streamer_hooks): Declare. - (lto_streamer_hooks_init): Declare. - (lto_streamer_write_tree): Declare. - (lto_streamer_read_tree): Declare. - (streamer_hooks_init): Declare. - (lto_is_streamable): Move to lto-streamer.c - -2011-06-06 Andreas Krebbel - - * longlong.h (smul_ppmm): The resulting register pair contains the - higher order word first. - -2011-06-06 Bill Schmidt - - PR tree-optimization/46728 - * builtins.c (powi_table): Remove. - (powi_lookup_cost): Remove. - (powi_cost): Remove. - (expand_powi_1): Remove. - (expand_powi): Remove. - (expand_builtin_pow_root): Remove. - (expand_builtin_pow): Remove. - (expand_builtin_powi): Eliminate handling of constant exponent. - (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW. - -2011-06-06 Alexandre Oliva - - * cprop.c (local_cprop_pass): Don't set changed for debug insns. - -2011-06-06 Alexandre Oliva - - * dce.c (reset_unmarked_insns_debug_uses): New. - (delete_unmarked_insns): Skip debug insns. - (prescan_insns_for_dce): Likewise. - (rest_of_handle_ud_dce): Reset debug uses of removed sets. - * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no - active reg can be found. - (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then. - (convert_regs_1): Use it. - -2011-06-06 Alexandre Oliva - - * tree-pretty-print.c (dump_function_header): Add flags. - Don't dump decl_uid with nouid. - * tree-pretty-print.h (dump_function_header): Adjust. - * final.c (rest_of_clean_state): Pass dump_flags on, with nouid. - * passes.c (pass_init_dump_file): Pass dump_flags on. - * tree-cfg.c (gimple_dump_cfg): Pass flags on. - -2011-06-06 Alexandre Oliva - - PR bootstrap/49270 - * ipa-inline-analysis.c (read_predicate): Initialize all clauses. - -2011-06-06 Mikael Pettersson - - PR tree-optimization/49243 - * calls.c (setjmp_call_p): Also check if fndecl has the - returns_twice attribute. - -2011-06-06 Rainer Orth - - * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if - -ffast-math etc. - -2011-06-06 Richard Henderson - Georg-Johann Lay - - PR target/42210 - * config/avr/predicates.md (const1_operand, const_0_to_7_operand): - New predicates. - * config/avr/avr.md ("insv"): New insn expander. - ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io", - "*insv.not.io", "*insv.reg"): New insns. - -2011-06-06 Hans-Peter Nilsson - - PR target/49285 - * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate - to nonimmediate_operand from memory_operand for the operand that is to - be forced to memory by the expander. Lose the constraints. - -2011-06-05 Eric Botcazou - - * config/sparc/sparc.c (output_return): Fix thinko in the output of an - EH return when delayed branches are disabled. - -2011-06-05 Uros Bizjak - - * config/i386/i386.md (*movdf_internal_rex64) : - Remove MODE_TI handling. Remove SSE1 handling in attribute "mode" - calculation. - (*movdf_internal_rex64) : Remove MODE_TI handling. - Simplify MODE_V1DF and MODE_V2SF handling. - (*movsf_internal): Remove x constraint from alternative 7 of operand 1. - Simplify MODE_SF handling. - -2011-06-04 Jan Hubicka - - PR tree-optimization/48893 - PR tree-optimization/49091 - PR tree-optimization/49179 - * ipa-inline-analysis.c (evaluate_conditions_for_known_args): - Bounds check. - -2011-06-04 Jan Hubicka - - PR lto/48954 - * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args - bitmaps. - -2011-06-04 Jonathan Wakely - - * doc/invoke.texi: Document -Wdelete-non-virtual-dtor. - -2011-06-04 Jakub Jelinek - - PR target/49281 - * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3]) - to be strictly smaller than 1 << shiftcount. - -2011-06-04 Jan Hubicka - - PR tree-optimize/48929 - * ipa-inline-analysis.c (remap_edge_predicates): Fix handling - of empty predicate. - -2011-06-04 Alexandre Oliva - - PR debug/48333 - * calls.c (emit_call_1): Prefer the __builtin declaration of - builtin functions. - -2011-06-03 Diego Novillo - - * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts. - (lto_input_tree_pointers): Likewise. - * lto-streamer-out.c (pack_value_fields): Likewise. - (lto_output_tree_pointers): Likewise. - * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE - and OPTIMIZATION_NODE. - -2011-06-03 Rainer Orth - - * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove. - * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove. - * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove. - * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove. - * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove. - * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove. - * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove. - * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove. - * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove. - * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove. - * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove. - * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove. - * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove. - * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove. - * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove. - * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha. - * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha. - * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha. - * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin. - * config/i386/linux-unwind.h: Move to ../libgcc/config/i386. - * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386. - * config/i386/w32-unwind.h: Move to ../libgcc/config/i386. - * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64. - * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64. - * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k. - * config/mips/linux-unwind.h: Move to ../libgcc/config/mips. - * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa. - * config/pa/linux-unwind.h: Move to ../libgcc/config/pa. - * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000. - * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000. - * config/s390/linux-unwind.h: Move to ../libgcc/config/s390. - * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390. - * config/sh/linux-unwind.h: Move to ../libgcc/config/sh. - * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc. - * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc. - * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa. - * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove. - * system.h (MD_UNWIND_SUPPORT): Poison. - * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove. - * doc/tm.texi: Regenerate. - * unwind-dw2.c: Include md-unwind-support.h instead of - MD_UNWIND_SUPPORT. - * config/ia64/unwind-ia64.c: Likewise. - * config/xtensa/unwind-dw2-xtensa.c: Likewise. - -2011-06-03 Jack Howarth - - * varpool.c (varpool_extra_name_alias): Return NULL, not false. - -2011-06-03 Richard Henderson - Rainer Orth - - * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__] - (sigill_hdlr): Correct insn, insn size. - (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps. - -2011-06-03 Rainer Orth - - * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6 - t-slibgcc-dummy. - * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S. - * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S. - * config/mips/t-iris: Remove. - * config/mips/t-irix6: New file. - * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips. - -2011-06-03 Rainer Orth - - * Makefile.in (LIB2ADDEHDEP): Remove. - * config/arm/t-bpabi (LIB2ADDEHDEP): Remove. - * config/arm/t-symbian (LIB2ADDEHDEP): Remove. - * config/picochip/t-picochip (LIB2ADDEHDEP): Remove. - * config/t-darwin (LIB2ADDEHDEP): Remove. - * config/t-freebsd (LIB2ADDEHDEP): Remove. - * config/t-linux (LIB2ADDEHDEP): Remove. - -2011-06-03 Diego Novillo - - * lto-streamer-in.c (get_resolution): Move to lto/lto.c. - (lto_register_var_decl_in_symtab): Likewise. - (lto_register_function_decl_in_symtab): Likewise. - (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration - logic to uniquify_nodes. - -2011-06-03 Rainer Orth - - * config/alpha/t-osf5: Remove. - * config/alpha/t-osf-pthread: Remove. - * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy. - * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file. - -2011-06-03 Julian Brown - - * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100) - (strongarm1110): Use strongarm tuning. - * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field. - * config/arm/arm.c (arm_strongarm_tune): New. - (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) - (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune) - (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field - setting, using previous defaults or 1 for Cortex-A5. - (arm_option_override): Set max_insns_skipped from current tuning. - -2011-06-03 Nathan Sidwell - - * doc/install.texi (Options specification): Document --with-specs. - -2011-06-02 Ramana Radhakrishnan - - * config/arm/neon.md (orndi3_neon): Actually split it. - -2011-06-02 Alexandre Oliva - - * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10. - * var-tracking.c (reverse_op): Limite recurse depth to 5. - -2011-06-02 Alexandre Oliva - - PR debug/47590 - * target.def (delay_sched2, delay_vartrack): New. - * doc/tm.texi.in: Update. - * doc/tm.texi: Rebuild. - * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2. - * var-tracking.c (gate_handle_var_tracking): Likewise. - * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop. - (bfin_flag_var_tracking): Drop. - (output_file_start): Don't save and override flag_var_tracking. - (bfin_option_override): Ditto flag_schedule_insns_after_reload. - (bfin_reorg): Test original variables. - (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. - * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop. - (ia64_flag_var_tracking): Drop. - (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. - (ia64_file_start): Don't save and override flag_var_tracking. - (ia64_override_options_after_change): Ditto - flag_schedule_insns_after_reload. - (ia64_reorg): Test original variables. - * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop. - (picochip_flag_var_tracking): Drop. - (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. - (picochip_option_override): Don't save and override - flag_schedule_insns_after_reload. - (picochip_asm_file_start): Ditto flag_var_tracking. - (picochip_reorg): Test original variables. - * config/spu/spu.c (spu_flag_var_tracking): Drop. - (TARGET_DELAY_VARTRACK): Define. - (spu_var_tracking): New. - (spu_machine_dependent_reorg): Call it. - (asm_file_start): Don't save and override flag_var_tracking. - -2011-06-02 Kaz Kojima - - PR target/49163 - * config/sh/predicates.md (general_movsrc_operand): Return 0 - for memory and memory subreg of which address is an invalid - indexed address for QI and HImode. - (general_movdst_operand): Likewise. - -2011-06-02 Eric Botcazou - - * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL - edges only, when there is a non-local label in the function. - * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise. - -2011-06-02 Uros Bizjak - - * config/i386/constraints.md (Y3): New register constraint. - * config/i386/sse.md (*vec_interleave_highv2df): Merge with - *sse3_interleave_highv2df and *sse2_interleave_highv2df. - (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and - *sse2_interleave_lowv2df. - -2011-06-02 Julian Brown - - * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning. - * config/arm/arm.c (arm_cortex_a5_branch_cost): New. - (arm_cortex_a5_tune): New. - -2011-06-02 Julian Brown - - * config/arm/arm-protos.h (tune_params): Add branch_cost hook. - * config/arm/arm.c (arm_default_branch_cost): New. - (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) - (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune) - (arm_fa726_tune): Set branch_cost field using - arm_default_branch_cost. - * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from - current_tune structure. - * dojump.c (tm_p.h): Include file. - -2011-06-02 Julian Brown - - * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2 - tuning. - (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4) - (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning. - * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool - field. - * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune) - (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune) - (arm_fa726te_tune): Add prefer_constant_pool setting. - (arm_v6t2_tune, arm_cortex_tune): New. - * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on - prefer_constant_pool setting. - -2011-06-02 Uros Bizjak - - * config/i386/i386.c (standard_sse_constant_p) : Simplify - switch statement. - * config/i386/i386.md (*movdf_internal_rex64) : Ditto. - (*movdf_internal) : Ditto. - - * config/i386/constraints.md (Y4): New register constraint. - * config/i386/sse.md (vec_set_0): Merge with - *vec_set_0_sse4_1 and *vec_set_0_sse2. - (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and - *vec_extractv2di_1_sse. - (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1 - and *vec_concatv2di_rex64_sse. - -2011-06-02 Stuart Henderson - - PR target/48807 - * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value - of cgraph_local_info for null before attempting to use it. - -2011-06-02 Eric Botcazou - - * function.h (struct stack_usage): Remove dynamic_alloc_count field. - (current_function_dynamic_alloc_count): Delete. - * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp. - (expand_builtin_nonlocal_goto): Remove obsolete comment. - (expand_builtin_update_setjmp_buf): Remove dead code. - * cse.c (cse_find_path): Do not follow a single abnormal incoming edge. - * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA - support. - * function.c (instantiate_virtual_regs): Likewise. - * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false - for a block with a single abnormal incoming edge. - * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define. - (SETJMP_VIA_SAVE_AREA): Delete. - * config/sparc/sparc-protos.h (load_got_register): Declare. - * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. - (load_got_register): Make global. - (sparc_frame_pointer_required): Add 'static'. - (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required. - (sparc_builtin_setjmp_frame_value): New function. - * config/sparc/sparc.md (UNSPECV_SETJMP): Remove. - (save_stack_nonlocal): New expander. - (restore_stack_nonlocal): Likewise. - (nonlocal_goto): Remove modes, adjust predicates and reimplement. - (nonlocal_goto_internal): New insn. - (goto_handler_and_restore): Delete. - (builtin_setjmp_setup): Likewise. - (do_builtin_setjmp_setup): Likewise. - (setjmp): Likewise. - (builtin_setjmp_receiver): New expander. - -2011-06-01 David Li - - PR middle-end/49261 - * tree-pretty-print.c (dump_function_header): Format cleanup. - -2011-06-01 Kaz Kojima - - PR target/49238 - * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if - needed when original operands are used for msw_skip comparison. - -2011-06-01 Jakub Jelinek - - PR debug/49250 - * var-tracking.c (add_uses, add_stores): Don't call - cselib_subst_to_values on ENTRY_VALUE. - -2011-06-01 Diego Novillo - - * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call - output_record_start with LTO_null instead of output_zero. - (lto_output_ts_binfo_tree_pointers): Likewise. - (lto_output_tree): Likewise. - (output_eh_try_list): Likewise. - (output_eh_region): Likewise. - (output_eh_lp): Likewise. - (output_eh_regions): Likewise. - (output_bb): Likewise. - (output_function): Likewise. - (output_unreferenced_globals): Likewise. - * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES - instead of NUM_TREE_CODES. - (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES. - (lto_output_int_in_range): Change << to >> when shifting VAL. - -2011-06-01 Diego Novillo - - * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers): - Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes. - -2011-06-01 Richard Sandiford - - PR target/45074 - * optabs.h (valid_multiword_target_p): Declare. - * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when - doing multi-word operations. - * optabs.c (expand_binop): Likewise. - (expand_doubleword_bswap): Likewise. - (expand_absneg_bit): Likewise. - (expand_unop): Likewise. - (expand_copysign_bit): Likewise. - (multiword_target_p): New function. - -2011-06-01 Richard Sandiford - - PR rtl-optimization/48830 - PR rtl-optimization/48808 - PR rtl-optimization/48792 - * reload.c (push_reload): Check contains_reg_of_mode. - * reload1.c (strip_paradoxical_subreg): New function. - (gen_reload_chain_without_interm_reg_p): Use it to handle - paradoxical subregs. - (emit_output_reload_insns, gen_reload): Likewise. - -2011-06-01 David Li - - * predict.c : Change pass name - * ipa.c: Ditto. - * dce.c: Ditto. - * tree-profile.c: Ditto. - * except.c: Ditto. - -2011-06-01 David Li - - * tree-pretty-print.c (dump_function_header): New function. - * final.c (rest_of_clean_state): Use header dumper. - * tree-cfg.c (gimple_dump_cfg): Use header dumper. - * passes.c (pass_init_dump_file): Use header dumper. - -2011-06-01 Jakub Jelinek - - * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor, - ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor, - popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor): - New functions. - (mem_loc_descriptor): Use them. - - * var-tracking.c (create_entry_value): New function. - (vt_add_function_parameter): Use it. - -2011-06-01 Rainer Orth - - * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]: - Include , . - (sigill_caught): Define. - (sigill_hdlr): New function. - (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE - insns can be executed. - * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc. - * config/sparc/sol2.h (ENDFILE_SPEC): Remove. - -2011-06-01 Rainer Orth - - * config/t-slibgcc-darwin: Move to ... - * config/t-slibgcc-dummy: ... this. Clarify comments. - * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*, - powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this. - (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file. - (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems. - Remove i386/t-crtstuff from tmake_file. - (i[34567]86-*-solaris2*): Remove t-svr4, - t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add - t-slibgcc-dummy. - (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts. - (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin, - sparc/t-crtfm from tmake_file. - (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm, - t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy. - Remove extra_parts. - * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define. - * config/i386/t-nwld (SHLIB_LINK): Remove. - * config/i386/t-rtems-i386: Rename to ... - * config/i386/t-rtems: ... this. - ($(T)crti.o, $(T)crtn.o): Remove. - (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove. - (dp-bit.c, fp-bit.c, xp-bit.c): Remove. - (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove. - * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC, - EXTRA_MULTILIB_PARTS): Remove. - * config/sparc/t-sol2-64: Likewise. - * config/sparc/t-sol2: Remove. - * config/sparc/t-crtin: Remove. - * config/sparc/gmon-sol2.c: Move to ../libgcc/config. - * config/i386/gmon-sol2.c: Remove. - * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S. - * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S. - * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S. - * config/i386/sol2-gc1.asm: Remove. - * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S. - * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S. - * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S. - * config/t-slibgcc-sld: Remove. - -2011-06-01 Jakub Jelinek - - * dwarf2out.c (mem_loc_descriptor) : Call - base_type_for_mode with op_mode instead of mode. - -2011-06-01 Paul Brook - - * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to - Cortex-A15. - * config/arm/arm-tune.md: Regenerate. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm.c (FL_DIV): Rename... - (FL_THUMB_DIV): ... to this. - (FL_ARM_DIV): Define. - (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV. - (arm_arch_hwdiv): Remove. - (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables. - (arm_issue_rate): Add cortexr5. - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set - __ARM_ARCH_EXT_IDIV__. - (TARGET_IDIV): Define. - (arm_arch_hwdiv): Remove. - (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes. - * config/arm/arm.md (tune_cortexr4): Add cortexr5. - (divsi3, udivsi3): New patterns. - * config/arm/thumb2.md (divsi3, udivsi3): Remove. - * doc/invoke.texi: Document ARM -mcpu=cortex-r5 - -2011-06-01 Martin Jambor - - * ipa-utils.c (ipa_dfs_info): New field scc_no. - * ipa-utils.c (searchc): Set scc_no. - -2011-06-01 Martin Jambor - - * ipa-utils.c (searchc_env): New field allow_overwritable. - (searchc): do not ignore edges to overwritable nodes if indicated - by env->allow_overwritable. - (ipa_reduced_postorder): Set env.allow_overwritable. - -2011-06-01 Richard Guenther - - * tree.c (free_lang_data): Do not reset boolean_type_node nor - char_type_node. - * lto-streamer.c (lto_record_common_node): Take node pointer, - do not register types. - (lto_preload_common_nodes): Explicitly skip preloading nodes - that differ between frontends. - -2011-05-31 Pat Haugen - - * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from - NON_FLOAT_REGS. - -2011-05-31 Pat Haugen - - * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from - parameter value for dump. Dump cost on outermost call only. - (rs6000_memory_move_cost): Dump cost on outermost call only. - -2011-05-31 Jakub Jelinek - - * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant - DW_OP_GNU_convert ops. - - * cselib.c (promote_debug_loc): Allow l->next non-NULL for - cselib_preserve_constants. - (cselib_lookup_1): If cselib_preserve_constants, - a new VALUE is being created for REG and there is a VALUE for the - same register in wider mode, add another loc with lowpart SUBREG of - the wider VALUE. - (cselib_subst_to_values): Handle ENTRY_VALUE. - * var-tracking.c (replace_expr_with_values): Return NULL for - ENTRY_VALUE too. - * dwarf2out.c (convert_descriptor_to_signed): New function. - (mem_loc_descriptor) : Optimize using DW_OP_and - instead of two shifts. - (mem_loc_descriptor) : ZERO_EXTEND second argument to - the right mode if needed. - (mem_loc_descriptor) : For typed ops just use DW_OP_mod. - (mem_loc_descriptor) : Use - convert_descriptor_to_signed. - (mem_loc_descriptor) : Handle these rtls. - - PR target/48688 - * config/i386/i386.md (*lea_general_4): New define_insn_and_split. - -2011-05-31 Uros Bizjak - - * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead - of X87MODEI12 and SWI48x instead of SSEMODEI24. - (SWI248x): New mode iterator, rename from X87MODEI. - (X87MODEI): Remove mode iterator. - (X87MODEI12): Ditto. - (SSEMODEI24): Ditto. - -2011-05-31 Alexandre Oliva - - * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New. - * doc/invoke.texi: Document max-vartrack-expr-depth. - * var-tracking.c (EXPR_DEPTH): New. - (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it. - -2011-05-31 Alexandre Oliva - - * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA. - * config/i386/sse.md: Add n to negated FMA pattern names. - -2011-05-31 Alexandre Oliva - - * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug. - -2011-05-31 Alexandre Oliva - - * gengtype-state.c (read_state_params_structs): Initialize previous. - -2011-05-31 Uros Bizjak - - * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2. - (FP push_operand splitters): Merge {TF,XF,DF}mode splitters. - -2011-05-31 Uros Bizjak - - * config/i386/i386.md (*movtf_internal): Avoid allocating general - registers. Penalize F*r->o alternative to prevent partial memory - stalls. Slightly penalize *roF->*r alternative. Generate SSE - CONST_DOUBLE immediates when optimizing function for size. Do not move - CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL. - (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative. - (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative. - (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m - alternatives. - (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives. - - (fp_register_operand splitters): Use fp_register_operand - constraint. Do not use FP_REG_P in insn condition. - (any_fp_register_operand splitters): Use any_fp_register_operand - constraint. Do not use ANY_FP_REG_P in insn condition. - -2011-05-31 Jan Hubicka - - * cgraph.h (cgraph_inline_failed_t): Give enum a name - * lto-cgraph.c (LDPR_NUM_KNOWN): New macro. - (LTO_cgraph_tags): Add LTO_cgraph_last_tag. - (lto_output_edge): Use output_enum and var_len_unsigned. - (lto_output_varpool_node): Likewise. - (input_overwrite_node): Do not take resolution parameter; - extract it from a bitpack. - (input_node): Do not read resolution; use input_enum and - var_len_unsigned. - (input_varpool_node): Likewise. - (input_edge): Likewise. - (input_cgraph_1): Likewise. - -2011-05-31 Richard Guenther - - * gimple.c (gimple_register_canonical_type): Do not register - any types via gimple_register_type. - -2011-05-31 Jan Hubicka - - * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl - of thunks. - -2011-05-31 Jakub Jelinek - - PR rtl-optimization/49235 - * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx. - (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST. - -2011-05-31 Ira Rosen - - PR tree-optimization/49093 - * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile - data references. - -2011-05-31 Dodji Seketeli - - PR debug/49047 - * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute - for concrete functions containing the code of cloned functions. - -2011-05-31 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename - to ... - (forward_propagate_into_comparison_1): ... this. - (forward_propagate_comparison): Rename to ... - (forward_propagate_into_comparison): ... this. Split out - real forward propagation code to ... - (forward_propagate_comparison): ... this. - (forward_propagate_into_gimple_cond): Remove looping. - (forward_propagate_into_cond): Likewise. - (simplify_not_neg_expr): Return whether we have done something. - (simplify_gimple_switch): Likewise. - (tree_ssa_forward_propagate_single_use_vars): Rename to ... - (ssa_forward_propagate_and_combine): ... this. Re-structure - to do a forward forward-propagation walk on BBs and a backward - stmt combining walk on BBs. Consistently re-scan changed statements. - (pass_forwprop): Adjust. - -2011-05-30 Ian Lance Taylor - - * godump.c (go_format_type): Correct length of name added to - obstack for anonymous field. - -2011-05-30 Kaz Kojima - - PR target/49186 - * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high - part of the second operand is 0. - -2011-05-30 Uros Bizjak - - * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative - to prevent partial memory stalls. Do not move CONST_DOUBLEs directly - to memory for !TARGET_MEMORY_MISMATCH_STALL. - (*movdf_internal_rex64): Do not penalize F->r alternative. - (*movdf_internal): Penalize FYd*r->o alternative to prevent partial - memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only - when optimizing function for size. Do not move CONST_DOUBLEs - directly to memory for !TARGET_MEMORY_MISMATCH_STALL. - (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle - SUBREGs. Do not check for MEM_P operands in the insn condition, - check for ANY_FP_REGNO_P instead. - * config/i386/constraints.md (Yd): Enable GENERAL_REGS for - TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing - function for speed. - * config/i386/i386.c (ix86_option_override_internal): Do not - set TARGET_INTEGER_DFMODE_MOVES here. - -2011-05-30 H.J. Lu - - PR target/49168 - * config/i386/i386.md (*movtf_internal): Handle misaligned load/store. - -2011-05-30 Jakub Jelinek - - * dwarf2out.c (modified_type_die, gen_reference_type_die): Use - DW_TAG_rvalue_reference_type even for - -gdwarf-4 -fno-debug-types-section. - -2011-05-30 Bill Schmidt - - PR tree-optimization/46728 - * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms. - (build_and_insert_binop): New. - (gimple_expand_builtin_pow): Reorder args for - build_and_insert_call; use build_and_insert_binop; add more - optimizations for fractional exponents. - -2011-05-30 Nathan Froyd - - PR bootstrap/49190 - - Revert: - 2011-05-26 Nathan Froyd - - * tree.h (struct tree_identifier): Inherit from tree_typed, not - tree_common. - (HT_IDENT_TO_GCC_IDENT): Adjust for said change. - * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as - TS_BASE instead of TS_COMMON. - * varasm.c (assemble_name): Remove assert. - -2011-05-30 Richard Sandiford - - * config.gcc: Keep obselete list sorted. - -2011-05-30 Jakub Jelinek - Eric Botcazou - - * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with - crtl->args.internal_arg_pointer based address to arg_pointer_rtx if - there is a DRAP register and arg_pointer_rtx is the CFA pointer. - (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned. - (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register. - -2011-05-30 Richard Guenther - - * gimple.c (gimple_types_compatible_p_1): Compare record - and union type members properly. - -2011-05-30 Richard Guenther - - PR tree-optimization/49210 - * ipa-split.c (split_function): Care for the case where the call - result is not trivially convertible to the result holding variable. - -2011-05-30 Richard Guenther - - PR tree-optimization/49218 - * tree-vrp.c (adjust_range_with_scev): Properly check whether - overflow occured. - -2011-05-30 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_into_comparison): - New function split out from ... - (forward_propagate_into_gimple_cond): ... here. Adjust. - (forward_propagate_into_cond): Likewise. - (forward_propagate_comparison): Also propagate into - comparisons on assignment RHS. Change return value to - behave similar to forward_propagate_into_cond. - (tree_ssa_forward_propagate_single_use_vars): Handle - strict-overflow warnings properly for forward_propagate_comparison. - -2011-05-30 Rainer Orth - - * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support - from plugin linker. - * configure: Regenerate. - -2011-05-30 Ira Rosen - - PR tree-optimization/49199 - * tree-vect-loop.c (vect_is_slp_reduction): Check that the - non-reduction operands are either defined in the loop or by induction. - -2011-05-29 Xinliang David Li - - * opts-global.c (handle_common_deferred_options): Handle new options. - * passes.c (register_one_dump_file): Call register_pass_name. - (execute_one_pass): Check explicit enable/disable flag. - (passr_hash): New function. - (passr_eq): Ditto. - (register_pass_name): Ditto. - (get_pass_by_name): Ditto. - (pass_hash): Ditto. - (pass_eq): Ditto. - (enable_pass): Ditto. - (disable_pass): Ditto. - (is_pass_explicitly_enabled_or_disabled): Ditto. - -2011-05-29 Uros Bizjak - - * config/i386/i386.md (*movoi_internal_avx): Use - standard_sse_constant_opcode for alternative 0. - (*movti_internal_sse): Ditto. - (*movti_internal_rex64): Use standard_sse_constant_opcode for - alternative 2. - (*movdi_internal_rex64): Use standard_sse_constant_opcode for - sselog1 type moves. - (*movsi_internal): Ditto. - (*movdi_internal): Ditto. Add ssecvt type moves. - -2011-05-29 Eric Botcazou - - PR target/48830 - * rtlanal.c (simplify_subreg_regno): Adjust comment. - -2011-05-29 Jakub Jelinek - - PR rtl-optimization/49095 - * config/i386/predicates.md (plusminuslogic_operator): New predicate. - * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0. - -2011-05-29 Richard Sandiford - - PR target/43995 - * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a - recurse_p argument. Only follow register copies if it is set, - and prevent mips_find_pic_call_symbol from recursing. - (mips_find_pic_call_symbol): Add a recurse_p argument. - Pass it to mips_pic_call_symbol_from_set. - (mips_annotate_pic_calls): Update accordingly. - -2011-05-29 Richard Sandiford - - * emit-rtl.c (try_split): Use a loop to search for - NOTE_INSN_CALL_ARG_LOCATIONs. - -2011-05-29 Richard Guenther - - PR tree-optimization/49217 - * ipa-pure-const.c (propagate_pure_const): Fix typos. - -2011-05-28 Jan Hubicka - - * lto-streamer-out.c (hash_string_slot_node): Hash string based on its - length. - (string_slot_free): Remove - (create_output_block): Initialize obstack. - (destroy_output_block): Free obstack. - (lto_string_index): Add PERSISTENT parameter; do not duplicate - the string unless it needs to be added into the hash. - (lto_output_string_with_length): Add persistent attribute; - handle NULL strings. - (lto_output_string): Add PERSISTENT parameter. - (output_string_cst, output_identifier): Simplify. - (lto_output_location_bitpack): Update. - (lto_output_builtin_tree): Update. - * lto-streamer.h (struct output_block): Add obstack. - (lto_output_string, lto_output_string_with_length): Remove - declarations; functions are static now. - -2011-05-28 Jan Hubicka - - * lto-streamer-out.c (pack_ts_fixed_cst_value_fields, - pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields, - pack_ts_function_decl_value_fields, lto_output_builtin_tree, - output_cfg, output_gimple_stmt): Use enum and variable length i/o. - * lto-streamer-in.c (input_cfg, input_gimple_stmt, - unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields, - unpack_ts_decl_with_vis_value_fields, - unpack_ts_type_common_value_fields, unpack_ts_block_value_fields, - lto_get_builtin_tree): Use enum and variable length i/o. - * basic-block.h (profile_status_d): Add PROFILE_LAST. - * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range): - New functions. - (bp_pack_enum, bp_unpack_enum): New macros. - -2011-05-28 Richard Sandiford - - * genrecog.c: Remove redundant forward declarations. - -2011-05-28 Richard Sandiford - - * config.gcc: Deprecate mips*-*-openbsd*. - -2011-05-28 Richard Sandiford - - PR bootstrap/49195 - * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP - for match_op_dup. - -2011-05-27 Andrew Pinski - - PR middle-end/48981 - * gengtype.c (vec_prefix_type): New function. - (note_def_vec): Use vec_prefix_type and change the length - attribute to be based on the prefix. - * vec.c: Include coretypes.h before vec.h. - (struct vec_prefix): Remove. - (vec_gc_p_reserve): Change the offsetof to sizeof. - (vec_gc_p_reserve_exact): Likewise. - (vec_heap_p_reserve): Likewise. - (vec_heap_p_reserve_exact): Likewise. - (vec_stack_o_reserve_1): Copy from +1 instead of from vec. - (vec_stack_p_reserve): Change the offsetof to sizeof. - (vec_stack_p_reserve_exact): Likewise. - * vec.h (struct vec_prefix): New struct definition. - (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields. - (VEC_T_GTY(T,B)): Likewise. - (DEF_VEC_FUNC_P(T)): Use prefix field. - (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise. - (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise. - -2011-05-27 Bill Schmidt - - PR tree-optimization/46728 - * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location. - (powi_as_mults): Add gimple_set_location. - (build_and_insert_call): New. - (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is - 0.5, 0.25, 0.75, 1./3., or 1./6. - -2011-05-27 Alexander Monakov - - * doc/contrib.texi: Update copyright years. - (Contributors): Add Zdenek Sojka. - -2011-05-27 Nathan Froyd - - * c-decl.c (c_push_function_context): Copy the current statement - list stack. - (add_stmt): Check building_stmt_list_p and push_stmt if necessary. - (finish_struct): Call building_stmt_list_p instead of checking - cur_stmt_list. - * c-parser.c (c_parser_postfix_expression): Likewise. - * c-typeck.c (c_end_compound_stmt): Likewise. - * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN. - * tree-iterator.c (stmt_list_cache): Change to a VEC. - (alloc_stmt_list): Adjust for stmt_list_cache's new type. - (free_stmt_list): Likewise. - * tree.h (struct tree_statement_list): Include typed_tree instead - of tree_common. - * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST - as TS_TYPED instead of TS_COMMON. - -2011-05-27 Rainer Orth - Uros Bizjak - - * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt - (HAVE_AS_IX86_TLSGDPTL): Define. - (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt. - (HAVE_AS_IX86_TLSLDMPLT): Define. - * configure: Regenerate. - * config.in: Regenerate. - * config/i386/i386.c (ix86_print_operand): Handle code 'p'. - * config/i386/i386.md (*tls_global_dynamic_32_gnu): If - TARGET_SUN_TLS, use @tlsgdplt or @plt. - (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS. - (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use - @tlsldmplt or @plt. - (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS. - -2011-05-27 Bernd Schmidt - - * sched-int.h (struct _haifa_deps_insn_data): New members cond - and reverse_cond. - (INSN_COND, INSN_REVERSE_COND): New macros. - * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev - once. - (sched_get_condition_with_rev): Cache the results, and look them up - if possible. - (sched_analyze_insn): Destroy INSN_COND of previous insns if they - are clobbered by the current insn. - * target.def (exposed_pipline): New sched data hook. - * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook. - * doc/tm.texi: Regenerate. - -2011-05-27 Bill Schmidt - - PR tree-optimization/49170 - * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for - sincos or cexp. - -2011-05-27 Richard Guenther - - PR middle-end/49189 - * fold-const.c (fold_unary_loc): Do not re-fold folding conversions - of comparisons. - -2011-05-27 Bernd Schmidt - - * haifa-sched.c (sched_scan_info): Remove. - (schedule_block): Call sched_extend_luids rather than sched_init_luids - with NULL args. - (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb): - Remove functions. - (sched_scan): Remove. - (sched_extend_luids): Renamed from luids_extend_insn and no longer - static. All callers changed. - (sched_init_insn_luid): Renamed from luids_init_insn and no longer - static. All callers changed. - (sched_init_luids): Remove all arguments except the first. All - callers changed. Don't use sched_scan. - (haifa_init_h_i_d): Likewise. - (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid - manually rather than using sched_init_luids. Likewise with - extend_h_i_d, init_h_i_d and haifa_init_h_i_d. - * sel-sched.c (sel_region_target_finish): Call sched_extend_luids - rather than sched_init_luids with NULL args. - * sel-sched-ir.c (new_insns): Remove variable. - (sched_scan): New static function, previously in haifa-sched.c. Remove - all arguments but the first two; all callers changed. - (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid - rather than sched_init_luids. - (sel_init_bbs): Remove second argument. All callers changed. - (sel_add_bb): Call sched_extend_luids rather than sched_init_luids - with NULL arguments. - (create_insn_rtx_from_pattern): Likewise. - * sel-sched-ir.h (sel_init_bbs): Adjust declaration. - * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise. - (sched_init_insn_luid, sched_extend_luids): Declare. - (sched_scan_info_def, sched_scan_info, sched_scan): Remove - declarations. - -2011-05-27 Richard Guenther - - PR middle-end/49177 - * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to - A CMP B ? (T) true : (T) false for non-integral types T again. - -2011-05-27 Jan Hubicka - - * lto-streamer-out.c (lto_string_index): break out from...; offset by 1 - so 0 means NULL string. - (lto_output_string_with_length): ... here. - (lto_output_string, output_string_cst, output_identifier): Update - handling of NULL strings. - (lto_output_location_bitpack): New function. - (lto_output_location): Use it. - (lto_output_tree_ref): Use output_record_start. - (pack_ts_type_common_value_fields): Pack aliagn & alias set in var - len values. - * lto-streamer-in.c (string_for_index): Break out from ...; offset - values by 1. - (input_string_internal): ... here; - (input_string_cst, input_identifier, lto_input_string): Update handling - of NULL strings. - (lto_input_location_bitpack): New function - (lto_input_location): Use it. - (unpack_ts_type_common_value_fields): Pack align & alias in var len - values. - * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int, - bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare. - (bp_pack_value): Sanity check the value range. - * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int): - New functions. - * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int): - New functions. - -2011-05-27 Hariharan Sandanagobalane - - * config/picochip/picochip.c (reorder_var_tracking_notes): Drop - call_arg_location instructions down the floor. - -2011-05-26 Vladimir Makarov - - PR rtl-optimization/49154 - * ira.c (setup_pressure_classes): Process class without sublcasses - as a candidate for pressure classes. - -2011-05-26 Richard Sandiford - - PR rtl-optimization/48575 - * genrecog.c (position_type): New enum. - (position): New structure. - (decision): Use position structure instead of a string. - (root_pos, peep2_insn_pos_list): New variables. - (next_position, compare_positions): New functions. - (new_decision): Use position structures instead of strings. - (maybe_both_true): Likewise. - (change_state): Likewise. - (write_tree): Likewise. - (make_insn_sequence): Likewise. - -2011-05-26 Nathan Froyd - - * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as - TS_BASE instead of TS_COMMON. - (find_decls_types_r): Check for TS_TYPED structure before looking at - TREE_TYPE. - * tree.h (struct tree_block): Inherit from tree_base, not tree_common. - Add chain field. - (BLOCK_CHAIN): Use new chain field. - -2011-05-26 Pat Haugen - - * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR - moves expensive on Power7 also. - -2011-05-26 Richard Guenther - - * fold-const.c (fold_unary_loc): Remove bogus code. - -2011-05-26 Nathan Froyd - - * tree.h (struct tree_identifier): Inherit from tree_typed, not - tree_common. - (HT_IDENT_TO_GCC_IDENT): Adjust for said change. - * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as - TS_BASE instead of TS_COMMON. - * varasm.c (assemble_name): Remove assert. - -2011-05-26 Bernd Schmidt - - * Makefile.in (srcdirify): Change order so that libgcc_objdir is - substituted first. - * libgcc-std.ver: Delete file. - -2011-05-26 Richard Guenther - - PR tree-optimization/48702 - * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs - only when we know the base address is within bounds. - * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not - assume the base address of TARGET_MEM_REFs is in bounds. - -2011-05-26 Rainer Orth - - PR target/49099 - * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap - declaration in TARGET_SOLARIS. - -2011-05-26 Hariharan Sandanagobalane - - * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator. - The instruction is then expanded explicitly. - (supported_compare): Callable instruction. - (compare): Likewise. - -2011-05-26 Jakub Jelinek - - PR c++/49165 - * gimplify.c (shortcut_cond_r): Don't special case - COND_EXPRs if they have void type on one of their arms. - -2011-05-26 Bernd Schmidt - - * haifa-sched.c (schedule-block): Reorder the inner scheduling loop - to reduce duplication, and to achieve a slightly more logical order - of operations. - -2011-05-26 Jakub Jelinek - - PR tree-optimization/49161 - * tree-vrp.c (struct case_info): New type. - (compare_case_labels): Sort case_info structs instead of - trees, and not primarily by CASE_LABEL uids but by - label_for_block indexes. - (find_switch_asserts): Put case labels into struct case_info - array instead of TREE_VEC, adjust sorting, compare label_for_block - values instead of CASE_LABELs. - -2011-05-26 Ramana Radhakrishnan - - * config/arm/neon.md ("orn3_neon"): Canonicalize not. - ("orndi3_neon"): Likewise. - ("bic3_neon"): Likewise. - -2011-05-26 Ira Rosen - - PR tree-optimization/49038 - * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): - Ensure at least one epilogue iteration if required by data - accesses with gaps. - * tree-vectorizer.h (struct _loop_vec_info): Add new field - to mark loops that require peeling for gaps. - * tree-vect-loop.c (new_loop_vec_info): Initialize new field. - (vect_get_known_peeling_cost): Take peeling for gaps into - account. - (vect_transform_loop): Generate epilogue if required by data - access with gaps. - * tree-vect-data-refs.c (vect_analyze_group_access): Mark the - loop as requiring an epilogue if there are gaps in the end of - the strided group. - -2011-05-25 Ian Lance Taylor - - * godump.c (go_format_type): Output the first field with a usable - Go type, if any. - -2011-05-25 Ian Lance Taylor - - * godump.c (go_format_type): Check for invalid type names, pointer - target types, and struct field types. - -2011-05-25 Jason Merrill - - * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED. - -2011-05-25 Uros Bizjak - - * config/i386/sse.md (*_maskcmp3_comm): New pattern. - -2011-05-25 H.J. Lu - - * config/i386/i386.md (*movqi_extv_1)): Put back - "register_operand" check in "type" calculation. - (*movqi_extzv_2): Likewise. - -2011-05-25 H.J. Lu - - * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic. - -2011-05-25 Bernd Schmidt - - PR bootstrap/49160 - * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2, - __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, - __divxc3, __divtc3): Wrap definitions in #ifndef. - -2011-05-25 H.J. Lu - - PR target/49142 - * config/i386/i386.md (*movqi_extv_1_rex64): Remove - "register_operand" check and replace q_regs_operand with - QIreg_operand in "type" calculation. - (*movqi_extv_1): Likewise. - (*movqi_extzv_2_rex64): Likewise. - (*movqi_extzv_2): Likewise. - - * config/i386/predicates.md (QIreg_operand): New. - -2011-05-25 Richard Guenther - - * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix - type-based offset disambiguation, streamline MEM_REF and - TARGET_MEM_REF handling. - -2011-05-25 H.J. Lu - - * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE. - (bdesc_special_args): Add pause intrinsic. - - * config/i386/i386.md (UNSPEC_PAUSE): New. - (pause): Likewise. - (*pause): Likewise. - * config/i386/ia32intrin.h (__pause): Likewise. - - * doc/extend.texi (X86 Built-in Functions): Add documentation for - pause intrinsic. - -2011-05-25 Bill Schmidt - - PR tree-optimization/46728 - * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New. - (execute_cse_sincos): Add switch case for BUILT_IN_POW. - -2011-05-25 Nathan Froyd - - * tree.h (struct tree_exp): Inherit from struct tree_typed. - * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED - instead of TS_COMMON. - -2011-05-25 Bernd Schmidt - - * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if - LIBGCC2_GNU_PREFIX is defined. - (__N): New macro. - (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2, - __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3, - __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack, - __clz_tab): Define using __N. - (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if - COMPAT_SIMODE_TRAPPING_ARITHMETIC. - * target.def (libfunc_gnu_prefix): New hook. - * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document. - (TARGET_LIBFUNC_GNU_PREFIX): Add hook. - * doc/tm.texi: Regenerate. - * system.h (LIBGCC2_GNU_PREFIX): Poison. - * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into - account. - (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise. - (init_optabs): Likewise for the bswap libfuncs. - * tree.c (build_common_builtin_nodes): Likewise for complex multiply - and divide. - * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir). - * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise. - * libgcc-std.ver: Remove. - * Makefile.in (srcdirify): Handle $$(libgcc_objdir). - * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for - libgcc-std.ver. - * config/i386/t-linux (SHLIB_MAPFILES): Likewise. - * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise. - * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise. - * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise. - * config/sparc/t-linux (SHLIB_MAPFILES): Likewise. - * config/i386/t-linux (SHLIB_MAPFILES): Likewise. - * config/i386/t-linux (SHLIB_MAPFILES): Likewise. - * config/fixed-bit.h (FIXED_OP): Define differently depending on - LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores. - (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise. - -2011-05-25 Jan Hubicka - - * lto-streamer-out.c (output_record_start): Use lto_output_enum - (lto_output_tree): Use output_record_start. - * lto-streamer-in.c (input_record_start): Use lto_input_enum - (lto_get_pickled_tree): Use input_record_start. - * lto-section-in.c (lto_section_overrun): Turn into fatal error. - (lto_value_range_error): New function. - * lto-streamer.h (lto_value_range_error): Declare. - (lto_output_int_in_range, lto_input_int_in_range): New functions. - (lto_output_enum, lto_input_enum): New macros. - -2011-05-25 Eric Botcazou - - * common.opt (flag_stack_usage_info): New variable. - (-Wstack-usage): New option. - * doc/invoke.texi (Warning options): Document -Wstack-usage. - * opts.c (common_handle_option) : New case. - : Likewise. - * toplev.c (output_stack_usage): Handle -Wstack-usage. - * calls.c (expand_call): Test flag_stack_usage_info variable instead - of flag_stack_usage. - (emit_library_call_value_1): Likewise. - * explow.c (allocate_dynamic_stack_space): Likewise. - * function.c (instantiate_virtual_regs ): Likewise. - (prepare_function_start): Likewise. - (rest_of_handle_thread_prologue_and_epilogue): Likewise. - * config/alpha/alpha.c (alpha_expand_prologue): Likewise. - * config/arm/arm.c (arm_expand_prologue): Likewise. - (thumb1_expand_prologue): Likewise. - * config/avr/avr.c (expand_prologue): Likewise. - * config/i386/i386.c (ix86_expand_prologue): Likewise. - * config/ia64/ia64.c (ia64_expand_prologue): Likewise. - * config/m68k/m68k.c (m68k_expand_prologue): Likewise. - * config/mips/mips.c (mips_expand_prologue): Likewise. - * config/pa/pa.c (hppa_expand_prologue): Likewise. - * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. - * config/s390/s390.c (s390_emit_prologue): Likewise. - * config/sh/sh.c (sh_expand_prologue): Likewise. - * config/sparc/sparc.c (sparc_expand_prologue): Likewise. - * config/spu/spu.c (spu_expand_prologue): Likewise. - -2011-05-25 Richard Guenther - - * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs. - (gimple_canonical_types_compatible_p): Likewise. - -2011-05-25 Jan Hubicka - - PR middle-end/49062 - * ipa.c (function_and_variable_visibility): Only add to same - comdat group list if DECL_ONE_ONLY. - -2011-05-25 Andrey Belevantsev - - PR rtl-optimization/49014 - * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi. - -2011-05-25 Jakub Jelinek - - PR target/49128 - * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. - -2011-05-24 Vladimir Makarov - - PR rtl-optimization/48757 - * ira-build.c (loop_with_eh_edge_p): Rename to - loop_with_complex_edge_p, check edges on complexity, make function - conditional. - (mark_loops_for_removal): Make call of loop_with_complex_edge_p - conditional. - -2011-05-24 Eric Botcazou - - * config/sparc/sparc.c (sparc_option_override): If not set by the user, - force flag_ira_share_save_slots to 0. - -2011-05-24 Eric Botcazou - - * var-tracking.c (compute_cfa_pointer): Adjust head comment. - (vt_initialize): Set PROLOGUE_BB unconditionally. - Add block comment about CFA_BASE_RTX machinery. - Reset FP_CFA_OFFSET to -1 on all invalid paths. - Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1. - -2011-05-24 Nicola Pero - - PR objc/48187 - * c-parser.c (c_parser_objc_class_instance_variables): More robust - parsing of syntax error in ObjC instance variable lists. In - particular, avoid an infinite loop if there is a stray ']'. - Updated error message. - -2011-05-24 Ian Lance Taylor - - * godump.c (go_define): Don't accept a string immediately after - another operand. - -2011-05-24 Ian Lance Taylor - - * godump.c (struct godump_container): Add invalid_hash field. - (go_format_type): Return false if type is found in invalid_hash. - (go_output_typedef): Add invalid type to invalid_hash. - (go_finish): Create and delete invalid_hash. - -2011-05-24 Bill Schmidt - - PR tree-optimization/46728 - * tree-ssa-math-opts.c (powi_table): New. - (powi_lookup_cost): New. - (powi_cost): New. - (powi_as_mults_1): New. - (powi_as_mults): New. - (gimple_expand_builtin_powi): New. - (execute_cse_sincos): Add switch case for BUILT_IN_POWI. - (gate_cse_sincos): Remove sincos/cexp restriction. - -2011-05-24 Rainer Orth - - PR target/3746 - * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile, - mips-tdump native. - * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling. - * mips-tdump.c: Likewise. - -2011-05-24 H.J. Lu - - PR target/49128 - * config/i386/driver-i386.c (host_detect_local_cpu): Always - add -mno-XXX. Handle FMA. - -2011-05-24 Vladimir Makarov - - PR rtl-optimization/48633 - * ira-build.c (loop_with_eh_edge_p): New function. - (mark_loops_for_removal): Use it. - -2011-05-24 Vladimir Makarov - - PR rtl-optimization/48971 - * ira.c (setup_pressure_classes): Don't check register move cost - for classes with one registers. Don't add pressure class if there - is a pressure class with the same available hard registers. - Check contains_reg_of_mode. Fix a typo in collecting - temp_hard_regset. Ignore hard registers not belonging to a class. - -2011-05-24 Uros Bizjak - - PR target/49133 - * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative. - -2011-05-24 Eric Botcazou - Rainer Orth - - PR gcov-profile/48845 - * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling. - -2011-05-24 Richard Guenther - - * gimple.c (compare_type_names_p): Remove for_completion_p arg. - (gimple_compatible_complete_and_incomplete_subtype_p): Remove. - (gimple_types_compatible_p_1): Adjust. - (iterative_hash_canonical_type): Do not bother about complete vs. - incomplete types. - (gimple_canonical_types_compatible_p): Likewise. - -2011-05-24 Rainer Orth - - * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove. - -2011-05-24 Richard Guenther - - PR bootstrap/49078 - * gimple.c (gimple_register_canonical_type): Revert - previous change. - * alias.c (get_alias_set): Only assert that TYPE_CANONICAL - does not for a tree for the case where it matters. Cache - pointer-type alias-sets. - -2011-05-24 Joseph Myers - - * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o. - (OBJS): Remove options.o, opts-common.o and prefix.o. - (OBJS-libcommon-target): New. - (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target). - (BACKEND): Include libcommon-target.a. - (MOSTLYCLEANFILES): Include libcommon-target.a. - (libcommon-target.a): New. - (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of - prefix.o. - -2011-05-23 Joseph Myers - - * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate - parts of output shared with the driver. - * optc-gen.awk: Don't generate parts of output not shared with the - driver. - * opth-gen.awk: Remove GCC_DRIVER conditionals. - * doc/options.texi (SourcerInclude): Mention options-save.c. - * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o. - (OBJS): Add options-save.o. - (options-save.c, options-save.o): New. - (options.o): Update dependencies. - (gcc-options.o): Remove. - (mostlyclean): Remove options-save.c. - -2011-05-23 Jakub Jelinek - - PR debug/49032 - * dbxout.c: Include cgraph.h. - (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written - and without value expr, return NULL if no varpool node exists for - it or if it is not needed. - * Makefile.in (dbxout.o): Depend on $(CGRAPH_H). - - PR c/49120 - * c-decl.c (start_decl): Convert expr to void_type_node. - -2011-05-23 Richard Sandiford - - PR rtl-optimization/48826 - * emit-rtl.c (try_split): When splitting a call that is followed - by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call. - -2011-05-23 Jakub Jelinek - - * cfgexpand.c (expand_debug_expr): For unused non-addressable - parameters passed in memory prefer using DECL_INCOMING_RTL over - the pseudos it will be copied into. - -2011-05-23 H.J. Lu - - PR target/47315 - * config/i386/i386.c (ix86_option_override_internal): Save the - initial options after checking vzeroupper. - -2011-05-23 David Li - - PR tree-optimization/48988 - * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): - Initialize has_valid_pred for each pred chain. - -2011-05-23 Richard Guenther - - * gimple.c (gimple_types_compatible_p_1): Always compare type names. - (iterative_hash_gimple_type): Always hash type names. - -2011-05-23 Nathan Froyd - - * c-typeck.c (build_function_call_vec): Tweak call to - check_function_arguments. - -2011-05-23 Richard Guenther - - PR tree-optimization/49115 - * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment - is not necessarily carried out, do not claim it kills the ref. - * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. - -2011-05-23 Richard Guenther - - PR middle-end/15419 - * builtins.c (fold_builtin_memory_op): Be less restrictive about - what pointer types we accept for folding. - -2011-05-23 Rainer Orth - - * gthr-gnat.c: Remove. - * gthr-gnat.h: Remove. - * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c. - * config/t-freebsd (LIB2ADDEH): Likewise. - * config/t-linux (LIB2ADDEH): Likewise. - * config/t-sol2 (LIB2ADDEH): Likewise. - * config/ia64/t-vms (LIB2ADDEH): Likewise. - * configure.ac (target_thread_file): Remove gnat handling. - * configure: Regenerate. - * doc/install.texi (Configuration, --enable-threads): Remove gnat. - -2011-05-23 Tristan Gingold - Eric Botcazou - - * gcov.c (create_file_names): If no object directory is specified, - keep the directory of the file. - -2011-05-23 Rainer Orth - - * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list. - * configure: Regenerate. - -2011-05-23 Jakub Jelinek - - PR middle-end/48973 - * expr.c (expand_expr_real_2) : If do_store_flag - failed and the comparison has a single bit signed type, use - constm1_rtx instead of const1_rtx for true value. - (do_store_flag): If ops->type is single bit signed type, disable - signel bit test optimization and pass -1 instead of 1 as last - parameter to emit_store_flag_force. - -2011-05-23 Tom de Vries - - PR target/45098 - * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New - function. - (infer_loop_bounds_from_undefined): Use new function. - -2011-05-22 Richard Sandiford - - * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete. - (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt, - -O1 for -fno-delayed-branch, -O2 if optimization is enabled, - and -O0 otherwise. - (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec. - -2011-05-22 Eric Botcazou - - * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK. - (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges - returns true. - -2011-05-22 Richard Sandiford - - * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT. - -2011-05-22 Eric Botcazou - - * config/sparc/sparc.c (sparc_delegitimize_address): Handle - UNSPEC_MOVE_PIC pattern. - -2011-05-22 Eric Botcazou - - * config.gcc (sparc-*-elf*): Add sparc/t-crtin. - (sparc-*-rtems*): Likewise. - (sparc64-*-elf*): Likewise. - (sparc64-*-rtems*): Likewise. - (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts. - * config/sparc/t-crtin: New file. - * config/sparc/t-sol2 (crti.o): Delete rule. - (crtn.o): Likewise. - * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete. - * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise. - * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o. - (ENDFILE_SPEC): Add crtn.o. - -2011-05-22 Tom de Vries - - PR middle-end/48689 - * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with - CODE_CONTAINS_STRUCT (TS_COMMON). - -2011-05-22 Jakub Jelinek - - PR middle-end/49029 - * expmed.c (extract_fixed_bit_field): Test whether target can be used - only after deciding which mode to use. - -2011-05-22 Tom de Vries - - PR target/45098 - * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test - for call to get_shiftadd_cost. - -2011-05-22 Uros Bizjak - - PR target/49104 - * config/i386/cpuid.h (bit_MMXEXT): New define. - -2011-05-22 Nick Clifton - - * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent - initialisation of non-existant args[2] element. Use args[] array - not arg[] array to pass arguments to build_function_type_list. - -2011-05-22 Ira Rosen - - PR tree-optimization/49087 - * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses. - -2011-05-21 Jason Merrill - - PR c++/49092 - * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for - static storage duration. - -2011-05-21 Eric Botcazou - - * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard - frame pointer. - -2011-05-21 Eric Botcazou - - * config/sparc/sparc.c (eligible_for_return_delay): Do not return - false if there are call-saved registers here... - (sparc_can_use_return_insn_p): ...but here instead. - (save_or_restore_regs): Fix thinko. - (sparc_expand_prologue): Use current_function_is_leaf. - (sparc_frame_pointer_required): Likewise. - -2011-05-21 Nick Clifton - - PR target/49098 - * config/rx/rx.c (rx_memory_move_cost): Note unused parameters. - -2011-05-21 Nicola Pero - - * gengtype.c (walk_type): Implemented "atomic" GTY option. - * doc/gty.texi (GTY Options): Document "atomic" GTY option. - -2011-05-21 Joseph Myers - - * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk. - * optc-gen.awk: Move common code to opt-read.awk. - * opth-gen.awk: Likewise. - * Makefile.in (options.c, s-options-h): Update to use opt-read.awk. - -2011-05-20 Nathan Froyd - - * godump.c (go_format_type): Don't use TYPE_ARG_TYPES. - -2011-05-20 Tom de Vries - - PR target/45098 - * tree-ssa-loop-ivopts.c: Include expmed.h. - (get_shiftadd_cost): New function. - (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost. - -2011-05-20 Jakub Jelinek - - PR bootstrap/49086 - * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL - for PHI args that are SSA_NAME_IS_DEFAULT_DEF. - -2011-05-20 Joseph Myers - - * Makefile.in: Update comment referring to $(OBJS-common). - -2011-05-20 Ian Lance Taylor - - * godump.c (go_output_typedef): Put enum constants in the macro - hash table to avoid duplicate Go const definitions. - -2011-05-20 Joseph Myers - - * Makefile.in (LIBDEPS): Add libcommon.a. - (LIBS): Likewise. - (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o. - (OBJS-common): Remove diagnostic.o, input.o, intl.o, - pretty-print.o and version.o. - (OBJS-libcommon): New. - (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon). - (BACKEND): Add libcommon.a. - (MOSTLYCLEANFILES): Likewise. - (libcommon.a): New. - (xgcc$(exeext)): Don't explicitly use version.o and intl.o. - (cpp$(exeext)): Likewise. - (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o, - pretty-print.o and input.o. - (lto-wrapper$(exeext)): Don't explicitly use intl.o. - (lto-wrapper.o): Depend on $(DIAGNOSTIC_H). - (errors.o): Remove. - (mips-tfile): Don't explicitly use version.o. - (mips-tdump): Likewise. - (gcov.o): Depend on $(DIAGNOSTIC_H). - (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H). - (GCOV_OBJS): Remove intl.o, version.o and errors.o. - (GCOV_DUMP_OBJS): Remove version.o and errors.o. - * gcov-dump.c: Include intl.h and diagnostic.h. - (main): Initialize diagnostics. - * gcov.c: Include diagnostic.h. - (fnotice): Remove. - (main): Initialize diagnostics. - * lto-wrapper.c: Include diagnostic.h. - (main): Initialize diagnostics. - -2011-05-20 Michael Matz - - * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS. - -2011-05-20 Michael Matz - Richard Guenther - - * lto-streamer.c (lto_record_common_node): Don't track seen nodes, - use lto_streamer_cache_append directly instead of returning a VEC. - (preload_common_node): Remove. - (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't - track seen nodes. - (lto_streamer_cache_create): Call lto_preload_common_nodes. - -2011-05-20 Richard Guenther - - PR tree-optimization/49079 - * tree-dfa.c (get_ref_base_and_extent): Handle view-converting - MEM_REFs correctly for the trailing array access detection. - Special case constants the same way as decls for overall size - constraining. - -2011-05-20 Uros Bizjak - - * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro - argument expansion. - -2011-05-20 Jakub Jelinek - - PR tree-optimization/49073 - * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if - PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI. - * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators. - -2011-05-20 Richard Guenther - - PR middle-end/48849 - * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL - of pointer types the same way the middle-end does. - -2011-05-20 Richard Guenther - - * gimple.c (gimple_register_type_1): Do not fiddle with main-variant - or pointer-to chains. Delay all fixup to uniquify_nodes. - -2011-05-19 Quentin Neill - - * config/i386/sse.md (fma4_fmsubadd): Use . - (fma4_fmaddsub): Likewise - -2011-05-19 Jan Hubicka - - * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove. - (GIMPLE_TYPE_PAIR_SIZE): New macro. - (type_pair_cache): New static var. - (lookup_type_pair): Use fixed sized custom hash; make inline. - (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update - calls of lookup_type_pair. - (print_gimple_types_stats): Remove cache stats. - (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited - and gtc_ob. - -2011-05-19 Uros Bizjak - - * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE - when TARGET_RDRND is active. - (ix86_expand_builtin) : - Generate dummy SImode target register when target is NULL. - -2011-05-19 Joseph Myers - - * config/arm/arm-fpus.def: New. - * config/arm/genopt.sh: Generate Enum and EnumValue entries from - arm-fpus.def. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def. - (arm_option_override): Don't decode FPU name to string here. - * config/arm/arm.opt (mfpu=): Use Enum. - * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o): - Update dependencies. - -2011-05-19 Joseph Myers - - * collect2.c: Include diagnostic.h. - (fatal_perror, fatal, error, fancy_abort): Remove. - (main): Set progname. Call xmalloc_set_program_name and - diagnostic_initialize. - (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file, - scan_libraries, resolve_lib_name): Call fatal_error instead of - fatal and fatal_perror. - * collect2.h (error, fatal, fatal_perror): Don't declare. - * tlink.c: Include diagnostic-core.h. - (recompile_files): Call fatal_error instead of fatal_perror. - * Makefile.in (COLLECT2_OBJS): Include diagnostic.o, - pretty-print.o and input.o. - (collect2.o, tlink.o): Update dependencies. - -2011-05-19 Rainer Orth - - * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon. - -2011-05-19 Rainer Orth - - PR target/40483 - * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as - COMDAT group syntax, both SPARC and x86 variants. - (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group. - * configure: Regenerate. - * config/sol2.h (TARGET_SOLARIS): Define. - (PUSHSECTION_FORMAT): Remove. - (SECTION_NAME_FORMAT): Define. - * config/sol2.c: Include hashtab.h. - (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its - expansion, using SECTION_NAME_FORMAT. - (solaris_comdat_htab): New variable. - (struct comdat_entry): Define. - (comdat_hash): New function. - (comdat_eq): New function. - (solaris_elf_asm_comdat_section): New function. - (solaris_define_comdat_signature): New function. - (solaris_code_end): New function. - * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare. - (solaris_code_end): Declare. - * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency. - * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call - solaris_code_end. - (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS. - Remove ATTRIBUTE_UNUSED. - [!USE_GAS]: Call solaris_elf_asm_comdat_section for - SECTION_LINKONCE sections if HAVE_COMDAT_GROUP. - * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise. - * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ... - * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here. - * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine. - (PUSHSECTION_FORMAT): Remove. - (SECTION_NAME_FORMAT): Redefine. - -2011-05-19 Kai Tietz - - * tree-cfg.c (verify_gimple_assign_binary): Barf on - TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR. - (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form. - -2011-05-19 Anatoly Sokolov - Rainer Orth - - * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency. - -2011-05-19 Richard Guenther - - PR middle-end/48985 - * tree-object-size.c (addr_object_size): If the pointed-to - variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT. - -2011-05-19 Richard Guenther - - * gimple.c (gimple_types_compatible_p_1): Compare names of - the types themselves. - (iterative_hash_gimple_type): And hash them that way. - (gimple_register_type_1): If we register a main variant properly - initialize the leader to ourselves. - -2011-05-19 Tom de Vries - - PR target/45098 - * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of - get_loop_invariant_expr_id. - (get_loop_invariant_expr_id): Use get_expr_id. - (parm_decl_cost): New function. - (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost. - Improve bound cost estimation. Use different inv_expr_id for elim and - express cases. - -2011-05-19 Tom de Vries - - PR target/45098 - * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent - cost_base.cost == 0. - -2011-05-18 H.J. Lu - - PR target/49002 - * config/i386/sse.md - (avx__): Properly handle - load cast. - -2011-05-18 Jakub Jelinek - - PR tree-optimization/49039 - * tree-vrp.c (extract_range_from_binary_expr): For - MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]> - return ~[MAX_EXPR , MIN_EXPR ]. - -2011-05-18 Tom de Vries - - PR target/45098 - * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0. - -2011-05-18 Uros Bizjak - - * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template. - (*tls_global_dynamic_64): Ditto. - (*tls_local_dynamic_base_32_gnu): Ditto. - (*tls_local_dynamic_base_64): Ditto. - (tls_initial_exec_64_sun): Ditto. - -2011-05-18 Stuart Henderson - - * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592. - * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for - bf592-none. - * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. - * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. - * config/bfin/bfin.c (bfin_cpus): Add bf592. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define - __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592. - * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592. - * config/bfin/elf.h (LIB_SPEC): Add bf592. - -2011-05-18 Joseph Myers - - * config/arm/arm-opts.h (enum arm_fp16_format_type, enum - arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h. - * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi, - target_thread_pointer, arm_structure_size_boundary, struct - float_abi, all_float_abis, struct fp16_format, all_fp16_formats, - struct abi_name, arm_all_abis): Remove. - (arm_option_override) Don't process most enumerated option values here. - Don't process target_fpe_name here. Work with integer not string for - structure size boundary; use separate diagnostics for each case. - * config/arm/arm.h (enum float_abi_type, enum - arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move - to arm-opts.h. - (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer, - arm_structure_size_boundary): Remove. - * config/arm/arm.opt (mabi=): Use Enum and Init. - (arm_abi_type): New Enum and EnumValue entries. - (mfloat-abi=): Use Enum and Init. - (float_abi_type): New Enum and EnumValue entries. - (mfp=, mfpe=): Replace by separate Alias entries for each argument. - (mfp16-format=): Use Enum and Init. - (arm_fp16_format_type): New Enum and EnumValue entries. - (mstructure-size-boundary=): Use UInteger and Init. - (mtp=): Use Enum and Init. - (arm_tp_type): New Enum and EnumValue entries. - -2011-05-18 Richard Guenther - - PR tree-optimization/49018 - * gimple.c (gimple_has_side_effects): Volatile asms have side-effects. - * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use - gimple_has_side_effects. - -2011-05-18 Richard Guenther - - * gimple.c (gimple_register_type_1): New function, split out from ... - (gimple_register_type): ... here. Avoid infinite recursion. - -2011-05-18 Ira Rosen - - PR tree-optimization/41881 - * tree-vectorizer.h (struct _loop_vec_info): Add new field - reduction_chains along with a macro for its access. - * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains. - (destroy_loop_vec_info): Free reduction chains. - (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false. - (vect_is_slp_reduction): New function. - (vect_is_simple_reduction_1): Call vect_is_slp_reduction. - (vect_create_epilog_for_reduction): Support SLP reduction chains. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different - definition types for reduction chains. - (vect_supported_load_permutation_p): Don't allow permutations for - reduction chains. - (vect_analyze_slp_instance): Support reduction chains. - (vect_analyze_slp): Try to build SLP instance from reduction chains. - (vect_get_constant_vectors): Handle reduction chains. - (vect_schedule_slp_instance): Mark the first statement of the - reduction chain as reduction. - -2011-05-18 Ira Rosen - - * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new - names for group elements access. - * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for - reduction chains as well. Remove data reference and interleaving - related words from the fields names. - * tree-vect-loop.c (vect_transform_loop): Use new names for group - elements access. - * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain, - vect_insert_into_interleaving_chain, vect_update_interleaving_chain, - vect_update_interleaving_chain, vect_same_range_drs, - vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel, - vect_verify_datarefs_alignment, vector_alignment_reachable_p, - vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment, - vect_analyze_group_access, vect_analyze_data_ref_access, - vect_create_data_ref_ptr, vect_transform_strided_load, - vect_record_strided_load_vectors): Likewise. - * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost, - vect_model_load_cost, vectorizable_store, vectorizable_load, - vect_remove_stores, new_stmt_vec_info): Likewise. - * tree-vect-slp.c (vect_build_slp_tree, - vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise. - -2011-05-18 Richard Guenther - - PR middle-end/48989 - * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op - operand verification. - (verify_gimple_assign_binary): Likewise. - * tree-ssa.c (useless_type_conversion_p): Preserve conversions - to non-1-precision BOOLEAN_TYPEs. - -2011-05-18 Tom de Vries - - PR target/45098 - * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost. - -2011-05-18 Jakub Jelinek - - PR tree-optimization/49000 - * tree-ssa.c (execute_update_addresses_taken): Call - maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't - be rewritten and decl has been marked for renaming, reset - the debug stmt. - -2011-05-17 Joseph Myers - - * config/i386/i386.c (ix86_valid_target_attribute_tree): Use - enum_opts_set when testing if attributes have set -mfpmath=. - -2011-05-17 Richard Sandiford - - * config/mips/mips.c (mips_handle_option): Remove unused variable. - -2011-05-17 Uros Bizjak - - * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize - info->entry with 0 - * tree-inline.c (maybe_inline_call_in_expr): Initialize - id.transform_lang_insert_block with NULL. - -2011-05-17 Uros Bizjak - - * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool. - (output_fp_compare): Change args 3 and 4 to bool. - (ix86_expand_call): Change arg 6 to bool. - (ix86_attr_length_immediate_default): Change arg 2 to bool. - (ix86_attr_length_vex_default): Change arg 3 to bool. - * config/i386/i386.md: Update all uses. - * config/i386/i386.c: Ditto. - (ix86_flags_dependent): Change return type to bool. - -2011-05-17 Richard Guenther - - * gimple.c (type_hash_pair_compare): Fix comparison. - -2011-05-17 Richard Guenther - - * gimple.c (iterative_hash_gimple_type): Simplify singleton - case some more, fix final hash value of the non-singleton case. - -2011-05-17 Richard Guenther - - PR bootstrap/49013 - Revert - 2011-05-16 Richard Guenther - - * gimple.c (gimple_types_compatible_p_1): Use names of the - type itself, not its main variant. - (iterative_hash_gimple_type): Likewise. - -2011-05-17 Richard Guenther - - * gimple.c (gimple_register_canonical_type): Use the main-variant - leader for computing the canonical type. - -2011-05-17 Nick Clifton - - * config/rx/rx.c (rx_memory_move_cost): Include cost of register - moves. - - * config/rx/rx.md: Add peephole to remove redundant extensions - after loads. - (bitset_in_memory): Use rx_restricted_mem_operand. - (bitinvert_in_memory): Likewise. - (bitclr_in_memory): Likewise. - -2011-05-17 Kazuhio Inaoka - Nick Clifton - - * config/rx/rx.md: Add peepholes to match a register move followed - by a comparison of the moved register. Replace these with an - addition of zero that does both actions in one instruction. - -2011-05-17 Jakub Jelinek - - PR target/48986 - * config/i386/sync.md (sync_old_add): Relax operand 2 - predicate to allow CONST_INT. - (*sync_old_add_cmp): New insn and peephole2 for it. - -2011-05-16 Joseph Myers - - * opts-common.c (opt_enum_arg_to_value): New. - * opts.h (opt_enum_arg_to_value): Declare. - * config/i386/i386.opt (fpmath): Remove. - (mfpmath=): Use Enum, Init and Save. - (fpmath_unit): New Enum and EnumValue entries. - * config/i386/i386-c.c (ix86_pragma_target_parse): Update field - name for function fpmath state. - * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h. - * config/i386/i386.c: Include diagnostic.h. - (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove. - (ix86_target_string): Take enum fpmath_unit value instead of string. - (ix86_debug_options): Update call to ix86_target_string. - (ix86_option_override_internal): Don't process fpmath strings here. - (x86_function_specific_save, ix86_function_specific_restore): - Don't handle fpmath state specially. - (ix86_function_specific_print): Pass fpmath state to - ix86_target_string instead of printing in this function. - (ix86_valid_target_attribute_inner_p): Take gcc_options pointer. - Handle enum attributes. - (IX86_ATTR_ENUM, ix86_opt_enum): New. - (ix86_valid_target_attribute_tree): Update option_strings - handling. Handle fpmath as enum option. - (ix86_can_inline_p): Update field names for function fpmath state. - (ix86_expand_builtin): Update call to ix86_target_string. - * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h. - (ix86_fpmath): Remove. - * config/i386/t-i386 (i386.o): Update dependencies. - -2011-05-16 Joseph Myers - - PR preprocessor/48677 - * cppspec.c (lang_specific_driver): Set new_decoded_options[0] - from decoded_options[0], not from itself. - -2011-05-16 Uros Bizjak - - * config/i386/constraints.md (z): New constraint. - * config/i386/i386.c (c): New mode attribute. - (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and - *call_1_rex64_large patterns using "P" mode iterator. Use "zm" - constraint for operand 0. - (*call_vzeroupper): Ditto. - (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0. - (*call_rex64_ms_sysv_vzeroupper): Ditto. - (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1. - Use "lzm" constraint for operand 0. - (*call_pop_vzeroupper): Ditto. - (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and - *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz" - constraint for operand 0. - (*sibcall_vzeroupper): Ditto. - (*sibcall_rex64_ms_sysv): Ditto. - (*sibcall_rex64_ms_sysv_vzeroupper): Ditto. - (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and - *sibcall_pop_1. Use "Uz" constraint for operand 0. - (*sibcall_pop_vzeroupper): Ditto. - (*call_value): Merge insn pattern from *call_value_0, *call_value_1, - *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P" - mode iterator. Use "zm" constraint for operand 1. - (*call_value_vzeroupper): Ditto. - (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint - for operand 1. - (*call_value_rex64_ms_sysv_vzeroupper): Ditto. - (*call_value_pop): Merge insn pattern from *call_value_pop_0 and - *call_value_pop_1. Use "lzm" constraint for operand 1. - (*call_value_pop_vzeroupper): Ditto. - (*sibcall_value): Merge insn pattern from *sibcall_value_0, - *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P" - mode iterator. Use "Uz" constraint for operand 1. - (*sibcall_value_vzeroupper): Ditto. - (*sibcall_value_rex64_ms_sysv): Ditto. - (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto. - (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz" - constraint for operand 1. - (*sibcall_value_pop_vzeroupper): Ditto. - (*tls_global_dynamic_64): Use constant_call_address_operand predicate - and "z" constraint for operand 2. - (*tls_global_dynamic_32_gnu): Ditto. - (*tls_local_dynamic_base_32_gnu): Ditto. - (*tls_local_dynamic_base_64): Ditto. - (*tls_local_dynamic_32_once): Ditto. - * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument. - Update all callers. - * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype. - -2011-05-16 Richard Guenther - - * gimple.c (gimple_types_compatible_p_1): Use names of the - type itself, not its main variant. - (iterative_hash_gimple_type): Likewise. - -2011-05-16 Richard Guenther - - * gimple.c (iterative_hash_gimple_type): Re-instantiate change to - always visit pointer target and function result and argument types. - -2011-05-16 Jason Merrill - - PR c++/48999 - * tree-inline.c (copy_statement_list): Put back recursion. - -2011-05-16 Georg-Johann Lay - - PR target/27663 - PR target/41076 - * config/avr/predicates.md (const_8_16_24_operand): New predicate. - * config/avr/avr.md ("*iorqi.byte0", - "*iorqi.byte1-3"): New define_insn_and_split patterns. - -2011-05-16 Georg-Johann Lay - - PR target/45099 - * config/avr/avr.c (avr_function_arg_advance): Error if a fixed - register is needed for a function argument. - -2011-05-16 Richard Guenther - - * gimple.c (struct type_hash_pair): New type. - (type_hash_pair_compare): New function. - (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order. - -2011-05-16 Revital Eres - - * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first. - -2011-05-15 Uros Bizjak - - * config/i386/i386.md (floating point move splitters): Fix - usage of standard_80387_constant_p. - * config/i386/i386.c (ix86_preferred_reload_class): Ditto. - -2011-05-15 Uros Bizjak - - * config/i386/i386.md (*movdf_internal): Simplify insn condition. - -2011-05-14 Eric Botcazou - - * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro. - (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN. - (tree_ssa_lim_finalize): Likewise. - -2011-05-14 Uros Bizjak - - * config/i386/constraint.md (Yd, Yx): New register constraints. - * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use - Yd conditional register constraint. - (*movtf_internal): Use standard_sse_constant_opcode. - (*movxf_internal): Merge with *movxf_internal_nointeger. Use - Yx conditional register constraint. - (*movdf_internal): Merge with *movdf_internal_nointeger. Use - Yd conditional register constraint. Use standard_sse_constant_p to - check for valid SSE constants and call standard_sse_constant_opcode to - output SSE insn. - (*movsf_internal): Use standard_sse_constant_p to check for valid SSE - constants and call standard_sse_constant_opcode to output SSE insn. - * config/i386/i386.c (ix86_option_ovverride_internal): Set - TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when - optimize_size is set. - (standard_sse_constant_opcode): Output conditional AVX insn templates. - -2011-05-14 Tobias Burnus - - * doc/invoke.texi (-Ofast): Also enables -fstack-arrays. - -2011-05-13 Martin Jambor - - * ipa-prop.c (ipa_cst_from_jfunc): New function. - * ipa-prop.h (ipa_cst_from_jfunc): Declare. - * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it. - (evaluate_conditions_for_ipcp_clone): Removed. - (estimate_ipcp_clone_size_and_time): Accept vector of known constants. - * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants. - * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update. - -2011-05-13 Eric Botcazou - - * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message. - * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in - lieu of MAY_HAVE_DEBUG_STMTS. - * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move - debug statements if !MAY_HAVE_DEBUG_STMTS. - -2011-05-13 Martin Thuresson - - PR gcov-profile/47793 - * libgcov.c (gcov_exit): Support relative profile paths. - * doc/invoke.texi (-fprofile-dir): Update for above change. - -2011-05-13 Richard Guenther - - * gimple.c (gimple_canonical_types_compatible_p): Do not use - type-pair caching, do not compare hashes. - -2011-05-13 Nathan Froyd - - PR middle-end/48965 - * tree-cfg.c (edge_to_cases_cleanup): Return true. - (verify_expr) [CASE_LABEL_EXPR]: Add checking. - -2011-05-13 Kai Tietz - - * gimplify.c (gimplify_expr): Make sure operand is boolified. - * tree-cfg.c (verify_gimple_assign_unary): Check for boolean - compatible type for TRUTH_NOT_EXPR. - -2011-05-13 H.J. Lu - - * config/i386/i386.c (ix86_save_reg): Change return type to bool. - (ix86_hard_regno_mode_ok): Change return value to bool. Use - can_create_pseudo_p (). - -2011-05-13 Richard Guenther - - PR lto/48978 - * gimple.c (iterative_hash_gimple_type): Revert change in - pointer target and function result and argument hashing. - -2011-05-13 Uros Bizjak - - * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo (). - (*movxf_internal_nointeger): Ditto. - (*movdf_internal_rex64): Ditto. - (*movdf_internal): Ditto. - (*movdf_internal_nointeger): Ditto. - (*movsf_internal): Ditto. - (sincos splitters): Use can_create_pseudo (). - -2011-05-13 Joseph Myers - - * config/i386/i386-opts.h: New. - * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel, - ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost, - ix86_section_threshold): Remove. - (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle - OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and - OPT_mbranch_cost_. - (ix86_option_override_internal): Don't decode strings for options - other than -march=, -mtune= and -mfpmath=. Don't allow for - __attribute__ uses in remaining diagnostics for options with - string arguments. Don't check for integer arguments being negative. - * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi, - enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h. - (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect, - ix86_branch_cost, ix86_section_threshold): Remove. - * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New - HeaderInclude. - (malign-functions=, malign-jumps=, malign-loops=): Use UInteger - but not Var. - (masm=): Use Enum and Init. - (asm_dialect): New Enum and EnumValue entries. - (mbranch-cost=): Use UInteger. - (mlarge-data-threshold=): Use UInteger and Init. - (mcmodel=): Use Enum and Init. - (cmodel): New Enum and EnumValue entries. - (mpc): Replace with separate mpc32, mpc64 and mpc80 entries. - (mpreferred-stack-boundary=, mincoming-stack-boundary=, - mregparm=): Use UInteger. - (mstringop-strategy=): Use Enum and Init. - (stringop_alg): New Enum and EnumValue entries. - (mtls-dialect=): Use Enum and Init. - (tls_dialect): New Enum and EnumValue entries. - (mabi=): Use Enum and Init. - (calling_abi): New Enum and EnumValue entries. - (mveclibabi=): Use Enum and Init. - (ix86_veclibabi): New Enum and EnumValue entries. - -2011-05-13 Nick Clifton - - * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p. - * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype. - -2011-05-13 Kai Tietz - - PR middle-end/48984 - * gimplify.c (gimplify_expr): Check for boolean_type_node instead - for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR. - (gimple_boolify): Check for cast for boolean_type_node instead for - BOOLEAN_TYPE. - -2011-05-13 Richard Guenther - - PR tree-optimization/48172 - * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid - multiplying by number of iterations for equal step. - (vect_create_cond_for_alias_checks): Likewise. - -2011-05-13 Andreas Schwab - - * configure.ac: Use AS_HELP_STRING throughout. - * configure: Regenerate. - -2011-05-12 H.J. Lu - - * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool. - (ix86_emit_restore_regs_using_mov): Likewise. - (ix86_emit_restore_sse_regs_using_mov): Likewise. - -2011-05-12 Anatoly Sokolov - - * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, - SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove. - (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to... - * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P, - RTX_OK_FOR_OLO10_P): ...here. - (sparc_mode_dependent_address_p): Use symbolic_operand instead of - SYMBOLIC_CONST. - -2011-05-12 Kai Tietz - - * gimplify.c (gimple_boolify): Re-boolify expression - arguments even if expression type is of kind BOOLEAN_TYPE. - (gimplify_boolean_expr): Removed. - (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF, - and XOR. Additional take care that we keep expression's type. - * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type - of TRUTH_AND|OR|XOR_EXPR. - -2011-05-12 Jakub Jelinek - - PR tree-optimization/48975 - * tree-if-conv.c (combine_blocks): Call free_bb_predicate - on all bbs here and free and clear ifc_bbs at the end. - -2011-05-12 Richard Guenther - - * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle - NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup - until after simple checks. - (gimple_types_compatible_p): Likewise. - (iterative_hash_gimple_type): Always hash pointer targets - and function return and argument types. - (iterative_hash_canonical_type): Do not hash TYPE_QUALS, - hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE. - (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE, - handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates - completely in the simple compare section. - (gimple_register_canonical_type): Query the cache again after - registering. - -2011-05-12 Richard Guenther - - PR tree-optimization/48172 - * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude - the number of iterations from the segment size calculation. - (vect_create_cond_for_alias_checks): Adjust. - -2011-05-12 Jakub Jelinek - - PR debug/48967 - * var-tracking.c (use_narrower_mode_test) : Return 1 - if validate_subreg fails. - -2011-05-12 Hariharan Sandanagobalane - - * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from - accessing beyond the end of REGNO_REG_CLASS array by stopping the loop - early. - -2011-05-12 DJ Delorie - - * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions. - (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install - created builtin into rx_builtins array. - (rx_builtin_decl): New function. - (TARGET_BUITLIN_DECL): Define. Include gt-rx.h. - -2011-05-12 DJ Delorie - Nick Clifton - - * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo. - * config/rx/rx.c (CC_FLAG_FP): Fix comment. - (rx_is_legitimate_address): Add pre-decrement and post-increment - addressing in HImode and QImode. Fix test for out of range - REG+INT addressing. - (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant. - (rx_align_for_label): Test label before extracting its usage count. - (rx_adjust_insn_lengths): Fix selection of insn codes. - (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function. - -2011-05-11 Jason Merrill - - * tree.c (type_hash_canon): Use struct tree_type_non_common. - -2011-05-11 Eric Botcazou - - * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and - reindent the subsequent block. - -2011-05-11 Satoru Takabayashi - Paul Pluzhnikov - - * doc/install.texi (Configuration): Document --with-linker-hash-style. - * gcc.c (init_spec): Handle LINKER_HASH_STYLE. - * config.in: Add LINKER_HASH_STYLE. - * configure.ac: Add --with-linker-hash-style. - * configure: Regenerate. - -2011-05-11 Richard Guenther - - PR middle-end/48964 - * gimple.c (iterative_hash_canonical_type): Fix typo. - -2011-05-11 Uros Bizjak - - * config/i386/i386.c (legitimize_tls_address) - : Call gen_tls_dynamic_gnu2_{32,64} - expanders directly for TARGET_GNU2_TLS. Determine pic and - __tls_get_addr symbol reference here. Update call to - gen_tls_global_dynamic_{32,64} for added arguments. - : Call gen_tls_dynamic_gnu2_{32,64} - expanders directly for TARGET_GNU2_TLS. Determine - __tls_get_addr symbol reference here. Update call to - gen_tls_local_dynamic_base_{32,64} for added arguments. Attach - unique UNSPEC REG_EQUIV to libcall block. - (ix86_tls_get_addr): Declare static. - * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration. - * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3. - Do not determine pic and __tls_get_addr symbol reference here. Do not - call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS. - (tls_local_dynamic_base_32): Ditto for operands 1 and 2. - (tls_global_dynamic_64): Add operand 2. Do not determine - __tls_get_addr symbol reference here. Do not call - gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here. - (tls_local_dynamic_base64): Ditto for operand 1. - -2011-05-11 Eric Botcazou - - * function.c (expand_function_start): Initialize stack_check_probe_note - only if the generic stack checking mechanism is used. - -2011-05-11 Richard Guenther - - PR tree-optimization/15256 - * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize - (A & B) | C, combine (A op CST1) op CST2. - (tree_ssa_forward_propagate_single_use_vars): Only bother to - visit assigns that have uses. - -2011-05-11 Nathan Froyd - - * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common. - * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to... - (unpack_ts_type_common_value_fields): ...this. Update comment. - (unpack_value_fields): Adjust for renaming. - (lto_input_ts_type_tree_pointers): Split into... - (lto_input_ts_type_common_tree_pointer): ...this and... - (lto_input_ts_type_non_common_tree_pointers): ...this. - (lto_input_tree_pointers): Adjust for above split. - * lto-streamer-out.c (pack_ts_type_value_fields): Rename to... - (pack_ts_type_common_value_fields): ...this. Update comment. - (lto_output_ts_type_tree_pointers): Split into... - (lto_output_ts_type_common_tree_pointers): ...this and... - (lto_output_ts_type_non_common_tree_pointers): ...this. - (lto_output_tree_pointers): Adjust for above split. - * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON, - TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled. - * stor-layout.c (vector_type_mode): Adjust location of mode field. - * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC): - Define. - (struct tree_type): Split into... - (struct tree_type_common: ...this and... - (struct tree_type_with_lang_specific): ...this and... - (struct tree_type_non_common): ...this. Adjust accessor macros - accordingly. - (TYPE_VALUES_RAW): Define. - (union tree_node): Update for above changes. - * tree.c (tree_node_structure_for_code) [tcc_type]: Return - TS_TYPE_NON_COMMON. - (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON. - Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON. - (tree_code_size) [tcc_type]: Use struct tree_type_non_common. - * treestructu.def (TS_TYPE): Remove. - (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON): - Define. - -2011-05-11 Jakub Jelinek - - PR debug/48159 - * tree-ssa.c (reset_debug_uses): New function. - * tree-flow.h (reset_debug_uses): New prototype. - * tree-data-ref.c (stmts_from_loop): Ignore debug stmts. - * tree-loop-distribution.c (generate_loops_for_partition): Call - reset_debug_uses on the stmts that will be removed. Keep around - all debug stmts, don't count them as bits in partition bitmap. - (generate_builtin): Don't count debug stmts or labels as bits in - partition bitmap. - -2011-05-11 Richard Guenther - - * gimple.c (gimple_type_hash_1): Merge with ... - (gimple_type_hash): ... this. - (gtc_visit): Remove mode parameter and simplify accordingly. - (gimple_types_compatible_p_1): Likewise. - (gimple_types_compatible_p): Likewise. - (iterative_hash_gimple_type): Likewise. - (visit): Likewise. - (gimple_type_eq): Adjust. - -2011-05-11 Revital Eres - - * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge - enters the branch create an anti edge in the opposite direction - to prevent the creation of reg-moves. - * modulo-sched.c: Adjust comment to reflect the fact we are - scheduling closing branch. - (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine. - (stage_count): New field in struct partial_schedule. - (calculate_stage_count): New function. - (normalize_sched_times): Rename to reset_sched_times and handle - incrementing the sched time of the nodes by a constant value - passed as parameter. - (duplicate_insns_of_cycles): Skip closing branch. - (sms_schedule_by_order): Schedule closing branch. - (ps_insn_find_column): Handle closing branch. - (sms_schedule): Call reset_sched_times and adjust the code to - support scheduling of the closing branch. - (ps_insert_empty_row): Update calls to normalize_sched_times - and rotate_partial_schedule functions. - -2011-05-11 Richard Guenther - - PR middle-end/48953 - * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs. - -2011-05-11 Joseph Myers - - * opts.c (finish_options): Move warning settings from process_options. - * toplev.c (process_options): Move warning settings to finish_options. - -2011-05-11 Richard Guenther - - PR tree-optimization/18041 - * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ... - (simplify_bitwise_binary): ... this. Handle operand conversions - by applying them to the result instead. - (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code. - -2011-05-11 Richard Guenther - - * gimple.c (gimple_canonical_types_compatible_p): Split out - from gimple_types_compatible_p and friends. Do not recurse - to pointed-to types. - (gimple_canonical_type_eq): Use it. - (iterative_hash_canonical_type): Split out from - iterative_hash_gimple_type and friends. Do not recurse - to pointed-to types. - (gimple_canonical_type_hash): Use it, allocate the hash here. - -2011-05-11 Revital Eres - - * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while - recognizing doloop. - -2011-05-11 Revital Eres - - * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn - instead of PREV_INSN. - -2011-05-11 Revital Eres - - * modulo-sched.c (sms_schedule): Support new form of doloop pattern - * loop-doloop.c (doloop_condition_get): Likewise. - * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*". - (doloop_end): New. - * config/arm/arm.md (*addsi3_compare0): Remove "*". - -2011-05-10 Nathan Froyd - - * tree.def (CASE_LABEL_EXPR): Add an operand. - * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN. - -2011-05-10 Joseph Myers - - * c-decl.c (c_override_global_bindings_to_false): Remove. - (global_bindings_p): Don't check - c_override_global_bindings_to_false. - * c-tree.h (c_override_global_bindings_to_false): Remove. - * c-typeck.c (composite_type): Don't set - c_override_global_bindings_to_false. - -2011-05-10 Michael Meissner - - PR target/48857, 48495 - * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete. - (VSX_MODE): Ditto. - (VSX_MOVE_MODE): Ditto. - (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and - VSX vector types. Add V2DImode. - (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of - ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls. - (MODES_TIEABLE_P): Ditto. - - * config/rs6000/rs6000.c (rs6000_emit_move): Use - ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and - VSX_VECTOR_MODE. - (init_cumulative_args): Ditto. - (rs6000_function_arg_boundary): Ditto. - (rs6000_function_arg_advance_1): Ditto. - (rs6000_function_arg): Ditto. - (rs6000_function_ok_for_sibcall): Ditto. - (emit_frame_save): Ditto. - (rs6000_function_value): Ditto. - (rs6000_libcall_value): Ditto. - -2011-05-10 Joseph Myers - - * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add - i386/darwin-lib.h to $libgcc_tm_file. - * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove. - -2011-05-10 Joseph Myers - - * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk. - -2011-05-10 Joseph Myers - - * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files. - * config/rs6000/rs6000-tables.opt: New file (generated). - * config.gcc (powerpc*-*-*, rs6000*-*-*): Add - rs6000/rs6000-tables.opt to extra_options. - * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define. - * config/rs6000/rs6000.c (rs6000_select): Remove. - (processor_target_table): Move contents to rs6000-cpus.def. - (darwin_rs6000_override_options): Check - global_options_set.x_rs6000_cpu_index instead of - rs6000_select[1].string. - (rs6000_option_override_internal): Likewise. - (rs6000_handle_option): Don't assert that global structures are in - use. Don't handle OPT_mcpu_ and OPT_mtune_ here. - (rs6000_default_cpu): New variable. - (rs6000_file_start): Set it instead of local default_cpu. Check - rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and - global_options_set.x_rs6000_tune_index instead of rs6000_select. - (rs6000_darwin_file_start): Check rs6000_default_cpu and - global_options_set.x_rs6000_cpu_index instead of rs6000_select. - * config/rs6000/rs6000.h (struct rs6000_cpu_select, - rs6000_select): Remove. - * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index): - Remove. - (mcpu=, mtune=): Use Var, Init, Enum and Save. - * config/rs6000/t-rs6000 - ($(srcdir)/config/rs6000/rs6000-tables.opt): New. - * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check - global_options_set.x_rs6000_cpu_index instead of - rs6000_select[1].string. - * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check - global_options_set.x_rs6000_cpu_index instead of - rs6000_select[1].string. - -2011-05-10 Joseph Myers - - * config.gcc (libgcc_tm_file): Define instead of including files - from ../../libgcc/config/ in tm_file. - * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define. - * configure: Regenerate. - * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list, - libgcc_tm.h, cs-libgcc_tm.h): New. - (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list). - (clean): Remove libgcc_tm.h. - * config/arm/symbian.h (RENAME_LIBRARY): Remove. - * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET. - * system.h (DECLARE_LIBRARY_RENAMES): Poison. - -2011-05-10 Georg-Johann Lay - - PR target/48896 - * config/avr/avr.c (avr_ret_register): Return unsigned int - instead of int. - (avr_function_value): Mark fn_decl_or_type as unused, don't pass - it to avr_libcall_value. - avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to - expand_expr. - (avr_expand_binop_builtin): Ditto. - (avr_expand_unop_builtin): Ditto. - -2011-05-10 DJ Delorie - - * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define. - (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label - * config/rx/rx.c (rx_align_for_label): Add label and - uses_threshold parameters. Do not align when the label is not - used enough. - * config/rx/rx-protos.h (rx_align_for_label): Update prototype. - -2011-05-10 Richard Guenther - - * tree-ssa-forwprop.c (combine_conversions): Pattern-match - a series of conversions and apply foldings similar to what - fold-const does. - (tree_ssa_forward_propagate_single_use_vars): Call it. - -2011-05-10 Jakub Jelinek - - PR tree-optimization/48611 - PR tree-optimization/48794 - * tree-eh.c (remove_unreachable_handlers): Don't remove regions - referenced from RESX or EH_DISPATCH arguments. - - PR debug/48928 - * dfp.c (decimal_to_decnumber): Handle conversion from - dconst{1,2,m1,half}. - -2011-05-09 Uros Bizjak - - * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0 - for !flag_prefer_avx128. - (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2. - -2011-05-09 Eric Botcazou - - * fold-const.c (fold_range_test): Pass LOC to build_range_check. - (fold_ternary_loc): Use expr_location_or. - -2011-05-09 H.J. Lu - - PR debug/48853 - * dwarf2out.c (mem_loc_descriptor) : If - POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is - Pmode and mem_mode is not VOIDmode. - -2011-05-09 Ville Voutilainen - - * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, - TYPE_QUAL_RESTRICT): Convert to enum. - -2011-05-09 Uros Bizjak - - * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove. - (const_pow2_1_to_8_operand): Ditto. - (const_pow2_1_to_128_operand): Ditto. - (const_pow2_1_to_32768_operand): Ditto. - * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of - const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2 - in insn constraint to check integer value of operand 3. - * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto. - - (PINSR_MODE): New mode iterator. - (sse2p4_1): New mode attribute. - (_pinsr): Merge insn from sse4_1_pinsrb, - sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode - iterator. Use const_int_operand instead of - const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use - exact_log2 in insn constraint to check integer value of operand 3. - -2011-05-09 Uros Bizjak - - * config/i386/sse.md (blendbits): Remove mode attribute. - (_blend): Use const_int_operand - instead of const_0_to__operand for operand 3 predicate. - Check integer value of operand 3 in insn constraint. - -2011-05-09 Richard Guenther - - * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p - for diagnostics. - (lto_symtab_merge): Likewise. Do not register types here. - (lto_symtab_merge_decls_2): Likewise. - (lto_symtab_merge_decls_1): Likewise. - * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare. - * gimple.c (enum gtc_mode): Declare. - (gimple_types_compatible_p): Make static. - -2011-05-09 Andreas Krebbel - - * config/s390/s390.md (TD/TF mem to reg move splitter): Make the - temporary register to match Pmode. - -2011-05-09 Uros Bizjak - - * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1 - and *vec_concatv4si_1_avx. - -2011-05-09 Uros Bizjak - - PR rtl-optimization/48927 - * ira-conflicts.c (commutative_constraint_p): Use - recog_data.alternative_enabled_p to disable alternatives where - "enabled" attribute is false. - (get_dup_num): Ditto. - * ira-lives.c (single_reg_class): Ditto. - (ira_implicitly_set_insn_hard_regs): Ditto. - -2011-05-09 Eric Botcazou - - * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. - (dataflow_set_preserve_mem_locs): Likewise. - -2011-05-09 Philipp Thomas - - * config/mep/mep.c (mep_validate_vliw): Syntax description - should not be translated. - -2011-05-09 Joseph Myers - - * config/mips/genopt.sh, config/mips/mips-cpus.def: New files. - * config/mips/mips-tables.opt: New file (generated). - * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options. - * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI, - MIPS_ARCH_OPTION_NATIVE): Define. - * config/mips/mips.c (mips_cpu_info_table): Move contents to - mips-cpus.def. - (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p, - mips_parse_cpu): Remove. - (mips_cpu_info_from_opt, mips_default_arch): New. - (mips_handle_option): Don't assert that global structures are in - use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here. - (mips_option_override): Use new variables and functions to set - state of these options. Use strcmp to check for individual CPU names. - * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default - definition. - * config/mips/mips.opt (march=): Use ToLower and Enum. - (mips): Use ToLower, Enum and Var. - (mtune=): Use ToLower and Enum. - * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New. - -2011-05-08 Jan Hubicka - - * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair): - Arrange type pairs to be UID ordered. - (gimple_lookup_type_leader): Make inline. - -2011-05-09 Nick Clifton - - PR target/48899 - * config/iq2000/iq2000.opt (iq2000_tune): Initialise to - PROCESSOR_DEFAULT. - - PR target/48897 - * config/mn10300/mn10300.c (extract_bundle): Remove spurious local - variable 's'. - -2011-05-08 Chung-Lin Tang - - * combine.c (simplify_comparison): Abstract out parts into... - (simplify_compare_const): ... new function. - (try_combine): Generalize parallel arithmetic/compare combining - to call simplify_compare_const() and CANONICALIZE_COMPARE(). - -2011-05-08 Jan Hubicka - - * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter. - (cgraph_create_virtual_clone): Call hooks once virtual clone - is finished. - * cgraph.h (cgraph_clone_node): Update prototype. - * ipa-cp.c (ipcp_estimate_growth): Use - estimate_ipcp_clone_size_and_time. - * ipa-inline-transform.c (clone_inlined_nodes): Update. - * lto-cgraph.c (input_node): Update. - * ipa-inline.c (recursive_inlining): Update. - * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function. - (evaluate_conditions_for_known_args): Break out from ... - (evaluate_conditions_for_edge): ... here. - (evaluate_conditions_for_ipcp_clone): New function. - (inline_node_duplication_hook): Update clone summary based - on parameter map. - (estimate_callee_size_and_time): Rename to ... - (estimate_node_size_and_time): take NODE instead of EDGE; - take POSSIBLE_TRUTHS as argument. - (estimate_callee_size_and_time): Update. - (estimate_ipcp_clone_size_and_time): New function. - (do_estimate_edge_time): Update. - -2011-05-08 Richard Guenther - - PR middle-end/48908 - PR middle-end/48905 - * expmed.c (expand_shift_1): Compute adjusted constant shift - amount manually. - -2011-05-08 Eric Botcazou - - * config/avr/avr.c (print_operand_address): Fix invalid RTL access. - -2011-05-08 Eric Botcazou - - * config/rs6000/rs6000.c (output_profile_hook): Fix thinko. - -2011-05-08 Jonathan Wakely - - * doc/invoke.texi (-fuse-linker-plugin): Improve grammar. - -2011-05-07 Jan Hubicka - - * ipa-inline-transform.c (inline_call): Account when program size - decreases. - * ipa-inline.c (relative_time_benefit): New function. - (edge_badness): Reorganize to be power 2 based; fix thinko when - computing badness for negative growth; update comments to match - reality; better dumps. - -2011-05-07 Eric Botcazou - - * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return - type to bool and adjust comment. - * fold-const.c (fold_range_test): Adjust call to global_bindings_p. - (fold_mathfn_compare): Remove calls to global_bindings_p. - (fold_inf_compare): Likewise. - * stor-layout.c (variable_size): Adjust call to global_bindings_p. - * c-tree.h (global_bindings_p): Adjust prototype. - * c-decl.c (global_bindings_p): Return bool and simplify. - -2011-05-07 Zdenek Dvorak - - PR tree-optimization/48837 - * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls - when accumulator transformation is performed. - -2011-05-06 Jan Hubicka - - * i386.h (ix86_tune_indices): Add - X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL. - (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro. - * i386.c (initial_ix86_tune_features): Add - X86_SOFTARE_PREFETCHING_BENEFICIAL. - (software_prefetching_beneficial_p): Remove predicate. - (ix86_option_override_internal): Use new macro. - -2011-05-06 Jan Hubicka - - * ipa-inline.c (update_callee_keys): Don't reset node growth cache. - -2011-05-06 Jan Hubicka - - * cgraph.c (cgraph_add_thunk): Create real function node instead - of alias node; finalize it and mark needed/reachale; arrange visibility - to be right and add it into the corresponding same comdat group list. - (dump_cgraph_node): Dump thunks. - * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function, - cgraph_function_with_gimple_body_p, - cgraph_first_function_with_gimple_body, - cgraph_next_function_with_gimple_body): New functions. - (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION): - New macros. - * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected. - (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. - * cgraphunit.c (cgraph_finalize_function): Only look into possible - devirtualization when optimizing. - (verify_cgraph_node): Verify thunks. - (cgraph_analyze_function): Analyze thunks. - (cgraph_mark_functions_to_output): Output thunks only in combination - with function they are assigned to. - (assemble_thunk): Turn thunk into non-thunk; don't try to turn - alias into normal node. - (assemble_thunks): New functoin. - (cgraph_expand_function): Use it. - * lto-cgraph.c (lto_output_node): Stream thunks. - (input_overwrite_node): Stream in thunks. - * ipa-pure-const.c (analyze_function): Thunks do nothing interesting. - * lto-streamer-out.c (lto_output): Do not try to output thunk's body. - * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION. - * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks. - (inline_analyze_function): Do not care about thunk jump functions. - (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION. - * ipa-prop.c (ipa_prop_write_jump_functions): Use - cgraph_function_with_gimple_body_p. - * passes.c (do_per_function_toporder): Use - cgraph_function_with_gimple_body_p. - (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. - (ipa_write_summaries): Use cgraph_function_with_gimple_body_p. - (function_called_by_processed_nodes_p): Likewise. - -2011-05-06 Joseph Myers - - * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi, - rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable - entries. - (mabi=): Replace with separate entries for mabi=altivec, - mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32, - mabi=ieeelongdouble and mabi=ibmlongdouble. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Move - check for -mabi=spe without SPE ABI support here. - (rs6000_handle_option): Replace OPT_mabi_ handling with - OPT_mabi_altivec and OPT_mabi_spe handling. - -2011-05-06 Cary Coutant - - * dwarf2out.c (contains_subprogram_definition): New function. - (should_move_die_to_comdat): Call it. - -2011-05-06 Jeff Law - - * tree-ssa-threadupdate.c (create_block_for_threading): Do not call - remove_ctrl_stmt_and_useless_edges. - (create_duplicates): Call remove_ctrl_stmt_and_useless_edges. - (fixup_template_block, thread_single_edge): Likewise. - (mark_threaded_blocks): Use THREAD_TARGET. - -2011-05-06 Alan Modra - - PR target/48900 - * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use - const0_rtx as the arg to the dummy __tls_get_addr libcall. - -2011-05-06 Uros Bizjak - - * config/i386/i386.md (*movdf_internal_nointeger): Apply "*" - constraint modifier to "r". - -2011-05-06 Joseph Myers - - * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and - fall through for OPT_mcmodel_. - -2011-05-06 Andreas Krebbel - - * config/s390/s390.c (s390_asm_trampoline_template): Comment - instruction sizes. - (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG. - -2011-05-06 Ramana Radhakrishnan - - PR target/47930 - * config/arm/arm.opt (marm): Document it. - (mthumb): Reject negative variant. - -2011-05-06 Uros Bizjak - - PR target/48898 - * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name): - Fix typo in "ccvt" variable name. - -2011-05-06 Tristan Gingold - - PR target/48895 - * config/vms/vms-ar.c (main): Remove cwd variable. - -2011-05-06 Jakub Jelinek - - PR debug/48902 - * var-tracking.c (prepare_call_arguments): Move else before #endif. - -2011-05-05 Nathan Froyd - - * except.c (sjlj_emit_dispatch_table): Call build_case_label. - * gimplify.c (gimplify_switch_expr): Likewise. - * omp-low.c (expand_omp_sections): Likewise. - * tree-eh.c (lower_try_finally_switch): Likewise. - (lower_eh_dispatch): Likewise. - * tree.h (build_case_label): Declare. - * tree.c (build_case_label): Define. - -2011-05-05 Jason Merrill - - PR c++/40975 - * tree-inline.c (copy_tree_r): Use copy_statement_list. - (copy_statement_list): Don't recurse. - * stor-layout.c (copy_self_referential_tree_r): Don't allow - STATEMENT_LIST. - -2011-05-05 Joseph Myers - - * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall - through from -mfpu= handling. - * config/rs6000/rs6000.opt (mfpu=): Use Var and Init. - -2011-05-05 Bernd Schmidt - - * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle - POST_MODIFY. - -2011-05-05 Steve Ellcey - - * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options - for 11.31. - (hppa[12]*-*-hpux11*): Ditto. - (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file. - * config/ia64/hpux-unix2003.h: New. - * config/pa/pa-hpux1131.opt: New. - * config/pa/pa-hpux1131.h: New. - * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested. - * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value. - * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value. - -2011-05-05 Jakub Jelinek - - PR debug/48853 - * dwarf2out.c (mem_loc_descriptor) : Pass mem_mode - instead of mode as 3rd argument to recursive call. - (mem_loc_descriptor) : If POINTERS_EXTEND_UNSIGNED, don't - emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not - VOIDmode. - (mem_loc_descriptor) : If POINTERS_EXTEND_UNSIGNED, - don't give up if mode is Pmode and mem_mode is not VOIDmode. - (mem_loc_descriptor) : If POINTERS_EXTEND_UNSIGNED, - use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode. - -2011-05-05 Julian Brown - - * config/arm/neon.md (vec_set_internal): Fix misplaced - parenthesis in D-register case. - -2011-05-05 Joseph Myers - - * opt-functions.awk (var_type_struct): Handle Enum options. - * optc-gen.awk: Don't check range of variables of character type. - * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str, - rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name, - rs6000_sdata_name, rs6000_explicit_options): Remove. - (rs6000_option_override_internal): Check for -malign-power here. - Use global_options_set instead of rs6000_explicit_options. - (rs6000_parse_fpu_option): Remove. - (rs6000_handle_option): Access variables via opts and opts_set - pointers. Use error_at and warning_at. Add fall-through - comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return, - OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_, - OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_, - OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly - here. Don't use rs6000_parse_fpu_option. - * config/rs6000/rs6000.h (fpu_type): Remove declaration. - * config/rs6000/rs6000.opt (rs6000_long_double_type_size, - rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries. - (mrecip=): Use Var. - (mspe): Use Var and Save. - (mtraceback=): Use Enum and Var. - (rs6000_traceback_type): New Enum and EnumValue entries. - (mfloat-gprs=): Use Enum, Var and Save. - (rs6000_float_gprs): New Enum and EnumValue entries. - (mlong-double-): use Var and Save. - (msched-costly-dep=, minsert-sched-nops=): Use Var. - (malign-): Use Enum and Var. - (rs6000_alignment_flags): New Enum and EnumValue entries. - (mfpu=): Use Enum. - (fpu_type_t): New Enum and EnumValue entries. - * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out - definition. - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var. - (rs6000_cmodel): New Enum and EnumValue entries. - * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use - global_options_set instead of rs6000_explicit_options. - * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var. - (mtls-size=): Use Enum and Var. - (rs6000_tls_size): New Enum and EnumValue entries. - -2011-05-05 Michael Matz - - * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast. - * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast. - * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast. - * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast. - * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast. - * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast. - * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast. - * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast. - * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast. - * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast. - * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast. - * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast. - * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast. - * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast. - * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast. - * config/mips/linux.h (ENDFILE_SPEC): Add Ofast. - -2011-05-05 Richard Guenther - - * expmed.c (expand_variable_shift): Rename to ... - (expand_shift_1): ... this. Take an expanded shift amount. - For rotates recurse directly not building trees for the shift amount. - (expand_variable_shift): Wrap around expand_shift_1. - (expand_shift): Adjust. - -2011-05-05 Jakub Jelinek - - * gimplify.c (create_tmp_var_raw): Don't call build_type_variant. - -2011-05-05 Eric Botcazou - - * tree.h (get_pending_sizes): Remove prototype. - (put_pending_size): Likewise. - (put_pending_sizes): Likewise. - * stor-layout.c (pending_sizes): Delete. - (get_pending_sizes): Likewise. - (put_pending_size): Likewise. - (put_pending_sizes): Likewise. - (variable_size): Do not call put_pending_size and tidy up. - * function.h (struct function): Remove dont_save_pending_sizes_p. - * lto-streamer-in.c (input_function): Do not stream it. - * lto-streamer-out.c (output_function): Likewise. - * tree-inline.c (initialize_cfun): Do not copy it. - * c-decl.c (store_parm_decls): Do not set it. - * omp-low.c (create_task_copyfn): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - -2011-05-05 Uros Bizjak - - * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if" - conditions. - (*movdf_internal): Ditto. - (*movdf_internal_nointeger): Ditto. - (*movsf_internal): Ditto. - -2011-05-05 Joseph Myers - - * c-decl.c (finish_decl): Don't call get_pending_sizes. - (grokparm): Add parameter expr. Pass it to grokdeclarator. - (push_parm_decl): Add parameter expr. Pass it to grokdeclarator. - (c_variable_size): Remove. - (grokdeclarator): Use save_expr instead of c_variable_size. Don't - call put_pending_sizes. - (get_parm_info): Add parameter expr. Use it to set - arg_info->pending_sizes. - (store_parm_decls): Use arg_info->pending_sizes instead or calling - get_pending_sizes. - * c-parser.c (c_parser_parms_declarator): Update call to - c_parser_parms_list_declarator. - (c_parser_parms_list_declarator): Take parameter expr. Update - call to push_parm_decl. Update recursive call. Don't call - get_pending_sizes. Update calls to get_parm_info. - (c_parser_objc_method_definition): Update calls to - c_parser_objc_method_decl and objc_start_method_definition. - (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl. - (c_parser_objc_method_decl): Add parameter expr. Update call to - grokparm. - (c_parser_objc_try_catch_finally_statement): Update call to grokparm. - * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree. - (get_parm_info, grokparm, push_parm_decl): Update prototypes. - -2011-05-05 Michael Hope - - PR pch/45979 - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for - __ARM_EABI__ hosts. - -2011-05-05 Ulrich Weigand - - * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define. - (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. - (spu_output_mi_thunk): New function. - -2011-05-05 Rainer Orth - - * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use - targetm.asm_out.print_operand. - * config/sol2.c: Include target.h. - -2011-05-04 Jan Hubicka - - * ipa-inline.c (reset_edge_caches): New function. - (update_caller_keys): Add check_inlinablity_for; do not - reset edge caches; remove now unnecesary loop. - (update_callee_keys): Add comments; reset node_growth_cache of callee. - (update_all_callee_keys): Likewise. - (inline_small_functions): Sanity check cache; update code - recomputing it. - -2011-05-04 Bernd Schmidt - - PR rtl-optimization/47612 - * df-problems.c (can_move_insns_across): Don't pick a cc0 setter - as the last insn of the sequence to be moved. - -2011-05-04 Tobias Burnus - - PR fortran/48864 - * doc/invoke.texi (Ofast): Document that it - enables Fortran's -fno-protect-parens. - -2011-05-04 Uros Bizjak - - * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first. - -2011-05-04 Eric Botcazou - - * stor-layout.c (variable_size): Do not issue errors. - -2011-05-04 Richard Guenther - - * coverage.c (tree_coverage_counter_ref): Use integer_type_node - for array-ref indices. - (tree_coverage_counter_addr): Likewise. - (build_fn_info_type): Use size_int for index types. - (build_gcov_info): Likewise. - -2011-05-04 Richard Guenther - - * c-decl.c (check_bitfield_type_and_width): Do not pass NULL - to build_int_cst. - * c-typeck.c (really_start_incremental_init): Use bitsize_int - for constructor indices. - (push_init_level): Likewise. - -2011-05-04 Richard Guenther - - * explow.c (promote_mode): Move variable declarations before code. - -2011-05-04 Nathan Froyd - - * tree.h (build_function_type_array): Declare. - (build_varargs_function_type_array): Declare. - (build_function_type_vec, build_varargs_function_type_vec): Define. - * tree.c (build_function_type_array_1): New function. - (build_function_type_array): New function. - (build_varargs_function_type_array): New function. - -2011-05-04 Richard Sandiford - - * tree-vect-loop.c (vectorizable_reduction): Check reduction cost - before setting STMT_VINFO_TYPE. - -2011-05-04 Ulrich Weigand - - * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference - instead of spu_pass_by_reference. - -2011-05-04 Andreas Krebbel - - * calls.c (emit_library_call_value_1): Invoke - promote_function_mode hook on libcall arguments. - * explow.c (promote_function_mode, promote_mode): Handle TYPE - argument being NULL. - * targhooks.c (default_promote_function_mode): Lisewise. - * config/s390/s390.c (s390_promote_function_mode): Likewise. - * config/sparc/sparc.c (sparc_promote_function_mode): Likewise. - - * doc/tm.texi: Document that TYPE argument might be NULL. - -2011-05-04 Stuart Henderson - - * config/bfin/bfin.c (bfin_cpus): Update silicon revisions. - -2011-05-04 Stuart Henderson - - From Bernd Schmidt - * config/bfin/bfin.md (addsi3): Add an alternative for IREGS. - -2011-05-04 Rainer Orth - - * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB) - (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET): - Move ... - * mips-tfile.c: ... here. - Don't include coretypes.h, tm.h, filenames.h. - (saber_stop): Remove definition and all calls. - [__SABER__]: Remove. - (__LINE__): Remove default. - (Size_t, Ptrdiff_t): Remove definitions. - Replace by size_t, ptrdiff_t. - [!MIPS_DEBUGGING_INFO]: Remove. - (SHASH_SIZE, THASH_SIZE): Remove defaults. - (progname): Add const. - (STATIC): Remove. - Replace all uses by static. - (ALIGN_SYMTABLE_OFFSET): Remove default. - * mips-tdump.c: Don't include coretypes.h, tm.h. - Remove !MIPS_IS_STAB guard. - * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h, - $(TM_H), filenames.h dependencies. - (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies. - -2011-05-04 Stuart Henderson - - From Jie Zhang - *config/bfin/bfin.c (bfin_extra_live_on_entry): New. - (TARGET_EXTRA_LIVE_ON_ENTRY): Define. - -2011-05-04 Stuart Henderson - - From Bernd Schmidt - * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into - account and save/restore RETS. - (PROFILE_BEFORE_PROLOGUE): Define. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct - the push insn to use predecrement. - -2011-05-04 Stuart Henderson - - From Jie Zhang - * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2. - -2011-05-04 Nick Clifton - - * config/mn10300/mn10300.c: Include cfgloop.h. - (DUMP): New macro. - (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a - Lcc or a FLcc insn into the instruction stream. - (mn10300_block_contains_call): New function. Returns true if the - given basic block contains a CALL insn. - (mn10300_loop_contains_call_insn): New function. Returns true if - the given loop contains a CALL insn. - (mn10300_scan_for_setlb_lcc): New function. Finds opportunities - to use the SETLB and Lcc or FLcc insns. - (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing. - (TARGET_FLAGS): Add MASK_ALLOW_SETLB. - * config/mn10300/mn10300.opt (msetlb): New option. Used to - disable the SETLB optimization. - * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add - __SETLB__ or __NO_SETLB__. - * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant. - (movsf_internal): Handle MDR register. - (cmpsi): Make visible. - (setlb): New pattern. - (Lcc): New pattern. - (FLcc): New pattern. - -2011-05-04 Uros Bizjak - - PR target/48860 - * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd - for reg<->xmm moves. - * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto. - (vec_concatv2di_rex64_sse): Ditto. - (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic. - (*vec_extractv2di_1_rex64): Ditto. - - Revert: - 2011-05-02 Uros Bizjak - - * config/i386/mmx.md (*mov_internal_rex64): Use %vmovq for - reg<->xmm moves. - (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. - -2011-05-04 Richard Guenther - - * tree.h (int_const_binop): Remove notrunc argument. - * fold-const.c (int_const_binop): Remove notrunc argument. Always - create integer constants that are properly truncated. - (extract_muldiv_1): Expand one notrunc int_const_binop caller. - (const_binop): Remove zero notrunc argument to int_const_binop. - (size_binop_loc): Likewise. - (fold_div_compare): Likewise. - (maybe_canonicalize_comparison_1): Likewise. - (fold_comparison): Likewise. - (fold_binary_loc): Likewise. - (multiple_of_p): Likewise. - * expr.c (store_constructor): Likewise. - * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise. - (maybe_fold_stmt_addition): Likewise. - * ipa-prop.c (ipa_modify_call_arguments): Likewise. - * stor-layout.c (layout_type): Likewise. - * tree-data-ref.c (tree_fold_divides_p): Likewise. - * tree-sra.c (build_ref_for_offset): Likewise. - (build_user_friendly_ref_for_offset): Likewise. - * tree-ssa-address.c (maybe_fold_tmr): Likewise. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. - * tree-ssa-loop-niter.c (inverse): Likewise. - * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. - * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise. - * tree-switch-conversion.c (check_range): Likewise. - (build_constructors): Likewise. - * tree-vect-generic.c (expand_vector_piecewise): Likewise. - * tree-vrp.c (set_and_canonicalize_value_range): Likewise. - (extract_range_from_assert): Likewise. - (vrp_int_const_binop): Likewise. - (extract_range_from_binary_expr): Likewise. - (extract_range_from_unary_expr): Likewise. - (check_array_ref): Likewise. - (find_case_label_range): Likewise. - (simplify_div_or_mod_using_ranges): Likewise. - * tree-cfg.c (group_case_labels_stmt): Use double-ints for - comparing case labels for merging. - -2011-05-03 Mark Wielaard - - * dwarf2out.c (debug_str_hash_forced): Removed. - (gen_label_for_indirect_string): Removed. - (get_debug_string_label): Removed. - (AT_string_form): Generate label directly. - (output_indirect_string): Test indirect_string_node for - DW_FORM_strp instead of checking label and refcount. - (prune_indirect_string): Removed. - (prune_unused_types): Don't check debug_str_hash_forced or - call prune_indirect_string. - -2011-05-04 Alexandre Oliva - - PR other/48093 - * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG. - -2011-05-04 Alexandre Oliva - - PR debug/47994 - PR debug/47919 - * combine.c (try_combine): Skip debug insns at m_split tests. - -2011-04-26 Mark Wielaard - - PR42288 - * dwarf2out.c (dwarf2out_finish): Always call output_aranges () - when info_section_emitted. - -2011-05-03 Joseph Myers - - * config/mips/mips-opts.h: New. - * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move - to mips-opts.h. - (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove. - (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_ - or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func - via opts pointer. - * config/mips/mips.h (enum mips_code_readable_setting): Move to - mips-opts.h. - (mips_abi, mips_code_readable): Don't declare. - * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude. - (mabi=): Use Enum and Var. - (mips_abi): New Enum and EnumValue entries. - (mcode-readable=): Use Enum and Var. - (mips_code_readable_setting): New Enum and EnumValue entries. - (mr10k-cache-barrier=): Use Enum and Var. - (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries. - -2011-05-03 Jan Hubicka - - * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY; - replace hash by pointer map. - (cgraph_node_set_element_def, cgraph_node_set_element, - const_cgraph_node_set_element, varpool_node_set_element_def, - varpool_node_set_element, const_varpool_node_set_element): Remove. - (free_cgraph_node_set, free_varpool_node_set): New function. - (cgraph_node_set_size, varpool_node_set_size): Use vector size. - * tree-emutls.c: Free varpool node set. - * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add, - cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set, - debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new, - varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, - dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set): - Move here from ipa.c; implement using pointer_map - * ipa.c (cgraph_node_set_new, cgraph_node_set_add, - cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set, - debug_cgraph_node_set, varpool_node_set_new, - varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, - dump_varpool_node_set, debug_varpool_node_set): - Move to ipa-uitls.c. - * passes.c (ipa_write_summaries): Update. - -2011-05-03 Stuart Henderson - - From Mike Frysinger: - * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for - bf542/bf544/bf547/bf548/bf549. - -2011-05-03 Uros Bizjak - - * expmed.c (extract_bit_field_1): Remove write-only variable "icode". - -2011-05-03 Stuart Henderson - - From Bernd Schmidt: - * config/bfin/bfin.md (MOVCC): New mode_macro. - (movcc_insn1, movcc_insn2, movcc): Renamed from - movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove - comments from generated assembly. - -2011-05-03 Stuart Henderson - - From Bernd Schmidt - * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart. - * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3. - * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3. - * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3. - * config/bfin/lib1funcs.asm (___muldi3): New function. - -2011-05-03 Nathan Froyd - - * config/stormy16/stormy16 (xstormy16_init_builtins): Call - build_function_type_list instead of build_function_type. - Rearrange initialization of `args' to do so. - -2011-05-03 Nathan Froyd - - * config/i386/i386.c (ix86_code_end): Call build_function_type_list - instead of build_function_type. - -2011-05-03 Nathan Froyd - - * config/rs6000/rs6000.c (spe_init_builtins): Call - build_function_type_list instead of build_function_type. - (paired_init_builtins, altivec_init_builtins): Likewise. - (builtin_function_type): Likewise. - -2011-05-03 Nathan Froyd - - * config/sh/sh.c (sh_media_init_builtins): Call - build_function_type_list instead of build_function_type. - -2011-05-03 Nathan Froyd - - * config/sparc/sparc.c (sparc_file_end): Call - build_function_type_list instead of build_function_type. - -2011-05-03 Nathan Froyd - - * config/alpha/alpha.c (alpha_init_builtins): Call - build_function_type_list instead of build_function_type. - -2011-05-03 Nathan Froyd - - * config/xtensa/xtensa.c (xtensa_init_builtins): Call - build_function_type_list instead of build_function_type. - -2011-05-03 Nathan Froyd - - * config/iq2000/i2000.c (iq2000_init_builtins): Call - build_function_type_list instead of build_function_type. - Delete `endlink' variable. - -2011-05-03 Nathan Froyd - - * config/avr/avr.c (avr_init_builtins): Call - build_function_type_list instead of build_function_type. - -2011-05-03 Nathan Froyd - - * config/picochip/picochip.c (picochip_init_builtins): Call - build_function_type_list instead of build_function_type. - Delete `endlink' variable. - -2011-05-03 Nathan Froyd - - * config/bfin/bfin.c (bfin_init_builtins): Call - build_function_type_list instead of build_function_type. - -2011-05-03 Stuart Henderson - - From Bernd Schmidt - * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything - that's not CONST_INT. Seemingly redundant check is due to PR39768. - -2011-05-03 Stuart Henderson - - From Jie Zhang: - * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure - libbffastfp overrides libgcc when -mfast-fp. - -2011-05-03 Stuart Henderson - - Originally from Bernd Schmidt - * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro. - * config/bfin/bfin.c (override_options): Test it and error if - TARGET_FDPIC. - -2011-05-03 Stuart Henderson - - Originally From Bernd Schmidt - * config/bfin/bfin.c (override_options): Disable -fstack-limit for - FD-PIC. - -2011-05-03 Jeff Law - - * tree-ssa-threadupdate.c (THREAD_TARGET): define. - (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges. - (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather - than accessing AUX field directly. Free the AUX field before - clearing it. - (thread_block, thread_through_loop_header): Likewise. - (thread_single_edge, mark_threaded_blocks): Likewise. - (redirect_edges): Delay clearing the AUX field. Free the AUX field. - (register_jump_thread): Do not attempt to thread to a NULL edge. - -2011-05-03 Bernd Schmidt - - * function.c (init_function_start): Call decide_function_section. - * varasm.c (decide_function_section): New function. - (assemble_start_function): When not using - flag_reorder_blocks_and_partition, don't compute in_cold_section_p - or first_function_block_is_cold. - * rtl.h (decide_function_section): Declare. - -2011-05-03 Uros Bizjak - Jakub Jelinek - - PR target/48774 - * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode - only succeed if req_mode is the same as set_mode. - -2011-05-03 Bernd Schmidt - - * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special. - * genemit.c (gen_exp): Handle RETURN. - * emit-rtl.c (verify_rtx_sharing): Likewise. - (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially. - * rtl.c (copy_rtx): RETURN is shared. - * rtl.h (enum global_rtl_index): Add GR_RETURN. - (ret_rtx): New. - * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN. - * config/s390/s390.c (s390_emit_epilogue): Likewise. - * config/rx/rx.c (gen_rx_rtsd_vector): Likewise. - * config/cris/cris.c (cris_expand_return): Likewise. - * config/m68k/m68k.c (m68k_expand_epilogue): Likewise. - * config/rs6000/rs6000.c (rs6000_make_savres_rtx, - rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise. - * config/picochip/picochip.c (picochip_expand_epilogue): Likewise. - * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue): - Likewise. - * config/v850/v850.c (expand_epilogue): Likewise. - * config/bfin/bfin.c (bfin_expand_call): Likewise. - * config/arm/arm.md (epilogue): Likewise. - * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise. - * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx - variable to ret_reg. - -2011-05-03 Richard Guenther - - PR lto/48846 - * lto-streamer-in.c (unpack_ts_decl_common_value_fields): - Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN. - * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. - -2011-05-03 Richard Guenther - - * c-decl.c (grokdeclarator): Instead of looking at - TREE_OVERFLOW check if the constant fits in the index type. - -2011-05-03 Richard Sandiford - - * config/arm/neon.md (vec_load_lanes): New expanders, - (vec_store_lanes): Likewise. - -2011-05-03 Richard Sandiford - - * doc/md.texi (vec_load_lanes, vec_store_lanes): Document. - * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New - convert_optab_index values. - (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs. - * genopinit.c (optabs): Initialize the new optabs. - * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions. - * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES) - (expand_STORE_LANES): New functions. - * tree.h (build_array_type_nelts): Declare. - * tree.c (build_array_type_nelts): New function. - * tree-vectorizer.h (vect_model_store_cost): Add a bool argument. - (vect_model_load_cost): Likewise. - (vect_store_lanes_supported, vect_load_lanes_supported) - (vect_record_strided_load_vectors): Declare. - * tree-vect-data-refs.c (vect_lanes_optab_supported_p) - (vect_store_lanes_supported, vect_load_lanes_supported): New functions. - (vect_transform_strided_load): Split out statement recording into... - (vect_record_strided_load_vectors): ...this new function. - * tree-vect-stmts.c (create_vector_array, read_vector_array) - (write_vector_array, create_array_ref): New functions. - (vect_model_store_cost): Add store_lanes_p argument. - (vect_model_load_cost): Add load_lanes_p argument. - (vectorizable_store): Try to use store-lanes functions for - interleaved stores. - (vectorizable_load): Likewise load-lanes and loads. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call - to vect_model_store_cost. - (vect_build_slp_tree): Likewise vect_model_load_cost. - -2011-05-03 Richard Sandiford - - * hooks.h (hook_bool_mode_uhwi_false): Declare. - * hooks.c (hook_bool_mode_uhwi_false): New function. - * target.def (array_mode_supported_p): New hook. - * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook. - * doc/tm.texi: Regenerate. - * stor-layout.c (mode_for_array): New function. - (layout_type): Use it. - * config/arm/arm.c (arm_array_mode_supported_p): New function. - (TARGET_ARRAY_MODE_SUPPORTED_P): Define. - -2011-05-03 Eric Botcazou - - PR target/48723 - * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack - for -fstack-check if the size to allocate is negative. - -2011-05-02 Lawrence Crowl - - * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN. - (timevar_cond_start): New for starting a timer only when it is not - already running. - (timevar_cond_stop): New for stopping a timer when it was not already - running. - - * timevar.c (timevar_stop): Enable start/stop timers to start again. - (timevar_cond_start): New as above. - (timevar_cond_stop): New as above. - - * timevar.def: Add start/stop timers for compiler phases, - TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, - TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE, - and TV_PHASE_FINALIZE. - Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL. - Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC, - TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST. - Change push/pop timer TV_NAME_LOOKUP into a start/stop timer. - Make unused TV_OVERLOAD into a start/stop timer. - - Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION. - Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|" - to indicate that they are start/stop timers. - - * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL. - Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE. - Move initialization to do_compile. - (do_compile): Add initialization from above. - Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE. - - * c-decl.c (c_write_global_declarations): Add start/stop of - TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO. - - * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC - or TV_PARSE_INLINE, as appropriate. - (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM. - (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT. - -2011-05-02 Jason Merrill - - PR c++/40975 - * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST. - -2011-05-02 Simon Martin - - PR c/35445 - * c-decl.c (finish_decl): Only create a composite if the types are - compatible. - -2011-05-02 Joseph Myers - - * config/fr30/fr30-protos.h (Mmode): Don't define. - * config/m32r/m32r-protos.h (Mmode): Don't define. Expand - definition where used. - * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't - define. Expand definitions where used. - * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define. - Expand definitions where used. - * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size, - rx_function_arg, rx_function_arg_advance, - rx_function_arg_boundary): Expand definitions of those macros. - * config/v850/v850-protos.h (Mmode): Don't define. Expand - definition where used. - -2011-05-02 Uros Bizjak - - * config/i386/mmx.md (*mov_internal_rex64): Use %vmovq for - reg<->xmm moves. - (*mov_internal): Merge with *mov_internal_avx. - (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge - with *movv2sf_internal_rex64_avx. - (*movv2sf_internal): Merge with *movv2sf_internal_avx. - * config/i386/i386.md (*movdi_internal_rex64) : - Use %v prefix in insn mnemonic to handle TARGET_AVX. - (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of - "vex" in "prefix" attribute calculation. - (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute. - -2011-05-02 Stuart Henderson - - PR target/47951 - * config/bfin/bfin.md (loop_end): Use matching constraints to ensure - inputs match the output. - -2011-05-02 Andreas Schwab - - PR target/47955 - * config/m68k/m68k.c (m68k_expand_prologue): Set - current_function_static_stack_size. - -2011-05-02 Jan Hubicka - - * lto-streamer.c (lto_streamer_cache_insert_1, - lto_streamer_cache_lookup, lto_streamer_cache_create, - lto_streamer_cache_delete): Use pointer map instead of hashtable. - * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map. - -2011-05-02 Joseph Myers - - * config/m68k/genopt.sh, config/m68k/m68k-isas.def, - config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h, - config/m68k/t-opts: New files. - * config/m68k/m68k-tables.opt: New file (generated). - * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to - extra_options and m68k/t-opts to tmake_file. - * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt. - (all_isas): Initialize using m68k-isas.def. - (all_microarchs): Initialize using m68k-microarchs.def. - (m68k_find_selection): Remove. - (m68k_handle_option): Don't assert that global structures are in - use. Use error_at. Access variables via opts pointer. Don't - handle -march=, -mcpu= and -mtune= here. Set gcc_options fields - directly for -m68020-40 and -m68020-60. - (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and - m68k_tune_entry here. - * config/m68k/m68k.h (enum uarch_type, enum target_device): Move - to m68k-opts.h. - (m68k_library_id_string): Remove declaration. - * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude. - (m68k_library_id_string): New Variable. - (march=, mcpu=, mtune=): Use Enum and Var. - -2011-05-02 Richard Guenther - - * varasm.c (output_constructor_regular_field): Compute zero-based - index with double-ints. Make sure to ICE instead of producing - wrong code. - * cgraph.c (cgraph_add_thunk): Do not create new tree nodes - in asserts. Properly use a signed type. - -2011-05-02 Uros Bizjak - - * config/i386/sse.md (V): New mode iterator. - (V_128): Rename from SSEMODE. Make V2DF mode conditional on - TARGET_SSE2. - (V_256): Rename from AVX256MODE. - (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction - condition to all users. - (VF1): Ditto. - (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction - condition to all users. - (VF_128): Make V4SF mode unconditional. - (VF_256): Rename from AVX256MODEF2P. - (VI4F_128): Rename from SSEMODE4S. - (VI8F_128): Rename from SSEMODE2D. - (VI4F_256): Rename from AVX256MODE8P. - (VI8F_256): Rename from AVX256MODE4P. - (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes. - (ssescalarmodesuffix): Remove SF and DF modes. - (SSEMODE124): Remove. - (SSEMODE1248): Ditto. - (SSEMODEF2P): Ditto. - (AVXMODEF2P): Ditto. - (AVXMODEFDP): Ditto. - (AVXMODEFSP): Ditto. - (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes - unconditional. - (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode - unconditional. - (xop_pcmov_): Merge from xop_pcmov_ and - xop_pcmov_256. Use V mode iterator. - - Adjust RTX patterns globally for renamed mode attributes. - -2011-05-02 Ulrich Weigand - - * haifa-sched.c (sched_emit_insn): Emit insn before first - non-scheduled insn. Inform back-end about new insn. Add - new insn to scheduled_insns list. - -2011-05-02 Richard Guenther - - PR tree-optimization/48822 - * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice. - (process_scc): Indicate which iteration we start. - -2011-05-02 Jan Hubicka - - * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h - (lto_section_overrun): New. - * lto-section-out.c (append_block): Rename to ... - (lto_append_block): ... this one; export. - (lto_output_1_stream): Move lto lto-streamer.h - (lto_output_data_stream): Update. - * lto-streamer.h (lto_section_overrun, lto_append_block): Declare. - (lto_output_1_stream, lto_input_1_unsigned): Turn into inline - functions. - -2011-05-02 Richard Guenther - - * tree.c (tree_code_counts): New global array. - (record_node_allocation_statistics): Count individual tree codes. - (dump_tree_statistics): Dump individual code stats. - -2011-05-01 Jan Hubicka - - * ipa-inline.c (caller_growth_limits): Fix thinko when - looking for largest stack frame. - * ipa-inline.h (dump_inline_summary): Declare. - * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info - on stack usage. - (dump_inline_summary): Export. - (debug_inline_summary): Declare as DEBUG_FUNCTION. - -2011-05-01 Anatoly Sokolov - - * reginfo.c (memory_move_cost): Change rclass argument type form - 'enum reg_class' to reg_class_t. - * reload.h (memory_move_cost): Update prototype. - * postreload.c reload_cse_simplify_set): Change type dclass var to - reg_class_t. - * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector): - Update prototype. - (ira_allocate_and_set_costs): Change aclass argument type form - 'enum reg_class' to reg_class_t. - * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector): - Change aclass argument type to reg_class_t. - (update_conflict_hard_reg_costs): Change type aclass and pref vars - to reg_class_t. - * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust - memory_move_cost call. - - * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and - 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'. - Change type tmp var to reg_class_t. - -2011-04-30 Jan Hubicka - - * ipa-inline.c (can_inline_edge_p): Disregard limits when - inlining into function with flatten attribute. - (want_inline_small_function_p): Be more realistic about inlining - cold calls where callee size grows. - -2011-04-30 Jan Hubicka - - * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor - flags. - -2011-04-30 Anatoly Sokolov - - * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, - PRINT_OPERAND_PUNCT_VALID_P): Remove. - * config/sparc/sparc-protos.h (print_operand): Remove declaration. - * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P, - TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. - (print_operand): Rename to... - (sparc_print_operand): ...this. Make static. Adjust - sparc_print_operand function call. - (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New - functions. - -2011-04-30 Jan Hubicka - - PR middle-end/48752 - * ipa-inline.c (early_inliner): Disable when doing late - addition of function. - -2011-04-30 Jakub Jelinek - - * dwarf2out.c (get_address_mode): New inline. - (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls, - if not dwarf_strict emit - DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when - desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT, - UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for - FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED. - (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor, - dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust - mem_loc_descriptor callers. - (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, - output_loc_operands_raw, hash_loc_operands, compare_loc_operands): - Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type, - DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret. - (base_types): New variable. - (get_base_type_offset, calc_base_type_die_sizes, - base_type_for_mode, mark_base_types, base_type_cmp, - move_marked_base_types): New functions. - (calc_die_sizes): Assert that die_offset is 0 or equal to - next_die_offset. - (loc_descriptor): Only handle here lowpart SUBREGs of REG, for - others defer to mem_loc_descriptor. Adjust mem_loc_descriptor - callers. If not dwarf_strict, call mem_loc_descriptor even for - non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE. - (gen_subprogram_die): Don't give up on call site parameters - with non-integral or large integral modes. Adjust - mem_loc_descriptor callers. - (prune_unused_types): Call prune_unused_types_mark on base_types - vector entries. - (resolve_addr): Call mark_base_types. - (dwarf2out_finish): Call move_marked_base_types. - - PR tree-optimization/48809 - * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned - type. - (gen_inbound_check): Don't compute index_expr - range_min in utype - again, instead reuse SSA_NAME initialized in build_arrays. - Remove two useless gsi_for_stmt calls. - -2011-04-29 Jeff Law - - * tree-ssa-threadedge.c (thread_across_edge): Add missing return. - -2011-04-29 Martin Jambor - - * cgraph.h (cgraph_postorder): Remove declaration. - * ipa-utils.h (ipa_free_postorder_info): Declare. - (ipa_reverse_postorder): Likewise. - * cgraphunit.c: Include ipa-utils.h. - (cgraph_expand_all_functions): Update call to ipa_reverse_postorder. - * ipa-inline.c: Include ipa-utils.h. - (ipa_inline): Update call to ipa_reverse_postorder. - * ipa-pure-const.c (propagate_pure_const): Update call to - ipa_reduced_postorder and ipa_print_order. Call - ipa_free_postorder_info to clean up. - (propagate_nothrow): Likewise. - * ipa-reference.c (propagate): Removed a useless call to - ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder - and ipa_print_order. Call ipa_free_postorder_info to clean up. - * ipa.c: Include ipa-utils.h. - (ipa_profile): Update call to ipa_reverse_postorder. - (cgraph_postorder): Moved to... - * ipa-utils.c (ipa_reverse_postorder): ...here and renamed. - (ipa_utils_print_order): Renamed to ipa_print_order. - (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated - comments. - (ipa_free_postorder_info): New function. - * passes.c: Include ipa-utils.h. - (do_per_function_toporder): Update call to ipa_reverse_postorder. - (ipa_write_summaries): Likewise. - * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies. - (cgraphunit.o): Likewise. - (ipa.o): Likewise. - (ipa-inline.o): Likewise. - -2011-04-29 Jan Hubicka - - * ipa-inline.h (clause_t): Turn into unsigned int. - * ipa-inline-analysis.c (add_clause): Do more simplification. - (and_predicates): Shortcut more cases. - (predicates_equal_p): Move forward; check that clauses are properly - ordered. - (or_predicates): Shortcut more cases. - (edge_execution_predicate): Rewrite as... - (set_cond_stmt_execution_predicate): ... this function; handle - __builtin_constant_p. - (set_switch_stmt_execution_predicate): New . - (compute_bb_predicates): New. - (will_be_nonconstant_predicate): Update TODO. - (estimate_function_body_sizes): Use compute_bb_predicates - and free them later, always try to estimate if stmt is constant. - (estimate_time_after_inlining, estimate_size_after_inlining): - Gracefully handle optimized out edges. - (read_predicate): Fix off by one error. - -2011-04-29 Nicola Pero - - * Makefile.in (ENABLE_MAINTAINER_RULES): New. - -2011-04-27 Xinliang David Li - - * tree-profile.c (init_ic_make_global_vars): Set - tls attribute on ic vars. - * coverage.c (coverage_end_function): Initialize - function_list with zero. - -2011-04-29 Richard Guenther - - * builtins.c (fold_builtin_classify_type): Use integer_type_node - for the type of the result. - (fold_builtin_isascii): Likewise. - (fold_builtin_toascii): Use integer_type_node where appropriate. - (fold_builtin_logb): Likewise. - (fold_builtin_frexp): Likewise. - (fold_builtin_strstr): Likewise. - (fold_builtin_strpbrk): Likewise. - (fold_builtin_fputs): Likewise. - (fold_builtin_sprintf): Likewise. - (fold_builtin_snprintf): Likewise. - (fold_builtin_printf): Likewise. - (do_mpfr_remquo): Use a proper type for the assigned constant. - (do_mpfr_lgamma_r): Likewise. - * dwarf2out.c (resolve_one_addr): Use size_int. - * except.c (init_eh): Likewise. - (assign_filter_values): Use integer_type_node for filter values. - (sjlj_emit_dispatch_table): Use integer_type_node for dispatch - indices. - * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node - for EH region numbers. - * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node - for the shift amount. - -2011-04-29 Richard Guenther - - * expr.h (expand_shift): Rename to ... - (expand_variable_shift): ... this. - (expand_shift): Take a constant shift amount. - * expmed.c (expand_shift): Rename to ... - (expand_variable_shift): ... this. - (expand_shift): New wrapper around expand_variable_shift. - * expr.c (convert_move, emit_group_load_1, emit_group_store, - optimize_bitfield_assignment_op, store_field, expand_expr_real_2, - expand_expr_real_1, reduce_to_bit_field_precision): Adjust. - * expmed.c (store_fixed_bit_field, extract_bit_field_1, - extract_fixed_bit_field, extract_split_bit_field, expand_mult_const, - expand_mult, expand_widening_mult, expand_mult_highpart_adjust, - extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore, - emit_store_flag_1, emit_store_flag): Likewise. - * builtins.c (expand_builtin_signbit): Likewise. - * calls.c (load_register_parameters): Likewise. - * function.c (assign_parm_setup_block): Likewise. - * lower-subreg.c (resolve_shift_zext): Likewise. - * optabs.c (widen_bswap, expand_abs_nojump, - expand_one_cmpl_abs_nojump, expand_float): Likewise. - * spu/spu.c (spu_expand_extv): Likewise. - * sparc/sparc.c (sparc32_initialize_trampoline): Likewise. - -2011-04-29 Richard Guenther - - * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node - for the remapped region number. - * predict.c (build_predict_expr): Use integer_type_node for the - predict kind. - * fold-const.c (fold_binary_loc): Use integer_type_node for - the shift amount. Use a proper type for the PLUS_EXPR operand. - -2011-04-29 Michael Matz - - * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override - other trees that just builtins. - (lto_record_common_node): Don't leave NULL TYPE_CANONICAL. - -2011-04-29 Richard Guenther - - * tree-nested.c (get_trampoline_type): Use size_int. - (get_nl_goto_field): Likewise. - * tree-eh.c (lower_try_finally_switch): Use integer_type_node - for all indexes. - (lower_eh_constructs_2): Likewise. - (lower_resx): Likewise. - (lower_eh_dispatch): Likewise. - * tree-mudflap.c (mf_build_string): Use size_int. - (mudflap_register_call): Use integer_type_node for the flag. - (mudflap_enqueue_constant): Use size_int. - * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR - instead of rebuilding it. - -2011-04-29 Richard Guenther - - * tree-ssa-structalias.c (get_fi_for_callee): Restructure. - Handle OBJ_TYPE_REF. - (find_func_aliases_for_call): Use it more consistently. - -2011-04-29 Alexandre Oliva - - * haifa-sched.c (last_nondebug_scheduled_insn): New. - (rank_for_schedule): Use it. - (schedule_block): Set it. - -2011-04-28 David Li - - * tree.c (crc32_string): Use crc32_byte. - (crc32_byte): New function. - * tree.h (crc32_byte): New function. - * gcov.c (read_graph_file): Handle new cfg_cksum. - (read_count_file): Ditto. - * profile.c (instrument_values): Ditto. - (get_exec_counts): Ditto. - (read_profile_edge_counts): Ditto. - (compute_branch_probabilities): Ditto. - (compute_value_histograms): Ditto. - (branch_prob): Ditto. - (end_branch_prob): Ditto. - * coverage.c (read_counts_file): Ditto. - (get_coverage_counts): Ditto. - (tree_coverage_counter_addr): Ditto. - (coverage_checksum_string): Ditto. - (coverage_begin_output): Ditto. - (coverage_end_function): Ditto. - (build_fn_info_type): Ditto. - (build_fn_info_value): Ditto. - * libgcov.c (gcov_exit): Ditto. - * gcov-dump.c (tag_function): Ditto. - (compute_checksum): Remove. - -2011-04-29 Alan Modra - - * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle - unspec plus offset. Tidy macho code. - -2011-04-29 Martin Jambor - - * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph - node instead of a decl. Update all callers. - * cgraph.h: Update declaration. - -2011-04-28 Ira Rosen - - PR tree-optimization/48765 - * tree-vectorizer.h (vect_make_slp_decision): Return bool. - * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument - to indicate if loop aware SLP is being used. Scan the statements - and update the vectorization factor according to the type of - vectorization before statement analysis. - (vect_analyze_loop_2): Get a return value from vect_make_slp_decision, - pass it to vect_analyze_loop_operations. - (vectorizable_reduction): Set number of copies to 1 in case of pure - SLP statement. - * tree-vect-stmts.c (vectorizable_conversion, - vectorizable_assignment, vectorizable_shift, - vectorizable_operation, vectorizable_type_demotion, - vectorizable_type_promotion, vectorizable_store, vectorizable_load): - Likewise. - (vectorizable_condition): Move the check that it is not SLP - vectorization before the number of copies check. - * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided - to vectorize the loop using SLP. - -2011-04-28 Jakub Jelinek - - PR middle-end/48597 - * final.c (final_scan_insn): Call dwarf2out_frame_debug even for - inline asm. - -2011-04-28 Joseph Myers - - * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | - *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC. - (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | - i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, - x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use - linux*.h headers. - * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define. - * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine. - * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. - * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. - * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. - * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use - REG_NAME. - * config/i386/linux.h (REG_NAME): Don't define. - * config/i386/linux64.h (REG_NAME): Don't define. - * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): - Undefine before defining. - -2011-04-28 Jan Hubicka - - * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take - nonconstant_names array. - (estimate_function_body_sizes): Build nonconstant_names array; handle - BUILT_IN_CONSTANT_P. - -2011-04-28 Richard Guenther - - PR bootstrap/48804 - Revert - 2011-04-28 Richard Guenther - - * tree-ssa-structalias.c (solve_constraints): Build succ graph - as late as possible. - -2011-04-28 Richard Guenther - - * tree-ssa-structalias.c (dump_constraint): Don't end the line. - (debug_constraint): Do it here. - (dump_constraints): And here. - (rewrite_constraints): And here. - (dump_constraint_edge): Remove. - (dump_constraint_graph): Rewrite to produce DOT output. - (solve_constraints): Build succ graph as late as possible. - Dump constraint graphs before and after solving. - -2011-04-28 Richard Guenther - - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): - New function split out from ... - (find_func_aliases): ... here. Call it. - (find_func_aliases_for_call): Likewise. - -2011-04-27 Gabriel Dos Reis - - * internal-fn.h (internal_fn_name_array): Declare. - (internal_fn_flags_array): Likewise. - -2011-04-27 Uros Bizjak - - * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize, - ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp. - Move from sse.md. - (ssemodefsuffix): Remove. - (ssevecmodesuffix): New mode attribute. - (fix_truncdi_sse, fix_truncsi_sse, - *float2_mixed_interunit, - *float2_mixed_nointerunit, - *float2_sse_interunit, - *float2_sse_nointerunit, setcc__sse, - *sqrt2_sse, sse4_1_round2, 3, - *ieee_smin3, *ieee_smax3): Adjust assembler templates for - ssemodesuffix mode attribute. - (float splitters): Use ssevecmodesuffix mode attribute. - * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode. - (sseinsmode): Rename from avxvecmode. - (avxsizesuffix): Rename from avxmodesuffix. - (sseintvecmode): Rename from avxpermvecmode. - (ssedoublevecmode): Rename from ssedoublesizemode. - (ssehalfvecmode): Rename from avxhalfvecmode. - (ssescalarmode): Rename from avxscalarmode. - (_comi, _ucomi, sse4a_movnt): Adjust assembler - templates for ssemodesuffix mode attribute. - (*andnot3, *3): Use ssevecmodesuffix - mode attribute. - - Adjust RTX patterns globally for renamed mode attributes. - -2011-04-27 Jan Hubcika - - * ipa-inline.h (struct inline_edge_summary): Add predicate pointer. - * ipa-inline-analysis.c: Include alloc-pool.h. - (edge_predicate_pool): New. - (trye_predicate_p): New function - (false_predicate_p): New function. - (add_clause): Sanity check that false clauses are "optimized"; - never add clauses to predicate that is already known to be false. - (and_predicate): Use flase_predicate_p. - (evaulate_predicate): Rename to ... - (evaluate_predicate): ... this one; update all callers; assert - that false is not listed among possible truths. - (dump_predicate): Use true_predicate_p. - (account_size_time): Use false_predicate_p. - (evaulate_conditions_for_edge): Rename to ... - (evaluate_conditions_for_edge) ... this one. - (edge_set_predicate): New function. - (inline_edge_duplication_hook): Duplicate edge predicates. - (inline_edge_removal_hook): Free edge predicates. - (dump_inline_edge_summary): Add INFO parameter; dump edge predicates. - (dump_inline_summary): Update. - (estimate_function_body_sizes): Set edge predicates. - (estimate_calls_size_and_time): Handle predicates. - (estimate_callee_size_and_time): Update. - (remap_predicate): Add toplev_predicate; update comment. - (remap_edge_predicates): New function. - (inline_merge_summary): Compute toplev predicate; update. - (read_predicate): New function. - (read_inline_edge_summary): Use it. - (inline_read_section): Likewise. - (write_predicate): New function. - (write_inline_edge_summary): Use it. - (inline_write_summary): Likewise. - (inline_free_summary): Free alloc pool and edge summary vec. - -2011-04-27 Richard Guenther - - * tree-ssa-structalias.c (changed_count): Remove. - (changed): Use a bitmap. - (unify_nodes): Adjust. - (do_sd_constraint): Likewise. - (do_ds_constraint): Likewise. - (do_complex_constraint): Likewise. - (solve_graph): Likewise. - -2011-04-27 Jan Hubicka - - * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue. - -2011-04-27 Uros Bizjak - - * config/i386/predicates.md (avx_vpermilp_*_operand): Remove. - (avx_vperm2f128_*_operand): Ditto. - * config/i386/sse.md (*avx_vpermilp): Remove operand2 predicate. - Use avx_vpermilp_parallel in insn condition. - (*avx_vperm2f128_nozero): Remove operand3 predicate. - Use avx_vperm2f128_parallel in insn condition. - -2011-04-27 Richard Guenther - - * Makefile.in (tree-ssa-structalias.o): Remove - gt-tree-ssa-structalias.h dependency. - (GTFILES): Remove tree-ssa-structalias.c. - * tree.c (allocate_decl_uid): New function. - (make_node_stat): Use it. - (copy_node_stat): Likewise. - * tree.h (allocate_decl_uid): Declare. - * tree-ssa-alias.h (delete_alias_heapvars): Remove. - * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars. - * tree-flow.h (struct var_ann_d): Remove is_heapvar flag. - * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag. - * tree-ssa-structalias.c (heapvar_for_stmt): Remove. - (struct heapvar_map): Likewise. - (heapvar_map_eq, heapvar_map_hash, heapvar_lookup, - heapvar_insert): Likewise. - (make_heapvar_for): Rename to ... - (make_heapvar): ... this. Simplify. - (fake_var_decl_obstack): New global var. - (build_fake_var_decl): New function. - (make_constraint_from_heapvar): Adjust. - (handle_lhs_call): Likewise. - (create_function_info_for): Likewise. - (intra_create_variable_infos): Likewise. - (init_alias_vars): Allocate fake_var_decl_obstack. - (init_alias_heapvars, delete_alias_heapvars): Remove. - (compute_points_to_sets): Do not call init_alias_heapvars. - (ipa_pta_execute): Likewise. - (delete_points_to_sets): Free fake_var_decl_obstack. - -2011-04-27 Ulrich Weigand - - * config/spu/divmovti4.c (union qword_UTItype): New data type. - (si_from_UTItype, si_to_UTItype): New functions. - (__udivmodti4): Use them to implement type-punning. - * config/spu/multi3.c (union qword_TItype): New data type. - (si_from_TItype, si_to_TItype): New functions. - (__multi3): Use them to implement type-punning. - -2011-04-27 Ulrich Weigand - - * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier. - -2011-04-27 Jan Hubicka - - * ipa-prop.c (function_insertion_hook_holder): New holder. - (ipa_add_new_function): New function. - (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks): - Register/deregister holder. - -2011-04-27 Richard Guenther - - PR tree-optimization/48772 - * tree-ssa-pre.c (eliminate): Update call stmts after elimination only. - -2011-04-27 Richard Guenther - - * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix - TARGET_MEM_REF handling. - -2011-04-27 Nick Clifton - - * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS, - ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS. - (ACC_REGS): New macro. Alias for QUAD_ACC_REGS. - (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS. - (FPR_REGS): New macro. Alias for QUAD_ACC_REGS. - (EVEN_REGS): New macro. Alias for QUAD_REGS. - * config/frv/frv.c (frv_secondary_reload_class): Remove use of - duplicate register classes. - (frv_class_likely_spilled_p): Likewise. - (frv_register_move_cost): Likewise. - - * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the - end of the regno_reg_class array. - -2011-04-27 Jakub Jelinek - - PR c/48742 - * c-typeck.c (build_binary_op): Don't wrap arguments if - int_operands is true. - -2011-04-26 Kaz Kojima - - PR target/48767 - * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call - targetm.calls.must_pass_in_stack for void type. - -2011-04-26 Jan Hubicka - - * cgraphbuild.c (build_cgraph_edges): Update call - of cgraph_create_edge and cgraph_create_indirect_edge. - * cgraph.c (cgraph_create_edge_including_clones, - cgraph_create_edge_1, cgraph_allocate_init_indirect_info, - cgraph_update_edges_for_call_stmt_node): Do not take nest - argument; do not initialize call_stmt_size/time. - (dump_cgraph_node): Do not dump nest. - (cgraph_clone_edge): Do not take loop_nest argument; - do not propagate it; do not clone call_stmt_size/time. - (cgraph_clone_node): Likewise. - (cgraph_create_virtual_clone): Update. - * cgraph.h (struct cgraph_edge): Remove - call_stmt_size/call_stmt_time/loop_nest. - (cgraph_create_edge, cgraph_create_indirect_edge, - cgraph_create_edge_including_clones, cgraph_clone_node): Update - prototype. - * tree-emutls.c (gen_emutls_addr): Update. - * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle - loop_nest; handle indirect calls, too. - (clone_inlined_nodes): Do not care about updating inline summaries. - * cgraphunit.c (cgraph_copy_node_for_versioning): Update. - * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not - stream call_stmt_size/call_stmt_time/loop_nest. - * ipa-inline.c (edge_badness): Update. - (ipa_inline): dump summaries after inlining. - * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t): - New. - (inline_edge_summary): New function. - * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder. - (inline_edge_removal_hook): Handle edge summaries. - (inline_edge_duplication_hook): New hook. - (inline_summary_alloc): Alloc hooks. - (initialize_growth_caches): Do not register removal hooks. - (free_growth_caches); Do not free removal hook. - (dump_inline_edge_summary): New function. - (dump_inline_summary): Use it. - (estimate_function_body_sizes, estimate_edge_size_and_time): Update. - (inline_update_callee_summaries): New function. - (inline_merge_summary): Use it. - (do_estimate_edge_time, do_estimate_edge_growth): Update. - (read_inline_edge_summary): New function. - (inline_read_section): Use it. - (write_inline_edge_summary): New function. - (inline_write_summary): Use it. - (inline_free_summary): Free edge new holders. - * tree-inline.c (copy_bb): Update. - -2011-04-26 Jason Merrill - - * tree-eh.c (lower_try_finally_switch): Create the label along with - the CASE_LABEL_EXPR. - -2011-04-26 David S. Miller - Rainer Orth - - * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment. - * configure: Regenerate. - -2011-04-26 Michael Meissner - - PR target/48258 - * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector - reduction. - (VEC_reduc): New code iterator and splitters for vector reduction. - (VEC_reduc_name): Ditto. - (VEC_reduc_rtx): Ditto. - (reduc__v2df): Vector reduction expanders for VSX. - (reduc__v4sf): Ditto. - - * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add - support for extracting SF on VSX. - - * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for - generating xscvspdp. - (vsx_extract_v4sf): New insn to extract SF from V4SF vector. - (vsx_reduc__v2df): New insns and splitters for - double add, minimum, maximum vector reduction. - (vsx_reduc__v4sf): Ditto. - (vsx_reduc__v2df2_scalar): New combiner insn to - optimize double vector reduction. - (vsx_reduc__v4sf_scalar): Ditto. - -2011-04-26 Joseph Myers - - * config/fr30/fr30.h (inhibit_libc): Don't define. - * config/m32r/m32r-protos.h: Correct comment. - * config/v850/v850.h (GHS_default_section_names, - GHS_current_section_names): Use tree, not union tree_node *. - -2011-04-26 Xinliang David Li - - * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code. - * c-family/c-opts.c (c_common_handle_option): Set - warn_maybe_uninitialized. - * opts.c (common_handle_option): Ditto. - * common.opt: New option. - * tree-ssa.c (warn_uninit): Add one more parameter. - (warn_uninitialized_var): Pass warning code. - * tree-flow.h: Interface change. - -2011-04-26 Rainer Orth - - * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI. - (WINT_TYPE_SIZE): Use INT_TYPE_SIZE. - (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards. - -2011-04-26 Rainer Orth - - * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove. - * config/mips/mips.opt (mmips-tfile): Remove. - - * doc/install.texi (Specific, mips-*-*): Move mips-tfile, - mips-tdump reference to ... - (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX. - * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS - reference by Tru64 UNIX. - -2011-04-26 Jakub Jelinek - - PR debug/48768 - * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result - is error_mark_node, set value to NULL. - - PR tree-optimization/48734 - * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up - if return value from maybe_fold_*_comparsions isn't something - the code is prepared to handle. - -2011-04-26 Uros Bizjak - - * config/i386/predicates.md (ext_QIreg_operand): Remove extra - mode check. - (ext_QIreg_nomode_operands): Remove. - * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand. - (*andsi_1): Ditto. - (*andhi_1): Ditto. - -2011-04-26 Andrew Stubbs - - * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial. - -2011-04-26 Richard Guenther - - * c-typeck.c (build_unary_op): Do not expand array-refs via - pointer arithmetic. Only adjust qualifiers for function types. - -2011-04-26 Richard Guenther - - PR middle-end/48694 - * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag. - * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs - compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees - with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set. - -2011-04-25 Paolo Carlini - - * doc/extend.texi: Document __underlying_type. - -2011-04-25 Segher Boessenkool - - * config/rs6000/titan.md (automata_option "progress"): Remove. - -2011-04-25 Jeff Law - - * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too. - -2011-04-25 Jan Kratochvil - - * system.h (ENUM_BITFIELD): Remove. - -2011-04-25 Maxim Kuvyrkov - Eric Botcazou - - * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals - for STORE_FLAG_VALUE==-1 case. - -2011-04-24 Richard Sandiford - - PR target/43804 - * config/m68k/constraints.md (T): Allow PIC operands that satisfy - LEGITIMATE_PIC_OPERAND_P. - -2011-04-24 Jan Hubicka - - * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette - WPA hack. - * ipa-prop.h (ipa_get_param, ipa_is_param_used, - ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty, - ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds. - * ipa-inline-analysis.c (add_clause): Fix clause ordering. - (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate): - Sanity check predicate length. - (remap_predicate): Likewise; sanity check jump functions. - (inline_read_section, inline_write_summary): Sanity check - predicate length. - -2011-04-24 Paolo Carlini - - PR other/48748 - * doc/extend.texi (Type Traits): Document __is_standard_layout, - __is_literal_type, and __is_trivial; update throughout about - possibly cv-qualified void types. - -2011-04-24 Gerald Pfeifer - - * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS - testsuite and make it version agnostic. - -2011-04-22 Jan Hubicka - - * ipa-inline-analysis.c (inline_write_summary): Fix thinko. - -2011-04-23 Jakub Jelinek - - PR c/48685 - * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting - to VOID_TYPE even around MODIFY_EXPR. - -2011-04-22 Mike Stump - - * gensupport.c (read_md_rtx): Fix typo in comment. - * config/cris/cris.opt (moverride-best-lib-options): Fix typo in - comment. - -2011-04-22 Jan Hubicka - - * gengtype.c (open_base_files): Add ipa-inline.h include. - * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to - ipa-prop.c; update all uses. - * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here. - * ipa-inline-transform.c (inline_call): Use inline_merge_summary to - merge summary of inlined function into former caller. - * ipa-inline.c (max_benefit): Remove. - (edge_badness): Compensate for removal of benefits. - (update_caller_keys): Use - reset_node_growth_cache/reset_edge_growth_cache. - (update_callee_keys): Likewise. - (update_all_callee_keys): Likewise. - (inline_small_functions): Do not collect max_benefit; do not reset - estimated_growth; call free_growth_caches and initialize_growth_caches. - * ipa-inline.h (struct condition, type clause_t, struct predicate, - struct size_time_entry): New structures. - (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants. - (inline_summary): Remove size_inlining_benefit, time_inlining_benefit - and estimated_growth. - (edge_growth_cache_entry): New structure. - (node_growth_cache, edge_growth_cache): New global vars. - (estimate_growth): Turn into inline. - (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time, - initialize_growth_caches, free_growth_caches): Declare. - (estimate_edge_growth): Rewrite. - (estimate_edge_time): Implement as inline cache lookup. - (reset_node_growth_cache, reset_edge_growth_cache): New inline - functions. - (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE. - (NUM_CONDITIONS): New constant. - (predicate_conditions): New enum. - (IS_NOT_CONSTANT): New constant. - (edge_removal_hook_holder): New var. - (node_growth_cache, edge_growth_cache): New global vars. - (true_predicate, single_cond_predicate, false_predicate, - not_inlined_predicate, add_condition, add_clause, and_predicates, - or_predicates, predicates_equal_p, evaulate_predicate, dump_condition, - dump_clause, dump_predicate, account_size_time, - evaulate_conditions_for_edge): New functions. - (inline_summary_alloc): Move to heap. - (inline_node_removal_hook): Clear condition and entry vectors. - (inline_edge_removal_hook): New function. - (initialize_growth_caches, free_growth_caches): New function. - (dump_inline_summary): Update. - (edge_execution_predicate): New function. - (will_be_nonconstant_predicate): New function. - (estimate_function_body_sizes): Compute BB and constantness predicates. - (compute_inline_parameters): Do not clear estimated_growth. - (estimate_edge_size_and_time): New function. - (estimate_calls_size_and_time): New function. - (estimate_callee_size_and_time): New function. - (remap_predicate): New function. - (inline_merge_summary): New function. - (do_estimate_edge_time): New function based on... - (estimate_edge_time): ... this one. - (do_estimate_edge_growth): New function. - (do_estimate_growth): New function based on.... - (estimate_growth): ... this one. - (inline_analyze_function): Analyze after deciding on jump functions. - (inline_read_section): New function. - (inline_read_summary): Use it. - (inline_write_summary): Write all the new data. - * ipa-prop.c (ipa_get_param_decl_index): Export. - (ipa_lattice_from_jfunc): Move here from ipa-cp.c - * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc): - Declare. - (ipa_get_lattice): Move here from ipa-cp.c - * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c - * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11. - * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters, - cgraph_edge_inlinable_p): Remove. - * cgraphunit.c: Include ipainline.h - (cgraph_process_new_functions): Update call of - compute_inline_parameters. - -2011-04-22 Richard Guenther - - * tree.c (build_int_cst): Properly create canonicalized integer - constants. - (build_int_cst_type): Remove scary comments. - -2011-04-22 Xinliang David Li - - * toplev.c (process_options): Enable -Werror=coverage-mismatch - by default when -Wno-error is not specified. - * opts-global.c (decode_options): Remove call to - control_warning_options. - -2011-04-22 Jakub Jelinek - - PR tree-optimization/48717 - * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and - ~A + A optimizations use build_int_cst_type instead of build_int_cst. - -2011-04-22 Joseph Myers - - * config/bfin/bfin-protos.h (Mmode): Don't define. Expand - definition where used. - -2011-04-22 Jakub Jelinek - - PR c/48716 - * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also - TREE_STATIC variables declared inside of some OpenMP construct. - -2011-04-22 Martin Jambor - - PR middle-end/48585 - * tree-inline.c (copy_bb): Create new edges only for analyzed nodes. - -2011-04-22 Alexander Monakov - - PR c/36750 - * c-typeck.c (pop_init_level): Do not warn about initializing - with ` = {0}'. - -2011-04-22 Alan Modra - - * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL - when returning call_cookie. - (rs6000_function_ok_for_sibcall): Allow sibcalls via function - pointers, to functions with no more vector args than the current - function, and some non-local calls for ABI_V4. - * config/rs6000/rs6000.md (sibcall_nonlocal_aix32, - sibcall_nonlocal_aix64): Combine to .. - (sibcall_nonlocal_aix): ..this. Handle function pointer calls. - (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine.. - (sibcall_value_nonlocal_aix): ..likewise. - (*sibcall_nonlocal_sysv): Handle function pointer calls. - (sibcall_value_nonlocal_sysv): Likewise. Correct call cookie - operand. - * config/rs6000/darwin.md (sibcall_nonlocal_darwin64, - sibcall_value_nonlocal_darwin64, sibcall_symbolic_64, - sibcall_value_symbolic_64): Delete. - -2011-04-21 Xinliang David Li - - * cgraph.h: Remove pid. - * cgraph.c: Remove pid. - * value-prof.c (init_node_map): New function. - (del_node_map): New function. - (find_func_by_funcdef_no): New function. - (gimple_ic_transform): Call new function. - * cgraphunit.c (cgraph_finalize_function): Remove pid. - * function.c (get_last_funcdef_no): New function. - * function.h (get_last_funcdef_no): New function. - * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no - to libgcov function. - (tree-profiling): Call node map init and delete function. - -2011-04-21 Ian Lance Taylor - - * godump.c (go_format_type): Use exported Go name for anonymous - field name. - -2011-04-21 Nathan Froyd - - * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable. - Call builtin_function_type_list instead of builtin_function_type. - (UNARY, BINARY, TRINARY, QUAD): Likewise. - -2011-04-21 Nathan Froyd - - * config/arm/arm.c (arm_init_iwmmxt_builtins): Call - build_function_type_list instead of build_function_type. - Delete variable `endlink'. - -2011-04-21 Nathan Froyd - - * config/s390/s390.c (s390_init_builtins): Call - build_function_type_list instead of build_function_type. - -2011-04-21 Nathan Froyd - - * config/ia64/ia64.c (ia64_init_builtins): Call - build_function_type_list instead of builtin_function_type. - -2011-04-21 Easwaran Raman - - * cfgexpand.c (stack_var): Remove OFFSET... - (add_stack_var): ...and its reference here... - (expand_stack_vars): ...and here. - (stack_var_cmp): Sort by descending order of size. - (partition_stack_vars): Change heuristic. - (union_stack_vars): Fix to reflect changes in partition_stack_vars. - (dump_stack_var_partition): Add newline after each partition. - -2011-04-21 Dimitrios Apostolou - Jeff Law - - * gengtype-state.c (read_a_state_token): Fix argument to obstack_free. - * gengtype.c (matching_file_name_substitute): Likewise. - -2011-04-21 Richard Guenther - - PR lto/48703 - * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME. - -2011-04-21 Eric Botcazou - - * gimple.c (walk_gimple_op) : Fix couple of oversights. - -2011-04-21 Richard Guenther - - * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary - file name. - -2011-04-21 Richard Guenther - - * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle - MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs. - Use DECL_P, not SSA_VAR_P. - (ptr_derefs_may_alias_p): Likewise. - (ptr_deref_may_alias_ref_p_1): Likewise. - (decl_refs_may_alias_p): Likewise. - (refs_may_alias_p_1): Likewise. - (ref_maybe_used_by_call_p_1): Likewise. - (call_may_clobber_ref_p_1): Likewise. - (indirect_ref_may_alias_decl_p): Assume indirect refrences - are either MEM_REF or TARGET_MEM_REF. - (indirect_refs_may_alias_p): Likewise. - * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF - for MEM_EXPR of indirect calls. - -2011-04-21 Tristan Gingold - - * vmsdbgout.c (write_srccorr): Compute file length from the string. - (dst_file_info_struct): Remove flen field. - (lookup_filename): Remove code that set flen field. - -2011-04-21 Tristan Gingold - - * config/ia64/ia64.c (ia64_start_function): Add a guard. - -2011-04-21 Uros Bizjak - - PR target/48708 - * config/i386/i386.c (ix86_expand_vector_set) : Generate - vec_extract and vec_concat for non-SSE4_1 targets. - -2011-04-21 Richard Guenther - - * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle - return statements. - -2011-04-21 Joseph Myers - - * config/i386/cygming.h (union tree_node, TREE): Don't define or - undefine. - (FILE): Don't undefine. - -2011-04-21 Joseph Myers - - * config/alpha/alpha.c (struct machine_function): Use rtx, not - struct rtx_def *. - * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not - struct rtx_def *. - * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define. - * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *. - * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct - rtx_def *. - * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand - definitions where used. - * config/microblaze/microblaze.h (struct microblaze_args): Use - rtx, not struct rtx_def *. - * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct - rtx_def *. - * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *. - * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *. - * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx, - not struct rtx_def *. - * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not - struct rtx_def *. - * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct - rtx_def *. - * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *. - -2011-04-21 Richard Sandiford - - * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use - operand_equal_p to compare DR_BASE_ADDRESSes. - (vect_check_interleaving): Likewise. - -2011-04-21 Richard Sandiford - - PR target/46329 - * config/arm/arm.c (arm_legitimate_constant_p_1): Return false - for all Neon struct constants. - -2011-04-21 Richard Sandiford - - * target.def (legitimate_constant_p): New hook. - * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with... - (TARGET_LEGITIMATE_CONSTANT_P): ...this. - * doc/tm.texi: Regenerate. - * hooks.h (hook_bool_mode_rtx_true): Declare. - * hooks.c (hook_bool_mode_rtx_true): Define. - * system.h (LEGITIMATE_CONSTANT_P): Poison. - * calls.c (precompute_register_parameters): Replace uses of - LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p. - (emit_library_call_value_1): Likewise. - * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn) - (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise. - * ira-costs.c (scan_one_insn): Likewise. - * recog.c (general_operand, immediate_operand): Likewise. - * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise. - * reload1.c (init_eliminable_invariants): Likewise. - - * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a - mode argument. - * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete. - * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode - argument. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - * config/alpha/predicates.md (input_operand): Update call to - alpha_legitimate_constant_p. - - * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete. - * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise. - (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise. - * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (arm_legitimate_constant_p_1, thumb_legitimate_constant_p) - (arm_legitimate_constant_p): New functions. - (arm_cannot_force_const_mem): Make static. - - * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete. - * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete. - * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p - instead of bfin_legitimate_constant_p. - (bfin_legitimate_constant_p): Make static. Add a mode argument. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - - * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete. - * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete. - * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (frv_legitimate_constant_p): Make static. Add a mode argument. - - * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete. - * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise. - - * config/i386/i386-protos.h (legitimate_constant_p): Delete. - * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/i386/i386.c (legitimate_constant_p): Rename to... - (ix86_legitimate_constant_p): ...this. Make static. Add a mode - argument. - (ix86_cannot_force_const_mem): Update accordingly. - (ix86_legitimate_address_p): Likewise. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - * config/i386/i386.md: Update commentary. - - * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete. - * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (ia64_legitimate_constant_p): Make static. Add a mode argument. - - * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete. - * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (lm32_legitimate_constant_p): Make static. Add a mode argument. - - * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete. - * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise. - - * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete. - * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (m32r_legitimate_constant_p): New function. - - * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare. - * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of - LEGITIMATE_CONSTANT_P. - (LEGITIMATE_CONSTANT_P): Delete. - * config/m68k/m68k.c (m68k_expand_prologue): Call - m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P. - (m68k_legitimate_constant_p): New function. - * config/m68k/m68k.md: Update comments. - - * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete. - * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (mcore_legitimate_constant_p): New function. - - * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete. - * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/mep/mep.c (mep_legitimate_constant_p): Make static. - Add a mode argument. - (mep_legitimate_address): Update accordingly. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - - * config/microblaze/microblaze-protos.h (microblaze_const_double_ok): - Delete. - * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/microblaze/microblaze.c (microblaze_const_double_ok): Make - static. Check OP's mode for VOIDmode. - (microblaze_legitimate_constant_p): New function. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - - * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete. - * config/mips/mips.c (mips_legitimate_constant_p): New function. - (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - * config/mips/predicates.md: Update comments. - - * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete. - * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (mmix_legitimate_constant_p): Make static, return a bool, and take - a mode argument. - (mmix_print_operand_address): Update accordingly. - - * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p): - Delete. - * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make - static. Add a mode argument. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - - * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete. - * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (pa_legitimate_constant_p): New function. - - * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete. - * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (pdp11_legitimate_constant_p): New function. - - * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete. - * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (rs6000_legitimate_constant_p): New function. - - * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with... - (rx_legitimate_constant_p): ...this. - * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete. - * config/rx/rx.c (rx_is_legitimate_constant): Replace with... - (rx_legitimate_constant_p): ...this. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - * config/rx/rx.md (mov): Update accordingly. - - * config/s390/s390-protos.h (legitimate_constant_p): Delete. - * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/s390/s390.c (legitimate_constant_p): Rename to... - (s390_legitimate_constant_p): ...this. Make static, return a bool, - and add a mode argument. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - - * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete. - * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (sh_legitimate_constant_p): New function. - - * config/sparc/sparc-protos.h (legitimate_constant_p): Delete. - * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete. - * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (legitimate_constant_p): Rename to... - (sparc_legitimate_constant_p): ...this. Make static. Add a mode - argument. - (constant_address_p): Update accordingly. - - * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode - argument and return a bool. - * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete. - * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (spu_legitimate_constant_p): Add a mode argument and return a bool. - (spu_rtx_costs): Update accordingly. - * config/spu/predicates.md (vec_imm_operand): Likewise. - - * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete. - - * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete. - * config/v850/v850.c (v850_legitimate_constant_p): New function. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - - * config/vax/vax-protos.h (legitimate_constant_p): Delete. - * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise. - * config/vax/vax.c (legitimate_constant_p): Likewise. - - * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete. - * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define. - (xtensa_legitimate_constant_p): New function. - -2011-04-21 Richard Sandiford - - * target.def (cannot_force_const_mem): Add a mode argument. - * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly. - * doc/tm.texi: Regenerate. - * hooks.h (hook_bool_mode_rtx_false): Declare. - * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary. - (hook_bool_mode_const_rtx_true): Likewise. - (hook_bool_mode_rtx_false): New function. - * reload.c (CONST_POOL_OK_P): Take a mode argument and require it - to be non-VOID. Update call to cannot_force_const_mem. - (find_reloads): Update accordingly. - * varasm.c (force_const_mem): Update call to cannot_force_const_mem. - * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode - argument. - * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise. - * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call. - * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument. - * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise. - * config/frv/frv.c (frv_cannot_force_const_mem): Likewise. - * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise. - * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise. - * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to... - (m68k_cannot_force_const_mem): ...this new function. - * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode - argument. - (mips_const_insns, mips_legitimize_const_move): Update calls. - (mips_secondary_reload_class): Likewise. - * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to... - (pa_cannot_force_const_mem): ...this new function. - * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to... - (rs6000_cannot_force_const_mem): ...this new function. - * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode - argument. - * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise. - * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine - to... - (xtensa_cannot_force_const_mem): ...this new function. - -2011-04-20 Nathan Froyd - - * config/mips/mips.c (mips16_build_function_stub): Call - build_function_type_list instead of build_function_type. - (mips16_build_call_stub): Likewise. - -2011-04-20 Nathan Froyd - - * config/mep/mep.c (mep_init_builtins): Call build_function_type_list - instead of build_function_type. - -2011-04-20 Nathan Froyd - - * config/pa/pa.c (pa_init_builtins): Call build_function_type_list - instead of build_function_type. - -2011-04-20 Uros Bizjak - - PR target/48678 - * config/i386/i386.md (insv): Change operand 0 constraint to - "register_operand". Change operand 1 and 2 constraint to - "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate. - * config/i386/sse.md (sse4_1_pinsrb): Export. - (sse2_pinsrw): Ditto. - (sse4_1_pinsrd): Ditto. - (sse4_1_pinsrq): Ditto. - * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype. - * config/i386/i386.c (ix86_expand_pinsr): New. - -2011-04-20 Easwaran Raman - - * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable - containing union type only with -fstrict-aliasing. - -2011-04-20 Jim Meyering - - Remove useless if-before-free tests. - * calls.c (expand_call, save_area): Likewise. - * cfgcleanup.c (try_forward_edges): Likewise. - * collect2.c (collect_execute): Likewise. - * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise. - * config/mcore/mcore.c (mcore_expand_prolog): Likewise. - * coverage.c (coverage_checksum_string): Likewise. - * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise. - * cselib.c (cselib_init): Likewise. - * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise. - (df_set_clean_cfg): Likewise. - * function.c (free_after_compilation): Likewise. - * gcc.c (do_spec_1, main): Likewise. - * gcov.c (create_file_names): Likewise. - * gensupport.c (identify_predicable_attribute): Likewise. - * graphite-clast-to-gimple.c (save_clast_name_index): Likewise. - * graphite-sese-to-poly.c (free_data_refs_aux): Likewise. - * haifa-sched.c (haifa_finish_h_i_d): Likewise. - * ipa-prop.c (ipa_free_node_params_substructures): Likewise. - * ipa-pure-const.c (local_pure_const): Likewise. - * ipa-reference.c (propagate): Likewise. - * ira-costs.c (free_ira_costs): Likewise. - * ira.c (free_register_move_costs, build_insn_chain): Likewise. - * matrix-reorg.c (mat_free): Likewise. - * prefix.c (get_key_value): Likewise. - * profile.c (compute_value_histograms): Likewise. - * reload1.c (free_reg_equiv): Likewise. - * sched-deps.c (free_deps): Likewise. - * sel-sched-ir.c (fence_clear): Likewise. - * sese.c (set_rename, if_region_set_false_region): Likewise. - * tree-data-ref.c (free_rdg): Likewise. - * tree-eh.c (lower_try_finally): Likewise. - * tree-ssa-coalesce.c (delete_coalesce_list): Likewise. - * tree-ssa-live.c (delete_var_map): Likewise. - * tree-ssa-loop-ivopts.c (free_loop_data): Likewise. - * tree-ssa-pre.c (phi_trans_add): Likewise. - -2011-04-20 Jakub Jelinek - - PR tree-optimization/48611 - * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate - beyond ERT_MUST_NOT_THROW region. - -2011-04-20 Catherine Moore - - * config/mips/mips.opt (mfix-24k): New. - * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k. - * config/mips/mips.md (length): Increase by 4 for stores if - fixing 24K errata. - * config/mips/mips.c (mips_reorg_process_insns): Do not allow - all noreorder if fixing 24K errata. - * doc/invoke.texi: Document mfix-24k. - -2011-04-20 Chung-Lin Tang - - * config/arm/arm.c (arm_legitimize_reload_address): For NEON - quad-word modes, reduce to 9-bit index range when above 1016 limit. - -2011-04-20 Andrew Stubbs - - * config/arm/arm.c (arm_gen_constant): Move movw support .... - (const_ok_for_op): ... to here. - -2011-04-20 Kai Tietz - - * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y) - and (X && !Y) | (!X && Y) optimization to (X ^ Y). - -2011-04-20 Andrew Stubbs - - * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert. - -2011-04-20 Richard Guenther - - PR tree-optimization/47892 - * tree-if-conv.c (if_convertible_stmt_p): Const builtins - are if-convertible. - -2011-04-20 Eric Botcazou - - * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine. - -2011-04-20 Tristan Gingold - - * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld. - -2011-04-20 Georg-Johann Lay - - PR target/18145 - - * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete. - (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. - (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define. - (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section. - - * config/avr/avr-protos.h (avr_asm_output_aligned_common): - New prototype. - - * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define. - (avr_asm_named_section, avr_asm_output_aligned_common, - avr_output_data_section_asm_op, avr_output_bss_section_asm_op): - New functions to update... - (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables. - (avr_asm_init_sections): Overwrite section callbacks for - data_section, bss_section. - (avr_file_start): Move output of __do_copy_data, __do_clear_bss - from here to... - (avr_file_end): ...here. - -2011-04-20 Richard Guenther - - PR middle-end/48695 - * tree-ssa-alias.c (aliasing_component_refs_p): Compute base - objects and types here. Adjust for their offset before comparing. - -2011-04-20 Richard Sandiford - - * tree-vect-stmts.c (vectorizable_store): Only chain one related - statement per copy. - -2011-04-20 Richard Sandiford - - * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define. - (GIMPLE_H): Include $(INTERNAL_FN_H). - (OBJS-common): Add internal-fn.o. - (internal-fn.o): New rule. - * internal-fn.def: New file. - * internal-fn.h: Likewise. - * internal-fn.c: Likewise. - * gimple.h: Include internal-fn.h. - (GF_CALL_INTERNAL): New gf_mask. - (gimple_statement_call): Put fntype into a union with a new - internal_fn field. - (gimple_build_call_internal): Declare. - (gimple_build_call_internal_vec): Likewise. - (gimple_call_same_target_p): Likewise. - (gimple_call_internal_p): New function. - (gimple_call_internal_fn): Likewise. - (gimple_call_fntype): Return null for internal calls. - (gimple_call_set_fntype): Assert that the function is not internal. - (gimple_call_set_fn): Likewise. - (gimple_call_set_fndecl): Likewise. - (gimple_call_set_internal_fn): New function. - (gimple_call_addr_fndecl): Handle null functions. - (gimple_call_return_type): Likewise null types. - * gimple.c (gimple_build_call_internal_1): New function. - (gimple_build_call_internal): Likewise. - (gimple_build_call_internal_vec): Likewise. - (gimple_call_same_target_p): Likewise. - (gimple_call_flags): Handle calls to internal functions. - (gimple_call_fnspec): New function. - (gimple_call_arg_flags, gimple_call_return_flags): Use it. - (gimple_has_side_effects): Handle null functions. - (gimple_rhs_has_side_effects): Likewise. - (gimple_call_copy_skip_args): Handle calls to internal functions. - * cfgexpand.c (expand_call_stmt): Likewise. - * expr.c (expand_expr_real_1): Assert that the call isn't internal. - * gimple-fold.c (gimple_fold_call): Handle null functions. - (gimple_fold_stmt_to_constant_1): Don't fold - calls to internal functions. - * gimple-low.c (gimple_check_call_args): Handle calls to internal - functions. - * gimple-pretty-print.c (dump_gimple_call): Likewise. - * ipa-prop.c (ipa_analyze_call_uses): Handle null functions. - * tree-cfg.c (verify_gimple_call): Handle calls to internal functions. - (do_warn_unused_result): Likewise. - * tree-eh.c (same_handler_p): Use gimple_call_same_target_p. - * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions. - * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record - the target of a call. - (initialize_hash_element): Update accordingly. - (hashable_expr_equal_p): Use gimple_call_same_target_p. - (iterative_hash_hashable_expr): Handle calls to internal functions. - (print_expr_hash_elt): Likewise. - * tree-ssa-pre.c (can_value_number_call): Likewise. - (eliminate): Handle null functions. - * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions. - * tree-ssa-structalias.c (get_fi_for_callee): Likewise. - (find_func_aliases): Likewise. - * value-prof.c (gimple_ic_transform): Likewise. - (gimple_indirect_call_to_profile): Likewise. - * lto-streamer-in.c (input_gimple_stmt): Likewise. - * lto-streamer-out.c (output_gimple_stmt): Likewise. - -2011-04-19 Jan Hubicka - - * ipa-inline-transform.c (save_inline_function_body): Add comments. - * ipa-inline.c (inline_small_functions): Compute summaries first, - populate heap later. - -2011-04-19 Jan Hubicka - - * cgraph.h (save_inline_function_body): Remove. - * ipa-inline-transform.c: New file, broke out of... - * ipa-inline.c: ... this one; Update toplevel comment. - (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c; - make global. - (update_noncloned_frequencies): Move to ipa-inline-transform.c - (cgraph_mark_inline_edge): Rename to inline_call; move to - ipa-inline-transform.c. - (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes; - move to ipa-inline-transform.c - (recursive_inlining, inline_small_functions, flatten_function, - ipa_inline, inline_always_inline_functions, - early_inline_small_functions): Update. - (inline_transform): Move to ipa-inline-transform.c. - * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes): - Declare. - * Makefile.in (ipa-inline-transform.o): New file. - * cgraphunit.c (save_inline_function_body): Move to - ipa-inline-transform.c - -2011-04-19 DJ Delorie - - * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push - registers if we already know there aren't any. - (m32c_emit_epilogue): Don't emit a barrier here. - (m32c_emit_eh_epilogue): Likewise. - * config/m32c/blkmov.md (movstr): Don't fail on wrong-type - operands at expand time. - * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long - int" wchar type. - (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove - duplicates. Provide aliases instead. - * config/m32c/prologue.md (eh_return): Emit a barrier here. - (eh_epilogue): Add a "(return)" here as a hint to other parts of - the compiler. - -2011-04-19 Anatoly Sokolov - - * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove. - * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define. - (general_or_i64_p, sparc_register_move_cost): New function. - -2011-04-19 Rainer Orth - - * doc/install.texi (Configuration, --enable-threads): Remove mach. - Add lynx, mipssde. Sort table. - -2011-04-19 Xinliang David Li - - * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is - not negative. - -2011-04-19 Jakub Jelinek - - PR target/48678 - * config/i386/i386.md (movstrict): FAIL if operands[0] - is a SUBREG with non-MODE_INT mode inside of it. - -2011-04-19 Martin Jambor - - * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize - also according to actual contants. - * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function. - (gimple_fold_call): Use it. - * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare. - -2011-04-19 Martin Jambor - - * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar - non-pointer assignments. - -2011-04-19 Martin Jambor - - * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into - account anc_offset and otr_type from the indirect edge info. - * ipa-prop.c (get_ancestor_addr_info): New function. - (compute_complex_ancestor_jump_func): Assignment analysis moved to - get_ancestor_addr_info, call it. - (ipa_note_param_call): Do not initialize information about polymorphic - calls, return the indirect call graph edge. Remove the last - parameter, adjust all callers. - (ipa_analyze_virtual_call_uses): Process also calls to ancestors of - parameters. Initialize polymorphic information in the indirect edge. - -2011-04-19 Eric Botcazou - - PR lto/48148 - * gimple.c (gimple_types_compatible_p_1) : Do not merge - the types if they have different enumeration identifiers. - -2011-04-19 Jan Hubicka - - * cgraph.h (cgraph_optimize_for_size_p): Declare. - * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p. - * predict.c (cgraph_optimize_for_size_p): Break out from ... - (optimize_function_for_size_p) ... here. - -2011-04-19 Richard Guenther - - PR lto/48207 - * tree.c (free_lang_data): Do not reset the decl-assembler-name - langhook. - -2011-04-19 Eric Botcazou - - * tree-inline.c (expand_call_inline): Do not issue a -Winline warning - if DECL_NO_INLINE_WARNING_P is set on the function. - -2011-04-19 Bernd Schmidt - - PR fortran/47976 - * reload1.c (inc_for_reload): Return void. All callers changed. - (emit_input_reload_insns): Don't try to delete previous output - reloads to a register, or record spill_reg_store for autoincs. - -2011-04-19 Basile Starynkevitch - - * gengtype.h: Updated copyright year. - (struct input_file_st): Add inpisplugin field. - (type_fileloc): New function. - * gengtype.c - (write_typed_struct_alloc_def): Add gcc_assert. - (write_typed_alloc_defns): Ditto. Don't output for plugin files. - (write_typed_alloc_defns): Don't output for plugin files. - (input_file_by_name): Clear inpisplugin field. - (main): Set inpisplugin field for plugin files. - -2011-04-19 Nicola Pero - - * gengtype-state.c (string_eq): New. - (read_state): Use string_eq instead of strcmp when creating the - state_ident_tab. - -2011-04-19 Wei Guozhi - - PR target/47855 - * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype. - * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static - linkage. - * config/arm/constraints.md (Uu): New constraint. - * config/arm/arm.md (*arm_movqi_insn): Compute attr "length". - -2011-04-19 Tristan Gingold - - * config.gcc (-*-*-*vms): Added. - (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common - definitions moved. - * config/vms/vms-ld.c: New file. - * config/vms/vms-ar.c: New file. - * config/vms/t-vmsnative: New file. - -2011-04-18 Xinliang David Li - - * final.c (dump_basic_block_info): Use ASM_COMMENT_START. - -2011-04-18 Jakub Jelinek - - PR middle-end/48661 - * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL - if TREE_TYPE (v) is non-NULL. - - * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from - gimple_get_virt_mehtod_for_binfo. - * gimple.h (gimple_get_virt_method_for_binfo): Likewise. - * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust - callers. - * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. - -2011-04-18 Michael Matz - Steve Ellcey - - * expr.c (expand_expr_real_2) : If OP0 is a constant, - use its mode as source mode if it isn't VOIDmode. - -2011-04-18 Dennis, CHENG Renquan - - * doc/passes.texi: Fill crossref nodes. - -2011-04-18 Jim Meyering - - Fix doubled-word typos in comments and strings - * config/alpha/vms-unwind.h: s/for for/for/ - * config/arm/unwind-arm.h: Likewise. - * config/microblaze/microblaze.c: Likewise. - * config/sh/constraints.md: s/in in/in/ - * tree-cfg.c (verify_types_in_gimple_reference): Likewise. - -2011-04-18 Uros Bizjak - - * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove. - (AVX_FLOAT_MODE_P): Ditto. - (AVX128_VEC_FLOAT_MODE_P): Ditto. - (AVX256_VEC_FLOAT_MODE_P): Ditto. - (AVX_VEC_FLOAT_MODE_P): Ditto. - * config/i386/i386.md (UNSPEC_MASKLOAD): Remove. - (UNSPEC_MASKSTORE): Ditto. - * config/i386/sse.md (_movmsk): - Merge from _movmsk and - avx_movmsk256. Use VF mode iterator. - (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode - iterator. - (avx_maskload): New expander. - (avx_maskstore): Ditto. - (*avx_maskmov): New insn. - -2011-04-18 Jan Hubicka - - * ipa-inline.c (inline_small_functions): Fix pasto in previous patch. - - * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h - (want_inline_function_called_once_p): Break out the logic from - ipa_inline. - (edge_badness): Ensure that profile is not misupdated. - (lookup_recursive_calls): Prioritize by call frequencies. - (inline_small_functions): Move program size estimates here; - actually process whole queue even when unit growth has been - met. (to properly compute inline_failed reasons and for the - case unit size decrease.) Revisit comments on recursive inlining. - (ipa_inline): Remove unit summary code; first inline hot calls - of functions called once, cold calls next. - (order, nnodes): Remove unused variables. - * Makefile.in (ipa-inline.o): No longer depent on ggc files. - (GTFILES): Remove ipa-inline.c - * sel-sched.c (fill_insns): Silence uninitialized var warning. - -2011-04-18 Eric Botcazou - - * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype. - -2011-04-18 Jie Zhang - Richard Earnshaw - - * arm.c (neon_builtin_type_bits): Remove. - (typedef enum neon_builtin_mode): New. - (T_MAX): Don't define. - (typedef enum neon_builtin_datum): Remove bits, codes[], - num_vars and base_fcode. Add mode, code and fcode. - (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9 - VAR10): Change accordingly. - (neon_builtin_data[]): Change accordingly - (arm_init_neon_builtins): Change accordingly. - (neon_builtin_compare): Remove. - (locate_neon_builtin_icode): Remove. - (arm_expand_neon_builtin): Change accordingly. - - * arm.h (enum arm_builtins): Move to ... - * arm.c (enum arm_builtins): ... here; and rearrange builtin code. - - * arm.c (arm_builtin_decl): Declare. - (TARGET_BUILTIN_DECL): Define. - (enum arm_builtins): Correct ARM_BUILTIN_MAX. - (arm_builtin_decls[]): New. - (arm_init_neon_builtins): Store builtin declarations in - arm_builtin_decls[]. - (arm_init_tls_builtins): Likewise. - (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code. - (arm_builtin_decl): New. - -2011-04-18 Richard Guenther - - * tree.c (upper_bound_in_type): Build properly canonicalized - INTEGER_CSTs. - (lower_bound_in_type): Likewise. - -2011-04-18 Richard Guenther - - * gimple.h (gimple_call_addr_fndecl): New function. - (gimple_call_fndecl): Use it. - * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs - for direct calls. - * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding. - * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs. - -2011-04-18 Richard Guenther - - PR middle-end/48650 - * tree.c (build_string): STRING_CST is now derived from tree_typed. - -2011-04-18 Eric Botcazou - - PR lto/48492 - * cfgexpand.c (expand_debug_expr) : Return NULL for a - DECL_IN_CONSTANT_POOL without RTL. - -2011-04-18 Ulrich Weigand - Ira Rosen - - PR target/48252 - * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments - to match neon_vzip/vuzp/vtrn_internal. - * config/arm/neon.md (neon_vtrn_internal): Make both - outputs explicitly dependent on both inputs. - (neon_vzip_internal, neon_vuzp_internal): Likewise. - -2011-04-18 Jakub Jelinek - - PR tree-optimization/48616 - * tree-vect-stmts.c (vectorizable_shift): If SLP, determine - whether the shift is by scalar or vector based on whether all SLP - scalar stmts have the same rhs. - -2011-04-17 Chung-Lin Tang - - * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC - memory operands. - -2011-04-17 Richard Sandiford - - PR target/43700 - * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global - registers. - -2011-04-17 Jan Hubicka - - * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend. - * cgrpahunit.c (cgraph_finalize_function): Do not set - finalized_by_frontend. - * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream - finalized_by_frontend. - -2011-04-17 Jan Hubicka - - * cgraph.c (cgraph_clone_node): Do not handle vtable_method - * cgraph.h (struct cgraph_local_info): Drop vtable_method. - * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method. - * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable - method. - * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in - gimple-fold.c - * varasm.c (mark_decl_referenced): Drop vtable_method handling code. - -2011-04-17 Eric Botcazou - - PR lto/48538 - * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data - is non-null before accessing it. - (input_cgraph): Remove trailing spaces. - -2011-04-17 Revital Eres - - * params.def (sms-min-sc): New param flag. - * modulo-sched.c (sms_schedule): Use it. - * doc/invoke.texi (sms-min-sc): Document it. - -2011-04-17 Jan Hubicka - - * lto-symtab.c (lto_cgraph_replace_node): When call statement is - present, also set gimple_call_set_cannot_inline. - * ipa-inline.c: Update toplevel comment. - (MAX_TIME): Remove. - (cgraph_clone_inlined_nodes): Fix linebreaks. - (cgraph_check_inline_limits): Restructure to ... - (caller_growth_limits): ... this one; be more tolerant - on growth in nested inline chains; add explanatory comment; - fix stack accounting thinko introduced by previous patch. - (cgraph_default_inline_p): Remove. - (report_inline_failed_reason): New function. - (can_inline_edge_p): New function. - (can_early_inline_edge_p): New function. - (leaf_node_p): Move upwards in file. - (want_early_inline_function_p): New function. - (want_inline_small_function_p): New function. - (want_inline_self_recursive_call_p): New function. - (cgraph_edge_badness): Rename to ... - (edge_badness) ... this one; fix linebreaks. - (update_edge_key): Update call of edge_baddness; add - detailed dump about queue updates. - (update_caller_keys): Use can_inline_edge_p and - want_inline_small_function_p. - (cgraph_decide_recursive_inlining): Rename to... - (recursive_inlining): Use can_inline_edge_p and - want_inline_self_recursive_call_p; simplify and remove no longer - valid FIXME. - (cgraph_set_inline_failed): Remove. - (add_new_edges_to_heap): Use can_inline_edge_p and - want_inline_small_function_p. - (cgraph_decide_inlining_of_small_functions): Rename to ... - (inline_small_functions): ... this one; cleanup; use - can/want predicates; cleanup debug ouput; work edges till fibheap - is exhausted and do not stop once unit growth is reached; remove - later loop processing remaining edges. - (cgraph_flatten): Rename to ... - (flatten_function): ... this one; use can_inline_edge_p - and can_early_inline_edge_p predicates. - (cgraph_decide_inlining): Rename to ... - (ipa_inline): ... this one; remove unreachable nodes before - inlining functions called once; simplify the pass. - (cgraph_perform_always_inlining): Rename to ... - (inline_always_inline_functions): ... this one; use - DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate. - (cgraph_decide_inlining_incrementally): Rename to ... - (early_inline_small_functions): ... this one; simplify - using new predicates; cleanup; make dumps prettier. - (cgraph_early_inlining): Rename to ... - (early_inliner): newer inline regular functions into always-inlines; - fix updating of call stmt summaries. - (pass_early_inline): Update for new names. - (inline_transform): Fix formating. - (gate_cgraph_decide_inlining): Rename to ... - (pass_ipa_inline): ... this one. - * ipa-inline.h (inline_summary): Remove disregard_inline_limits. - * ipa-inline-analysis.c (dump_inline_summary): Update. - (compute_inline_parameters): Do not compute disregard_inline_limits; - look for mismatching arguments. - (estimate_growth): Fix handlig of non-trivial self recursion. - (inline_read_summary): Do not read info->disregard_inline_limits. - (inline_write_summary): Do not write info->disregard_inline_limits. - * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove - and move all checks into can_inline_edge_p predicate; re-enable code - comparing optimization levels. - (expand_call_inline): Do not test inline_forbidden_into_p. - * Makefile.in (ipa-inline.o): Update arguments. - -2011-04-17 Revital Eres - - * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs. - -2011-04-17 Revital Eres - - * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails. - -2011-04-17 Michael Matz - - PR tree-optimization/48622 - PR lto/48645 - * ipa-inline-analysis.c (inline_read_summary): Read size/time - in same order as they're written. - -2011-04-16 John David Anglin - - * config/pa/predicates.md: Reorganize and simplify predicates. - Eliminate duplicate code checks. - (arith_operand): Rename to arith14_operand - (reg_or_ior_operand): Rename to reg_or_cint_ior_operand. - * config/pa/pa.md: Use renamed operands. - * config/pa/pa-protos.h (symbolic_operand): Delete declaration. - (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand, - arith11_operand, adddi3_operand, indexed_memory_operand, - symbolic_memory_operand, int11_operand, reg_or_cint_move_operand, - arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator, - borx_reg_operand, shadd_operand, arith_operand, read_only_operand, - move_dest_operand, move_src_operand, prefetch_cc_operand, - prefetch_nocc_operand, and_operand, ior_operand, arith32_operand, - uint32_operand, reg_before_reload_operand, reg_or_0_operand, - reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand, - div_operand, int5_operand, movb_comparison_operator, - ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand, - arith_double_operand, ireg_operand, lhs_lshift_operand, - pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator, - integer_store_memory_operand): Likewise. - * config/pa/pa.c (adddi3_operand): Move to predicates.md. - (integer_store_memory_operand, read_only_operand, - function_label_operand, borx_reg_operand, - non_hard_reg_operand): Likewise. - (eq_neq_comparison_operator): Delete unused operator. - (legitimize_pic_address): Use VOIDmode for mode argument in calls to - function_label_operand. - (emit_move_sequence): Likewise. - -2011-04-16 Uros Bizjak - - * config/i386/sse.md (sseunpackmode): New mode attribute. - (ssepackmode): Ditto. - (vec_pack_trunc_): Macroize expander from - vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator. - (vec_unpacks_lo_): Macroize expander from - vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator. - (vec_unpacks_hi_): Macroize expander from - vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator. - (vec_unpacku_lo_): Macroize expander from - vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator. - (vec_unpacku_hi_): Macroize expander from - vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator. - * config/i386/i386.c (ix86_expand_sse_unpack): Merge with - ix86_expand_sse4_unpack. - * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove. - -2011-04-16 Jan Hubicka - - * cgraphbuild.c: Include ipa-inline.h. - (reset_inline_failed): Use initialize_inline_failed. - * cgraph.c: Include ipa-inline.h. - (cgraph_create_node_1): Do not initialize estimated_growth. - (initialize_inline_failed): More to ipa-inline-analysis.c - (dump_cgraph_node): Do not dump inline flags. - * cgraph.h (cgraph_local_info): Remove inlineable, versionable - and disregard_inline_limits flags. - (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset, - time, size, estimated_growth. - * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary): - Update. - * cgraphunit.c (cgraph_decide_is_function_needed): Use - DECL_DISREGARD_INLINE_LIMITS. - (cgraph_analyze_function): Do not initialize - node->local.disregard_inline_limits. - * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream - inlinable, versionable and disregard_inline_limits. - * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, - cgraph_check_inline_limits, cgraph_default_inline_p, - cgraph_edge_badness, update_caller_keys, update_callee_keys, - add_new_edges_to_heap): Update. - (cgraph_decide_inlining_of_small_function): Update; set - CIF_FUNCTION_NOT_INLINABLE for uninlinable functions. - (cgraph_decide_inlining, cgraph_edge_early_inlinable_p, - cgraph_decide_inlining_incrementally): Update. - * ipa-inline.h (inline_summary): Add inlinable, versionable, - disregard_inline_limits, estimated_stack_size, stack_frame_offset, - time, size and estimated_growth parameters. - (estimate_edge_growth): Update. - (initialize_inline_failed): Declare. - * ipa-split.c: Include ipa-inline.h - (execute_split_functions): Update. - * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS. - (cgraph_remove_unreachable_nodes): Do not clear inlinable flag. - (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS. - * ipa-inline-analysis.c (inline_node_removal_hook): Update; set - estimated_growth to INT_MIN. - (inline_node_duplication_hook): Likewise. - (dump_inline_summary): Dump new fields. - (compute_inline_parameters): Update. - (estimate_edge_time, estimate_time_after_inlining, - estimate_size_after_inlining, estimate_growth, inline_read_summary, - inline_write_summary): - (initialize_inline_failed): Move here from cgraph.c. - * tree-sra.c: Include ipa-inline.h. - (ipa_sra_preliminary_function_checks): Update. - * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on - ipa-inline.h. - -2011-04-16 Uros Bizjak - - * config/i386/sse.md (V16): New mode iterator. - (VI1, VI8): Ditto. - (AVXMODEQI, AVXMODEDI): Remove. - (sse2, sse3): New mode attribute. - (mov): Use V16 mode iterator. - (*mov_internal): Merge with *avx_mov_internal. - (push1): Use V16 mode iterator. - (movmisalign): Ditto. - (_movu): Merge from - _movu and avx_movu. - (*_movu): Merge from - *_movu and *avx_movu. - (_movdqu): Merge from sse2_movdqu and - avx_movdqu. - (*_movdqu): Merge from *sse2_movdqu and - *avx_movdqu. - (_lddqu) Merge from sse3_lddqu and - avx_lddqu. - (_movnt): Merge with avx_movnt. - (_movnt): Merge from sse2_movntv2di and - avx_movnt. - * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for - renamed sse_movups, sse2_movupd and sse2_movdqu patterns. - -2011-04-16 Bernd Schmidt - - PR target/48629 - * haifa-sched.c (prune_ready_list, schedule_block): Use - sched_pressure_p rather than flag_sched_pressure. - -2011-04-15 Pat Haugen - - * config/rs6000/rs6000.c (call_ABI_of_interest): Call - cgraph_get_node instead of cgraph_get_create_node. - -2011-04-15 Jakub Jelinek - - * cfgexpand.c (expand_debug_expr): Use - simplify_gen_{unary,binary,ternary} instead of gen_rtx_*. - -2011-04-15 Michael Matz - - * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P. - * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P. - * function.c (gimplify_parameters): Ditto. - * gimplify.c (gimplify_vla_decl): Ditto. - - * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR. - (gimple_call_set_alloca_for_var): New inline function. - (gimple_call_alloca_for_var_p): Ditto. - * gimple.c (gimple_build_call_from_tree): Remember - CALL_ALLOCA_FOR_VAR_P state. - * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state. - - * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca - calls if they were for VLA objects. - -2011-04-15 Martin Jambor - - * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling - of ADR_EXPRs. - -2011-04-15 Martin Jambor - - PR middle-end/48601 - * tree-emutls.c (lower_emutls_function_body): Call - cgraph_get_create_node instead of cgraph_get_node. Do not assert the - result is non-NULL. - -2011-04-15 Nicola Pero - - * c-decl.c (detect_field_duplicates): Call - objc_detect_field_duplicates instead of objc_get_interface_ivars. - -2011-04-15 Nathan Froyd - - * gimple.h (gimple_asm_clobbers_memory_p): Declare. - * gimple.c (gimple_asm_clobbers_memory_p): Define. - * ipa-pure-const.c (check_stmt): Call it. - * tree-ssa-operands.c (get_asm_expr_operands): Likewise. - -2011-04-15 Richard Guenther - - PR tree-optimization/48290 - * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants. - Properly decide inhibiting propagation based on the valueized - operand. Do loop-closed SSA form preserving here ... - (init_copy_prop): ... not here. - -2011-04-15 H.J. Lu - - PR target/48612 - * config/i386/sse.md (*ieee_smin3): Switch mnemonics. - (*ieee_smax3): Likewise. - -2011-04-15 Andreas Krebbel - - * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2): - Replace match_operand with match_dup for the third operand in - these expanders. - -2011-04-15 Maxim Kuvyrkov - - * combine.c (subst, combine_simlify_rtx): Add new argument, use it - to track processing of conditionals. Update all callers. - (try_combine, simplify_if_then_else): Update. - -2011-04-15 Maxim Kuvyrkov - - * config/m68k/m68k.c (m68k_sched_variable_issue): Handle - -fsched-pressure. - -2011-04-15 Georg-Johann Lay - - * config/avr/avr.md ("rotl3",mode=HIDI): Use match_dup - instead of match_operand for operand 3. - -2011-04-15 Richard Sandiford - - * recog.h (insn_operand_data): Add an "allows_mem" field. - * genoutput.c (output_operand_data): Initialize it. - * optabs.c (maybe_legitimize_operand_same_code): New function. - (maybe_legitimize_operand): Use it when matching the original - op->value. - -2011-04-15 Eric Botcazou - - * gimplify.c: Fix issues in comments throughout. - (voidify_wrapper_expr): Fix long line. - (build_stack_save_restore): Likewise. - (gimplify_loop_expr): Likewise. - (gimplify_compound_lval): Likewise. - (gimplify_init_ctor_eval): Likewise. - (gimplify_modify_expr_rhs): Likewise. - (omp_notice_threadprivate_variable): Likewise. - -2011-04-15 Eric Botcazou - - * cfgexpand.c (expand_call_stmt): Convert the function type to the - original one if this is not a builtin function. - -2011-04-14 Jakub Jelinek - - PR target/48605 - * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM, - offset it as needed based on top 2 bits in operands[3], change - MEM mode to SFmode and mask those 2 bits away from operands[3]. - -2011-04-14 Nicola Pero - - * c-parser.c (c_parser_objc_protocol_definition): Updated for - change from objc_declare_protocols() to objc_declare_protocol(). - -2011-04-14 Uros Bizjak - - * config/i386/sse.md (sse4_1): New mode attribute. - (_blend): Macroize from - avx_blend and - sse4_1_blend using VF mode iterator. - (_blendv): Macroize from - avx_blendv and - sse4_1_blendv using VF mode iterator. - (_dp): Macroize from - avx_dp and - sse4_1_dp using VF mode iterator. - (sse4_1_mpsadbw): Merge with *avx_mpsadbw. - (sse4_1_packusdw): Merge with *avx_packusdw. - (sse4_1_pblendvb): Merge with *avx_pblendvb. - (sse4_1_pblendw): Merge with *avx_pblendw. - (avx_vtest): Use VF mode iterator. - (_round): Macroize from - avx_round256 and sse4_1_round using - VF mode iterator. - (sse4_1_round): Merge with - *avx_round. - (aesenc): Merge with *avx_aesenc. - (aesenclast): Merge with *avx_aesenclast. - (aesdec): Merge with *avx_aesdec. - (aesdeclast): Merge with *avx_aesdeclast. - (pclmulqdq): Merge with *pclmulqdq. - * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx): - New predicate. - (nonimm_not_xmm0_operand_maybe_avx): Ditto. - -2011-04-14 H.J. Lu - - PR middle-end/48608 - * cfgexpand.c (get_decl_align_unit): Renamed to ... - (align_local_variable): This. Update DECL_ALIGN. - (add_stack_var): Updated. - (expand_one_stack_var): Likewise. - -2011-04-14 Richard Guenther - - * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data): - Remove. - (dse_initialize_block_local_data, dse_leave_block, - record_voperand_set, get_stmt_uid): Likewise. - (dse_possible_dead_store_p): Allow any kind of killing stmt. - (dse_optimize_stmt): Remove voperand set handling code. - Simplify and improve to handle any kind of killing stmt. - (dse_record_phi): Remove. - (dse_enter_block): Simplify. - (tree_ssa_dse): Likewise. - * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins. - -2011-04-14 Jan Hubicka - - * cgraph.c (dump_cgraph_node): Do not dump inline summaries. - * cgraph.h (struct inline_summary): Move to ipa-inline.h - (cgraph_local_info): Remove inline_summary. - * ipa-cp.c: Include ipa-inline.h. - (ipcp_cloning_candidate_p, ipcp_estimate_growth, - ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary - accesor. - * lto-cgraph.c (lto_output_node): Do not stream inline summary. - (input_overwrite_node): Do not set inline summary. - (input_node): Do not stream inline summary. - * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries. - (cgraph_decide_inlining_incrementally): Do not try to estimate overall - growth; we do not have inline parameters computed for that anyway. - (cgraph_early_inlining): After inlining compute call_stmt_sizes. - * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h - (inline_summary_t): New type and VECtor. - (debug_inline_summary, dump_inline_summaries): Declare. - (inline_summary): Use VOCtor. - (estimate_edge_growth): Kill hack computing call stmt size directly. - * lto-section-in.c (lto_section_name): Add inline section. - * ipa-inline-analysis.c: Include lto-streamer.h - (node_removal_hook_holder, node_duplication_hook_holder): New holders - (inline_node_removal_hook, inline_node_duplication_hook): New functions. - (inline_summary_vec): Define. - (inline_summary_alloc, dump_inline_summary, debug_inline_summary, - dump_inline_summaries): New functions. - (estimate_function_body_sizes): Properly compute size/time of outgoing - calls. - (compute_inline_parameters): Alloc inline_summary; do not compute - size/time of incomming calls. - (estimate_edge_time): Avoid missing time summary hack. - (inline_read_summary): Read inline summary info. - (inline_write_summary): Write inline summary info. - (inline_free_summary): Free all hooks and inline summary vector. - * lto-streamer.h: Add LTO_section_inline_summary section. - * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies. - * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating. - -2011-04-14 Richard Sandiford - - * tree-vectorizer.h (vect_strided_store_supported): Add a - HOST_WIDE_INT argument. - (vect_strided_load_supported): Likewise. - (vect_permute_store_chain): Return void. - (vect_transform_strided_load): Likewise. - (vect_permute_load_chain): Delete. - * tree-vect-data-refs.c (vect_strided_store_supported): Take a - count argument. Check that the count is a power of two. - (vect_strided_load_supported): Likewise. - (vect_permute_store_chain): Return void. Update after above changes. - Assert that the access is supported. - (vect_permute_load_chain): Likewise. - (vect_transform_strided_load): Return void. - * tree-vect-stmts.c (vectorizable_store): Update calls after - above interface changes. - (vectorizable_load): Likewise. - (vect_analyze_stmt): Don't check for strided powers of two here. - -2011-04-14 Richard Guenther - - PR tree-optimization/48590 - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle - BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. - (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and - BUILT_IN_STACK_SAVE. - * tree-ssa-dce.c (propagate_necessity): Handle - BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. - -2011-04-14 Nicola Pero - - * c-parser.c (c_parser_objc_class_declaration): Updated call to - objc_declare_class. - -2011-04-14 Richard Guenther - - * tree.h (get_object_alignment_1): Declare. - * builtins.c (get_object_alignment_1): Split out worker from ... - (get_object_alignment): ... here. - * fold-const.c (get_pointer_modulus_and_residue): Use - get_object_alignment_1. - -2011-04-14 Richard Sandiford - - * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra - type parameter. - * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type - parameter. Generalise code to handle arrays as well as vectors. - (vect_setup_realignment): Update accordingly. - * tree-vect-stmts.c (vectorizable_store): Likewise. - (vectorizable_load): Likewise. - -2011-04-14 Richard Sandiford - - * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain - within the per-copy loop. - -2011-04-14 Richard Sandiford - - * tree-vect-stmts.c (vectorizable_load): Print the number of copies - in the dump file. - -2011-04-14 Richard Sandiford - - * doc/options.texi (Negative): Explicitly mention that the - Negative chain must be circular. - -2011-04-14 Nathan Froyd - - * function.h (block_chainon): Declare. - * function.c (block_chainon): Define. - -2011-04-14 Anatoly Sokolov - Eric Weddington - Georg-Johann Lay - - * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"): - New Includes - (avr_init_builtins, avr_expand_builtin, - avr_expand_delay_cycles, avr_expand_unop_builtin, - avr_expand_binop_builtin ): New functions. - (avr_builtin_id): New enum - (struct avr_builtin_description): New struct - (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins. - (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. - - * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU, - UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR, - UNSPECV_DELAY_CYCLES): new enumeration values - (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values - ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS - ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS - ("*rotlqi3_4"): rename insn to "rotlqi3_4" - ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3", - "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls", - "fmulsu"): New insns - - * config/avr/avr-c.c: fix line endings - (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP, - __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR, - __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP, - __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL, - __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU. - - * doc/extend.texi (AVR Built-in Functions): New node - (Target Builtins): Add documentation of AVR - built-in functions. - -2011-04-14 Georg-Johann Lay - - PR target/44643 - * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY - alone. Error if non-const data has attribute progmem. - -2011-04-13 Nathan Froyd - - * tree.h (struct tree_constructor): Include tree_typed instead of - tree_common. - * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as - TS_TYPED instead of TS_COMMON. - -2011-04-13 Uros Bizjak - - * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3. - (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3. - (sse2_psadbw): Merge with *avx_psadbw. - (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3. - (ssse3_phadddv4si3): Merge with *avx_phadddv4si3. - (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3. - (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3. - (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3. - (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3. - (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128. - (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3. - (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3. - (ssse3_psign3): Merge with *avx_psign3. - (ssse3_palignrti): Merge with *avx_palignrti. - -2011-04-13 Nathan Froyd - - * tree-flow.h (struct gimple_df): Make free_ssanames a VEC. - * tree-ssanames.c (fini_ssanames): VEC_free it. - (make_ssa_name_fn): Update for VECness of free_ssanames. - (release_ssa_name, release_dead_ssa_names): Likewise. - * tree.h (struct tree_ssa_name): Include tree_typed instead of - tree_common. - * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as - TS_TYPED instead of TS_COMMON. - -2011-04-13 Nathan Froyd - - * postreload-gcse.c (gcse_after_reload_main): Add calls to - statistics_counter_event. - * tree-ssa-copyrename.c (stats): Define. - (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to - statistics_counter_event. - * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define. - (bswap_stats, widen_mul_stats): Define. - (insert_reciprocals): Increment rdivs_inserted. - (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment - rfuncs_inserted. Add calls to statistics_counter_event. - (execute_cse_sincos_1): Increment inserted. - (execute_cse_sincos): Zeroize sincos_stats. Add call to - statistics_counter_event. - (execute_optimize_bswap): Zeroize bswap_stats. Increment fields - of bswap_stats. Add calls to statistics_counter_event. - (convert_mult_to_widen): Increment widen_mults_inserted. - (convert_plusminus_to_widen): Increment maccs_inserted. - (convert_mult_to_fma): Increment fmas_inserted. - (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add - calls to statistics_counter_event. - -2011-04-13 Vladimir Makarov - - PR rtl-optimization/48455 - * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of - `temp_costs->mem_cost'. - -2011-04-13 Jan Hubicka - - * ipa-inline.h: New file. - * ipa-inline-analysis.c: New file. Broken out of ... - * ipa-inline.c: ... this file; update toplevel comment; - include ipa-inline.h - (inline_summary): Move to ipa-inline.h - (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to - ipa-inline-analysis.c. - (cgraph_estimate_time_after_inlining): Rename to - estiamte_time_after_inlining; move to ipa-inline-analysis.c - (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename - to estimate_edge_growth. - (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c; - rename to estimate_size_after_inlining. - (cgraph_mark_inline_edge): Update for new naming convention. - (cgraph_check_inline_limits): Likewise. - (cgraph_edge_badness): Likewise. - (cgraph_decide_recursive_inlining): Likewise. - (cgraph_decide_inlining_of_small_functions): Likewise. - (cgraph_decide_inlining_incrementally): Likewise. - (cgraph_estimate_growth): Rename to estimate_growth; move to - ipa-inline-analysis.c. - (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c. - (estimate_function_body_sizes): Move to ipa-inline-analysis.c. - (compute_inline_parameters): Likewise. - (compute_inline_parameters_for_current): Likewise. - (pass_inline_parameters): Likewise. - (inline_indirect_intraprocedural_analysis): Likewise. - (analyze_function): Rename to inline_analyze_function; likewise. - (add_new_function): Move to ipa-inline-analysis.c. - (inline_generate_summary): Likewise. - (inline_read_summary): Likewise. - (inline_write_summary): Likewise. - * Makefile.in (ipa-inline-analysis.c): New file. - -2011-04-13 Rainer Orth - - * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check. - * configure: Regenerate. - -2011-04-13 Nathan Froyd - - * tree.h (struct tree_int_cst, struct real_value): Include tree_typed - instead of tree_common. - (struct tree_fixed_cst, struct tree_string, struct tree_complex): - Likewise. - * tree.c (initialize_tree_contains_struct): Mark such nodes as being - TS_TYPED rather than TS_COMMON. - * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN. - -2011-04-01 Georg-Johann Lay - - PR target/45263 - * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use - r20 around calls of __tablejump_elpm__ - -2011-04-13 Jakub Jelinek - - PR middle-end/48591 - * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is - NULL. - (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL. - -2011-04-13 Bernd Schmidt - - * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next. - (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps. - (cfi_vec): New typedef. - (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace - dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index. - (cie_cfi_vec): New static variable. - (cie_cfi_head): Delete. - (add_cfi): Accept a cfi_vec * as first argument. All callers and - declaration changed. Use vector rather than list operations. - (new_cfi): Don't initialize the dw_cfi_next field. - (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector - rather than list operations. - (lookup_cfa): Use vector rather than list operations. - (output_cfis): New argument upto. Accept a cfi_vec rather than - a dw_cfi_ref list head as argument. All callers changed. - Iterate over the vector using upto as a maximum index. - (output_all_cfis): New static function. - (output_fde): Use vector rather than list operations. Use the - new upto argument for output_cfis rather than manipulating a - list. - (dwarf2out_begin_prologue): Change initializations to match - new struct members. - (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index - from the vector length rather than searching for the end of a list. - Use output_all_cfis. - (convert_cfa_to_fb_loc_list): Use vector rather than list operations. - -2011-04-13 Nick Clifton - - * config/rx/rx.md (movmemsi): Do not use this pattern when - volatile pointers are involved. - -2011-04-13 Uros Bizjak - - * config/i386/sse.md (pinsrbits): Remove. - (sse2_packsswb): Merge with *avx_packsswb. - (sse2_packssdw): Merge with *avx_packssdw. - (sse2_packuswb): Merge with *avx_packuswb. - (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi. - (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi. - (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi. - (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi. - (vec_interleave_highv4si): Merge with *avx_interleave_highv4si. - (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si. - (*sse4_1_pinsrb): Merge with *avx_pinsr. - (*sse2_pinsrw): Merge with *avx_pinsr. - (*sse4_1_pinsrd): Merge with *avx_pinsr. - (*sse4_1_pinsrq): Merge with *avx_pinsrq. - (sse2_loadld): Merge with *avx_loadld. - (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx. - (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx. - (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx. - (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx. - (vec_concatv2di): Merge with *vec_concatv2di_avx. - -2011-04-12 Nathan Froyd - - * c-decl.c (union lang_tree_node): Check for TS_COMMON before - calling TREE_CHAIN. - * print-tree.c (print_node): Likewise. - * tree-inline.c (copy_tree_r): Likewise. - * c-lang.c (LANG_HOOKS_INIT_TS): Define. - * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED - instead of TS_COMMON. - * lto-streamer-out.c (lto_output_tree_pointers): Likewise. - * tree.c (initialize_tree_contains_struct): Handle TS_TYPED. - (copy_node_stat): Zero TREE_CHAIN only if necessary. - (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these... - (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL): - ...and these... - (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these... - * tree.h: ...here. - (TREE_CHAIN): Check for a TS_COMMON structure. - (TREE_TYPE): Check for a TS_TYPED structure. - -2011-04-12 Pat Haugen - - * config/rs6000/rs6000.c (call_ABI_of_interest): Call - cgraph_get_create_node instead of cgraph_node. - -2011-04-12 Nicola Pero - - * c-parser.c (c_parser_initelt): Updated call to - objc_build_message_expr. - (c_parser_postfix_expression): Likewise. - -2011-04-12 Kai Tietz - - * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add - MASK_MS_BITFIELD_LAYOUT bit. - -2011-04-12 Jakub Jelinek - - * combine.c (update_cfg_for_uncondjump): Instead of testing at_end - assert it is always true. - (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump - moves. - -2011-04-12 Nicola Pero - - * c-parser.c (c_lex_one_token): Rewritten conditional used when - compiling Objective-C to be more efficient. - -2011-04-12 Axel Freyn - - * opts-common.c (decode_cmdline_options_to_array): Remove variable - argv_copied. - -2011-04-12 Richard Sandiford - - * recog.h, genoutput.c, optabs.c: Revert last patch. - -2011-04-12 Ramana Radhakrishnan - - PR target/48090 - * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints. - -2011-04-12 Richard Sandiford - - * recog.h (insn_operand_data): Add an "allows_mem" field. - * genoutput.c (output_operand_data): Initialize it. - * optabs.c (maybe_legitimize_operand_same_code): New function. - (maybe_legitimize_operand): Use it when matching the original - op->value. - -2011-04-12 Richard Sandiford - - * genpreds.c (process_define_predicate): Move most processing - to gensupport.c. Continue to validate the expression. - * genrecog.c (did_you_mean_codes, compute_predicate_codes) - (process_define_predicate): Move processing to gensupport.c. - (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases. - * gensupport.c (did_you_mean_codes): Moved from genrecog.c. - (compute_predicate_codes): Moved from genrecog.c. Add lineno - argument. - (valid_predicate_name_p): New function, split out from old - genpreds.c:process_define_predicate. - (process_define_predicate): New function, combining code from - old genpreds.c and genrecog.c functions. - (process_rtx): Call it for DEFINE_PREDICATE and - DEFINE_SPECIAL_PREDICATE. - -2011-04-12 Richard Sandiford - - * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the - size of a '%A' memory reference. - (T_DREG, T_QREG): New neon_builtin_type_bits. - (arm_init_neon_builtins): Assert that the load and store operands - are neon_struct_operands. - (locate_neon_builtin_icode): Provide the neon_builtin_type_bits. - (NEON_ARG_MEMORY): New builtin_arg. - (neon_dereference_pointer): New function. - (arm_expand_neon_args): Add a neon_builtin_type_bits argument. - Handle NEON_ARG_MEMORY. - (arm_expand_neon_builtin): Update after above interface changes. - Use NEON_ARG_MEMORY for loads and stores. - * config/arm/predicates.md (neon_struct_operand): New predicate. - * config/arm/iterators.md (V_two_elem): Tweak formatting. - (V_three_elem): Use BLKmode for accesses that have no associated mode. - (V_four_elem): Tweak formatting. - * config/arm/neon.md (neon_vld1, neon_vld1_dup) - (neon_vst1_lane, neon_vst1, neon_vld2) - (neon_vld2_lane, neon_vld2_dup, neon_vst2) - (neon_vst2_lane, neon_vld3, neon_vld3_lane) - (neon_vld3_dup, neon_vst3, neon_vst3_lane) - (neon_vld4, neon_vld4_lane, neon_vld4_dup) - (neon_vst4): Replace pointer operand with a memory operand. - Use %A in the output template. - (neon_vld3qa, neon_vld3qb, neon_vst3qa) - (neon_vst3qb, neon_vld4qa, neon_vld4qb) - (neon_vst4qa, neon_vst4qb): Likewise, but halve - the width of the memory access. Remove post-increment. - * config/arm/neon-testgen.ml: Allow addresses to have an alignment. - -2011-04-12 Nick Clifton - - * config/v850/v850.c (expand_prologue): Do not use the CALLT - instruction for interrupt handlers if the target is the basic V850 - architecture. - (expand_epilogue): Likewise. - -2011-04-12 Jakub Jelinek - - PR rtl-optimization/48549 - * combine.c (propagate_for_debug): Also stop after BB_END of - this_basic_block. Process LAST and just stop processing after it. - (combine_instructions): If last_combined_insn has been deleted, - set last_combined_insn to its PREV_INSN. - -2011-04-12 Richard Guenther - - PR tree-optimization/46076 - * gimple.h (struct gimple_statement_call): Add fntype field. - (gimple_call_fntype): Adjust. - (gimple_call_set_fntype): New function. - * gimple.c (gimple_build_call_1): Set the call function type. - * gimplify.c (gimplify_call_expr): Preserve the function - type the frontend used for the call. - (gimplify_modify_expr): Likewise. - * lto-streamer-in.c (input_gimple_stmt): Input the call stmts - function type. - * lto-streamer-out.c (output_gimple_stmt): Output the call stmts - function type. - * tree-ssa.c (useless_type_conversion_p): Function pointer - conversions are useless. - -2011-04-12 Martin Jambor - - * cgraph.h (cgraph_node): Remove function declaration. - (cgraph_create_node): Declare. - (cgraph_get_create_node): Likewise. - * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1. - Updated all callers. - (cgraph_node): Renamed to cgraph_create_node, assert that a node for - the decl does not already exist. Call cgraph_get_create_node instead - of cgraph_node. - (cgraph_get_create_node): New function. - (cgraph_same_body_alias): Update comment. - (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node, - assert it does not return NULL. - (cgraph_update_edges_for_call_stmt): Likewise. - (cgraph_clone_edge): Likewise. - (cgraph_create_virtual_clone): Likewise. - (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node - instead of cgraph_node. - (cgraph_add_new_function): Call cgraph_create_node or - cgraph_get_create_node instead of cgraph_node. - * cgraphbuild.c (record_reference): Call cgraph_get_create_node - instead of cgraph_node. - (record_eh_tables): Likewise. - (mark_address): Likewise. - (mark_load): Likewise. - (build_cgraph_edges): Call cgraph_get_create_node instead - of cgraph_node. - (rebuild_cgraph_edges): Likewise. - * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node - instead of cgraph_node. - (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of - cgraph_node. - * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call - cgraph_create_node instead of cgraph_node. - * c-decl.c (finish_function): Call cgraph_get_create_node instead - of cgraph_node. - * lto-cgraph.c (input_node): Likewise. - * lto-streamer-in.c (input_function): Likewise. - * varasm.c (mark_decl_referenced): Likewise. - (assemble_alias): Likewise. - -2011-04-12 Martin Jambor - - * tree-inline.c (tree_function_versioning): Call cgraph_get_node - instead of cgraph_node and assert it does not return NULL. - * lto-streamer-in.c (lto_read_body): Likewise. - * omp-low.c (new_omp_context): Likewise. - (create_task_copyfn): Likewise. - * tree-emutls.c (lower_emutls_function_body): Likewise. - * matrix-reorg.c (transform_allocation_sites): Likewise. - -2011-04-12 Jakub Jelinek - - PR c/48552 - * c-typeck.c (build_asm_expr): Error out on attempts to use - void type outputs or inputs for constraints that allow reg or - don't allow memory. - -2011-04-11 Chung-Lin Tang - Richard Earnshaw - - PR target/48250 - * config/arm/arm.c (arm_legitimize_reload_address): Update cases - to use sign-magnitude offsets. Reject unsupported unaligned - cases. Add detailed description in comments. - * config/arm/arm.md (reload_outdf): Disable for ARM mode; change - condition from TARGET_32BIT to TARGET_ARM. - -2011-04-11 Nathan Froyd - - * tree.h (struct typed_tree): New. - (struct tree_common): Include it instead of tree_base. - (TREE_TYPE): Update for new location of type field. - (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly. - (DECL_USER_ALIGN, DECL_PACKED): Likewise. - (union tree_node): Add typed field. - * treestruct.def (TS_TYPED): New. - * lto-streamer.c (check_handled_ts_structures): Handle it. - * tree.c (MARK_TS_TYPED): New macro. - (MARK_TS_COMMON): Call it instead of MARK_TS_BASE. - -2011-04-11 Eric Botcazou - - * cfghooks.c (redirect_edge_and_branch_force): Localize variable. - (force_nonfallthru): Do not alter the loop nest if no basic block - was created. - -2011-04-11 Uros Bizjak - - * config/i386/sse.md (VI): New mode iterator. - (SSEMODEI): Remove. - (AVX256MODEI): Ditto. - (AVXMODEF4P): Ditto. - (avxvecpsmode): Ditto. - (one_cmpl2): Enable for TARGET_SSE. Use VI mode iterator. - (sse2_andnot3): New expander. - (*andnot3): Merge with *sse2_andnot3 and - *avx_andnot3. Enable for TARGET_SSE. Use VI mode iterator. - (3): Use VI mode iterator. - (*3): Merge with *sse2_3 - and *avx_3. Use VI mode iterator. - (*andnottf3): Handle AVX three-operand constraints. - (*tf3): Handle AVX three-operand constraints. - -2011-04-11 Joseph Myers - Robert Millan - - * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h. - * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32, - GNU_USER_DYNAMIC_LINKER64): Define. - (REG_NAME): Don't undefine. - (MD_UNWIND_SUPPORT): Undefine. - * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define. - (REG_NAME): Don't undefine. - (MD_UNWIND_SUPPORT): Undefine. - * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define. - -2011-04-11 Joseph Myers - - * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define. - (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove. - -2011-04-11 Xinliang David Li - - * value-profile.c (check_ic_target): New function. - (gimple_ic_transform): Sanity check indirect call target. - * gimple-low.c (gimple_check_call_args): Interface change. - (gimple_check_call_matching_types): New function. - * tree-inline.c (tree_can_inline_p): Call new function. - -2011-04-11 Basile Starynkevitch - - * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h - tree-pretty-print.h & realmpfr.h. - -2011-04-11 Vladimir Makarov - - PR middle-end/48464 - * ira.c (setup_pressure_classes): Fix typo in loop condition. - (setup_allocno_and_important_classes): Ditto. - -2011-04-11 Joseph Myers - - * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to - GNU_USER_DYNAMIC_LINKER. - * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change - LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. - (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to - GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change - LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. - (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to - GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to - GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove. - * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32, - GNU_USER_DYNAMIC_LINKER64): Remove. - * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to - GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to - GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename - to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to - GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER. - (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32. - (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64. - * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to - GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to - GNU_USER_DYNAMIC_LINKERN32. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to - GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to - GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to - GNU_USER_DYNAMIC_LINKER32. - * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. - * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to - GNU_USER_DYNAMIC_LINKER32. - (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64. - * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to - GNU_USER_DYNAMIC_LINKER. - * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to - GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to - GNU_USER_DYNAMIC_LINKER64. - * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to - GNU_USER_DYNAMIC_LINKER. - * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to - GNU_USER_DYNAMIC_LINKER32. - (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to - GNU_USER_DYNAMIC_LINKER64. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to - GNU_USER_DYNAMIC_LINKER64. - * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change - LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. - (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. - -2011-04-11 Joseph Myers - - * config/i386/gnu-user.h: Copy from linux.h. Update comments. - (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove. - (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and - GNU_USER_DYNAMIC_LINKER. - (MD_UNWIND_SUPPORT, REG_NAME): Remove. - * config/i386/gnu-user64.h: Copy from linux64.h. Update comments. - (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove. - (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and - GNU_USER_DYNAMIC_LINKER64. - (MD_UNWIND_SUPPORT, REG_NAME): Remove. - * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to - GNU_USER_LINK_EMULATION. - * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE, - DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, - ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS, - MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE, - PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS, - CPP_SPEC, CC1_SPEC): Remove. - (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION. - (GNU_USER_DYNAMIC_LINKER): Define. - (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC, - ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN, - ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA, - LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE, - TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP, - STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET, - TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. - * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC, - CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN, - TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC, - LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE, - LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove. - (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define. - (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN, - TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK, - TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. - * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to - GNU_USER_DYNAMIC_LINKER. - * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to - GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. - * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to - GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. - * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to - GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. - * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | - i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | - i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* | - x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers. - -2011-04-11 Kai Tietz - - PR target/9601 - PR target/11772 - * config/i386/i386-protos.h (ix86_get_callcvt): New prototype. - * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust - comment. - (ix86_is_msabi_thiscall): Removed. - (ix86_is_type_thiscall): Likewise. - (ix86_get_callcvt): New function. - (ix86_comp_type_attributes): Simplify check. - (ix86_function_regparm): Use ix86_get_callcvt for calling - convention attribute checks. - (ix86_return_pops_args): Likewise. - (ix86_static_chain): Likewise. - (x86_this_parameter): Likewise. - (x86_output_mi_thunk): Likewise. - (ix86_function_type_abi): Optimize check for types without attributes. - * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL, - IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM, - IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention - by flag-values. - (IX86_BASE_CALLCVT): Helper macro. - * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name): - Use ix86_get_callcvt for calling convention attribute checks and avoid - symbol-decoration for stdcall in TARGET_RTD case. - * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name): - Likewise. - (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN - for declaration. - -2011-04-11 Uros Bizjak - - * config/i386/sse.md (VI_128): New mode iterator. - (VI12_128): Rename from SSEMODE12. - (VI14_128): Rename from SSEMODE14. - (VI124_128): New mode iterator. - (VI24_128): Rename from SSEMODE248. - (VI248_128): Rename from SSEMODE248. - (SSEMODE124C8): Remove. - (*3): Merge with *avx_3. - (*sse2_3): Merge with - *avx_3. - (*mulv8hi3): Merge with *avx_mulv8hi3. - (*mulv8hi3_highpart): Merge with *avx_mulv8hi3_highpart. - (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3. - (*sse2_pmaddwd): Merge with *avx_pmaddwd. - (*sse4_1_mulv4si3): Merge with *avx_mulv4si3. - (ashr3): Merge with *avx_ashr3. - (lshr3): Merge with *avx_lshr3. - (ashl3): Merge with *avx_ashl3. - (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3. - (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3. - (*sse4_1_3): Merge with *avx_3. - (*v8hi3): Ditto. - (*sse4_1_3): Merge with *avx_3. - (*v16qi3): Ditto. - (*sse4_1_eqv2di3): Merge with *avx_eq3. - (*sse2_eq3): Ditto. - (*sse4_2_eqv2di3): Merge with *avx_gt3. - (*sse2_gt3): Ditto. - (vcondv2di): Split out of vcond. - (vconduv2di): Split out of vcondu. - -2011-04-11 Richard Guenther - - * gimplify.c (gimple_fold_indirect_ref): Check host_integerp - before calling tree_low_cst. - -2011-04-11 Richard Guenther - - * stor-layout.c (layout_type): Compute all array index size operations - in the original type. - (initialize_sizetypes): Add comment. - (set_sizetype): Do not set TREE_TYPE of a TREE_VEC. - -2011-04-11 Joseph Myers - - * common.opt (Tbss=, Tdata=, Ttext=): New options. - -2011-04-11 Martin Jambor - - * cgraph.c (cgraph_local_info): Call cgraph_get_node instead - of cgraph_node, handle NULL return value. - (cgraph_global_info): Likewise. - (cgraph_rtl_info): Likewise. - * tree-inline.c (estimate_num_insns): Likewise. - * gimplify.c (unshare_body): Likewise. - (unvisit_body): Likewise. - (gimplify_body): Likewise. - * predict.c (optimize_function_for_size_p): Likewise. - * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. - (call_may_clobber_ref_p_1): Likewise. - * varasm.c (function_section_1): Likewise. - (assemble_start_function): Likewise. - -2011-04-11 Martin Jambor - - * except.c (set_nothrow_function_flags): Call cgraph_get_node instead - of cgraph_node. - * final.c (rest_of_clean_state): Likewise. - * gimple-iterator.c (update_call_edge_frequencies): Likewise. - * passes.c (pass_init_dump_file): Likewise. - (execute_all_ipa_transforms): Likewise. - (function_called_by_processed_nodes_p): Likewise. - * predict.c (maybe_hot_frequency_p): Likewise. - (probably_never_executed_bb_p): Likewise. - (compute_function_frequency): Likewise. - * tree-nested.c (check_for_nested_with_variably_modified): Likewise. - (unnest_nesting_tree_1): Likewise. - (lower_nested_functions): Likewise. - * tree-optimize.c (execute_fixup_cfg): Likewise. - (tree_rest_of_compilation): Likewise. - * tree-profile.c (gimple_gen_ic_func_profiler): Likewise. - * tree-sra.c (ipa_early_sra): Likewise. - * tree-ssa-loop-ivopts.c (computation_cost): Likewise. - * config/i386/i386.c (ix86_compute_frame_layout): Likewise. - * ipa.c (record_cdtor_fn): Likewise. - * ipa-inline.c (cgraph_early_inlining): Likewise. - (compute_inline_parameters_for_current): Likewise. - * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. - * ipa-pure-const.c (local_pure_const): Likewise. - * ipa-split.c (split_function): Likewise. - (execute_split_functions): Likewise. - * cgraphbuild.c (build_cgraph_edges): Likewise. - (rebuild_cgraph_edges): Likewise. - (cgraph_rebuild_references): Likewise. - (remove_cgraph_callee_edges): Likewise. - * cgraphunit.c (cgraph_mark_if_needed): Likewise. - (verify_cgraph_node): Likewise. - (cgraph_analyze_functions): Likewise. - (cgraph_preserve_function_body_p): Likewise. - (save_inline_function_body): Likewise. - (save_inline_function_body): Likewise. - * tree-inline.c (copy_bb): Likewise. - (optimize_inline_calls): Likewise. - -2011-04-11 Martin Jambor - - PR tree-optimization/48195 - * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and - ipa_check_create_edge_args. - (ipcp_generate_summary): Do not call ipa_check_create_node_params and - ipa_check_create_edge_args. - * ipa-inline.c (inline_generate_summary): Do not call - ipa_check_create_node_params and ipa_check_create_edge_args. - * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and - ipa_check_create_edge_args. - -2011-04-09 Anatoly Sokolov - - * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function - instead of loop. - * sel-sched.c (mark_unavailable_hard_regs): Likewise. - * function.c (record_hard_reg_sets): Likewise. - * ira.c (compute_regs_asm_clobbered): Likewise. - * sched-deps.c (sched_analyze_1): Likewise. - * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise. - -2011-04-09 Xinliang David Li - - PR tree-optimization/PR48484 - * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set - has_valid_pred lazily - -2011-04-09 Duncan Sands - - * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set. - -2011-04-08 Eric Botcazou - - * combine.c (combine_validate_cost): Adjust comments. Set registered - cost of I0 to zero at the end, if any. - -2011-04-08 Xinliang David Li - - * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due - to insane profile data. - -2011-04-08 Xinliang David Li - - * ipa-cp.c (ipcp_update_profiling): Correct - negative scale factor due to insane profile data. - -2011-04-08 Xinliang David Li - - * final.c (dump_basic_block_info): New function. - (final): Dump basic block. - (final_scan_insn): Remove old dump. - -2011-04-08 Steven G. Kargl - - PR target/47829 - * config.gcc (i386-*-freebsd): Disable unwind table generation for - crtbegin/crtend. - -2011-04-08 Michael Matz - - PR middle-end/48389 - * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New - functions. - (rebuild_jump_labels): Call rebuild_jump_labels_1. - * rtl.h (rebuild_jump_labels_chain): Declare. - * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on - insns inserted on edges. - -2011-04-08 Joseph Myers - - * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options. - * config/arm/arm-arches.def: New. - * config/arm/arm-opts.h: New. - * config/arm/genopt.sh: New. - * config/arm/arm-tables.opt: New (generated). - * config/arm/arm.c (arm_handle_option, arm_target_help, - TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove. - (all_architectures): Get most table contents from arm-arches.def. - (arm_option_override): Set arm_selected_arch, arm_selected_cpu and - arm_selected_tune here. - * config/arm/arm.h (enum processor_type): Move to arm-opts.h. - * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude. - (march=, mcpu=, mtune=): Use Enum and Var. - * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New. - (arm.o): Update dependencies. - -2011-04-08 Basile Starynkevitch - - * gengtype.c (write_typed_alloc_def): New argument f. Use it instead - of header_file. - (write_typed_struct_alloc_def, write_typed_typedef_alloc_def) - (write_typed_alloc_defns): Likewise. - (main): Calls write_typed_alloc_defns with output_header. - -2011-04-08 Vladimir Makarov - - PR inline-asm/48435 - * ira-color.c (setup_profitable_hard_regs): Add comments. - Don't take prohibited hard regs into account. - (setup_conflict_profitable_regs): Rename to - get_conflict_profitable_regs. - (check_hard_reg_p): Check prohibited hard regs. - -2011-04-08 Nathan Froyd - - * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg. - * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise. - * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise. - -2011-04-08 John David Anglin - - PR target/48366 - * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of - move from floating point to shift amount register. - (emit_move_sequence): Remove secondary reload support for floating - point to shift amount amount register copies. - (pa_secondary_reload): Return GENERAL_REGS for floating point/shift - amount register copies. - * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount - register, return false if mode isn't a scalar integer mode. - * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise. - -2011-04-08 Richard Guenther - - * gimple.c (gimple_call_flags): Remove kludge. - -2011-04-08 Alexander Monakov - - * sel-sched.c (sel_region_init): Move call to - sel_setup_region_sched_flags after setup_current_loop_nest. - -2011-04-08 Andrey Belevantsev - - PR rtl-optimization/48272 - * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to - init_insn_reg_pressure_info. Adjust a caller. - * sched-int.h (init_insn_reg_pressure_info): Declare. - * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info - when sched-pressure is enabled. - -2011-04-08 Richard Guenther - - * gimple.c (gimple_set_modified): Do not queue calls to - MODIFIED_NORETURN_CALLS here ... - * tree-ssa-operands.c (update_stmt_operands): ... but here. - -2011-04-08 Richard Guenther - - PR lto/48467 - * toplev.c (lang_dependent_init): Do not open asm_out_file - in WPA mode, nor perform debug machinery initialization. - (finalize): Do not unlink asm_out_file in WPA mode. - -2011-04-08 Richard Guenther - - * gimple.h (gimple_call_fntype): New function. - (gimple_call_return_type): Use it. - * expr.c (expand_expr_real_1): Use gimple_call_fntype. - * gimple-low.c (gimple_check_call_args): Likewise. - * gimple.c (gimple_call_flags): Likewise. - (gimple_call_arg_flags): Likewise. - (gimple_call_return_flags): Likewise. - * tree-cfg.c (verify_gimple_call): Likewise. - (do_warn_unused_result): Likewise. - * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. - * value-prof.c (gimple_ic_transform): Fix fndecl check. - -2011-04-08 Dmitry Melnik - - PR rtl-optimization/48235 - * sel-sched.c (code_motion_process_successors): Recompute the last - insn in basic block if control flow changed. - (code_motion_path_driver): Ditto. Recompute the first insn as well. - Update condition for ilist_remove. - -2011-04-08 Alexander Monakov - - PR rtl-optimization/48302 - * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype. - * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use - it to record added preheader blocks. - * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it - on to sel_add_loop_preheaders. - (sel_region_init): Move call to setup_current_loop_nest after - sel_init_bbs. - -2011-04-08 Alexander Monakov - - PR target/48273 - * cfgloop.h (loop_has_exit_edges): New helper. - * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs - non-clonable. - * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops - that have no exit edges. - -2011-04-08 Alexander Monakov - - PR rtl-optimization/48442 - * sel-sched.c (init_seqno): Remove number_of_insns argument. Update - all callers. Adjust assert. - -2011-04-08 Jakub Jelinek - - PR tree-optimization/48377 - * tree-vect-data-refs.c (vector_alignment_reachable_p): Set - is_packed to true even for types with smaller TYPE_ALIGN than - TYPE_SIZE. - -2011-04-08 Richard Guenther - - PR bootstrap/48513 - * doc/tm.texi: Re-generate. - -2011-04-08 Wei Guozhi - - PR target/47855 - * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype. - * config/arm/arm.c (arm_attr_length_push_multi): New function. - * config/arm/arm.md (*push_multi): Change the length computation to - call a C function. - -2011-04-08 Anatoly Sokolov - - * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation. - (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation. - * doc/tm.texi: Regenerate. - * system.h (ASM_OUTPUT_BSS): Poison. - * varasm.c (asm_output_bss): Remove function. - (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro. - - * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment. - * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise. - * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise. - * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Likewise. - * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Likewise. - * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Likewise. - * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - -2011-04-07 Joseph Myers - - * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on - EnumValue lines. - -2011-04-07 Joseph Myers - - * config/m68k/m68k.c (m68k_handle_option): Don't handle - OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020, - OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and - OPT_mcpu32. - * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't - handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020, - -m68030, -m68040, -m68060, -mcpu32 and -m68332. - * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040, - m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias. - * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove. - (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS). - (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu= - options. Don't map other m68k options manually. Don't handle - old-style options as canonical. - (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS). - * doc/install.texi (m68k-*-*): Document binutils version requirement. - -2011-04-07 Eric Botcazou - - * basic-block.h (force_nonfallthru): Move to... - * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook. - (force_nonfallthru): ...here. - * cfghooks.c (force_nonfallthru): New function. - * cfgrtl.c (force_nonfallthru): Rename into... - (rtl_force_nonfallthru): ...this. - (commit_one_edge_insertion): Do not set AUX field. - (commit_edge_insertions): Do not discover new basic blocks. - (rtl_cfg_hooks): Add rtl_force_nonfallthru. - (cfg_layout_rtl_cfg_hooks): Likewise. - * function.c (thread_prologue_and_epilogue_insns): Remove bogus - ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns. - * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru. - -2011-04-07 Anatoly Sokolov - - * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): - Remove macros. - -2011-04-07 Uros Bizjak - - * config/i386/sse.md: Update copyright year. - (avxcvtvecmode): Remove. - (sse_movhlps): Merge with *avx_movhlps. - (sse_movlhps): Merge with *avx_movlhps. - (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf. - (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf. - (sse_shufps_): Merge with *avx_shufps_. - (sse_loadhps): Merge with *avx_loadhps. - (sse_storelps): Merge with *avx_storelps. - (sse_loadlps): Merge with *avx_loadlps. - (sse_movss): Merge with *avx_movss. - (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx. - (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx. - (*vec_set_0_sse4_1): Merge with *vec_set_0_avx. - (*vec_set_0_sse2): Split multi-unit alternative. - (vec_set_0): Ditto. - (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx. - (sse4_1_insertps): Merge with *avx_insertps. - (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df. - (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df. - (vec_interleave_highv2di): Merge with *avx_interleave_highv2di. - (sse2_shufpd_): Merge with *avx_shufpd_. - (sse2_storehpd): Merge with *avx_storehpd. - (sse2_loadhpd): Merge with *avx_loadhpd. - (sse2_loadlpd): Merge with *avx_loadlpd. - (sse2_movsd): Merge with *avx_movsd. - (*vec_concatv2df): Merge with *vec_concatv2df. - -2011-04-07 Jakub Jelinek - - PR debug/48343 - * combine.c (combine_instructions): Add last_combined_insn, - update it if insn is after it, pass it to all try_combine calls. - (try_combine): Add last_combined_insn parameter, pass it instead of - i3 to propagate_for_debug. - -2011-04-07 Nick Clifton - - * config/mn10300/mn10300.md (movqi_internal): Add alternatives - to handle MDR <-> data register transfers. - (movhi_internal): Likewise. - -2011-04-07 Alan Modra - - * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against - previous stack info. - -2011-04-07 Tom de Vries - - PR target/43920 - * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to - flow_find_cross_jump. Swap variables to implement backward replacement. - (try_crossjump_bb): Add argument to try_crossjump_to_edge. - -2011-04-07 Tom de Vries - - PR target/43920 - * cfgcleanup.c (walk_to_nondebug_insn): New function. - (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1 - and bb2. - (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not - src1 or src2. Redirect edges to the last basic block. Update - frequency and count on multiple basic blocks in case of fallthru. - -2011-04-07 Tom de Vries - - PR target/43920 - * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New - function. - (old_insns_match_p): Change return type. Replace return false/true - with return dir_none/dir_both. Use can_replace_by. - (flow_find_cross_jump): Add dir_p parameter. Init replacement - direction from dir_p. Register replacement direction in dir, last_dir - and afterlast_dir. Handle new return type of old_insns_match_p using - merge_dir. Return replacement direction in dir_p. - (flow_find_head_matching_sequence, outgoing_edges_match): Handle new - return type of old_insns_match_p. - (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump. - * ifcvt.c ( cond_exec_process_if_block): Add argument to call to - flow_find_cross_jump. - * basic-block.h (enum replace_direction): New type. - (flow_find_cross_jump): Add parameter to declaration. - -2011-04-06 Uros Bizjak - - * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove. - (AVXMODEDCVTPS2DQ): Ditto. - (VEC_FLOAT_MODE): Ditto. - (_andnot3): Merge with avx_andnot3. Use VF mode - iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. - (3): Use VF mode iterator. - (*3): Merge with *avx_3. - Use VF mode iterator. - (copysign3): Use VF mode iterator. - (*andnot3): Merge with *avx_andnot3. Handle - TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. - (*3): Merge with - *avx_3. - (sse_cvtsi2ss): Merge with *avx_cvtsi2ss. - (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq. - (avx_cvtdq2ps256): Split from avx_cvtdq2ps. - (avx_cvtdq2ps): Remove. - (sse2_cvtdq2ps): Use %v modifier. - (avx_cvtps2dq256): Split from avx_cvtps2dq. - (avx_cvtps2dq): Remove. - (sse2_cvtps2dq): Use %v modifier. - (avx_cvttps2dq256): Split from avx_cvttps2dq. - (avx_cvttps2dq): Remove. - (sse2_cvttps2dq): Use %v modifier. - (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd. - (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq. - (sse2_cvtsd2siq): Fix insn template. - (sse2_cvtsd2siq_2): Ditto. - (sse2_cvttsd2siq): Ditto. - (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss. - (sse2_cvtss2sd): Merge with *avx_cvtss2sd. - -2011-04-06 Joseph Myers - - * gcov-io.c: Use GCC Runtime Library Exception. - -2011-04-06 Jakub Jelinek - - PR debug/48466 - * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use - as base_reg whatever register reg has been eliminated to, instead - of hardcoding STACK_POINTER_REGNUM. - -2011-04-06 Joseph Myers - - * doc/tm.texi.in: Document C target hooks as separate from general - target hooks. - * doc/tm.texi: Regenerate. - * genhooks.c (struct hook_desc): Add docname field. - (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize - docname field. - (hook_array): Include c-target.def. - (emit_documentation): Use docname field in output. - (emit_init_macros): Take docname argument. Only emit definitions - for hooks matching docname. - (main): Expect additional arguments in all cases. Pass argument - to emit_init_macros. - * target.def: Move initial macro definitions and comments to - target-hooks-macros.h. - (gcc_targetcm): Move to c-family/c-target.def. - * target.h (targetcm): Move declaration to c-family/c-target.h. - * targhooks.c (default_handle_c_option): Move to - c-family/c-opts.c. - * targhooks.h (default_handle_c_option): Move declaration to - c-family/c-common.h. - * target-hooks-macros.h: New file. - * config.gcc (target_has_targetcm): Define and use to add to - c_target_objs and cxx_target_objs. - * config/default-c.c: New file. - * config/darwin-c.c: Include c-target.h and c-target-def.h instead - of target.h and target-def.h. - (TARGET_HANDLE_C_OPTION, targetcm): Define later in file. - (darwin_objc_construct_string, darwin_cfstring_ref_p, - darwin_check_cfstring_format_arg): Make static. - (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, - TARGET_STRING_OBJECT_REF_TYPE_P, - TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here. - * config/darwin-protos.h (darwin_objc_construct_string, - darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't - declare. - * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, - TARGET_STRING_OBJECT_REF_TYPE_P, - TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove. - * config/t-darwin (darwin-c.o): Update dependencies. - * system.h (TARGET_HAS_TARGETCM): Poison. - * Makefile.in (TARGET_H): Update. - (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define. - (c-family/c-format.o, c-family/c-opts.o): Update dependencies. - (default-c.o): New target. - (s-target-hooks-def-h): Pass "Target Hook" string to genhooks. - (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets. - (s-tm-texi): Pass -d option to genhooks. Also test timestamp on - c-target.def. - (build/genhooks.o): Update dependencies. - -2011-04-06 Richard Guenther - - * ipa-inline.c (enum inlining_mode): Remove. - (cgraph_flatten): Use some other token. - (cgraph_edge_early_inlinable_p): New function, split out from ... - (cgraph_perform_always_inlining): New function, split out from ... - (cgraph_decide_inlining_incrementally): ... here. - (cgraph_mark_inline_edge): Adjust. - (cgraph_early_inlining): Re-structure. - (pass_early_inline): Require SSA form. - -2011-04-06 Andrew Stubbs - Julian Brown - Mark Shinwell - - * config/arm/arm.h (arm_class_likely_spilled_p): Check against - LO_REGS only for Thumb-1. - (MODE_BASE_REG_CLASS): Restrict base registers to those which can - be used in short instructions when optimising for size on Thumb-2. - -2011-04-06 Eric Botcazou - - * gimple-low.c (lower_gimple_return): When not optimizing, force labels - associated with user returns to be preserved. - -2011-04-06 Tristan Gingold - - * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index, - symbol_queue_size, DBXOUT_DECR_NESTING, - (DBXOUT_DECR_NESTING_AND_RETURN): Also define - if XCOFF_DEBUGGING_INFO. - -2011-04-06 Uros Bizjak - - * config/i386/i386.md (attribute isa): New. - (attribute enabled): New. - (setcc__sse): Merge from *{avx,sse}_setcc. - (*fop__comm_mixed): Merge with *fop__comm_mixed_avx. - (*fop__comm_sse): Merge with *fop__comm_avx. - (*fop__1_mixed): Merge with *fop__1_mixed_avx. - (*fop__1_sse): Merge with *fop__1_avx. - (3): Merge with *avx_3. - (*ieee_smin3): Merge with *avx_ieee_smin3. - (*ieee_smax3): Merge with *avx_ieee_smax3. - - * config/i386/sse.md (VF): New mode iterator. - (VF1): Ditto. - (VF2): Ditto. - (VF_128): Ditto. - (SSEMODEF4): Remove. - (attribute sse): Handle V8SF and V4DF modes. - (2): Use VF mode iterator. - (*absneg2): Merge from *{avx,sse}_absneg2. Use VF - mode iterator. - (3): Use VF mode iterator. - (*3): Merge with *avx_3. - Use VF mode iterator. - (_vm3): Merge with - *avx_vm3. Use VF_128 mode iterator. - (mul3): Use VF mode iterator. - (*mul3): Merge with *avx_mul3. Use VF mode iterator. - (_vmmul3): Merge with *avx_vmmul3. Use VF_128 - mode iterator. - (div3): Merge from divv2df3 and divv4df3. - (div3): Merge from divv4sf3 and divv8sf3. - (_div3): Merge with *avx_div3. Use VF mode iterator. - (_vmdiv3): Merge with *avx_vmdiv3. Use VF_128 - mode iterator. - (_rcp2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2. - Use VF1 mode iterator. - (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2. - (sqrt2): New expander. - (sqrt2): Merge from sqrtv4sf2 and sqrtv8sf2. - (_sqrt2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2 - and sqrtv2df2. Use VF mode iterator. - (_vmsqrt2): Merge with *avx_vmsqrt2. Use VF_128 - mode iterator. - (rsqrt2): Merge from rsqrtv4sf2 and rsqrtv8sf2. - (_rsqrt2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2. - Use VF1 mode iterator. - (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2. - (3): Use VF mode iterator. - (*3_finite): Merge with - *avx_3_finite. Use VF mode iterator. - (*3): Merge with *avx_3. - (_vm2): Merge with - *avx_vm2. Use VF_128 mode iterator. - (*ieee_smin3): Merge with *avx_ieee_smin3. Use VF - mode iterator. - (*ieee_smax3): Merge with *avx_ieee_smax3. Use VF - mode iterator. - (sse3_addsubv2df3): Merge with *avx_addsubv2df3. - (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3. - (sse3_hv2df3): Merge with *avx_hv2df3. - (sse3_hv4sf3): Merge with *avx_hv4sf3. - (avx_cmp3): Rename from avx_cmp3. Use - VF mode iterator. - (avx_vmcmp3): Rename from avx_cmp3. - Use VF_128 mode iterator. - (_maskcmp3): Merge with *avx_maskcmp3. Use VF - mode iterator. - (_vmmaskcmp3): Merge with *avx_vmmaskcmp3. Use - VF_128 mode iterator. - (vcond): Use VF mode iterator. - * config/i386/predicates.md (sse_comparison_operator): Merge with - avx_comparison_float_operator. Do not declare as special_predicate. - * config/i386/i386.c (struct builtin_description): Update for renamed - compare patterns. - (ix86_expand_args_builtin): Ditto. - (ix86_expand_sse_compare_mask): Ditto. - -2011-04-06 Richard Guenther - - * tree-inline.c (estimate_num_insns): For calls simply account - for all passed arguments and a used return value. - -2011-04-06 Richard Guenther - - PR tree-optimization/47663 - * cgraph.h (struct cgraph_edge): Add call_stmt_size and - call_stmt_time fields. - (cgraph_edge_inlinable_p): Declare. - (cgraph_edge_recursive_p): New inline function. - * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size. - (cgraph_clone_edge): Copy it. - * ipa-inline.c (cgraph_estimate_edge_time): New function. - Account for call stmt time. - (cgraph_estimate_time_after_inlining): Take edge argument. - (cgraph_estimate_edge_growth): Account call stmt size. - (cgraph_estimate_size_after_inlining): Take edge argument. - (cgraph_mark_inline_edge): Adjust. - (cgraph_check_inline_limits): Likewise. - (cgraph_recursive_inlining_p): Remove. - (cgraph_edge_badness): Use cgraph_edge_recursive_p. - (cgraph_decide_recursive_inlining): Take edge argument and - adjust. - (cgraph_decide_inlining_of_small_functions): Do not avoid - diags for recursive inlining here. - (cgraph_flatten): Adjust. - (cgraph_decide_inlining_incrementally): Likewise. - (estimate_function_body_sizes): Remove call cost handling. - (compute_inline_parameters): Initialize caller edge call costs. - (cgraph_estimate_edge_growth): New function. - (cgraph_estimate_growth): Use it. - (cgraph_edge_badness): Likewise. - (cgraph_check_inline_limits): Take an edge argument. - (cgraph_decide_inlining_of_small_functions): Adjust. - (cgraph_decide_inlining): Likewise. - * tree-inline.c (estimate_num_insns): Only account for call - return value if it is used. - (expand_call_inline): Avoid diagnostics on recursive inline - functions here. - * lto-cgraph.c (lto_output_edge): Output edge call costs. - (input_edge): Input edge call costs. - -2011-04-06 Rainer Orth - - * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define. - -2011-04-06 Jonathan Wakely - - * doc/invoke.texi (Spec Files): Fix typo. - -2011-04-06 Eric Botcazou - - * profile.c (branch_prob): Move declaration of local variable. Remove - obsolete ??? comment. Expand the location explicitly instead of using - the LOCATION_FILE and LOCATION_LINE macros. - -2011-04-06 Wei Guozhi - - PR target/47855 - * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length". - (arm_cond_branch): Likewise. - (arm_cond_branch_reversed): Likewise. - (arm_jump): Likewise. - (push_multi): Likewise. - * config/arm/constraints.md (Py): New constraint. - -2011-04-05 Nathan Froyd - - PR bootstrap/48471 - * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index): - Move these... - (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these... - (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under - #ifdef DBX_DEBUGGING_INFO. - -2011-04-05 Bernd Schmidt - - PR bootstrap/48403 - * haifa-sched.c (schedule_block): Increment cycle_issued_insns only - if old and new states differ. - -2011-04-05 Joseph Myers - - * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200, - OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e. - * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't - handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e. - * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, - mcfv4e): Use Alias. - * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy - ColdFire options to -mcpu= options. - -2011-04-05 Jeff Law - - * tree-ssa-threadupdate.c (determine_bb_domination_status): Always - check if BB is a successor of LOOP->header and return - NONDOMINATING if it is not, regardless of ENABLE_CHECKING. - -2011-04-05 Steven Bosscher - - * cprop.c (struct reg_use): Remove. - (reg_use_table): Make an array of RTX. - (find_used_regs, constprop_register, local_cprop_pass, - bypass_block): Simplify users of reg_use_table. - (cprop_insn): Likewise. Iterate if copy propagation succeeded - on one of the uses found by find_used_regs. - -2011-04-05 Nathan Froyd - - PR bootstrap/48469 - * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links - declaration. - -2011-04-05 Nathan Froyd - - * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links - as an rtx. - (try_combine) [AUTO_INC_DEC]: Declare a local link rtx. - -2011-04-05 Steven Bosscher - - PR middle-end/48441 - * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns. - -2011-04-05 Nathan Froyd - - * combine.c: Include obstack.h. - (struct insn_link): Define. - (uid_log_links): Adjust type. - (FOR_EACH_LOG_LINK): New macro. - (insn_link_obstack): Declare. - (alloc_insn_link): Define. - (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust - type of link variables. - (find_single_use, insn_a_feeds_b, combine_instructions): Likewise. - (try_combine, record_promoted_values, distribute_notes): Likewise. - (distribute_links): Likewise. Tweak prototype. - (clear_log_links): Delete. - (adjust_for_new_dest): Call alloc_insn_link. - * Makefile.in (combine.o): Depend on $(OBSTACK_H). - -2011-04-05 Nathan Froyd - - * gcse.c (modify_mem_list): Convert to an array of VECs. - (canon_modify_mem_list, compute_transp): Tweak formatting. - (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change. - (load_killed_in_block_p): Likewise. - (record_last_mem_set_info): Likewise. - (clear_modify_mem_tables): Likewise. - -2011-04-05 Tom de Vries - - PR middle-end/48461 - * function.c (emit_use_return_register_into_block): Only define if - HAVE_return. - -2011-04-05 Eric Botcazou - - * stor-layout.c (self_referential_size): Fix 2010-07-13 commit. - -2011-04-05 Joseph Myers - - * config/rx/rx-opts.h: New. - * config/rx/rx.c (rx_cpu_type): Remove. - (rx_handle_option): Don't assert that global structures are in - use. Access variables via opts pointer. Defer most handling of - OPT_mint_register_. Use error_at. - (rx_option_override): Handle deferred OPT_mint_register_ here. - * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h. - * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude. - (mcpu=): Use Enum and specifiy rx_cpu_type with Var. - (rx_cpu_types): New Enum and EnumValue entries. - (mint-register=): Use Defer and use Var accordingly. - -2011-04-05 Nathan Froyd - - * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete. - (debug_free_queue, debug_nesting, symbol_queue_index): Delete. - * final.c (debug_flush_symbol_queue, debug_queue_symbol): - Move these... - (debug_free_queue, debug_nesting, symbol_queue_index): - ...and these... - * dbxout.c: ...to here. Make static. - -2011-04-05 Nathan Froyd - - * gcse.c (modify_pair): Define. Define a VEC of it. - (canon_modify_mem_list): Convert to an array of VECs. - (free_insn_expr_list_list): Delete. - (clear_modify_mem_tables): Call VEC_free instead. - (record_last_mem_set_info): Don't modify canon_modify_mem_list. - (alloc_gcse_mem): Adjust for canon_modify_mem_list change. - (canon_list_insert, compute_transp): Likewise. - -2011-04-05 Tom de Vries - - PR target/43920 - * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing - for size. - -2011-04-05 Tom de Vries - - PR target/43920 - * function.c (emit_use_return_register_into_block): New function. - (thread_prologue_and_epilogue_insns): Use - emit_use_return_register_into_block. - -2011-04-05 Tom de Vries - - PR target/43920 - * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as - insn. - -2011-04-05 Tom de Vries - - * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables. - -2011-04-05 Yufeng Zhang - - * config/arm/arm.md (define_constants for unspec): Replace with - define_c_enum. - (define_constants for unspecv): Replace with define_c_enum. - * config/arm/neon.md (define_constants for unspec): Replace with - define_c_enum. - -2011-04-04 Richard Henderson - - PR bootstrap/48400 - * dwarf2out.c (output_line_info): Always emit line info from - at least one section. - (dwarf2out_init): Create text_section_line_info here ... - (set_cur_line_info_table): ... not here. - -2011-04-04 Vladimir Makarov - - PR target/48380 - * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is - not called. - - * ira-emit.c (emit_move_list): Update reg_equiv_init insn list. - -2011-04-04 Steven Bosscher - - * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'. - (expr_equiv_p): Remove. - (insert_set_in_table): Look at pair instead of expr. - (hash_scan_set): Update call to insert_set_in_table. - (dump_hash_table): Dump pair. - (lookup_set): Simplify. Lookup pair. - (compute_transp): Remove, fold heavily simplified code into... - (compute_local_properties): ...here. Expect COMP and TRANSP - unconditionally. - (find_avail_set): Take set directly from struct expr. - (find_bypass-set): Likewise. - (bypass_block): Likewise. - (cprop_insn): Likewise. Remove redundant INSN_P test. - - * cprop.c (implicit_set_cond_p): Assume nothing about COND, move - checks on form of COND from find_implicit_sets to here. - (find_implicit_sets): Cleanup control flow. Split critical edges - if it exposes implicit sets. Allocate/resize implicit_sets as - necessary. - (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass - changed something. Run df_analyze after find_implicit_sets if any - edges were split. Do not allocate implicit_sets here. - - * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse. - (gcse_obstack): Renamed to cprop_obstack. - (GNEW, GNEWVEC, GNEWVAR): Remove. - (gmalloc): Remove. - (alloc_hash_table): Use XNEWVAR instead of GNEWVAR. - (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming. - (gcse_alloc): Likewise, and rename to cprop_alloc. - (alloc_gcse_men, free_gcse_mem): Remove. - (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers. - (compute_hash_table_work): Allocate and free reg_set_bitmap here. - (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming. - - * cprop.c (oprs_not_set_p): Remove. - (mark_set, mark_clobber): Remove. - (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache. - (reg_not_set_p): New function. - (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p. - (cprop_insn): Likewise. - (cprop_jump): Use FOR_EACH_EDGE. - -2011-04-04 Bernd Schmidt - - PR bootstrap/48403 - * haifa-sched.c (nonscheduled_insns_begin): New static variable. - (rank_for_schedule): Use scheduled_insns vector instead of - last_scheduled_insn. - (ok_for_early_queue_removal): Likewise. - (queue_to_ready): Search forward in nonscheduled_insns_begin if - we have a dbg_cnt. - (choose_ready): Likewise. - (commit_schedule): Use VEC_iterate. - (schedule_block): Initialize nonscheduled_insns_begin. If we have - a dbg_cnt, use it and ensure the first insn is in the ready list. - (haifa_sched_init): Allocate scheduled_insns. - (sched_extend_ready_list): Don't allocate it; reserve space. - (haifa_sched_finish): Free it. - -2011-04-04 Joseph Myers - - * optc-gen.awk: Always remove type from Variable entry before - recording in var_seen. - -2011-04-04 Eric Botcazou - - * cfghooks.c (tidy_fallthru_edges): Add ??? comment. - * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove - call to tidy_fallthru_edges. - -2011-04-04 Joseph Myers - - * doc/options.texi (ToLower): Document. - * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field. - * opts-common.c (decode_cmdline_option): Handle cl_tolower. - * opts.h (cl_option): Add cl_tolower field. - * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu= - arguments with lowercase strings. - * config/rx/rx.opt (mcpu=): Add ToLower. - * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu= - argument. - -2011-04-04 Richard Sandiford - - * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete. - -2011-04-04 Richard Sandiford - - * config/vax/vax.c: Include reload.h. - -2011-04-04 Anatoly Sokolov - - * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove. - * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define. - (sparc_preferred_reload_class): New function. - -2011-04-04 Jakub Jelinek - - PR debug/48401 - * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. - Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC. - -2011-04-03 Nathan Froyd - - * tree.h (struct tree_const_decl): Inherit from tree_decl_common. - * tree.c (initialize_tree_contains_struct): Adjust accordingly. - -2011-04-03 Anatoly Sokolov - - * config/avr/avr.h (ASM_OUTPUT_BSS): Remove. - (ASM_OUTPUT_ALIGNED_BSS): Define. - -2011-04-03 Michael Matz - - * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets - and next_slot members. - (lto_streamer_cache_insert, lto_streamer_cache_insert_at, - lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes. - (lto_streamer_cache_append): Declare. - * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use - unsigned index, remove offset parameter, ensure that we append - or update existing entries. - (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p - parameter, update next_slot for append. - (lto_streamer_cache_insert): Use unsigned index, remove offset_p - parameter. - (lto_streamer_cache_insert_at): Likewise. - (lto_streamer_cache_append): New function. - (lto_streamer_cache_lookup): Use unsigned index. - (lto_streamer_cache_get): Likewise. - (lto_record_common_node): Don't test tree_node_can_be_shared. - (preload_common_node): Adjust call to lto_streamer_cache_insert. - (lto_streamer_cache_delete): Don't free offsets member. - * lto-streamer-out.c (eq_string_slot_node): Use memcmp. - (lto_output_string_with_length): Use lto_output_data_stream. - (lto_output_tree_header): Remove ix parameter, don't write it. - (lto_output_builtin_tree): Likewise. - (lto_write_tree): Adjust callers to above, don't track and write - offset, write unsigned index. - (output_unreferenced_globals): Don't emit all global vars. - (write_global_references): Use unsigned indices. - (lto_output_decl_state_refs): Likewise. - (write_symbol): Likewise. - * lto-streamer-in.c (lto_input_chain): Move earlier. - (input_function): Use unsigned index. - (input_alias_pairs): Don't read and then ignore all global vars. - (lto_materialize_tree): Remove ix_p parameter, don't read index, - don't pass it back, use lto_streamer_cache_append. - (lto_register_var_decl_in_symtab): Use unsigned index. - (lto_register_function_decl_in_symtab): Likewise. - (lto_get_pickled_tree): Don't read in or handle offset, read unsigned - index. - (lto_get_builtin_tree): Don't read index, use - lto_streamer_cache_append. - (lto_read_tree): Adjust call to lto_materialize_tree. - - * ipa-inline.c (cgraph_edge_badness): Move growth calculaton, - don't use function calls in arguments to MIN. - - * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC - twice. - - * gimple.c (gimple_type_leader_entry): Mark deletable. - -2011-04-03 Alan Modra - - * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM. - -2011-04-03 Michael Matz - - * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not - an integer. - * tree.h (tree_decl_non_common.vindex): Adjust comment. - -2011-04-03 Michael Matz - - * cgraphbuild.c (record_reference): Canonicalize constructor values. - * gimple-fold.c (canonicalize_constructor_val): Accept being called - without function context. - * cgraphunit.c (cgraph_finalize_compilation_unit): Clear - current_function_decl and cfun. - -2011-04-03 Michael Matz - - * tree.c (decl_init_priority_insert): Don't create entry for - default priority. - (decl_fini_priority_insert): Ditto. - (fields_compatible_p, find_compatible_field): Remove. - * tree.h (fields_compatible_p, find_compatible_field): Remove. - * gimple.c (gimple_compare_field_offset): Adjust block comment. - -2011-04-03 Eric Botcazou - - * combine.c (try_combine): Remove useless local variable. - -2011-04-03 Richard Guenther - Ira Rosen - - * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all - non-variable offsets and compare the remaining bases of the two - accesses instead of looking for exact same data-ref. - -2011-04-02 Kai Tietz - - PR target/48416 - * i386.c (ix86_function_arg_boundary): Fix printf formatter. - - * i386.c (ix86_is_msabi_thiscall): New helper function. - (ix86_is_type_thiscall): New helper function. - (ix86_comp_type_attributes): Handle thiscall for method-functions - special. - (init_cumulative_args): Likewise. - (find_drap_reg): Likewise. - (ix86_static_chain): Likewise. - (x86_this_parameter): Likewise. - (x86_output_mi_thunk): Likewise. - -2011-04-01 Olivier Hainque - Nicolas Setton - Eric Botcazou - - * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type. - (add_gnat_descriptive_type_attribute): New function. - (gen_array_type_die): Call it. - (gen_enumeration_type_die): Likewise. - (gen_struct_or_union_type_die): Likewise. - (modified_type_die): Likewise. - * langhooks.h (lang_hooks_for_types): New descriptive_type hook. - * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE. - -2011-04-01 Jakub Jelinek - - PR bootstrap/48148 - * dwarf2out.c (resolve_addr): Don't call force_decl_die - if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN. - - Revert: - 2011-03-17 Richard Guenther - - PR bootstrap/48148 - * lto-cgraph.c (input_overwrite_node): Clear the abstract - origin for decls in other ltrans units. - (input_varpool_node): Likewise. - -2011-04-01 Jakub Jelinek - - PR middle-end/48335 - * expr.c (expand_assignment): Handle all possibilities - if TO_RTX is CONCAT. - * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs. - (store_split_bit_field): If SUBREG_REG (op0) or - op0 itself has smaller mode than word, return it - for offset 0 and const0_rtx for out-of-bounds stores. - If word is const0_rtx, skip it. - -2011-04-01 Naveen H.S - - * config/h8300/h8300.c (print_operand_address): Rename to... - (h8300_print_operand_address): ...this. Make static. Adjust comments. - Call h8300_print_operand and h8300_print_operand_address instead of - print_operand and print_operand_address. Declare. - (print_operand): Renake to... - (h8300_print_operand): ...this. Make static. Adjust comments. - Call h8300_print_operand instead of print_operand. Declare. - (h8300_print_operand_punct_valid_p): Moved from h8300.h file. - (h8300_register_move_cost): Likewise. - (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND - TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define. - * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND - PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete. - * config/h8300/h8300-protos.h (print_operand): Delete. - (print_operand_address): Delete. - -2011-04-01 Richard Henderson - - PR 48400 - * dwarf2out.c (dwarf2out_source_line): Disable discriminators - in strict mode before dwarf4. Re-order tests to early out - before switching sections. - -2011-04-01 Nathan Froyd - - * config/h8300/constraints.md: New file. - * config/h8300/h8300.md: Include it. Use satisfies_constraint_J, - satisfies_constraint_L, and satisfies_constraint_N for peephole2s. - (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U. - * config/h8300/predicates.md (bit_operand): Likewise. - (incdec_operand): Use satisfies_constraint_M and - satisfies_constraint_O. Don't use C code block. - * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete. - * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete. - (compute_mov_length): Use satisfies_constraint_G. - (fix_bit_operand): Use satisfies_constraint_U. - * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete. - (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete. - (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete. - (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete. - (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete. - (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete. - (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete. - (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete. - (EXTRA_MEMORY_CONSTRAINT): Delete. - -2011-04-01 Andrew Pinski - Michael Meissner - - PR target/48262 - * config/rs6000/vector.md (movmisalign): Allow for memory - operands, as per the specifications. - - * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes. - (vec_extract_evenv4sf): Ditto. - (vec_extract_evenv8hi): Ditto. - (vec_extract_evenv16qi): Ditto. - (vec_extract_oddv4si): Ditto. - -2011-03-31 Mark Wielaard - - * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or - high_pc attribute if the CU has no associated code. Only output - DW_AT_entry_pc for CU if not generating strict dwarf and - dwarf_version < 4. - -2011-04-01 Bernd Schmidt - - * dwarf2out.h (dwarf2out_frame_debug_init): Declare. - * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken - out of ... - (dwarf2out_frame_debug): ... here. Don't handle a NULL argument. - * final.c (final_start_function): Call the new function rather - than using a NULL argument for dwarf2out_frame_debug. - - * ifcvt.c (cond_exec_process_insns): Disallow converting a block - that contains the prologue. - - * haifa-sched.c (queue_insn): New arg REASON. All callers - changed. Print it in debugging output. - - * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag. - - * sched-ebb.c (begin_schedule_ready): Remove second argument. - Split most of the code into... - (begin_move_insn): ... here. New function. - (ebb_sched_info): Add a pointer to it. - * haifa-sched.c (scheduled_insns): New static variable. - (sched_extend_ready_list): Allocate it. - (schedule_block): Use it to record the order of scheduled insns. - Perform RTL changes to move insns only after all scheduling - decisions have been made. - * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the - begin_move_insn field. - * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. - * sched-int.h (struct haifa_sched_info): Remove second argument - from begin_schedule_ready hook. Add new member begin_move_insn. - * sched-rgn.c (begin_schedule_ready): Remove second argument. - (rgn_const_sched_info): Add NULL entry for the begin_move_insn field. - - * haifa-sched.c (prune_ready_list): New function, broken out of - schedule_block. - (schedule_block): Use it. - -2011-04-01 Ulrich Weigand - - * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>. - -2011-04-01 Kai Tietz - - * config.gcc (*-*-mingw*): Allow as option the - posix threading model. - * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2): - New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT - definition. - (CPP_SPEC): Add pthread/no-pthread handling. - (LIB_SPEC): Likewise. - * config/i386/mingw-w64.h (CPP_SPEC):Likewise. - (LIB_SPEC): Likewise. - * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New - flag to pass -pthread option for shared libgcc build. - (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread - for shared libgcc build. - * config/i386/t-mingw-pthread: New file. - * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT): - New define to enable use of library pthread by default. - * config/i386/mingw.opt (pthread): New driver option. - (no-pthread): New driver option. - * config/i386/cygming.opt: Make sure trailing empty line is retained. - * config/i386/mingw-w64.opt: Likewise. - -2011-04-01 Gary Funck - - * c-decl.c (grokdeclarator): Fix formatting. - -2011-04-01 Richard Sandiford - - * expr.c (emit_block_move_via_movmem): Use n_generator_args - instead of n_operands. - (set_storage_via_setmem): Likewise. - * optabs.c (maybe_gen_insn): Likewise. - * config/arm/arm.c (arm_init_neon_builtins): Likewise. - * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise. - (mips_expand_builtin_direct): Likewise. - * config/spu/spu.c (expand_builtin_args): Likewise. - -2011-04-01 Richard Sandiford - - * recog.h (insn_data_d): Add n_generator_args. - * genoutput.c (data): Likewise. - (output_insn_data): Print it. - (max_opno, num_dups): Delete. - (scan_operands): Just fill in "d->operand[...]". - (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats. - -2011-04-01 Richard Sandiford - - * gensupport.h (pattern_stats): New structure. - * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions. - * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete. - (max_operand_1, max_operand_vec): Delete. - (gen_insn, gen_expand, gen_split): Use get_pattern_stats. - -2011-03-31 Nathan Froyd - - * emit-rtl.c (emit_pattern_after_setloc): New function. - (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it. - (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise. - (emit_pattern_after): New function. - (emit_insn_after, emit_jump_insn_after): Call it. - (emit_call_insn_after, emit_debug_insn_after): Likewise. - (emit_pattern_before_setloc): New function. - (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it. - (emit_call_insn_before_setloc, emit_debug_insn_before_setloc): - Likewise. - (emit_pattern_before): New function. - (emit_insn_before, emit_jump_insn_before): Call it. - (emit_call_insn_before, emit_debug_insn_before): Likewise. - -2011-03-31 Richard Henderson - - * dwarf2out.c (dw_separate_line_info_ref): Remove. - (dw_separate_line_info_entry): Remove. - (enum dw_line_info_opcode): New. - (dw_line_info_entry): Use it. - (dw_line_info_table, dw_line_info_table_p): New. - (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes. - (line_info_table, line_info_label_num): Remove. - (line_info_table_in_use): Remove. - (separate_line_info_table): Remove. - (separate_line_info_table_allocated): Remove. - (separate_line_info_table_in_use): Remove. - (LINE_INFO_TABLE_INCREMENT): Remove. - (line_info_label_num): New. - (cur_line_info_table): New. - (text_section_line_info, cold_text_section_line_info): New. - (separate_line_info): New. - (SEPARATE_LINE_CODE_LABEL): Remove. - (print_dwarf_line_table): Remove. - (debug_dwarf): Don't dump it. - (output_one_line_info_table): New. - (output_line_info): Use it. - (new_line_info_table): New. - (set_cur_line_info_table): New. - (dwarf2out_switch_text_section): Use it. - (dwarf2out_begin_function): Likewise. - (push_dw_line_info_entry): New. - (dwarf2out_source_line): Rewrite for new line info tables. - (dwarf2out_init): Remove dead initailizations. - -2011-03-31 Joseph Myers - - * opts.h (cl_option): Add comments to fields. Add bit-fields for - various flags. - (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK, - CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, - CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK, - CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove. - (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions. - * opt-functions.awk (flag_init, switch_bit_fields): New. - (switch_flags): Don't handle flags moved to bit-fields. Don't - generate CL_MISSING_OK or CL_SAVE. - * optc-gen.awk: Update to generate bit-field output as well as - flags field. - * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver - bit-field instead of CL_REJECT_DRIVER flag. - * opts-common.c (generate_canonical_option, - decode_cmdline_option): Use bit-fields instead of CL_* flags. - * opts.c (maybe_default_option): Use cl_reject_negative bit-field - instead of CL_REJECT_NEGATIVE flag. - * toplev.c (print_switch_values): Use cl_report bit-field instead - of CL_REPORT flag. - -2011-03-31 Eric Botcazou - - * tree-ssa-pre.c (create_component_ref_by_pieces_1) : Drop - a zero minimum index only if it is redundant. - -2011-03-31 Vladimir Makarov - - PR rtl-optimization/48381 - * ira-color.c (assign_hard_reg): Use hard reg set intersection - instead of ira_class_hard_reg_index for calculating conflicting - hard registers. - -2011-03-31 Steven Bosscher - - * cprop.c: Clean up hash table building. - (reg_avail_info): Remove. - (oprs_available_p): Remove. - (record_last_reg_set_info): Remove. - (record_last_set_info): Remove. - (reg_available_p): New function. - (gcse_constant_p): Do not treat unfolded conditions as constants. - (make_set_regs_unavailable): New function. - (hash_scan_set): Simplify with new reg_available_p. - (compute_hash_table_work): Traverse insns stream only once. - Do not compute reg_avail_info. Traverse insns in reverse order. - Record implicit sets after recording explicit sets from the block. - -2011-03-31 Michael Matz - - * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc. - -2011-03-31 Anatoly Sokolov - - * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro. - * config/h8300/h8300-protos.h (h8300_get_index): Remove. - * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. - (h8300_mode_dependent_address_p): New function. - (h8300_get_index): Make static. - -2011-03-31 Jeff Law - - * reload1.c (elimination_effects): Fix typo in recent change. - - * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid - typo potentially leading to null pointer dereference. - - * caller-save.c (new_saved_hard_reg): Eliminate return value. - (setup_save_areas): Corresponding changes to avoid useless - assignments. - - * jump.c (reversed_comparison_code_parts): Avoid successive return - statements when REVERSE_CONDITION is defined. - - * expr.c (expand_assignment): Avoid useless assignments. - (expand_expr_real_1): Likewise. - (expand_expr_real_2): Avoid useless statements. - - * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement. - - * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. - - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless - statements. - - * stmt.c (expand_expr_stmt): Avoid useless assignment. - -2011-03-31 Joseph Myers - - PR target/47109 - * doc/tm.texi.in (TARGET_VERSION): Remove. - * doc/tm.texi: Regenerate. - * system.h (TARGET_VERSION, MACHINE_TYPE): Poison. - * collect2.c (main): Don't use TARGET_VERSION. - * mips-tdump.c (main): Don't use TARGET_VERSION. - * mips-tfile.c (main): Don't use TARGET_VERSION. - * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h. - * config/rs6000/vxworksae.h: Remove. - * config/alpha/alpha.h (TARGET_VERSION): Remove. - * config/alpha/freebsd.h (TARGET_VERSION): Remove. - * config/alpha/linux-elf.h (TARGET_VERSION): Remove. - * config/alpha/netbsd.h (TARGET_VERSION): Remove. - * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove. - * config/arm/arm.h (TARGET_VERSION): Remove. - * config/arm/coff.h (TARGET_VERSION): Remove. - * config/arm/ecos-elf.h (TARGET_VERSION): Remove. - * config/arm/elf.h (TARGET_VERSION): Remove. - * config/arm/freebsd.h (TARGET_VERSION): Remove. - * config/arm/linux-elf.h (TARGET_VERSION): Remove. - * config/arm/netbsd-elf.h (TARGET_VERSION): Remove. - * config/arm/pe.h (TARGET_VERSION): Remove. - * config/arm/rtems-elf.h (TARGET_VERSION): Remove. - * config/arm/semi.h (TARGET_VERSION): Remove. - * config/arm/uclinux-elf.h (TARGET_VERSION): Remove. - * config/arm/unknown-elf.h (TARGET_VERSION): Remove. - * config/arm/vxworks.h (TARGET_VERSION): Remove. - * config/avr/avr.h (TARGET_VERSION): Remove. - * config/bfin/bfin.h (TARGET_VERSION): Remove. - * config/fr30/fr30.h (TARGET_VERSION): Remove. - * config/frv/frv.h (TARGET_VERSION): Remove. - * config/h8300/h8300.h (TARGET_VERSION): Remove. - * config/i386/cygwin.h (TARGET_VERSION): Remove. - * config/i386/darwin.h (TARGET_VERSION): Remove. - * config/i386/darwin64.h (TARGET_VERSION): Remove. - * config/i386/djgpp.h (TARGET_VERSION): Remove. - * config/i386/freebsd.h (TARGET_VERSION): Remove. - * config/i386/freebsd64.h (TARGET_VERSION): Remove. - * config/i386/gnu.h (TARGET_VERSION): Remove. - * config/i386/i386-interix.h (TARGET_VERSION): Remove. - * config/i386/i386elf.h (TARGET_VERSION): Remove. - * config/i386/linux.h (TARGET_VERSION): Remove. - * config/i386/linux64.h (TARGET_VERSION): Remove. - * config/i386/lynx.h (TARGET_VERSION): Remove. - * config/i386/mingw32.h (TARGET_VERSION): Remove. - * config/i386/netbsd-elf.h (TARGET_VERSION): Remove. - * config/i386/netbsd64.h (TARGET_VERSION): Remove. - * config/i386/netware.h (TARGET_VERSION): Remove. - * config/i386/nto.h (TARGET_VERSION): Remove. - * config/i386/openbsd.h (TARGET_VERSION): Remove. - * config/i386/vxworks.h (TARGET_VERSION): Remove. - * config/ia64/elf.h (TARGET_VERSION): Remove. - * config/ia64/freebsd.h (TARGET_VERSION): Remove. - * config/ia64/hpux.h (TARGET_VERSION): Remove. - * config/ia64/linux.h (TARGET_VERSION): Remove. - * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove. - * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE, - TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. - * config/lm32/lm32.h (TARGET_VERSION): Remove. - * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove. - * config/m32c/m32c.h (TARGET_VERSION): Remove. - * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove. - * config/m32r/m32r.h (TARGET_VERSION): Remove. - * config/m68k/linux.h (TARGET_VERSION): Remove. - * config/m68k/m68k.h (TARGET_VERSION): Remove. - * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove. - * config/m68k/uclinux.h (TARGET_VERSION): Remove. - * config/mcore/mcore-elf.h (TARGET_VERSION): Remove. - * config/mep/mep.h (TARGET_VERSION): Remove. - * config/microblaze/microblaze.h (MICROBLAZE_VERSION, - MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. - * config/mips/iris6.h (MACHINE_TYPE): Remove. - * config/mips/linux.h (TARGET_VERSION): Remove. - * config/mips/netbsd.h (MACHINE_TYPE): Remove. - * config/mips/vxworks.h (TARGET_VERSION): Remove. - * config/mmix/mmix.h (TARGET_VERSION): Remove. - * config/mn10300/linux.h (TARGET_VERSION): Remove. - * config/mn10300/mn10300.h (TARGET_VERSION): Remove. - * config/pa/pa.h (TARGET_VERSION): Remove. - * config/pdp11/pdp11.h (TARGET_VERSION): Remove. - * config/picochip/picochip.h (TARGET_VERSION): Remove. - * config/rs6000/aix.h (TARGET_VERSION): Remove. - * config/rs6000/darwin.h (TARGET_VERSION): Remove. - * config/rs6000/darwin64.h (TARGET_VERSION): Remove. - * config/rs6000/eabi.h (TARGET_VERSION): Remove. - * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove. - * config/rs6000/eabisim.h (TARGET_VERSION): Remove. - * config/rs6000/eabispe.h (TARGET_VERSION): Remove. - * config/rs6000/freebsd.h (TARGET_VERSION): Remove. - * config/rs6000/linux.h (TARGET_VERSION): Remove. - * config/rs6000/linux64.h (TARGET_VERSION): Remove. - * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove. - * config/rs6000/linuxspe.h (TARGET_VERSION): Remove. - * config/rs6000/lynx.h (TARGET_VERSION): Remove. - * config/rs6000/netbsd.h (TARGET_VERSION): Remove. - * config/rs6000/sysv4.h (TARGET_VERSION): Remove. - * config/rs6000/vxworks.h (TARGET_VERSION): Remove. - * config/s390/linux.h (TARGET_VERSION): Remove. - * config/s390/s390.h (TARGET_VERSION): Remove. - * config/s390/tpf.h (TARGET_VERSION): Remove. - * config/score/score.h (TARGET_VERSION): Remove. - * config/sh/linux.h (TARGET_VERSION): Remove. - * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN, - TARGET_VERSION_CPU, TARGET_VERSION): Remove. - * config/sh/sh.h (TARGET_VERSION): Remove. - * config/sh/sh64.h (TARGET_VERSION): Remove. - * config/sh/superh.h (TARGET_VERSION): Remove. - * config/sh/vxworks.h (TARGET_VERSION): Remove. - * config/sparc/freebsd.h (TARGET_VERSION): Remove. - * config/sparc/linux.h (TARGET_VERSION): Remove. - * config/sparc/linux64.h (TARGET_VERSION): Remove. - * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64, - TARGET_NAME32, TARGET_NAME): Remove. - * config/sparc/openbsd64.h (TARGET_VERSION): Remove. - * config/sparc/sp-elf.h (TARGET_VERSION): Remove. - * config/sparc/sp64-elf.h (TARGET_VERSION): Remove. - * config/sparc/sysv4.h (TARGET_VERSION): Remove. - * config/sparc/vxworks.h (TARGET_VERSION): Remove. - * config/spu/spu.h (TARGET_VERSION): Remove. - * config/stormy16/stormy16.h (TARGET_VERSION): Remove. - * config/v850/v850.h (TARGET_VERSION): Remove. - * config/vax/linux.h (TARGET_VERSION): Remove. - * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove. - * config/xtensa/elf.h (TARGET_VERSION): Remove. - * config/xtensa/linux.h (TARGET_VERSION): Remove. - -2011-03-31 Eric Botcazou - - PR target/48142 - * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate - frame-related from frame-unrelated adjustments to the stack pointer. - -2011-03-31 Jakub Jelinek - - * common.opt (fdebug-types-section): Move earlier. - * doc/invoke.texi: Fix up -fno-debug-types-section documentation. - -2011-03-31 Andreas Tobler - - * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel - var. - -2011-03-30 Nathan Froyd - - * tree.h (CASE_CHAIN): Define. - * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it. - (gimple_redirect_edge_and_branch): Likewise. - -2011-03-30 Vladimir Makarov - - PR middle-end/48367 - * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost - calculation. - -2011-03-30 Jeff Law - - * PR bootstrap/48371 - * reload1.c (reload): Fix botch in last change. - - * reload.h (struct reload): Fix typo introduced in last change. - -2011-03-30 Joseph Myers - - * config/arm/arm.opt (mhard-float, msoft-float): Mark - Undocumented. Remove help text. - * doc/invoke.texi (ARM Options): Don't document -msoft-float and - -mhard-float. - -2011-03-30 Joseph Myers - - * doc/options.texi (NegativeAlias): Document. - (Alias): Mention NegativeAlias. - * opt-functions.awk: Handle NegativeAlias. - * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments. - * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS. - * opts.h (CL_NEGATIVE_ALIAS): Define. - * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove. - (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and - OPT_mspe_. - * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with - Alias entries. - * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use - mno-spe and mno-isel instead of mspe=no and -misel=no. - -2011-03-29 Mark Wielaard - - * common.opt (fdebug-types-section): New flag. - * doc/invoke.texi: Document new -fno-debug-types-section flag. - * dwarf2out.c (use_debug_types): New define. - (struct die_struct): Mark die_id with GTY desc use_debug_types. - (print_die): Guard output of type unit signatures using - use_debug_types. - (build_abbrev_table): Replace assert of dwarf_version >= 4 - with assert on use_debug_types. - (size_of_die): Likewise. - (unmark_dies): Likewise. - (value_format): Decide AT_ref_external form on use_debug_types. - (output_die): Replace dwarf_version version check guard with - use_debug_types where appropriate. - (modified_type_die): Likewise. - (gen_reference_type_die): Likewise. - (dwarf2out_start_source_file): Likewise. - (dwarf2out_end_source_file): Likewise. - (prune_unused_types_walk_attribs): Likewise. - (dwarf2out_finish): Likewise. - -2011-03-30 Vladimir Makarov - - * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'. - -2011-03-30 Richard Sandiford - - PR rtl-optimization/48332 - * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated - mode of input operand N and modeN to its actual mode. - -2011-03-30 Jeff Law - - * reload.h (reg_equiv_constant): Move into new structure reg_equivs, - define accessor macro. - (reg_equiv_invariant, reg_equiv_memory_loc): Likewise. - (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise. - (reg_equiv_init): Likewise. - (reg_equivs_size): New variable. - (reg_equiv_init_size): Remove. - (allocate_initial_values): Move prototype to here from.... - * integrate.h (allocate_initial_values): Remove prototype. - * integrate.c: Include reload.h. - (allocate_initial_values): Corresponding changes. - * ira.c (find_reg_equiv_invariant_cost): Corresponding changes. - (fix_reg_equiv_init, no_equiv): Corresponding changes. - (update_equiv_regs): Corresponding changes. - (ira): Corresponding changes. - * reload.c (push_reg_equiv_alt_mem): Corresponding changes. - (push_secondary_reload): Corresponding changes. - (push_reload, find_reloads, find_reloads_toplev): Corresponding changes. - (make_memloc, find_reloads_address): Corresponding changes. - (subst_reg_equivs, subst_indexed_address): Corresponding changes. - (find_reloads_address_1): Corresponding changes. - (find_reloads_subreg_address, subst_reloads): Corresponding changes. - (refers_to_regno_for_reload_p): Corresponding changes. - (reg_overlap_mentioned_for_reload_p): Corresponding changes. - (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes. - * reload1.c: Include ggc.h. - (grow_reg_equivs): New function. - (replace_pseudos_in, reload): Corresponding changes. - (calculate_needs_all_insns, alter_regs): Corresponding changes. - (eliminate_regs_1, elimination_effects): Corresponding changes. - (emit_input_reload_insns, emit_output_reload_insns): Likewise. - (delete_output_reload): Likewise. - * caller-save.c (mark_referenced_regs): Corresponding changes. - * alpha/alpha.c (resolve_reload_operand): Corresponding changes. - * frv/predicates.md (frv_load_operand): Corresponding changes. - * microblaze/microblaze.c (double_memory_operand): Corresponding - changes. - * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes. - * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes. - * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes. - * m68k/m68k.c (emit_move_sequence): Corresponding changes. - * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding - changes. - * pa/pa.c (emit_move_sequence): Corresponding changes. - * vax/vax.c (nonindexed_address_p): Corresponding changes. - -2011-03-30 Richard Sandiford - - PR target/47551 - * config/arm/arm.c (coproc_secondary_reload_class): Handle - structure modes. Don't check neon_vector_mem_operand for - vector or structure modes. - -2011-03-30 Richard Sandiford - Ramana Radhakrishnan - - PR target/43590 - * config/arm/neon.md (neon_vld3qa, neon_vld4qa): Remove - operand 1 and reshuffle the operands to match. - (neon_vld3, neon_vld4): Update accordingly. - -2011-03-30 Christian Schüler - - PR driver/48208 - * config/c.opt (F): Added 'Driver' to -F option. - - PR driver/48260 - * config/darwin-driver.c (darwin_driver_init): Add '-arch' to - handler function. - * config/darwin.opt: Added '-arch' option. - -2011-03-30 Nick Clifton - - * config/rx/rx.md: Add peepholes and patterns to combine - extending loads and simple arithmetic instructions. - * config/rx/rx.h (ADJUST_INSN_LENGTH): Define. - * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype. - * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI - modes to use pre-decrement and post-increment addressing. - (rx_is_restricted_memory_address): Add range checking of REG+INT - addresses. - (rx_print_operand): Add support for %Q. Fix handling of %Q. - (rx_memory_move_cost): Adjust cost of stores. - (rx_adjust_insn_length): New function. - -2011-03-30 Jakub Jelinek - - PR c/48305 - * fold-const.c (fold_binary_loc) : Make sure - arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to - matching arg00/arg01 types. - -2011-03-30 Eric Botcazou - - * cfglayout.c (insn_locators_alloc): Initialize curr_location and - last_location to UNKNOWN_LOCATION. - -2011-03-30 H.J. Lu - - PR target/48349 - * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in - FLOAT_SSE_REGS. - -2011-03-30 Joseph Myers - Rainer Orth - - PR bootstrap/48337 - * config/sparc/sparc.opt (sparc_cpu_and_features): Add - Init(PROCESSOR_V7). - (sparc_cpu): Likewise. - * config/sparc/sparc.c (sparc_option_override): Replace 0 by - PROCESSOR_V7. - -2011-03-29 Vladimir Makarov - - PR target/48336 - PR middle-end/48342 - PR rtl-optimization/48345 - * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited - hard regs for given mode from profitable regs when doing secondary - allocation. - -2011-03-29 Jeff Law - - PR bootstrap/48327 - * tree-ssa-threadupdate.c (struct redirection_data): Remove - do_not_duplicate field. - (lookup_redirection_data): Corresponding changes. - (create_duplicates): Always create a template block. - (redirect_edges): Remove code which reused the original block - when it was going to become unreachable code. - (thread_block): Don't set do_not_duplicate field. - -2011-03-29 Joseph Myers - - * lto-opts.c (register_user_option_p, lto_register_user_option): - Make type argument unsigned. - * lto-streamer.h (lto_register_user_option): Make type argument - unsigned. - * opth-gen.awk: Make CL_* macros unsigned. - * opts-common.c (find_opt): Make lang_mask argument unsigned. - * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, - CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS, - CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED, - CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE, - CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned. - (find_opt): Make lang_mask argument unsigned. - -2011-03-29 Vladimir Makarov - - PR rtl-optimization/48331 - PR rtl-optimization/48334 - * ira-color.c (color_allocnos): Call setup_profitable_hard_regs - for any used algorithm. - -2011-03-29 Vladimir Makarov - - * ira-conflicts.c (build_object_conflicts): Add unused attribute - to parent_max. - -2011-03-29 Uros Bizjak - - * config/alpha/alpha.c (alpha_sr_alias_set): Don't define. - (alpha_option_override): Don't set alpha_sr_alias_set. - (emit_frame_store_1): Use gen_frame_mem rather than calling - set_mem_alias_set. - (alpha_expand_epilogue): Ditto. - -2011-03-29 Ira Rosen - - PR tree-optimization/48290 - * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop - vectorization, check that relevant phis in the basic block after - the inner loop are really inner loop's exit phis. - -2011-03-29 Richard Sandiford - - PR debug/48190 - * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced. - (cached_dw_loc_list_def): New structure. - (cached_dw_loc_list): New typedef. - (cached_dw_loc_list_table): New variable. - (cached_dw_loc_list_table_hash): New function. - (cached_dw_loc_list_table_eq): Likewise. - (add_location_or_const_value_attribute): Take a bool cache_p. - Cache the list when the parameter is true. - (gen_formal_parameter_die): Update caller. - (gen_variable_die): Likewise. - (dwarf2out_finish): Likewise. - (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table - while generating debug info for the decl. - (dwarf2out_function_decl): Clear cached_dw_loc_list_table. - (dwarf2out_init): Initialize cached_dw_loc_list_table. - (resolve_addr): Cache the result of resolving a chain of - location lists. - -2011-03-28 Vladimir Makarov - - * ira-color.c (update_left_conflict_sizes_p): Don't assume that - conflict object hard regset nodes have intersecting hard reg sets. - - * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call - after regstat_init_n_sets_and_refs. - - * ira.c: Add more comments at the top. - (setup_stack_reg_pressure_class, setup_pressure_classes): - Add comments how we compute the register pressure classes. - (setup_allocno_and_important_classes): Add more comments. - (setup_class_translate_array, reorder_important_classes) - (setup_reg_class_relations): Add comments. - - * ira-emit.c: Add 2011 to the Copyright line. Add comments at the - start of the file. - - * ira-color.c: Add 2011 to the Copyright line. - (assign_hard_reg): Add more comments. - (improve_allocation): Ditto. - - * ira-costs.c: Add 2011 to the Copyright line. - (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more - comments. - (setup_regno_cost_classes_by_mode): Ditto. - - Initial patches from ira-improv branch: - - 2010-08-13 Vladimir Makarov - - * ira-build.c (ira_create_object): Remove initialization of - OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA. - (ira_create_allocno): Remove initialization of - ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P, - ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P, - ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P, - ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO, - ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO. - Initialize ALLOCNO_ADD_DATA. - (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA - and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and - ALLOCNO_REG. - (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of - ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P. - - * ira.c (ira_reallocate): Remove. - (setup_pressure_classes): Call - ira_init_register_move_cost_if_necessary. Use - ira_register_move_cost instead of ira_get_register_move_cost. - (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA. - (ira): Call ira_initiate_emit_data and ira_finish_emit_data. - - * ira-color.c: Use ALLOCNO_COLOR_DATA instead of - ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P, - ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO, - ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA - instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE, - OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM. - Fix formatting. - (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h. - (struct object_hard_regs, struct object_hard_regs_node): Ditto. - (struct allocno_color_data): New. - (allocno_color_data_t): New typedef. - (allocno_color_data): New definition. - (ALLOCNO_COLOR_DATA): New macro. - (struct object_color_data): New. - (object_color_data_t): New typedef. - (object_color_data): New definition. - (OBJECT_COLOR_DATA): New macro. - (update_copy_costs, calculate_allocno_spill_cost): Call - ira_init_register_move_cost_if_necessary. Use - ira_register_move_cost instead of ira_get_register_move_cost. - (move_spill_restore, update_curr_costs): Ditto. - (allocno_spill_priority): Make it inline. - (color_pass): Allocate and free allocno_color_dat and object_color_data. - (struct coalesce_data, coalesce_data_t): New. - (allocno_coalesce_data): New definition. - (ALLOCNO_COALESCE_DATA): New macro. - (merge_allocnos, coalesced_allocno_conflict_p): Use - ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO, - ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP. - (coalesce_allocnos): Ditto. - (setup_coalesced_allocno_costs_and_nums): Ditto. - (collect_spilled_coalesced_allocnos): Ditto. - (slot_coalesced_allocno_live_ranges_intersect_p): Ditto. - (setup_slot_coalesced_allocno_live_ranges): Ditto. - (coalesce_spill_slots): Ditto. - (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and - free allocno_coalesce_data. - - * ira-conflicts.c: Fix formatting. - (process_regs_for_copy): Call - ira_init_register_move_cost_if_necessary. Use - ira_register_move_cost instead of ira_get_register_move_cost. - (build_object_conflicts): Optimize. - - * ira-costs.c (record_reg_classes): Optimize. Call - ira_init_register_move_cost_if_necessary. Use - ira_register_move_cost, ira_may_move_in_cost, and - ira_may_move_out_cost instead of ira_get_register_move_cost and - ira_get_may_move_cost. - (record_address_regs): Ditto. - (scan_one_insn): Optimize. - (find_costs_and_classes): Optimize. - (process_bb_node_for_hard_reg_moves): Call - ira_init_register_move_cost_if_necessary. Use - ira_register_move_cost instead of ira_get_register_move_cost. - - * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of - ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST, - ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P. - (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New - definitions. - (ira_initiate_emit_data, ira_finish_emit_data) - (create_new_allocno): New functions. - (modify_move_list): Call create_new_alloc instead of ira_create_allocno. - (emit_move_list): Call ira_init_register_move_cost_if_necessary. - Use ira_register_move_cost instead of ira_get_register_move_cost. - - * ira-int.h: Fix some comments. - (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c. - (struct object_hard_regs, struct object_hard_regs_node): Ditto. - (struct ira_object): Remove profitable_hard_regs, hard_regs_node, - hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member - add_data. - (struct ira_allocno): Make mode and aclass a bitfield. Move other - bitfield after mode. Make hard_regno a short int. Make - hard_regno short. Remove first_coalesced_allocno and - next_coalesced_allocno. Move mem_optimized_dest_p, - somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest - into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p, - available_regs_num, next_bucket_allocno, prev_bucket_allocno, - temp, colorable_p. Add new member add_data. - (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove. - (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove. - (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove. - (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove. - (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove. - (ALLOCNO_ADD_DATA): New macro. - (ira_emit_data_t): New typedef. - (struct ira_emit_data): New. Move mem_optimized_dest_p, - somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest - from struct ira_allocno. - (ALLOCNO_EMIT_DATA): New macro. - (ira_allocno_emit_data, allocno_emit_reg): New. - (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove. - (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove. - (OBJECT_ADD_DATA): New macro. - (ira_reallocate): Remove. - (ira_initiate_emit_data, ira_finish_emit_data): New. - (ira_get_register_move_cost, ira_get_may_move_cost): Remove. - (ira_init_register_move_cost_if_necessary): New. - (ira_object_conflict_iter_next): Merge into - ira_object_conflict_iter_cond. - (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next. - - * ira-live.c (process_single_reg_class_operands): Call - ira_init_register_move_cost_if_necessary. Use - ira_register_move_cost instead of ira_get_register_move_cost. - - 2010-08-13 Vladimir Makarov - - * ira-int.h (struct target_ira_int): Remove x_cost_classes. - - * ira-costs.c: Fix formatting. - (cost_classes, cost_classes_num): Remove. - (struct cost_classes, cost_classes_t, const_cost_classes_t): New. - (regno_cost_classes, cost_classes_hash, cost_classes_eq): New. - (cost_classes_del, cost_classes_htab): New. - (cost_classes_aclass_cache, cost_classes_mode_cache): New. - (initiate_regno_cost_classes, setup_cost_classes): New. - (setup_regno_cost_classes_by_aclass): New. - (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New. - (record_reg_classes): Use regno_cost_classes instead of - cost_classes. Move checking opposite operand up. - (record_address_regs): Use regno_cost_classes - instead of cost_classes. - (scan_one_insn): Ditto. Use always general register. - (print_allocno_costs): Use regno_cost_classes instead of - cost_classes. - (print_pseudo_costs): Ditto. Use Reg_N_REFS. - (find_costs_and_classes): Set up cost classes for each registers. - Use also their mode for this. Use regno_cost_classes instead of - cost_classes. - (setup_allocno_class_and_costs): Use regno_cost_classes instead of - cost_classes. - (free_ira_costs, ira_init_costs): Don't use cost_classes. - (ira_costs, ira_set_pseudo_classes): Call - initiate_regno_cost_classes and finish_regno_cost_classes. - - 2010-10-04 Vladimir Makarov - - * target-def.h (TARGET_IRA_COVER_CLASSES): Remove. - - * target.def (ira_cover_classes): Remove. - - * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES. - - * doc/tm.texi.in: Ditto. - - * ira-conflicts.c: Remove mentioning cover classes from the file. - Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use - ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting. - - * targhooks.c (default_ira_cover_classes): Remove. - - * targhooks.h (default_ira_cover_classes): Ditto. - - * haifa-sched.c: Remove mentioning cover classes from the file. - Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use - ira_pressure_classes and ira_pressure_classes_num instead of - ira_reg_class_cover_size and ira_reg_class_cover. Use - sched_regno_pressure_class instead of sched_regno_cover_class. - (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use - ira_reg_class_max_nregs instead of ira_reg_class_nregs. - - * ira-int.h: Add 2010 to Copyright. Remove mentioning cover - classes from the file. - (object_hard_regs_t, object_hard_regs_node_t): New typedefs. - (struct object_hard_regs, struct object_hard_regs_node): New. - (struct ira_object): New members profitable_hard_regs, - hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num. - (struct ira_allocno): Rename cover_class to aclass. Rename - cover_class_cost and updated_cover_class_cost to class_cost and - updated_class_cost. Remove splay_removed_p and - left_conflict_size. Add new members colorable_p. - (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove. - (ALLOCNO_COLORABLE_P): New macro. - (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS. - (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST): - Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST. - (OBJECT_...): Rename parameter C to O. - (OBJECT_PROFITABLE_HARD_REGS): New macro. - (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START) - (OBJECT_HARD_REGS_SUBNODES_NUM): New macros. - (struct target_ira_int): New members x_ira_max_memory_move_cost, - x_ira_max_register_move_cost, x_ira_max_may_move_in_cost, - x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p, - x_ira_reg_pressure_class_p, x_ira_important_class_nums, - x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to - x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to - x_ira_reg_class_subunion. - (ira_max_memory_move_cost, ira_max_register_move_cost) - (ira_max_may_move_in_cost, ira_max_may_move_out_cost) - (ira_reg_allocno_class_p, ira_reg_pressure_class_p) - (ira_important_class_nums, ira_reg_class_superunion): New macros. - (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs. - (ira_reg_class_union): Rename to ira_reg_class_subunion. - (ira_debug_class_cover): Rename to ira_debug_allocno_classes. - (ira_set_allocno_cover_class): Rename to ira_set_allocno_class. - (ira_tune_allocno_costs_and_cover_classes): Rename to - ira_tune_allocno_costs. - (ira_debug_hard_regs_forest): New. - (ira_object_conflict_iter_init, ira_object_conflict_iter_cond) - (ira_object_conflict_iter_next): Fix comments. - (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions. - (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename - cover_class to aclass. - (ira_allocate_and_accumulate_costs): Ditto. - (ira_allocate_and_set_or_copy_costs): Ditto. - - * opts.c (decode_options): Remove ira_cover_class check. - - * ira-color.c: Remove mentioning cover classes from the file. Use - ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST - instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and - ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting. - (splay-tree.h): Remove include. - (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move - before copy_freq_compare_func. - (allocnos_for_spilling, removed_splay_allocno_vec): Remove. - (object_hard_regs_vec, object_hard_regs_htab, node_check_tick): - New definitions. - (hard_regs_roots, hard_regs_node_vec): Ditto. - (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto. - (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto. - (finish_object_hard_regs, object_hard_regs_compare): Ditto. - (create_new_object_hard_regs_node): Ditto. - (add_new_object_hard_regs_node_to_forest): Ditto. - (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto. - (setup_object_hard_regs_nodes_parent, first_common_ancestor_node): - Ditto. - (print_hard_reg_set, print_hard_regs_subforest): Ditto. - (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto. - (remove_unused_object_hard_regs_nodes): Ditto. - (enumerate_object_hard_regs_nodes): Ditto. - (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto. - (object_hard_regs_subnode_t): Ditto. - (struct object_hard_regs_subnode): Ditto. - (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto. - (setup_object_hard_regs_subnode_index): Ditto. - (get_object_hard_regs_subnodes_num): Ditto. - (form_object_hard_regs_nodes_forest): Ditto. - (finish_object_hard_regs_nodes_tree): Ditto. - (finish_object_hard_regs_nodes_forest): Ditto. - (allocnos_have_intersected_live_ranges_p): Rename to - allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func. - (pseudos_have_intersected_live_ranges_p): Rename to - conflict_by_live_ranges_p. Move before copy_freq_compare_func. - (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto. - (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto. - (update_copy_costs): Remove assert. Skip cost update if the hard - reg does not belong the class. - (assign_hard_reg): Process only profitable hard regs. - (uncolorable_allocnos_num): Make it scalar. - (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM - and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE - and ira_reg_class_max_nregs. - (bucket_allocno_compare_func): Check frequency first. - (sort_bucket): Add compare function as a parameter. - (add_allocno_to_ordered_bucket): Assume no coalesced allocnos. - (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove. - (push_allocno_to_stack): Rewrite for checking new allocno - colorability. - (remove_allocno_from_bucket_and_push): Print cost too. Remove assert. - (push_only_colorable): Pass new parameter to sort_bucket. - (push_allocno_to_spill): Remove. - (allocno_spill_priority_compare): Make it inline and rewrite. - (splay_tree_allocate, splay_tree_free): Remove. - (allocno_spill_sort_compare): New function. - (push_allocnos_to_stack): Sort allocnos for spilling once. Don't - build and use splay tree. Choose first allocno in uncolorable - allocno bucket to spill. Remove setting spill cost. - (all_conflicting_hard_regs): Remove. - (setup_allocno_available_regs_num): Check only profitable hard - regs. Print info about hard regs nodes. - (setup_allocno_left_conflicts_size): Remove. - (put_allocno_into_bucket): Don't call - setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p. - (improve_allocation): New. - (color_allocnos): Call setup_profitable_hard_regs, - form_object_hard_regs_nodes_forest, improve_allocation, - finish_object_hard_regs_nodes_forest. Setup spill cost. - (print_loop_title): Use pressure classes. - (color_allocnso): Ditto. - (do_coloring): Remove allocation and freeing splay_tree_node_pool - and allocnos_for_spilling. - (ira_sort_regnos_for_alter_reg): Don't setup members - {first,next}_coalesced_allocno. - (color): Remove allocating and freeing removed_splay_allocno_vec. - (fast_allocation): Use ira_prohibited_class_mode_regs instead of - prohibited_class_mode_regs. - - * ira-lives.c: Remove mentioning cover classes from the file. Fix - formatting. - (update_allocno_pressure_excess_length): Use pressure classes. - (inc_register_pressure, dec_register_pressure): Check for pressure - class. - (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use - pressure class. Use ira_reg_class_nregs instead of - ira_reg_class_max_nregs. - (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto. - (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class. - (single_reg_class): Use ira_reg_class_nregs instead of - ira_reg_class_max_nregs. - (process_bb_node_lives): Use pressure classes. - - * ira-emit.c: Remove mentioning cover classes from the file. Use - ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting. - (change_loop): Use pressure classes. - (modify_move_list): Call ira_set_allocno_class instead of - ira_set_allocno_cover_class. - - * ira-build.c: Remove mentioning cover classes from the file. Use - ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of - ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use - ALLOCNO_UPDATED_CLASS_COST instead of - ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting. - (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS. - (ira_create_allocno): Remove initialization of - ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize - ALLOCNO_COLORABLE_P. - (ira_set_allocno_cover_class): Rename to ira_set_allocno_class. - Update conflict regs for the objects. - (create_cap_allocno): Remove assert. Don't propagate - ALLOCNO_AVAILABLE_REGS_NUM. - (ira_free_allocno_costs): New function. - (finish_allocno): Change a part of code into call of - ira_free_allocno_costs. - (low_pressure_loop_node_p): Use pressure classes. - (object_range_compare_func): Don't compare classes. - (setup_min_max_conflict_allocno_ids): Ditto. - - * loop-invariant.c: Remove mentioning cover classes from the file. - Use ira_pressure_classes and ira_pressure_classes_num instead of - ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting. - (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs. - Use ira_reg_class_max_nregs instead of ira_reg_class_nregs. - Use reg_allocno_class instead of reg_cover_class. - (get_inv_cost): Use instead ira_stack_reg_pressure_class of - STACK_REG_COVER_CLASS. - (get_regno_cover_class): Rename to get_regno_pressure_class. - (move_loop_invariants): Initialize and finalize regstat. - - * ira.c: Remove mentioning cover classes from the file. Add - comments about coloring without cover classes. Use ALLOCNO_CLASS - instead of ALLOCNO_COVER_CLASS. Fix formatting. - (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before - setup_class_subset_and_memory_move_costs. - (setup_stack_reg_pressure_class, setup_pressure_classes): New. - (setup_cover_and_important_classes): Rename to - setup_allocno_and_important_classes. - (setup_class_translate_array): New. - (setup_class_translate): Call it for allocno and pressure classes. - (cover_class_order): Rename to allocno_class_order. - (comp_reg_classes_func): Use ira_allocno_class_translate instead - of ira_class_translate. - (reorder_important_classes): Set up ira_important_class_nums. - (setup_reg_class_relations): Set up ira_reg_class_superunion. - (print_class_cover): Rename to print_classes. Add parameter. - (ira_debug_class_cover): Rename to ira_debug_allocno_classes. - Print pressure classes too. - (find_reg_class_closure): Rename to find_reg_classes. Don't call - setup_reg_subclasses. - (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class. - (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs. - (setup_prohibited_class_mode_regs): Use - ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs. - (clarify_prohibited_class_mode_regs): New function. - (ira_init_register_move_cost): Set up ira_max_register_move_cost, - ira_max_may_move_in_cost, and ira_max_may_move_out_cost. - (ira_init_once): Initialize them. - (free_register_move_costs): Process them. - (ira_init): Move calls of find_reg_classes and - setup_hard_regno_aclass after setup_prohibited_class_mode_regs. - Call clarify_prohibited_class_mode_regs. - (ira_no_alloc_reg): Remove. - (too_high_register_pressure_p): Use pressure classes. - - * sched-deps.c: Remove mentioning cover classes from the file. - Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use - ira_pressure_classes and ira_pressure_classes_num instead of - ira_reg_class_cover_size and ira_reg_class_cover. - (mark_insn_hard_regno_birth, mark_hard_regno_death): Use - sched_regno_pressure_class instead of sched_regno_cover_class. - (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use - ira_reg_class_max_nregs instead of ira_reg_class_nregs. - - * ira.h: Add 2010 to Copyright. - (ira_no_alloc_reg): Remove external. - (struct target_ira): Rename x_ira_hard_regno_cover_class, - x_ira_reg_class_cover_size, x_ira_reg_class_cover, and - x_ira_class_translate to x_ira_hard_regno_allocno_class, - x_ira_allocno_classes_num, x_ira_allocno_classes, and - x_ira_allocno_class_translate. Add x_ira_pressure_classes_num, - x_ira_pressure_classes, x_ira_pressure_class_translate, and - x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to - x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and - x_ira_no_alloc_regs. - (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class. - (ira_reg_class_cover_size, ira_reg_class_cover): Rename to - ira_allocno_classes_num and ira_allocno_classes. - (ira_class_translate): Rename to ira_allocno_class_translate. - (ira_pressure_classes_num, ira_pressure_classes): New definitions. - (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto. - (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs. - (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New - (ira_no_alloc_regs): New. - - * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover - classes from the file. Use ALLOCNO_CLASS instead of - ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of - ALLOCNO_COVER_CLASS_COST. - (regno_cover_class): Rename to regno_aclass. - (record_reg_classes): Use ira_reg_class_subunion instead of - ira_reg_class_union. - (record_address_regs): Check overflow. - (scan_one_insn): Ditto. - (print_allocno_costs): Print total mem cost fore regional allocation. - (print_pseudo_costs): Use REG_N_REFS. - (find_costs_and_classes): Use classes intersected with them on the - 1st pass. Check overflow. Use ira_reg_class_subunion instead of - ira_reg_class_union. Use ira_allocno_class_translate and - regno_aclass instead of ira_class_translate and regno_cover_class. - Modify code for finding regno_aclass. Setup preferred classes for - the next pass. - (setup_allocno_cover_class_and_costs): Rename to - setup_allocno_class_and_costs. Use regno_aclass instead of - regno_cover_class. Use ira_set_allocno_class instead of - ira_set_allocno_cover_class. - (init_costs, finish_costs): Use regno_aclass instead of - regno_cover_class. - (ira_costs): Use setup_allocno_class_and_costs instead of - setup_allocno_cover_class_and_costs. - (ira_tune_allocno_costs_and_cover_classes): Rename to - ira_tune_allocno_costs. Check overflow. Skip conflict hard regs - by processing objects. Use ira_reg_class_max_nregs instead of - ira_reg_class_nregs. - - * rtl.h (reg_cover_class): Rename to reg_allocno_class. - - * sched-int.h: Remove mentioning cover classes from the file. - (sched_regno_cover_class): Rename to sched_regno_pressure_class. - - * reginfo.c: Add 2010 to Copyright. Remove mentioning cover - classes from the file. - (struct reg_pref): Rename coverclass into allocnoclass. - (reg_cover_class): Rename to reg_allocno_class. - - * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies. - - * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove. - - * config/arm/arm.h (IRA_COVER_CLASSES): Ditto. - - * config/avr/avr.h (IRA_COVER_CLASSES): Ditto. - - * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto. - - * config/cris/cris.h (IRA_COVER_CLASSES): Ditto. - - * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto. - - * config/frv/frv.h (IRA_COVER_CLASSES): Ditto. - - * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto. - - * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto. - - * config/i386/i386.c (TARGET_IRA_COVER_CLASSES) - (i386_ira_cover_classes): Ditto. - - * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto. - - * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto. - - * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto. - - * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto. - - * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto. - - * config/mep/mep.h (IRA_COVER_CLASSES): Ditto. - - * config/mips/mips.c (TARGET_IRA_COVER_CLASSES) - (mips_ira_cover_classes): Ditto. - - * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto. - - * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto. - - * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto. - - * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto. - - * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto. - - * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX) - (IRA_COVER_CLASSES_VSX): Ditto. - - * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES) - (rs6000_ira_cover_classes): Ditto. - - * config/rx/rx.h (IRA_COVER_CLASSES): Ditto. - - * config/s390/s390.h (IRA_COVER_CLASSES): Ditto. - - * config/score/score.h (IRA_COVER_CLASSES): Ditto. - - * config/sh/sh.h (IRA_COVER_CLASSES): Ditto. - - * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto. - - * config/spu/spu.h (IRA_COVER_CLASSES): Ditto. - - * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto. - - * config/v850/v850.h (IRA_COVER_CLASSES): Ditto. - - * config/vax/vax.h (IRA_COVER_CLASSES): Ditto. - - * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto. - -2011-03-29 Jakub Jelinek - - PR debug/48253 - * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label, - dw_fde_hot_section_end_label, dw_fde_unlikely_section_label, - dw_fde_unlikely_section_end_label, cold_in_std_section, - dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields. - Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section - fields. - (output_fde): Use dw_fde_second_{begin,end} if second is - true, otherwise dw_fde_{begin,end}. - (output_call_frame_info): Test dw_fde_second_begin != NULL - instead of dw_fde_switched_sections. - (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct - fields, initialize new fields. Initialize in_std_section - unconditionally from the first partition. - (dwarf2out_end_epilogue): Don't override dw_fde_end when - dw_fde_second_begin is non-NULL. - (dwarf2out_switch_text_section): Stop initializing removed - dw_fde_struct fields, initialize new fields, initialize - also dw_fde_end here. Set dw_fde_switch_cfi even when - dwarf2out_do_cfi_asm (). Call var_location_switch_text_section. - (struct var_loc_list_def): Add last_before_switch field. - (arange_table, arange_table_allocated, arange_table_in_use, - ARANGE_TABLE_INCREMENT, add_arange): Removed. - (size_of_aranges): Count !in_std_section and !second_in_std_section - hunks in fdes, instead of looking at arange_table_in_use. - (output_aranges): Add aranges_length argument, don't call - size_of_aranges here. Instead of using aranges_table* - emit ranges for fdes when !in_std_section resp. - !second_in_std_section. - (dw_loc_list): Break ranges crossing section switch. - (convert_cfa_to_fb_loc_list): Likewise. If switched sections, - use dw_fde_second_end instead of dw_fde_end as end of last range. - (gen_subprogram_die): Don't call add_arange. Use - dw_fde_{begin,end} for first partition and if switched - section dw_fde_second_{begin,end} for the second. - (var_location_switch_text_section_1, - var_location_switch_text_section): New functions. - (dwarf2out_begin_function): Initialize cold_text_section even - when function_section () isn't text_section. - (prune_unused_types): Don't walk arange_table. - (dwarf2out_finish): Don't needlessly test - flag_reorder_blocks_and_partition when testing cold_text_section_used. - If info_section_emitted, call size_of_aranges and if it indicates - non-empty .debug_aranges, call output_aranges with the computed - size. Stop using removed dw_fde_struct fields, use - dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end} - for second. - - PR debug/48203 - * cfgexpand.c (expand_debug_expr) : Only - create ENTRY_VALUE if incoming or address of incoming's MEM - is a hard REG. - * dwarf2out.c (mem_loc_descriptor): Don't emit - DW_OP_GNU_entry_value of DW_OP_fbreg. - * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup - on ENTRY_VALUE is able to find the canonical parameter VALUE. - * cselib.c (rtx_equal_for_cselib_1) : Use - rtx_equal_p instead of rtx_equal_for_cselib_1 to compare - ENTRY_VALUE_EXPs. - (cselib_hash_rtx) : If ENTRY_VALUE_EXP - is a REG_P or MEM_P with REG_P address, compute hash directly - instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP. - (preserve_only_constants): Don't clear VALUES forwaring - ENTRY_VALUE to some other VALUE. - -2011-03-28 Richard Sandiford - - * builtins.c (expand_builtin_memset_args): Use gen_int_mode - instead of GEN_INT. - -2011-03-28 Eric Botcazou - - * cfgexpand.c (expand_gimple_cond): Always set the source location and - block before expanding the statement. - (expand_gimple_stmt_1): Likewise. Set them here... - (expand_gimple_stmt): ...and not here. Tidy. - * cfglayout.c (curr_insn_locator): Return 0 if the current location is - unknown. - -2011-03-28 Steven Bosscher - - * Makefile.in: New rule for cprop.o. - * gcse.c: Move constant/copy propagation to cprop.c. - (compute_local_properties): Only handle expression tables. - (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise. - (one_pre_gcse_pass, one_code_hoisting_pass): Likewise. - (hash_set, insert_set_in_table, gcse_constant_p, lookup_set, - next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set, - mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem, - compute_cprop_data, find_used_regs, try_replace_reg, - find_avail_set, cprop_jump, constprop_register, cprop_insn, - local_cprop_find_used_regs, do_local_cprop, local_cprop_pass, - fis_get_condition, implicit_set_cond_p, find_implicit_sets, - find_bypass_set, reg_killed_on_edge, bypass_block, - bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop, - execute_rtl_cprop, pass_rtl_cprop): Move to... - * cprop.c: ...here. New file, constant/copy propagation for RTL - moved from gcse.c to here with minor cleanups in duplicated code. - -2011-03-28 H.J. Lu - - * config/i386/i386.c (flag_opts): Fix a typo in - -mavx256-split-unaligned-store. - -2011-03-28 Anatoly Sokolov - - * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE, - LIBCALL_VALUE): Remove macros. - * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, - TARGET_FUNCTION_VALUE_REGNO_P): Define. - (h8300_function_value, h8300_libcall_value, - h8300_function_value_regno_p): New functions. - -2011-03-28 Anatoly Sokolov - - * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro. - -2011-03-28 Jeff Law - - * tree-ssa-threadupdate.c (redirect_edges): Call - create_edge_and_update_destination_phis as needed. - (create_edge_and_update_destination_phis): Accept new BB argument. - All callers updated. - (thread_block): Do not update the profile when threading around - intermediate blocks. - (thread_single_edge): Likewise. - (determine_bb_domination_status): If BB is not a successor of the - loop header, return NONDOMINATING. - (register_jump_thread): Note when we register a jump thread around - an intermediate block. - * tree-ssa-threadedge.c (thread_around_empty_block): New function. - (thread_across_edge): Use it. - -2011-03-28 Tristan Gingold - - * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion - when for_return is 2. - -2011-03-28 Jeff Law - - * var-tracking.c (canonicalize_values_mark): Delete unused - lhs assignment. - (canonicalize_values_star, set_variable_part): Likewise. - (clobber_variable_part, delete_variable_part): Likewise. - -2011-03-28 Steven Bosscher - - * gcse.c (free_gcse_mem): Free reg_set_bitmap. - -2011-03-28 Martin Jambor - - * tree-inline.c (expand_call_inline): Do not check that destination - node is analyzed. - (optimize_inline_calls): Assert that destination node is analyzed. - * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do - not call tree_lowering_passes. - * cgraph.h (cgraph_analyze_function): Declare. - * cgraphunit.c (cgraph_analyze_function): Make public. - -2011-03-28 Joseph Myers - - * config/sparc/sparc-opts.h: New. - * config/sparc/sparc.c (sparc_handle_option, sparc_select, - sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove. - (sparc_option_override): Store processor_type enumeration rather - than string in cpu_default. Remove name and enumeration from - cpu_table. Directly default -mcpu then default -mtune from -mcpu - without using sparc_select. Use target_flags_explicit instead of - fpu_option_set. - * config/sparc/sparc.h (enum processor_type): Move to - sparc-opts.h. - (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove. - * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New - HeaderInclude entry. - (mcpu=, mtune=): Use Var and Enum. - (sparc_processor_type): New Enum and EnumValue entries. - -2011-03-28 Rainer Orth - Iain Sandoe - - PR target/48245 - * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC. - -2011-03-28 Eric Botcazou - - * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype. - * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter. - Insert new statements at it in lieu of STMT. - (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr. - * tree-vect-stmts.c (vectorizable_store): Likewise. - (vectorizable_load): Likewise. - -2011-03-28 Uros Bizjak - - * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode. - (divtf3): Ditto. - (multf3): Ditto. - (subtf3): Ditto. - -2011-03-27 H.J. Lu - - * config/i386/sse.md (*avx_mov_internal): Don't assert - unaligned 256bit load/store. - (*avx_movu): Likewise. - (*avx_movdqu): Likewise. - -2011-03-27 John David Anglin - - PR target/48288 - * config/pa/predicates.md (reg_or_ior_operand): New predicate. - * config/pa/pa.md (iordi3): Use new predicate in expander. - (iorsi3): Likewise. - -2011-03-27 Anatoly Sokolov - - * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE, - FUNCTION_VALUE_REGNO_P): Remove macros. - * config/mips/mips-protos.h (mips_function_value): Remove. - * config/mips/mips.c (mips_function_value): Rename to... - (mips_function_value_1): ... this. Make static. Handle receiving - the function type in 'fn_decl_or_type' argument. - (mips_function_value, mips_libcall_value, - mips_function_value_regno_p): New function. - (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, - TARGET_FUNCTION_VALUE_REGNO_P): Define. - -2011-03-27 H.J. Lu - - * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load - and -mavx256-split-unaligned-store. - (ix86_option_override_internal): Split 32-byte AVX unaligned - load/store by default. - (ix86_avx256_split_vector_move_misalign): New. - (ix86_expand_vector_move_misalign): Use it. - - * config/i386/i386.opt: Add -mavx256-split-unaligned-load and - -mavx256-split-unaligned-store. - - * config/i386/sse.md (*avx_mov_internal): Verify unaligned - 256bit load/store. Generate unaligned store on misaligned memory - operand. - (*avx_movu): Verify unaligned - 256bit load/store. - (*avx_movdqu): Likewise. - - * doc/invoke.texi: Document -mavx256-split-unaligned-load and - -mavx256-split-unaligned-store. - -2011-03-27 Richard Sandiford - - PR target/38598 - * config/mips/mips.md (extendsidi2): Add an "l" alternative. - Update commentary. - -2011-03-27 Richard Sandiford - - * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and - opno arguments with an expand_operand. Use create_input_operand. - (mips_prepare_builtin_target): Delete. - (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New - functions. - (mips_expand_builtin_direct): Use create_output_operand and - mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg. - (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison. - (mips_expand_builtin_compare): Use mips_expand_fp_comparison. - -2011-03-27 Ira Rosen - - * config/arm/arm.c (arm_autovectorize_vector_sizes): New - function. - (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define. - -2011-03-26 Eric Botcazou - - * basic-block.h (fixup_abnormal_edges): Adjust prototype. - * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover - basic blocks and call commit_edge_insertions directly. - (fixup_abnormal_edges): Move from here to... - * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions - on the edges and return whether some have actually been inserted. - * reg-stack.c (convert_regs): Fix up abnormal edges before inserting - compensation code. - -2011-03-26 Andrey Belevantsev - - PR rtl-optimization/48144 - * sel-sched-ir.c (merge_history_vect): Factor out from ... - (merge_expr_data): ... here. - (av_set_intersect): Rename to av_set_code_motion_filter. - Update all callers. Call merge_history_vect when an expression - is found in both sets. - * sel-sched-ir.h (av_set_code_motion_filter): Add prototype. - -2011-03-26 Alan Modra - - * config/rs6000/predicates.md (word_offset_memref_op): Handle - cmodel medium addresses. - * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned - 64-bit gpr loads and stores. - (rs6000_secondary_reload_ppc64): New function. - * config/rs6000/rs6000-protos.h: Declare it. - * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New. - -2011-03-26 Alan Modra - - PR target/47487 - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support - GNU Go in traceback table. - -2011-03-25 Richard Henderson - - * expr.c (emit_block_move_via_movmem): Only use 6 operand variant - if there are exactly 6 operands. - (set_storage_via_setmem): Similarly. - -2011-03-25 Kai Tietz - - * collect2.c (write_c_file_stat): Handle backslash - as right-hand directory separator. - (resolve_lib_name): Use IS_DIR_SEPARATOR instead of - checking just for slash. - * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH - instead of checking for trailing slash. - * gcc.c (record_temp_file): Use filename_cmp instead - of strcmp. - (do_spec_1): Likewise. - (replace_outfile_spec_function): Likewise. - (is_directory): Use filename_ncmp instead of strncmp. - (print_multilib_info): Likewise. - * gcov.c (find_source): Use filename_cmp instead - instead of strcmp. - (make_gcov_file_name): Fix order of slash/backslash - checks. - * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp. - (add_standard_paths): Likewise. - * mips-tfile.c (saber_stop): Handle backslash. - * prefix.c (update_path): Use filename_ncmp instead of - strncmp. - * profile.c (output_location): Use filename_cmp instead - of strcmp. - * read-md.c (handle_toplevel_file): Handle backslash. - * tlink.c (frob_extension): Likewise. - * tree-cfg.c (same_line_p): Use filename_cmp instead of - strcmp. - * tree-dump.c (dequeue_and_dump): Handle backslash. - * tree.c (get_file_function_name): Likewise. - * gengtype.c (read_input_list): Likewise. - (get_file_realbasename): Likewise. - (get_output_file_with_visibility): Use filename_cmp - instead of strcmp. - -2011-03-25 Richard Sandiford - - * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS - case to VFPv1. - -2011-03-25 Nathan Froyd - - * fold-const.c (expr_location_or): New function. - (fold_truth_not_expr): Call it. - -2011-03-25 Jeff Law - - * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing - va_end. - * c-family/c-common.c (def_fn_type): Likewise. - * emit-rtl.c (gen_rtvec): Likewise. - * lto/lto-lang.c (def_fn_type): Likewise. - -2011-03-25 Richard Guenther - - * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants - also generate copies. - (fini_copy_prop): Handle constant values properly. - -2011-03-25 Jakub Jelinek - - * dwarf2out.c (mem_loc_descriptor) : Compare - mode size instead of bitsize with DWARF2_ADDR_SIZE. - (hash_loc_operands, compare_loc_operands): Handle - DW_OP_GNU_entry_value. - -2011-03-25 Kai Tietz - - * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment. - (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI. - * config/i386/i386.c (ix86_conditional_register_usage): Adjust - comment and use macro TARGET_64BIT_MS_ABI instead. - (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case - and change default behavior for 32-bit MS_ABI. - (ix86_reg_parm_stack_space): Check additionally for bit-ness. - (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for - 32-bit, too. - (ix86_cfun_abi): Likewise. - (ix86_maybe_switch_abi): Adjust comment. - (init_cumulative_args): Check for bit-ness in MS_ABI case. - (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI - instead of checking for SYSV_ABI. - (ix86_nsaved_sseregs): Likewise. - (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment - to 16 bytes. - (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro. - * config/i386.h (TARGET_32BIT_MS_ABI): New macro. - (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI. - (OUTGOING_REG_PARM_STACK_SPACE): Likewise. - * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI. - -2011-03-25 Richard Guenther - - * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. - (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. - (verify_gimple): Remove. - * tree-cfg.c (verify_gimple_call): Merge verification - from verify_stmts. - (verify_gimple_phi): Merge verification from verify_stmts. - (verify_gimple_label): New function. - (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2. - (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. - (verify_stmt): Merge into verify_gimple_in_cfg and callees. - (verify_stmts): Rename to verify_gimple_in_cfg. - (verify_gimple_in_cfg): New function. - * passes.c (execute_function_todo): Call verify_gimple_in_cfg. - * tree-ssa.c (verify_ssa): Likewise. - * gimplify.c (gimplify_body): Call verify_gimple_in_seq. - -2011-03-25 Richard Guenther - - * passes.c (init_optimization_passes): Add FRE pass after - early SRA. - -2011-03-25 Bernd Schmidt - Andrew Stubbs - - * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning - for Cortex-A8. - (arm_movdi_vfp_cortexa8): New pattern. - * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon, - iordi3_neon, xordi3_neon): Add alternatives to discourage Neon - instructions when tuning for Cortex-A8. Set attribute "arch". - * config/arm/arm.md: Move include arm-tune.md up a bit. - (define_attr "arch"): Add "onlya8" and "nota8" values. - (define_attr "arch_enabled"): Handle "onlya8" and "nota8". - -2011-03-25 Nathan Froyd - - PR bootstrap/48282 - Revert: - 2011-03-24 Nathan Froyd - - * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and - FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. - (pass_instantiate_virtual_regs): Require PROP_cfglayout. - * passes.c (init_optimization_passes): Move - pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. - -2011-03-25 Kai Tietz - - * c-typeck.c (comptypes_internal): Replace target - hook call of comp_type_attributes by version in tree.c file. - * gimple.c (gimple_types_compatible_p_1): Likewise. - * tree-ssa.c (useless_type_conversion_p): Likewise. - * tree.c (build_type_attribute_qual_variant): Likewise. - (attribute_value_equal): New static helper function. - (comp_type_attributes): New function. - (merge_attributes): Use attribute_value_equal for comparison. - (attribute_list_contained): Likewise. - * tree.h (comp_type_attributes): New prototype. - -2011-03-25 Richard Guenther - - * tree-cfg.c (verify_gimple_assign_unary): Drop special casing - of complex types at -O0. - (verify_gimple_assign_binary): Likewise. - (verify_gimple_assign_ternary): Likewise. - -2011-03-24 Mark Wielaard - - * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8. - (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8. - -2011-03-24 Mark Wielaard - - PR debug/48041 - * dwarf2out.c (output_abbrev_section): Only write table when - abbrev_die_table_in_use > 1. - -2011-02-24 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql. - (alpha_expand_unaligned_store): Use mskwl, mskll, mskql. - (alpha_expand_unaligned_load_words): Use extql. - (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql. - (emit_insxl): Handle all modes for consistency. - -2011-02-24 Richard Henderson - - * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN. - (alpha_expand_unaligned_load): Likewise. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - (emit_insxl, alpha_split_compare_and_swap_12): Likewise. - (alpha_split_lock_test_and_set_12): Likewise. - (print_operand, alpha_fold_builtin_extxx): Likewise. - (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise. - * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise. - (builtin_extwh, builtin_extlh, builtin_extql): Likewise. - (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove. - (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove. - (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove. - (unaligned_loadqi_be, unaligned_loadhi_be): Remove. - (unaligned_storeqi_be, unaligned_storehi_be): Remove. - (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN. - (extwl, extll, extql): Similarly. - (inswh, inslh, insqh): Similarly. - (mskbl, mskwl, mskll, mskql): Similarly. - (mskwh, msklh, mskqh): Similarly. - -2011-02-24 Richard Henderson - - * config/alpha/alpha.md (attribute isa): Add er, ner. - (attribute enabled): Handle them. - (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}. - -2011-02-24 Richard Henderson - - * config/alpha/alpha.md (attribute isa): Add vms. - (attribute enabled): Handle it. - (*movsf): Merge *movsf_{nofix,fix,nofp}. - (*movdf): Merge *movdf_{nofix,fix,nofp}. - (*movtf): Rename from *movtf_internal for consistency. - (*movsi): Merge with *movsi_nt_vms. - (*movhi): Merge *movhi_nobwx, *movhi_bwx. - (*movqi): Merge *movqi_nobwx, *movqi_bwx. - (*mov): Merge *mov_fix, *mov_nofix. - * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled. - -2011-02-24 Richard Henderson - - * config/alpha/alpha.md (extendqihi2): Implement for BWX only. - (extendqisi2, extendhisi2): Likewise. - (extendqidi2): Simplify BWX/non-BWX expansions. - (extendhidi2): Similarly. - -2011-02-24 Richard Henderson - - * config/alpha/alpha.md (attribute isa): New. - (attribute enabled): New. - (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}. - (zero_extendqisi2, zero_extendqidi2): Similarly. - (zero_extendhisi2, zero_extendhidi2): Similarly. - * config/alpha/predicates.md (reg_or_bwx_memory_operand): New. - -2011-02-24 Richard Henderson - - * config/alpha/predicates.md (input_operand): Revert last change; - update comment to mention 32-bit VMS rather than Windows. - -2011-03-24 Nathan Froyd - - * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and - FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. - (pass_instantiate_virtual_regs): Require PROP_cfglayout. - * passes.c (init_optimization_passes): Move - pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. - -2011-03-24 Eric Botcazou - - * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases. - -2011-03-24 Uros Bizjak - - * config/i386/i386.md (ix86_print_operand): Output DFmode const_double - correctly. - -2011-03-24 Jakub Jelinek - - PR debug/48204 - * simplify-rtx.c (simplify_const_unary_operation): Call - real_convert when changing mode class with FLOAT_EXTEND. - -2011-03-24 Nick Clifton - - * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define. - (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - * config/rx/rx.c (rx_option_override): Set align_jumps, - align_loops and align_labels if not set by the user. - (rx_align_for_label): New function. - (rx_max_skip_for_label): New function. - (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define. - (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define. - (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define. - (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. - * config/rx/rx-protos.h (rx_align_for_label): Add prototype. - -2011-03-24 Richard Sandiford - - PR rtl-optimization/48263 - * optabs.c (expand_binop_directly): Reinstate convert_modes code - and original commutative_p handling. Use maybe_gen_insn. - -2011-03-24 Andreas Krebbel - - * reload.c (find_reloads_subreg_address): Add address_reloaded - parameter and return true there if the full address has been - reloaded. - (find_reloads_toplev): Pass address_reloaded flag. - (find_reloads_address_1): Don't use address_reloaded parameter. - -2011-03-24 Jeff Law - - * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but - unused variable "ann". - (remove_unused_locals): Likewise. - - * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless - statement. - - * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL - after it is freed. - -2011-03-24 Andreas Krebbel - - * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS - for invalid symbolic addresses. - (s390_secondary_reload): Don't use s390_check_symref_alignment for - larl operands. - -2011-03-24 Eric Botcazou - - * fold-const.c (fold_ternary_loc): Preserve the location (if any) of - the argument in calls to fold_truth_not_expr. - -2011-03-24 Nathan Froyd - - * tree.c (record_node_allocation_statistics): New function. - (make_node_stat, copy_node_stat, build_string): Call it. - (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise. - (build1_stat, build_omp_clause): Likewise. - -2011-03-24 Richard Sandiford - - * builtins.c (expand_movstr): Fix endp == 1 adjustment after - last commit. - -2011-03-24 Richard Guenther - - PR tree-optimization/48271 - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup - blocks that still exist. - -2011-03-24 Richard Guenther - - PR tree-optimization/48270 - * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do - not free datarefs before ddrs. - -2011-03-24 Eric Botcazou - - * tree-sra.c (build_ref_for_offset): Strip useless type conversions - from the address built for a reference with variable offset. - -2011-03-24 Uros Bizjak - - PR target/48237 - * config/i386/i386.md (*movdf_internal_rex64): Do not split - alternatives that can be handled with movq or movabsq insn. - (*movdf_internal): Disable for !TARGET_64BIT. - (*movdf_internal_nointeger): Ditto. - * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates. - -2011-03-24 Nathan Froyd - - * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. - (FUNCTION_ARG_ADVANCE): Likewise. - * tm.texi.in: Change references to them to hook references. - * tm.texi: Regenerate. - * targhooks.c (default_function_arg): Eliminate check for target macro. - (default_function_incoming_arg): Likewise. - (default_function_arg_advance): Likewise. - * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. - (function_arg_advance): Likewise. - * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. - -2011-03-24 Richard Guenther - - PR middle-end/48269 - * tree-object-size.c (addr_object_size): Do not double-account - for MEM_REF offsets. - -2011-03-24 Diego Novillo - - * lto-opts.c (input_data_block): Move to lto-streamer-in.c. - * lto-streamer-in.c (input_string_internal): Add clarifying comments. - (lto_input_data_block): Move from lto-opts.c. Make extern. - Update all users. - (lto_input_string): Rename from input_string. Make extern. - Update all users. - * lto-streamer-out.c (lto_output_string_with_length): Rename from - output_string_with_length. - Output 0 to indicate a non-NULL string. Update all callers to - not emit 0. - (lto_output_string): Rename from output_string. Make extern. - Update all users. - (lto_output_decl_state_streams): Make extern. - (lto_output_decl_state_refs): Make extern. - * lto-streamer.h (lto_input_string): Declare. - (lto_input_data_block): Declare. - (lto_output_string): Declare. - (lto_output_string_with_length): Declare. - (lto_output_decl_state_streams): Declare. - (lto_output_decl_state_refs): Declare. - -2011-03-24 Richard Guenther - - PR tree-optimization/46562 - * tree.c (build_invariant_address): New function. - * tree.h (build_invariant_address): Declare. - * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around - a renamed function moved ... - * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here. - Take valueization callback parameter. - * tree-flow.h (gimple_fold_stmt_to_constant): Declare. - * gimple-fold.h: New file. - * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1. - (ccp_fold, fold_const_aggregate_ref, - fold_ctor_reference, fold_nonarray_ctor_reference, - fold_array_ctor_reference, fold_string_cst_ctor_reference, - get_base_constructor): Move ... - * gimple-fold.c: ... here. - (gimple_fold_stmt_to_constant_1): New function - split out from ccp_fold. Take a valueization callback parameter. - Valueize all operands. - (gimple_fold_stmt_to_constant): New wrapper function. - (fold_const_aggregate_ref_1): New function split out from - fold_const_aggregate_ref. Take a valueization callback parameter. - (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1. - * tree-ssa-sccvn.c (simplify_binary_expression): Simplify - invariant POINTER_PLUS_EXPRs to invariant form. - (vn_valueize): New function. - (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant. - * tree-vrp.c (vrp_valueize): New function. - (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant - to fold statements to constants. - * tree-ssa-pre.c (eliminate): Properly guard propagation of - function declarations. - * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o, - tree-ssa-ccp.o): Add gimple-fold.h dependencies. - -2011-03-24 Richard Sandiford - - * config/h8300/predicates.md (jump_address_operand): Fix register - mode check. - -2011-03-24 Ira Rosen - - * doc/invoke.texi (max-stores-to-sink): Document. - * params.h (MAX_STORES_TO_SINK): Define. - * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0 - if either vectorization or if-conversion is disabled. - * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from - tree-vect-data-refs.c vect_equal_offsets. - (dr_equal_offsets_p): New function. - (find_data_references_in_bb): Remove static. - * tree-data-ref.h (find_data_references_in_bb): Declare. - (dr_equal_offsets_p): Likewise. - * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c. - (vect_drs_dependent_in_basic_block): Update calls to - vect_equal_offsets. - (vect_check_interleaving): Likewise. - * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h. - (cond_if_else_store_replacement): Rename to... - (cond_if_else_store_replacement_1): ... this. Change arguments and - documentation. - (cond_if_else_store_replacement): New function. - * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies. - * params.def (PARAM_MAX_STORES_TO_SINK): Define. - -2011-03-23 Chung-Lin Tang - - PR target/46934 - * config/arm/arm.md (casesi): Use the gen_int_mode() function - to subtract lower bound instead of GEN_INT(). - -2011-03-23 Jonathan Wakely - - PR other/48179 - PR other/48221 - PR other/48234 - * doc/extend.texi (Alignment): Move section to match order in TOC. - * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. - (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. - -2011-03-23 Jeff Law - - * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map - before removing the edge. - - * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after - it may have been freed by redirect_branch_edge or - redirect_edge_succ_nodup. - -2011-03-23 Richard Guenther - - * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF. - (check_va_list_escapes): Likewise. - (check_all_va_list_escapes): Likewise. - -2011-03-23 Richard Guenther - - * Makefile.in (IPA_TYPE_ESCAPE_H): Remove. - (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o. - (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H. - (alias.o): Likewise. - (ipa-type-escape.o): Remove. - (ipa-struct-reorg.o): Likewise. - (GTFILES): Remove ipa-struct-reorg.c. - * alias.c: Do not include ipa-type-escape.h. - * tree-ssa-alias.c: Likewise. - * common.opt (fipa-struct-reorg): Preserve for backward compatibility. - * opts.c (finish_options): Do not reset flag_ipa_struct_reorg. - * passes.c (init_optimization_passes): Remove ipa-struct-reorg - and ipa-type-escape passes. - * tree-pass.h (pass_ipa_type_escape): Remove. - (pass_ipa_struct_reorg): Likewise. - * ipa-struct-reorg.h: Remove. - * ipa-struct-reorg.c: Likewise. - * ipa-type-escape.h: Likewise. - * ipa-type-escape.c: Likewise. - * doc/invoke.texi (-fipa-struct-reorg): Remove. - (--param struct-reorg-cold-struct-ratio): Likewise. - * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. - * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. - * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise. - -2011-03-23 Andreas Krebbel - - * config/s390/2084.md: Enable all insn reservations also for z9_ec - cpu attribute value. - * config/s390/s390-opts.h (enum s390_arch_option): Remove. - (enum processor_type): Add PROCESSOR_2094_Z9_EC. - * config/s390/s390.c (processor_flags_table): New constant array. - (s390_handle_arch_option): Remove. - (s390_handle_option): Remove s390_handle_arch_option invocations - and OPT_mwarn_framesize_ handling. - (s390_option_override): Remove s390_handle_arch_option invocation. - (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in - warnings. - * config/s390/s390.md (cpu attribute): Add z9_ec value. - * config/s390/s390.opt (s390_tune, s390_arch) - (march=): Replace s390_arch_option enum and values with - processor_type. Set variable name to s390_arch. Set - initialization value. - (mtune=): Replace s390_arch_option with processor_type. Set - variable name to s390_tune. Set initialization value. - -2011-03-23 Julian Brown - - * expr.c (expand_expr_real_1): Only use BLKmode for volatile - accesses which are not naturally aligned. - -2011-03-23 Richard Sandiford - - PR target/47553 - * config/arm/predicates.md (neon_lane_number): Accept 0..15. - -2011-03-23 Richard Sandiford - - * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code - parameter from "int" to "enum insn_code". - (expand_operand_type): New enum. - (expand_operand): New structure. - (create_expand_operand): New function. - (create_fixed_operand, create_output_operand): Likewise - (create_input_operand, create_convert_operand_to): Likewise. - (create_convert_operand_from, create_address_operand): Likewise. - (create_integer_operand): Likewise. - (create_convert_operand_from_type, maybe_legitimize_operands): Declare. - (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. - (expand_insn, expand_jump_insn): Likewise. - * builtins.c (expand_builtin_prefetch): Use the new interfaces. - (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise. - (expand_movstr, expand_builtin___clear_cache): Likewise. - (expand_builtin_lock_release): Likewise. - * explow.c (allocate_dynamic_stack_space): Likewise. - (probe_stack_range): Likewise. Allow check_stack to FAIL, - and use the default handling in that case. - * expmed.c (check_predicate_volatile_ok): Delete. - (store_bit_field_1, extract_bit_field_1): Use the new interfaces. - (emit_cstore): Likewise. - * expr.c (emit_block_move_via_movmem): Likewise. - (set_storage_via_setmem, expand_assignment): Likewise. - (emit_storent_insn, try_casesi): Likewise. - (emit_single_push_insn): Likewise. Allow the expansion to fail. - * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise. - (expand_vec_shift_expr, expand_binop_directly): Likewise. - (expand_twoval_unop, expand_twoval_binop): Likewise. - (expand_unop_direct, emit_indirect_jump): Likewise. - (emit_conditional_move, vector_compare_rtx): Likewise. - (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise. - (expand_sync_operation, expand_sync_fetch_operation): Likewise. - (expand_sync_lock_test_and_set): Likewise. - (maybe_emit_unop_insn): Likewise. Change icode to an insn_code. - (emit_unop_insn): Likewise. - (expand_copysign_absneg): Change icode to an insn_code. - (create_convert_operand_from_type): New function. - (maybe_legitimize_operand, maybe_legitimize_operands): Likewise. - (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. - (expand_insn, expand_jump_insn): Likewise. - * config/i386/i386.md (setmem): Use nonmemory_operand rather - than const_int_operand for operand 2. - -2011-03-23 Andreas Krebbel - - * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name - if possible. - -2011-03-22 Nathan Froyd - - * emit-rtl.c (emit_pattern_before_noloc): New function. - (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it. - (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise. - (emit_pattern_after_noloc): New function. - (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it. - (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise. - -2011-03-22 Nathan Froyd - - * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE. - (__ffsDI2): Likewise. - -2011-03-22 Richard Henderson - - * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead - of !TARGET_ABI_OPEN_VMS. - (alpha_trampoline_init, alpha_start_function): Likewise. - (alpha_expand_epilogue, alpha_file_start): Likewise. - * config/alpha/alpha.md (divsi3, modsi3): Likewise. - (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise. - (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise. - (*divmodsi_internal, *divmoddi_internal_er): Likewise. - (*divmoddi_internal_er_1, *divmoddi_internal): Likewise. - -2011-03-22 Joseph Myers - - * config/s390/s390-opts.h: New. - * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch, - s390_arch_flags, s390_warn_framesize, s390_stack_size, - s390_stack_guard): Remove. - (s390_handle_arch_option): Return void. Take enum - s390_arch_option value instead of string and searching array. - (s390_handle_option): Don't assert that global structures are in - use. Access variables via opts pointer. Use error_at. Don't use - sscanf for -mstack-guard= or -mstack-size=. Update call to - s390_handle_arch_option. - (s390_option_override): Update call to s390_handle_arch_option. - (s390_emit_prologue): Use %d format for s390_stack_size in - diagnostic. Use %wd for HOST_WIDE_INT. - * config/s390/s390.h (enum processor_type): Move to s390-opts.h. - (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove. - * config/s390/s390.opt (config/s390/s390-opts.h): New - HeaderInclude entry. - (s390_arch_string, s390_tune, s390_tune_flags, s390_arch, - s390_arch_flags, s390_warn_framesize): New Variable entries. - (s390_arch_option): New Enum and EnumValue entries. - (march=): Use Enum instead of Var. - (mstack-guard=, mstack-size=): Use UInteger and Var. - (mtune=): Use Enum. - -2011-03-22 Joseph Myers - - * config/score/score.c (score_handle_option): Don't assert that - global structures are in use. Access target_flags via opts - pointer. Use value of -march= option to determine target_flags - settings. - * config/score/score.opt (march=): Use Enum. - (score_arch): New Enum and EnumValue entries. - -2011-03-22 Joseph Myers - - * config/mep/mep.c (option_mtiny_specified): Remove. - (mep_option_override): Move register handling for -mivc2 from - mep_handle_option. Use global_options_set.x_mep_tiny_cutoff - instead of option_mtiny_specified. - (mep_handle_option): Access target_flags via opts pointer. Don't - assert that global structures are in use. Defer part of -mivc2 - handling and move it to mep_option_override. - * config/mep/mep.opt (IVC2): New Mask entry. - (mivc2): Use Var and Defer instead of Mask. - -2011-03-22 Joseph Myers - - * config/v850/v850-opts.h: New. - * config/v850/v850.c (small_memory): Replace with - small_memory_physical_max array. Make that array static const. - (v850_handle_memory_option): Take integer value of argument. Take - gcc_options pointer, option text and location. Return void. - Update for changes to small memory structures. - (v850_handle_option): Access target_flags via opts pointer. Don't - assert that global structures are in use. Update calls to - v850_handle_memory_option. - (v850_encode_data_area): Update references to small memory settings. - * config/v850/v850.h (struct small_memory_info, small_memory): Remove. - (enum small_memory_type): Move to v850-opts.h. - * config/v850/v850.opt (config/v850/v850-opts.h): New - HeaderInclude entry. - (small_memory_max): New Variable entry. - (msda): Replace by pair of options msda= and msda-. Use UInteger. - (mtda, mzda): Likewise. - -2011-03-22 Joseph Myers - - * config/sh/sh.c (sh_handle_option): Access target_flags via opts - pointer. Don't assert that global structures are in use. - -2011-03-22 Joseph Myers - - * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags - via opts pointer. Don't assert that global structures are in use. - -2011-03-22 Joseph Myers - - * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry. - (munix=93): Use Var. - * config/pa/pa-hpux1010.opt (munix=95): Use Var. - * config/pa/pa-hpux1111.opt (munix=98): Use Var. - * config/pa/pa-opts.h: New. - * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove. - (pa_handle_option): Don't assert that global structures are in - use. Access target_flags via opts pointer. Don't handle - OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or - OPT_munix_98 here. - (pa_option_override): Handle deferred OPT_mfixed_range_. - -2011-03-22 Joseph Myers - - * config/mn10300/mn10300-opts.h: New. - * config/mn10300/mn10300.c (mn10300_processor, - mn10300_tune_string): Remove. - (mn10300_handle_option): Don't assert that global structures are - in use. Access mn10300_processor via opts pointer. Don't handle - OPT_mtune_ here. - * config/mn10300/mn10300.h (enum processor_type): Move to - mn10300-opts.h. - (mn10300_processor): Remove. - * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New - HeaderInclude entry. - (mn10300_processor): New Variable entry. - (mtune=): Use Var. - -2011-03-22 Joseph Myers - - * config/microblaze/microblaze.c: Don't include opts.h. - (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove. - * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn. - (mno-clearbss): Use Var and Warn. - -2011-03-22 Joseph Myers - - * config/m32r/m32r-opts.h: New. - * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove. - (m32r_handle_option): Don't assert that global structures are in - use. Access target_flags and m32r_cache_flush_func via opts - pointer. Don't handle OPT_mmodel_, OPT_msdata_ or - OPT_mno_flush_trap here. - * config/m32r/m32r.h (Code Models, Small Data Area): Replace by - include of m32r-opts.h. - * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New - HeaderInclude entry. - (m32r_model_selected, m32r_sdata_selected): New Variable entries. - (mmodel=): Use Enum and Var. - (m32r_model): New Enum and EnumValue entries. - (mno-flush-trap): Use Var. - (msdata=): Use Enum and Var. - (m32r_sdata): New Enum and EnumValue entries. - -2011-03-22 Joseph Myers - - * config/m32c/m32c.c: Don't include opts.h. - (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION, - m32c_handle_option): Remove. - (m32c_option_override): Check global_options_set.x_target_memregs - instead of target_memregs_set. - * config/m32c/m32c.h (target_memregs): Remove. - * config/m32c/m32c.opt (memregs=): Use UInteger with integer - variable. - -2011-03-22 Joseph Myers - - * config/iq2000/iq2000-opts.h: New. - * config/iq2000/iq2000.c: Don't include opts.h. - (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove. - * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove. - * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New - HeaderInclude entry. - (iq2000_tune): New Variable entry. - (march=): Add comment. Use Enum. - (iq2000_arch): New Enum and EnumValue entries. - (mcpu=): Use Enum and Var. - (iq2000_tune): New Enum and EnumValue entries. - -2011-03-22 Joseph Myers - - * config/ia64/ia64-opts.h: New. - * config/ia64/ia64.c (ia64_tune): Remove. - (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_ - here. Use error_at. - (ia64_option_override): Handle deferred OPT_mfixed_range_. - * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove. - * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New - HeaderInclude entry. - (ia64_tune): New Variable entry. - (mfixed-range=): Use Defer and Var. - (mtune=): Use Enum and Var. - (ia64_tune): New Enum and EnumValue entries. - -2011-03-22 Joseph Myers - - * config/frv/frv-opts.h: New. - * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to - frv-opts.h. - (frv_cpu_type): Remove. - * config/frv/frv.c: Don't include opts.h. - (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove. - * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry. - (frv_cpu_type): New Variable entry. - (frv_cpu): New Enum and EnumValue entries. - -2011-03-22 Joseph Myers - - * config/cris/cris.c (cris_handle_option): Access target_flags via - opts pointer. Don't assert that global structures are in use. - Don't call CRIS_SUBTARGET_HANDLE_OPTION. - * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define. - -2011-03-22 Joseph Myers - - * config/bfin/bfin-opts.h: New. - * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type, - bfin_si_revision, bfin_workarounds): Remove. - (bfin_cpus): Make static const. - (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id - not bfin_lib_id_given. - (bfin_handle_option): Don't set bfin_lib_id_given. Access - bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts - pointer. Use error_at. Don't assert that global structures are in use. - * config/bfin/bfin.h: Include bfin-opts.h. - (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h. - (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove. - * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry. - (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable - entries. - -2011-03-22 Joseph Myers - - * config/arm/arm.opt (mhard-float, msoft-float): Use Alias. - * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float - or -msoft-float here. - * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not - -msoft-float and -mhard-float. - (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float. - * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not - msoft-float. - * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and - -msoft-float. - (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float. - * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard, - not mhard-float. - (LIBGCC_SPEC): Don't handle -msoft-float. - * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle - -mhard-float. - * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not - msoft-float. - * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle - -mfloat-abi=*, not -msoft-float and -mhard-float. - * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and - -msoft-float. - * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): - Use mfloat-abi=hard and mfloat-abi=soft in comments, not - mhard-float and msoft-float. - * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and - mfloat-abi=soft in comments, not mhard-float and msoft-float. - * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use - mfloat-abi=soft and mfloat-abi=hard, not msoft-float and - mhard-float. - * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use - mfloat-abi=hard and mfloat-abi=soft, not mhard-float and - msoft-float. - * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard, - not mhard-float. - * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, - not msoft-float. - -2011-03-22 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_prologue): Don't test - TARGET_ABI_WINDOWS_NT. - (alpha_output_function_end_prologue): Likewise. - * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - * config/alpha/alpha.md (call, call_value, tablejump): Likewise. - (trap, *movsi_nt_vms): Likewise. - (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove. - (*tablejump_osf_nt_internal): Remove. - * config/alpha/predicates.md (input_operand): Only test Pmode. - -2011-03-22 Joseph Myers - - * config/alpha/alpha.c (alpha_handle_option): Access target_flags - via opts pointer. Use error_at. Don't assert that global - structures are in use. - -2011-03-22 Joseph Myers - - * config/i386/i386.c (ix86_isa_flags_explicit): Remove. - (ix86_handle_option): Access ix86_isa_flags and - ix86_isa_flags_explicit via opts pointer. Don't assert that - global structures are in use. - (ix86_function_specific_save, ix86_function_specific_restore): - Update ix86_isa_flags_explicit field name. - * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry. - (ix86_isa_flags_explicit): Rename TargetSave entry to - x_ix86_isa_flags_explicit. - -2011-03-22 Richard Henderson - - * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK. - (alpha_option_override, direct_return): Likewise. - (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise. - (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise. - (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise. - (alpha_start_function, alpha_output_function_end_prologue): Likewise. - (alpha_expand_epilogue, alpha_end_function): Likewise. - (alpha_init_libfuncs): Likewise. - (struct machine_function): Remove unicosmk members. - (print_operand) ['t']: Remove. - (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset, - unicosmk_output_module_name, unicosmk_output_common, - current_section_align, unicosmk_output_text_section_asm_op, - unicosmk_output_data_section_asm_op, unicosmk_init_sections, - unicosmk_section_type_flags, unicosmk_unique_section, - unicosmk_asm_named_section, unicosmk_insert_attributes, - unicosmk_output_align, unicosmk_defer_case_vector, - unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors, - SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib, - unicosmk_output_ssib, unicosmk_add_call_info_word, - unicosmk_extern_head, unicosmk_output_default_externs, - unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list, - unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex, - unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK. - * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove. - (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove. - (mulsi3): Don't test TARGET_ABI_UNICOSMK. - (*mulsi_se, mulvsi3): Likewise. - (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise. - (*divmodsi_internal, call, call_value, realign): Likewise. - (moddi3, umoddi3): Likewise; remove duplicate expander. - (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove. - (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove. - (*movdi_nofix): Remove r/U alternative. - (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove. - * config/alpha/constraints.md ("U"): Remove. - * config/alpha/predicates.md (call_operand"): Don't test - TARGET_ABI_UNICOSMK. - -2011-03-22 Joseph Myers - - * target.def (handle_option): Take gcc_options and - cl_decoded_option pointers and location_t. - * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation. - * doc/tm.texi: Regenerate. - * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove. - * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare. - * lto-opts.c (lto_reissue_options): Generate option structure for - targetm.handle_option call. - * opts.c (target_handle_option): Update call to - targetm.handle_option. Remove assertions about values now passed - down to hook. - * targhooks.c (default_target_handle_option): New. - * targhooks.h (default_target_handle_option): Declare. - * config/alpha/alpha.c: Include opts.h. - (alpha_handle_option): Update to new hook interface. - * config/arm/arm.c: Include opts.h. - (arm_handle_option): Update to new hook interface. - * config/arm/t-arm (arm.o): Update dependencies. - * config/bfin/bfin.c: Include opts.h. - (bfin_handle_option): Update to new hook interface. - * config/cris/cris.c: Include opts.h. - (cris_handle_option): Update to new hook interface. - * config/frv/frv.c: Include opts.h. - (frv_handle_option): Update to new hook interface. - * config/i386/i386.c: Include opts.h. - (ix86_handle_option): Update to new hook interface. - (ix86_valid_target_attribute_inner_p): Generate option structure - for call to ix86_handle_option. - * config/i386/t-i386 (i386.o): Update dependencies. - * config/ia64/ia64.c: Include opts.h. - (ia64_handle_option): Update to new hook interface. - * config/ia64/t-ia64 (ia64.o): Update dependencies. - * config/iq2000/iq2000.c: Include opts.h. - (iq2000_handle_option): Update to new hook interface. - * config/m32c/m32c.c: Include opts.h. - (m32c_handle_option): Update to new hook interface. - * config/m32r/m32r.c: Include opts.h. - (m32r_handle_option): Update to new hook interface. - * config/m68k/m68k.c: Include opts.h. - (m68k_handle_option): Update to new hook interface. - * config/mep/mep.c: Include opts.h. - (mep_handle_option): Update to new hook interface. - * config/microblaze/microblaze.c: Include opts.h. - (microblaze_handle_option): Update to new hook interface. - * config/mips/mips.c: Include opts.h. - (mips_handle_option): Update to new hook interface. - * config/mn10300/mn10300.c: Include opts.h. - (mn10300_handle_option): Update to new hook interface. - * config/pa/pa.c: Include opts.h. - (pa_handle_option): Update to new hook interface. - * config/pdp11/pdp11.c: Include opts.h. - (pdp11_handle_option): Update to new hook interface. - * config/rs6000/rs6000.c: Include opts.h. - (rs6000_handle_option): Update to new hook interface. - * config/rs6000/t-rs6000 (rs6000.o): Update dependencies. - * config/rx/rx.c: Include opts.h. - (rx_handle_option): Update to new hook interface. - * config/s390/s390.c: Include opts.h. - (s390_handle_option): Update to new hook interface. - * config/score/score.c: Include opts.h. - (score_handle_option): Update to new hook interface. - * config/sh/sh.c: Include opts.h. - (sh_handle_option): Update to new hook interface. - * config/sparc/sparc.c: Include opts.h. - (sparc_handle_option): Update to new hook interface. - * config/v850/v850.c: Include opts.h. - (v850_handle_option): Update to new hook interface. - -2011-03-22 Joseph Myers - - * gcc.c (driver_unknown_option_callback): Only permit and save - unknown -Wno- options. - (driver_wrong_lang_callback): Save options directly instead of via - driver_unknown_option_callback. - -2011-03-22 Eric Botcazou - - * combine.c (simplify_set): Try harder to find the best CC mode when - simplifying a nested COMPARE on the RHS. - -2011-03-22 Joseph Myers - - * config/alpha/gnu.h: Remove. - * config/arc: Remove directory. - * config/arm/netbsd.h: Remove. - * config/arm/t-pe: Remove. - * config/crx: Remove directory. - * config/i386/netbsd.h: Remove. - * config/m68hc11: Remove directory. - * config/m68k/uclinux-oldabi.h: Remove. - * config/mcore/mcore-pe.h: Remove. - * config/mcore/t-mcore-pe: Remove. - * config/netbsd-aout.h: Remove. - * config/rs6000/gnu.h: Remove. - * config/sh/sh-symbian.h: Remove. - * config/sh/symbian-base.c: Remove. - * config/sh/symbian-c.c: Remove. - * config/sh/symbian-cxx.c: Remove. - * config/sh/symbian-post.h: Remove. - * config/sh/symbian-pre.h: Remove. - * config/sh/t-symbian: Remove. - * config/svr3.h: Remove. - * config/vax/netbsd.h: Remove. - * config.build: Don't handle i[34567]86-*-pe. - * config.gcc: Remove handling of deprecations for most deprecated - targets. - (m68k-*-uclinuxoldabi*): Add to second deprecated list. - (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf, - i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*, - m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*, - powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*, - sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*): - Remove cases. - * config.host: Don't handle i[34567]86-*-pe. - * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove. - (ASM_SPEC32): Don't handle -mcall-gnu. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle - -mcall-gnu. - (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC, - STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu. - (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC, - LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove. - (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs. - * config/sh/sh-protos.h, config/sh/sh.c: Remove all code - conditional on SYMBIAN. - * configure.ac: Don't handle powerpc*-*-gnu*. - * configure: Regenerate. - * doc/extend.texi (interrupt attribute): Don't mention CRX. - * doc/install-old.texi (m6811, m6812): Don't mention. - * doc/install.texi (arc-*-elf*): Don't document multilib option. - (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove. - (m68k-uclinuxoldabi): Don't mention. - * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options): - Remove. - (-mcall-gnu): Remove. - * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12 - families): Remove constraint documentation. - -2011-03-22 Marius Strobl - - * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with... - (FBSD_TARGET_CPU_CPP_BUILTINS): ...this. - (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. - -2011-03-21 Michael Meissner - - PR target/48226 - * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a - vector when peeking at the next token for vector, don't expand the - keywords. - -2011-03-21 Georg-Johann Lay - - * config/avr/avr-protos.h (expand_epilogue): Change prototype - * config/avr/avr.h (struct machine_function): Add field sibcall_fails. - * config/avr/avr.c (init_cumulative_args) - (avr_function_arg_advance): Use it. - * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle - sibcall epilogues. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to... - (avr_function_ok_for_sibcall): ...this new function. - (avr_lookup_function_attribute1): New static Function. - (avr_naked_function_p, interrupt_function_p) - (signal_function_p, avr_OS_task_function_p) - (avr_OS_main_function_p): Use it. - * config/avr/avr.md ("sibcall", "sibcall_value") - ("sibcall_epilogue"): New expander. - ("*call_insn", "*call_value_insn"): New insn. - ("call_insn", "call_value_insn"): Remove - ("call", "call_value", "epilogue"): Change expander to handle - sibling calls. - -2011-03-21 Nick Clifton - - * doc/invoke.texi (Overall Options): Move closing brace to end of - options list. - (Optimization Options): Add missing @gol. - (Directory Options): Likewise. - (i386 and x86-64 Options): Likewise. - (RS6000 and PowerPC Options): Likewise. - (i386 and x86-64 Windows Options): Likewise. - (V850 Options): Add text missing from descriptions. - -2011-03-22 Richard Henderson - - * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New. - (avr_incoming_return_addr_rtx): New. - (emit_push_byte): New. - (expand_prologue): Use it. Remove incorrect dwarf annotation for - SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf - annotation for __prologue_saves__. Fixup dwarf annotation for CFA. - (emit_pop_byte): New. - (expand_epilogue): Use it. Pop frame pointer by bytes. - * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove. - (INCOMING_RETURN_ADDR_RTX): New. - (INCOMING_FRAME_SP_OFFSET): New. - (ARG_POINTER_CFA_OFFSET): New. - * config/avr/avr.md (*pushqi): Fix mode of auto-inc. - (*pushhi, *pushsi, *pushsf, popqi): Likewise. - (pophi): Remove. - - * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec. - -2011-03-22 Nathan Froyd - - * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. - (FUNCTION_ARG_ADVANCE): Likewise. - * tm.texi.in: Change references to them to hook references. - * tm.texi: Regenerate. - * targhooks.c (default_function_arg): Eliminate check for target - macro. - (default_function_incoming_arg): Likewise. - (default_function_arg_advance): Likewise. - * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. - (function_arg_advance): Likewise. - * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. - -2011-03-22 Nathan Froyd - - * tree.c (build_call_1): New function. - (build_call_valist, build_call_array_loc, build_call_vec): Call it. - -2011-03-22 Richard Guenther - - PR tree-optimization/48228 - * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating - for single-arg PHIs. - -2011-03-22 Andrey Belevantsev - - PR rtl-optimization/48143 - * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute. - (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps, - sse2_cvtps2pd): Likewise. - -2011-03-22 Andreas Krebbel - - * recog.c (canonicalize_change_group): Use validate_unshare_change. - -2011-03-22 Richard Guenther - - * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not - a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary. - * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR - and REALIGN_LOAD_EXPR. - (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC, - DOT_PROD_EXPR or REALIGN_LOAD_EXPR. - * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and - DOT_PROD_EXPR case ... - (expand_expr_real_2): ... here. - * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR - and REALIGN_LOAD_EXPR. - * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs. - * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries. - (vect_create_epilog_for_reduction): Likewise. - (vectorizable_reduction): Likewise. - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust. - * tree-vect-stmts.c (vectorizable_load): Likewise. - -2011-03-22 Eric Botcazou - - * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions. - -2011-03-22 Andreas Krebbel - - * config/s390/s390.c (s390_delegitimize_address): Fix offset - handling for PLTOFF/GOTOFF. - -2011-03-22 Nick Clifton - - * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove - trailing backslash from the end of the macro definition. - -2011-03-22 Andreas Krebbel - - * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF - and PLT unspecs. - -2011-03-21 Richard Sandiford - - * expr.h (prepare_operand): Move to... - * optabs.h (prepare_operand): ...here and change the insn code - parameter from "int" to "enum insn_code". - (insn_operand_matches): Declare. - * expr.c (init_expr_target): Use insn_operand_matches. - (compress_float_constant): Likewise. - * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise. - * optabs.c (can_compare_p, prepare_cmp_insn): Likewise. - (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise. - (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn): - Likewise. - (gen_cond_trap): Likewise. - (prepare_operand): Likewise. Change icode to an insn_code. - (insn_operand_matches): New function. - * reload.c (find_reloads_address_1): Use insn_operand_matches. - * reload1.c (gen_reload): Likewise. - * targhooks.c (default_secondary_reload): Likewise. - -2011-03-21 Uros Bizjak - - * config/alpha/alpha.md (unspec): New define_c_enum. - (unspecv): Ditto. - -2011-03-21 Uros Bizjak - - PR debug/48214 - * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop - between a call and its CALL_ARG_LOCATION note. - -2011-03-21 Eric Botcazou - - * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag. - -2011-03-21 Jakub Jelinek - - PR c/42544 - PR c/48197 - * c-common.c (shorten_compare): If primopN is first sign-extended - to opN and then zero-extended to result type, set primopN to opN. - -2011-03-21 Daniel Jacobowitz - - * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test - for barrier handlers. - -2011-03-21 Michael Meissner - - * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all - UNSPEC constants to be in the unspec enumeration, and redefine - all UNSPECV constants to be in the unspecv enumeration, so that - dumps print which unspec/unspec_volatile this is. - * config/rs6000/vector.md (UNSPEC_*): Ditto. - * config/rs6000/paired.md (UNSPEC_*): Ditto. - * config/rs6000/vsx.md (UNSPEC_*): Ditto. - * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto. - * config/rs6000/dfp.md (UNSPEC_*): Ditto. - - * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename - UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and - UNSPECV_LWSYNC, since these are used as unspec_volatile. - * config/rs6000/sync.md (isync, lwsync): Ditto. - -2011-03-21 Richard Guenther - - * params.def (lto-min-partition): Fix typo. - -2011-03-21 Richard Guenther - - PR c/47939 - * c-decl.c (grokdeclarator): Drop to the main variant only - for array types. Drop flag_gen_aux_info check. - -2011-03-21 Richard Guenther - - PR translation/47911 - * params.def (lto-partitions): Fix typo. - (lto-min-partition): Fix wording. - -2011-03-21 Andreas Tobler - - * config/rs6000/t-freebsd: Remove duplication from file. - -2011-03-21 Richard Guenther - - PR middle-end/47661 - * gimple.c (is_gimple_condexpr): Use tree_could_throw_p. - -2011-03-21 Richard Guenther - - PR lto/48210 - * params.def (lto-partitions): Require at least 1 partition. - -2011-03-21 Rainer Orth - - * gthr-solaris.h: Remove. - * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove. - * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support. - (LIB_SPEC): Likewise. - * config/sol2.opt (threads): Remove. - * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support. - (sparc*-*-solaris2*): Likewise. - * configure.ac (enable_threads): Enable solaris support. - * configure: Regenerate. - * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads. - * doc/install.texi (Configuration, --enable-threads=lib): Remove - solaris. - -2011-03-21 Rainer Orth - - * config.gcc: Obsolete *-*-solaris2.8*. - * doc/install.texi (Specific, *-*-solaris2*): Document it. - -2011-03-21 Rainer Orth - - PR bootstrap/48135 - * doc/install.texi (Prerequisites, Perl): Remove Glob.pm - reference. Solaris 8 perl works. - -2011-03-21 Rainer Orth - - PR bootstrap/48135 - * doc/install.texi (Prerequisites): Move jar etc. up. - Explain support library version requirements. - -2011-03-21 Rainer Orth - - PR bootstrap/48135 - * doc/install.texi (Prerequisites): Move Perl to build - requirements. Always necessary on Solaris 2 with Sun ld. - -2011-03-21 Rainer Orth - - * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for - binutils 2.21. - (Specific, i?86-*-solaris2.[89]): Likewise. - (Specific, i?86-*-solaris2.10): Likewise. - (Specific, mips-sgi-irix6): Likewise. - (Specific, *-*-solaris2*): Remove Sun Studio download URL. - Update for binutils 2.21. - -2011-03-21 Rainer Orth - - * configure.ac (gcc_cv_lto_plugin): Fix typo. - Allow -fuse-linker-plugin for non-default plugin linker. - * configure: Regenerate. - -2011-03-21 Nicola Pero - - PR bootstrap/48167 - * gengtype.c (files_rules): Added rule for cp/parser.h. - -2011-03-21 Jakub Jelinek - - PR target/48213 - * config/s390/s390.c (s390_delegitimize_address): Don't call - lowpart_subreg if orig_x has BLKmode. - -2011-03-21 Kai Tietz - - PR target/12171 - * doc/plugins.texi: Adjust documentation for plugin register_callback. - * tree.h (attribute_spec): Add new member affects_type_identity. - * attribs.c (empty_attribute_table): Adjust attribute_spec - initializers. - * config/alpha/alpha.c: Likewise. - * config/arc/arc.c: Likewise. - * config/arm/arm.c: Likewise. - * config/avr/avr.c: Likewise. - * config/bfin/bfin.c: Likewise. - * config/crx/crx.c: Likewise. - * config/darwin.h: Likewise. - * config/h8300/h8300.c: Likewise. - * config/i386/cygming.h: Likewise. - * config/i386/i386.c: Likewise. - * config/ia64/ia64.c: Likewise. - * config/m32c/m32c.c: Likewise. - * config/m32r/m32r.c: Likewise. - * config/m68hc11/m68hc11.c: Likewise. - * config/m68k/m68k.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mep/mep.c: Likewise. - * config/microblaze/microblaze.c: Likewise. - * config/mips/mips.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rx/rx.c: Likewise. - * config/sh/sh.c: Likewise. - * config/sol2.h: Likewise. - * config/sparc/sparc.c: Likewise. - * config/spu/spu.c: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/v850/v850.c: Likewise. - -2011-03-21 Chung-Lin Tang - - * simplify-rtx.c (simplify_binary_operation_1): Handle - (xor (and A B) C) case when B and C are both constants. - -2011-03-21 Mingjie Xing - - * tree-dfa.c (add_referenced_var): Fix typo in comment. - -2011-03-20 Eric Botcazou - - PR bootstrap/48168 - * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern. - -2011-03-20 Jakub Jelinek - - PR rtl-optimization/48156 - * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL, - assume df and df_lr are not NULL. - -2011-03-20 Ramana Radhakrishnan - - PR debug/48023 - * config/arm/arm.c (create_fix_barrier): Do not emit a minipool - between a call and its CALL_ARG_LOCATION note. - -2011-03-19 Kaz Kojima - - PR debug/48178 - * config/sh/sh.c (find_barrier): Don't emit a constant pool - between a call and its corresponding CALL_ARG_LOCATION note. - -2011-03-19 Anatoly Sokolov - - * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range - instead of loop. Use HARD_REGISTER_NUM_P predicate. - * haifa-sched.c (setup_ref_regs): Ditto. - * caller-save.c (add_used_regs_1): Ditto. - * dse.c (look_for_hardregs): Ditto. - * df-problems.c (df_simulate_one_insn_forwards): Ditto. - * sched-rgn.c (check_live_1): Ditto. - -2011-03-18 Joseph Myers - - * c-decl.c (diagnose_mismatched_decls): Give an error for - redefining a typedef with variably modified type. - -2011-03-18 Joseph Myers - - * c-decl.c (grokfield): Don't allow typedefs for structures or - unions with no tag by default. - * doc/extend.texi (Unnamed Fields): Update. - -2011-03-18 Uros Bizjak - - * config/i386/i386.md (float2): - Rewrite using indirect functions. - (lwp_slwpcb): Ditto. - * config/i386/sse.md (avx_vextractf128): Ditto. - (avx_vinsertf128): Ditto. - -2011-03-18 Andreas Krebbel - - * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF - unspecs. - -2011-03-18 Andreas Krebbel - - * config/s390/s390.c (s390_chunkify_start): Prevent literal pool - splitting between a call and its corresponding CALL_ARG_LOCATION note. - -2011-03-18 Maxim Kuvyrkov - - PR rtl-optimization/48170 - * gcse.c (hoist_code): Remove bogus asserts. - -2011-03-18 Georg-Johann Lay - - * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost - computation for prologue/epilogue. - -2011-03-18 Rainer Orth - - * Makefile.in (check-consistency): Remove. - -2011-03-18 Jakub Jelinek - - PR debug/48176 - * dwarf2out.c (dwarf2out_finish): Call output_aranges even when - arange_table_in_use is 0, but either text_section_used or - cold_text_section_used is true. Don't call it if - !info_section_emitted. - -2011-03-18 Anatoly Sokolov - - * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE, - FUNCTION_VALUE_REGNO_P): Remove. - * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value): - Remove. - * config/avr/avr.c (avr_ret_register): Make static inline. - (avr_function_value_regno_p): New function. - (avr_libcall_value): Make static. Add 'func' argument. - (avr_function_value): Make static. Rename 'func' argument to - 'fn_decl_or_type', forward it to avr_libcall_value. Call - avr_ret_register function instead of RET_REGISTER macro. - (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. - -2011-03-18 Jason Merrill - - PR c++/23372 - * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR. - -2011-03-18 Richard Guenther - - * doc/install.texi (--enable-gold): Remove. - (--with-plugin-ld): Document. - * doc/invoke.texi (-fuse-linker-plugin): Clarify. - -2011-03-18 Andrew Pinski - - PR middle-end/47790 - * expr.c (optimize_bitfield_assignment_op): Revamp to work - again after expansion changes. - -2011-03-18 Chung-Lin Tang - - * combine.c (try_combine): Do simplification only call of - subst() on i2 even when i1 is present. Update comments. - -2011-03-18 Kaz Kojima - - * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF - and UNSPEC_PCREL_SYMOFF. - -2011-03-18 Andreas Krebbel - - * config/s390/s390.md: Use define_c_enum for the unspec constant - definitions. - -2011-03-18 Richard Henderson - Jakub Jelinek - - PR bootstrap/48161 - * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary - instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER. - -2011-03-17 Anatoly Sokolov - - * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove. - * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove. - * config/v850/v850.c (v850_output_addr_const_extra): Make static. - Change return type to bool. - (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. - -2011-03-17 Jakub Jelinek - - PR debug/48163 - * var-tracking.c (prepare_call_arguments): If CALL target - is a non-SYMBOL_REF CONSTANT_P, just add that into the list as - pc instead of looking it up using cselib_lookup and use - Pmode for it if x has VOIDmode. - * dwarf2out.c (gen_subprogram_die): If also both first and - second CONCAT arguments are VOIDmode, use mode of CONCAT itself. - - PR debug/48163 - * function.c (assign_parms): For data.passed_pointer parms - use MEM of data.entry_parm instead of data.entry_parm itself - as DECL_INCOMING_RTL. - * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL - also when passed and declared mode is the same, DECL_RTL - is a MEM with pseudo as address and DECL_INCOMING_RTL is - a MEM too. - -2011-03-16 Jeff Law - - PR rtl-optimization/37273 - * ira-costs.c (scan_one_insn): Detect constants living in memory and - handle them like argument loads from stack slots. Do not double - count memory for memory constants and argument loads from stack slots. - -2011-03-17 H.J. Lu - - PR debug/48160 - * var-tracking.c (prepare_call_arguments): Check SUBREG. - -2011-03-17 H.J. Lu - - PR target/48171 - * config/i386/i386.opt: Add Save to -mavx and -mfma. - -2011-03-17 Jakub Jelinek - - PR bootstrap/48153 - * dwarf2out.c (mem_loc_descriptor) : Return NULL - if dwarf_strict. - (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict. - Clear call_arg_locations and call_arg_loc_last always. - - PR middle-end/48152 - * var-tracking.c (prepare_call_arguments): If argument needs to be - passed by reference, adjust argtype and mode. - -2011-03-17 Richard Guenther - - PR middle-end/48134 - * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated - a value make sure to fold the statement. - -2011-03-17 Chung-Lin Tang - - PR target/43872 - * config/arm/arm.c (arm_get_frame_offsets): Adjust early - return condition with !cfun->calls_alloca. - -2011-03-17 Richard Guenther - - PR bootstrap/48148 - * lto-cgraph.c (input_overwrite_node): Clear the abstract - origin for decls in other ltrans units. - (input_varpool_node): Likewise. - -2011-03-17 Richard Guenther - - PR middle-end/48165 - * tree-object-size.c (compute_object_offset): Properly return - the offset operand of MEM_REFs as sizetype. - -2011-03-17 Jakub Jelinek - - PR rtl-optimization/48141 - * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New. - * dse.c: Include params.h. - (active_local_stores_len): New variable. - (add_wild_read, dse_step1): Clear it when setting active_local_stores - to NULL. - (record_store, check_mem_read_rtx): Decrease it when removing - from the chain. - (scan_insn): Likewise. Increase it when adding to chain, if it - reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and - set active_local_stores to NULL before the addition. - * Makefile.in (dse.o): Depend on $(PARAMS_H). - - PR rtl-optimization/48141 - * dse.c (record_store): If no positions are needed in an insn - that cannot be deleted, at least unchain it from active_local_stores. - -2011-03-16 Dodji Seketeli - - PR debug/47510 - * dwarf2out.c (strip_naming_typedef): Factorize out of ... - (lookup_type_die_strip_naming_typedef): ... here. - (get_context_die): Use it. - (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to - the anonymous struct named by the naming typedef. - -2011-03-16 H.J. Lu - - PR target/48154 - * config/i386/i386.c (ix86_builtin_vectorized_function): Check - TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins. - -2011-03-16 Jeff Law - - * tree-vrp.c (identify_jump_threads): Slightly simplify type - check for operands of conditional. Allow type to be a pointer. - -2011-03-16 Richard Guenther - - PR tree-optimization/48149 - * fold-const.c (fold_binary_loc): Fold - COMPLEX_EXPR , IMAGPART_EXPR >. - -2011-03-16 Richard Guenther - - PR tree-optimization/26134 - * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting - complex part accesses to REALPART_EXPR and IMAGPART_EXPR. - (non_rewritable_mem_ref_base): Handle complex type component - accesses, constrain offsets for vector and complex extracts - more properly. - -2011-03-16 Richard Guenther - - PR tree-optimization/48146 - * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual - operands avoiding the need for renaming. - -2011-03-16 Richard Guenther - - * gimple-fold.c (maybe_fold_reference): Open-code relevant - constant folding. Move MEM_REF canonicalization first. - Rely on fold_const_aggregate_ref for initializer folding. - * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts. - -2011-03-16 Jakub Jelinek - - PR middle-end/48136 - * fold-const.c (fold_binary_loc) : Make sure - arg0/arg1 or their arguments are always fold converted to matching - types. - - * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED - to nargs. - -2011-03-16 Rainer Orth - - PR lto/46944 - * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor): - Handle in-tree gold. - (ld_vers): Extract binutils version for gold. - (gcc_cv_ld_hidden): Handle gold here. - (gcc_cv_lto_plugin): Determine level of linker plugin support. - * configure: Regenerate. - * config.in: Regenerate. - * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject - -fuse-linker-plugin otherwise. - (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC. - (LINK_COMMAND_SPEC): Use it. - (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0. - -2011-03-16 Jakub Jelinek - - * emit-rtl.c (try_split): Don't call copy_call_info debug hook. - * calls.c: Remove debug.h include. - (emit_call_1): Don't call virtual_call_token debug hook. - * dwarf2out.c (debug_dcall_section, debug_vcall_section, - dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn, - vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION, - size_of_dcall_table, output_dcall_table, size_of_vcall_table, - output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash, - vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn, - dwarf2out_virtual_call_token, dwarf2out_copy_call_info, - dwarf2out_virtual_call): Remove. - (dwarf2_debug_hooks): Remove direct_call, virtual_call_token, - copy_call_info and virtual_call hooks. - (dwarf2out_init): Don't initialize vcall_insn_table, - debug_dcall_section and debug_vcall_section. - (prune_unused_types): Don't mark nodes from dcall_table. - (dwarf2out_finish): Don't output dcall or vcall tables. - * final.c (final_scan_insn): Don't call direct_call or - virtual_call debug hooks. - * debug.h (struct gcc_debug_hooks): Remove direct_call, - virtual_call_token, copy_call_info and virtual_call hooks. - (debug_nothing_uid): Remove prototype. - * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token, - copy_call_info and virtual_call hooks. - * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. - * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. - * debug.c (do_nothing_debug_hooks): Likewise. - (debug_nothing_uid): Remove. - * doc/invoke.texi (-fenable-icf-debug): Remove. - * common.opt (-fenable-icf-debug): Likewise. - - * calls.c (emit_call_1): Set MEM_EXPR on call's MEM. - * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on - call's MEM. Handle functions returning aggregate through a hidden - first pointer. For virtual calls add clobbered pc to call arguments - chain. - * dwarf2out.c (gen_subprogram_die): Emit - DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target - can't be emitted. - - PR debug/45882 - * rtl.def (ENTRY_VALUE): Change format from "e" to "0". - * rtl.h (ENTRY_VALUE_EXP): Define. - * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE. - * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise. - * print-rtl.c (print_rtx): Likewise. - * gengtype.c (adjust_field_rtx_def): Likewise. - * var-tracking.c (vt_add_function_parameter): Adjust - gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro. - * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro. - * cfgexpand.c (expand_debug_expr): If a SSA_NAME without - partition is a default definition of a PARM_DECL, use ENTRY_VALUE - of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set. - - * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. - Call var_location debug hook even on CALL_INSNs. - (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION. - * rtl.def (ENTRY_VALUE): New. - * dwarf2out.c: Include cfglayout.h. - (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, - output_loc_operands_raw): Handle DW_OP_GNU_entry_value. - (struct call_arg_loc_node): New type. - (call_arg_locations, call_arg_loc_last, block_map, call_site_count, - tail_call_site_count): New variables. - (dwarf_tag_name): Handle DW_TAG_GNU_call_site and - DW_TAG_GNU_call_site_parameter. - (dwarf_attr_name): Handle DW_AT_GNU_call_site_value, - DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, - DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, - DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites - and DW_AT_GNU_all_source_call_sites. - (mem_loc_descriptor): Handle ENTRY_VALUE. - (add_src_coords_attributes): Don't add enything if - DECL_SOURCE_LOCATION is UNKNOWN_LOCATION. - (dwarf2out_abstract_function): Save and clear call_arg_location, - call_site_count and tail_call_site_count around dwarf2out_decl call. - (gen_call_site_die): New function. - (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites. - (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map. - (dwarf2out_function_decl): Clear call_arg_locations, - call_arg_loc_last, set call_site_count and tail_call_site_count - to -1 and free block_map. - (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and - CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not - followed by any real instructions. - (dwarf2out_begin_function): Set call_site_count and - tail_call_site_count to 0. - (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site - is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL - attempt to force a DIE for it and worst case remove the attribute. - (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs - check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of - the decl itself. - * var-tracking.c: Include tm_p.h. - (vt_stack_adjustments): For calls call note_register_arguments. - (argument_reg_set): New variable. - (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set - ensure the VALUE is resolved. - (call_arguments): New variable. - (prepare_call_arguments): New function. - (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it. - (struct expand_loc_callback_data): Add ignore_cur_loc field. - (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and - always use the best expression. - (vt_expand_loc): Add ignore_cur_loc argument. - (vt_expand_loc_dummy): Clear ignore_cur_loc field. - (emit_note_insn_var_location): Adjust vt_expand_loc callers. - (emit_notes_in_bb) : Add NOTE_INSN_CALL_ARG_LOCATION - note for all calls. - (vt_add_function_parameter): Use cselib_lookup_from_insn. - If dv is a VALUE, enter into hash table also ENTRY_VALUE for the - argument. Don't call cselib_preserve_only_values and - cselib_reset_table. - (note_register_arguments): New function. - (vt_initialize): Compute argument_reg_set. Call - vt_add_function_parameters before processing basic blocks instead of - afterwards. For calls call prepare_call_arguments before calling - cselib_process_insn. - * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION. - * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H). - (var-tracking.o): Depend on $(TM_P_H). - * cfglayout.h (insn_scope): New prototype. - * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION. - * cfglayout.c (insn_scope): No longer static. - * insn-notes.def (CALL_ARG_LOCATION): New. - * calls.c (expand_call, emit_library_call_value_1): Put USEs for - MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally. - * integrate.c (set_block_origin_self, set_block_abstract_flags): Do - nothing for DECL_EXTERNAL BLOCK_VARS. - -2011-03-16 Alan Modra - - PR target/45844 - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't - create invalid offset address for vsx splat insn. - * config/rs6000/predicates.md (splat_input_operand): New. - * config/rs6000/vsx.md (vsx_splat_*): Use it. - -2011-03-15 Xinliang David Li - - PR c/47837 - * tree-ssa-uninit.c (pred_chain_length_cmp): New function. - (normalize_preds): New function. - (is_use_properly_guarded): Normalize def predicates. - -2011-03-15 Ramana Radhakrishnan - - PR target/46788 - * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c' - in the output template. - -2011-03-15 Richard Guenther - - PR middle-end/47650 - * tree-pretty-print.c (dump_function_declaration): Properly - dump unprototyped and varargs function types. - -2011-03-15 Richard Guenther - - PR tree-optimization/13954 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy - and friends. - -2011-03-15 Richard Guenther - - PR tree-optimization/48037 - * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector - selects into BIT_FIELD_REFs. - (non_rewritable_mem_ref_base): Check if a MEM_REF is a - vector select. - -2011-03-15 Jakub Jelinek - - PR tree-optimization/48129 - * builtins.c (fold_builtin_snprintf): Convert to type of - built_in_decls[BUILT_IN_SNPRINTF] retval instead of - implicit_built_in_decls[BUILT_IN_SNPRINTF] retval. - -2011-03-15 Richard Guenther - - PR tree-optimization/41490 - * tree-ssa-dce.c (propagate_necessity): Handle returns without - value but with VUSE. - * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all - return statements. - * tree-ssa-sink.c (statement_sink_location): Fix store sinking. - * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs. - * tree-tailcall.c (find_tail_calls): Ignore returns. - -2011-03-15 Richard Guenther - - PR middle-end/48031 - * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized - or variable-indexed array accesses when in gimple form. - -2011-03-15 Richard Guenther - - * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently. - -2011-03-15 Alan Modra - - PR target/48032 - * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not - presume symbol_refs without a symbol_ref_decl are suitably - aligned, nor other trees we may see here. Handle anchor symbols. - (legitimate_constant_pool_address_p): Comment. Add mode param. - Check cmodel=medium addresses. Adjust all calls. - (rs6000_emit_move): Don't call offsettable_ok_by_alignment on - creating cmodel=medium optimized access to locals. - * config/rs6000/constraints.md (R): Pass QImode to - legitimate_constant_pool_address_p. - * config/rs6000/predicates.md (input_operand): Pass mode to - legitimate_constant_pool_address_p. - * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p): - Update prototype. - -2011-03-14 Michael Meissner - - PR target/48053 - * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up - 64-bit constants being loaded into registers other than GPRs such - as loading 0 into a VSX register. - -2011-03-14 Rainer Orth - - * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs. - -2011-03-14 Jakub Jelinek - - PR middle-end/47917 - * builtins.c (fold_builtin_snprintf): New function. - (fold_builtin_3): Call it for BUILT_IN_SNPRINTF. - (fold_builtin_4): Likewise. - - PR middle-end/38878 - * fold-const.c (fold_binary_loc) : Add - STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X - and C - X == X also strip nops from +/-/p+ operand. - When optimizing -X == C, fold C to arg0's type. - - PR debug/47946 - * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative, - emit it as add_AT_int instead of add_AT_unsigned. - -2011-03-14 Tom Tromey - - * unwind-dw2.c: Include sys/sdt.h if it exists. - (_Unwind_DebugHook): Use STAP_PROBE2. - * config.in, configure: Rebuild. - * configure.ac: Check for sys/sdt.h. - -2011-03-14 Uros Bizjak - - * config/i386/i386.md (ROUND_FLOOR): New constant. - (ROUND_CEIL): Ditto. - (ROUND_TRUNC): Ditto. - (ROUND_MXCSR): Ditto. - (ROUND_NO_EXC): Ditto. - (rint2): Use new defines instead of numerical constants. - (floor2): Ditto. - (ceil2): Ditto. - (btrunc2): Ditto. - * config/i386/i386-builtin-types.def: Define ROUND function type - aliases. - * config/i386/i386.c (enum ix86_builtins): Add - IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines. - (struct builtin_description): Add - __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions. - (ix86_expand_sse_round): New static function. - (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND - function types. - (ix86_builtin_vectorized_function): Handle - BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins. - -2011-03-14 Tom Tromey - - * c-parser.c (c_parser_asm_string_literal): Clear - warn_overlength_strings. - -2011-03-14 Tom Tromey - - * c-parser.c (disable_extension_diagnostics): Save - warn_overlength_strings. - (restore_extension_diagnostics): Restore warn_overlength_strings. - -2011-03-14 Jakub Jelinek - - * BASE-VER: Change to 4.7.0. - -2011-03-14 Richard Guenther - - PR middle-end/48098 - * tree.c (build_vector_from_val): Adjust assert to requirements - and reality. - -2011-03-14 Jakub Jelinek - - PR bootstrap/48102 - * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter. - -2011-03-14 Andreas Tobler - - * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in - terms of target_flags_explicit. Adjust copyright year. - - * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits. - * config/rs6000/t-freebsd: New file. Add override for - LIB2FUNCS_EXTRA. - -2011-03-13 Chris Demetriou - - * doc/invoke.texi (-fdiagnostics-show-option): Replace with... - (-fno-diagnostics-show-option): this, to reflect current default. - (-Werror=): Update text about -fno-diagnostics-show-option. - -2011-03-12 Peter Bergner - - PR target/48053 - * config/rs6000/predicates.md (easy_vector_constant_add_self, - easy_vector_constant_msb): Do not handle V2DImode and V2DFmode. - * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that - mode is not V2DImode or V2DFmode. - (vspltis_constant): Do not handle V2DImode and V2DFmode. - (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg. - * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX - registers to 0. - (movdi_internal64): Likewise. - -2011-03-12 Sebastian Pop - - PR tree-optimization/47127 - * graphite-clast-to-gimple.c (build_cloog_prog): Removed state - parameter. - (set_cloog_options): Same. - (scop_to_clast): Same. - (print_clast_stmt): Do not call cloog_state_malloc and - cloog_state_free. - (print_generated_program): Same. - (gloog): Same. - * graphite-clast-to-gimple.h (cloog_state): Declared. - (scop_to_clast): Adjust declaration. - * graphite.c (cloog_state): Defined here. - (graphite_initialize): Call cloog_state_malloc. - (graphite_finalize): Call cloog_state_free. - -2011-03-11 Jason Merrill - - * attribs.c (lookup_attribute_spec): Take const_tree. - * tree.h: Adjust. - -2011-03-11 Joseph Myers - - * config/sparc/sparc.c (sparc_option_override): Use - PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2". - -2011-03-11 Richard Guenther - - PR tree-optimization/48067 - * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the - multiplication result will be only used once on the target - stmt. - -2011-03-11 Richard Guenther - - * doc/invoke.texi (max-inline-insns-single): Adjust default value. - -2011-03-11 Richard Guenther - - PR lto/48073 - * tree.c (find_decls_types_r): Do not walk types only reachable - from IDENTIFIER_NODEs. - -2011-03-11 Jakub Jelinek - - PR middle-end/48044 - * ipa.c (cgraph_remove_unreachable_nodes): Enqueue - all vnode->force_output nodes as needed. - -2011-03-11 Jason Merrill - - PR c++/48069 - * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not - COMPLETE_OR_UNBOUND_ARRAY_TYPE_P. - -2011-03-11 Martin Jambor - - * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of - cgraph_node. - -2011-03-11 Jakub Jelinek - - PR tree-optimization/48063 - * ipa-inline.c (cgraph_decide_inlining): Don't try to - inline functions called once if !tree_can_inline_p (node->callers). - -2011-03-11 Chen Liqin - - * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and - extra_objs. - * config/score/score3.c: Delete. - * config/score/score3.h: Delete. - * config/score/mul-div.S: Delete. - * config/score/sfp-machine.h: Add new file. - * config/score/constraints.md: Add new file. - * config/score/t-score-softfp: Add new file. - * config/score/t-score-elf: Remove score3.o, do not generate multilib. - * config/score/score7.c (score7_const_ok_for_letter_p): Delete. - (score7_extra_constraint): Delete. - (score7_option_override): Remove unused code. - * config/score/score.c: Remove score3 and score5 define and code. - * config/score/score.h: Remove score3 and score5 define and code. - * config/score/score.md: Remove score3 template and unusual insn. - * config/score/score.opt: Remove score3 and score5 options. - -2011-03-10 John David Anglin - - * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT - when _HPUX_SOURCE is defined. - (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified. - -2011-03-10 Jason Merrill - - PR c++/48029 - * stor-layout.c (layout_type): Don't set structural equality - on arrays of incomplete type. - * tree.c (type_hash_eq): Handle comparing them properly. - -2011-03-10 Jakub Jelinek - - PR debug/48043 - * config/s390/s390.c (s390_delegitimize_address): Make sure the - result mode matches original rtl mode. - -2011-03-10 Nick Clifton - - * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings. - (andsi3, andsi3_flags): Fix timings for three operand alternative. - -2011-03-09 Jakub Jelinek - - PR rtl-optimization/47866 - * expr.c (store_field): If MEM_SCALAR_P (target), don't use - MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx) - if target wasn't scalar. - * function.c (assign_stack_temp_for_type): Assert that neither - MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either - MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P - macro. - * rtl.h (MEM_SET_IN_STRUCT_P): Removed. - -2011-03-09 Andreas Krebbel - - * config/s390/s390-protos.h (s390_label_align): New prototype. - * config/s390/s390.c (s390_label_align): New function. - * config/s390/s390.h (LABEL_ALIGN): New target macro definition. - -2011-03-08 Michael Meissner - - PR target/47755 - * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle - V2DI/V2DF constants. Only all 0's or all 1's are easy. - (output_vec_const_move): Ditto. - -2011-03-08 Anatoly Sokolov - - * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro. - * config/mips/mips-protos.h (mips_preferred_reload_class): Remove. - * config/mips/mips.c (mips_preferred_reload_class): Make static. - Change 'rclass' argument and result type to reg_class_t. - (TARGET_PREFERRED_RELOAD_CLASS): Define. - -2011-03-08 Georg-Johann Lay - - * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. - * config/avr/avr.c (TARGET_REGISTER_MOVE_COST) - (TARGET_MEMORY_MOVE_COST): Define. - (avr_register_move_cost, avr_memory_move_cost): New Functions. - -2011-03-08 Jakub Jelinek - - PR debug/47881 - * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns - removed anything. - - PR tree-optimization/48022 - * fold-const.c (fold_comparison): Don't call fold_overflow_warning - for EQ/NE_EXPR. - -2011-03-07 Jakub Jelinek - - PR debug/47991 - * var-tracking.c (find_use_val): Return NULL for - cui->sets && cui->store_p BLKmode MEMs. - -2011-03-07 Anatoly Sokolov - - * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): - Remove. - * config/stormy16/stormy16-protos.h (xstormy16_print_operand, - xstormy16_print_operand_address): Remove. - * config/stormy16/stormy16.c (xstormy16_print_operand, - xstormy16_print_operand_address): Make static. - (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. - -2011-03-07 Pat Haugen - - PR target/47862 - * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define. - * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine - before definition. - -2011-03-07 Zdenek Dvorak - - PR bootstrap/48000 - * cfgloopmanip.c (fix_bb_placements): Return immediately - if FROM is BASE_LOOP's header. - -2011-03-07 Paul Wögerer - - * gimplify.c (gimplify_function_tree): Fix building calls - to __builtin_return_address. - -2011-03-07 Alan Modra - - * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define. - * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define. - * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define. - * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and - return_mode args. - * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes". - (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode. - (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode. - (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE. - * config/rs6000/rs6000.c - (rs6000_elf_end_indicate_exec_stack): Rename to.. - (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack - for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from.. - (rs6000_file_start): ..here. - (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New - file scope variables. - (call_ABI_of_interest): New function. - (init_cumulative_args): Set above vars when function return value - is a float, vector, or small struct. - (rs6000_function_arg_advance_1): Likewise for function args. - (rs6000_va_start): Set rs6000_passes_float if variable arg function - references float args. - -2011-03-07 Mingjie Xing - - * doc/cfg.texi: Remove "See" before @ref. - * doc/invoke.texi: Likewise. - -2011-03-05 Jason Merrill - - * doc/invoke.texi (C++ Dialect Options): Document ABI v5. - -2011-03-05 Anthony Green - - * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile. - -2011-03-05 Zdenek Dvorak - - PR rtl-optimization/47899 - * cfgloopmanip.c (fix_bb_placements): Fix first argument - to flow_loop_nested_p when moving the loop upward. - -2011-03-05 Richard Earnshaw - - PR target/47719 - * arm.md (movhi_insn_arch4): Accept any immediate constant. - -2011-03-05 Jakub Jelinek - - PR tree-optimization/47967 - * ipa-cp.c (build_const_val): Return NULL instead of creating - VIEW_CONVERT_EXPR for mismatching sizes. - (ipcp_create_replace_map): Return NULL if build_const_val failed. - (ipcp_insert_stage): If ipcp_create_replace_map returns NULL, - give up on versioning. - -2011-03-05 Alan Modra - - PR target/47986 - * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle - full cmodel medium/large lo_sum + high addresses. - -2011-03-04 Andreas Krebbel - - * config/s390/s390.c (s390_decompose_address): Reject non-literal - pool references in UNSPEC_LTREL_OFFSET. - -2011-03-04 Jan Hubicka - - PR lto/47497 - * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias. - (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here. - * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): - Add node pointers. - * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias, - cgraph_add_thunk): Add node pointers. - * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are - associated to right node. - (input_node): Update use of cgraph_same_body_alias - and cgraph_add_thunk. - -2011-03-04 Changpeng Fang - - * config/i386/i386.opt (mprefer-avx128): New flag. - * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX - modes when the flag -mprefer-avx128 is on. - -2011-03-04 Richard Sandiford - - * dwarf2out.c (compare_loc_operands): Fix address handling. - -2011-03-04 Alan Modra - - * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment. - -2011-03-04 Richard Guenther - - PR middle-end/47968 - * expmed.c (extract_bit_field_1): Prefer vector modes that - vec_extract patterns can handle. - -2011-03-04 Richard Guenther - - PR middle-end/47975 - * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P. - -2011-03-04 Richard Henderson - - * explow.c (emit_stack_save): Remove 'after' parameter. - (emit_stack_restore): Likewise. - * expr.h: Update to match. - * builtins.c, calls.c, stmt.c: Likewise. - * config/alpha/alpha.md, config/avr/avr.md: Likewise. - * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise. - * function.c (expand_function_end): Insert the emit_stack_save - sequence before parm_birth_insn instead of after. - -2011-03-03 Uros Bizjak - - * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX. - (ssse3_pmaddubsw128): Ditto. - (ssse3_pmaddubsw): Ditto. - -2011-03-03 Steve Ellcey - - * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH - -2011-03-03 Jakub Jelinek - - PR c/47963 - * gimplify.c (omp_add_variable): Only call omp_notice_variable - on TYPE_SIZE_UNIT if it is a DECL. - - PR debug/47283 - * cfgexpand.c (expand_debug_expr) : If MEM_REF - first operand is not is_gimple_mem_ref_addr, try to fold it. - If the operand still isn't is_gimple_mem_ref_addr, clear - MEM_EXPR on op0. - -2011-03-03 Richard Guenther - - PR middle-end/47283 - * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code - match comment. - (refs_may_alias_p_1): For release branches return true if - we are confused by our input. - -2011-03-03 Andreas Krebbel - - * config/s390/s390.c (s390_function_value): Rename to ... - (s390_function_and_libcall_value): ... this. - (s390_function_value): New function. - (s390_libcall_value): New function. - (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks. - * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove - target macro definitions. - * config/s390/s390-protos.h (s390_function_value): Remove prototype. - -2011-03-02 Joseph Myers - - * config/i386/freebsd64.h (CC1_SPEC): Define. - * config/i386/linux64.h (CC1_SPEC): Define. - * config/i386/x86-64.h (CC1_SPEC): Don't define. - -2011-03-02 Anatoly Sokolov - - * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): - Remove. - * config/stormy16/stormy16.c: Include reload.h. - (xstormy16_memory_move_cost): New function. - (TARGET_MEMORY_MOVE_COST): Define. - -2011-03-02 Richard Sandiford - - PR rtl-optimization/47925 - * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions - with side effects. Remove the more-specific check for volatile asms. - -2011-03-02 Alan Modra - - PR target/47935 - * config/rs6000/predicates.md (lwa_operand): Check cmodel medium - toc relative addresses for valid offsets. - -2011-03-01 Richard Guenther - - PR tree-optimization/47890 - * tree-vect-loop.c (get_initial_def_for_induction): Set - related stmt properly. - -2011-03-01 Richard Guenther - - PR lto/47924 - * lto-streamer.c (lto_record_common_node): Also register - the canonical type. - -2011-03-01 Richard Guenther - - PR lto/46911 - * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): - Do not stream DECL_ABSTRACT_ORIGIN. - (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, - BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. - * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): - Do not stream DECL_ABSTRACT_ORIGIN. - (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, - BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. - -2011-02-28 Anatoly Sokolov - - * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE, - FUNCTION_VALUE_REGNO_P): Remove. - * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove. - * config/stormy16/stormy16.c (xstormy16_function_value): Make static. - Add 'outgoing' argument. - (xstormy16_libcall_value, xstormy16_function_value_regno_p): New - function. - (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, - TARGET_FUNCTION_VALUE_REGNO_P): Define. - -2011-02-28 Kai Tietz - - PR debug/28047 - * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp. - (lookup_filename): Likewise. - * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp. - -2011-02-28 Bernd Schmidt - Jakub Jelinek - - PR middle-end/47893 - * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define. - (assign_stack_local_1): Change last argument type to int. - * function.c (assign_stack_local_1): Replace reduce_alignment_ok - argument with kind. If bit ASLK_RECORD_PAD is not set in it, - don't record padding space into frame_space_list nor use those areas. - (assign_stack_local): Adjust caller. - (assign_stack_temp_for_type): Call assign_stack_local_1 instead - of assign_stack_local, pass 0 as last argument. - * caller-save.c (setup_save_areas): Adjust assign_stack_local_1 - callers. - -2011-02-28 Jakub Jelinek - - PR debug/47283 - * cfgexpand.c (convert_debug_memory_address): Add AS parameter. - Use target address_mode and pointer_mode hooks instead of hardcoded - Pmode and ptr_mode. Handle some simple cases of extending if - POINTERS_EXTEND_UNSIGNED < 0. - (expand_debug_expr) : - Call convert_debug_memory_address. - (expand_debug_expr) : Pass as to - convert_debug_memory_address. - - PR middle-end/46790 - * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test. - * configure: Regenerated. - * config.in: Regenerated. - * varasm.c (default_function_section): Return NULL - if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name. - -2011-02-28 Martin Jambor - - * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix - the description to match the printed values. - -2011-02-28 Richard Guenther - - * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT - of the copied scope tree. - -2011-02-28 Ralf Wildenhues - - * doc/extend.texi (Function Attributes): Avoid deeply (and - wrongly) nested tables. - -2011-02-27 Jakub Jelinek - - PR middle-end/47903 - * real.c (real_arithmetic) : Clear padding bits in *r first if - r isn't op0 nor op1. - -2011-02-23 Georg-Johann Lay - - * config/avr/avr.md: Remove magic comment for emacs. - -2011-02-23 Georg-Johann Lay - - PR target/45261 - * config/avr/avr.c (avr_option_override): Use error on bad options. - (avr_help): New function. - (TARGET_HELP): Define. - -2011-02-22 Georg-Johann Lay - - PR target/42240 - * config/avr/avr.c (avr_cannot_modify_jumps_p): New function. - (TARGET_CANNOT_MODIFY_JUMPS_P): Define. - -2011-02-26 Gerald Pfeifer - - * doc/invoke.texi (ARC Options): Use CPU instead of cpu. - (ARM Options): Ditto. - (i386 and x86-64 Options): Ditto. - (RX Options): Ditto. - (SPARC Options): Ditto. - -2011-02-26 Tijl Coosemans - - * config.gcc (i386-*-freebsd*): Make i486 the default arch on - FreeBSD 6 and later. Generally use cpu generic. - -2011-02-25 Gerald Pfeifer - - * doc/cpp.texi: Update copyright years. - -2011-02-25 Sebastien Bourdeauducq - - PR target/46898 - * config/lm32/lm32.md (ashrsi3): Added needed variable. - -2011-02-25 Jon Beniston - - PR target/46898 - * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New. - * config/lm32/lm32.md (ashlsi3): Remove unused variable. - * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New. - (lm32_block_move_inline): Add type cast to remove warning. - (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out. - (gen_int_relational): Move declarations to start of function. - -2011-02-25 Eric Botcazou - - PR tree-optimization/45470 - * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement - can throw internally only. - * tree-vect-stmts.c (vectorizable_call): Likewise. - -2011-02-24 Anatoly Sokolov - - * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS, - PREFERRED_OUTPUT_RELOAD_CLASS): Remove. - * config/stormy16/stormy16-protos.h - (xstormy16_preferred_reload_class): Remove. - * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make - static. Change 'rclass' argument and return type to reg_class_t. - (TARGET_PREFERRED_RELOAD_CLASS, - TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. - -2011-02-24 Richard Guenther - - * lto-streamer-in.c (input_bb): Do not find referenced vars - in debug statements. - -2011-02-23 Jason Merrill - - * common.opt (fabi-version): Document v5 and v6. - -2011-02-23 Richard Guenther - - PR tree-optimization/47849 - * tree-if-conv.c (main_tree_if_conversion): Free postdom info. - -2011-02-23 Jie Zhang - - * opts-common.c (decode_cmdline_option): Print empty string - argument as "" in decoded->orig_option_with_args_text. - * gcc.c (execute): Print empty string argument as "" - in the verbose output. - (do_spec_1): Keep empty string argument. - -2011-02-23 Nathan Froyd - - * config.gcc: Declare score-* and crx-* obsolete. - -2011-02-23 Jie Zhang - - PR rtl-optimization/47763 - * web.c (web_main): Ignore naked clobber when replacing register. - -2011-02-22 Anatoly Sokolov - - * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): - Remove. - -2011-02-22 Sebastian Pop - - PR doc/47848 - * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes. - -2011-02-22 Mike Stump - - * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin - assembler. - * configure: Regenerate. - -2011-02-21 Chung-Lin Tang - - PR rtl-optimization/46002 - * ira-color.c (update_copy_costs): Change class intersection - test to reg_class_contents[] test of 'hard_regno'. - -2011-02-21 Joseph Myers - - * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather - than Driver option. - * config/hpux11.opt (mt): Likewise. - * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise. - * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise. - * config/vax/elf.opt (mno-asm-pic): Likewise. - * config/vms/vms.opt (map, mvms-return-codes): Likewise. - -2011-02-21 Mike Stump - - PR target/47822 - * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a - tree so we can get save the type. - * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot - for CFString instead of trying to use past the end of the builtins. - * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise. - * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise. - * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise. - * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING): - Rename to darwin_builtin_cfstring. - (darwin_init_cfstring_builtins): Return the built type. - -2011-02-21 Uros Bizjak - - PR target/47840 - * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32. - (_mm256_insert_epi64): Use _mm_insert_epi64. - -2011-02-21 Anatoly Sokolov - - * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. - * config/stormy16/stormy16-protos.h - (xstormy16_mode_dependent_address_p): Remove. - * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): - Make static. Change return type to bool. Change argument type to - const_rtx. Remove dead code. - (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. - -2011-02-21 Richard Guenther - - PR lto/47820 - * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): - Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. - (lto_input_ts_block_tree_pointers): Hook a BLOCK into the - TUs context. - * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): - Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. - -2011-02-20 Richard Guenther - - PR lto/47822 - * tree.c (free_lang_data_in_decl): Clean builtins from - the TU decl BLOCK_VARS. - -2011-02-19 Alexandre Oliva - - PR debug/47620 - PR debug/47630 - * haifa-sched.c (fix_tick_ready): Skip tick computation - for debug insns. - -2011-02-19 Richard Guenther - - PR lto/47647 - * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers): - Remove lazy BLOCK_VARS streaming. - (lto_input_ts_block_tree_pointers): Likewise. - * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise. - -2011-02-19 Joseph Myers - - * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h. - -2011-02-19 Joseph Myers - - * config/i386/biarch32.h, config/i386/mach.h, - config/rs6000/aix.opt, config/sh/superh64.h: Remove. - -2011-02-19 Jakub Jelinek - - PR target/47800 - * config/i386/i386.md (peephole2 for shift and plus): Use - operands[1] original mode in the first insn. - -2011-02-18 Mike Stump - - * config/t-darwin (TM_H): Add dependency on darwin-sections.def. - -2011-02-18 Jan Hubicka - - PR middle-end/47788 - * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits - to zero when the function is not inlinable at all. - -2011-02-18 John David Anglin - - * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts. - * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, - pthread_mutex_unlock, pthread_once): Reinstate pthread stubs. - * config/pa/t-pa-hpux11: Add rules to build pthread stubs. - * config/pa/t-pa64: Likewise. - * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - -2011-02-18 Jakub Jelinek - - PR driver/47787 - * gcc.c (default_compilers): Clear combinable field for "@cpp-output". - -2011-02-18 John David Anglin - - PR target/47792 - * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name. - -2011-02-18 Anatoly Sokolov - - * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, - RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P, - LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P, - GO_IF_LEGITIMATE_ADDRESS): Remove macros. - * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define. - (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p, - m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p, - m32r_load_postinc_p, m32r_store_preinc_predec_p, - m32r_legitimate_address_p): New functions. - * config/m32r/constraints.md (constraint "S"): Don't use - STORE_PREINC_PREDEC_P. - (constraint "U"): Don't use LOAD_POSTINC_P. - -2011-02-18 Chung-Lin Tang - - PR rtl-optimization/46178 - * ira.c (setup_hard_regno_class): Use ira_class_translate[] to - compute ira_hard_regno_cover_class[]. - -2011-02-18 Richard Guenther - - PR lto/47798 - * lto-streamer.h (lto_global_var_decls): Declare. - * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register - statics for global var processing. - -2011-02-18 Richard Guenther - - PR tree-optimization/47737 - * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix - edge dominance check. - -2011-02-18 Jakub Jelinek - - PR debug/47780 - * cfgexpand.c (expand_debug_expr) : Call copy_rtx to - avoid invalid rtx sharing. - -2011-02-18 Gerald Pfeifer - - * doc/cpp.texi (Obsolete Features): Add background on the - origin of assertions. - -2011-02-17 Iain Sandoe - - * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for - objc_abi == 2. - * config/darwin.c (output_objc_section_asm_op): Added support for - ABI v1 and v2. - (is_objc_metadata): New. - (darwin_objc2_section): New. - (darwin_objc1_section): New. - (machopic_select_section): Added support for ABI v1 and v2. - (darwin_emit_objc_zeroed): New. - (darwin_output_aligned_bss): Detect objc metadata and treat it - appropriately. - (darwin_asm_output_aligned_decl_common): Same. - (darwin_asm_output_aligned_decl_local): Same. - * config/darwin-sections.def: Updated for ABI v1 and v2. - * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When - compiling Objective-C code for the NeXT runtime, default to using - ABI version 0 for 32-bit, and version 2 for 64-bit. - -2011-02-17 Joseph Myers - - * common.opt (optimize_fast): New Variable. - * opts.c (default_options_optimization): Use opts->x_optimize_fast - instead of local variable ofast. - -2011-02-17 Nicola Pero - - * doc/invoke.texi (fobjc-abi-version): Documented. - (fobjc-nilcheck): Documented. - (fno-nil-receiver): Updated documentation to refer to the NeXT ABI - version. - -2011-02-17 Joseph Myers - - PR driver/47390 - * common.opt (export-dynamic): New Driver option. - * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}. - -2011-02-17 Joseph Myers - - * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*. - -2011-02-17 Alexandre Oliva - Jan Hubicka - - PR debug/47106 - PR debug/47402 - * cfgexpand.c (account_used_vars_for_block): Remove. - (estimated_stack_frame_size): Use referenced vars. - * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced - that were referenced in the original function. Test src_fn - rather than cfun. Drop redundant get_var_ann. - (setup_one_parameter): Drop redundant get_var_ann. - (declare_return_variable): Likewise. - (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn. - (copy_arguments_for_versioning): Drop redundant get_var_ann. - * ipa-inline.c (compute_inline_parameters): Do not compute - disregard_inline_limits here. - (compute_inlinable_for_current, pass_inlinable): New. - (pass_inline_parameters): Require PROP_referenced_vars. - * cgraphunit.c (cgraph_process_new_functions): Don't run - compute_inline_parameters explicitly unless function is in SSA form. - (cgraph_analyze_function): Set .disregard_inline_limits. - * tree-sra.c (convert_callers): Compute inliner parameters - only for functions already in SSA form. - -2011-02-17 Joseph Myers - - * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle - -mlittle-endian-data. - -2011-02-17 Joseph Myers - - * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and - -mno-fpu, not -fpu and -no-fpu. - * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise. - * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise. - -2011-02-17 Uros Bizjak - - PR target/43653 - * config/i386/i386.c (ix86_secondary_reload): Handle SSE - input reload with PLUS RTX. - -2011-02-16 Joseph Myers - - * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead - of InverseVar(MDMX). - -2011-02-16 Joseph Myers - - * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of - --m4-340. - -2011-02-16 Joseph Myers - - * config/mn10300/mn10300.opt (mno-crt0): New. - -2011-02-16 Joseph Myers - - * config/m68k/uclinux.opt (static-libc): New Driver option. - -2011-02-16 Joseph Myers - - * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*. - -2011-02-16 Joseph Myers - - * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of - %{muser-extend-enabled}. - -2011-02-16 Richard Guenther - - PR tree-optimization/47738 - * tree-ssa-loop.c (run_tree_predictive_commoning): Return - the TODO from tree_predictive_commoning. - -2011-02-15 Jeff Law - - Revert - 2011-01-25 Jeff Law - - PR rtl-optimization/37273 - * ira-costs.c (scan_one_insn): Detect constants living in memory and - handle them like argument loads from stack slots. Do not double - count memory for memory constants and argument loads from stack slots. - -2011-02-15 Michael Meissner - - PR target/47755 - * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI - mode for vector constants. Remove code that checks for TImode. - -2011-02-15 Alexandre Oliva - - PR debug/47106 - PR debug/47402 - * cgraph.h (compute_inline_parameters): Return void. - * ipa-inline.c (compute_inline_parameters): Adjust. - -2011-02-15 Alexandre Oliva - - PR debug/47106 - PR debug/47402 - * tree-inline.h (estimated_stack_frame_size): Take cgraph node - rather than decl. - * cfgexpand.c (estimated_stack_frame_size): Likewise. - * ipa-inline.c (compute_inline_parameters): Adjust. - -2011-02-15 Alexandre Oliva - - PR debug/47106 - PR debug/47402 - * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument. - Adjust all users. Pass FN to... - * tree-flow-inline.h (first_referenced_var): ... this. Add - fn argument. - * ipa-struct-reorg.c: Adjust. - * tree-dfa.c: Adjust. - * tree-into-ssa.c: Adjust. - * tree-sra.c: Adjust. - * tree-ssa-alias.c: Adjust. - * tree-ssa-live.c: Adjust. - * tree-ssa.c: Adjust. - * tree-ssanames.c: Adjust. - * tree-tailcall.c: Adjust. - -2011-02-15 Alexandre Oliva - - PR debug/47106 - PR debug/47402 - * tree-flow.h (referenced_var_lookup): Add fn parameter. - Adjust all callers. - * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun. - * tree-flow-inline.h: Adjust. - * gimple-pretty-print.c: Adjust. - * tree-into-ssa.c: Adjust. - * tree-ssa.c: Adjust. - * cfgexpand.c: Adjust. - -2011-02-15 Nathan Froyd - - * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - * config/iq2000/constraints.md: New file. - * config/iq2000/iq2000.md: Include it. - (define_insn ""): Delete. - (movsi_internal2, movhi_internal2, movqi_internal2): Delete - unsupported constraint letters from patterns. - (call_value, call_value_internal1): Likewise. - (call_value_multiple_internal1): Likewise. - -2011-02-15 Nick Clifton - - * config/mn10300/mn10300.c: Include tm-constrs.h. - (struct liw_data): New data structure describing an LIW candidate - instruction. - (extract_bundle): Use struct liw_data. Allow small integer - operands for some instructions. - (check_liw_constraints): Use struct liw_data. Remove swapped - parameter. Add comments describing the checks. Fix bug when - assigning the source of liw1 to the source of liw2. - (liw_candidate): Delete. Code moved into extract_bundle. - (mn10300_bundle_liw): Use struct liw_data. Check constraints - before swapping. - * config/mn10300/predicates.md (liw_operand): New predicate. - Allows registers and small integer constants. - * config/mn10300/constraints.md (O): New constraint. Accetps - integers in the range -8 to +7 inclusive. - * config/mn10300/mn10300.md (movesi_internal): Add an alternative - for moving a small integer into a register. Give this alternative - LIW attributes. - (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise. - (ashlsi3): Likewise, plus give LIW attributes to the alternatives - using the J,K,L and M constraints, - (liw): Remove SI mode on second operands to allow for HI and QI - mode values. - (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the - instruction. - -2011-02-15 Richard Guenther - - PR tree-optimization/47743 - * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number - for a non-type-compatible VN lookup bail out. - -2011-02-15 Nathan Froyd - - * config/fr30/constraints.md: New file. - * config/fr30/fr30.md: Include it. - * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - -2011-02-15 Nathan Froyd - - * config/frv/constraints.md: New file. - * config/frv/predicates.md: Include it. - * config/frv/frv.c (reg_class_from_letter): Delete. - (frv_option_override): Don't initialize it. - * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete. - (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete. - (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. - (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete. - (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete. - (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete. - (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete. - (REG_CLASS_FROM_CONSTRAINT): Delete. - -2011-02-15 Jakub Jelinek - - PR middle-end/47581 - * config/i386/i386.c (ix86_compute_frame_size): Don't align offset - if frame size is 0 in a leaf function. - -2011-02-15 Rainer Orth - - PR pch/14940 - * config/alpha/host-osf.c: New file. - * config/alpha/x-osf: New file. - * config.host (alpha*-dec-osf*): Use it. - -2011-02-14 Anatoly Sokolov - - * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. - * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove. - * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to... - (rx_mode_dependent_address_p): ...this. Make static. Change argument - type to const_rtx. - (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. - -2011-02-14 Nathan Froyd - - * config/stormy16/constraints.md: New file. - * config/stormy16/predicates.md (nonimmediate_nonstack_operand): - Use satisfies_constraint_Q and satisfies_constraint_R. - * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p): - Delete. - (xstormy16_legitiamte_address_p): Declare. - * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): - Un-staticize. - (xstormy16_extra_constraint_p): Delete. - -2011-02-14 Eric Botcazou - - PR tree-optimization/46494 - * loop-unroll.c (split_edge_and_insert): Adjust comment. - * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info. - (pass_rtl_loop_done): Add TODO_verify_flow. - * fwprop.c (pass_rtl_fwprop): Likewise. - * modulo-sched.c (pass_sms): Likewise. - * tree-ssa-dom.c (pass_dominator): Likewise. - * tree-ssa-loop-ch.c (pass_ch): Likewise. - * tree-ssa-loop.c (pass_complete_unrolli): Likewise. - (pass_tree_loop_done): Likewise. - * tree-ssa-pre.c (execute_pre): Likewise. - * tree-ssa-reassoc.c (pass_reassoc): Likewise. - * tree-ssa-sink.c (pass_sink_code): Likewise. - * tree-vrp.c (pass_vrp): Likewise. - -2011-02-14 Nathan Froyd - - * config/v850/constraints.md: New file. - * config/v850/v850.md: Include it. - * config/v850/predicates.md (reg_or_0_operand): Use - satisfies_constraint_G. - (special_symbolref_operand): Use satisfies_constraint_K. - * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p. - (GO_IF_LEGITIMATE_ADDRESS): Likewise. - (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete. - (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint. - (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise. - (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise. - -2011-02-14 Anatoly Sokolov - - PR target/47696 - * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device - description. - -2011-02-14 Nathan Froyd - - * config/mcore/constraints.md: New file. - * config/mcore/mcore.md: Include it. - * config/mcore/mcore.c (reg_class_from_letter): Delete. - * config/mcore/mcore.h (reg_class_from_letter): Delete. - (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use - insn_const_int_ok_for_constraint. - (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise. - (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise. - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - -2011-02-14 Rainer Orth - - PR ada/41929 - * config/sparc/sol2-unwind.h: Include , - (IS_SIGHANDLER): Define. - (sparc64_is_sighandler): New function, split off from - sparc64_fallback_frame_state. - (sparc_is_sighandler): New function, split off from - sparc_fallback_frame_state. - (sparc64_fallback_frame_state): Merge with ... - (sparc_fallback_frame_state): ... this into ... - (MD_FALLBACK_FRAME_STATE_FOR): ... this. - Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save. - Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk - stack instead of hardcoded offsets. - -2011-02-14 Andriy Gapon - - PR target/45808 - * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case. - -2011-02-13 Ralf Wildenhues - - * configure: Regenerate. - -2011-02-12 Joseph Myers - - PR driver/45731 - * gcc.c (asm_options): Correct spec matching --target-help. - -2011-02-12 Martin Jambor - - * tree-cfg.c (verify_gimple_call): Return true upon invalid argument - to gimple call error. - -2011-02-12 Mike Stump - - * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize - comments in backslash regions. - -2011-02-12 Mike Stump - Jakub Jelinek - Iain Sandoe - - PR target/47324 - * dwarf2out.c (output_cfa_loc): When required, apply the - DWARF2_FRAME_REG_OUT macro to adjust register numbers. - (output_loc_sequence): Likewise. - (output_loc_operands_raw): Likewise. - (output_loc_sequence_raw): Likewise. - (output_cfa_loc): Likewise. - (output_loc_list): Suppress register number adjustment when - calling output_loc_sequence() - (output_die): Likewise. - -2011-02-12 Anatoly Sokolov - - * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): - Remove macros. - * config/xtensa/xtensa.c (xtensa_register_move_cost, - xtensa_memory_move_cost): New functions. - (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define. - -2011-02-12 Alexandre Oliva - - PR lto/47225 - * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la - in the current directory. - * configure: Rebuilt. - -2011-02-12 Iain Sandoe - - * config/darwin.c (darwin_override_options): Add a hunk missed - from the commit of r168571. Trim comment line lengths and - correct indents of the preceding block. - -2011-02-12 Iain Sandoe - - * gcc.c (driver_handle_option): Concatenate the argument to -F with - the switch. - -2011-02-11 Joseph Myers - - * common.opt (nostartfiles): New Driver option. - -2011-02-11 Xinliang David Li - - PR tree-optimization/47707 - * tree-chrec.c (convert_affine_scev): Keep type precision. - -2011-02-11 Eric Botcazou - - PR tree-optimization/47420 - * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX. - -2011-02-11 Pat Haugen - - PR rtl-optimization/47614 - * rtl.h (check_for_inc_dec): Declare. - * dse.c (check_for_inc_dec): Externalize... - * postreload.c (reload_cse_simplify): ...use it before deleting stmt. - (reload_cse_simplify_operands): Don't simplify opnds with side effects. - -2011-02-11 Joseph Myers - - PR driver/47678 - * gcc.c (main): Do not compile inputs if there were errors in - option handling. - * opts-common.c (read_cmdline_option): Check for wrong language - after other error checks. - -2011-02-11 Nathan Froyd - - * cgraph.c: Fix comment typos. - * cgraph.h: Likewise. - * cgraphunit.c: Likewise. - * ipa-cp.c: Likewise. - * ipa-inline.c: Likewise. - * ipa-prop.c: Likewise. - * ipa-pure-const.c: Likewise. - * ipa-ref.c: Likewise. - * ipa-reference.c: Likewise. - -2011-02-11 Jakub Jelinek - - PR debug/47684 - * tree-predcom.c (single_nonlooparound_use): Ignore debug uses. - -2011-02-11 Rainer Orth - - PR testsuite/47400 - * doc/sourcebuild.texi (Require Support): Document - dg-require-ascii-locale. - -2011-02-11 Mingjie Xing - - * doc/lto.texi (Write summary): Fix missing parentheses. - -2011-02-10 DJ Delorie - - * config/m32c/m32c.c (m32c_option_override): Disable - -fcombine-stack-adjustments until flag value tracking and compare - optimization can be rewritten. - -2011-02-10 Peter Bergner - - * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to - PROCESSOR_POWER7. - (PROCESSOR_DEFAULT64): Likewise. - -2011-02-10 Richard Henderson - - * config/rx/predicates.md (rx_zs_comparison_operator): Revert - change from 2011-02-03. - * config/rx/rx.c (flags_from_code): Likewise. - (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag - is valid, n/pz otherwise. - (rx_select_cc_mode): Return CCmode if Y is not zero. - -2011-02-10 Richard Guenther - - * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8. - -2011-02-10 Richard Guenther - - PR tree-optimization/47677 - * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps. - -2011-02-10 Jakub Jelinek - - PR target/47665 - * combine.c (make_compound_operation): Only change shifts into - multiplication for SCALAR_INT_MODE_P. - -2011-02-10 Jie Zhang - - PR testsuite/47622 - Revert - 2011-02-05 Jie Zhang - PR debug/42631 - * web.c (entry_register): Don't clobber the number of the - first uninitialized reference in used[]. - -2011-02-09 Richard Guenther - - PR tree-optimization/47664 - * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit - all edges again. - -2011-02-09 David Edelsohn - - PR target/46481 - PR target/47032 - * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to - PROCESSOR_POWER7. - (PROCESSOR_DEFAULT64): Same. - (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete. - -2011-02-09 Rainer Orth - - * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define. - -2011-02-09 Martin Jambor - - PR middle-end/45505 - * tree-sra.c (struct access): New flags grp_scalar_read and - grp_scalar_write. Changed description of assignment read and write - flags. - (dump_access): Dump new flags, reorder all of them. - (sort_and_splice_var_accesses): Set the new flag accordingly, use them - to detect multiple scalar reads. - (analyze_access_subtree): Use the new scalar read write flags instead - of the old flags. Adjusted comments. - -2011-02-08 DJ Delorie - - PR target/47548 - * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim - patterns. - -2011-02-08 Joseph Myers - - * config/m68k/uclinux.opt: New. - * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt. - -2011-02-08 Joseph Myers - - * config/cris/elf.opt (sim): New Driver option. - -2011-02-08 Joseph Myers - - * config/xtensa/elf.opt: New. - * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt. - -2011-02-08 Joseph Myers - - * config/vax/elf.opt: New. - * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt. - -2011-02-08 Joseph Myers - - * config/rs6000/aix64.opt (posix, pthread): New Driver options. - -2011-02-08 Joseph Myers - - * config/gnu-user.opt: New. - * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | - *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu, - *-*-uclinux*): Use gnu-user.opt. - -2011-02-08 Thomas Schwinge - - * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option. - * config/i386/gnu.h (CPP_SPEC): Likewise. - -2011-02-08 Ian Lance Taylor - - * common.opt (fcx-limited-range): Add SetByCombined flag. - (ffinite-math-only, fmath-errno, frounding-math): Likewise. - (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise. - (fassociative-math, freciprocal-math): Likewise. - (funsafe-math-optimizations): Likewise. - * opth-gen.awk: Handle SetByCombined. - * optc-gen.awk: Likewise. - * opts.c (set_fast_math_flags): Don't override flag if set by frontend. - (set_unsafe_math_optimizations_flags): Likewise. - * doc/options.texi (Option properties): Document SetByCombined. - -2011-02-08 Joseph Myers - - * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*, - i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe, - m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*, - m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*, - sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete. - -2011-02-08 Sebastian Pop - - PR tree-optimization/46834 - PR tree-optimization/46994 - PR tree-optimization/46995 - * graphite-sese-to-poly.c (used_outside_reduction): New. - (detect_commutative_reduction): Call used_outside_reduction. - (rewrite_commutative_reductions_out_of_ssa_close_phi): Call - translate_scalar_reduction_to_array only when at least one - loop-phi/close-phi tuple has been detected. - -2011-02-08 Richard Guenther - - PR middle-end/47639 - * tree-vect-generic.c (expand_vector_operations_1): Update - stmts here ... - (expand_vector_operations): ... not here. Cleanup EH info - and the CFG if required. - -2011-02-08 Richard Guenther - - PR tree-optimization/47641 - * tree-ssa.c (execute_update_addresses_taken): For asm outputs - require type compatibility. - -2011-02-08 Andreas Krebbel - - * gimple-low.c (lower_function_body): Don't remove the location of - the return statement here. - (lower_gimple_return): Do it here instead but only if the return - statement is actually used twice. - -2011-02-08 Richard Guenther - - PR tree-optimization/47632 - * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove - unused up_to_stmt parameter, return whether cfg-cleanup is - necessary, remove EH info properly. - (forward_propagate_into_gimple_cond): Adjust caller. - (forward_propagate_into_cond): Likewise. - (forward_propagate_comparison): Likewise. - (tree_ssa_forward_propagate_single_use_vars): Make - forward_propagate_comparison case similar to the two others. - -2011-02-08 Nick Clifton - - * config/mn10300/mn10300.opt (mliw): New command line option. - * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec. - (liw_bundling): New automaton. - (liw): New attribute. - (liw_op): New attribute. - (liw_op1, liw_op2, liw_both, liw_either): New reservations. - (movsi_internal): Add LIW attributes. - (andsi3): Likewise. - (iorsi3): Likewise. - (xorsi3): Likewise. - (addsi3): Separate register and immediate alternatives. - Add LIW attributes. - (subsi3): Likewise. - (cmpsi): Likewise. - (aslsi3): Likewise. - (lshrsi3): Likewise. - (ashrsi3): Likewise. - (liw): New pattern. - * config/mn10300/mn10300.c (liw_op_names): New - (mn10300_print_operand): Handle 'W' operand descriptor. - (extract_bundle): New function. - (check_liw_constraints): New function. - (liw_candidate): New function. - (mn10300_bundle_liw): New function. - (mn10300_reorg): New function. - (TARGET_MACHINE_DEPENDENT_REORG): Define. - (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW. - * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define - __LIW__ or __NO_LIW__. - * doc/invoke.texi: Describe the -mliw command line option. - -2011-02-07 John David Anglin - - * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts. - * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, - pthread_mutex_unlock): Remove. - * config/pa/t-pa-hpux11: Remove rules to build pthread stubs. - * config/pa/t-pa64: Likewise. - * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against - shared libc if not linking against libpthread. - * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. - -2011-02-07 Iain Sandoe - - PR target/47558 - * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first - on 10.6 and later to ensure that we always use the unwinder from - the system. Only add -no_compact_unwind when tarteting darwin - 10.6 or later. - -2011-02-07 Steve Ellcey - - PR target/46997 - * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN. - (vec_interleave_lowv2sf): Ditto. - (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check. - (vec_extract_oddv2sf): Ditto. - -2011-02-07 Mike Stump - - PR target/42333 - Add __ieee_divdc3 entry point. - * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3 - entry point. - (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins. - * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise. - * config/darwin.c (darwin_rename_builtins): Add. - * config/darwin-protos.h (darwin_rename_builtins): Add. - -2011-02-07 Michael Meissner - - PR target/47636 - * config/rs6000/rs6000.md (rsqrt2): Use the correct macro - for the condition. - -2011-02-07 Mike Stump - - * config/darwin.opt (mmacosx-version-min): Update default OS version. - -2011-02-07 Denis Chertykov - - PR target/47534 - * config/avr/libgcc.S (exit): Move .endfunc - -2011-02-07 Richard Guenther - - PR tree-optimization/47615 - * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument. - * tree-ssa-sccvn.c (default_vn_walk_kind): New global. - (run_scc_vn): Initialize it. - (visit_reference_op_load): Use it. - * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE. - -2011-02-07 Ulrich Weigand - - * config/spu/spu.c (spu_init_libfuncs): Install SImode and - DImode trapping arithmetic libfuncs. - -2011-02-07 Richard Guenther - - PR tree-optimization/47621 - * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from - two duplicates ... - (execute_update_addresses_taken): ... here. Make it more - conservative in what we accept. - -2011-02-06 Joseph Myers - - * config/sparc/freebsd.h (ASM_SPEC): Define. - * config/sparc/vxworks.h (ASM_SPEC): Define. - -2011-02-06 Joseph Myers - - * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}. - -2011-02-06 Steven Bosscher - - * doc/invoke.texi: Remove reference to compiler internals from - user documentation. - - * reg-notes.def: Remove REG_VALUE_PROFILE. - * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE. - -2011-02-05 Jakub Jelinek - - PR middle-end/47610 - * varasm.c (default_section_type_flags): If decl is NULL, - and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit. - -2011-02-05 Jie Zhang - - PR debug/42631 - * web.c (entry_register): Don't clobber the number of the - first uninitialized reference in used[]. - -2011-02-04 Sebastian Pop - - PR tree-optimization/46194 - * tree-data-ref.c (analyze_miv_subscript): Remove comment. - (build_classic_dist_vector_1): Do not represent classic distance - vectors when the access functions are variating in different loops. - -2011-02-04 Joseph Myers - - * config/mips/iris6.opt: New. - * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt. - -2011-02-04 Richard Henderson - Steve Ellcey - - PR target/46997 - * config/ia64/predicates.md (mux1_brcst_element): New. - * config/ia64/ia64-protos.h (ia64_unpack_assemble): New. - * config/ia64/ia64.c (ia64_unpack_assemble): New. - (ia64_unpack_sign): New. - (ia64_expand_unpack): Rewrite using new routines. - (ia64_expand_widen_sum): Ditto. - (ia64_expand_dot_prod_v8qi): Ditto. - * config/ia64/vect.md (mulv8qi3): Rewrite to use new - routines, add endian check. - (pmpy2_even): Rename from pmpy2_r, add endian check. - (pmpy2_odd): Rename from pmpy2_l, add endian check. - (vec_widen_smult_lo_v4hi): Rewrite using new routines. - (vec_widen_smult_hi_v4hi): Ditto. - (vec_widen_umult_lo_v4hi): Ditto. - (vec_widen_umult_hi_v4hi): Ditto. - (mulv2si3): Change endian checks. - (sdot_prodv4hi): Rewrite with new calls. - (udot_prodv4hi): New. - (vec_pack_ssat_v4hi): Add endian check. - (vec_pack_usat_v4hi): Ditto. - (vec_pack_ssat_v2si): Ditto. - (max1_even): Rename from max1_r, add endian check. - (max1_odd): Rename from max1_l, add endian check. - (*mux1_rev): Format change. - (*mux1_mix): Ditto. - (*mux1_shuf): Ditto. - (*mux1_alt): Ditto. - (*mux1_brcst_v8qi): Use new predicate. - (vec_extract_evenv8qi): Remove endian check. - (vec_extract_oddv8qi): Ditto. - (vec_interleave_lowv4hi): Format change. - (vec_interleave_highv4hi): Ditto. - (mix2_even): Rename from mix2_r, add endian check. - (mix2_odd): Rename from mux2_l, add endian check. - (*mux2): Fix mask setting for TARGET_BIG_ENDIAN. - (vec_extract_evenodd_helper): Format change. - (vec_extract_evenv4hi): Remove endian check. - (vec_extract_oddv4hi): Remove endian check. - (vec_interleave_lowv2si): Format change. - (vec_interleave_highv2si): Format change. - (vec_initv2si): Remove endian check. - (vecinit_v2si): Add endian check. - (reduc_splus_v2sf): Add endian check. - (reduc_smax_v2sf): Ditto. - (reduc_smin_v2sf): Ditto. - (vec_initv2sf): Remove endian check. - (fpack): Add endian check. - (fswap): Add endian check. - (vec_interleave_highv2sf): Add endian check. - (vec_interleave_lowv2sf): Add endian check. - (fmix_lr): Add endian check. - (vec_setv2sf): Format change. - (*vec_extractv2sf_0_be): Use shift to extract operand. - (*vec_extractv2sf_1_be): New. - (vec_pack_trunc_v4hi): Add endian check. - (vec_pack_trunc_v2si): Format change. - -2011-02-04 Jakub Jelinek - - PR inline-asm/23200 - * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't - do bb, locus and block comparison and disallow loads if it is not set. - (stmt_is_replaceable_p): New function. - (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p - callers. - * expr.c (expand_expr_real_1) : If - get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use - SSA_NAME_DEF_STMT. - * tree-flow.h (stmt_is_replaceable_p): New prototype. - -2011-02-04 Joseph Myers - - * config/rs6000/xilinx.opt: New. - * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt. - -2011-02-04 Joseph Myers - - * config/mips/mips.opt (EB, EL, noasmopt): New Driver options. - -2011-02-03 Anatoly Sokolov - - * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS, - PREFERRED_OUTPUT_RELOAD_CLASS): Remove. - * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class, - secondary_reload_info, xtensa_secondary_reload): Remove. - * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS, - TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. - (xtensa_preferred_reload_class): Make static. Change return and - 'rclass' argument type to reg_class_t. Remove 'isoutput' argument. - Use CONST_DOUBLE_P predicate. - (xtensa_preferred_output_reload_class): New function. - (xtensa_secondary_reload): Make static. - -2011-02-03 Joseph Myers - - * config/microblaze/microblaze.opt (Zxl-mode-bootstrap, - Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel, - Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options. - -2011-02-03 Jakub Jelinek - - PR middle-end/31490 - * output.h (SECTION_RELRO): Define. - (SECTION_MACH_DEP): Adjust. - (get_variable_section): New prototype. - * varpool.c (varpool_finalize_named_section_flags): New function. - (varpool_assemble_pending_decls): Call it. - * cgraph.h (varpool_finalize_named_section_flags): New prototype. - * cgraphunit.c (cgraph_output_in_order): Call - varpool_finalize_named_section_flags. - * varasm.c (get_section): Allow section flags conflicts between - relro and read-only sections if the section hasn't been declared yet. - Set SECTION_OVERRIDE after diagnosing section type conflict. - (get_variable_section): No longer static. - (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for - readonly sections that need relocations. - (decl_readonly_section_1): New function. - (decl_readonly_section): Use it. - - Revert: - 2010-11-17 Dinar Temirbulatov - Steve Ellcey - - PR middle-end/31490 - * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask - if section attribute used. - -2011-02-03 Jakub Jelinek - - * config/darwin.h (SECTION_NO_ANCHOR): Remove. - * config/darwin.c (SECTION_NO_ANCHOR): Define. - (darwin_init_sections): Remove assertion. - -2011-02-03 Nick Clifton - - * config/rx/predicates.md (rx_zs_comparison_operator): Remove - lt and ge. - * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode. - * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes - instead of "n" and "pz". - (flags_from_code): LT and GE tests need CC_FLAG_O as well as - CC_FLAG_S. - -2011-02-03 Jakub Jelinek - - PR target/47312 - * expr.c (expand_expr_real_2) : If target doesn't expand - fma, expand FMA_EXPR as fma{,f,l} call. - - PR lto/47274 - * lto-streamer-out.c (write_symbol): When writing kind and visibility, - copy them into a unsigned char variable and pass address of it to - lto_output_data_stream. - - PR target/47564 - * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx - around backend_init_target and lang_dependent_init_target calls. - * cgraphunit.c (cgraph_debug_gimple_stmt): New function. - (verify_cgraph_node): Don't call set_cfun here. Use - cgraph_debug_gimple_stmt instead of debug_gimple_stmt. - Set error_found for incorrectly represented calls to thunks. - -2011-02-03 Alexandre Oliva - - PR debug/43092 - PR rtl-optimization/43494 - * rtl.h (for_each_inc_dec_fn): New type. - (for_each_inc_dec): Declare. - * rtlanal.c (struct for_each_inc_dec_ops): New type. - (for_each_inc_dec_find_inc_dec): New fn. - (for_each_inc_dec_find_mem): New fn. - (for_each_inc_dec): New fn. - * dse.c (struct insn_size): Remove. - (replace_inc_dec, replace_inc_dec_mem): Remove. - (emit_inc_dec_insn_before): New fn. - (check_for_inc_dec): Use it, along with for_each_inc_dec. - (canon_address): Pass mem modes to cselib_lookup. - * cselib.h (cselib_lookup): Add memmode argument. Adjust callers. - (cselib_lookup_from_insn): Likewise. - (cselib_subst_to_values): Likewise. - * cselib.c (find_slot_memmode): New var. - (cselib_find_slot): New fn. Use it instead of - htab_find_slot_with_hash everywhere. - (entry_and_rtx_equal_p): Use find_slot_memmode. - (autoinc_split): New fn. - (rtx_equal_for_cselib_p): Rename and implement in terms of... - (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on. - Deal with autoinc. Special-case recursion into MEMs. - (cselib_hash_rtx): Likewise. - (cselib_lookup_mem): Infer pmode from address mode. Distinguish - address and MEM modes. - (cselib_subst_to_values): Add memmode, pass it on. - Deal with autoinc. - (cselib_lookup): Add memmode argument, pass it on. - (cselib_lookup_from_insn): Add memmode. - (cselib_invalidate_rtx): Discard obsolete push_operand handling. - (struct cselib_record_autoinc_data): New. - (cselib_record_autoinc_cb): New fn. - (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM - mode to cselib_lookup. Reset autoinced REGs here instead of... - (cselib_process_insn): ... here. - * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode - to cselib_lookup. - (add_uses): Likewise, also to cselib_subst_to_values. - (add_stores): Likewise. - * sched-deps.c (add_insn_mem_dependence): Pass mode to - cselib_subst_to_values. - (sched_analyze_1, sched_analyze_2): Likewise. Adjusted. - * gcse.c (do_local_cprop): Adjusted. - * postreload.c (reload_cse_simplify_set): Adjusted. - (reload_cse_simplify_operands): Adjusted. - * sel-sched-dump (debug_mem_addr_value): Pass mode. - -2011-02-03 Alexandre Oliva - - PR tree-optimization/45122 - * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make - unsafe assumptions when there's more than one loop exit. - -2011-02-02 Michael Meissner - - PR target/47272 - * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): - Document using vector double with the load/store builtins, and - that the load/store builtins always use Altivec instructions. - - * config/rs6000/vector.md (vector_altivec_load_): New insns - to use altivec memory instructions, even on VSX. - (vector_altivec_store_): Ditto. - - * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New - function. - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add - V2DF, V2DI support to load/store overloaded builtins. - - * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add - altivec load/store builtins for V2DF/V2DI types. - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't - set avoid indexed addresses on power6 if -maltivec. - (altivec_expand_ld_builtin): Add V2DF, V2DI support, use - vector_altivec_load/vector_altivec_store builtins. - (altivec_expand_st_builtin): Ditto. - (altivec_expand_builtin): Add VSX memory builtins. - (rs6000_init_builtins): Add V2DI types to internal types. - (altivec_init_builtins): Add support for V2DF/V2DI altivec - load/store builtins. - (rs6000_address_for_altivec): Insure memory address is appropriate - for Altivec. - - * config/rs6000/vsx.md (vsx_load_): New expanders for - vec_vsx_ld and vec_vsx_st. - (vsx_store_): Ditto. - - * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type - variables to hold long long types for VSX vector memory builtins. - (RS6000_BTI_unsigned_long_long): Ditto. - (long_long_integer_type_internal_node): Ditti. - (long_long_unsigned_type_internal_node): Ditti. - - * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC. - (altivec_lvx_): Make altivec_lvx use a mode iterator. - (altivec_stvx_): Make altivec_stvx use a mode iterator. - - * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin - short cuts. - (vec_vsx_st): Ditto. - -2011-02-02 Joseph Myers - - * config/pa/pa-hpux10.opt: New. - * config/hpux11.opt (pthread): New Driver option. - * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options. - * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt. - -2011-02-02 Joseph Myers - - * config/ia64/vms.opt: New. - * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt. - -2011-02-01 Michael Meissner - - PR target/47580 - * config/rs6000/vsx.md (vsx_float2): Use - gpc_reg_operand instead of vsx_register_operand to match rs6000.md - generator functions. - (vsx_floatuns2): Ditto. - (vsx_fix_trunc2): Ditto. - (vsx_fixuns_trunc2): Ditto. - -2011-02-02 Joseph Myers - - * config/i386/djgpp.opt (posix): New Driver option. - -2011-02-02 Gerald Pfeifer - - * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*): - Move to the unsupported targets list. - -2011-02-02 Peter Bergner - - PR rtl-optimization/47525 - * df-scan.c: Update copyright years. - (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE - and non-clobber DF_REF_REG_DEF for calls to const and pure functions. - -2011-02-02 Rainer Orth - - * config/i386/sysv4.h (TARGET_VERSION): Remove. - (SUBTARGET_RETURN_IN_MEMORY): Remove. - (ASM_OUTPUT_ASCII): Remove. - * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef. - -2011-02-02 Jeff Law - - PR middle-end/47543 - * reload.c (find_reloads_address): Handle reg+d address where both - components are invalid by reloading the entire address. - -2011-02-02 Sebastian Pop - Richard Guenther - - PR tree-optimization/40979 - PR bootstrap/47044 - * passes.c (init_optimization_passes): After LIM call copy_prop - and DCE to clean up. - * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func. - -2011-02-02 Sebastian Pop - - PR tree-optimization/47576 - PR tree-optimization/47555 - * doc/invoke.texi (scev-max-expr-complexity): Documented. - * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. - (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared. - * tree-scalar-evolution.c (follow_ssa_edge): Use - PARAM_SCEV_MAX_EXPR_COMPLEXITY. - -2011-02-02 Richard Guenther - - PR tree-optimization/47566 - * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs. - -2011-02-02 Alexandre Oliva - - PR debug/47106 - PR debug/47402 - * tree-inline.c (declare_return_variable): Remove unused caller - variable. - - PR debug/47106 - PR debug/47402 - * tree-flow-inline.h (clear_is_used, is_used_p): New. - * cfgexpand.c (account_used_vars_for_block): Use them. - * tree-nrv.c (tree_nrv): Likewise. - * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. - (dump_scope_block): Likewise. - (remove_unused_locals): Likewise. - - PR debug/47106 - PR debug/47402 - * tree-inline.c (declare_return_variable): Add result decl to - local decls only once. - * gimple-low.c (record_vars_into): Mark newly-created variables - as referenced. - -2011-02-02 Alexandre Oliva - - PR debug/47498 - PR debug/47501 - PR debug/45136 - PR debug/45130 - * haifa-sched.c (get_ebb_head_tail): Move notes across boundary - debug insns. - (no_real_insns_p, schedule_block, set_priorities): Drop special - treatment of boundary debug insns. - * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. - * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns. - * sched-int.h (DEBUG_INSN_SCHED_P): Remove. - (BOUNDARY_DEBUG_INSN_P): Likewise. - (SCHEDULE_DEBUG_INSN_P): Likewise. - * sched-rgn.c (init_ready_list): Drop special treatment of - boundary debug insns. - * final.c (rest_of_clean_state): Clear notes' BB. - -2011-02-01 Joseph Myers - - * config/openbsd.opt (assert=): New Driver option. - -2011-02-01 Joseph Myers - - * config/i386/nto.opt: New. - * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt. - -2011-02-01 Joseph Myers - - * config/i386/netware.opt: New. - * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt. - -2011-02-01 Joseph Myers - - * config/interix.opt (posix): New Driver option. - -2011-02-01 DJ Delorie - - * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition. - - * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg - class for A0/A1. - -2011-02-01 Sebastian Pop - - PR tree-optimization/47561 - * toplev.c (process_options): Print the Graphite flags. Add - flag_loop_flatten to the list of options requiring Graphite. - -2011-02-01 Joseph Myers - - * config/i386/cygming.opt (posix): New Driver option. - -2011-02-01 Joseph Myers - - * config/arm/vxworks.opt: New. - * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt. - -2011-02-01 Joseph Myers - - * config/alpha/elf.opt: New. - * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*, - alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt. - -2011-02-01 Richard Guenther - - PR tree-optimization/47559 - * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform - store-motion on references that can throw. - -2011-02-01 Bernd Schmidt - - * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB. - * tree-pass.h (TDF_CSELIB): New macro. - * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1, - cselib_lookup): Check for it rather than for TDF_DETAILS. - -2011-02-01 H.J. Lu - - PR driver/47547 - * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output - is HOST_BIT_BUCKET. - - * opts.c (finish_options): Don't add x_aux_base_name if it is - HOST_BIT_BUCKET. - -2011-02-01 Richard Guenther - - PR tree-optimization/47555 - Revert - 2010-07-15 Sebastian Pop - - * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. - -2011-02-01 Sebastien Bourdeauducq - - PR gcc/46692 - * config/lm32/t-lm32: Add multilib for all CPU options. - -2011-02-01 Richard Guenther - - PR tree-optimization/47541 - * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make - sure to have a field at offset zero. - -2011-01-31 Joseph Myers - - * config/arc/arc.opt (EB, EL): New Driver options. - -2011-01-31 Joseph Myers - - * config/alpha/osf5.opt: New. - * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt. - -2011-01-31 Joseph Myers - - * config/vms/vms.opt (map, mvms-return-codes): New Driver options. - -2011-01-31 Sebastian Pop - - * common.opt (ftree-loop-linear): Use Alias to make it an alias of - -floop-interchange. - * invoke.texi (-ftree-loop-linear): Make it clear that this flag - is an alias of -floop-interchange and that it requires the - Graphite infrastructure. - * tree-ssa-loop.c (gate_graphite_transforms): Do not set - flag_loop_interchange based on the value of flag_tree_loop_linear. - -2011-01-31 Jakub Jelinek - Richard Guenther - - PR tree-optimization/47538 - * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use - type instead of r1type, except for comparisons. For right - shifts and comparisons punt if there are mismatches in - sizetype vs. non-sizetype types. - -2011-01-31 Rainer Orth - - * doc/sourcebuild.texi (Effective-Target Keywords): Document - avx_runtime. - -2011-01-31 Rainer Orth - - * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld - version number. - * configure: Regenerate. - -2011-01-31 Rainer Orth - - * configure.ac (gcc_cv_ld_static_option): Define. - (gcc_cv_ld_dynamic_option): Define. - (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive - instead. - (HAVE_LD_STATIC_DYNAMIC): Update message. - (LD_STATIC_OPTION): Define. - (LD_DYNAMIC_OPTION): Define. - * configure: Regenerate. - * config.in: Regenerate. - * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS && - HAVE_LD_STATIC_DYNAMIC]: Use them. - -2011-01-31 Nick Clifton - - * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered - registers inside interrupt handlers if the handler is not a leaf - function. - -2011-01-31 Nick Clifton - - * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for - reg_renumber returning an INVALID_REGNUM. - -2011-01-31 Alexandre Oliva - - PR libgcj/44341 - * doc/install.texi: Document host options discarded when cross - configuring target libraries. - -2011-01-31 Alexandre Oliva - - Reverted: - 2011-01-25 Alexandre Oliva - PR debug/45136 - PR debug/45130 - * haifa-sched.c (get_ebb_head_tail): Move notes across boundary - debug insns. - (no_real_insns_p, schedule_block, set_priorities): Drop special - treatment of boundary debug insns. - * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. - * sched-ebb.c (schedule_ebbs): Don't skip debug insns. - * sched-int.h (DEBUG_INSN_SCHED_P): Remove. - (BOUNDARY_DEBUG_INSN_P): Likewise. - (SCHEDULE_DEBUG_INSN_P): Likewise. - * sched-rgn.c (init_ready_list): Drop special treatment of - boundary debug insns. - * final.c (rest_of_clean-state): Clear notes' BB. - -2011-01-31 Alan Modra - - * config/rs6000/rs6000.c (print_operand): Rearrange addends in - toc relative expressions as we do in print_operand_address. - -2011-01-30 Kazu Hirata - - * doc/extend.texi: Follow spelling conventions. - * doc/invoke.texi: Fix a typo. - -2011-01-30 Joseph Myers - - * config/hpux11.opt: New. - * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*, - ia64*-*-hpux*): Use hpux11.opt. - -2011-01-30 Jonathan Yong - - * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules - to tmake_file. - -2011-01-30 Gerald Pfeifer - - * doc/install.texi (hppa-hp-hpux10): Remove references to HP - support sites. - -2011-01-30 Gerald Pfeifer - - * doc/install.texi (Binaries): Remove outdated reference for - Motorola 68HC11/68HC12 downloads. - -2011-01-30 Gerald Pfeifer - - * doc/extend.texi (Thread-Local): Adjust reference to Ulrich - Drepper's paper. - -2011-01-29 Jonathan Wakely - - PR bootstrap/47147 - * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as - used by NetBSD. - -2011-01-28 Ahmad Sharif - - * value-prof.c (check_counter): Corrected error message. - -2011-01-29 Jie Zhang - - * config/arm/arm.c (arm_legitimize_reload_address): New. - * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use - arm_legitimize_reload_address. - * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare. - -2011-01-28 Ian Lance Taylor - - * godump.c (go_define): Ignore macros whose definitions include - two adjacent operands. - -2011-01-28 Jakub Jelinek - - PR target/42894 - * varasm.c (force_const_mem): Store copy of x in desc->constant - instead of x itself. - * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst - itself into REG_EQUAL note. - -2011-01-28 Joseph Myers - - * config/freebsd.opt (posix, rdynamic): New Driver options. - -2011-01-28 Rainer Orth - - * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports - -Bstatic/-Bdynamic. - * configure: Regenerate. - -2011-01-27 Joseph Myers - - * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile. - * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile. - -2011-01-27 Anatoly Sokolov - - * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove. - * config/s390/s390-protos.h (s390_preferred_reload_class): Remove. - * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define. - (s390_preferred_reload_class): Make static. Change return and - 'rclass' argument type to reg_class_t. - -2011-01-27 Jan Hubicka - - PR middle-end/46949 - * cgraphunit.c (process_common_attributes): Fix use of remove_attribute. - (process_function_and_variable_attributes): Check defined weakrefs. - -2011-01-27 Martin Jambor - - PR tree-optimization/47228 - * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of - build_ref_for_offset. - -2011-01-27 Ulrich Weigand - - * config/spu/spu-elf.h (ASM_SPEC): Remove. - -2011-01-26 Mikael Pettersson - - PR rtl-optimization/46856 - * postreload.c (reload_combine_recognize_const_pattern): Do not - separate cc0 setter and user on cc0 targets. - -2011-01-26 Nicola Pero - - PR c/43082 - * c-typeck.c (c_objc_common_truthvalue_conversion): If we are - passed a VOID_TYPE expression, immediately emit an error and - return error_mark_node. - -2011-01-26 Jeff Law - - PR rtl-optimization/47464 - * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p - rather than may_trap_p as needed. - -2011-01-26 DJ Delorie - - PR rtl-optimization/46878 - * combine.c (insn_a_feeds_b): Check for the implicit cc0 - setter/user dependency as well. - -2011-01-26 Eric Botcazou - - PR rtl-optimization/44469 - * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too - after removing trivially dead basic blocks. - -2011-01-26 Joseph Myers - - * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}. - * config/frv/frv.h (LINK_SPEC): Likewise. - * config/i386/netware.h (LINK_SPEC): Likewise. - * config/m68k/linux.h (ASM_SPEC): Likewise. - * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise. - * config/rs6000/sysv4.h (LINK_SPEC): Likewise. - * config/rs6000/vxworks.h (ASM_SPEC): Likewise. - * config/sparc/linux.h (ASM_SPEC): Likewise. - * config/sparc/linux64.h (ASM_SPEC): Likewise. - * config/sparc/sp-elf.h (ASM_SPEC): Likewise. - -2011-01-26 Joseph Myers - - * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}. - * config/frv/frv.h (ASM_SPEC): Likewise. - * config/m68k/linux.h (ASM_SPEC): Likewise. - * config/pa/pa-linux.h (ASM_SPEC): Likewise. - * config/rs6000/linux64.h (ASM_SPEC): Likewise. - * config/rs6000/vxworks.h (ASM_SPEC): Likewise. - * config/sparc/linux.h (ASM_SPEC): Likewise. - * config/sparc/linux64.h (ASM_SPEC): Likewise. - * config/sparc/sp-elf.h (ASM_SPEC): Likewise. - -2011-01-26 Joseph Myers - - * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}. - * config/frv/frv.h (LINK_SPEC): Likewise. - * config/rs6000/sysv4.h (LINK_SPEC): Likewise. - -2011-01-26 Joseph Myers - - * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}. - * config/frv/frv.h (ASM_SPEC): Likewise. - * config/i386/sol2-10.h (ASM_SPEC): Likewise. - * config/m68k/linux.h (ASM_SPEC): Likewise. - * config/pa/pa-linux.h (ASM_SPEC): Likewise. - * config/rs6000/linux64.h (ASM_SPEC32): Likewise. - * config/rs6000/vxworks.h (ASM_SPEC): Likewise. - * config/sol2.h (ASM_SPEC): Remove comment about -Yd,. - * config/sparc/linux.h (ASM_SPEC): Likewise. - * config/sparc/linux64.h (ASM_SPEC): Likewise. - * config/sparc/sp-elf.h (ASM_SPEC): Likewise. - * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}. - -2011-01-26 Steve Ellcey - - PR target/46997 - * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN. - (*mux2): Ditto. - (vec_extract_evenodd_help): Ditto. - (vec_extract_evenv4hi): Ditto. - (vec_extract_oddv4hi): Ditto. - (vec_interleave_lowv2si): Ditto. - (vec_interleave_highv2si): Ditto. - (vec_extract_evenv2si): Ditto. - (vec_extract_oddv2si: Ditto. - (vec_pack_trunc_v2si): Ditto. - -2011-01-22 Jan Hubicka - - PR target/47237 - * cgraph.h (cgraph_local_info): New field can_change_signature. - * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee - signature can change. - (ipcp_estimate_growth): Call sequence simplify only if calle signature - can change. - (ipcp_insert_stage): Only compute args_to_skip if signature can change. - (cgraph_function_versioning): We can not change signature of functions - that don't allow that. - * lto-cgraph.c (lto_output_node): Stream local.can_change_signature. - (lto_input_node): Likewise. - * ipa-inline.c (compute_inline_parameters): Compute - local.can_change_signature. - * ipa-split.c (visit_bb): Never split away APPLY_ARGS. - * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on - functions that can not change signature. - * i386.c (ix86_function_regparm, ix86_function_sseregparm, - init_cumulative_args): Do not use local calling conventions - for functions that can not change signature. - -2011-01-22 Jan Hubicka - - * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk. - -2011-01-26 Richard Guenther - - PR tree-optimization/47190 - * cgraphunit.c (process_common_attributes): New function. - (process_function_and_variable_attributes): Use it. - -2011-01-26 Richard Guenther - - PR lto/47423 - * cgraphbuild.c (record_eh_tables): Record reference to personality - function. - -2011-01-26 Alexandre Oliva - - PR debug/45454 - * sel-sched.c (moveup_expr): Don't let debug insns prevent - non-debug insns from moving up. - -2011-01-26 Dave Korn - - PR target/40125 - * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable - t-dlldir{,-x} fragment for build and add it to tmake_file. - (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. - * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc. - * config/i386/t-dlldir: New file. - (SHLIB_DLLDIR): Define. - * config/i386/t-dlldir-x: New file. - (SHLIB_DLLDIR): Define. - * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set. - (SHLIB_INSTALL): Use it. - -2011-01-26 Chung-Lin Tang - - PR target/47246 - * config/arm/arm.c (thumb2_legitimate_index_p): Change the - lower bound of the allowed Thumb-2 coprocessor load/store - index range to -256. Add explaining comment. - -2011-01-25 Ian Lance Taylor - - * godump.c (go_define): Improve lexing of macro expansion to only - accept expressions which match Go spec. - -2011-01-26 Dave Korn - - PR c++/43601 - * tree.c (handle_dll_attribute): Handle it. - * doc/extend.texi (@item dllexport): Mention it. - * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it. - -2011-01-25 Ian Lance Taylor - - PR tree-optimization/26854 - * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl. - (decl_jump_unsafe): Move higher in file, with no other change. - (bind): Set has_jump_unsafe_decl if appropriate. - (update_label_decls): Test has_jump_unsafe_decl to avoid loop. - (check_earlier_gotos): Likewise. - (c_check_switch_jump_warnings): Likewise. - -2011-01-25 Jonathan Wakely - - * doc/invoke.texi (Warning Options): Add missing hyphen. - (-fprofile-dir): Minor grammatical fixes. - (-fbranch-probabilities): Likewise. - -2011-01-25 Alexandre Oliva - - PR debug/45136 - PR debug/45130 - * haifa-sched.c (get_ebb_head_tail): Move notes across boundary - debug insns. - (no_real_insns_p, schedule_block, set_priorities): Drop special - treatment of boundary debug insns. - * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. - * sched-ebb.c (schedule_ebbs): Don't skip debug insns. - * sched-int.h (DEBUG_INSN_SCHED_P): Remove. - (BOUNDARY_DEBUG_INSN_P): Likewise. - (SCHEDULE_DEBUG_INSN_P): Likewise. - * sched-rgn.c (init_ready_list): Drop special treatment of - boundary debug insns. - * final.c (rest_of_clean-state): Clear notes' BB. - -2011-01-25 Sebastian Pop - - * Makefile.in (LAMBDA_H): Removed. - (TREE_DATA_REF_H): Remove dependence on LAMBDA_H. - (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o, - lambda-trans.o, and tree-loop-linear.o. - (lto-symtab.o): Remove dependence on LAMBDA_H. - (tree-loop-linear.o): Remove rule. - (lambda-mat.o): Same. - (lambda-trans.o): Same. - (lambda-code.o): Same. - (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H. - (tree-vect-slp.o): Same. - * hwint.h (gcd): Moved here. - (least_common_multiple): Same. - * lambda-code.c: Removed. - * lambda-mat.c: Removed. - * lambda-trans.c: Removed. - * lambda.h: Removed. - * tree-loop-linear.c: Removed. - * lto-symtab.c: Do not include lambda.h. - * omega.c (gcd): Removed. - * passes.c (init_optimization_passes): Remove pass_linear_transform. - * tree-data-ref.c (print_lambda_vector): Moved here. - (lambda_vector_copy): Same. - (lambda_matrix_copy): Same. - (lambda_matrix_id): Same. - (lambda_vector_first_nz): Same. - (lambda_matrix_row_add): Same. - (lambda_matrix_row_exchange): Same. - (lambda_vector_mult_const): Same. - (lambda_vector_negate): Same. - (lambda_matrix_row_negate): Same. - (lambda_vector_equal): Same. - (lambda_matrix_right_hermite): Same. - * tree-data-ref.h: Do not include lambda.h. - (lambda_vector): Moved here. - (lambda_matrix): Same. - (dependence_level): Same. - (lambda_transform_legal_p): Removed declaration. - (lambda_collect_parameters): Same. - (lambda_compute_access_matrices): Same. - (lambda_vector_gcd): Same. - (lambda_vector_new): Same. - (lambda_vector_clear): Same. - (lambda_vector_lexico_pos): Same. - (lambda_vector_zerop): Same. - (lambda_matrix_new): Same. - * tree-flow.h (least_common_multiple): Removed declaration. - * tree-parloops.c (lambda_trans_matrix): Moved here. - (LTM_MATRIX): Same. - (LTM_ROWSIZE): Same. - (LTM_COLSIZE): Same. - (LTM_DENOMINATOR): Same. - (lambda_trans_matrix_new): Same. - (lambda_matrix_vector_mult): Same. - (lambda_transform_legal_p): Same. - * tree-pass.h (pass_linear_transform): Removed declaration. - * tree-ssa-loop.c (tree_linear_transform): Removed. - (gate_tree_linear_transform): Removed. - (pass_linear_transform): Removed. - (gate_graphite_transforms): Make flag_tree_loop_linear an alias of - flag_loop_interchange. - -2011-01-25 Jakub Jelinek - - PR tree-optimization/47265 - PR tree-optimization/47443 - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false - if name still has some uses. - -2011-01-25 Martin Jambor - - PR tree-optimization/47382 - * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed. - (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call. - -2011-01-25 Joel Sherrill - - * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to - sjlj_except_unwind_info. - -2011-01-25 Richard Guenther - - PR tree-optimization/47426 - * tree-ssa-structalias.c (ipa_pta_execute): Make externally - visible functions results escape. - -2011-01-25 Jakub Jelinek - - PR target/45701 - * config/arm/arm.c (any_sibcall_uses_r3): New function. - (arm_get_frame_offsets): Use it. - -2011-01-25 Sebastian Pop - Jakub Jelinek - - PR tree-optimization/47271 - * tree-if-conv.c (bb_postdominates_preds): New. - (if_convertible_bb_p): Call bb_postdominates_preds. - (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS. - (predicate_scalar_phi): Call bb_postdominates_preds. - -2011-01-25 Nick Clifton - - * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types. - * config/rx/rx.c (rx_function_value): Likewise. - (rx_promote_function_mode): Likewise. - (gen_safe_add): Place an outsized immediate value inside an UNSPEC - in order to make it legitimate. - * config/rx/rx.md (adddi3_internal): If the second operand is a MEM - make sure that the first operand is the same as the result register. - (addsi3_unspec): Delete. - (subdi3): Do not accept immediate operands. - (subdi3_internal): Likewise. - -2011-01-25 Jeff Law - - PR rtl-optimization/37273 - * ira-costs.c (scan_one_insn): Detect constants living in memory and - handle them like argument loads from stack slots. Do not double - count memory for memory constants and argument loads from stack slots. - -2011-01-25 Jakub Jelinek - - PR tree-optimization/47427 - PR tree-optimization/47428 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't - coalesce if the new root var would be TREE_READONLY. - -2011-01-25 Richard Guenther - - PR middle-end/47414 - * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the - correct type for TBAA. - -2011-01-25 Sebastian Pop - - * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New. - (close_phi_written_to_memory): Call for_each_index with - dr_indices_valid_in_loop. - -2011-01-25 Sebastian Pop - - * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN - when it is initialized. - -2011-01-25 Sebastian Pop - - * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update - call to graphite_find_data_references_in_stmt. - * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New. - (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update - call to graphite_find_data_references_in_stmt. - (analyze_drs_in_stmts): Same. - * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop - in which the scalar analysis of indices is performed. - (create_data_ref): Same. Update call to dr_analyze_indices. - (find_data_references_in_stmt): Update call to create_data_ref. - (graphite_find_data_references_in_stmt): Same. - * tree-data-ref.h (graphite_find_data_references_in_stmt): Update - declaration. - (create_data_ref): Same. - * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update - call to create_data_ref. - -2011-01-25 Sebastian Pop - - * graphite-sese-to-poly.c (build_poly_scop): Move - rewrite_commutative_reductions_out_of_ssa before find_scop_parameters. - -2011-01-25 Sebastian Pop - - * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow - VAR_DECL, PARM_DECL, and RESULT_DECL. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (reduction_dr_1): Allow several reductions - in a reduction PBB. - * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs - that have already been marked as PBB_IS_REDUCTION. - -2011-01-25 Sebastian Pop - - * graphite-scop-detection.c (same_close_phi_node): New. - (remove_duplicate_close_phi): New. - (make_close_phi_nodes_unique): New. - (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (new_poly_ddr): Call same_pdr_p. - * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE - of both data references to be the same. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (build_lexicographical_constraint): Remove - the gdim parameter. - (build_lexicographical_constraint): Adjust call to - ppl_powerset_is_empty. - (dependence_polyhedron): Same. - (graphite_legal_transform_dr): Same. - (graphite_carried_dependence_level_k): Same. - * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params - parameter. - * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. - -2011-01-25 Sebastian Pop - - * graphite-sese-to-poly.c - (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr. - (close_phi_written_to_memory): New. - (translate_scalar_reduction_to_array): Call close_phi_written_to_memory - and unshare_expr. - -2011-01-25 Sebastian Pop - - * doc/install.texi: Update the expected version number of PPL to 0.11. - * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under - #if PPL_VERSION_MINOR < 11. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c: Include graphite-cloog-util.h. - (new_poly_ddr): Inlined into dependence_polyhedron. - (free_poly_ddr): Moved close by new_poly_ddr. - (dependence_polyhedron_1): Renamed dependence_polyhedron. - Early return NULL when ppl_powerset_is_empty returns true. - (dependence_polyhedron): Renamed new_poly_ddr. Call only once - poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty. - (graphite_legal_transform_dr): Call new_poly_ddr. - (graphite_carried_dependence_level_k): Same. - (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr. - (dot_transformed_deps_stmt_1): Removed. - (dot_deps_stmt_1): Call dot_deps_stmt_2. - (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr. - (dot_deps_1): Call dot_deps_2. - * Makefile.in (graphite-dependences.o): Add missing dependence on - graphite-cloog-util.h. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty. - (build_lexicographical_constraint): Same. - (dependence_polyhedron_1): Same. - (graphite_legal_transform_dr): Same. - (graphite_carried_dependence_level_k): Same. - * graphite-ppl.c (ppl_powerset_is_empty): New. - * graphite-ppl.h (ppl_powerset_is_empty): Declared. - * tree-data-ref.c (dump_data_reference): Print the basic block index. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (build_pairwise_scheduling): Correctly compute - the "a followed by b" relation and document it. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (build_lexicographical_constraint): Stop the - iteration when the bag of constraints is empty. - -2011-01-25 Sebastian Pop - - * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. - -2011-01-25 Sebastian Pop - - * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop - nest and two loop depths as parameters. - (lst_try_interchange_loops): Call lst_interchange_profitable_p after - lst_perfect_nestify. - -2011-01-25 Sebastian Pop - - * graphite-dependences.c (print_pddr): Call - ppl_io_fprint_Pointset_Powerset_C_Polyhedron. - -2011-01-25 Sebastian Pop - - * graphite-ppl.c (debug_gmp_value): New. - * graphite-ppl.h (debug_gmp_value): Declared. - -2011-01-25 Tobias Grosser - - * doc/install.texi: Document availability of cloog-0.16. - -2011-01-25 Vladimir Kargov - - * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free - invalid postdominance info. - -2011-01-24 Jan Hubicka - - PR c/21659 - * doc/extend.texi (weak pragma): Drop claim that it must - appear before definition. - * varasm.c (merge_weak, declare_weak): Only sanity check - that DECL is not output at a time it is declared weak. - -2011-01-24 Kenneth Zadeck - - * machmode.def: Fixed comments. - -2011-01-24 Kai Tietz - - * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t. - -2011-01-24 Paul Koning - - * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN != - WORDS_BIG_ENDIAN. - -2011-01-24 H.J. Lu - - PR target/46519 - * config/i386/i386.c: Include sbitmap.h and fibheap.h. - (block_info): Add scanned and prev. - (move_or_delete_vzeroupper_2): Return if the basic block - has been scanned and the upper 128bit state is unchanged - from the last scan. - (move_or_delete_vzeroupper_1): Return true if the exit - state is changed. - (move_or_delete_vzeroupper): Visit basic blocks using the - work-list based algorithm based on vt_find_locations in - var-tracking.c. - - * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H). - -2011-01-24 Nick Clifton - - * config/v850/v850.opt (mv850es): New option - alias for -mv850e1. - * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass - -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified - then define __v850e1__. - * doc/invoke.texi: Document -mv850es. - -2011-01-24 Richard Henderson - - * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept - compound unordered comparisons. - * config/rx/rx.c (rx_split_fp_compare): Remove. - * config/rx/rx-protos.h: Update. - * config/rx/rx.md (gcc_conds, rx_conds): Remove. - (cbranchsf4): Don't call rx_split_fp_compare. - (*cbranchsf4): Use rx_split_cbranch. - (*cmpsf): Don't accept "i" constraint. - (*conditional_branch): Only valid after reload. - (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare. - -2011-01-24 Michael Meissner - - PR target/47385 - * config/rs6000/altivec.md (vector constant splitters): Add - support for creating vector single precision constants if -mvsx is - used and we would create the constant using Altivec primitives. - -2011-01-23 Bernd Schmidt - Richard Sandiford - - PR rtl-optimization/47166 - * reload1.c (emit_reload_insns): Disable the spill_reg_store - mechanism for PRE_MODIFY and POST_MODIFY. - (inc_for_reload): For PRE_MODIFY, return the insn that sets the - reloadreg. - -2011-01-23 Andreas Schwab - - * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers. - -2011-01-22 Jan Hubicka - - PR lto/47333 - * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto. - -2011-01-22 Jan Hubicka - - PR tree-optimization/43884 - PR lto/44334 - * predict.c (maybe_hot_frequency_p): Use entry block frequency as base. - * doc/invoke.texi (hot-bb-frequency-fraction): Update docs. - -2011-01-22 Anatoly Sokolov - - * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. - * config/s390/s390.c (s390_register_move_cost, - s390_memory_move_cost): New. - (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. - -2011-01-22 Ulrich Weigand - - PR middle-end/47401 - * except.c (sjlj_assign_call_site_values): Move setting the - crtl->uses_eh_lsda flag to ... - (sjlj_mark_call_sites): ... here. - (sjlj_emit_function_enter): Support NULL dispatch label. - (sjlj_build_landing_pads): In a function with no landing pads - that still has must-not-throw regions, generate code to register - a personality function with empty LSDA. - -2011-01-21 Richard Henderson - - * config/rx/rx.c (TARGET_FLAGS_REGNUM): New. - - * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New. - - * compare-elim.c: New file. - * Makefile.in (OBJS-common): Add it. - (compare-elim.o): New. - * common.opt (fcompare-elim): New. - * opts.c (default_options_table): Add OPT_fcompare_elim. - * tree-pass.h (pass_compare_elim_after_reload): New. - * passes.c (init_optimization_passes): Add it. - * recog.h: Protect against re-inclusion. - * target.def (TARGET_FLAGS_REGNUM): New POD hook. - * doc/invoke.texi (-fcompare-elim): Document it. - * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it. - * doc/tm.texi: Rebuild. - -2011-01-22 Nick Clifton - - * config/rx/rx.md (cstoresf4): Pass comparison operator to - rx_split_fp_compare. - -2011-01-22 Nick Clifton - - * config/rx/rx.md (UNSPEC_CONST): New. - (deallocate_and_return): Wrap the amount popped off the stack in - an UNSPEC_CONST in order to stop it being rejected by - -mmax-constant-size. - (pop_and_return): Add a "(return)" rtx. - (call): Drop the immediate operand. - (call_internal): Likewise. - (call_value): Likewise. - (call_value_internal): Likewise. - (sibcall_internal): Likewise. - (sibcall_value_internal): Likewise. - (sibcall): Likewise. Generate an explicit call using - sibcall_internal. - (sibcall_value): Likewise. - (mov<>): FAIL if a constant operand is not legitimate. - (addsi3_unpsec): New pattern. - - * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs. - (ok_for_max_constant): New function. - (gen_safe_add): New function. - (rx_expand_prologue): Use gen_safe_add. - (rx_expand_epilogue): Likewise. - (rx_is_legitimate_constant): Use ok_for_max_constant. Handle - UNSPEC CONSTs. - -2011-01-21 Jeff Law - - PR tree-optimization/47053 - * tree-ssa-dse.c (need_eh_cleanup): New bitmap. - (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when - statements are deleted. - (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP - is nonempty, then purge dead edges and cleanup the CFG. - -2011-01-21 Alexandre Oliva - - PR debug/47402 - Temporarily revert: - 2011-01-21 Alexandre Oliva - PR debug/47106 - * tree-dfa.c (create_var_ann): Mark variable as used. - -2011-01-21 Jakub Jelinek - - PR middle-end/45566 - * except.c (convert_to_eh_region_ranges): Emit queued no-region - notes from other section in hot/cold partitioning even if - last_action is -3. Increment call_site_base. - - PR rtl-optimization/47366 - * fwprop.c (forward_propagate_into): Return bool. If - any changes are made, -fnon-call-exceptions is used and - REG_EH_REGION note is present, call purge_dead_edges - and return true if it purged anything. - (fwprop_addr): Adjust callers, call cleanup_cfg (0) if - any EH edges were purged. - -2011-01-21 Jeff Law - - PR rtl-optimization/41619 - * caller-save.c (setup_save_areas): Break out code to determine - which hard regs are live across calls by examining the reload chains - so that it is always used. - Eliminate code which checked REG_N_CALLS_CROSSED. - -2011-01-21 Jakub Jelinek - - PR tree-optimization/47355 - * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if - NOP has non-debug uses beyond PHIs in new_bb. - -2011-01-21 Alexandre Oliva - - PR debug/47106 - * cfgexpand.c (account_used_vars_for_block): Only account vars - that are annotated as used. - (estimated_stack_frame_size): Don't set TREE_USED. - * tree-dfa.c (create_var_ann): Mark variable as used. - -2011-01-21 Richard Guenther - - PR middle-end/47395 - * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name. - -2011-01-21 Richard Guenther - - PR tree-optimization/47365 - * tree-ssa-sccvn.h (vn_lookup_kind): Declare. - (vn_reference_lookup_pieces): Adjust. - (vn_reference_lookup): Likewise. - * tree-ssa-sccvn.c (vn_walk_kind): New static global. - (vn_reference_lookup_3): Only look through kills if in - VN_WALKREWRITE mode. - (vn_reference_lookup_pieces): Adjust. - (vn_reference_lookup): Likewise. - (visit_reference_op_load): Likewise. - (visit_reference_op_store): Likewise. - * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode. - (compute_avail): Likewise. - (eliminate): Likewise. - -2011-01-21 Jakub Jelinek - - * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove - DECL_IGNORED_P non-reg vars if they are used. - - PR tree-optimization/47391 - * varpool.c (const_value_known_p): Return false if - decl is volatile. - -2011-01-21 Kai Tietz - - PR bootstrap/47215 - * config/i386/i386.c (ix86_local_alignment): Handle - case for va_list_type_node is nil. - (ix86_canonical_va_list_type): Likewise. - -2011-01-21 Alan Modra - - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add - builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__. - -2011-01-20 Ramana Radhakrishnan - - * config/arm/arm.md (define_attr type): Rename f_load - and f_store to f_fpa_load and f_fpa_store. Update. - (write_conflict): Deal with rename fallout. - (*push_fp_multi): Likewise. - * config/arm/fpa.md (f_load): Use f_fpa_load. - (f_store): Use f_fpa_store. - (*movsf_fpa): Likewise. - (*movdf_fpa): Likewise. - (*movxf_fpa): Likewise. - (*thumb2_movsf_fpa): Likewise. - (*thumb2_movdf_fpa): Likewise. - (*thumb2_movxf_fpa): Likewise. - * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to - f_loadd and f_stored. - (*thumb2_movdi_vfp): Likewise. - (*thumb2_movsf_vfp): Fix attribute to f_loads. - (*thumb2_movsi_vfp): Likewise. - * config/arm/cortex-m4-fpu.md (cortex_m4_f_load): - Use f_loads instead of f_load. - * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load. - -2011-01-20 Anatoly Sokolov - - * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. - * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove. - * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. - (xtensa_mode_dependent_address_p): New function. - (constantpool_address_p): Make static. Change return type to bool. - Change argument type to const_rtx. Use CONST_INT_P predicate. - -2011-01-20 Alexandre Oliva - - PR debug/46583 - * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls. - -2011-01-20 Jakub Jelinek - - PR debug/47283 - * cfgexpand.c (expand_debug_expr): Instead of generating - (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF - etc. handling. - -2011-01-20 Richard Guenther - - PR middle-end/47370 - * tree-inline.c (remap_gimple_op_r): Recurse manually for - the pointer operand of MEM_REFs. - -2011-01-20 Jakub Jelinek - - PR tree-optimization/46130 - * ipa-split.c (consider_split): If return_bb contains non-virtual - PHIs other than for retval or if split_function would not adjust it, - refuse to split. - -2011-01-20 Richard Guenther - - PR tree-optimization/47167 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): - Revert previous change, only avoid enumeral type changes. - -2011-01-19 Mike Stump - - * doc/tm.texi.in (BRANCH_COST): Englishify. - * doc/tm.texi (BRANCH_COST): Likewise. - -2011-01-19 Dodji Seketeli - - PR c++/47291 - * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen) - (gen_scheduled_generic_parms_dies): New functions. - (gen_struct_or_union_type_die): Schedule template parameters DIEs - generation for the end of CU compilation. - (dwarf2out_finish): Generate template parameters DIEs here. - -2011-01-19 Alexandre Oliva - - PR debug/46240 - * tree-into-ssa.c (maybe_register_def): Do not attempt to add - debug bind stmt on merge edges. - -2011-01-19 Alexandre Oliva - - PR debug/47079 - PR debug/46724 - * function.c (instantiate_expr): Instantiate incoming rtl of - implicit arguments, and recurse on VALUE_EXPRs. - (instantiate_decls): Instantiate rtl and VALUE_EXPR of result. - * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx. - -2011-01-19 Alexandre Oliva - - * c-parser.c (c_parser_for_statement): Initialize - collection_expression. - -2011-01-19 Joseph Myers - - * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}. - -2011-01-19 Joseph Myers - - * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove. - (LINK_SHLIB_SPEC): Don't use %(link_path). - (SUBTARGET_EXTRA_SPECS): Remove link_path. - -2011-01-19 Joseph Myers - - * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional. - (NO_SHARED_LIB_SUPPORT): Remove. - (LINK_SHLIB_SPEC): Remove one conditional definition. - -2011-01-19 Joseph Myers - - * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared} - %{call_shared}. - * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}. - * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}. - * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared} - %{call_shared} and conditionals on these options not being passed. - * config/mips/sde.h (LINK_SPEC): Remove %{non_shared} - %{call_shared}. - -2011-01-19 Jakub Jelinek - - * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge, - simplify. - - * ipa-split.c: Spelling fixes. - -2011-01-19 Richard Henderson - - * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand. - (*mulsi3): Likewise. - - * longlong.h [__mn10300__] (count_leading_zeros): New. - [__mn10300__] (umul_ppmm, smul_ppmm): New. - [__mn10300__] (add_ssaaaa, subddmmss): New. - [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New. - [__mn10300__] (UMUL_TIME, UDIV_TIME): New. - -2011-01-19 Ulrich Weigand - - * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case. - -2011-01-19 Richard Henderson - - * config/mn10300/mn10300.md (addsi3_flags): New. - (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New. - (subsi3_flags, subc_internal, subdi3): New. - (subdi3_internal, *subdi3_degenerate): New. - * config/mn10300/predicates.md (reg_or_am33_const_operand): New. - - * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New. - (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn. - (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once. - * config/mn10300/mn10300-protos.h: Update. - * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn. - (return_ret): Likewise. Rename from return_internal_regs. - (return_internal): Remove. - - * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove. - (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL. - (mn10300_legitimate_constant_p): Likewise. - (mn10300_can_use_return_insn): Use mn10300_initial_offset. - (mn10300_frame_size): New. - (mn10300_expand_prologue): Use it. - (mn10300_expand_epilogue): Likewise. - (mn10300_initial_offset): Likewise. - * config/mn10300/mn10300-protos.h: Update. - * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove. - * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove. - (prologue, epilogue, return_internal): Tidy output code. - (mn10300_store_multiple_operation, return): Likewise. - (int_label, pop_pic_reg, GOTaddr2picreg): Remove. - (am33_loadPC, mn10300_loadPC, call_next_insn): Remove. - (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove. - (load_pic, am33_load_pic): New. - (mn10300_load_pic0, mn10300_load_pic1): New. - - * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes. - * config/mn10300/mn10300.c (CC_FLAG_Z): New. - (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New. - (cc_flags_for_mode, cc_flags_for_code): New. - (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the - overflow flag is not valid. Validate that the flags we need - for the comparison are valid. - (mn10300_output_cmp): Remove. - (mn10300_output_add): New. - (mn10300_select_cc_mode): Use cc_flags_for_code. - (mn10300_split_cbranch): New. - (mn10300_match_ccmode): New. - (mn10300_split_and_operand_count): New. - * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments - to the function. - * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge... - (addsi3): ... here. Use mn10300_output_add. - (*addsi3_flags): New. - (*am33_subsi3, *mn10300_subsi3): Merge... - (subsi3): ... here. Use attribute isa. - (*subsi3_flags): New. - (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC - when possible. - (*am33_andsi3, *mn10300_andsi3): Merge... - (andsi3): ... here. - (*andsi3_flags): New. - (andsi3 splitters): New. - (*am33_iorsi3, *mn10300_iorsi3): Merge... - (iorsi3): ... here. - (*iorsi3_flags): New. - (*am33_xorsi3, *mn10300_xorsi3): Merge... - (xorsi3): ... here. - (*xorsi3_flags): New. - (*am33_cmpsi2, *mn10300_cmplsi2): Merge... - (one_cmplsi2): ... here. - (*one_cmplsi2_flags): New. - (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r" - instead of "dax" in constraints. Use mn10300_split_cbranch. - (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not - use matching constraints to eliminate a self-comparison. - (*integer_conditional_branch): Rename from integer_conditional_branch. - Use int_mode_flags to match CC_REG. - (*cbranchsi4_btst, *btstsi): New. - (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use - mn10300_split_cbranch. - (*am33_cmpsf): Rename from am33_cmpsf. - (*float_conditional_branch): Rename from float_conditional_branch. - (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge... - (zero_extendqisi2): ... here. - (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge... - (zero_extendhisi2): ... here. - (*extendqisi2_am33, *extendqisi2_mn10300): Merge... - (extendqisi2): ... here. - (*extendhisi2_am33, *extendhisi2_mn10300): Merge... - (extendhisi2): ... here. - (*am33_ashlsi3, *mn10300_ashlsi3): Merge... - (ashlsi3): ... here. - (*am33_lshrsi3, *mn10300_lshrsi3): Merge... - (lshrsi3): ... here. - (*am33_ashrisi3, *mn10300_ashrsi3): Merge... - (ashrsi3): ... here. - (consecutive add peephole): Remove. - * config/mn10300/predicates.md (label_ref_operand): New. - (int_mode_flags): New. - (CCZN_comparison_operator): New. - - * config/mn10300/mn10300.md (UNSPEC_EXT): New. - (throughput_42_latency_43): New reservation. - (mulsidi3, umulsidi3): New expanders. - (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose - the MDR register to allocation; separately allocate the low and - high parts of the DImode result. - (umulsidi3_internal): Similarly. - (*am33_mulsi3, *mn10300_mulsi3): Merge into ... - (*mulsi3): ... here. Clobber MDR as a scratch as necessary. - (udivsi3, umodsi3): Remove. - (udivmodsi4, divmodsi4): New expanders. - (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly. - (*divmodsi4): Simiarly. - (ext_internal): New. - - * config/mn10300/constraints.md ("z"): New constraint. - * config/mn10300/mn10300.h (MDR_REGNUM): Remove. - (FIXED_REGISTERS): Don't fix MDR. - (CALL_USED_REGSITERS): Reformat nicely. - (REG_ALLOC_ORDER): Add MDR. - (enum regclass): Add MDR_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match. - (IRA_COVER_CLASSES): Add MDR_REGS. - (REGNO_REG_CLASS): Handle MDR_REG. - * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS. - (mn10300_register_move_cost): Likewise. - * config/mn10300/mn10300.md (MDR_REG): New. - (*movsi_internal): Handle moves to/from MDR_REGS. - - * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle - POST_MODIFY. - (mn10300_secondary_reload): Tidy combination reload classes. - (mn10300_legitimate_address_p): Allow post-modify and reg+reg - addresses for AM33. Allow symbolic offsets for reg+imm. - (mn10300_regno_in_class_p): New. - (mn10300_legitimize_reload_address): New. - * config/mn10300/mn10300.h (enum reg_class): Remove - DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS, - SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add - SP_OR_GENERAL_REGS. - (REG_CLASS_NAMES): Update to match. - (REG_CLASS_CONTENTS): Likewise. - (INDEX_REG_CLASS): Use GENERAL_REGS for AM33. - (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33. - (REGNO_IN_RANGE_P): Remove. - (REGNO_DATA_P): Use mn10300_regno_in_class_p. - (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise. - (REGNO_STRICT_OK_FOR_BASE_P): Likewise. - (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise. - (REGNO_STRICT_OK_FOR_INDEX_P): Likewise. - (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove. - (REGNO_GENERAL_P): New. - (HAVE_POST_MODIFY_DISP): New. - (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New. - (LEGITIMIZE_RELOAD_ADDRESS): New. - * config/mn10300/mn10300-protos.h: Update. - - * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow - DATA_REGS for AM33 stack-pointer destination. - (mn10300_preferred_output_reload_class): Likewise. - (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class - into a form appropriate for ... - (TARGET_SECONDARY_RELOAD): New. - * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove. - * config/mn10300/mn10300-protos.h: Update. - * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from - reload_insi; use the "A" constraint for the scratch; handle AM33 - moves of sp to non-address registers. - - * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into - (*movqi_internal): ... here. - (*am33_movhi, *mn10300_movhi): Merge into... - (*movhi_internal): ... here. - (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A" - as the source/destination of moves from/to SP. - (movsf): Only allow for AM33-2. - (*movsf_internal): Use "r" instead of "dax"; use "F" instead of - any integer constant constraint. Only allow for AM33-2. Tidy - all of the alternative outputs. - (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove. - (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow - for MN103. - (udivsi3, umodsi3): New patterns for MN103 only. - -2011-01-19 Joern Rennecke - - * doc/tm.texi.in: Spell out that a lack of register class unions - can lead to ICEs. - * doc/tm.texi: Regenerate. - -2011-01-19 Jakub Jelinek - - PR rtl-optimization/47337 - * dce.c (check_argument_store): New function. - (find_call_stack_args): Ignore debug insns. Use check_argument_store. - - PR tree-optimization/47290 - * tree-eh.c (infinite_empty_loop_p): New function. - (cleanup_empty_eh): Use it. - -2011-01-18 Steve Ellcey - - PR target/46997 - * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN. - (a64_expand_widen_sum): Ditto. - * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN. - (vec_extract_evenodd_help): Ditto. - (vec_extract_evenv4hi): Ditto. - (vec_extract_oddv4hi): Ditto. - (vec_extract_evenv2si): Ditto. - (vec_extract_oddv2si): Ditto. - (vec_extract_evenv2sf): Ditto. - (vec_extract_oddv2sf): Ditto. - (vec_pack_trunc_v4hi: Ditto. - (vec_pack_trunc_v2si): Ditto. - (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN. - (vec_interleave_highv8qi): Ditto. - (mix1_r): Ditto. - (vec_extract_oddv8qi): Ditto. - (vec_interleave_lowv4hi): Ditto. - (vec_interleave_highv4hi): Ditto. - (vec_interleave_lowv2si): Ditto. - (vec_interleave_highv2si): Ditto. - -2011-01-18 John David Anglin - - * doc/extend.texi: Mention __float128 support on hppa HP-UX. - * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1. - * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h". - (pa_c_mode_for_suffix): New. - (TARGET_EXPAND_BUILTIN): Define. - (TARGET_C_MODE_FOR_SUFFIX): Define. - (pa_builtins): Define. - (pa_init_builtins): Register __float128 type and init new support - builtins. - * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined. - * config/pa/quadlib.c (_U_Qfcopysign): New. - -2011-01-18 Eric Botcazou - - PR middle-end/46894 - * explow.c (allocate_dynamic_stack_space): Do not assume more than - BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET - are defined. - -2011-01-18 Ulrich Weigand - - PR tree-optimization/47179 - * config/spu/spu.c (spu_ref_may_alias_errno): New function. - (TARGET_REF_MAY_ALIAS_ERRNO): Define. - -2011-01-18 Richard Guenther - - PR rtl-optimization/47216 - * emit-rtl.c: Include tree-flow.h. - (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead - of replicating it with different semantics. - * Makefile.in (emit-rtl.o): Adjust. - -2011-01-18 Ramana Radhakrishnan - - * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include. - (cortex_a9_dp): Handle neon types correctly. - -2011-01-18 Jakub Jelinek - - PR rtl-optimization/47299 - * expr.c (expand_expr_real_2) : Don't use - subtarget. Use normal multiplication if both operands are constants. - * expmed.c (expand_widening_mult): Don't try to optimize constant - multiplication if op0 has VOIDmode. Convert op1 constant to mode - before using it. - -2011-01-17 Ralf Wildenhues - - * doc/lto.texi (LTO): Ensure two spaces after period. Fix - spacing after 'e.g.', typos, comma, hyphenation. - -2011-01-17 Richard Henderson - - * config/rx/predicates.md (rx_constshift_operand): Use match_test. - (rx_restricted_mem_operand): New. - (rx_shift_operand): Use register_operand. - (rx_source_operand, rx_compare_operand): Likewise. - * config/rx/rx.md (addsi3_flags): New expander. - (adddi3): Rewrite as expander. - (adc_internal, *adc_flags, adddi3_internal): New patterns. - (subsi3_flags): New expander. - (subdi3): Rewrite as expander. - (sbb_internal, *sbb_flags, subdi3_internal): New patterns. - - * config/rx/rx.c (RX_BUILTIN_SAT): Remove. - (rx_init_builtins): Remove sat builtin. - (rx_expand_builtin): Likewise. - * config/rx/rx.md (ssaddsi3): New. - (*sat): Rename from sat. Represent the CC_REG input. - - * config/rx/predicates.md (rshift_operator): New. - * config/rx/rx.c (rx_expand_insv): Remove. - * config/rx/rx-protos.h: Update. - * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift - operand to the canonical position. - (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly. - (*bitclr, *bitclr_in_memory): Similarly. - (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New. - (insv): Retain the zero_extract in the expansion. - - * config/rx/rx.md (bswapsi2): Use = not + for output reload. - (bswaphi2, bitinvert, revw): Likewise. - - * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET. - (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. - * config/rx/rx.md (pop_and_return): Use VOIDmode for SET. - (stack_push, stack_pushm, stack_pop, stack_popm): Likewise. - (bitset, bitset_in_memory): Likewise. - (bitinvert, bitinvert_in_memory): Likewise. - (bitclr, bitclr_in_memory): Likewise. - (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise. - (rx_strend, rx_cmpstrn): Likewise. - (rx_setmem): Likewise. Make the source BLKmode to match the dest. - (bitop peep2 patterns): Remove. - - * config/rx/rx.c (rx_match_ccmode): New. - * config/rx/rx-protos.h: Update. - * config/rx/rx.md (abssi2): Clobber, don't set flags. - (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise. - (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise. - (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise. - (fix_truncsfsi2, floatsisf2): Likewise. - (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New. - (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New. - (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New. - (*subsi3_flags, *xorsi3_flags): New. - - * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns. - - * config/rx/rx.c (rx_print_operand): Remove workaround for - unsplit comparison operations. - - * config/rx/rx.md (movsicc): Split after reload. - (*movsicc): Merge *movsieq and *movsine via match_operator. - (*stcc): New pattern. - - * config/rx/rx.c (rx_float_compare_mode): Remove. - * config/rx/rx.h (rx_float_compare_mode): Remove. - * config/rx/rx.md (cstoresi4): Split after reload. - (*sccc): New pattern. - - * config/rx/predicates.md (label_ref_operand): New. - (rx_z_comparison_operator): New. - (rx_zs_comparison_operator): New. - (rx_fp_comparison_operator): New. - * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes. - Validate that the flags are set properly for the comparison. - (rx_gen_cond_branch_template): Remove. - (rx_cc_modes_compatible): Remove. - (mode_from_flags): New. - (flags_from_code): Rename from flags_needed_for_conditional. - (rx_cc_modes_compatible): Re-write in terms of flags_from_mode. - (rx_select_cc_mode): Likewise. - (rx_split_fp_compare): New. - (rx_split_cbranch): New. - * config/rx/rx.md (most_cond, zs_cond): Remove iterators. - (*cbranchsi4): Use match_operator and rx_split_cbranch. - (*cbranchsf4): Similarly. - (*cbranchsi4_tst): Rename from *tstbranchsi4_. Use - match_operator and rx_split_cbranch. - (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and - tstbranchsi4m_ne. Use match_operator and rx_split_cbranch. - (*cmpsi): Rename from cmpsi. - (*tstsi): Rename from tstsi. - (*cmpsf): Rename from cmpsf; use CC_Fmode. - (*conditional_branch): Rename from conditional_branch. - (*reveresed_conditional_branch): Remove. - (b): Remove expander. - * config/rx/rx-protos.h: Update. - - * config/rx/rx.c (rx_compare_redundant): Remove. - * config/rx/rx.md (cmpsi): Don't use it. - * config/rx/rx-protos.h: Update. - - * config/rx/rx-modes.def (CC_F): New mode. - * config/rx/rx.c (rx_select_cc_mode): New. - * config/rx/rx.h (SELECT_CC_MODE): Use it. - * config/rx/rx-protos.h: Update. - -2011-01-17 Richard Henderson - - * except.c (dump_eh_tree): Fix stray ; after for statement. - -2011-01-17 Richard Guenther - - PR tree-optimization/47313 - * tree-inline.c (tree_function_versioning): Move DECL_RESULT - handling before copying the body. Properly deal with - by-reference result in SSA form. - -2011-01-17 Ian Lance Taylor - - PR target/47219 - * config/sparc/sparc.c (sparc_sr_alias_set): Don't define. - (struct_value_alias_set): Don't define. - (sparc_option_override): Don't set sparc_sr_alias_set and - struct_value_alias_set. - (save_or_restore_regs): Use gen_frame_mem rather than calling - set_mem_alias_set. - (sparc_struct_value_rtx): Likewise. - -2011-01-17 H.J. Lu - - PR target/47318 - * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i. - (_mm_maskstore_pd): Likewise. - (_mm_maskload_ps): Likewise. - (_mm_maskstore_ps): Likewise. - (_mm256_maskload_pd): Change mask to __m256i. - (_mm256_maskstore_pd): Likewise. - (_mm256_maskload_ps): Likewise. - (_mm256_maskstore_ps): Likewise. - - * config/i386/i386-builtin-types.def: Updated. - (ix86_expand_special_args_builtin): Likewise. - - * config/i386/i386.c (bdesc_special_args): Update - __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps, - __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256, - __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps, - __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256. - - * config/i386/sse.md (avx_maskload): - Use on mask register. - (avx_maskstore): Likewise. - -2011-01-17 Olivier Hainque - Michael Haubenwallner - Eric Botcazou - - PR target/46655 - * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only - if <= USHRT_MAX in 32-bit mode. - -2011-01-17 Ralf Wildenhues - - * doc/install.texi (Configuration, Specific): Wrap long - lines in examples. Allow line wrapping in long options - and URLs where beneficial for PDF output. - -2011-01-16 Richard Sandiford - - * config/mips/mips.c (mips_classify_symbol): Don't return - SYMBOL_PC_RELATIVE for nonlocal labels. - -2011-01-15 Eric Botcazou - - * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo. - -2011-01-15 Jan Hubicka - - PR tree-optimization/47276 - * ipa.c (function_and_variable_visibility): Do not try to mark alias - declarations as needed. - -2011-01-15 Martin Jambor - - * common.opt (fdevirtualize): New flag. - * doc/invoke.texi (Option Summary): Document it. - * opts.c (default_options_table): Add devirtualize flag. - * ipa-prop.c (detect_type_change): Return immediately if - devirtualize flag is not set. - (detect_type_change_ssa): Likewise. - (compute_known_type_jump_func): Likewise. - (ipa_analyze_virtual_call_uses): Likewise. - -2011-01-14 Martin Jambor - - PR tree-optimization/45934 - PR tree-optimization/46302 - * ipa-prop.c (type_change_info): New type. - (stmt_may_be_vtbl_ptr_store): New function. - (check_stmt_for_type_change): Likewise. - (detect_type_change): Likewise. - (detect_type_change_ssa): Likewise. - (compute_complex_assign_jump_func): Check for dynamic type change. - (compute_complex_ancestor_jump_func): Likewise. - (compute_known_type_jump_func): Likewise. - (compute_scalar_jump_functions): Likewise. - (ipa_analyze_virtual_call_uses): Likewise. - (ipa_analyze_node): Push and pop cfun, set current_function_decl. - -2011-01-14 Joseph Myers - - * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5. - * config/i386/i386.opt (msse5): New Alias. - -2011-01-14 Joseph Myers - - * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}. - * config/sparc/linux64.h (CC1_SPEC): Likewise. - * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. - * config/sparc/sparc.h (CC1_SPEC): Likewise. - -2011-01-14 Joseph Myers - - * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of - -mcpu options. - * config/sparc/linux64.h (CC1_SPEC): Likewise. - * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. - * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise. - * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC): - Likewise. - * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8. - -2011-01-14 Joseph Myers - - * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi. - -2011-01-14 Mike Stump - - * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set. - * config/fr30/fr30.md: Likweise - (movsi_push): Likewise. - (movsi_pop): Likewise. - (enter_func): Likewise. - * config/moxie/moxie.md (movsi_push): Likewise. - (movsi_pop): Likewise. - -2011-01-14 Joseph Myers - - * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum} - %{no_archive} %{exact_version}. - * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}. - * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum} - %{no_archive} %{exact_version}. - * config/mips/openbsd.h (LINK_SPEC): Likewise. - * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}. - * config/mips/vxworks.h: Likewise. - -2011-01-14 Joseph Myers - - * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}. - -2011-01-14 Joseph Myers - - * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC, - ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove. - -2011-01-14 Joseph Myers - - * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not - -nodefaultlib. - -2011-01-14 Joseph Myers - - * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check - for mcpu not cpu. - * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC, - CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu - not cpu. - (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options. - Don't handle -shlib. - -2011-01-14 Joseph Myers - - * config/avr/avr.h (CPP_SPEC): Don't handle -posix. - (CC1_SPEC): Don't handle -profile. - -2011-01-14 Joseph Myers - - * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec. - * config/mips/mips.h (CC1_SPEC): Likewise. - -2011-01-14 Joseph Myers - - * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }. - * config/mips/mips.h (CC1_SPEC): Likewise. - -2011-01-14 Joseph Myers - - * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional. - * config/m32r/linux.h (LINK_SPEC): Likewise. - * config/mips/linux.h (LINK_SPEC): Likewise. - * config/mips/linux64.h (LINK_SPEC): Likewise. - * config/sparc/linux.h (LINK_SPEC): Likewise. - * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, - LINK_SPEC): Likewise. - * config/xtensa/linux.h (LINK_SPEC): Likewise. - -2011-01-14 Joseph Myers - - * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove - %{version:-v}. - * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise. - -2011-01-14 Joseph Myers - - * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}. - * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. - -2011-01-14 Joseph Myers - - * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}. - -2011-01-14 Rainer Orth - - * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always - supports -Bstatic/-Bdynamic. - * configure: Regenerate. - -2011-01-14 Jan Hubicka - Jack Howarth - - PR target/46037 - * config/darwin.c (darwin_override_options): Honor flag_gtoggle - when checking debug_info_level. Test write_symbols instead of - debug_hooks->var_location when setting flag_var_tracking_uninit. - -2011-01-14 Richard Guenther - - PR tree-optimization/47179 - * target.def (ref_may_alias_errno): New target hook. - * targhooks.h (default_ref_may_alias_errno): Declare. - * targhooks.c: Include tree-ssa-alias.h and tree-flow.h. - (default_ref_may_alias_errno): New function. - * target.h (struct ao_ref_s): Declare. - * tree-ssa-alias.c: Include target.h. - (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook. - * Makefile.in (tree-ssa-alias.o): Adjust dependencies. - (targhooks.o): Likewise. - * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document. - * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation. - -2011-01-14 Richard Guenther - - * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER. - -2011-01-14 Richard Guenther - - PR tree-optimization/47280 - * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and - return CFG changes. - (tree_ssa_forward_propagate_single_use_vars): Deal with - CFG changes from associate_plusminus. - -2011-01-14 Richard Guenther - - PR middle-end/47281 - Revert - 2011-01-11 Richard Guenther - - PR tree-optimization/46076 - * tree-ssa.c (useless_type_conversion_p): Conversions from - unprototyped to empty argument list function types are useless. - -2011-01-14 Richard Guenther - - PR tree-optimization/47286 - * tree-ssa-structalias.c (new_var_info): Register variables are global. - -2011-01-14 Martin Jambor - - PR middle-end/46823 - * tree-inline.c (expand_call_inline): Get fndecl from call graph edge. - -2011-01-13 Anatoly Sokolov - - * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE, - LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. - * config/xtensa/xtensa.c (xtensa_libcall_value, - xtensa_function_value_regno_p): New functions. - (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. - -2011-01-13 Kai Tietz - - PR c++/47213 - * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY): - PE specific hook. - * config/i386/i386-protos.h (i386_pe_assemble_visibility): - New function prototype. - * config/i386/winnt.c (i386_pe_assemble_visibility): - Warn only if attribute was specified by user. - -2011-01-13 Michael Meissner - - PR target/47251 - * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware - floating point. - (floatunsdidf2_fcfidu): Ditto. - -2011-01-13 Andreas Krebbel - - * config/s390/s390.c (print_operand_address): Replace 'error' with - 'output_operand_lossage'. - (print_operand): Likewise. - -2011-01-13 Jeff Law - - PR rtl-optimization/39077 - * doc/invoke.texi (max-gcse-insertion-ratio): Document. - * params.h (MAX_GCSE_INSERTION_RATIO): Define. - * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define. - * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps. - * gcse.c (prune_insertions_deletions): New function. - (compute_pre_data): Use it. - -2011-01-13 Dodji Seketeli - - PR debug/PR46973 - * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New - static function. - (prune_unused_types_mark): Use it. - -2011-01-13 Andrey Belevantsev - - PR rtl-optimization/45352 - * sel-sched.c: Update copyright years. - (reset_sched_cycles_in_current_ebb): Also recheck the DFA state - in the advancing loop when we have issued issue_rate insns. - -2011-01-12 Richard Henderson - - * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New. - (TARGET_MD_ASM_CLOBBERS): New. - - * config/mn10300/mn10300.c (mn10300_delegitimize_address): New. - (TARGET_DELEGITIMIZE_ADDRESS): New. - - * config/mn10300/mn10300.md (UNSPEC_BSCH): New. - (clzsi2, *bsch): New patterns. - - * config/mn10300/mn10300.md (INT): New mode iterator. - (*mov_clr): New pattern, and peep2 to generate it. - - * config/mn10300/mn10300.c (mn10300_option_override): Force enable - flag_split_wide_types. - - * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove. - (mn10300_trampoline_init): Rewrite without a template, an immediate - load and a direct branch. - * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16. - -2011-01-12 Anatoly Sokolov - - * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove. - * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove. - * config/s390/s390.c (s390_output_addr_const_extra): Make static. - (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. - -2011-01-12 Kai Tietz - - PR debug/47209 - * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT - of type. - -2011-01-12 Jan Hubicka - - PR driver/47244 - * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used. - (PLUGIN_COND_CLOSE): New macro. - (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE. - -2011-01-12 Richard Guenther - - PR lto/47259 - * lto-streamer-out.c (output_gimple_stmt): Do not wrap - register variables in a MEM_REF. - -2011-01-12 Joseph Myers - - * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*, - crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*, - hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* | - i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | - i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, - x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu, - ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*, - m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*, - mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*, - s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*, - sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*, - am33_2.0-*-linux*): Use gnu-user.h before linux.h. - * config/gnu-user.h: New. Copied from linux.h. - (LINUX_TARGET_STARTFILE_SPEC): Rename to - GNU_USER_TARGET_STARTFILE_SPEC. - (LINUX_TARGET_ENDFILE_SPEC): Rename to - GNU_USER_TARGET_ENDFILE_SPEC. - (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC. - (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC. - (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, - LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1, - CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, - UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, - BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32, - BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64, - TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove. - * config/arm/linux-eabi.h (CC1_SPEC): Use - GNU_USER_TARGET_CC1_SPEC. - (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC. - (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC. - (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC - * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF, - LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC, - LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC, - CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC, - LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove. - -2011-01-12 Richard Guenther - - PR other/46946 - * doc/invoke.texi (ffast-math): Document it is turned on - with -Ofast. - -2011-01-12 Jan Hubicka - - PR tree-optimization/47233 - * opts.c (common_handle_option): Disable ipa-reference with profile - feedback. - -2011-01-12 Nicola Pero - - * c-parser.c (c_parser_objc_at_property_declaration): Improved - error message. - -2011-01-12 Nicola Pero - - * c-parser.c (c_lex_one_token): Updated and reindented some - comments. No changes in code. - -2011-01-11 Ian Lance Taylor - - * godump.c (go_output_var): Don't output the variable if there is - already a type with the same name. - -2011-01-11 Ian Lance Taylor - - * godump.c (go_format_type): Don't generate float80. - -2011-01-11 Richard Henderson - - * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward - declaration. Rewrite for both speed and size. - (mn10300_address_cost_1): Remove. - (mn10300_register_move_cost): New. - (mn10300_memory_move_cost): New. - (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle - ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare, - extensions, shifts, BSWAP, CLZ. - (mn10300_wide_const_load_uses_clr): Remove. - (TARGET_REGISTER_MOVE_COST): New. - (TARGET_MEMORY_MOVE_COST): New. - * config/mn10300/mn10300-protos.h: Update. - * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove. - - * config/mn10300/constraints.md ("R", "T"): Remove constraints. - * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove. - * config/mn10300/mn10300-protos.h: Update. - * config/mn10300/mn10300.md (movsi_internal): Don't use "R". - (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove. - (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove. - (*test_int_bitfield, *test_byte_bitfield): Remove. - (*bit_test, *subreg_bit_test): Remove. - * config/mn10300/predicates.md (const_8bit_operand): Remove. - - * config/mn10300/constraints.md ("c"): Rename from "A". - ("A", "D"): New constraint letters. - * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint. - (fmssf4, fnmasf4, fnmssf4): Likewise. - - * config/mn10300/mn10300.md (isa): New attribute. - (enabled): New attribute. - - * config/mn10300/mn10300.md (absdf2, negdf2): Remove. - (abssf2, negsf2): Define only for hardware fp. - (sqrtsf2): Reformat. - (addsf3, subsf3, mulsf3): Merge expander and insn. - - * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New. - (DEBUGGER_AUTO_OFFSET): Remove. - (DEBUGGER_ARG_OFFSET): Remove. - - * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static. - Emit register stores with the same offsets as the hardware. - (mn10300_store_multiple_operation): Don't check that the register - save offsets are monotonic. - * config/mn10300/mn10300-protos.h: Update. - - * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete. - - * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define - in terms of the value on the stack, not the MDR register. - -2011-01-11 Jan Hubicka - - PR lto/45721 - PR lto/45375 - * tree.h (symbol_alias_set_t): Move typedef here from varasm.c - (symbol_alias_set_destroy, symbol_alias_set_contains, - propagate_aliases_backward): Declare. - * lto-streamer-out.c (struct sets): New sturcture. - (trivally_defined_alias): New function. - (output_alias_pair_p): Rewrite. - (output_unreferenced_globals): Fix output of alias pairs. - (produce_symtab): Likewise. - * ipa.c (function_and_variable_visibility): Set weak alias destination - as needed in lto. - * varasm.c (symbol_alias_set_t): Remove. - (symbol_alias_set_destroy): Export. - (propagate_aliases_forward, propagate_aliases_backward): New functions - based on ... - (compute_visible_aliases): ... this one; remove. - (trivially_visible_alias): New - (trivially_defined_alias): New. - (remove_unreachable_alias_pairs): Rewrite. - (finish_aliases_1): Reorganize code checking if alias is defined. - * passes.c (rest_of_decl_compilation): Do not call assemble_alias when - in LTO mode. - -2011-01-11 Richard Guenther - - PR tree-optimization/46076 - * tree-ssa.c (useless_type_conversion_p): Conversions from - unprototyped to empty argument list function types are useless. - -2011-01-11 Richard Guenther - - PR middle-end/45235 - * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark - volatile MEMs as MEM_READONLY_P. - -2011-01-11 Richard Guenther - - PR tree-optimization/47239 - * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs. - -2011-01-11 Jeff Law - - PR tree-optimization/47086 - * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record - IVs from statements that might throw. - -2011-01-10 Jan Hubicka - - PR lto/45375 - * lto-cgraph.c (input_profile_summary): Remove overactive sanity check. - -2011-01-10 Jan Hubicka - - PR lto/45375 - * profile.c (read_profile_edge_counts): Ignore profile inconistency - when correcting profile. - -2011-01-10 Jan Hubicka - - PR lto/46083 - * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store - DECL_FINI_PRIORITY. - * lto-streamer-in.c (unpack_ts_function_decl_value_fields): - Restore DECL_FINI_PRIORITY. - -2011-01-10 Ralf Wildenhues - - * doc/gimple.texi: Fix quoting of multi-word return values in - @deftypefn statements. Ensure presence of return value. Wrap - overlong @deftypefn lines. - (is_gimple_operand, is_gimple_min_invariant_address): Remove - descriptions of removed functions. - * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting - of multi-word return value in @deftypefn statement. - -2011-01-10 Ralf Wildenhues - - * doc/gimple.texi (Temporaries, Operands, Compound Lvalues) - (Conditional Expressions, Logical Operators) - (Statement and operand traversals): Do not indent smallexample - code. Fix duplicate function argument in example. - -2011-01-10 Jeff Law - - PR tree-optimization/47141 - * ipa-split.c (split_function): Handle case where we are - returning a value and the return block has a virtual operand phi. - -2011-01-10 Jan Hubicka - - PR tree-optimization/47234 - * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO. - (pass_feedback_split_functions): Declare. - * passes.c (init_optimization_passes): Add ipa-split as subpass of - tree-profile. - * ipa-split.c (gate_split_functions): Update comments; disable - split-functions for profile_arc_flag and branch_probabilities. - (gate_feedback_split_functions): New function. - (execute_feedback_split_functions): New function. - (pass_feedback_split_functions): New global var. - -2011-01-10 H.J. Lu - - PR lto/46760 - * tree-inline.c (tree_can_inline_p): Check e->call_stmt before - calling gimple_call_set_cannot_inline. - -2011-01-10 Iain Sandoe - - * config/darwin-sections.def: Remove unused section. - -2011-01-10 Dave Korn - - PR c++/47218 - * cgraphunit.c (assemble_thunk): Call resolve_unique_section. - -2011-01-09 Nicola Pero - - PR objc/47232 - * c-parser.c (c_parser_declaration_or_fndef): Improved - error message. - -2011-01-09 Kai Tietz - - * config/i386/winnt.c (i386_pe_start_function): Make sure - to switch back to function's section. - -2011-01-09 Iain Sandoe - - PR gcc/46902 - PR testsuite/46912 - * plugin.c: Move include of dlfcn.h from here... - * system.h: ... to here. - -2011-01-09 Ralf Wildenhues - - * doc/cpp.texi (C++ Named Operators): Fix markup for header - file name. - * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid - two extra empty pages in PDF output. - -2011-01-08 Nicola Pero - - PR objc/47078 - * c-parser.c (c_parser_objc_type_name): If the type is unknown, - for error recovery purposes behave as if it was not specified so - that the default type is usd. - -2011-01-07 Jan Hubicka - - PR tree-optmization/46469 - * ipa.c (function_and_variable_visibility): Clear needed flags on - nodes with external decls; handle weakrefs merging correctly. - -2011-01-07 Joseph Myers - - * opts.c (finish_options): Set opts->x_flag_opts_finished to true, - not false. - -2011-01-07 Jan Hubicka - - * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults - and no longer claim that gold is required for linker plugin. - * configure: Regenerate. - * gcc.c (PLUGIN_COND): New macro. - (LINK_COMMAND_SPEC): Use it. - (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set. - * config.in (HAVE_LTO_PLUGIN): New. - * configure.ac (--with-lto-plugin): New parameter; autodetect - HAVE_LTO_PLUGIN. - -2011-01-07 Jan Hubicka - - PR tree-optimization/46367 - * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only - when we can update original. - (cgraph_mark_inline_edge): Sanity check. - * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check. - -2011-01-07 Ulrich Weigand - - * config/spu/spu.h (ASM_COMMENT_START): Define. - -2011-01-07 H.J. Lu - - PR driver/42445 - * gcc.c (%>S): New. - (SWITCH_KEEP_FOR_GCC): Likewise. - (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC. - (do_spec_1): Handle "%>". - - * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>". - -2011-01-07 Jakub Jelinek - - PR target/47201 - * config/i386/i386.c (ix86_delegitimize_address): If - simplify_gen_subreg fails, return orig_x. - - PR bootstrap/47187 - * value-prof.c (gimple_stringop_fixed_value): Handle - lhs of the call properly. - -2011-01-07 Jan Hubicka - - PR lto/45375 - * lto-opt.c (lto_reissue_options): Set flag_shlib. - -2011-01-07 Iain Sandoe - - * target.def (function_switched_text_sections): New hook. - * doc/tm.texi: Regenerated. - * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. - * final.c (default_function_switched_text_sections): New. - (final_scan_insn): Call function_switched_text_sections when a - mid-function section change occurs. - * output.h (default_function_switched_text_sections): Declare. - * config/darwin-protos.h (darwin_function_switched_text_sections): - Likewise. - * config/darwin.c (darwin_function_switched_text_sections): New. - * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. - -2011-01-07 Iain Sandoe - - * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for - DWARF >= 3. Add pubnames for the primary section and a reduced DIE for - the secondary code fragment when outputting for DWARF == 2. - -2011-01-07 Anatoly Sokolov - - * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove. - * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra): - Remove. - * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static. - (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. - -2011-01-06 Eric Botcazou - - PR debug/46704 - * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only - when it is not empty. - -2011-01-06 Changpeng Fang - - Bobcat Enablement - * config.gcc (i[34567]86-*-linux* | ...): Add btver1. - (case ${target}): Add btver1. - * config/i386/driver-i386.c (host_detect_local_cpu): Let - -march=native recognize btver1 processors. - * config/i386/i386-c.c (ix86_target_macros_internal): Add - btver1 def_and_undef - * config/i386/i386.c (struct processor_costs btver1_cost): New - btver1 cost table. - (m_BTVER1): New definition. - (m_AMD_MULTIPLE): Includes m_BTVER1. - (initial_ix86_tune_features): Add btver1 tune. - (processor_target_table): Add btver1 entry. - (static const char *const cpu_names): Add btver1 entry. - (software_prefetching_beneficial_p): Add btver1. - (ix86_option_override_internal): Add btver1 instruction sets. - (ix86_issue_rate): Add btver1. - (ix86_adjust_cost): Add btver1. - * config/i386/i386.h (TARGET_BTVER1): New definition. - (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1. - (enum processor_type): Add PROCESSOR_BTVER1. - * config/i386/i386.md (define_attr "cpu"): Add btver1. - -2011-01-06 Rainer Orth - - PR target/43309 - * config/i386/i386.c (legitimize_tls_address) - : Handle TARGET_64BIT && TARGET_SUN_TLS. - * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare. - (tls_initial_exec_64_sun): New pattern. - -2011-01-06 Gerald Pfeifer - - * doc/invoke.texi (Overall Options): Improve wording and markup - of the description of -wrapper. - -2011-01-06 Joseph Myers - - * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads, - rdynamic, threads): New Driver options. - -2011-01-06 Rainer Orth - - PR target/38118 - * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss - if coming from .tdata. - * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - -2011-01-06 Jan Hubicka - - PR lto/47188 - * collect2.c (main): Do not enable LTOmode when plugin is active. - -2011-01-06 Rainer Orth - - PR other/45915 - * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd - --version output if supported. - * configure: Regenerate. - -2011-01-06 Joseph Myers - - * config/linux-android.opt (tno-android-cc, tno-android-ld): New - Driver options. - -2011-01-06 Jakub Jelinek - - PR c/47150 - * c-convert.c (convert): When converting a complex expression - other than COMPLEX_EXPR to a different complex type, ensure - c_save_expr is called instead of save_expr, unless in_late_binary_op. - * c-typeck.c (convert_for_assignment): Set in_late_binary_op also - when converting COMPLEX_TYPE. - -2011-01-06 Ira Rosen - - PR tree-optimization/47139 - * tree-vect-loop.c (vect_is_simple_reduction_1): Check that - only the last reduction value is used outside the loop. Update - documentation. - -2011-01-05 Joseph Myers - - * config/rtems.opt: New. - * config.gcc (*-*-rtems*): Use rtems.opt. - -2011-01-05 Changpeng Fang - - * config/i386/i386.c (ix86_option_override_internal): Bulldozer - processors do not support 3DNow instructions. - -2011-01-05 Ulrich Weigand - - * config/spu/spu.c (spu_option_override): Set parameter - PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1. - -2011-01-05 Jan Hubicka - - * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified - at the command line. - -2011-01-05 Martin Jambor - - PR lto/47162 - * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk - deltas on streamed outgoing edges. - (output_node_opt_summary): Output info for outgoing edges only when - the node is in new parameter set. - (output_cgraph_opt_summary): New parameter set, passed to the two - aforementioned functions. Update its forward declaration and its - callee too. - -2011-01-05 Tom Tromey - - * c-parser.c (c_parser_omp_atomic): Pass location of assignment - operator to c_finish_omp_atomic. - * c-typeck.c (lvalue_or_else): Add 'loc' argument. - (build_unary_op): Update. - (build_modify_expr): Update. - (build_asm_expr): Update. - -2011-01-05 Ulrich Weigand - - * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for - newly inserted insns. - (pad_bb): Likewise. - (spu_emit_branch_hint): Likewise. - (insert_hbrp_for_ilb_runout): Likewise. - (spu_machine_dependent_reorg): Call df_finish_pass after - schedule_insns returns. - -2011-01-05 Ulrich Weigand - - * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage. - -2011-01-05 Eric Botcazou - - PR tree-optimization/47005 - * tree-sra.c (struct access): Add 'non_addressable' bit. - (create_access): Set it for a DECL_NONADDRESSABLE_P field. - (decide_one_param_reduction): Return 0 if the parameter is passed by - reference and one of the accesses in the group is non_addressable. - -2011-01-04 Eric Botcazou - - PR tree-optimization/47056 - * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers. - (mark_load): Likewise. Handle FUNCTION_DECL specially. - (mark_store): Likewise. Pass STMT to ipa_record_reference. - -2011-01-04 Eric Botcazou - - * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the - initializer. Skip view conversions from aggregate types. - -2011-01-04 Kai Tietz - - PR bootstrap/47055 - * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC. - -2011-01-04 Philipp Thomas - - * config/microblaze/microbalse.opt (mxl-float-convert): Fix - obvious typo. - -2011-01-04 Ulrich Weigand - - * function.c (thread_prologue_and_epilogue_insns): Do not crash - on empty epilogue sequences. - -2011-01-04 Joseph Myers - - * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now, - non-static): New Driver options. - -2011-01-04 Jie Zhang - - PR driver/47137 - * gcc.c (default_compilers[]): Set combinable field to 0 - for all assembly languages. - -2011-01-04 Mingjie Xing - - * config/mips/loongson3a.md: New file. - * config/mips/mips.md: Include loongson3a.md. - * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when - TUNE_LOONGSON_3A. - -2011-01-03 Eric Botcazou - - PR middle-end/47017 - * expr.c (expand_expr_real_1) : Call memory_address_addr_space - instead of convert_memory_address_addr_space on the base expression. - -2011-01-03 Ulrich Weigand - - * config/spu/spu.c (spu_option_override): Update error text - for bad -march= / -mtune= values. - -2011-01-03 Ulrich Weigand - - * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking - if branch-hint optimization will be performed. - -2011-01-03 Jakub Jelinek - - PR tree-optimization/47148 - * ipa-split.c (split_function): Convert arguments to - DECL_ARG_TYPE if possible. - - PR tree-optimization/47155 - * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type - when computing uns. - - PR rtl-optimization/47157 - * combine.c (try_combine): If undobuf.other_insn becomes - (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it - and set *new_direct_jump_p too. - -2011-01-03 Sebastian Pop - - PR tree-optimization/47021 - * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR. - -2011-01-03 Jakub Jelinek - - * gcc.c (process_command): Update copyright notice dates. - * gcov.c (print_version): Likewise. - * gcov-dump.c (print_version): Likewise. - * mips-tfile.c (main): Likewise. - * mips-tdump.c (main): Likewise. - -2011-01-03 Martin Jambor - - PR tree-optimization/46801 - * tree-sra.c (type_internals_preclude_sra_p): Check whether - aggregate fields start at byte boundary instead of the bit-field flag. - -2011-01-03 H.J. Lu - - PR driver/47137 - * gcc.c (main): Revert revision 168407. - -2011-01-03 Martin Jambor - - * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type. - -2011-01-03 Ulrich Weigand - - * tree-vect-generic.c (expand_vector_operations_1): When using vector/ - vector optab to expand vector/scalar shift, update gimple to vector. - -2011-01-03 Martin Jambor - - * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to - a thunk. - -2011-01-03 Martin Jambor - - PR tree-optimization/46984 - * cgraph.h (cgraph_indirect_call_info): make field thunk_delta - HOST_WIDE_INT. - (cgraph_create_indirect_edge): Fixed line length. - (cgraph_indirect_call_info): Declare. - (cgraph_make_edge_direct) Update declaration. - * cgraph.c (cgraph_allocate_init_indirect_info): New function. - (cgraph_create_indirect_edge): Use it. - (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all - callees. - * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for - the new thunk_delta representation. - * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to - HOST_WIDE_INT. - (ipa_write_indirect_edge_info): Remove streaming of thunk_delta. - (ipa_read_indirect_edge_info): Likewise. - * lto-cgraph.c (output_edge_opt_summary): New function. - (output_node_opt_summary): Call it on all outgoing edges. - (input_edge_opt_summary): New function. - (input_node_opt_summary): Call it on all outgoing edges. - -2011-01-02 H.J. Lu - - PR driver/47137 - * gcc.c (main): Don't check have_o when settting combine_inputs. - -2011-01-02 Eric Botcazou - - * regrename.c: Add general comment describing the pass. - (struct du_head): Remove 'length' field. - (get_element, merge_sort_comparison, merge, sort_du_head): Remove. - (regrename_optimize): Do not sort chains. Rework comments, add others. - Force renaming to the preferred class (if any) in the first pass and do - not consider registers that belong to it in the second pass. - (create_new_chain): Do not set 'length' field. - (scan_rtx_reg): Likewise. - -2011-01-02 Jakub Jelinek - - PR tree-optimization/47140 - * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use - TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument - to bit_value_binop. - - PR rtl-optimization/47028 - * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after - parm_birth_insn instead of at the beginning of first bb. - -2011-01-02 Mingjie Xing - - * doc/generic.texi: Remove duplicated "@subsubsection Statements". - Remove the word "see" before "@pxref". - * doc/rtl.texi: Remove the word "see" before "@pxref". - -2011-01-01 Jan Hubicka - - * tree-loop-distribution.c (tree_loop_distribution): Do not use freed - memory. - -2011-01-01 Kai Tietz - - PR target/38662 - * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too. - -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/ChangeLog-2011 b/gcc/ChangeLog-2011 new file mode 100644 index 0000000..534ba13 --- /dev/null +++ b/gcc/ChangeLog-2011 @@ -0,0 +1,40041 @@ +2011-12-31 Alexandre Oliva + + * cselib.h (cselib_add_permanent_equiv): Declare. + (canonical_cselib_val): New. + * cselib.c (new_elt_loc_list): Rework to support value + equivalences. Adjust all callers. + (preserve_only_constants): Retain value equivalences. + (references_value_p): Retain preserved values. + (rtx_equal_for_cselib_1): Handle value equivalences. + (cselib_invalidate_regno): Use canonical value. + (cselib_add_permanent_equiv): New. + * alias.c (find_base_term): Reset locs lists while recursing. + * var-tracking.c (val_bind): New. Don't add equivalences + present in cselib table, compared with code moved from... + (val_store): ... here. + (val_resolve): Use val_bind. + (VAL_EXPR_HAS_REVERSE): Drop. + (add_uses): Do not create MOps for addresses. Do not mark + non-REG non-MEM expressions as requiring resolution. + (reverse_op): Record reverse as a cselib equivalence. + (add_stores): Use it. Do not create MOps for addresses. + Do not require resolution for non-REG non-MEM expressions. + Simplify support for reverse operations. + (compute_bb_dataflow): Drop reverse support. + (emit_notes_in_bb): Likewise. + (create_entry_value): Rename to... + (record_entry_value): ... this. Use cselib equivalences. + (vt_add_function_parameter): Adjust. + +2011-12-30 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko + in setting options via target #pragma or attribute. + +2011-12-30 Anatoly Sokolov + + * config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/bfin/bfin-protos.h (bfin_register_move_cost, + bfin_memory_move_cost): Remove. + * config/bfin/bfin.c (bfin_register_move_cost, + bfin_memory_move_cost): Make static. Change arguments type from + enum reg_class to reg_class_t and from int to bool. + (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. + +2011-12-30 Nathan Sidwell + + * gcov.c (total_lines, total_executed): New global vars. + (generate_results): Call executed_summary. + (executed_summary): New function, broken out of ... + (function_summary): ... here. Call it. + * coverage.c (coverage_finish): Also check for local_tick == -1. + * gcov-dump (tag_function): Correct labelling typo. + +2011-12-29 Michael Meissner + + PR target/51623 + * config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check + for an initialized pointer being in a text section with + -mrelocatable, since it should never happen. + +2011-12-29 Michael Eager + + * config/microblaze/microblaze.md: Add expander for simple_return, + return, add return_internal and simple_return_internal insns. + +2011-12-29 Oleg Endo + + * config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable. + * config/sh/sh.c (sh_option_override): Simplify sh_branch_cost + expression. + +2011-12-28 Ian Lance Taylor + + * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go. + +2011-12-28 Michael Meissner + + PR target/51623 + * config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call + unlikely_text_section_p. Instead check for being in a code section. + +2011-12-28 Ira Rosen + + PR tree-optimization/51684 + * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original + statement in case of a pattern. + (vect_schedule_slp): Likewise. + +2011-12-27 Eric Botcazou + + PR rtl-optimization/51667 + * ree.c (insn_merge_code): Delete. + (is_insn_merge_attempted): Likewise. + (get_insn_status): Likewise. + (set_insn_status): Likewise. + (struct ext_cand): Add CODE and MODE fields. + (combine_set_extend): Rename to... + (combine_set_extension): ...this. Use above fields and tidy up. + (transform_ifelse): Likewise. + (get_defs): Return the chain of definitions. + (is_this_a_cmove): Merge into... + (is_cond_copy_insn): ...this. Return bool. + (make_defs_and_copies_lists): Adjust calls to get_defs and simplify. + (merge_def_and_ext): Adjust call to combine_set_extend. + (combine_reaching_defs): Remove calls to {g|s}et_insn_status. + (struct extend_info): Rename to... + (struct re_info): ...this. Add DEF_MAP field. + (add_ext_candidate): Merge into... + (add_removable_extension): ...this. Adjust calls to get_defs. Ensure + reaching definitions are associated with only one kind of extension. + (find_removable_extensions): Create and destroy the definition map. + (find_and_remove_re): Return void. Change 'long' variables to 'int'. + Do not deal with is_insn_merge_attempted. + +2011-12-25 Jan Hubicka + + PR middle-end/48641 + * tree-ssa-threadupdate.c (redirect_edges): Watch for overflow. + +2011-12-26 Oleg Endo + + * config/sh/sync.md: Add soft atomics ABI description. + (fetchop_name): Use 'or' instead of 'ior'. + (fetchop_insn): Remove. + (atomic_compare_and_swap_soft): + Don't insert aligning nop after the write-back instruction. Fix + multi-line asm output formatting style. + (atomic_fetch__soft): Likewise. + (atomic_fetch_nand_soft): Likewise. + (atomic__fetch_soft): Likewise. + (atomic_nand_fetch_soft): Likewise. + +2011-12-23 Richard Henderson + + * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove. + * cfgexpand.c (expand_debug_expr): Don't handle them. + * expr.c (expand_expr_real_2): Likewise. + * fold-const.c (fold_binary_loc): Likewise. + * gimple-pretty-print.c (dump_binary_rhs): Likewise. + * tree-cfg.c (verify_gimple_assign_binary): Likewise. + * tree-inline.c (estimate_operator_cost): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-vect-generic.c (expand_vector_operations_1): Likewise. + * optabs.c (optab_for_tree_code): Likewise. + (can_vec_perm_for_code_p): Remove. + (expand_binop): Don't try it. + (init_optabs): Don't init vec_extract_even/odd_optab. + * genopinit.c (optabs): Likewise. + * optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove. + (vec_extract_even_optab, vec_extract_odd_optab): Remove. + * tree-vect-data-refs.c (vect_strided_store_supported): Tidy code. + (vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of + GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of + asserting vect_strided_store_supported. + (vect_strided_load_supported): Use can_vec_perm_p. + (vect_permute_load_chain): Use VEC_PERM_EXPR. + + * doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove. + (VEC_EXTRACT_ODD_EXPR): Remove. + * doc/md.texi (vec_extract_even, vec_extract_odd): Remove. + +2011-12-23 Anatoly Sokolov + + * config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/score/score-protos.h (score_register_move_cost): Remove. + * config/score/score.c (TARGET_REGISTER_MOVE_COST): Define. + (score_register_move_cost): Make static. Change arguments type from + enum reg_class to reg_class_t. + +2011-12-23 Jakub Jelinek + Richard Henderson + + * tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove. + * gimple-pretty-print.c (dump_binary_rhs): Don't handle + VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. + * expr.c (expand_expr_real_2): Likewise. + * tree-cfg.c (verify_gimple_assign_binary): Likewise. + * cfgexpand.c (expand_debug_expr): Likewise. + * tree-inline.c (estimate_operator_cost): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-vect-generic.c (expand_vector_operations_1): Likewise. + * fold-const.c (fold_binary_loc): Likewise. + * doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR, + VEC_INTERLEAVE_LOW_EXPR): Remove documentation. + * optabs.c (optab_for_tree_code): Don't handle + VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. + (expand_binop, init_optabs): Remove vec_interleave_high_optab + and vec_interleave_low_optab. + * genopinit.c (optabs): Likewise. + * optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove. + (vec_interleave_high_optab, vec_interleave_low_optab): Remove. + * doc/md.texi (vec_interleave_high, vec_interleave_low): Remove + documentation. + * tree-vect-stmts.c (gen_perm_mask): Renamed to... + (vect_gen_perm_mask): ... this. No longer static. + (perm_mask_for_reverse, vectorizable_load): Adjust callers. + * tree-vectorizer.h (vect_gen_perm_mask): New prototype. + * tree-vect-data-refs.c (vect_strided_store_supported): Don't try + VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of + can_vec_perm_for_code_p. + (vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving + masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. + * config/i386/i386.c (expand_vec_perm_interleave2): If + expand_vec_perm_interleave3 would handle it, return false. + (expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab. + +2011-12-23 Richard Henderson + + * config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0, + UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2, + UNSPEC_LOONGSON_PINSR_3): Replace with... + (UNSPEC_LOONGSON_PINSRH): ... this. + (UNSPEC_LOONGSON_VINIT): New. + (UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New. + (VWB): New mode iterator. + (V_inner): New mode attribute. + (loongson_vec_init1_): New. + (*vec_concatv2si): New. + (and3, ior3, xor3, one_cmpl2): New. + (*loongson_nor): New. + (loongson_pextrh): Un-macro-ify. + (loongson_pmaddhw): Likewise. + (smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise. + (loongson_pinsrh_0): Represent with vec_select+vec_concat. + (loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise. + (*vec_setv4hi, vec_setv4hi): New. + (sdot_prodv4hi): New. + (smax3, smin3): New. + (reduc_uplus_v8qi): New. + (loongson_pshufh): Remove destination matching input. + (ashl3, ashr3, lshr3): Fix type attribute. + (vec_interleave_high, vec_interleave_low): Remove. + (loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi, + loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi, + loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi, + loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi, + vec_perm_const, vec_unpacks_lo_, vec_unpacks_hi_, + vec_unpacku_lo_, vec_unpacku_hi_, vec_shl_, + vec_shr_, reduc_uplus_, reduc_splus_, + reduc_smax_, reduc_smin_, reduc_umax_, + reduc_umin_): New. + * config/mips/mips-ps-3d.md (vec_perm_const_ps): New. + (mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in + terms of vec_perm_const_ps. + (vec_perm_constv2sf): New. + (vec_initv2sf): Use mips_expand_vector_init. + (vec_concatv2sf): Rename from vec_initv2sf_internal. + (vec_setv2sf): Use vec_perm_const_ps. + (reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New. + * config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to + the builtin. + * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes. + * config/mips/mips-protos.h: Update. + * config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all + MODE_VECTOR_FLOAT. + (mips_return_mode_in_fpr_p): Likewise. + (mips_cannot_change_mode_class): Allow 8-byte integral mode changes. + (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw, + CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh, + CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove. + (mips_builtins): Remove first operand for loongson pshufh builtins. + (MAX_VECT_LEN, struct expand_vec_perm_d): New. + (mips_expand_vselect, mips_expand_vselect_vconcat, + mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh, + mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1, + mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok, + mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast, + mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh, + mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax, + TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. + (mips_expand_vector_init): Rewrite. + * config/mips/predicates.md (const_2_or_3_operand): New. + (const_0_to_3_operand): New. + +2011-12-23 Dmitry Plotnikov + + * config/arm/neon.md (float2): New. + (floatuns2): New. + (fix_trunc2): New. + (fix_truncuns2): New. + * config/arm/iterators.md (V_cvtto): New iterator. + +2011-12-23 Richard Guenther + + PR rtl-optimization/50396 + * simplify-rtx.c (simplify_binary_operation_1): Properly + guard code that only works for integers. + +2011-12-23 Tristan Gingold + + * config/vms/vms-crtlmap.map (log10): Fix typo. + +2011-12-23 Tristan Gingold + + * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define. + +2011-12-22 Bin Cheng + Richard Guenther + + PR tree-optimization/43491 + * tree-ssa-pre.c (eliminate): Don't replace global register + variable when it is the RHS of a single assign. + +2011-12-22 Joey Ye + + * toplev.c (process_options): Fix typo. + +2011-12-22 John David Anglin + + PR middle-end/51252 + * config/pa/pa.c (pa_som_tm_clone_table_section): New function. + (som_tm_clone_table_section): Declare. + (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace. + (pa_som_asm_init_sections): Init som_tm_clone_table_section. + * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. + +2011-12-22 Richard Sandiford + + * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook. + * doc/tm.texi: Regenerate. + * target.def (prepare_pch_save): New hook. + * c-family/c-pch.c (c_common_write_pch): Call it. + * config/mips/mips.c (was_mips16_pch_p): Delete. + (mips_set_mips16_mode): Don't refer to was_mips16_pch_p. + (mips_prepare_pch_save): New function. + (TARGET_PREPARE_PCH_SAVE): Define. + +2011-12-22 Aldy Hernandez + + PR middle-end/51212 + * opts.c (finish_options): Call sorry on -fgnu-tm and + -fnon-call-exceptions combination. + +2011-12-22 Jonathan Wakely + + * doc/invoke.texi (C++ Dialect Options): Add missing options and + move -Wzero-as-null-pointer-constant to ... + (Warning Options): ... here. + +2011-12-22 Jonathan Wakely + + PR target/47643 + * doc/invoke.texi (i386 and x86-64 Options): Fix description of + -mtune without -march. + +2011-12-21 Richard Earnshaw + + PR target/51643 + * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous + change. + +2011-12-22 Tristan Gingold + + * config/ia64/ia64.c (ia64_promote_function_mode): Remove. + (TARGET_PROMOTE_FUNCTION_MODE): Remove. + (ia64_function_value): Call promote_function_mode instead of + ia64_promote_function_mode. + * config/ia64/vms.h (PROMOTE_MODE): Define. + (TARGET_PROMOTE_FUNCTION_MODE): Define. + +2011-12-22 Uros Bizjak + + PR target/27468 + * common/config/alpha/alpha-common.c (alpha_option_optimization_table): + Enable flag_ree at -O2 or higher. + +2011-12-22 Richard Guenther + + PR lto/51650 + * lto.c (uniquify_nodes): Register TYPE_DECLs with the + debuginfo machinery. + +2011-12-22 Bernd Schmidt + + * tree-pass.h (pass_reload): Declare. + * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots): + New global variables, moved out of ira. + (do_reload): New static function, split off from the second half + of ... + (ira): ... here. + (gate_ira): Remove. + (pass_ira): Use TV_IRA, set gate to NULL, and set flags to + TODO_dump_func. + (rest_of_handle_reload): New static function. + (pass_reload): New. + +2011-12-22 Uros Bizjak + + * common/config/i386/i386-common.c (ix86_option_optimization_table): + Move OPT_free processing from ... + * config/i386/i386.c (ix86_option_override_internal): ... here. + +2011-12-21 Richard Earnshaw + + PR target/51643 + * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a + weak function on bare-metal EABI targets. + +2011-12-21 Jonathan Wakely + Jim Avera + + * doc/extend.texi (__builtin_expect): Improve example. + +2011-12-21 Uros Bizjak + + * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree + also for 32bit targets. + +2011-12-21 Richard Henderson + + PR target/51552 + * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code... + (scan_trace): ... here. + +2011-12-21 Jason Merrill + + * doc/standards.texi (C++ language): Update for C++11. + +2011-12-21 Jakub Jelinek + + * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize + *op0 and *op1 to NULL_TREE first to avoid warnings. + * calls.c (initialize_argument_information): Initialize base to avoid + warnings. + + PR middle-end/51644 + PR middle-end/51647 + * tree-eh.c (decide_copy_try_finally): At -O0, return true + even when ndests is not 1, if there are only gimple_clobber_p + (or debug) stmts in the finally sequence. + * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p + stmts. + +2011-12-21 Aldy Hernandez + + PR middle-end/51472 + * trans-mem.c (tm_log_add): Use create_tmp_var_reg. + +2011-12-21 Martin Jambor + + * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines. + (rewrite_update_enter_block): Likewise. + (dump_update_ssa): Likewise. + (update_ssa): Likewise but also dump a newline at the beginning. + +2011-12-21 Enkovich Ilya + + PR target/50038 + * implicit-zee.c: Delete. + * ree.c: New file. + * Makefile.in: Replace implicit-zee.c with ree.c. + * config/i386/i386.c (ix86_option_override_internal): Rename + flag_zee to flag_ree. + * common.opt (fzee): Ignored. + (free): New. + * passes.c (init_optimization_passes): Replace pass_implicit_zee + with pass_ree. + * tree-pass.h (pass_implicit_zee): Delete. + (pass_ree): New. + * timevar.def (TV_ZEE): Delete. + (TV_REE): New. + * doc/invoke.texi: Add -free description. + +2011-12-21 Tristan Gingold + + * config/vms/vms-protos.h (vms_function_section): New prototype. + * config/vms/vms.c (vms_function_section): New function. + * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define. + +2011-12-21 Richard Guenther + + PR lto/41159 + * tree-outof-ssa.c (insert_value_copy_on_edge): Use the + mode of the pseudo as destination mode. Only assert that + is equal to the promoted mode of the decl if it is a REG. + +2011-12-21 Tristan Gingold + + * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define. + +2011-12-20 Richard Henderson + + * config/ia64/ia64.c (MAX_VECT_LEN): New. + (struct expand_vec_perm_d): New. + (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. + (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1. + (expand_vselect, expand_vselect_vconcat): New. + (expand_vec_perm_identity, expand_vec_perm_shrp): New. + (expand_vec_perm_1, expand_vec_perm_broadcast): New. + (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New. + (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New. + (ia64_vectorize_vec_perm_const_ok): New. + (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/vect.md (VEC): New mode iterator. + (vecint): New mode attribute. + (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'. + (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise. + (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise. + (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise. + (mix1_even, mix1_odd, mux1_alt): Likewise. + (mux1_brcst_qi): Remove '*' from name. + (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove. + (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove. + (vec_extract_evenv2si, vec_extract_oddv2si): Remove. + (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. + (vec_extract_evenodd_helper): Remove. + (vec_setv2sf): Use ia64_expand_vec_setv2sf. + (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd. + (vec_pack_trunc_v2si): Likewise. + (vec_perm_const): New. + +2011-12-20 Richard Henderson + + * tree-vect-generic.c (expand_vector_operations_1): Correct tests + for vector types -- use the type not the mode. Fix optab selection + for vector shifts by a scalar. Handle over-large integer modes + like BLKmode. + +2011-12-20 Richard Henderson + + * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform + post-reload splitting. + + * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2. + * config/arm/arm.c (arm_select_cc_mode): Use it. + +2011-12-20 Richard Sandiford + + * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict + handling of signedness differences to integer types. Only build + a new optype if type1 isn't correct. + +2011-12-20 Vladimir Makarov + + PR target/49865 + * ira-costs.c (find_costs_and_classes): Prefer registers even + if the memory cost is the same. + +2011-12-20 Joseph Myers + + * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield) + (finish_struct): Refer to C11 in comments. Use flag_isoc11. + * c-parser.c (c_parser_static_assert_declaration) + (c_parser_static_assert_declaration_no_semi, c_parser_declspecs) + (c_parser_alignas_specifier, c_parser_alignof_expression): Refer + to C11 in comments. Use flag_isoc11. + * c-typeck.c (comptypes_check_different_types): Refer to C11 in + comment. + * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x. + * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference + to -std=c1x and -std=gnu1x. + * doc/extend.texi (Inline, Alternate Keywords, Other Builtins) + (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11 + instead of -std=c1x and C1X. + * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in + preference to -std=c1x. + (-std=gnu11): Document in preference to -std=gnu1x. + * doc/standards.texi: Document C11 instead of C1X. Document C11 + as actual standard. Document headers required from freestanding + C11 implementations. + * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >= + 201112L for C11. Update comments to refer to C11. + +2011-12-20 Andreas Schwab + + * configure: Regenerate. + +2011-12-20 Bernd Schmidt + + PR middle-end/51200 + * expr.c (store_field): Avoid a direct store if the mode is larger + than the size of the bit field. + * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields, + treat non-volatile bit fields like volatile ones. + * toplev.c (process_options): Disallow combination of + -fstrict-volatile-bitfields and ABI versions less than 2. + * config/arm/arm.c (arm_option_override): Don't enable + flag_strict_volatile_bitfields if the ABI version is less than 2. + * config/h8300/h8300.c (h8300_option_override): Likewise. + * config/rx/rx.c (rx_option_override): Likewise. + * config/m32c/m32c.c (m32c_option_override): Likewise. + * config/sh/sh.c (sh_option_override): Likewise. + +2011-12-20 Richard Guenther + + PR lto/46796 + * dwarf2out.c (modified_type_die): When the type variant + chain is corrupt use the types name, if available, instead + of __unknown__. + +2011-12-20 Tristan Gingold + + * config/alpha/alpha.c (alpha_start_function): Adjust condition to + create VMS trampoline entry point. + +2011-12-19 Richard Sandiford + + PR rtl-optimization/42839 + * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND + optimization if the source register is already extended. + +2011-12-19 Richard Sandiford + + * lower-subreg.c (can_decompose_p): Check every word of a hard + register. + +2011-12-19 Sandra Loosemore + Tom de Vries + + PR rtl-opt/50380 + * cse.c (find_comparison_args): Detect fixed point and + bail early. + +2011-12-19 Aldy Hernandez + + PR middle-end/51411 + * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK. + +2011-12-19 Quentin Neill + + PR target/48743 + * config/i386/driver-i386.c (host_detect_local_cpu): Also check + family to distinguish PROCESSOR_ATHLON. + +2011-12-19 Richard Guenther + + PR lto/51573 + * streamer-hooks.h (struct streamer_hooks): Add second + ref_p parameter to write_tree. + (stream_write_tree): Adjust. + (stream_write_tree_shallow_non_ref): New define. + * lto-streamer.h (lto_output_tree): Adjust. + * lto-streamer-out.c (lto_output_tree): Likewise. + * tree-streamer-out.c (streamer_write_chain): Only + force the immediate tree to be streamed as non-reference. + +2011-12-19 Martin Jambor + + PR tree-optimization/51583 + * tree-sra.c (load_assign_lhs_subreplacements): Call + force_gimple_operand_gsi when necessary also in case of no + corresponding replacement on the RHS. + +2011-12-19 Jakub Jelinek + + * gimple.h (gimplify_seq_add_stmt): Rename to... + (gimple_seq_add_stmt_without_update): ... this. + * gimplify.c (gimplify_seq_add_stmt): Rename to... + (gimple_seq_add_stmt_without_update): ... this. + (gimplify_seq_add_stmt): New inline wrapper for it. + * tree-vect-patterns.c (append_pattern_def_seq): Use + gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt. + + PR tree-optimization/51596 + * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges + when needed. + + PR middle-end/51590 + PR tree-optimization/51606 + * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq): + New inline functions. + (vect_recog_over_widening_pattern, + vect_recog_vector_vector_shift_pattern, + vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern, + adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them. + +2011-12-19 Richard Guenther + + PR lto/51572 + * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL + from TYPE_FIELDS. + (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS. + * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do + not stream TREE_CHAIN. + (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS + using streamer_write_chain. + * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): + Do not stream TREE_CHAIN. + (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS + using streamer_read_chain. + * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs. + * gimple.c (gimple_canonical_types_compatible_p): Properly + handle trailing non-FIELD_DECLs in TYPE_FIELDS. + +2011-12-19 Andreas Schwab + + * configure: Regenerate. + +2011-12-19 Bernd Schmidt + + * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for + partial integer modes. + +2011-12-19 Andreas Schwab + + PR target/51532 + * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define. + * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS. + * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 || + TARGET_68040). + +2011-12-18 Anatoly Sokolov + + * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, + LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP, + GO_IF_LEGITIMATE_ADDRESS): Remove macros. + * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define. + (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg, + ia64_legitimate_address_disp, ia64_legitimate_address_p): New + functions. + +2011-12-17 Tom de Vries + + PR tree-optimization/51491 + * tree-ssa-ccp.c (insert_clobber_before_stack_restore) + (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function. + (ccp_fold_stmt): Use insert_clobbers_for_var after a successful + fold_builtin_alloca_with_align. + (ccp_visit_stmt): Calculate and free dominator info. + +2011-12-16 Eric Botcazou + + * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant. + (frame_blockage): New expander. + (frame_blockage): New instruction. + * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of + instructions establishing the frame isn't atomic, emit frame blockage. + +2011-12-16 Tristan Gingold + + * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define. + +2011-12-16 Tristan Gingold + + * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias. + (alpha_write_one_linkage): Use assemble_name to emit linkage name. + +2011-12-16 Tristan Gingold + + * config/vms/t-vms (vms.o, vms-c.o): Force output filename. + +2011-12-16 Tristan Gingold + + * config/vms/vms.c (VMS_CRTL_GLOBAL): Define. + (vms_patch_builtins): Handle. + * config/vms/vms-crtlmap.map: Add an entry for environ. + +2011-12-16 Jakub Jelinek + + PR debug/51557 + * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes + other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND. + + PR tree-optimization/51576 + * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt + even if fold_stmt didn't change anything. + +2011-12-16 Richard Guenther + + PR lto/51572 + * dwarf2out.c (gen_type_die_with_usage): Use the context of + the TYPE_DECL as well if it is file-scope. + +2011-12-15 DJ Delorie + + * config/rl78/rl78.md (return): Rename to rl78_return. + * config/rl78/rl78.c (rl78_expand_epilogue): Use new name. + (rl78_expand_eh_epilogue): Use new name. + (rl78_calculate_death_notes): Likewise. + +2011-12-15 Jakub Jelinek + + * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt + field, add pattern_def_seq. + (STMT_VINFO_PATTERN_DEF_STMT): Remove. + (STMT_VINFO_PATTERN_DEF_SEQ): Define. + (NUM_PATTERNS): Bump to 10. + * tree-vect-loop.c (vect_determine_vectorization_factor, + vect_transform_loop): Adjust for pattern def changing from a single + gimple stmt to gimple_seq. + * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info, + free_stmt_vec_info): Likewise. + * tree-vect-patterns.c (vect_recog_over_widening_pattern, + vect_recog_vector_vector_shift_pattern, + vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast, + adjust_bool_pattern, vect_mark_pattern_stmts): Likewise. + (vect_recog_sdivmod_pow2_pattern): New function. + (vect_vect_recog_func_ptrs): Add it. + + * config/i386/sse.md (vcond, + vcond, vcondv2di): + Use general_operand instead of nonimmediate_operand for + operand 5 and no predicate for operands 1 and 2. + * config/i386/i386.c (ix86_expand_int_vcond): Optimize + x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic + resp. logical shift. + +2011-12-15 Georg-Johann Lay + + * config/avr/avr-protos.h (print_operand): Remove. + (print_operand_address): Remove. + * config/avr/avr.h (PRINT_OPERAND): Remove. + (PRINT_OPERAND_ADDRESS): Remove. + (PRINT_OPERAND_PUNCT_VALID_P): Remove. + * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define. + (TARGET_PRINT_OPERAND_ADDRESS): New hook define. + (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define. + (print_operand_address): Rename to... + (avr_print_operand_address): ...this and make static. + (print_operand): Rename to... + (avr_print_operand): ...this and make static. + (avr_print_operand_punct_valid_p): New static function. + +2011-12-15 Andreas Tobler + + * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define. + +2011-12-15 Jakub Jelinek + + PR c/51360 + * c-parser.c (c_parser_omp_clause_num_threads, + c_parser_omp_clause_schedule): Call mark_exp_read. + +2011-12-15 Romain Geissler + + * builtins.def (BUILT_IN_STPNCPY_CHK): New definition. + * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning): + Add BUILT_IN_STPNCPY_CHK case. + * gimple-fold.c (gimple_fold_builtin): Likewise. + * tree-object-size.c (pass_through_call): Likewise. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, + call_may_clobber_ref_p_1): Likewise. + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, + find_func_clobbers): Likewise. + * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk + * builtins.c (fold_builtin_strncpy_chk): Likewise. + Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is + ignored. + +2011-12-15 Richard Guenther + + PR lto/51567 + * gimple.c (compare_type_names_p): Also compare the TREE_CODE. + (iterative_hash_name): Also hash the TREE_CODE. + (gimple_types_compatible_p_1): For types with a TYPE_DECL + name and a type DECL_CONTEXT recurse to that type. + (iterative_hash_gimple_type): Likewise. + +2011-12-15 Iain Sandoe + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Move update of + VRSave mask to save_world() when that is in use. + +2011-12-15 Richard Guenther + + * lto-wrapper.c (run_gcc): In non-parallel mode remove + ltrans inputs immediately after processing them. In parallel + mode truncate the ltrans inputs in the make rule that processes + them if temporary files are not to be preserved. + +2011-12-15 Anatoly Sokolov + + * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost): + New functions. + (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. + +2011-12-15 Richard Guenther + + PR lto/51564 + * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY, + STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag + uses documentation. + (TREE_ASM_WRITTEN): Update documentation to mention its use + on TYPE_DECLs from debug info generation. + * tree-streamer-out.c (pack_ts_base_value_fields): Stream + TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to + all other types. + +2011-12-15 Georg-Johann Lay + + PR target/51050 + * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp. + (avr_prologue_setup_frame): Ditto. + +2011-12-15 Jakub Jelinek + + PR debug/51517 + * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test + !DECL_IGNORED_P instead of !DECL_ARTIFICIAL. + +2012-12-15 Richard Guenther + + Revert + PR lto/48437 + * lto-streamer-out.c (tree_is_indexable): Exclude block-local + extern declarations. + + PR lto/48508 + PR lto/48437 + * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL + VAR_DECLs and FUNCTION_DECLs locally. + +2011-12-14 Richard Henderson + + * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable. + (*compare_negsi_si, *compare_addsi2_op0): Likewise. + (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise. + (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise. + +2011-12-14 Richard Guenther + + * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for + propagating all kinds of constants. + +2011-12-14 Richard Guenther + + PR lto/51497 + * lto-streamer-in.c (lto_read_body): Fixup local types + TYPE_CANONICAL and variant chain. + +2011-12-14 Richard Guenther + + * tree.c (free_lang_data_in_type): Do not clear fields + dependent on debuginfo level setting. + (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN. + * tree.h (TYPE_STUB_DECL): Properly check that we access a type. + +2011-12-14 Georg-Johann Lay + + PR target/50931 + * config/avr/avr.md (mulpsi3): New expander. + (*umulqihipsi3, *umulhiqipsi3): New insns. + (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns. + (mulsqipsi3, *mulpsi3): New insn-and-splits. + (ashlpsi3): Turn to expander. Move insn code to... + (*ashlpsi3): ...this new insn. + +2011-12-14 Richard Guenther + + * tree-cfg.c (replace_uses_by): Only mark blocks altered + that will make a difference. Only recompute ADDR_EXPR + invariantness if it could possibly have changed. Do so + before folding the statement. + +2011-12-13 Eric Botcazou + + * lto-streamer-out.c (write_symbol): Use proper 64-bit host type. + * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets. + * lto-streamer-in.c (lto_read_body): Likewise. + (lto_input_toplevel_asms): Likewise. + * lto-section-in.c (lto_create_simple_input_block): Likewise. + * ipa-inline-analysis.c (inline_read_section): Likewise. + * ipa-prop.c (ipa_prop_read_section): Likewise. + + * df.h (DF_NOTE): Fix typo in comment. + +2011-12-13 Aldy Hernandez + + * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and + DECL_LANG_SPECIFIC. + +2011-12-13 Andreas Krebbel + + * regmove.c (fixup_match_2): Only access call_used_regs with hard regs. + +2011-12-13 Andrew Pinski + Adam Nemet + + * config/mips/mips-cpus.def: Add Octeon2. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.md (define_attr "cpu"): Add Octeon2. + * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2. + * config/mips/octeon.md (octeon_arith): Add Octeon2. + (octeon_condmove): Likewise. + (octeon_load): Rename to .. + (octeon_load_o1): this. + (octeon_load_o2): New reserve. + (octeon_cop_o2): New reserve. + (octeon_store): Match Octeon2 also. + (octeon_brj): Rename to .. + (octeon_brj_o1): this. + (octeon_brj_o2): New reserve. + (octeon_imul3): Rename to ... + (octeon_imul3_o1): this. + (octeon_imul3_o2): New reserve. + (octeon_imul): Rename to ... + (octeon_imul_o1): this. + (octeon_imul_o2): New reserve. + (octeon_mfhilo): Rename to ... + (octeon_mfhilo_o1): This. + (octeon_mfhilo_o2): New reserve. + (octeon_imadd): Rename to ... + (octeon_imadd_o1): this. + (octeon_imadd_o2): New reserve. + (octeon_idiv): Rename to .. + (octeon_idiv_o1): This. + (octeon_idiv_o2_si): New reserve. + (octeon_idiv_o2_di): Likewise. + (octeon_unknown): Match Octeon2 also. + * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data. + (mips_issue_rate): Octeon2 can issue 2 at a time. + * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also. + (TARGET_OCTEON2): New define. + (TUNE_OCTEON): Match Octeon2 also. + +2011-12-13 Richard Henderson + + * config/sparc/tso.h: New file. + * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it. + * config/sparc/sparc.c (sparc_option_override): Honor + SUBTARGET_DEFAULT_MEMORY_MODEL. + * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New. + +2011-12-13 Aldy Hernandez + + PR middle-end/51443 + * trans-mem.c (struct diagnose_tm): Remove saw_unsafe. + (diagnose_tm_1): Same. + (ipa_tm_execute): Do not test tm_may_enter_irr before we set it. + (ipa_tm_scan_irr_function): Return gracefully when no + DECL_STRUCT_FUNCTION. + (ipa_tm_scan_irr_block): Believe the user on TM attributes. + +2011-12-13 Martin Jambor + + PR middle-end/50628 + * tree-sra.c (propagate_subaccesses_across_link): Do not propagate + sub-accesses of scalar accesses. + +2011-12-13 Martin Jambor + + PR tree-optimization/51362 + * ipa-cp.c (estimate_local_effects): When estimated size of a + specialized clone is zero, bump it to one. + +2011-12-13 Richard Guenther + + PR lto/48354 + * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE. + * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): + Stream DECL_ORIGINAL_TYPE. + * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): + Likewise. + +2011-12-13 Jakub Jelinek + + Revert + 2011-12-12 Jakub Jelinek + + PR tree-optimization/51481 + * gimple-fold.c (gimple_fold_call): Call + maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH + edges, but gimple_fold_builtin result can't throw. + +2011-12-13 Jakub Jelinek + Michael Matz + + PR tree-optimization/51117 + * tree-eh.c (sink_clobbers): New function. + (execute_lower_eh_dispatch): Call it for BBs ending with + internally throwing RESX. + * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only + at the first real instruction. + +2011-12-13 Tristan Gingold + + * final.c (final_scan_insn): Guard the call to begin_epilogue + debug hook. + +2011-12-13 Tristan Gingold + + * vmsdbgout.c (vmsdbgout_write_source_line): New function. + (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line. + (vmsdbgout_begin_epilogue): Likewise. + (vmsdbgout_end_epilogue): Likewise. + (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line. + +2011-12-13 Richard Guenther + + PR middle-end/51481 + * tree-cfg.c (replace_uses_by): Pass proper arguments to + maybe_clean_or_replace_eh_stmt. + +2011-12-13 Richard Guenther + + PR tree-optimization/51519 + * ipa-inline.c (edge_badness): Use edge growth in non-guessed + branch probability case as well. + +2011-12-13 Revital Eres + + * modulo-sched.c (mark_loop_unsched): Free bbs. + +2011-12-12 Jakub Jelinek + + PR rtl-optimization/51495 + * function.c (thread_prologue_and_epilogue_insns): Don't add + to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges + from basic blocks not needing prologue. + + PR tree-optimization/51481 + * gimple-fold.c (gimple_fold_call): Call + maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH + edges, but gimple_fold_builtin result can't throw. + +2011-12-12 Vladimir Makarov + + PR rtl-optimization/21617 + * ira-color.c (bucket_allocno_compare_func): Don't compare + allocno classes. Compare number of hard registers needed. + +2011-12-12 Eric Botcazou + + PR tree-optimization/50569 + * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs + in the expression of MODEL instead of just the last one. + +2011-12-12 Jakub Jelinek + + PR middle-end/51510 + * calls.c (internal_arg_pointer_based_exp_scan): Don't use + VEC_safe_grow_cleared if idx is smaller than VEC_length. + +2011-12-12 Richard Sandiford + + PR middle-end/50873 + * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg + instead of force_reg. Do nothing if the address is already a + non-virtual pseudo register. + +2011-12-12 Torvald Riegel + + * gimplify.c (voidify_wrapper_expr): Add default handling for + outermost wrapper. + +2011-12-12 Torvald Riegel + + * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction + commits as equal. + +2011-12-12 Iain Sandoe + + * config/darwin-sections.def (zobj_const_data_section): Fix over- + length section name. + +2011-12-11 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_expand_interleave): Use + BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN. + +2011-12-11 Jakub Jelinek + + PR tree-optimization/51485 + * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on + DRs in call stmts. + +2011-12-11 Patrick Marlier + + * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge. + +2011-12-10 Richard Henderson + + * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as + vec_select + vec_concat. + (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb, + altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise. + (vec_perm_constv16qi): New. + (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode, + vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi, + vec_interleave_high, vec_interleave_low): Remove. + * config/rs6000/paired.md (paired_merge00): Rewrite pattern as + vec_select + vec_concat. + (paired_merge10, paired_merge01, paired_merge11): Likewise. + (vec_perm_constv2sf): New. + (vec_interleave_highv2sf, vec_interleave_lowv2sf, + vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. + * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as + vec_select + vec_concat. + (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New. + (vec_perm_constv2si): New. + * config/rs6000/vector.md (vec_interleave_highv4sf, + vec_interleave_lowv4sf, vec_interleave_high, + vec_interleave_low): Remove. + * config/rs6000/vsx.md (VS_double): New mode attribute. + (UNSPEC_VSX_XXPERMDI): Remove. + (vsx_xxpermdi__1): Rewrite pattern as vec_select + vec_concat. + (vsx_xxmrghw_, vsx_xxmrglw_): Likewise. + (vsx_xxpermdi_): Change to expander. + (vec_perm_const): New. + (vsx_mergel_, vsx_mergeh_): New. + * config/rs6000/predicates.md (const_0_to_1_operand): New. + (const_2_to_3_operand): New. + * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. + (altivec_expand_vec_perm_const): New. + (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New. + (rs6000_vectorize_vec_perm_const_ok): New. + (rs6000_do_expand_vec_perm): New. + (rs6000_expand_extract_even, rs6000_expand_interleave): New. + * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes. + * config/rs6000/rs6000-modes.def: Add double-wide vector modes. + * config/rs6000/rs6000-protos.h: Update. + +2011-12-10 Richard Henderson + + * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a + CONST_INT to expand_vec_perm as the selector. + * optabs.c (expand_vec_perm): Assert the selector is of a proper mode. + +2011-12-10 Richard Henderson + + * genmodes.c (struct mode_data): Remove wider_2x member. + (blank_mode): Adjust initializer. + (calc_wider_mode): Use XALLOCAVEC. + (emit_move_wider): Select double-width same-element vectors for + 2xwider vectors. + * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation. + * config/i386/i386.c (doublesize_vector_mode): Remove. + (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead. + +2011-12-10 Joern Rennecke + + * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define. + (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise. + (USE_STORE_POST_DECREMENT): Likewise. + + * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro, + broken out of .. + (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO. + (DWARF_FRAME_RETURN_COLUMN): New macro. + + * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare. + * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute): + Split "timer" value into "timer0" and "timer1". + Handle page_miss, message and wand. Don't handle static_flag. + Adjust warning text. + (epiphany_start_function): New function. + (epiphany_compute_function_type): Split "timer" value into "timer0" + and "timer1". Handle page_miss, message and wand. + Don't handle static_flag. + (epiphany_expand_epilogue): Don't use frame_insn for status / iret + restore. + * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define. + (enum epiphany_function_type): + Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0 + and EPIPHANY_FUNCTION_TIMER1. + Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values. + Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values. + Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND. + +2011-12-10 Nathan Sidwell + + PR gcov-profile/51449 + * coverage.c (coverage_end_function): Always process the coverage + variables. + +2011-12-09 Aldy Hernandez + + PR/51291 + * tree.c (build_common_builtin_nodes): Do not use TM_PURE + attribute unless language has support for TM. + * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in + the absence of TM builtins. + +2011-12-09 Eric Botcazou + + * gimple-fold.c (gimple_fold_stmt_to_constant_1) : + Also check the TYPE_MODE to recognize useless pointer conversions. + +2011-12-09 Jakub Jelinek + + PR tree-optimization/51117 + * tree-eh.c (optimize_clobbers): Don't remove just one + clobber, but all consecutive clobbers before RESX. + Use gimple_clobber_p predicate. + +2011-12-09 Michael Meissner + + * config/rs6000/rs6000.c (altivec_expand_builtin): Call + expand_call to return a valid funciton instead of return + cosnt0_rtx/NULL_RTX if there was an error with the builtin. + (altivec_expand_ld_builtin): Ditto. + (rs6000_inner_target_options): If VSX is selected as a target + attribute or pragma, enable ALTIVEC also. + (rs6000_pragma_target_parse): Call rs6000_option_override_internal + to do all of the standard processing when switching options, + including redefining appropriate macros. + + PR rtl-optimization/51469 + * varasm.c (default_binds_local_p_1): If the symbol is a gnu + indirect function, mark the symbol as non-local. + +2011-12-09 H.J. Lu + + PR bootstrap/51479 + * Makefile.in (errors.o): Restored. + +2011-12-09 Richard Guenther + + PR lto/48042 + * tree.c (free_lang_data_in_decl): Remove freeing conditional + on debuginfo level. + +2011-12-09 Joern Rennecke + + PR middle-end/40154 + * emit-rtl.c (set_dst_reg_note): New function. + * rtl.h (set_dst_reg_note): Declare. + * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note. + (emit_libcall_block, expand_fix): Likewise. + * function.c (assign_parm_setup_reg, expand_function_start): Likewise. + * expmed.c (expand_mult_const, expand_divmod): Likewise. + * reload1.c (gen_reload): Likewise. + + * dse.c (get_stored_val, get_call_args): Use gen_int_mode. + * expmed.c (expand_divmod): Likewise. + * combine.c (simplify_if_then_else): Likewise. + +2011-12-09 Kai Tietz + + * ira-color.c (print_hard_regs_subforest): Use + HOST_WIDEST_INT_PRINT_DEC instead of %lld. + (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT. + (add_allocno_hard_regs): Change type of argument cost + to HOST_WIDEST_INT. + * ira-conflict.c (build_conflict_bit_table): Replace use + of long-long by HOST_WIDEST_INT. + +2011-12-09 Georg-Johann Lay + + PR target/51425 + * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use + zero_extract:QIHI instead of zero_extract:HI. + +2011-12-09 Jakub Jelinek + Andrew Pinski + + PR tree-optimization/51117 + * tree-eh.c (optimize_clobbers): New function. + (execute_lower_eh_dispatch): Call it. + +2011-12-09 Richard Guenther + + PR tree-optimization/51482 + * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): + Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors. + +2011-12-09 Kai Tietz + + * implicit-zee.c (num_realized): Change type to long. + (num_ze_opportunities): Likewise. + +2011-12-08 Andrew Pinski + + * config/mips/mips-cpus.def (octeon+): New CPU. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'. + +2011-12-08 Bill Schmidt + + PR middle-end/39976 + * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI. + (struct hashable_expr): Add struct phi field. + (initialize_hash_element): Handle phis; change to use XCNEWVEC. + (hashable_expr_equal_p): Handle phis. + (iterative_hash_hashable_expr): Likewise. + (print_expr_hash_elt): Likewise. + (free_expr_hash_elt): Likewise. + (dom_opt_enter_block): Create equivalences from redundant phis. + (eliminate_redundant_computations): Handle redundant phis. + (lookup_avail_expr): Handle phis. + +2011-12-08 Jakub Jelinek + + PR tree-optimization/51466 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy + TREE_SIDE_EFFECTS. + +2011-12-08 Richard Guenther + + * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts + volatile when processing operands of an ADDR_EXPR. + (get_indirect_ref_operands): Likewise. + (get_tmr_operands): Likewise. + (get_expr_operands): Likewise. + +2011-12-08 Andreas Krebbel + + PR target/50395 + * config/s390/s390.c (s390_mainpool_finish): Emit the jump over + the literal pool as jump insn. + +2011-12-08 Richard Guenther + + PR tree-optimization/49772 + * tree-inline.c (optimize_inline_calls): Remove bail out on errors. + +2011-12-08 Richard Guenther + + PR lto/50747 + * lto-streamer-out.c (produce_symtab): Remove asserts. + +2011-12-08 Richard Guenther + + PR lto/49945 + * lto-streamer-out.c (tree_is_indexable): Localize variably + modified types and their FIELD_DECLs. + +2011-12-08 Eric Botcazou + + PR tree-optimization/51315 + * tree.h (get_object_or_type_alignment): Declare. + * expr.c (get_object_or_type_alignment): Move to... + * builtins.c (get_object_or_type_alignment): ...here. Add assertion. + * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to... + (tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into + MEM_REFs and use get_object_or_type_alignment for them. + (build_accesses_from_assign): Adjust for above change. + (access_precludes_ipa_sra_p): Likewise. + +2011-12-08 Richard Guenther + + PR lto/48437 + * lto-streamer-out.c (tree_is_indexable): Exclude block-local + extern declarations. + +2011-12-07 Andrew Pinski + + PR middle-end/45416 + * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for + SSA-expand. + +2011-12-07 Richard Guenther + + PR tree-optimization/50823 + * ipa-inline.c (edge_badness): Do not account for the number of + remaining calls. + +2011-12-07 Martin Jambor + + PR tree-optimization/50744 + * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive, + compute evaluation in HOST_WIDEST_INT. + (safe_add): New function + (propagate_effects): Use safe_add to accumulate effects. + +2011-12-06 Joel Sherrill + + * config/rs6000/rtems.h: Switch to using global_options_set + in SUBSUBTARGET_OVERRIDE_OPTIONS. + +2011-12-06 David S. Miller + + * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection. + +2011-12-06 Georg-Johann Lay + + * config/avr/avr.c (avr_file_start): Fix missing , + +2011-12-06 Jakub Jelinek + + PR target/51354 + * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note + unconditionally. + +2011-12-06 Georg-Johann Lay + + Forward-port from gcc-4_6-branch r181936 2011-12-02. + * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and + AT86RF401 have a 16-bit SP (their manual is bogus). + +2011-12-06 Georg-Johann Lay + + Forward-port from gcc-4_6-branch r181936 2011-12-02. + + PR target/51002 + * config/avr/avr.md (movhi_sp_r): Set insn condition to + !AVR_HAVE_8BIT_SP. + * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in + %B0,__SP_H__" if AVR_HAVE_8BIT_SP. + (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP. + +2011-12-06 Georg-Johann Lay + + PR target/51409 + PR target/49868 + * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1, + ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4, + ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum. + (avr_addrspace_t): New typedef. + (avr_addrspace): New declaration. + * config/avr/avr-c.c (avr_toupper): New static function. + (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use + avr_addrspace to get address space information. + * config/avr/avr.c (avr_addrspace): New variable. + (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes, + avr_asm_named_section, avr_section_type_flags, + avr_asm_select_section, avr_addr_space_address_mode, + avr_addr_space_convert, avr_emit_movmemhi): Use it. + (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode. + (avr_pgm_segment): Remove. + +2011-12-06 Richard Guenther + + PR middle-end/50601 + * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation + quirk adjustjment ... + * passes.c (rest_of_decl_compilation): ... here. + +2011-12-06 Richard Guenther + + PR middle-end/51436 + * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check + for the fact we do not have virtual operands when not optimizing. + +2011-12-06 Richard Guenther + + PR tree-optimization/51245 + * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces): + New function. + (vn_reference_lookup_3): Use it. Properly valueize all refs we create. + +2011-12-06 Iain Sandoe + + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize + rs6000_current_abi. + +2011-12-06 Richard Guenther + + PR tree-optimization/51363 + * gimple.c (gimple_rhs_has_side_effects): Remove. + * gimple.h (gimple_rhs_has_side_effects): Likewise. + * tree-ssa-dom.c (optimize_stmt): Simplify conditional. + +2011-12-06 Alan Modra + + PR target/50906 + * config/rs6000/rs6000.c (rs6000_emit_prologue ): + Do not mark r11 setup as frame-related. Pass correct offset to + rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related + arguments. Correct sp_offset. Remove "offset" fudge from + in-line rs6000_frame_related call. Rename misleading variable. + Fix comments and whitespace. Tidy some expressions. + (rs6000_emit_epilogue ): Always set frame_reg_rtx + to r11 in out-of-line case. Correct sp_offset. Pass correct + offset to rs6000_emit_savres_rtx. Rename misleading variable. + Fix comments and whitespace. Tidy some expressions. + (rs6000_emit_epilogue ): Add sp_offset + adjustment when !saving_GPRs_inline. Correct register mode + used in address calcs. + (rs6000_emit_epilogue ): Similarly when + !restoring_GPRs_inline. + +2011-12-06 Ramana Radhakrishnan + + * config/arm/vfp.md (*combine_vcvt_f64_): Fix + formatting character for vmov.f64 case. + +2011-12-05 Jakub Jelinek + + PR tree-optimization/51396 + * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize + if MUL_RESULT has zero uses. + + PR debug/51410 + * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls + for debug info if scope is file_scope. + + PR c/51339 + * c-decl.c (c_finish_incomplete_decl, finish_decl): Call + relayout_decl instead of layout_decl. + +2011-12-05 Richard Sandiford + + * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK + if there is in epilogue. + +2011-12-05 Richard Sandiford + + * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target + to emit_library_call_value. + (expand_atomic_compare_and_swap): Likewise. + +2011-12-05 Vladimir Makarov + + PR other/50775 + * ira-int.h (struct ira_object): Remove add_data. + (OBJECT_ADD_DATA): Remove. + + * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA + initialization. + + * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to + allocno_hard_regs_t, allocno_hard_regs. + (object_hard_regs_node_t, object_hard_regs_node): Rename to + allocno_hard_regs_node_t and allocno_hard_regs_node. + (struct allocno_color_data): Add new member last_process. Move + profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start + from object_color_data. + (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove. + (curr_allocno_process): New static variable. + (object_hard_regs_eq, object_hard_regs_htab): Rename to + allocno_hard_regs_eq and allocno_hard_regs_htab. + (init_object_hard_regs, finish_object_hard_regs): Rename to + init_allocno_hard_regs and finish_allocno_hard_regs. + (object_hard_regs_compare, object_hard_regs_node_t): Rename to + allocno_hard_regs_compare and allocno_hard_regs_node_t. + (create_new_object_hard_regs_node): Rename to + create_new_allocno_hard_regs_node. + (add_new_object_hard_regs_node_to_forest): Rename to + add_new_allocno_hard_regs_node_to_forest. + (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): + Rename to add_allocno_hard_regs_to_forest and + collect_allocno_hard_regs_cover. + (setup_object_hard_regs_nodes_parent): Rename to + setup_allocno_hard_regs_nodes_parent. + (remove_unused_object_hard_regs_nodes): Rename to + remove_unused_allocno_hard_regs_nodes. + (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num): + Rename to enumerate_allocno_hard_regs_nodes and + allocno_hard_regs_nodes_num. + (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to + allocno_hard_regs_nodes and allocno_hard_regs_subnode_t. + (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to + allocno_hard_regs_subnode and allocno_hard_regs_subnodes. + (object_hard_regs_subnode_index): Rename to + allocno_hard_regs_subnode_index. + (setup_object_hard_regs_subnode_index): Rename to + setup_allocno_hard_regs_subnode_index. + (get_object_hard_regs_subnodes_num): Rename to + get_allocno_hard_regs_subnodes_num. + (form_object_hard_regs_nodes_forest): Rename to + form_allocno_hard_regs_nodes_forest. + (finish_object_hard_regs_nodes_tree): Rename to + form_allocno_hard_regs_nodes_forest + (finish_object_hard_regs_nodes_forest): Rename to + finish_allocno_hard_regs_nodes_forest. + (setup_left_conflict_sizes_p): Use allocno data instead of object ones. + Process conflict allocnos once. + (update_left_conflict_sizes_p): Use allocno data instead of object + ones. Change prototype signature. + (empty_profitable_hard_regs): Use allocno data instead of object ones. + (setup_profitable_hard_regs): Ditto. + (get_conflict_profitable_regs): Rename to + get_conflict_and_start_profitable_regs. Use allocno data for + profitable regs calculation. + (check_hard_reg_p): Change prototype signature. Check profitable + regs for allocno not the objects. + (assign_hard_reg): Process conflict allocnos only once for + updating conflict costs. + (setup_allocno_available_regs_num): Use allocno data instead of + object ones. Modify debug output. + (color_pass): Remove initialization and finalization of object + color data. + +2011-12-05 Kazu Hirata + + PR target/51408 + * config/arm/arm.md (*minmax_arithsi): Always require the else + clause in the MINUS case. + +2011-12-05 Richard Guenther + + PR tree-optimization/50904 + * tree-ssa-loop-im.c (struct mem_ref): Remove vops member. + (MEM_ANALYZABLE): New. + (memory_references): Remove clobbered_vops and vop_ref_map + members, add all_refs_stored_in_loop member. + (memref_free): Adjust. + (mem_ref_alloc): Likewise. + (gather_mem_refs_stmt): Do not record clobbers, instead + record refs for unanalyzable stmts. + (gather_mem_refs_in_loops): Do not propagate clobbers. + (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free, + record_vop_access, get_vop_accesses, get_vop_stores, + add_vop_ref_mapping): Remove. + (create_vop_ref_mapping_loop): Adjust to simply record all stores. + (analyze_memory_references): Adjust. + (refs_independent_p): Check for not analyzable refs. + (can_sm_ref_p): Likewise. + (ref_indep_loop_p_1): Simplify. + (tree_ssa_lim_finalize): Adjust. + + * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE + rather than magic constants. Assign zero cost to PAREN_EXPR + and SSA_NAME copies. Assign cost proportional to the vector + size for vector constructors. + +2011-12-05 Richard Guenther + + * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field. + * tree-ssa-alias.c (ao_ref_init): Initialize it. + (ao_ref_init_from_ptr_and_size): Likewise. + (refs_may_alias_p_1): Two volatile accesses conflict. + (ref_maybe_used_by_call_p_1): Likewise. + (call_may_clobber_ref_p_1): Likewise. + * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize + volatile_p field. + +2011-12-05 Richard Guenther + + * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA + names. Remove SSA operand checking, call verify_ssa_operands. + * tree-ssa-operands.h (verify_ssa_operands): Declare. + * tree-ssa-operands.c (verify_ssa_operands): New function. + +2011-12-05 Ramana Radhakrishnan + + * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. + * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare. + * config/arm/constraints.md ("Dt"): New constraint. + * config/arm/predicates.md + (const_double_vcvt_power_of_two_reciprocal): New. + * config/arm/vfp.md (FCVTI32typename): New. + (FCVT): New iterator. + (*combine_vcvt_f32_): New. + (*combine_vcvt_f64_): New. + +2011-12-05 Richard Guenther + + * cgraph.c (cgraph_create_edge_1): Initialize + call_stmt_cannot_inline_p from the stmt if possible. + (cgraph_make_edge_direct): Likewise. + * gimple-streamer-in.c (input_gimple_stmt): Do not + call gimple_call_set_cannot_inline. + * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values. + (gimple_call_set_cannot_inline): Remove. + (gimple_call_cannot_inline_p): Likewise. + * ipa-inline-analysis.c (initialize_inline_failed): Look + at the edge call_stmt_cannot_inline_p flag. + * ipa-inline.c (can_inline_edge_p): Likewise. + (early_inliner): Only update the edge flag. + * ipa-prop.c (update_indirect_edges_after_inlining): Likewise. + (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline. + * cgraphunit.c (assemble_thunk): Likewise. + * gimple-fold.c (gimple_fold_call): Likewise. + + * tree.h (CALL_CANNOT_INLINE_P): Remove. + * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls. + * builtins.c (expand_builtin_alloca): With -fmudflap do not expand + alloca calls inline. + * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P. + * gimple.c (gimple_build_call_from_tree): Do not read + CALL_CANNOT_INLINE_P. + * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P. + +2011-12-05 Jakub Jelinek + Eric Botcazou + + PR middle-end/51323 + PR middle-end/50074 + * calls.c (internal_arg_pointer_exp_state): New variable. + (internal_arg_pointer_based_exp_1, + internal_arg_pointer_exp_scan): New functions. + (internal_arg_pointer_based_exp): New function. + (mem_overlaps_already_clobbered_arg_p): Use it. + (expand_call): Free internal_arg_pointer_exp_state.cache vector + and clear internal_arg_pointer_exp_state.scan_start. + +2011-12-04 Kaz Kojima + + * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC. + * config/sh/sync.md: New file. + * config/sh/sh.md: Include sync.md. + * config/sh/sh.opt (msoft-atomic): New option. + * doc/invoke.texi (SH Options): Document it. + +2011-12-04 Nathan Sidwell + + * gcov-io.h (struct gcov_info): Replace trailing array with + pointer to array. + * profile.c (branch_prob): Only call renamed + coverage_begin_function once. + * coverage.h (coverage_begin_output): Rename to ... + (coverage_begin_function): ... here. + * coverage.c (struct function_list): Rename to ... + (struct coverage_data): ... this. Update all uses. + (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals. + (bbg_file_opened, bbg_function_announced): Remove. + (get_coverage_counts): Adjust message. + (coverage_begin_ouput): Rename to ... + (coverage_begin_function): ... here. Move file opening to + coverage_init. Adjust for being called only once. + (coverage_end_function): Remove bbg file and inhibit further + output here on error. + (build_info_type): Adjust for change to pointer to array. + (build_info): Receive array of function pointers and adjust. + (create_coverage): Break into ... + (coverage_obj_init, coverage_obj_fn, coverage_obj_finish): + ... these, and adjust. + (coverage_init): Open the notes file here. Tidy. + (coverage_finish): Call coverage_obj_init etc. + +2011-12-04 Ira Rosen + + PR middle-end/51285 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit + phi nodes for outer loop in case of double reduction. + +2011-12-04 Jérémie Detrey + + PR target/51393 + * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second + parameter as long long. + +2011-12-04 Richard Sandiford + + PR middle-end/51351 + * optabs.c (init_sync_libfuncs): Use "or" rather than "ior" + in the external names. + +2011-12-03 Jack Howarth + + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for + non-PIC code when targeting 10.7 or later. + +2011-12-03 Iain Sandoe + + * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when + Darwin >= 10. + (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10. + (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10. + +2011-12-03 Jakub Jelinek + + * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR, + VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and + VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument. + (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR, + VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR + and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments. + + PR debug/50317 + * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type + vars that aren't referenced. + (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE + of unreferenced local vars. + * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also + TREE_ADDRESSABLE vars that satisfy target_for_debug_bind. + +2011-12-03 Anatoly Sokolov + + * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove. + * config/arm/arm-protos.h (aapcs_libcall_value): Remove. + * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define. + (arm_libcall_value_1, arm_function_value_regno_p): New function. + (arm_function_value, arm_libcall_value): Use arm_libcall_value_1. + (aapcs_libcall_value): Make static. + (arm_libcall_value): Add static qualifier. + +2011-12-02 Jakub Jelinek + + PR target/51387 + * config/i386/sse.md (mul3 with VI1_AVX2 iterator): For + V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 } + permutation instead of extract even permutation. + +2011-12-02 Nathan Sidwell + + * gcov.c (struct arc_info): Add is_throw field. + (struct (block_info): Add exceptional field, reduce flags size to + account for it. + (struct function_info): Add has_catch field. + (struct line_info): Add unexceptional field. + (process_file): Call find_exception_blocks if necessary. + (read_graph_file): Adjust. Note if an exceptional edge is seen. + (find_exception_blocks): New. + (add_line_counts): Set line's unexceptional flag if not exceptional. + (output_branch_count): Note exceptional arcs, lines and blocks. + * gcov-dump.c (tag_arcs): Decode arc flags. + * doc/gcov.texi: Document '=====' lines. + +2011-12-02 Anatoly Sokolov + + * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, + PRINT_OPERAND_PUNCT_VALID_P): Remove macros. + * config/ia64/ia64-protos.h (ia64_print_operand, + ia64_print_operand_address): Remove. + * config/ia64/ia64.c (TARGET_PRINT_OPERAND, + TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P): + Define. + (ia64_print_operand_punct_valid_p): New function. + (ia64_print_operand, ia64_print_operand_address): Make static. + +2011-12-02 Michael Meissner + + PR target/51390 + * config/rs6000/rs6000.c (def_builtin): Use the correct field to + figure out the function's attributes. + (struct builtin_description): Mark mask field as const since we no + longer need to modify it for SPE and PAIRED builtins. + +2011-12-02 Joseph Myers + + Revert: + + 2008-09-18 Andrew Pinski + + PR rtl-opt/37451 + * loop-doloop.c (doloop_modify): New argument zero_extend_p and + zero extend count after the correction to it is done. + (doloop_optimize): Update call to doloop_modify, don't zero extend + count before call. + + 2008-11-03 Andrew Pinski + + PR rtl-opt/37782 + * loop-doloop.c (doloop_modify): Add from_mode argument that says what + mode count is in. + (doloop_optimize): Update call to doloop_modify. + +2011-12-02 Richard Guenther + + PR lto/47259 + * ipa.c (varpool_externally_visible_p): Register variables + are always externally visible. + +2011-12-02 Sameera Deshpande + + * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if + non-NULL. + +2011-12-02 Martin Jambor + + PR tree-optimization/50622 + * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand + if both lacc and racc are grp_partial_lhs. + +2011-12-01 Kaz Kojima + + PR target/50814. + * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as + TARGET_SH3. + (shl_sext_kind): Likewise. + * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise. + * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove. + (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3. + (ashlsi3): Likewise. + (ashrsi3_d): Likewise. + (lshrsi3_d): Likewise. + (lshrsi3): Likewise. + +2011-12-01 Diego Novillo + + PR bootstrap/51346 + * ipa-inline.c (can_inline_edge_p): If the edge E has a statement, + use the statement's inline indicator instead of E's. + Remove consistency check. + +2011-12-01 Diego Novillo + + PR bootstrap/51346 + Revert + + 2011-11-29 Diego Novillo + + * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. + Update field call_stmt_cannot_inline_p from call + graph edge, if needed. + * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c. + +2011-12-01 Nathan Sidwell + + PR gcov-profile/51113 + * coverage.c (build_var): Keep coverage variables static. + +2011-12-01 Jakub Jelinek + + PR tree-optimization/51356 + * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if + vectype doesn't have VECTOR_MODE_P. + + PR debug/50317 + * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing + as unnecessary a store to a variable with gimple reg type. + * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit + on local unreferenced variables. + * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs + for !target_for_debug_bind variables. + +2011-12-01 Patrick Marlier + + PR middle-end/51273 + * cgraph.h (cgraph_call_node_duplication_hooks): Declare. + * cgraph.c (cgraph_call_node_duplication_hooks): Make global. + * cgraphunit.c (cgraph_copy_node_for_versioning): Call it. + +2011-12-01 Andrew Pinski + + PR lto/51198 + * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's + DECL_INITIAL also. + +2011-12-01 Jakub Jelinek + + PR tree-optimization/51246 + * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs. + + PR rtl-optimization/51014 + * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs + both from bb and orig_bb. + +2011-12-01 Joern Rennecke + + PR tree-optimization/50802 + * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test + considering what happens to ranges during sign changes and/or + intermediate narrowing conversions. + +2011-11-30 John David Anglin + + PR middle-end/50283 + * config/pa/pa.md (in_branch_delay): Disallow frame related insns. + (in_nullified_branch_delay): Likewise. + (in_call_delay): Likewise. + +2011-11-30 Richard Henderson + + * predict.c (expr_expected_value_1): Assume compare-and-swap builtin + boolean return is true. + +2011-11-30 Jakub Jelinek + + PR rtl-optimization/51044 + * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction + rather than just insn body. + + PR target/50725 + * function.c (thread_prologue_and_epilogue_insns): If + stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE + regset. + + PR middle-end/51089 + * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to + avoid creating duplicate edges here. + (cleanup_empty_eh_unsplit): And remove it in the caller. + +2011-11-30 Andrew Pinski + + PR c/51321 + * c-parser.c (c_parser_postfix_expression): Check groktypename results + before looking at the main variant. + +2011-11-30 Jakub Jelinek + + PR rtl-optimization/48721 + * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set + reg_pending_barrier to TRUE_BARRIER. + + PR rtl-optimization/48721 + * sched-ebb.c (begin_move_insn): Insert empty unreachable + block after BARRIER if insn is followed by it. + +2011-11-30 Richard Henderson + + * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New. + * config/sparc/sparc.opt (mmemory-model=): New option. + * doc/invoke.texi (Sparc Options): Document it. + * config/sparc/sparc.c (sparc_option_override): Provide default + for sparc_memory_model. + (sparc_emit_membar_for_model): Omit barrier combinations that are + implied by the memory model. + +2011-11-30 Richard Henderson + + * config/sparc/sync.md (I124MODE): New mode iterator. + (memory_barrier): Remove. + (atomic_exchangesi): New. + (swapsi): Rename from *swapsi. + (atomic_test_and_set): New. + (ldstubqi): Rename from *ldstubqi, merge with expander. + (ldstub): Rename from *ldstub, merge with expander. + (sync_lock_test_and_setsi): Remove. + (sync_lock_test_and_set): Remove. + +2011-11-30 Richard Henderson + + * config/sparc/constraints.md ("w"): New. + * config/sparc/predicates.md (mem_noofs_operand): New. + * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static. + Generate the boolean result of the atomic_compare_exchange. + (sparc_expand_compare_and_swap): New. + * config/sparc/sync.md (atomic_compare_and_swap): New. + (atomic_compare_and_swap_1): Rename from + *sync_compare_and_swap, use mem_noofs_operand. + (*atomic_compare_and_swapdi_v8plus): Rename from + *sync_compare_and_swapdi_v8plus, use mem_noofs_operand. + (sync_compare_and_swap): Remove. + (sync_compare_and_swap): Remove. + +2011-11-30 Richard Henderson + + * config/sparc/predicates.md (register_or_v9_zero_operand): New. + * config/sparc/sparc.md (UNSPEC_ATOMIC): New. + * config/sparc/sync.md (atomic_load): New. + (atomic_loaddi_1, atomic_store, atomic_storedi_1): New. + +2011-11-30 Richard Henderson + + * config/sparc/predicates.md (zero_or_v7_operand): New. + * config/sparc/sparc.c (sparc_emit_membar_for_model): New. + * config/sparc/sparc-protos.h: Update. + * config/sparc/sync.md (mem_thread_fence): New. + (memory_barrier): Use sparc_emit_membar_for_model. + (membar, *membar_empty, *membar_storestore, *membar_storeload): New. + (*membar_v8): Accept and ignore the membar mask. + (*membar): Accept and print the membar mask. + +2011-11-30 Matthew Gretton-Dann + + * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue. + * config/arm/arm.md (mul64): New attribute. + (generic_sched): Cortex-A15 is not scheduled generically. + (cortex-a15.md): Include. + * config/arm/cortex-a15.md: New machine description. + * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md. + +2011-11-30 Matthew Gretton-Dann + + * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed. + +2011-11-30 Iain Sandoe + + * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description. + * doc/tm.texi: Regenerate. + * flags.h (flag_next_runtime): Remove references. + * toplev.c: Likewise. + * defaults.h (NEXT_OBJC_RUNTIME): Provide default. + * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME. + * config/darwin.c (darwin_override_options): Provide default + Objective-C abi settings and target conflict checks. + * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused + code. Adjust indenting. + +2011-11-29 Joseph Myers + + * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES) + (REG_CLASS_CONTENTS): Add NON_SP_REGS. + (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS. + * config/sh/constraints.md (u): New constraint. + +2011-11-29 Oleg Endo + + PR target/51337 + * config/sh/sh.c (sh_secondary_reload): Add case when FPUL + register is being loaded from a pseudo in memory. + +2011-11-29 DJ Delorie + + * config.gcc (rl78-*-elf): New case. + * doc/extend.texi: Add RL78 documentation. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + * doc/contrib.texi: Add RL78. + * doc/install.texi: Add rl78-*-elf. + * config/rl78: New directory for the Renesas RL78. + +2011-11-29 Jakub Jelinek + + PR tree-optimization/51247 + * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision + types instead of adding 1 subtract -1 and instead of subtracting 1 + add -1 to avoid overflows. + +2011-11-29 Andrew MacLeod + + PR target/50123 + * optabs.c (maybe_optimize_fetch_op): New. Look for more optimal + instructions for a FECTH_OP or OP_FECTH sequence. + (expand_atomic_fetch_op): Call maybe_optimize_fetch_op. + +2011-11-29 Uros Bizjak + + * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs. + (movdi_via_fpu): Remove. + (loaddi_via_fpu): New insn pattern. + (storedi_via_fpu): Ditto. + (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu. + (atomic_storedi_fpu): Ditto. + * reg-stack.c (get_true_reg): Handle UNSPEC_LDA. + (subst_stack_regs_pat): Handle UNSPEC_STA. + +2011-11-29 Uros Bizjak + + * config/i386/i386.md (*floathi2_i387_with_temp): Do not + allocate scratch memory for alternative 0. + +2011-11-29 Michael Meissner + + * config/rs6000/rs6000-builtins.def: Completely rewrite builtin + handling to centralize more of the builtins in this file. Change + some builtin enumerations to be more consistant. Use a new mask + to hold the current builtins, including SPE and PAIRED builtins + which no longer are set via target_flags masks. Add + -mdebug=builtin debug support. For power machines, define all + Altivec and VSX buitins when the compiler starts, but don't allow + the use of a builtin unless the appropriate switch is used, or + #pragma GCC target is used to change the options. If the user + uses #pragma GCC target, update the appropriate hardware macros. + * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto. + * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto. + * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto. + (rs6000_define_or_undefine_macro): Ditto. + (rs6000_target_modify_macros): Ditto. + (rs6000_cpu_cpp_builtins): Ditto. + (altivec_overloaded_builtins): Ditto. + (altivec_build_resolved_builtin): Ditto. + * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto. + (rs6000_builtin_info): Ditto. + (def_builtin): Ditto. + (enable_mask_for_builtins): Ditto. + (DEBUG_FMT_X): Ditto. + (rs6000_debug_reg_global): Ditto. + (rs6000_builtin_mask_calculate): Ditto. + (rs6000_option_override_internal): Ditto. + (rs6000_builtin_conversion): Ditto. + (rs6000_builtin_vectorized_function): Ditto. + (bdesc_3arg): Ditto. + (bdesc_dst): Ditto. + (bdesc_2arg): Ditto. + (builtin_description_predicates): Ditto. + (bdesc_altivec_preds): Ditto. + (bdesc_spe_predicates): Ditto. + (bdesc_spe_evsel): Ditto. + (bdesc_paired_preds): Ditto. + (bdesc_abs): Ditto. + (bdesc_1arg): Ditto. + (rs6000_overloaded_builtin_p): Ditto. + (rs6000_expand_unop_builtin): Ditto. + (bdesc_2arg_spe): Ditto. + (spe_expand_builtin): Ditto. + (rs6000_invalid_builtin): Ditto. + (rs6000_expand_builtin): Ditto. + (rs6000_init_builtins): Ditto. + (spe_init_builtins): Ditto. + (paired_init_builtins): Ditto. + (altivec_init_builtins): Ditto. + (builtin_function_type): Ditto. + (rs6000_common_init_builtins): Ditto. + (rs6000_builtin_reciprocal): Ditto. + (rs6000_builtin_mask_names): Ditto. + (rs6000_pragma_target_parse): Ditto. + (rs6000_function_specific_print): Ditto. + * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto. + (MASK_DEBUG_ALL): Ditto. + (TARGET_DEBUG_BUILTIN): Ditto. + (TARGET_EXTRA_BUILTINS): Ditto. + (REGISTER_TARGET_PRAGMAS): Ditto. + (enum rs6000_btc): Ditto. + (RS6000_BTC_*): Ditto. + (RS6000_BTM_*): Ditto. + (enum rs6000_builtins): Ditto. + * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto. + (rs6000_target_modify_macros): Ditto. + (rs6000_target_modify_macros_ptr): Ditto. + + * config/rs6000/vector.md (unsfloat2): Use the + standard name for converting vector unsigned values to floating + point. Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which + is handled by machine independent code. + * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto. + (rs6000_builtin_conversion): Ditto. + +2011-11-29 Dodji Seketeli + + * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair. + (maybe_unwind_expanded_macro_loc): Adjust. + +2011-11-29 David Edelsohn + Aldy Hernandez + + * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl + if DECL_ONE_ONLY. + (ipa_tm_create_version): Same. + +2011-11-29 Bernd Schmidt + + * haifa-sched.c (recompute_todo_spec): Simplify and correct the + code checking for a clobber of a condition register when deciding + whether to predicate. + +2011-11-29 Diego Novillo + + * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. + Update field call_stmt_cannot_inline_p from call graph edge, if needed. + * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c. + +2011-11-29 Sameera Deshpande + + * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE. + (movdf_soft_insn): Likewise. + * config/arm/fpa.md (thumb2_movdf_fpa): Likewise. + * config/arm/neon.md (neon_mov): Likewise. + * config/arm/vfp.md (movdi_vfp): Likewise. + (movdi_vfp_cortexa8): Likewise. + (movdf_vfp): Likewise. + +2011-11-29 Jakub Jelinek + + PR middle-end/50074 + * expr.c (expand_expr_addr_expr_1): Don't call force_operand for + EXPAND_SUM modifier. + +2011-11-29 Ira Rosen + + PR tree-optimization/51301 + * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that + the last statement doesn't convert to a bigger type than the original + type of the computation. + +2011-11-28 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): + Handle overlap between retval and oldval. Always compute boolval + from CR0 EQ value. + +2011-11-28 Jakub Jelinek + + PR debug/50317 + * tree-ssa.c (execute_update_addresses_taken): Remove + var ={v} {CLOBBER} stmts instead of rewriting them into + var_N ={v} {CLOBBER}. + + PR middle-end/50907 + * function.c (convert_jumps_to_returns): When redirecting an edge + succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag. + + PR tree-optimization/50078 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over + TREE_THIS_VOLATILE also from the old to new lhs resp. rhs. + + PR tree-optimization/50682 + * tree-eh.c (maybe_remove_unreachable_handlers): New function. + * tree-flow.h (maybe_remove_unreachable_handlers): New prototype. + * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it. + +2011-11-28 Georg-Johann Lay + + * doc/extend.texi (AVR Built-in Functions): Add documentation for + __builtin_avr_map8 and __builtin_avr_map16. + + * config/avr/avr.md: Document new %t and %T asm output codes. + (define_c_enum "unspec"): Add UNSPEC_MAP_BITS. + (adjust_len): Add map_bits. + (map_bitsqi, map_bitshi): New insns. + * config/avr/avr-protos.h (avr_out_map_bits): New. + * config/avr/avr-protos.c (print_operand): Implement %t and %T. + (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS. + (avr_double_int_push_digit): New function. + (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions. + (avr_sig_map, avr_map_hamming_byte): New functions. + (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits, + avr_out_map_bits): New functions. + (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. + (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16. + (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ... + (avr_expand_builtin): ...and expand them. + * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines: + __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16. + +2011-11-27 Richard Sandiford + + PR target/51278 + * config/mips/mips.c (mips_rtx_costs): Handle baddu. + +2011-11-27 Richard Sandiford + + * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode. + +2011-11-27 Richard Sandiford + + * config/mips/mips-protos.h (mips_emit_binary): Declare. + * config/mips/mips.c (mips_emit_binary): Make global. + (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode. + (mips_conditional_register_usage): Don't treat LO and HI as + register operands in MIPS16 mode. + (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16 + for MIPS16 code. + * config/mips/predicates.md (muldiv_target_operand): New predicate. + (move_operand): Allow hilo_operand. + * config/mips/mips.md (mul3): Explicitly specify LO as the + target of MIPS16 multiplies, then move it into the target register. + (mul3_internal, *macc2, *msac2): Use muldiv_target_operand. + (mulsidi3_32bit_mips16): New expander. + (mulsidi3_32bit): Use muldiv_target_operand. + (mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP. + (mulsidi3_64bit): Require !TARGET_MIPS16. Split into + mulsidi3_64bit_split. + (mulsidi3_64bit_mips16): New expander. + (mulsidi3_64bit_split): Likewise, using expansions from + two previous define_splits. + (mulsidi3_64bit_hilo, *muls_di, msubsidi4): Use + muldiv_target_operand. + (mulsi3_highpart): Use mulsi3_highpart_split for MIPS16 code. + (mulsi3_highpart_internal): Require !TARGET_MIPS16. + Split into mulsi3_highpart_split. + (mulsi3_highpart_split): New expander. + (muldi3_highpart): Turn into a define_expand. + Use muldi3_highpart_split for MIPS16 code. + (muldi3_highpart_internal): Renamed from muldi3_highpart. + Require !TARGET_MIPS16. Split into muldi3_highpart_split. + (muldi3_highpart_split): New expander. + (mulditi3): Explicitly specify LO as the target of MIPS16 + multiplies, then move it into the target register. + (mulditi3_internal, maddsidi4): Use muldiv_target_operand. + (divmod4, udivmod4): Turn into define_expands. + Use divmod4_split for MIPS16 code, then explicitly + move LO into operand 0. + (divmod4_internal, udivmod4_internal): Renamed + from divmod4. Use muldiv_target_operand. + Require !TARGET_MIPS16. Split into divmod4_split. + (divmod4_split): New expander. + (divmod4_hilo_): Use muldiv_target_operand. + (mfhi_): Use hilo_operand. + +2011-11-27 Richard Sandiford + + * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set + and x_operand_reg_set. + (accessible_reg_set, operand_reg_set): New macros. + * reginfo.c (init_reg_sets): Initialize accessible_reg_set and + operand_reg_set. + (saved_accessible_reg_set, saved_operand_reg_set): New variables. + (save_register_info): Save them. + (restore_register_info): Restore them. + (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set. + Remove NO_REGS registers from operand_reg_set. Treat members + of operand_reg_set as fixed. + * recog.c (general_operand): Check operand_reg_set rather than NO_REGS. + (register_operand, nonmemory_operand): Likewise. + * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of + register variables. Check accessible_reg_set and operand_reg_set. + * config/mips/mips.c (mips_conditional_register_usage): Remove + inaccessible register from accessible_reg_set, rather than just + making them fixed. + +2011-11-27 Gerald Pfeifer + + * config/pa/pa-linux.h (TARGET_GAS): Remove comment. + +2011-11-26 Richard Henderson + + * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs + for Linux. + +2011-11-26 Richard Henderson + + * optabs.c (expand_atomic_fetch_op): Always return result. + + * optabs.c (init_sync_libfuncs_1): Include max in iteration. + + * omp-low.c (expand_omp_atomic): Assume anything aligned to + BIGGEST_ALIGNMENT is aligned. + +2011-11-26 Richard Henderson + + * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New. + (UNSPECV_TAS_1, UNSPECV_TAS_2): New. + (I): New mode iterator. + (xz): New mode attribute. + * config/m68k/sync.md: New file. + + * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New. + * config/m68k/m68k.c (m68k_init_sync_libfuncs): New. + +2011-11-26 Nathan Sidwell + + PR gcov-profile/51297 + * gcov.c (main): Allocate initial names and sources arrays. + (find_source): Don't check for null name or source arrays here. + +2011-11-26 Jakub Jelinek + + PR rtl-optimization/49912 + * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit + when counting n_branch. + +2011-11-26 Uros Bizjak + + * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes. + +2011-11-26 Joern Rennecke + + PR middle-end/50074 + * calls.c (mem_overlaps_already_clobbered_arg_p): + Return false if no outgoing arguments have been stored so far. + +2011-11-25 Georg-Johann Lay + + * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT. + +2011-11-24 Andrew MacLeod + + PR other/51011 + * tree.h (is_builtin_name): No longer external. + * builtins.c (is_builtin_name): Make static. + * varasm.c (incorporeal_function_p): __sync and __atomic external calls + are not incorporeal and may need asm label processing. + +2011-11-25 Georg-Johann Lay + + PR target/50566 + * config/avr/avr-protos.h (avr_log_t): Add field .builtin. + * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it. + Don't bypass TARGET_ALL_DEBUG. Print self-info with ?. + (avr_log_vadump): Support %D and %X to print double_int. + (avr_double_int_pop_digit): New static function. + (avr_dump_double_int_hex): New static function. + +2011-11-24 Enkovich Ilya + + PR target/51287 + * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn + attr check. + +2011-11-24 Andrew MacLeod + + * optab.c (maybe_emit_atomic_exchange): New. Try to emit an + atomic_exchange pattern. + (maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange + using __sync_lock_test_and_set. + (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an + exchange using a compare_and_swap loop. + (expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set. + (expand_atomic_test_and_set): New. Expand test_and_set operation. + (expand_atomic_exchange): Use new maybe_emit_* functions. + (expand_atomic_store): Use new maybe_emit_* functions. + * builtins.c (expand_builtin_sync_lock_test_and_set): Call + expand_sync_lock_test_and_set routine. + (expand_builtin_atomic_exchange): Remove parameter from call. + (expand_builtin_atomic_clear): Use atomic_clear pattern if present. + (expand_builtin_atomic_test_and_set): Add target and simply call + expand_atomic_test_and_set. + (expand_builtin): Add target to expand_builtin_atomic_test_and_set. + * expr.h (expand_atomic_exchange): Add parameter. + (expand_sync_lock_test_and_set): New prototype. + (expand_atomic_test_and_set, expand_atomic_clear): New prototypes. + +2011-11-24 H.J. Lu + + PR target/51134 + * config/i386/i386.h (processor_costs): Revert revision 181357. + * config/i386/i386.c (cost models): Likewise. + (core_cost): Likewise. + (promote_duplicated_reg): Likewise. + (promote_duplicated_reg_to_size): Likewise. + (processor_target): Likewise. + (expand_set_or_movmem_via_loop_with_iter): Likewise. + (expand_set_or_movmem_via_loop): Likewise. + (emit_strset): Likewise. + (expand_movmem_epilogue): Likewise. + (expand_setmem_epilogue): Likewise. + (expand_movmem_prologue): Likewise. + (expand_setmem_prologue): Likewise. + (expand_constant_movmem_prologue): Likewise. + (expand_constant_setmem_prologue): Likewise. + (decide_alg): Likewise. + (decide_alignment): Likewise. + (ix86_expand_movmem): Likewise. + (ix86_expand_setmem): Likewise. + (ix86_slow_unaligned_access): Likewise. + * config/i386/i386.md (strset): Likewise. + * config/i386/sse.md (vec_dupv4si): Likewise. + (vec_dupv2di): Likewise. + +2011-11-24 Georg-Johann Lay + + * config/avr/avr.md (*rotlhi2.15): Set length to 4. + +2011-11-24 Razya Ladelsky + + * tree-data-ref.c (initialize_data_dependence_relation): Update + comment for the self dependence case. + (compute_self_dependence): Remove. + * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to + compute_self_dependenc. + +2011-11-24 Alan Modra + + * c-decl.c (warn_if_shadowing): Don't warn if shadowed + identifier is from system header. + +2011-11-23 Jakub Jelinek + + PR target/51261 + * config/i386/i386.c (decide_alg): Initialize *dynamic_check + even if !optimize. + +2011-11-23 Vladimir Makarov + + PR rtl-optimization/48455 + * doc/invoke.texi (-fira-region): Document default values. + + * flags-types.h (enum ira_region): Add new value + IRA_REGION_AUTODETECT. + + * common.opt (fira-region): Set up initial value to + IRA_REGION_AUTODETECT. + + * toplev.c (process_options): Set up flag_ira_region depending on + -O options. + + * ira.c (ira.c): Remove optimize guard for ira_build. + +2011-11-23 Chung-Lin Tang + + PR rtl-optimization/50496 + * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX + only after epilogue is created. Add comments. + +2011-11-22 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter. + Generate the barrier required for the memory model. + (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New. + (UNSPEC_CMPXCHG_REL): New. + * config/ia64/sync.md (mem_thread_fence): New. + (atomic_load, atomic_store): New. + (atomic_compare_and_swap): New. + (cmpxchg_acq_, cmpxchg_acq_di): New. + (atomic_exchange): New. + (xchg_acq_): Rename from sync_lock_test_and_set. + (atomic_, atomic_nand): New. + (atomic_fetch_, atomic_fetch_nand): New. + (atomic__fetch, atomic_nand_fetch): New. + (fetchadd_rel_): New. + (sync_, sync_nand): Remove. + (sync_old_, sync_old_nand): Remove. + (sync_new_, sync_new_nand): Remove. + (sync_compare_and_swap): Remove. + (sync_lock_release): Remove. + + * config/ia64/ia64.md: Use define_c_enum for UNSPEC_* + and UNSPECV_* constants. + +2011-11-22 Tom de Vries + + PR rtl-optimization/50764 + * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are + not moved past preceding jump. + +2011-11-22 Jeff Law + + * doc/contrib.texi: Add entry for David Binderman. + +2011-11-22 Andreas Krebbel + + * postreload.c (reload_combine): Mark reg_state as invalid at + volatile insns if there has been a use already. + +2011-11-21 Aldy Hernandez + + * opts.c (finish_options): Do not fail for -fgnu-tm. + * gimple-streamer-out.c (output_gimple_stmt): Handle + GIMPLE_TRANSACTION. + * gimple-streamer-in.c (input_gimple_stmt): Same. + * lto-cgraph.c (input_overwrite_node): Read tm_clone bit. + (lto_output_node): Write tm_clone bit. + +2011-11-22 Ian Lance Taylor + + * doc/install.texi (Configuration): Correct doc of + --enable-build-poststage1-with-cxx: it is not experimental. + +2011-11-22 Jakub Jelinek + + PR tree-optimization/51074 + * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR + handling for BYTES_BIG_ENDIAN. + * optabs.c (can_vec_perm_for_code_p): Likewise. + +2011-11-22 Michael Matz + + PR other/51125 + * trans-mem.c (expand_block_tm): Ignore clobbers. + +2011-11-22 Iain Sandoe + + * config/darwin.h (ENDFILE_SPEC): New. + (DARWIN_CRT1_SPEC): Add crttms.o. + (STARTFILE_SPEC): Likewise for dynamic libs and bundles. + * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o. + +2011-11-22 Michael Matz + + PR c++/51264 + * tree.c (iterative_hash_expr): Remove break after return. + +2011-11-22 Iain Sandoe + + * target.def (tm_clone_table_section): New hook. + * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. + * doc/tm.texi: Regenerate. + * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section. + * output.h (default_clone_table_section): New prototype. + * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New. + * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype. + * config/darwin.c (darwin_tm_clone_table_section): New. + +2011-11-21 Torvald Riegel + + * trans-mem.c (diagnose_tm_1): Print an expression instead of a + declaration in error messages for indirect calls. + +2011-11-21 David S. Miller + + * config/sparc/sparc.c (sparc_regmode_natural_size): New function + implementing REGMODE_NATURAL_SIZE taking into consideration vector + modes. + (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P. + * config/sparc/sparc-protos.h (sparc_regmode_natural_size, + sparc_modes_tieable_p): Declare. + * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE, + MODES_TIEABLE_P): Use new helper functions. + + Revert + 2011-11-16 Andreas Krebbel + + PR middle-end/50325 + * expmed.c (store_bit_field_1): Use extract_bit_field on big + endian targets if the source cannot be exactly covered by word + mode chunks. + +2011-11-21 Jakub Jelinek + + PR debug/50827 + * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP + macro instead of XEXP. + +2011-11-21 Andreas Tobler + + * configure: Regenerate. + +2011-11-21 Georg-Johann Lay + + * config/avr/avr.c (output_reload_in_const): Loading a byte with 0 + must not affect cc0. + * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any + register does not change cc0. Same for any constant to ld-register. + +2011-11-21 Uros Bizjak + + * config/i386/mmx.md (unspec) : + Move from config/i386/i386.md + (unspecv) : Ditto. + * config/i386/sse.md (unspec) : Ditto. + (unspecv) : + Ditto. + * config/i386/sync.md (unspec) : Ditto. + (unspecv) : Ditto. + (sse2_lfence): Move from config/i386/sse.md. + (*sse2_lfence): Ditto. + (sse_sfence): Ditto. + (*sse_sfence): Ditto. + (sse2_mfence): Ditto. + (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also + for TARGET_64BIT. + (mem_thread_fence): Use mfence_sse2. + +2011-11-21 Georg-Johann Lay + + * config/avr/avr.h (struct base_arch_s): Add field sfr_offset. + * config/avr/avr-devices.c: Ditto. And initialize it. + * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define + __AVR_SFR_OFFSET__. + * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove. + (out_movhi_r_mr, out_movhi_mr_r): Remove. + (out_movsi_r_mr, out_movsi_mr_r): Remove. + * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20. + (*insv.io, *insv.not.io): Ditto. + * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static. + (print_operand): Implement "%i" to print address as I/O address. + (output_movqi): Clean up call of out_movqi_mr_r. + (output_movhi): Clean up call of out_movhi_mr_r. + (avr_file_start): Use avr_current_arch->sfr_offset instead of + magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1. + (avr_out_sbxx_branch): Use %i instead of %m-0x20. + (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static. + (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len. + (out_shift_with_cnt): Clean up code: Use avr_asm_len. + (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources. + (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources. + Clean up call of avr_out_store_psi. + (output_reload_in_const): Don't cut symbols longer than 2 bytes. + (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to + try if setting pre-cleared register is advantageous. + (avr_out_plus_1): Use gen_int_mode instead of GEN_INT. + +2011-11-20 Joey Ye + + * expr.c (expand_expr_real_1): Correctly handle strict volatile + bitfield loads smaller than mode size. + +2011-11-20 Richard Henderson + + * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs. + +2011-11-20 Uros Bizjak + + PR target/51235 + * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP + patterns for supported mode only. + + PR target/51236 + * config/i386/i386.c (ix86_expand_builtin) + : Use CODE_FOR_avx2_gathersiv4di. + +2011-11-20 Uros Bizjak + + * config/i386/i386.md (UNSPEC_MOVNTI): Remove. + (UNSPEC_MOVNTQ): New unspec. + * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi. + Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT. + * config/i386/sse.md (sse2_movnti): Use UNSPEC_MOVNT instead of + UNSPEC_MOVNTI. + (STORENT_MODE): Add DI and V4DI modes. + +2011-11-20 Nathan Sidwell + + PR gcov-profile/51113 + * coverage.c (build_var): Propagate visibility for public + decls. Use make_decl_one_only for PIC correctness. + + testsuite/ + * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage + * gcc.misc-tests/gcov-16.c: New. + * gcc.misc-tests/gcov-17.c: New. + * g++.dg/gcov/gcov-8.C: New. + * g++.dg/gcov/gcov-9.C: New. + * g++.dg/gcov/gcov-10.C: New. + +2011-11-19 Eric Botcazou + + PR rtl-optimization/51187 + * reorg.c (relax_delay_slots): Do not consider a jump useless if there + is a barrier between the jump and its target label. + +2011-11-19 Patrick Marlier + + PR middle-end/51211 + * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION. + +2011-11-19 Eric Botcazou + + * expmed.c (store_bit_field_1): Revert bogus formatting change. + +2011-11-19 Richard Earnshaw + + PR target/50493 + * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial + overlap of src and dest operands. + +2011-11-19 Iain Sandoe + + * config/darwin.h (ASM_DEBUG_SPEC): New. + * config/darwin9.h (ASM_DEBUG_SPEC): New. + +2011-11-18 Jan Hubicka + + * config/i386/i386.c (atom_cost): Disable SSE loop until alignment + issues are fixed. + +2011-11-18 Anatoly Sokolov + + * config/cris/cris.c (cris_function_value_regno_p): Make static. + (TARGET_FUNCTION_VALUE_REGNO_P): Define. + * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove. + * config/cris/cris-protos.h (cris_function_value_regno_p): Remove. + +2011-11-18 H.J. Lu + + PR target/33944 + * doc/extend.texi: Document __builtin_ia32_movnti64. + + * config/i386/emmintrin.h (_mm_stream_si64): New. + + * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG. + + * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64. + (bdesc_special_args): Update __builtin_ia32_movnti. Add + __builtin_ia32_movnti64. + (ix86_expand_special_args_builtin): Handle + VOID_FTYPE_PLONGLONG_LONGLONG. + + * config/i386/i386.md (UNSPEC_MOVNTI): New. + + * config/i386/sse.md (sse2_movntsi): Renamed to ... + (sse2_movnti): This. + +2011-11-18 Georg-Johann Lay + + PR target/49868 + * config/avr/avr.h (base_arch_s): Add field n_segments. + (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, + ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces. + (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines. + (INIT_EXPANDERS): New define. + * config/avr/avr-protos.h (avr_mem_pgmx_p): New. + (avr_init_expanders): New. + (avr_emit_movmemhi, avr_out_movmem): New. + (avr_xload_libgcc_p): New. + * config/avr/avr-c.c (avr_register_target_pragmas): Register + address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx. + (avr_cpu_cpp_builtins): Add built-in defines __PGM1, + __PGM2, __PGM3, __PGM4, __PGM5, __PGMX. + * config/avr/avr-devices.c (avr_arch_types): Set field n_segments. + + * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover + 3 bits instead of just 1. + (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables. + (progmem_section): Change from section to array of sections. + (progmem_section_prefix): New static variable. + (avr_file_start): Print set for __RAMPZ__ + (avr_option_override): Move initialization of RTXes from here... + (avr_init_expanders): ...to this new function. + (avr_pgm_segment): New static function. + (avr_decl_pgm_p): Handle error_mark_node. + (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions. + (avr_out_xload, avr_find_unused_d_reg): New static functions. + (expand_prologue, expand_epilogue): Use rampz_rtx. + (print_operand): Hande CONST_STRING. + (avr_xload_libgcc_p): New static function. + (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM. + (avr_progmem_p): Return 2 for 24-bit flash address space. + (avr_out_sbxx_branch): Clean-up code from ASn macros. + (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's + address and print symbolically. + (avr_asm_named_section, avr_section_type_flags, + avr_encode_section_info, avr_asm_select_section, + avr_addr_space_address_mode, avr_addr_space_pointer_mode, + avr_addr_space_legitimate_address_p, avr_addr_space_convert, + avr_addr_space_legitimize_address): Handle new address spaces. + (avr_output_progmem_section_asm_op): New static function. + (avr_asm_init_sections): Initialize progmem_section[]. + (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM. + (avr_const_address_lo16): New static function. + (avr_assemble_integer): Use it to handle 3-byte integers. + (avr_emit_movmemhi, avr_out_movmem): New functions. + + * config/avr/predicates.md (nox_general_operand): Handle new + address spaces. + * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM. + (adjust_len): Add xload, movmem. + (SP_ADDR): New define_constants. + (isa): Add "lpm", "lpmx", "elpm", "elpmx". + (enabled): Handle them. + (load_libgcc): New expander. + (*load..libgcc): Rename to load__libgcc. + (xload8_A, xload_A): New insn-and-splits. + (xload_8, xload__libgcc, xload_, loadmem_elpm): New insns. + (mov): Handle new address spaces. + (movmemhi): Rewrite using avr_emit_movmemhi. + (MOVMEM_r_d): New mode attribute. + (movmem_, movmem_qi_elpm): New insns. + (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote + C-code. Use label instead of hard-coded instrunction lengths. + +2011-11-18 Martin Jambor + + PR tree-optimization/50605 + * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs + of IPA invariant decls. + +2011-11-18 Bill Schmidt + + * tree-outof-ssa.c (insert_back_edge_copies): Add call to + mark_dfs_back_edges. + +2011-11-18 Iain Sandoe + + PR target/49992 + * configure.ac: Remove ranlib special-casing for Darwin. + * configure: Regenerate. + +2011-11-18 Uros Bizjak + + PR tree-optimization/51118 + * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure + before using TREE_TYPE accessor on expr. + +2011-11-17 Jan Hubicka + + PR bootstrap/51134 + * i386.c (atom_cost): Fix 32bit memset description. + (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check + for epilogue loops. + (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing + byte loop. + (decide_alg): sse_loop is not useable wthen SSE2 is disabled; + when not optimizing always use rep movsb or lincall; do not produce + word sized loops when optimizing memset for size (to avoid need + for large constants). + (ix86_expand_movmem): Get into sync with ix86_expand_setmem; + choose unroll factors better; always do 128bit moves when producing + SSE loops; do not produce loopy epilogue when size is too small. + (promote_duplicated_reg_to_size): Do not look into desired alignments + when doing vector expansion. + (ix86_expand_setmem): Track better when promoted value is available; + choose unroll factors more sanely. Output loopy epilogue only + when needed. + +2011-11-17 Steve Ellcey + + PR middle-end/51144 + * output.h (fprint_w): Remove. + * final.c (fprint_w): Remove. + (output_addr_const): Change fprint_w back to fprintf. + +2011-11-17 Andrew Pinski + + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS. + +2011-11-17 Andrew MacLeod + + * builtins.c (expand_builtin): Remove 4th parameter representing + weak/strong mode when __atomic_compare_exchange becomes a library call. + +2011-11-17 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get + new pseudo for target after convert_modes. + (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise. + +2011-11-17 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get + new pseudo for target after convert_modes. + (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise. + +2011-11-17 Richard Henderson + + * builtins.c (expand_builtin_mem_thread_fence): Remove. + (expand_builtin_mem_signal_fence): Remove. + (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence. + (expand_builtin_sync_synchronize): Likewise. + (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence. + * optabs.c (expand_asm_memory_barrier): Split out from + expand_builtin_mem_signal_fence. + (expand_mem_thread_fence): New, a combination of code from + expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize. + (expand_mem_signal_fence): Moved and renamed from + expand_builtin_mem_signal_fence. + (expand_atomic_exchange): Use expand_mem_thread_fence. + (expand_atomic_load, expand_atomic_store): Likewise. + * expr.h, optabs.h: Update decls. + +2011-11-17 Bin Cheng + + PR rtl-optimization/50663 + * cprop.c (implicit_set_indexes): New global variable. + (insert_set_in_table): Add additional parameter and record implicit + set information. + (hash_scan_set): Add additional parameter and pass it to above. + (hash_scan_insn): Pass false to hash_scan_set. + (compute_hash_table_work): Pass true to hash_scan_set. + (compute_cprop_data): Add implicit set to AVIN of block which the + implicit set is recorded for. + (one_cprop_pass): Handle implicit_set_indexes array. + +2011-11-17 Michael Matz + + PR middle-end/50644 + PR middle-end/50741 + * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of + current function. + (remove_unused_locals): Ditto. + +2011-11-16 Richard Henderson + + * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy + ALIAS_SET_MEMORY_BARRIER when creating a new memory. + (alpha_split_atomic_exchange_12): Likewise. + * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise. + +2011-11-16 Joseph Myers + + * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove. + +2011-11-16 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): + Default to minimum alignment if decl is NULL. + +2011-11-16 Uros Bizjak + + * config/i386/sse.md (round2_vec_pack_sfix): Optimize V2DFmode + sequence for AVX. + (_round_vec_pack_sfix): Ditto. + +2011-11-16 Venkataramanan Kumar + + * doc/invoke.texi: Document AMD bdver1 and btver1. + +2011-11-16 Richard Earnshaw + Bernd Schmidt + Sebastian Huber + + PR target/49641 + * config/arm/arm.c (store_multiple_sequence): Avoid cases where + the base reg is stored iff compiling for Thumb1. + +2011-11-16 Razya Ladelsky + + PR tree-optimization/49960 + * tree-data-ref.c (initialize_data_dependence_relation): Add + initializations. + Remove call to compute_self_dependence. + (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition. + (compute_self_dependence): Remove old code. Add call to + compute_affine_dependence. + (compute_all_dependences): Remove call to compute_self_dependence. + Add call to compute_affine_dependence. + +2011-11-16 Andreas Krebbel + + PR middle-end/50325 + * expmed.c (store_bit_field_1): Use extract_bit_field on big + endian targets if the source cannot be exactly covered by word + mode chunks. + +2011-11-15 Joseph Myers + + * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to + ELF_STRING_LIMIT. + +2011-11-15 Richard Henderson + + * config/alpha/alpha.c (alpha_pre_atomic_barrier): New. + (alpha_post_atomic_barrier): New. + (alpha_split_atomic_op): New memmodel argument; honor it. + (alpha_split_compare_and_swap): Take array of operands. Honor + memmodel; always set bool output + (alpha_expand_compare_and_swap_12): Similarly. + (alpha_split_compare_and_swap_12): Similarly. + (alpha_split_atomic_exchange): Similarly. Rename from + alpha_split_lock_test_and_set. + (alpha_expand_atomic_exchange_12): Similarly. Rename from + alpha_expand_lock_test_and_set_12. + (alpha_split_atomic_exchange_12): Similarly. Rename from + alpha_split_lock_test_and_set_12. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md (UNSPECV_CMPXCHG): New. + * config/alpha/constraints.md ("w"): New. + * config/alpha/predicates.md (mem_noofs_operand): New. + * config/alpha/sync.md (atomic_compare_and_swap): Rename from + sync_compare_and_swap; add the new parameters. + (atomic_exchange): Update from sync_test_and_set. + (atomic_fetch_): Update from sync_old_. + (atomic__fetch): Update from sync_new_. + (atomic_): Update from sync_. + +2011-11-16 Tom de Vries + + * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1. + +2011-11-16 Alan Modra + + PR rtl-optimization/51051 + PR bootstrap/51086 + * function.c (thread_prologue_and_epilogue_insns): Guard + emitting return with single_succ_p test. + +2011-11-15 Joern Rennecke + + * config/epiphany/epiphany.md (movcc): Fix code to + get mode from CMP_OP1 if CMP_OP0 is VOIDmode. + +2011-11-15 Uros Bizjak + + * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX. + (vec_pack_sfix_trunc_v2df): Ditto. + (vec_pack_sfix_v2df): Ditto. + (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and + avx_vec_concatv8si patterns. + (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and + avx_vec_concatv8si patterns. + +2011-11-15 Torvald Riegel + + * c-parser.c (c_parser_transaction_expression): Require parentheses + when parsing transaction expressions. + +2011-11-15 Tristan Gingold + + * incpath.c (get_added_cpp_dirs): New function. + * incpath.h (get_added_cpp_dirs): Declare. + * config/vms/vms-c.c (vms_c_register_includes): New function. + (vms_std_modules): New variable. + * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define. + (vms_c_register_includes): Declare. + +2011-11-15 Tristan Gingold + + * c-family/c-pragma.h (pragma_extern_prefix): Declare. + * c-family/c-pragma.c (pragma_extern_prefix): Make it public. + * config/vms/vms-c.c (saved_extern_prefix): New variable. + (vms_pragma_extern_prefix): New function. + (vms_c_register_pragma): Register vms_pragma_extern_prefix. + +2011-11-15 Georg-Johann Lay + + PR target/49868 + * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces. + (REGISTER_TARGET_PRAGMAS): New define. + * config/avr/avr-protos.h (avr_mem_pgm_p): New. + (avr_load_libgcc_p): New. + (avr_register_target_pragmas): New. + (asm_output_external_libcall): Remove. + (avr_log_t): Add field "progmem". Order alphabetically. + * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem. + * config/avr/avr-c.c (langhooks.h): New include. + (avr_register_target_pragmas): New function. Register address + space __pgm. + (avr_cpu_cpp_builtins): Add built-in define __PGM. + + * config/avr/avr.c: Include "c-family/c-common.h". + (TARGET_LEGITIMATE_ADDRESS_P): Remove define. + (TARGET_LEGITIMIZE_ADDRESS): Remove define. + (TARGET_ADDR_SPACE_SUBSET_P): Define to... + (avr_addr_space_subset_p): ...this new static function. + (TARGET_ADDR_SPACE_CONVERT): Define to... + (avr_addr_space_convert): ...this new static function. + (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to... + (avr_addr_space_address_mode): ...this new static function. + (TARGET_ADDR_SPACE_POINTER_MODE): Define to... + (avr_addr_space_pointer_mode): ...this new static function. + (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to... + (avr_addr_space_legitimate_address_p): ...this new static function. + (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to... + (avr_addr_space_legitimize_address): ...this new static function. + (avr_mode_code_base_reg_class): Handle address spaces. + (avr_regno_mode_code_ok_for_base_p): Ditto. + (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables. + (avr_option_override): Initialize them. + (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop + variables. + (avr_pgm_segment): New static function. + (avr_decl_pgm_p, avr_mem_pgm_p): New static functions. + (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions. + (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call + avr_out_lpm to handle loads from progmem. + (avr_load_libgcc_p): New static function. + (avr_progmem_p): Test if decl is in flash. + (avr_pgm_pointer_const_p): New static function. + (avr_nonconst_pointer_addrspace): New static function. + (avr_pgm_check_var_decl): New static function. + (avr_insert_attributes): Use it. Change error message to report + cause (progmem or address space) when code wants to write to flash. + (avr_section_type_flags): Unset section flag SECTION_BSS for + data in progmem. + + * config/avr/predicates.md (nop_general_operand): New predicate. + (nox_general_operand): New predicate. + * config/avr/avr.md (LPM_REGNO): New define_constant. + (load_libgcc): New expander. + (*load..libgcc): New insn. + (mov): Handle loads from non-generic AS. + (movmemhi): Ditto. Propagate address space information to newly + created MEM. + (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1 + to nox_general_operand. + (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to + nop_general_operand. + (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto. + (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto. + (split-lpmx): New split. + (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, + *lshrhi3_const, *lshrsi3_const): Indent, unquote C. + +2011-11-15 Maxim Kuvyrkov + + * ipa-cp.c (ipa_value_from_jfunc): Make global. + (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead. + (get_indirect_edge_target): Rename, make global. + (devirtualization_time_bonus, estimate_local_effects,) + (ipcp_discover_new_direct_edges): Update. + * ipa-inline-analysis.c (evaluate_conditions_for_edge): + Generalize to also handle types. Rename to ... + (evaluate_properties_for_edge): Use instead of + evaluate_conditions_for_edge. + (estimate_edge_devirt_benefit): New function. + (estimate_calls_size_and_time): Use it. + (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,) + (inline_merge_summary): Update. + (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate + parameter information at the call site and pass it on to subroutines. + * tree-inline.c (estimate_num_insns): Distinguish between direct and + indirect calls. + (init_inline_once): Set size and time costs or indirect calls. + * tree-inline.h (eni_weights): Add indirect_call_cost. + +2011-11-15 Tom de Vries + + PR tree-optimization/51005 + * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to + mark_basic_block_deleted. + (update_worklist): Inline purge_bbs. + (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry) + (delete_block_update_dominator_info): Remove. + (replace_block_by): Remove update_vops parameter. Partially evaluate + for update_vops == false. + (apply_clusters): Remove update_vops parameter. Remove update_vops + argument in replace_block_by call. + (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test. + (tail_merge_optimize): Remove update_vops argument to apply_clusters. + Remove call to purge_bbs. Add calls to calculate_dominance_info and + free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling + update_debug_stmts. Mark vop var for renaming, if necessary. + +2011-11-15 Bernd Schmidt + + PR rtl-optimization/51051 + * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the + move would cause fallthrough into the exit block. + +2011-11-14 Richard Henderson + + * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is + handled. + (emit_store_conditional): Likewise. + (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New. + (rs6000_adjust_atomic_subword): New. + (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New. + (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite + for pre-reload expansion. + (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi, + rs6000_expand_compare_and_swapqhi): Merge into ... + (rs6000_expand_atomic_compare_and_swap): ... here. New function. + rs6000_split_lock_test_and_set; expand immediately. Handle + QImode and HImode. + * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename + from UNSPECV_LWSYNC. + * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove. + (mem_thread_fence): New. + (hwsync): Rename from memory_barrier. + (*hwsync): Rename from *sync_internal. + (lwsync, *lwsync): Mirror hwsync implementation. + (isync): Don't reference memory. + (loadsync): New. + (atomic_load, atomic_store): New. + (ATOMIC): New mode iterator. + (load_locked): Rename from load_locked_. + (store_conditional): Rename from store_conditional_. + (sync_compare_and_swap): Remove. + (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove. + (sync_compare_and_swapqhi_internal): Remove. + (sync_lock_test_and_set): Remove. + (sync_): Remove. + (*sync_si_internal, *sync_di_internal): Remove. + (sync_nand, *sync_nand_internal): Remove. + (sync_old_): Remove. + (*sync_old_si_internal): Remove. + (*sync_old_di_internal): Remove. + (sync_old_nand): Remove. + (*sync_old_nand_internal): Remove. + (sync_new_): Remove. + (*sync_new_si_internal): Remove. + (*sync_new_di_internal): Remove. + (sync_new_nand): Remove. + (*sync_new_nand_internal): Remove. + (*atomic_andsi, *atomic_anddi): Remove. + (*sync_addshort_internal, *sync_subshort_internal): Remove. + (*sync_andsi_internal, *sync_boolsi_internal): Remove. + (*sync_boolcshort_internal): Remove. + (sync_lock_release): Remove. + (atomic_compare_and_swap): New. + (atomic_exchange): New. + (atomic_, atomic_nand): New. + (atomic_fetch_, atomic_fetch_nand): New. + (atomic__fetch, atomic_nand_fetch): New. + +2011-11-14 Uros Bizjak + + * config/i386/sse.md (round2): Use register_operand for + operand 1 predicate. + (round2_sfix): Ditto. + (round2_vec_pack_sfix): Ditto for operand 1 and operand 2. + +2011-11-14 Nathan Sidwell + + * gcov.c (canonicalize_name): Protect use of S_ISLNK. + +2011-11-14 Jan Hubicka + + PR target/51126 + * config/i386/i386.c (core cost model): Correct pasto. + +2011-11-14 Uros Bizjak + + * config/i386/sse.md (round2_sfix): New expander. + (round2_vec_pack_sfix): Ditto. + (_round_sfix): Ditto. + (_round_vec_pack_sfix): Ditto. + * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND, + V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND, + V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types. + * config/i386/i386.c (ix86_builtins): Add + IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and + IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines. + (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256}, + __builtin_ia32_roundpd_az_vec_pack_sfix{,256}, + __builtin_ia32_{floorps,ceilps}_sfix{,256}and + __builtin_ia32_roundps_az_sfix{,256} descriptions. + (ix86_expand_sse_round_vec_pack_sfix): New. + (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND, + V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and + V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of + CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix, + CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256. + (ix86_builtin_vectorized_function): Handle + BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and + BUILT_IN_{I,L,LL}ROUND{,F} + +2011-11-14 Jan Hubicka + + PR middle-end/50598 + * cgraph.h (varpool_externally_visible_p): Declare. + (varpool_add_new_variable): Declare. + * tree-emultls.c (get_emutls_init_templ_addr, + new_emutls_decl): Use varpool_add_new_variable. + * ipa.c (varpool_externally_visible_p): Export. + * varpool.c (varpool_add_new_variable): New function. + +2011-11-14 Michael Zolotukhin + Jan Hubicka + + * config/i386/i386.h (processor_costs): Add second dimension to + stringop_algs array. + * config/i386/i386.c (cost models): Initialize second dimension of + stringop_algs arrays. + (core_cost): New costs based on generic64 costs with updated stringop + values. + (promote_duplicated_reg): Add support for vector modes, add + declaration. + (promote_duplicated_reg_to_size): Likewise. + (processor_target): Set core costs for core variants. + (expand_set_or_movmem_via_loop_with_iter): New function. + (expand_set_or_movmem_via_loop): Enable reuse of the same iters in + different loops, produced by this function. + (emit_strset): New function. + (expand_movmem_epilogue): Add epilogue generation for bigger sizes, + use SSE-moves where possible. + (expand_setmem_epilogue): Likewise. + (expand_movmem_prologue): Likewise for prologue. + (expand_setmem_prologue): Likewise. + (expand_constant_movmem_prologue): Likewise. + (expand_constant_setmem_prologue): Likewise. + (decide_alg): Add new argument align_unknown. Fix algorithm of + strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop + (decide_alignment): Update desired alignment according to chosen move + mode. + (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves. + (ix86_expand_setmem): Likewise. + (ix86_slow_unaligned_access): Implementation of new hook + slow_unaligned_access. + * config/i386/i386.md (strset): Enable half-SSE moves. + * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si. + (vec_dupv2di): Add expand for vec_dupv2di. + +2011-11-14 Dimitrios Apostolou + + PR bootstrap/51094 + PR middle-end/51116 + * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove. + * varasm.c (default_elf_internal_label): Remove. + +2011-11-14 Kai Tietz + + * gcov.c (generate_results): Add missing semicolon and correct indent. + +2011-11-14 Ira Rosen + + PR bootstrap/51112 + * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype. + +2011-11-14 Mingjie Xing + + * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes} + to @pxref{Function Attributes}. + +2011-11-13 Oleg Endo + + PR target/50694 + * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A): + New macros. + (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options + taking the default configuration into account. + +2011-11-13 Jonathan Wakely + + * doc/install.texi (Specific): Fix anchor for + x86_64-*-solaris2.1[0-9]*. + +2011-11-13 Nathan Sidwell + + * gcov.c (source_prefix, source_length): New globals. + (flag_relative_only): Likewise. + (print_usage, options, process_args): Update. + (generate_results): Use coverage.name, check + flag_relative_only. Adjust messages. + (find_source): Check source_prefix. + (output_lines): Use coverage.name, adjust messages. + * doc/gcov.texi (Invoking Gcov): Document new options. + +2011-11-12 Jason Merrill + + PR c++/51060 + * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup. + (gimplify_modify_expr): Don't try to simplify it. + +2011-11-12 Dimitrios Apostolou + + PR bootstrap/51094 + * config/elfos.h (STRING_ASM_OP): Define. + * varasm.c (default_elf_asm_output_limited_string): Use it. + + PR bootstrap/51094 + * gcc/configure.ac: Check for stpcpy declaration. + * system.h: Declare it if not. + * config.in, configure: Regenerate. + +2011-11-12 Richard Henderson + + * config/rs6000/rs6000.md (fix_truncsi2_stfiwx): Use + nonimmediate_operand for the destination. + (fixuns_truncsi2_stfiwx): Likewise. + + * builtins.c (expand_builtin_compare_and_swap): If target is const0, + don't pass the target to expand_atomic_compare_and_swap. + (expand_builtin_atomic_compare_exchange): Likewise. + + * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New. + * config/sh/sh.c (sh_init_sync_libfuncs): New. + + * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New. + * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default. + * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. + +2011-11-12 Iain Sandoe + + PR target/45233 + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): + Only expand a symbol ref. into an access when the entity is defined + in the TU. + +2011-11-12 Jan Hubicka + + PR bootstrap/50822 + * cgraphunit.c (output_weakrefs): Output really only weakrefs. + +2011-11-12 Nathan Sidwell + + * gcov.c (struct name_map): New. + (names, n_names, a_names): New global vars. + (print_usage): Adjust usage. + (generate_results): Canonicalize main file name. + (release_structures): Adjust. + (name_search, name_sort): New callbacks. + (find_source): Look for and create a canonical name. + (canonicalize_name): New. + (make_gcov_file_name): Reimplement and fix mangling. + (mangle_name): New. + * doc/gcov.texi: Update documentation about path preservation. + +2011-11-11 David S. Miller + + * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete. + * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete. + +2011-11-11 Jakub Jelinek + + * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper): + New prototype. + * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New + function. + (ix86_expand_epilogue): Use it. + * config/i386/i386.md (return, simple_return): Call it in the + expanders. + + PR tree-optimization/51091 + * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P + rhs also in the va_list_simple_ptr case. + + PR tree-optimization/51058 + * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function. + (vect_schedule_slp): Call it. + * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL, + don't replace scalar calls with setting of their lhs to zero here. + + PR tree-optimization/51074 + * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions. + (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR, + VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and + VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands. + (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or + CONSTRUCTOR operands. + * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary + expressions. + * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements + to 0 .. 2 * elements - 1. + +2011-11-11 Richard Henderson + + * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed. + (dump_gimple_omp_atomic_store): Likewise. + * optabs.c (can_atomic_exchange_p): New. + * optabs.h (can_atomic_exchange_p): Declare. + * omp-low.c (expand_omp_atomic_load): Implement. + (expand_omp_atomic_store): Likewise. + (expand_omp_atomic): Update for new arguments to load/store. + +2011-11-11 Eric Botcazou + + * cprop.c: Adjust outdated comments throughout. + (hash_scan_set): Rename PAT parameter into SET. + (cprop_pavloc): Rename into... + (cprop_avloc): ...this. + (cprop_absaltered): Rename into... + (cprop_kill): ...this. + (alloc_cprop_mem): Adjust for above renaming. + (free_cprop_mem): Likewise. + (compute_cprop_data): Likewise. + (compute_local_properties): Rename TRANSP parameter into KILL and + adjust throughout. Rework comments. + (try_replace_reg): Fix long line. + (cprop_jump): Likewise. + (constprop_register): Fix prototype and take INSN last. + (cprop_insn): Adjust calls to above function. Fix long lines. + (bypass_block): Likewise. + (one_cprop_pass): Likewise. + +2011-11-11 Uros Bizjak + + * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES. + (ELF_STRING_LIMIT): Rename from STRING_LIMIT. + +2011-11-11 Jason Merrill + + * varasm.c (default_elf_asm_output_limited_string): #ifdef + ELF_ASCII_ESCAPES. + (default_elf_asm_output_ascii): Likewise. + +2011-11-11 Uros Bizjak + + PR target/50762 + * config/i386/constraints.md (j): New address constraint. + * config/i386/predicates.md (lea_address_operand): Redefine as + special predicate. + * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1. + (*lea_4_zext): Ditto. + +2011-11-11 David S. Miller + + Revert + 2011-11-05 David S. Miller + + * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. + (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. + (*zero_extend_v8qi__insn, + *zero_extend_v4hi__insn): New insns. + * config/sparc/sparc.c (vector_init_move_words, + vector_init_prepare_elts, sparc_expand_vector_init_vis2, + sparc_expand_vector_init_vis1): New functions. + (vector_init_bshuffle): Rewrite to handle more cases and make use + of locs[] array prepared by vector_init_prepare_elts. + (vector_init_fpmerge, vector_init_faligndata): Delete. + (sparc_expand_vector_init): Rewrite using new infrastructure. + +2011-11-11 Jakub Jelinek + + * opts-common.c (generate_canonical_option): Free opt_text + it it has been allocated here and not stored anywhere. + + * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN + vector. + (vect_create_new_slp_node): Don't allocate node before checking stmt + type. + (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always + free def_stmts vectors and additionally free oprnd_info. + (vect_build_slp_tree): Adjust callers. Call it even if + stop_recursion. If vect_create_new_slp_node or + vect_build_slp_tree fails, properly handle freeing memory. + If it succeeded, clear def_stmts in oprnd_info. + +2011-11-11 Dimitrios Apostolou + + * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on + multiple lines for readability. + * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare. + (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf. + * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data, + dw2_asm_data_uleb128, dw2_asm_delta_uleb128, + dw2_asm_delta_sleb128): Convert fprintf calls to the new functions. + * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of + fprintf. + * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions + serving as fast replacements for fprintf integer to string conversions. + (sprint_ul_rev): Internal helper for the above. + (output_addr_const) : Don't use fprintf. + * varasm.c: Fix some whitespace inconsistencies. + (default_elf_asm_output_limited_string): New. + (default_elf_asm_output_ascii): Likewise. + (default_elf_internal_label): Likewise. + * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and + stpcpy instead of sprintf. + (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label. + (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and + STRING_LIMIT macros. + (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that + provide the same functionality. + * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf. + +2011-11-10 Andrew MacLeod + + * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear. + +2011-11-10 Andrew MacLeod + + PR middle-end/51038 + * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear. + (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set. + (expand_builtin): Add cases for test_and_set and clear. + * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New. + (BUILT_IN_ATOMIC_CLEAR): New. + +2011-11-10 Roberto Agostino Vitillo + + PR debug/50983 + * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt + value in the current line table. + +2011-11-10 Nathan Sidwell + + * gcov.c (struct function_info): Make src an index, not a pointer. + (struct source_info): Remove index and next source fields. + (fn_end): New static var. + (sources_index): Remove. + (sources): Now a pointer to an array, not a list. + (n_sources, a_sources): New. + (process_file): Adjust for changes to read_graph_file. Insert + functions into source lists and check line numbers here. + (generate_results): Only allocate lines for sources with + contents. Adjust for source array. + (release_structures): Likewise. + (find_source): Return source index, adjust for source array. + (read_graph_file): Return function list. Don't insert into source + lists here. + (read_count_file): Take list of functions. + (solve_flow_graph): Reverse the arc lists here. + (add_line_counts): Adjust for source array. + +2011-11-10 Jakub Jelinek + + PR middle-end/51077 + * tree-object-size.c (addr_object_size): Check TREE_CODE of + MEM_REF's operand rather than code of the MEM_REF itself. + +2011-11-10 Andrew MacLeod + + PR rtl-optimization/51040 + * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should + be AND followed by NOT. + * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND + should be AND followed by NOT. + +2011-11-10 Jakub Jelinek + + * vec.h (VEC_BASE): If base is at offset 0 in the structure, + use &(P)->base even if P is NULL. + + PR rtl-optimization/51023 + * combine.c (simplify_comparison) : Don't use + val_signbit_known_clear_p for signed comparison narrowing + optimization. Don't check for non-VOIDmode, use + HWI_COMPUTABLE_MODE_P macro. + : Don't check for non-VOIDmode. + Optimize even when const_op is equal to GET_MODE_MASK (mode), + don't optimize if const_op is negative. + +2011-11-10 Richard Guenther + + PR tree-optimization/51042 + * tree-ssa-pre.c (phi_translate_1): Avoid recursing on + self-referential expressions. Refactor code to avoid duplication. + +2011-11-10 Richard Guenther + + PR tree-optimization/51070 + * tree-loop-distribution.c (generate_builtin): Do not replace + the loop with a builtin if the partition contains statements which + results are used outside of the loop. + (pass_loop_distribution): Verify and collect. + +2011-11-10 Richard Guenther + + PR tree-optimization/51030 + * tree-ssa-phiopt.c (jump_function_from_stmt): New function. + (value_replacement): Use it to handle trivial non-empty + intermediate blocks. + +2011-11-10 Richard Guenther + + PR middle-end/51071 + * gimple.c (gimple_has_side_effects): Remove checking code + that doesn't belong here. + +2011-11-10 Ira Rosen + + PR tree-optimization/51058 + * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR. + +2011-11-10 Jakub Jelinek + + PR tree-optimization/51000 + * tree-vect-patterns.c (vect_recog_bool_pattern): If adding + a pattern stmt for a bool store, adjust DR_STMT too. + Don't handle bool conversions to single bit precision lhs. + * tree-vect-stmts.c (vect_remove_stores): If next is a pattern + stmt, remove its related stmt and free its stmt_vinfo. + (free_stmt_vec_info): Free also pattern stmt's vinfo and + pattern def stmt's vinfo. + * tree-vect-loop.c (destroy_loop_vec_info): Don't try to + free pattern stmt's vinfo here. + (vect_transform_loop): When calling vect_remove_stores, + do gsi_next first and don't call gsi_remove. If not strided + store, free stmt vinfo for gsi_stmt (si) rather than stmt. + +2011-11-09 Jakub Jelinek + + PR target/50911 + * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is + V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode + to V4SFmode. + + * function.h (requires_stack_frame_p): New prototype. + * function.c (requires_stack_frame_p): No longer static. + * config/i386/i386.c (ix86_finalize_stack_realign_flags): If + stack_realign_fp was just a conservative guess for a function + which doesn't use sp/fp/argp at all, clear frame_pointer_needed + and stack realignment. + +2011-11-09 Paolo Carlini + + PR preprocessor/51061 + * incpath.c (merge_include_chains): Make sure to not pass null + pointers to free_path. + +2011-11-09 Paolo Carlini + + * doc/invoke.texi ([Option Summary, C++ Language Options]): + Add -Wzero-as-null-pointer-constant. + +2011-11-07 Matthew Gretton-Dann + + * config/arm/arm-cores.def: Add -mcpu=cortex-a7. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7. + * doc/invoke.texi: Document -mcpu=cortex-a7. + +2011-11-09 Richard Guenther + + Revert + 2011-11-09 Richard Guenther + + * tree-cfg.c (verify_gimple_call): Verify that + gimple_call_cannot_inline_p is returning a conservative + correct result according to gimple_check_call_matching_types. + +2011-11-09 Richard Guenther + + PR tree-optimization/51039 + * tree-cfg.c (verify_gimple_call): Verify that + gimple_call_cannot_inline_p is returning a conservative + correct result according to gimple_check_call_matching_types. + * ipa-inline-analysis.c (estimate_function_body_sizes): Remove + code dealing with un-inlinablility. + * gimple-streamer-in.c (input_gimple_stmt): Update the + non-inlinable flag. + +2011-11-09 Richard Guenther + + PR tree-optimization/51039 + * tree-inline.c (setup_one_parameter): Always perform a + valid gimple type change. + (declare_return_variable): Likewise. + +2011-11-09 Jakub Jelinek + + * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf, + vconduv4sfv4si): New patterns. + * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle + different dest_mode from comparison mode. + +2011-11-09 Richard Guenther + + * gimple-fold.c (canonicalize_constructor_val): Mark + address-taken variables addressable. + +2011-11-09 Ira Rosen + + PR tree-optimization/51015 + * tree-vect-loop.c (vect_determine_vectorization_factor): Expect + vectype to be set for pattern def stmts. + +2011-11-09 Alan Modra + + * function.c (bb_active_p): Delete. + (dup_block_and_redirect, active_insn_between): New functions. + (convert_jumps_to_returns, emit_return_for_exit): New functions, + split out from.. + (thread_prologue_and_epilogue_insns): ..here. Delete + shadowing variables. Don't do prologue register clobber tests + when shrink wrapping already failed. Delete all last_bb_active + code. Instead compute tail block candidates for duplicating + exit path. Remove these from antic set. Duplicate tails when + reached from both blocks needing a prologue/epilogue and + blocks not needing such. + * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and + HAVE_simple_return. + * bb-reorder.c (get_uncond_jump_length): Make global. + * bb-reorder.h (get_uncond_jump_length): Declare. + * cfgrtl.c (rtl_create_basic_block): Comment typo fix. + (rtl_split_edge): Likewise. Warning fix. + (rtl_duplicate_bb): New function. + (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block. + * Makefile.in (function.o): Update dependencies. + +2011-11-08 Ulrich Weigand + Georg-Johann Lay + + * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space + argument. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. + * doc/tm.texi: Regenerate. + + * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address + space argument. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. + * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. + * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space + argument. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto. + * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto. + (avr_regno_mode_code_ok_for_base_p): Ditto. + * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto. + (avr_regno_mode_code_ok_for_base_p): Ditto. + (avr_reg_ok_for_addr_p): Pass AS down to + avr_regno_mode_code_ok_for_base_p. + + * addresses.h (base_reg_class): Add address space argument. + Pass to MODE_CODE_BASE_REG_CLASS. + (ok_for_base_p_1): Add address space argument. Pass to + REGNO_MODE_CODE_OK_FOR_BASE_P. + (regno_ok_for_base_p): Add address space argument. Pass to + ok_for_base_p_1. + + * regrename.c (scan_rtx_address): Add address space argument. + Pass address space to regno_ok_for_base_p and base_reg_class. + Update recursive calls. + (scan_rtx): Pass address space to scan_rtx_address. + (build_def_use): Likewise. + * regcprop.c (replace_oldest_value_addr): Add address space + argument. Pass to regno_ok_for_base_p and base_reg_class. + Update recursive calls. + (replace_oldest_value_mem): Pass address space to + replace_oldest_value_addr. + (copyprop_hardreg_forward_1): Likewise. + + * reload.c (find_reloads_address_1): Add address space argument. + Pass address space to base_reg_class and regno_ok_for_base_p. + Update recursive calls. + (find_reloads_address): Pass address space to base_reg_class, + regno_ok_for_base_p, and find_reloads_address_1. + (find_reloads): Pass address space to base_reg_class. + (find_reloads_subreg_address): Likewise. + + * ira-costs.c (record_reg_classes): Update calls to base_reg_class. + (ok_for_base_p_nonstrict): Add address space argument. Pass to + ok_for_base_p_1. + (record_address_regs): Add address space argument. Pass to + base_reg_class and ok_for_base_p_nonstrict. Update recursive calls. + (record_operand_costs): Pass address space to record_address_regs. + (scan_one_insn): Likewise. + + * caller-save.c (init_caller_save): Update call to base_reg_class. + * ira-conflicts.c (ira_build_conflicts): Likewise. + * reload1.c (maybe_fix_stack_asms): Likewise. + +2011-11-08 Michael Matz + + * gengtype.c (write_field_root): Avoid out-of-scope access of newv. + + * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers. + + * tree.h (TREE_CLOBBER_P): New macro. + * gimple.h (gimple_clobber_p): New inline function. + * gimplify.c (gimplify_bind_expr): Add clobbers for all variables + that go out of scope and live in memory. + * tree-ssa-operands.c (get_expr_operands): Transfer volatility also + for constructors. + * cfgexpand.c (decl_to_stack_part): New static variable. + (add_stack_var): Allocate it, and remember mapping. + (fini_vars_expansion): Deallocate it. + (stack_var_conflict_p): Add early outs. + (visit_op, visit_conflict, add_scope_conflicts_1, + add_scope_conflicts): New static functions. + (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy. + (expand_used_vars): Add scope conflicts. + (expand_gimple_stmt_1): Expand clobbers to nothing. + (expand_debug_expr): Ditto. + + * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely. + * tree-ssa-live.c (remove_unused_locals): Remove clobbers that + refer to otherwise unused locals. + * tree-sra.c (build_accesses_from_assign): Ignore clobbers. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of + SSA names aren't necessary. + (propagate_necessity): Accept and ignore constructors on the rhs, tidy. + * gimple.c (walk_gimple_op): Accept constructors like mem_rhs. + * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store + any known value. + * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they + don't zero-initialize something. + * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore + clobber RHS, we don't want PHI nodes with those. + +2011-11-08 Jakub Jelinek + + * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX + if not TARGET_PREFER_AVX128 return 32-byte integer vectors. + +2011-11-08 Richard Guenther + + PR tree-optimization/51012 + * ipa-prop.c (update_indirect_edges_after_inlining): Fixup + non-inlinable state. + * cgraph.c (cgraph_make_edge_direct): Likewise. + +2011-11-08 Eric Botcazou + + PR rtl-optimization/47698 + * ifcvt.c (noce_operand_ok): Move around comment. + +2011-11-08 Richard Guenther + + PR lto/50999 + * lto-opts.c (append_to_collect_gcc_options): Split out from... + (lto_write_options): ... here. Prepend frontend specific flags. + +2011-11-08 Jakub Jelinek + + * config/i386/sse.md (*avx_vperm2f1283_nozero): Emit mask + 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128. + + * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument. + Handle vectorization of SLP calls. + (vect_analyze_stmt): Adjust caller, add call to it for SLP too. + (vect_transform_stmt): Adjust vectorizable_call caller, remove + assertion. + * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start + with op_idx 3. + (vect_build_slp_tree): Allow CALL_EXPR. + +2011-11-08 Richard Guenther + + * gimple-fold.c (canonicalize_constructor_val): Make sure + we have referenced vars setup before adding to them. + +2011-11-07 Richard Henderson + Aldy Hernandez + Andrew MacLeod + Torvald Riegel + + Merged from transactional-memory. + + * gtm-builtins.def: New file. + * trans-mem.c: New file. + * trans-mem.h: New file. + + * opts.c (finish_options): Error out when using -flto and -fgnu-tm. + + * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants. + (ix86_handle_tm_regparm_attribute, struct bdesc_tm, + ix86_builtin_tm_load, ix86_builtin_tm_store, + ix86_init_tm_builtins): New. + (ix86_init_builtins): Initialize TM builtins. + (struct ix86_attribute_table): Add "*tm regparm". + * config/i386/i386-builtin-types.def (PV2SI): Define. + (PCV2SI): Define. + Define V2SI_FTYPE_PCV2SI. + Define V4SF_FTYPE_PCV4SF. + Define V8SF_FTYPE_PCV8SF. + Define VOID_PV2SI_V2SI. + + * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and + tm-max-aggregate-size. + * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and + TARGET_VECTORIZE_BUILTIN_TM_STORE hooks. + * doc/tm.texi: Regenerate. + + * attribs.c (apply_tm_attr): New. + (init_attributes): Allow '*' prefix for overrides. + (register_attribute): Likewise. + * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New. + (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST, + ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST, + ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST, + ATTR_TMPURE_NOTHROW_LIST): New. + * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR, + BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248], + BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE, + BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New. + * builtins.def: Include gtm-builtins.def. Add comments regarding + transactional memory synchronization. + (DEF_TM_BUILTIN): New. + * c-parser.c (struct c_parser): Add in_transaction. + (c_parser_transaction, c_parser_transaction_expression, + c_parser_transaction_cancel, c_parser_transaction_attributes): New. + (c_parser_attribute_any_word): Split out from c_parser_attributes. + (c_parser_statement_after_labels): Handle RID_TRANSACTION*. + (c_parser_unary_expression): Same. + * c-tree.h (c_finish_transaction): Declare. + * c-typeck.c (c_finish_transaction): New. + (build_function_call_vec): Call tm_malloc_replacement. + * calls.c (is_tm_builtin): New. + (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE. + * cfgbuild.c (make_edges): Add edges for REG_TM notes. + * cfgexpand.c (expand_call_stmt): Call + mark_transaction_restart_calls. + (gimple_expand_cfg): Free the tm_restart map. + (mark_transaction_restart_calls): New. + * cfgrtl.c (purge_dead_edges): Look for REG_TM notes. + * cgraph.c (dump_cgraph_node): Handle tm_clone. + * cgraph.h (struct cgraph_node): Add tm_clone field. + (decl_is_tm_clone): New. + (struct cgraph_local_info): Add tm_may_enter_irr. + (cgraph_copy_node_for_versioning): Declare. + * cgraphunit.c (cgraph_copy_node_for_versioning): Export; + copy analyzed from old version. + * combine.c (distribute_notes): Handle REG_TM notes. + * common.opt: Add -fgnu-tm. + * crtstuff.c (__TMC_LIST__, __TMC_END__): New. + (__do_global_dtors_aux): Deregister clone table. + (frame_dummy): Register clone table. + * emit-rtl.c (try_split): Handle REG_TM. Early return if no function + body. + * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and + GIMPLE_TRANSACTION. + (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE. + * gimple-pretty-print.c: Include trans-mem.h. + (dump_gimple_fmt): Add %x. + (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction. + (dump_gimple_eh_else, dump_gimple_transaction): New. + (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. + * gimple.c (gimple_build_eh_else, gimple_build_transaction): New. + (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt + field. + (walk_gimple_op): Handle GIMPLE_TRANSACTION. + (walk_gimple_stmt): Initialize and honor removed_stmt. + Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. + (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. + * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New. + * gimple.h (struct gimple_statement_eh_else, + gimple_statement_transaction, GTMA_*): New. + (gimple_statement_d): Add gimple_statement_eh_else and + gimple_transaction. + (gimple_build_eh_else, gimple_build_transaction, + gimple_fold_call, diagnose_tm_safe_errors): Declare. + (get_call_expr_in): Remove prototype. + (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. + (gimple_eh_else_n_body, gimple_eh_else_e_body, + gimple_eh_else_set_n_body, gimple_eh_else_set_e_body, + gimple_transaction_body, gimple_transaction_label, + gimple_transaction_label_ptr, gimple_transaction_subcode, + gimple_transaction_set_body, gimple_transaction_set_label, + gimple_transaction_set_subcode): New. + (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt. + * gimplify.c (create_tmp_var_name): Use clean_symbol_name. + (voidify_wrapper_expr): Handle TRANSACTION_EXPR. + (gimplify_transaction): New. + (gimplify_expr): Handle TRANSACTION_EXPR. + * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New. + * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling + TM pure functions. + * Makefile.in: Add trans-mem.o and dependencies. + (BUILTINS_DEF): Add gtm-builtins.def. + (gimple-pretty-print.o): Depend on TRANS_MEM_H. + (GTFILES): Add trans-mem.c. + * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION. + * output.h (record_tm_clone_pair, finish_tm_clone_pairs, + get_tm_clone_pair): Declare. + * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New. + * passes.c (init_optimization_passes): Place transactional memory + passes. + * print-tree.c (print_node): Dump tm-clone. + * recog.c (peep2_attempt): Handle REG_TM. + * reg-notes.def (TM): New. + * rtlanal.c (alloc_reg_note): Handle REG_TM. + * target.def (builtin_tm_load, builtin_tm_store): New. + * targhooks.c (default_builtin_tm_load_store): New. + * targhooks.h (default_builtin_tm_load_store): Declare. + * timevar.def (TV_TRANS_MEM): New. + * toplev.c (compile_file): Call finish_tm_clone_pairs. + * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION. + (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary + writes into the statements to update labels. + (is_ctrl_altering_stmt): Add TM ending statements. Handle + GIMPLE_TRANSACTION. + (verify_gimple_transaction): New. + (verify_gimple_stmt): Handle GIMPLE_TRANSACTION. + (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. + (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION. + (dump_function_to_file): Display [tm-clone] if applicable. + * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h. + (struct_ptr_hash): Same. + (collect_finally_tree): Handle GIMPLE_EH_ELSE. + (replace_goto_queue_1): Likewise. + (get_eh_else): New. + (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE. + (lower_try_finally_nofallthru): Likewise. + (lower_try_finally_onedest): Likewise. + (lower_try_finally_copy): Likewise. + (lower_try_finally_switch): Likewise. + (lower_try_finally): Likewise. + (decide_copy_try_finally): Likewise. + (lower_eh_constructs_2): Likewise. + (refactor_eh_r): Likewise. + * tree-flow.h (struct gimple_df): Add tm_restart field. + Define tm_restart_node. + * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION. + (estimate_num_insns): Likewise. + (init_inline_once): Init tm_cost. + * tree-inline.h (struct eni_weights_d): Add tm_cost. + * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init, + pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare. + * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle + BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE. + Add support for TM vector loads. Add support for TM logging builtins. + (call_may_clobber_ref_p_1): Add support for vector stores. + * tree-ssa-structalias.c (find_func_aliases): Add support for TM + vector stores and loads. Handle BUILT_IN_TM_MEMSET, + BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE. + * tree.c (strip_invariant_refs): Moved from gimple.c to here. + (local_define_builtin): Handle ECF_TM_PURE. + (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE. + * tree.def (TRANSACTION_EXPR): New. + * tree.h (strip_invariant_refs): Moved from gimple.h to here. + (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK, + TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED, + BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P, + CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New. + (ECF_TM_PURE, ECF_TM_BUILTIN): New. + (struct tree_function_decl): Add tm_clone_flag. + (struct_ptr_eq, struct_ptr_hash): New. + (apply_tm_attr): Declare. + (is_tm_safe_or_pure): New. + (build_tm_abort_call, is_tm_safe, is_tm_pure, + is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement, + tm_malloc_replacement): Declare. + * varasm.c (tm_clone_hash): New. + (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair, + dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New. + (struct tm_alias_pair): New. Declare VEC types for object. + +2011-11-07 Richard Henderson + + * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set, + OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior, + OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand, + OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior, + OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and + rename from the direct_optab_index enum. + (sync_compare_and_swap_optab, sync_lock_test_and_set_optab, + sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab, + sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab, + sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab, + sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read + from the optab_table, not the direct_optab_table. + (init_sync_libfuncs): Declare. + (can_compare_and_swap_p): Update parameters. + * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New. + (can_compare_and_swap_p): Add allow_libcall parameter; if true, + test for the legacy compare-and-swap libcall. + (expand_atomic_exchange): Use the legacy test-and-set libcall. + (expand_atomic_compare_and_swap): Use the legacy CAS libcall. + (struct atomic_op_functions): Update for optab type changes. + (maybe_emit_op): Likewise. + (expand_atomic_fetch_op): Use the legacy fetch-op libcalls. + * builtins.c (fold_builtin_atomic_always_lock_free): Update call + to can_compare_and_swap_p. + * omp-low.c (expand_omp_atomic_fetch_op): Likewise. + (expand_omp_atomic_pipeline): Likewise. + * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab, + sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular + optabs. + * doc/md.texi (sync_compare_and_swap): Update docs for libcalls. + +2011-11-07 Jakub Jelinek + + * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add. + * config/i386/i386.c (enum ix86_builtins): Add + IX86_BUILTIN_VEC_PACK_SFIX256. + (bdesc_args): Add __builtin_ia32_vec_pack_sfix256. + (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF. + (ix86_builtin_vectorized_function): Also vectorize lrint using + 256-bit vectors for -mavx. + +2011-11-07 Anatoly Sokolov + + * config/cris/constraints.md: New file. + * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN, + CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P, + CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT, + EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, + EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove. + * config/cris/cris.c: Incule "tm-constrs.h". + (cris_print_operand): Use satisfies_constraint_O. + (cris_normal_notice_update_cc, cris_rtx_costs): Use + satisfies_constraint_I. + (cris_address_cost): Use satisfies_constraint_L. + * config/cris/cris.md: Include "constraints.md". + (*mov_side, *mov_sidesisf, *mov_side_mem, + *mov_sidesisf_mem, *clear_side, *ext_sideqihi, + *ext_sidesi, *op_side, *op_swap_side, + *extopqihi_side, *extopsi_side, *extopqihi_swap_side, + *extopsi_swap_side): Use satisfies_constraint_N and + satisfies_constraint_J. + (moversideqi movemsideqi mover2side peephole2): Use + satisfies_constraint_N and satisfies_constraint_J. + (andu peephole2): Use satisfies_constraint_I and + satisfies_constraint_O. + +2011-11-07 Uros Bizjak + + * config/i386/i386.c (ix86_builtin_vectorized_function): Handle + BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF. + +2011-11-07 Andrew MacLeod + + * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so + SWITCHABLE_TARGET can change the values during compilation. + (expand_atomic_fetch_op): Handle parameter change ripples for + get_atomic_op_for_code call. + +2011-11-07 Andrew MacLeod + + * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and + __atomic_store. + * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set + only when originated from that builtin. + (expand_atomic_store): Expand to __sync_lock_release when originated + from that builtin. + * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that + expand_atomic_exchange call originated from here. + (expand_builtin_sync_lock_release): Add flag that expand_atomic_store + call originated from here. + (expand_builtin_atomic_exchange): Add origination flag. + (expand_builtin_atomic_store): Add origination flag. + * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean + parameters to indicate implementation fall back options. + +2011-11-07 Georg-Johann Lay + + * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P + now, not only CONST_INT and CONST_DOUBLE. + (output_movqi): Use output_reload_in_const. + (output_reload_inhi): Ditto. + (output_reload_insisf): Move assertion to output_reload_in_const. + (avr_out_reload_inpsi): Ditto. + +2011-11-07 Nathan Sidwell + + * gcov.c (object_summary): Replace with ... + (object_runs): ... this. + (process_file): Remove functions with no data. + (generate_results): Ignore files with no lines. + (release_function): New helper, broken out of ... + (release_structures): ... here. Use it. + (read_count_file): Adjust for new data file format. + (output_lines): Use object_runs. + * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete. + (struct gcov_ctr_info): Move definition. + (struct gcov_fn_info): Add key field, use gcov_ctr_info for + trailing array. + (struct gcov_info): Add merge function array, remove mask and + counts. Trailing array is array of pointers to function info. + * coverage.c (struct function_list): Replace counter numbers with + counter arrays. Add fndecl field. GTYify. + (counts_entry): Remove chain workspace. + (functions_head): GTYify. + (prg_n_ctrs): Remove. + (fn_v_ctrs): New. + (tree_ctr_tables): Remove. + (read_counts_file): Cope with blank entries and expect program + summaries before functions. Don't warn on missing entries. + (coverage_counter_alloc): Allocate individual function arrays. + (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust + for individual function arrays. + (coverage_end_function): GTYify function list object. Finalize + function's counter arrays. + (build_var): New. Create a counter-related variable with + appropriate linkage. + (build_fn_info_type): Adjust for new runtime structure. + (build_fn_info_value): Rename to ... + (build_fn_info): ... here. Build new format data. + (build_ctr_info_type, build_ctr_info_value): Remove. + (build_info_type): New. Build new format data structure. + (build_info): Adjust for new format data. + (create_coverage): Likewise. + * gcov-dump.c (tag_function): Recognize placeholders. + +2011-11-07 Georg-Johann Lay + + * config/avr/constraints.md (Cm2): New constraint for int -2. + * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2. + (*negqihi2): New insn. + +2011-11-07 H.J. Lu + + * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check + HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18. + +2011-11-07 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_builtin): If gather mask + argument is known to have all high bits set, pass pc_rtx as + second argument to the expander instead of op0. + * config/i386/sse.md (*avx2_gathersi_2, + *avx2_gatherdi_2): New patterns. + * config/i386/avx2intrin.h (_mm256_i32gather_pd, + _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using + _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of + _mm256_set1_pd. + + PR tree-optimization/50789 + * tree-vect-stmts.c (process_use): Add force argument, avoid + exist_non_indexing_operands_for_use_p check if true. + (vect_mark_stmts_to_be_vectorized): Adjust callers. Handle + STMT_VINFO_GATHER_P. + (gen_perm_mask): New function. + (perm_mask_for_reverse): Use it. + (reverse_vec_element): Rename to... + (permute_vec_elements): ... this. Add Y and MASK_VEC arguments, + generalize for any permutations. + (vectorizable_load): Adjust caller. Handle STMT_VINFO_GATHER_P. + * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook. + * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it. + * doc/tm.texi: Regenerate. + * tree-data-ref.c (initialize_data_dependence_relation, + compute_self_dependence): No longer static. + * tree-data-ref.h (initialize_data_dependence_relation, + compute_self_dependence): New prototypes. + * tree-vect-data-refs.c (vect_check_gather): New function. + (vect_analyze_data_refs): Detect possible gather load data refs. + * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field. + (STMT_VINFO_GATHER_P): Define. + (vect_check_gather): New prototype. + * config/i386/i386-builtin-types.def: Add types for alternate + gather builtins. + * config/i386/sse.md (AVXMODE48P_DI): Remove. + (VEC_GATHER_MODE): Rename mode_attr to... + (VEC_GATHER_IDXSI): ... this. + (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs. + (avx2_gathersi, *avx2_gathersi): Use + instead of . + (avx2_gatherdi): Use instead of + and instead of VEC_GATHER_MODE + on src and mask operands. + (*avx2_gatherdi): Likewise. Use VEC_GATHER_MODE iterator + instead of AVXMODE48P_DI. + (avx2_gatherdi256, *avx2_gatherdi256): Removed. + * config/i386/i386.c (enum ix86_builtins): Add + IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF, + IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI. + (ix86_init_mmx_sse_builtins): Create those builtins. + (ix86_expand_builtin): Handle those builtins and adjust expansions + of other gather builtins. + (ix86_vectorize_builtin_gather): New function. + (TARGET_VECTORIZE_BUILTIN_GATHER): Define. + +2011-11-07 Uros Bizjak + + * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check. + +2011-11-07 Tristan Gingold + + * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs. + * config/vms/t-vms: Add vms-c.o rule. + * config/vms/vms-c.c: New file. + * config/vms/vms-protos.h (vms_c_register_pragma): New prototype. + * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define. + +2011-11-07 Tristan Gingold + + * config/alpha/vms.h (TARGET_OBJECT_SUFFIX, + TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS, + TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE, + POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h + (SUBTARGET_OS_CPP_BUILTINS): Define. + (TARGET_DEFAULT): Tune according to POINTER_SIZE. + (MASK_RETURN_ADDR): Define in 64 bit mode. + * config/ia64/vms.h: Likewise. + * config/vms/vms.h: New file. + * config/vms/vms64.h: New file. + * config/alpha/vms64.h: Removed. + * config/ia64/vms64.h: Removed. + * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*): + Adjust for above change. + +2011-11-07 Enkovich Ilya + + PR target/50962 + * config/i386/i386-protos.h (ix86_use_lea_for_mov): New. + * config/i386/i386.c (ix86_use_lea_for_mov): Likewise. + * config/i386/i386.md (movsi_internal): Emit lea if profitable. + (movdi_internal_rex64): Likewise. + +2011-11-07 Sergey Ostanevich + + PR rtl-optimization/47698 + * ifcvt.c (noce_operand_ok): Return false for mems with side effects. + +2011-11-07 Tristan Gingold + + * common/config/alpha/alpha-common.c (alpha_option_init_struct): + New function. + (TARGET_OPTION_INIT_STRUCT): Define. + * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET) + (TARGET_MAX_ANCHOR_OFFSET) + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine. + +2011-11-06 Quentin Neill + + Fix r180999, update ChangeLog + * config.gcc: Add f16cintrin.h. + * config/i386/f16cintrin.h: Add missing endif. + +2011-11-06 Sebastian Huber + + * config.gcc (arm*-*-rtemseabi*): New target. + * config/arm/rtems-eabi.h: New. + * config/arm/t-rtems-eabi: New. + +2011-11-06 David S. Miller + + * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete. + (zero_extend_v8qi_vis, zero_extend_v4hi_vis, + *zero_extend_v8qi__insn, + *zero_extend_v4hi__insn): Express using vec_merge + and vec_duplicate instead of using an UNSPEC. + +2011-11-07 Alan Modra + + PR target/30282 + * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit + blockage for ABI_V4. + +2011-11-06 Dave Korn + + * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent + libgcj version bump. + * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. + +2011-11-06 Eric Botcazou + + * gcse.c: Adjust outdated comments throughout. + (struct mem_conflict_info): New structure. + (mems_conflict_for_gcse_p): Use it to communicate with caller. + (load_killed_in_block_p): Pass it to note_stores. + (hash_expr): Remove superfluous line break. + (hash_scan_set): Rename PAT parameter into SET. + (hash_scan_insn): Reorder cases. + (canon_list_insert): Fix long line. + (edge_list): Delete. + (prune_expressions): Rename E local variable into EXPR. + (compute_pre_data): Return struct edge_list * object. + (pre_expr_reaches_here_p_work): Fix formatting. + (process_insert_insn): Move around comment. + (pre_edge_insert): Fix long line. + (pre_insert_copies): Likewise. + (gcse_emit_move_after): Swap SRC and DEST parameters. + (pre_delete): Adjust call to gcse_emit_move_after. + (pre_gcse): Take struct edge_list * parameter. Fix long line. + (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines. + Use a local list of edges. + (hoist_code): Fix long line. Adjust call to gcse_emit_move_after. + (pre_ldst_expr_hash): Fix long line. + (free_ldst_mems): Rename into... + (free_ld_motion_mems): ...this. + (first_ls_expr): Delete. + (next_ls_expr): Likewise. + (print_ldst_list): Do not use above two functions. + (simple_mem): Adjust interface. + (compute_ld_motion_mems): Fix formatting. + (update_ld_motion_stores): Reuse local variable. + +2011-11-06 Joseph Myers + + * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas + specifiers. + (build_null_declspecs): Initialize align_log and alignas_p fields. + (declspecs_add_alignas): New. + * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS. + (c_parser_declspecs): Handle _Alignas specifiers. + (c_parser_alignas_specifier): New. + (c_parser_alignof_expression): Diagnose alignof use for non-C1X. + Diagnose _Alignof (expression). + * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields. + (declspecs_add_alignas): Declare. + * ginclude/stddef.h (max_align_t): Define for C1X and C++11. + * ginclude/stdalign.h: New. + * Makefile.in (USER_H): Add stdalign.h. + +2011-11-06 Joern Rennecke + + * regset.h (fixed_reg_set_regset): Declare. + * dse.c: Include regset.h . + (struct insn_info): Add member fixed_regs_live. + (note_add_store_info): New typedef. + (note_add_store): New function. + (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t. + Use gen_add3_insn / gen_move_insn. + Check new insn for unwanted clobbers before emitting it. + (check_for_inc_dec): Rename to... + (check_for_inc_dec_1:) ... this. Return bool. Take insn_info + parameter. Changed all callers in file. + (check_for_inc_dec, copy_fixed_regs): New functions. + (scan_insn): Set fixed_regs_live field of insn_info. + * rtl.h (check_for_inc_dec): Update prototype. + * postreload.c (reload_cse_simplify): Take new signature of + check_ind_dec into account. + * reginfo.c (fixed_reg_set_regset): New variable. + (init_reg_sets_1): Initialize it. + +2011-11-06 Jakub Jelinek + + * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove + any user labels. + +2011-11-06 John David Anglin + + * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs. + Remove dependence of declaration and target define on definition of + HPUX_LONG_DOUBLE_LIBRARY. Update implementation. + +2011-11-06 Andrew Macleod + Richard Henderson + Aldy Hernandez + + Merged from cxx-mem-model. + + * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models + * coretypes.h (enum memmodel): New. enumerated memory model type. + * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H) + * genopinit,c (optabs): Add atomic direct optab handlers. + * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins. + * builtin-types.def (BT_CONST_VOLATILE_PTR, + BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, + BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, + BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT, + BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, + BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, + BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types. + * expr.h (expand_atomic_*): Add prototypes. + (expand_{bool,val}_compare_and_swap): Remove prototypes. + * c-typeck.c (build_function_call_vec): Don't reprocess __atomic + parameters. + * common.opt (Winvalid-memory-model): New warning flag. + (finline-atomics): New. Flag to disable atomic inlining. + * params.h (ALLOW_LOAD_DATA_RACES): New. + (ALLOW_PACKED_LOAD_DATA_RACES): New. + (ALLOW_PACKED_STORE_DATA_RACES): New. + * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New. + (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New. + (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New. + * builtins.c (is_builtin_name): Handle __atomic. + (get_memmodel): New. Extract memory model. + (expand_expr_force_mode): New. Factor out common code for ensuring an + integer argument is in the proper mode. + (expand_builtin_sync_operation): Remove ignore param. Always call + expand_atomic_fetch_op instead of the old expanders. + (expand_builtin_compare_and_swap, + expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode, + call atomic expanders instead of sync expanders. + (expand_builtin_sync_lock_release): Call atomic_store expander. + (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load, + expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New. + (expand_builtin_atomic_exchange): New. + (fold_builtin_atomic_always_lock_free, + expand_builtin_atomic_always_lock_free, + fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free): + New. + (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence, + expand_builtin_atomic_signal_fence): New. + (expand_builtin_mem_signal_fence): New. + (expand_builtin): Add cases for BUILT_IN_ATOMIC_*. + (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE. + * optabs.h (DOI_atomic_*): Define new atomics. + (atomic_*_optab): Define. + (can_compare_and_swap_p, expand_atomic_compare_and_swap): New + prototypes. + * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove. + (expand_sync_lock_test_and_set): Remove. + (expand_atomic_load, expand_atomic_store): New. + (expand_atomic_exchange): New. + (expand_atomic_compare_and_swap): New. Implements + atomic_compare_exchange via compare and swap. + (struct atomic_op_functions): Opcode table struct for fetch ops. + (get_atomic_op_for_code): New. Return an opcode table entry. + (maybe_emit_op): New. Try to emit a fetch op. + (expand_atomic_fetch_op): New. + (expand_val_compare_and_swap_1): Remove. + (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove. + (expand_atomic_compare_and_swap): Rename from + expand_atomic_compare_exchange. Rewrite to return both success and + oldval return values; expand via both atomic and sync optabs. + (can_compare_and_swap_p): New. + (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap. + (maybe_gen_insn): Handle 7 and 8 operands. + * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual + fetch_op optabs, only test can_compare_and_swap_p. Use __atomic + builtins instead of __sync builtins. + (expand_omp_atomic_pipeline): Use can_compare_and_swap_p. + * doc/extend.texi: Document __atomic built-in functions. + * doc/invoke.texi: Document data race parameters. + * doc/md.texi: Document atomic patterns. + * config/i386/i386.md (UNSPEC_MOVA): New. + (UNSPECV_CMPXCHG): Split into ... + (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, + UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New. + * config/i386/sync.md (ATOMIC): New mode iterator. + (atomic_load, atomic_store): New. + (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New. + (mem_thread_fence): Rename from memory_barrier. + Handle the added memory model parameter. + (mfence_nosse): Rename from memory_barrier_nosse. + (sync_compare_and_swap): Split into ... + (atomic_compare_and_swap): this and ... + (atomic_compare_and_swap): this. Handle the new parameters. + (atomic_compare_and_swap_single): Rename from + sync_compare_and_swap; rewrite to use split unspecs. + (atomic_compare_and_swap_double): Rename from + sync_double_compare_and_swap; rewrite to use split unspecs. + (*atomic_compare_and_swap_doubledi_pic): Rename from + sync_double_compare_and_swapdi_pic; rewrite to use split unspecs. + (atomic_fetch_add): Rename from sync_old_add; add memory + model parameter. + (*atomic_fetch_add_cmp): Similarly. + (atomic_add, atomic): Similarly. + (atomic_sub): Similarly. Use x86_maybe_negate_const_int. + (sync_lock_test_and_set): Merge with ... + (atomic_exchange): ... this. + +2011-11-6 Richard Guenther + + * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag. + +2011-11-06 Ira Rosen + + * tree-vectorizer.h (vectorizable_condition): Add argument. + * tree-vect-loop.c (vectorizable_reduction): Fail for condition + in SLP. Update calls to vectorizable_condition. + * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to + the arguments. Pass it to vect_is_simple_use_1. + (vectorizable_condition): Add slp_node to the arguments. Support + vectorization of basic blocks. Fail for reduction in SLP. Update + calls to vect_is_simple_cond and vect_is_simple_use. Support SLP: + call vect_get_slp_defs to get vector operands. + (vect_analyze_stmt): Update calls to vectorizable_condition. + (vect_transform_stmt): Likewise. + * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR. + (vect_get_and_check_slp_defs): Handle COND_EXPR. Allow pattern + def stmts. + (vect_build_slp_tree): Handle COND_EXPR. + (vect_analyze_slp_instance): Push pattern statements to root node. + (vect_get_constant_vectors): Fix comments. Handle COND_EXPR. + +2011-11-05 David S. Miller + + * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. + (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. + (*zero_extend_v8qi__insn, + *zero_extend_v4hi__insn): New insns. + * config/sparc/sparc.c (vector_init_move_words, + vector_init_prepare_elts, sparc_expand_vector_init_vis2, + sparc_expand_vector_init_vis1): New functions. + (vector_init_bshuffle): Rewrite to handle more cases and make use + of locs[] array prepared by vector_init_prepare_elts. + (vector_init_fpmerge, vector_init_faligndata): Delete. + (sparc_expand_vector_init): Rewrite using new infrastructure. + +2011-11-05 Joern Rennecke + + * config.gcc (epiphany-*-*): New architecture. + (epiphany-*-elf): New configuration. + * config/epiphany, common/config/epiphany : New directories. + * doc/extend.texi (disinterrupt attribute): Add Epiphany. + (interrupt attribute): Add Epiphany. + (long_call, short_call attribute): Add Epiphany. + * doc/invoke.texi (Options): Add Epiphany options. + * doc/md.texi (Machine Constraints): Add Epiphany constraints. + * doc/install.texi (Options specification): + Add --with-stack-offset=@var{num} description. + (host/target specific issues): Add epiphany-*-elf. + * doc/contrib.texi (Contributors): Mention Epiphany port. + +2011-11-05 Jakub Jelinek + + PR tree-optimization/50693 + * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with + non-forced user labels. + (gimple_merge_blocks): Turn non-forced user labels into + debug bind stmt with the label as first operand and reset value. + (gimple_duplicate_bb): Don't duplicate label debug stmts. + * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL. + * final.c (final_scan_insn): Likewise. + (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL. + * var-tracking.c (debug_label_num): New variable. + (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs, + instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes. + * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle + NOTE_INSN_DELETED_DEBUG_LABEL. + (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs. + * insn-notes.def (DELETED_DEBUG_LABEL): New note kind. + * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL. + * gengtype.c (adjust_field_rtx_def): Likewise. + * config/i386/i386.c (ix86_output_function_epilogue): For MachO + clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL + if their are at the end of function and nop hasn't been emitted. + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise. + +2011-11-05 Georg-Johann Lay + + PR rtl-optimization/50448 + * cprop.c (try_replace_reg): Also try to replace uses of FROM that + appear in SET_DEST. + +2011-11-05 Peter Dufault , + Sebastian Huber + + * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS): + Extend rs6000_spe handling. + +2011-11-05 Ralf Corsépius + + * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib. + Remove -mcpu=601 multilib. + Remove -Dmpc8260 multilib. + * config/rs6000/rtems.h: Allow --float-gprs=... to override grps + on E500 targets. + +2011-11-05 Quentin Neill + + Piledriver f16cintrin.h fix. + * config/i386/f16cintrin.h: Contents moved from immintrin.h. + * config/i386/immintrin.h: Include f16cintrin.h. + * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h. + + +2011-11-04 Eric Botcazou + + PR c++/50608 + * c-parser.c (c_parser_postfix_expression) : Adjust call + to fold_offsetof. + * c-typeck.c (build_unary_op) : Call fold_offsetof_1. + +2011-11-04 Alan Modra + + * reload1.c (gen_reload): Don't use REGNO on SUBREGs. + * print-rtl.c (print_rtx): Don't segfault on negative regno. + +2011-11-04 David S. Miller + + PR target/49965 + * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the + fact that sparc_emit_float_lib_cmp modifies the comparison in + operands[1]. + +2011-11-04 Ralf Corsépius + + * config/lm32/t-rtems: New. + * config.gcc (lm32-*-rtems*): Add t-rtems. + +2011-11-04 Eric Botcazou + + PR target/50979 + * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8. + +2011-11-04 Jiangning Liu + + PR rtl-optimization/38644 + * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier + for epilogue having stack adjustment. + +2011-11-04 Georg-Johann Lay + + PR target/50931 + * config/avr/avr-modes.def: New file defining PSImode. + * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__, + __UINT24_MAX__): New built-in defines. + * config/avr/avr.md (adjust_len): Add tstpsi, mov24, reload_in24, + ashlpsi, ashrpsi, lshrpsi. + (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI. + (MOVMODE): New mode iterator. + (movpsi): New expander. + (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE. + (*reload_inpsi, *movpsi): New insns. + (*reload_inpsi): New RTL peephole. + (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi, + *addpsi3_sign_extend.hi): New insns. + (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi, + *subpsi3_sign_extend.hi): New insns. + (divmodpsi4, udivmodpsi4): New define insn-and-split. + (*divmodpsi4_call, *udivmodpsi4_call): New insns. + (andpsi3, iorpsi3, xorpsi3): New insns. + (*rotlpsi2.1, *rotlpsi2.23): New insns. + (*rotw): Insn condition only allow even-sized modes. + (*rotb): Insn condition allows odd-sized modes. + (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns. + (negpsi2, one_cmplpsi2): New insns. + (extendqipsi2, extendhipsi2, extendpsisi2): New insns. + (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New + insn-and-splits. + (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns. + (cbranchpsi4): New expander. + * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints. + * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi, + avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3, + avr_out_reload_inpsi): New prototypes. + + * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to... + (avr_scalar_mode_supported_p): ...this new static function. + (avr_asm_len): Always return "". + (avr_out_load_psi, avr_out_store_psi): New static functions. + (avr_out_movpsi, avr_out_reload_inpsi): New functions. + (avr_out_tstpsi): New function. + (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions. + (avr_out_plus_1, output_reload_in_const): Handle 3-byte types. + (avr_simplify_comparison_p): Ditto. + (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24, + ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI, + ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI. + (avr_rtx_costs_1): Report PSI costs. + (avr_libcall_value): Handle odd-sized parameters. + (avr_init_builtin_int24): New static function to define built-in + 24-bit types __int24 and __uint24. + (avr_init_builtins): Use it. + +2011-11-04 Thomas Doerfler + + PR target/50989 + * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional + support for VFP floating point model. + +2011-11-04 Tristan Gingold + + * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section. + +2011-11-04 Ira Rosen + + Unrevert: + 2011-10-24 Ira Rosen + + PR tree-optimization/50730 + * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block + analysis if encountered unsupported data-ref. + +2011-11-04 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New + function. + * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf): + New prototype. + * config/i386/sse.md (floatuns2): Use it. + For floatunsv8siv8sf2 require TARGET_AVX2. + + * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add + XORP argument. Subtract 0x1p31 instead of 0x1p32. Use normal + signalling comparison instead of non-signalling. Store into + *XORP pseudo holding 0x80000000 integers if 0x1p31 has been + subtracted and 0 otherwise. + * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): + Adjust prototype. + * config/i386/sse.md (fixuns_trunc2): Enable + already for TARGET_SSE2. Xor in vector initialized by + ix86_expand_adjust_ufix_to_sfix_si at the end. + (vec_pack_ufix_trunc_): Likewise. + + * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle + not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P, + WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what + vectorizable_type_demotion and vectorizable_type_promotion did. + Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer + is {,un}signed {char,short}. + (vect_create_vectorized_demotion_stmts): Fix comment typo. For + recursive calls unconditionally use VEC_PACK_TRUNC_EXPR. + Push vec_dest back to the vec_dsts vector at the end. + (vect_create_vectorized_promotion_stmts): Don't recurse, do just + one step. Removed multi_step_cvt, vec_dsts, slp_node and + prev_stmt_info arguments, add vec_dest argument. Push always + into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0 + with vec_tmp at the end after freeing old *vec_oprnd0 vector. + (vectorizable_type_demotion, vectorizable_type_promotion): Removed. + (vect_analyze_stmt): Don't call vectorizable_type_demotion and + vectorizable_type_promotion. Call vectorizable_conversion even + for SLP bb vectorization. + (vect_transform_stmt): Call vectorizable_conversion instead of + vectorizable_type_demotion and vectorizable_type_promotion. + (supportable_widening_operation): Clear *multi_step_cvt first, + simplify c1/c2 computation, free *interm_types vector on failure. + (supportable_narrowing_operation): Clear *multi_step_cvt first, + free *interm_types vector on failure, handle multi-step + FIX_TRUNC_EXPR. + +2011-11-04 Tristan Gingold + + * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl + argument. Conditionally generate crash debug info. Adjust + for alpha_funcs_tree removal. + (machine_function): Add links field. + (alpha_start_function): Conditionally generate crash debug info. + (alpha_end_function): Adjust call to alpha_write_linkage. + (alpha_funcs): Remove. + (links_kind): Remove. + (alpha_links): Remove num, target and lkind field. Add func field. + (alpha_links_tree): Remove. + (alpha_funcs_tree): Remove. + (alpha_need_linkage): Remove. + (alpha_use_linkage): Change prototype. Adjust. + (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL. + Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro. + * config/alpha/alpha-protos.h (alpha_use_linkage): Update. + (alpha_need_linkage): Remove. + * config/alpha/alpha.md: Update calls to alpha_use_linkage. + Adjust calls to alpha_need_linkage. + +2011-11-03 Uros Bizjak + + * sched-vis.c (print_value): Handle STRICT_LOW_PART. + +2011-11-03 Uros Bizjak + + * config/i386/i386.md (lround2, + rint2, floor2, lfloor2, + btrunc2, lwp_lwpval3): Use operands[N] instead of operandN. + +2011-11-03 Rainer Orth + + PR target/50978 + * config/arm/t-bpabi: New file. + * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for + arm*-*-linux-*eabi. + (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for + arm*-*-uclinux*eabi. + (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file + for arm*-*-eabi*. + +2011-11-03 Michael Matz + + PR bootstrap/50857 + * configure.ac: Check for -fno-exceptions -fno-rtti. + * configure: Regenerate. + * Makefile.in (NOEXCEPTION_FLAGS): New flag. + (ALL_CXXFLAGS): Use it. + +2011-11-03 Uros Bizjak + + * config/i386/i386.md: Use {} for multi-line preparation statements. + +2011-11-03 Eric Botcazou + + * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into... + (movtf_insn_sp32): ...this. + (movtf_insn_sp64_no_fpu): Consolidate into... + (movtf_insn_sp64): ...this. + (movtf_insn_sp64_hq): Do not test TARGET_FPU. + * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise. + +2011-11-03 Tristan Gingold + + * config/vms/vms.c (vms_patch_builtins): Fix typo. + +2011-11-03 Richard Guenther + + PR lto/44965 + * lto-opts.c: Re-implement. + * lto-streamer.h (lto_register_user_option): Remove. + (lto_read_file_options): Likewise. + (lto_reissue_options): Likewise. + (lto_clear_user_options): Likewise. + (lto_clear_file_options): Likewise. + * opts-global.c (post_handling_callback): Remove. + (set_default_handlers): Do not set post_handling_callback. + (decode_options): Remove LTO specific code. + * lto-wrapper.c (merge_and_complain): New function. + (run_gcc): Read all input file options and + prepend a merged set before the linker driver options. + * gcc.c (driver_post_handling_callback): Remove. + (set_option_handlers): Do not set post_handling_callback. + * opts-common.c (handle_option): Do not call post_handling_callback. + * opts.h (struct cl_option_handlers): Remove post_handling_callback. + +2011-11-03 Richard Guenther + + * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION. + +2011-11-03 Martin Jambor + + * ipa-prop.c (type_change_info): New fields offset, object, + known_current_type and multiple_types_encountered. + (extr_type_from_vtbl_ptr_store): New function. + (check_stmt_for_type_change): Use it, set multiple_types_encountered if + the result is different from the previous one. + (detect_type_change): Renamed to detect_type_change_1. New parameter + comp_type. Set up new fields in tci, build known type jump + functions if the new type can be identified. + (detect_type_change): New function. + * tree.h (DECL_CONTEXT): Comment new use. + +2011-11-03 Richard Guenther + + PR lto/48217 + * lto-wrapper.c (get_options_from_collect_gcc_options): Properly + decode an encoded literal '. + +2011-11-03 Tristan Gingold + + * collect2.c (main): Add support of -f (response file) on AIX. + +2011-11-03 Ira Rosen + + PR tree-optimization/50912 + * tree-vectorizer.h (slp_void_p): New. + (struct _slp_tree): Replace left and right with children. Update + documentation. + (struct _slp_oprnd_info): New. + (vect_get_vec_defs): Declare. + (vect_get_slp_defs): Update arguments. + * tree-vect-loop.c (vect_create_epilog_for_reduction): Call + vect_get_vec_defs instead of vect_get_slp_defs. + (vectorizable_reduction): Likewise. + * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument. + Update call to vect_get_slp_defs. + (vectorizable_conversion): Update call to vect_get_vec_defs. + (vectorizable_assignment, vectorizable_shift, + vectorizable_operation): Likewise. + (vectorizable_type_demotion): Call vect_get_vec_defs instead of + vect_get_slp_defs. + (vectorizable_type_promotion, vectorizable_store): Likewise. + (vect_analyze_stmt): Fix typo. + * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal. + (vect_print_slp_tree, vect_mark_slp_stmts, + vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts, + vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations, + vect_schedule_slp_instance): Likewise. + (vect_create_new_slp_node): New. + (vect_create_oprnd_info, vect_free_oprnd_info): Likewise. + (vect_get_and_check_slp_defs): Pass information about defs using + oprnds_info, allow any number of operands. + (vect_build_slp_tree): Likewise. Update calls to + vect_get_and_check_slp_defs. Fix comments. + (vect_analyze_slp_instance): Move node creation to + vect_create_new_slp_node. + (vect_get_slp_defs): Allow any number of operands. + +2011-11-02 Peter Bergner + Iain Sandoe + + * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define. + (get_ppc476_thunk_name): Use it. + (rs6000_code_end): Likewise. + (macho_branch_islands): Fix typo. + +2011-11-02 Paolo Carlini + Jason Merrill + + PR c++/50810 + * configure.ac: Add -Wno-narrowing to warning options. + * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. + +2011-11-02 Eric Botcazou + + PR target/50945 + * config/sparc/sparc.md (movsf_insn): Reindent constraints. + (movdf_insn_sp32): Likewise. Remove redundant G constraint. + (movdf_insn_sp64): Likewise. + (DFmode splitter): Do not test TARGET_FPU. + (movtf_insn_sp32): Reindent constraints. + (movtf_insn_sp32_no_fpu): Likewise. + (movtf_insn_sp64): Likewise. + (movtf_insn_sp64_hq): Likewise. + (movtf_insn_sp64_no_fpu): Likewise. + +2011-11-02 Paolo Carlini + + PR c++/50956 + * builtins.c (fold_builtin_memchr): Fix cast. + +2011-11-02 Teresa Johnson + + * config/i386/predicates.md (promotable_binary_operator): Add minus + to the list of promotable operators. + +2011-11-02 Rainer Orth + + * gthr-single.h, gthr.h: Move to ../libgcc. + * gthr-aix.h: Move to ../libgcc/config/rs6000. + * gthr-dce.h: Move to ../libgcc/config/pa. + * gthr-lynx.h: Move to ../libgcc/config. + * gthr-mipssde.h: Move to ../libgcc/config/mips. + * gthr-posix.h: Move to ../libgcc/config. + * gthr-rtems.h: Likewise. + * gthr-tpf.h: Move to ../libgcc/config/s390. + * gthr-vxworks.h: Move to ../libgcc/config. + * gthr-win32.h: Move to ../libgcc/config/i386. + * configure.ac (gthread_flags): Remove + (gthr-default.h): Don't create. + (thread_file): Don't substitute. + * configure: Regenerate. + * Makefile.in (GCC_THREAD_FILE): Remove. + (GTHREAD_FLAGS): Remove. + (libgcc.mvars): Remove GTHREAD_FLAGS. + * config/t-vxworks (EXTRA_HEADERS): Remove. + +2011-11-02 Rainer Orth + Paolo Bonzini + + * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove. + * configure: Regenerate. + * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove. + (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list). + (libgcc_tm.h, cs-libgcc_tm.h): Remove. + (clean): Remove libgcc_tm.h + * mkconfig.sh: Don't include libgcc_tm.h in tm.h. + * config.gcc (libgcc_tm_file): Remove. + (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi. + (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi. + (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file. + (avr-*-rtems*): Likewise. + (avr-*-*): Likewise. + (frv-*-elf): Likewise. + (frv-*-*linux*): Likewise. + (h8300-*-rtems*): Likewise. + (h8300-*-elf*): Likewise. + (i[34567]86-*-darwin*): Likewise. + (x86_64-*-darwin*): Likewise. + (rx-*-elf*): Likewise. + (tic6x-*-elf): Likewise. + (tic6x-*-uclinux): Likewise. + (i[34567]86-*-linux*, x86_64-*-linux*): Likewise. + +2011-11-02 Rainer Orth + + * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS) + (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA) + (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET) + (INCLUDES_FOR_TARGET): Remove. + (LIBGCC2_CFLAGS): Don't export. + (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify): + Remove. + (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies. + (libgcc.mvars): Likewise. + Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST, + LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS, + TARGET_LIBGCC2_CFLAGS. + Emit GTHREAD_FLAGS. + * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc. + * config/darwin-64.c: Move to ../libgcc/config. + * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, + config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, + config/udivmodsi4.c: Move to ../libgcc/config. + * config/gthr-posix.c: Move to ../libgcc/config/alpha. + * config/memcmp.c, config/memcpy.c, config/memmove.c, + config/memset.c: Move to ../libgcc/config. + * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove. + * config/t-freebsd: Remove. + * config/t-freebsd-thread: Move to ../libgcc/config. + * config/t-libgcc-pic: Move to ../libgcc/config. + * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove. + * config/t-linux: Remove. + * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): + Remove. + * config/t-openbsd-thread: Move to ../libgcc/config. + * config/t-rtems (LIBGCC2_INCLUDES): Remove. + * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove. + * config/t-svr4: Remove. + * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS) + (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove. + * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config. + * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S. + * config/alpha/t-alpha, config/alpha/t-ieee: Remove. + * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove. + * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha. + * config/arm/bpabi.c, config/arm/unaligned-funcs.c, + config/arm/fp16.c, config/arm/linux-atomic.c, + config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm. + * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC) + (TARGET_LIBGCC2_CFLAGS): Remove. + * config/arm/t-bpabi, config/arm/t-linux: Remove. + * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS) + (LIB2FUNCS_STATIC_EXTRA): Remove. + * config/arm/t-netbsd: Remove. + * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC) + (TARGET_LIBGCC2_CFLAGS): Remove. + * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove. + * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC) + (TARGET_LIBGCC2_CFLAGS): Remove. + * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS) + (LIBGCC, INSTALL_LIBGCC): Remove. + * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove. + * config/bfin/t-bfin-linux: Likewise. + * config/bfin/t-bfin-uclinux: Likewise. + * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, + config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, + config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, + config/c6x/ltf.c: Move to ../libgcc/config/c6x. + * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove. + * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove. + * config/cris/arit.c: Move to ../libgcc/config/cris. + * config/cris/cris_abi_symbol.c: Remove. + * config/cris/cris.h: Remove obsolete comment. + * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S. + * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC) + ($(LIB2FUNCS_EXTRA)): Remove. + * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC) + (LIBGCC): Remove. + * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. + * config/fr30/t-fr30: Remove. + * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, + config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, + config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move + to ../libgcc/config/frv. + * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) + (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c) + (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove. + * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. + * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, + config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, + config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300. + * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) + (LIBGCC, INSTALL_LIBGCC): Remove. + * config/i386/gthr-win32.c: Move to ../libgcc/config/i386. + * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove. + * config/i386/t-cygwin: Remove. + * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) + (LIB2FUNCS_EXCLUDE): Remove. + * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) + (LIBGCC, INSTALL_LIBGCC): Remove. + * config/i386/t-gthr-win32: Move to ../libgcc/config/i386. + * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove. + * config/i386/t-mingw-w32: Likewise. + * config/i386/t-mingw-w64: Likewise. + * config/i386/t-openbsd: Likewise. + * config/i386/t-nto: Remove. + * config/ia64/quadlib.c: Move to ../libgcc/config/ia64. + * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) + (quadlib.c): Remove. + * config/ia64/t-ia64: Remove comment. + * config/iq2000/lib2extra-funcs.c: Move to + ../libgcc/config/iq2000/lib2funcs.c. + * config/iq2000/t-iq2000: Remove. + * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c. + * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c. + * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. + * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove. + * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC) + (INSTALL_LIBGCC): Remove. + * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k. + * config/m68k/t-floatlib: Remove. + * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove. + * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove. + Fix typo. + (LIBGCC, INSTALL_LIBGCC): Remove. + * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c. + * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c. + * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove. + * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC) + (INSTALL_LIBGCC): Remove. + * config/mips/t-isa3264: Likewise. + * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove. + * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC) + (INSTALL_LIBGCC): Remove. + * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove. + * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC) + (INSTALL_LIBGCC): Remove. + * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS) + (LIB2FUNCS_STATIC_EXTRA): Remove. + * config/mips/vr4120-div.S: Move to ../libgcc/config/mips. + * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove. + * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove. + * config/pa/fptr.c, config/pa/linux-atomic.c: Move to + ../libgcc/config/pa. + * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S. + * config/pa/quadlib.c: Move to ../libgcc/config/pa. + * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove. + * config/pa/t-linux, config/pa/t-linux64: Remove. + * config/pa/t-pa-hpux, config/pa/t-pa-hpux10, + config/pa/t-pa-hpux11, config/pa/t-pa64: Remove. + * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA): + Remove. + * config/picochip/libgccExtras: Move to ../libgcc/config/picochip. + * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET) + (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove. + * config/rs6000/crtresfpr.asm: Move to + ../libgcc/config/rs6000/crtresfpr.S. + * config/rs6000/crtresgpr.asm: Move to + ../libgcc/config/rs6000/crtresgpr.S. + * config/rs6000/crtresxfpr.asm: Move to + ../libgcc/config/rs6000/crtresxfpr.S. + * config/rs6000/crtresxgpr.asm: Move to + ../libgcc/config/rs6000/crtresxgpr.S. + * config/rs6000/crtsavfpr.asm: Move to + ../libgcc/config/rs6000/crtsavfpr.S. + * config/rs6000/crtsavgpr.asm: Move to + ../libgcc/config/rs6000/crtsavgpr.S. + * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000. + * config/rs6000/darwin-fpsave.asm: Move to + ../libgcc/config/rs6000/darwin-fpsave.S. + * config/rs6000/darwin-gpsave.asm: Move to + ../libgcc/config/rs6000/darwin-gpsave.S. + * config/rs6000/darwin-tramp.asm: Move to + ../libgcc/config/rs6000/darwin-tramp.S. + * config/rs6000/darwin-vecsave.asm: Move to + ../libgcc/config/rs6000/darwin-vecsave.S. + * config/rs6000/darwin-world.asm: Move to + ../libgcc/config/rs6000/darwin-world.S. + * config/rs6000/e500crtres32gpr.asm: Move to + ../libgcc/config/rs6000/e500crtres32gpr.S. + * config/rs6000/e500crtres64gpr.asm: Move to + ../libgcc/config/rs6000/e500crtres64gpr.S. + * config/rs6000/e500crtres64gprctr.asm: Move to + ../libgcc/config/rs6000/e500crtres64gprctr.S. + * config/rs6000/e500crtrest32gpr.asm: Move to + ../libgcc/config/rs6000/e500crtrest32gpr.S. + * config/rs6000/e500crtrest64gpr.asm: Move to + ../libgcc/config/rs6000/e500crtrest64gpr.S. + * config/rs6000/e500crtresx32gpr.asm: Move to + ../libgcc/config/rs6000/e500crtresx32gpr.S. + * config/rs6000/e500crtresx64gpr.asm: Move to + ../libgcc/config/rs6000/e500crtresx64gpr.S. + * config/rs6000/e500crtsav32gpr.asm: Move to + ../libgcc/config/rs6000/e500crtsav32gpr.S. + * config/rs6000/e500crtsav64gpr.asm: Move to + ../libgcc/config/rs6000/e500crtsav64gpr.S. + * config/rs6000/e500crtsav64gprctr.asm: Move to + ../libgcc/config/rs6000/e500crtsav64gprctr.S. + * config/rs6000/e500crtsavg32gpr.asm: Move to + ../libgcc/config/rs6000/e500crtsavg32gpr.S. + * config/rs6000/e500crtsavg64gpr.asm: Move to + ../libgcc/config/rs6000/e500crtsavg64gpr.S. + * config/rs6000/e500crtsavg64gprctr.asm: Move to + ../libgcc/config/rs6000/e500crtsavg64gprctr.S. + * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S. + * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) + (TARGET_LIBGCC2_CFLAGS): Remove. + * config/rs6000/t-aix52: Likewise. + * config/rs6000/t-darwin: Remove. + * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS) + (LIB2FUNCS_EXTRA): Remove. + * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove. + * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove. + * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC) + (INSTALL_LIBGCC): Remove. + * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA) + (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S) + (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC) + (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext)) + ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext)) + ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove. + * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA) + (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove. + * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove. + * config/rs6000/t-vxworks: Remove comment. + * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S. + * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove. + * config/sh/linux-atomic.asm: Move to + ../libgcc/config/sh/linux-atomic.S. + * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove. + * config/sh/t-netbsd: Remove. + * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): + Remove. + * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove. + * config/sparc/t-leon: Likewise. + * config/sparc/t-leon3: Likewise. + * config/sparc/t-linux64: Likewise. + * config/sparc/t-netbsd64: Fix typo. + Remove comment. + * config/spu/divmodti4.c, config/spu/divv2df3.c, + config/spu/float_disf.c, config/spu/float_unsdidf.c, + config/spu/float_unsdisf.c, config/spu/float_unssidf.c, + config/spu/mfc_multi_tag_release.c, + config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, + config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, + config/spu/multi3.c: Move to ../libgcc/config/spu. + * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE) + (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC) + (INSTALL_LIBGCC): Remove. + * config/stormy16/stormy16-lib2.c: Move to + ../libgcc/config/stormy16/lib2.c. + * config/stormy16/stormy16-lib2-ashlsi3.c: Move to + ../libgcc/config/stormy16/ashlsi3.c. + * config/stormy16/stormy16-lib2-ashrsi3.c: Move to + ../libgcc/config/stormy16/ashrsi3.c. + * config/stormy16/stormy16-lib2-clzhi2.c: Move to + ../libgcc/config/stormy16/clzhi2.c. + * config/stormy16/stormy16-lib2-cmpsi2.c: Move to + ../libgcc/config/stormy16/cmpsi2.c. + * config/stormy16/stormy16-lib2-ctzhi2.c: Move to + ../libgcc/config/stormy16/ctzhi2.c. + * config/stormy16/stormy16-lib2-divsi3.c: Move to + ../libgcc/config/stormy16/divsi3.c. + * config/stormy16/stormy16-lib2-ffshi2.c: Move to + ../libgcc/config/stormy16/ffshi2.c. + * config/stormy16/stormy16-lib2-lshrsi3.c: Move to + ../libgcc/config/stormy16/lshrsi3.c. + * config/stormy16/stormy16-lib2-modsi3.c: Move to + ../libgcc/config/stormy16/modsi3.c. + * config/stormy16/stormy16-lib2-parityhi2.c: Move to + ../libgcc/config/stormy16/parityhi2.c. + * config/stormy16/stormy16-lib2-popcounthi2.c: Move to + ../libgcc/config/stormy16/popcounthi2.c. + * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to + ../libgcc/config/stormy16/ucmpsi2.c. + * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to + ../libgcc/config/stormy16/udivmodsi4.c. + * config/stormy16/stormy16-lib2-udivsi3.c: Move to + ../libgcc/config/stormy16/udivsi3.c. + * config/stormy16/stormy16-lib2-umodsi3.c: Move to + ../libgcc/config/stormy16/umodsi3.c. + * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16. + * config/v850/t-v850 (INSTALL_LIBGCC): Remove. + * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa. + * config/xtensa/t-elf: Remove. + * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove. + * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread + from tmake_file. + (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, + *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file. + (*-*-netbsd*): Remove t-libgcc-pic from tmake_file. + (*-*-openbsd*): Likewise. + Remove t-openbsd-thread for posix threads. + (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file. + (alpha*-*-freebsd*): Likewise. + (alpha*-*-netbsd*): Likewise. + (alpha*-*-openbsd*): Likewise. + (alpha64-dec-*vms*): Likewise. + (alpha*-dec-*vms*): Likewise. + (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file. + (arm*-*-linux*): Remove t-linux from tmake_file. + Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi. + (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for + arm*-*-uclinux*eabi. + (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from + tmake_file for arm*-*-eabi*. + (fr30-*-elf): Remove tmake_file. + (hppa*64*-*-linux*): Remove tmake_file. + (hppa*-*-linux*): Likewise. + (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from + tmake_file. + (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file. + (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from + tmake_file. + (i[34567]86-*-elf*): Remove tmake_file. + (x86_64-*-elf*): Likewise. + (i[34567]86-*-nto-qnx*): Likewise. + (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file. + (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32 + from tmake_file if using win32 threads. + (iq2000*-*-elf*): Remove tmake-file. + (microblaze*-linux*): Likewise. + (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) + (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) + (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) + (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for + sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd. + (xtensa*-*-elf*): Remove tmake_file. + +2011-11-02 Rainer Orth + + * Makefile.in (LIB1ASMSRC): Don't export. + (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC. + * config/arm/arm.c: Update lib1funcs.asm filename. + * config/arm/linux-eabi.h: Likewise. + * config/arm/bpabi-v6m.S, config/arm/bpabi.S, + config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to + ../libgcc/config/arm. + * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S. + * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove. + * config/arm/t-bpabi: Likewise. + * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove. + * config/arm/t-strongarm-elf: Likewise. + * config/arm/t-symbian: Likewise. + * config/arm/t-vxworks: Likewise. + * config/arm/t-wince-pe: Likewise. + * config/avr/libgcc.S: Move to ../libgcc/config/avr. + * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S. + * config/bfin/t-bfin: Remove. + * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/bfin/t-bfin-linux: Likewise. + * config/bfin/t-bfin-uclinux: Likewise. + * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S. + * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S. + * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S. + * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename. + * config/h8300/lib1funcs.asm: Move to + ../libgcc/config/h8300/lib1funcs.S. + * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S. + * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/i386/t-interix: Likewise. + * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S. + * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove. + * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove. + * config/m32c/m32c.c: Update m32c-lib1.S filename. + * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S. + * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove. + * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S. + * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file. + * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S. + * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S. + * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/mips/mips16.S: Move to ../libgcc/config/mips. + * config/mips/t-libgcc-mips16: Remove. + * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove. + * config/pa/milli64.S: Move to ../libgcc/config/pa. + * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove. + * config/pa/t-linux64: Likewise. + * config/picochip/libgccExtras/fake_libgcc.asm: Move to + ../libgcc/config/picochip/lib1funcs.S. + * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove. + * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S. + * config/sh/lib1funcs.h: Move to ../libgcc/config/sh. + * config/sh/sh.h: Update lib1funcs.asm filename. + * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove. + * config/sh/t-netbsd: Likewise. + * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE): + Remove. + * config/sh/t-sh64 (LIB1ASMFUNCS): Remove. + * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S. + * config/sparc/lb1spl.asm: Remove. + * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config/sparc/t-leon: Likewise. + * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove. + * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S. + * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove + * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S. + * config/vax/t-linux: Remove. + * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to + ../libgcc/config/xtensa. + * config/xtensa/lib1funcs.asm: Move to + ../libgcc/config/xtensa/lib1funcs.S. + * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove. + * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file. + (bfin*-*): Likewise. + (mips64*-*-linux*, mipsisa64*-*-linux*): Remove + mips/t-libgcc-mips16 from tmake_file. + (mips*-*-linux*): Likewise. + (mips*-sde-elf*): Likewise. + (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) + (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) + (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise. + (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise. + (mips-*-elf*, mipsel-*-elf*): Likewise. + (mips64-*-elf*, mips64el-*-elf*): Likewise. + (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise. + (mips*-*-rtems*): Likewise. + (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise. + (vax-*-linux*): Remove vax/t-linux from tmake_file. + +2011-11-02 Rainer Orth + + * config.gcc (extra_parts): Remove. + (*-*-freebsd*): Remove extra_parts. + (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, + *-*-gnu*, *-*-kopensolaris*-gnu): Likewise. + (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file. + Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*, + *-*-netbsdelf[2-9]*. + (*-*-openbsd*): Remove t-libc-ok from tmake_file. + (alpha*-*-linux*): Remove extra_parts. + (alpha*-*-freebsd*): Likewise. + (bfin*-linux-uclibc*): Likewise. + (fr30-*-elf): Likewise. + (moxie-*-elf): Likewise. + (moxie-*-uclinux*): Likewise. + (h8300-*-rtems*): Remove h8300/t-elf from tmake_file. + (h8300-*-elf*): Likewise. + (hppa*64*-*-hpux11*): Remove extra_parts. + (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from + tmake_file. + (x86_64-*-elf*): Likewise. + (i[34567]86-*-freebsd*): Remove tmake_file. + (x86_64-*-freebsd*): Likewise. + (x86_64-*-netbsd*): Likewise. + (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove + t-libc-ok from tmake_file. + (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, + i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, + i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from + tmake_file. + Remove extra_parts. + (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): + Remove i386/t-crtstuff from tmake_file. + (i[34567]86-*-lynxos*): Likewise. + Remove extra_parts. + (ia64*-*-elf*): Remove extra_parts. + (ia64*-*-freebsd*): Likewise. + (ia64*-*-linux*): Likewise. + (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file. + (m32r-*-elf*): Remove extra_parts. + (m32rle-*-elf*): Likewise. + (m32r-*-rtems*): Likewise. + (m68k-*-elf*, fido-*-elf*): Likewise. + (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file. + (m68k-*-rtems*): Remove extra_parts. + (mep-*-*): Likewise. + (microblaze*-linux*): Likewise. + (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise. + (mips*-*-linux*): Likewise. + (powerpc-*-lynxos*): Likewise. + (s390x-ibm-tpf*): Likewise. + (score-*-elf): Likewise. + Remove tmake_file. + (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*, + sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*, + sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file. + Remove sh/t-superh from tmake_file for sh*-superh-elf. + Remove sh/t-linux64 from tmake_file for sh64*-*-linux*. + (sh-*-rtems*): Remove sh/t-elf from tmake_file. + (sh-wrs-vxworks): Likewise. + (sparc-*-linux*): Remove extra_parts. + (sparc64-*-linux*): Likewise. + (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise. + (xstormy16-*-elf): Likewise. + (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file. + (am33_2.0-*-linux*): Remove extra_parts. + * configure.ac (extra_parts): Don't substitute. + * configure: Regenerate. + * crtstuff.c: Move to ../libgcc. + * Makefile.in (CRTSTUFF_CFLAGS): Remove. + (EXTRA_PARTS): Remove. + (CRTSTUFF_T_CFLAGS): Remove. + (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS). + (GCC_EXTRA_PARTS): Remove. + (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS, + CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S. + Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS. + ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o) + ($(T)crtbeginT.o): Remove. + * config/alpha/t-vms (EXTRA_PARTS): Remove. + ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove. + * config/alpha/vms-dwarf2.asm: Move to + ../libgcc/config/alpha/vms-dwarf2.S. + * config/alpha/vms-dwarf2eh.asm: Move to + ../libgcc/config/alpha/vms-dwarf2eh.S. + * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S. + * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S. + * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + * config/arm/t-linux: Remove comment. + * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove. + * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove. + * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S. + * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S. + * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S. + * config/bfin/t-bfin (EXTRA_PARTS): Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove. + ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove + (EXTRA_MULTILIB_PARTS): Remove. + * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS, + EXTRA_MULTILIB_PARTS): Remove. + * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove. + ($(T)crtlibid.o): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S. + * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S. + * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. + * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS, + CRTSTUFF_T_CFLAGS_S): Remove. + * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove. + * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. + * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S. + * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S. + * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove. + * config/frv/frvbegin.c, config/frv/frvend.c: Move to + ../libgcc/config/frv. + * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove. + (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove. + * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove. + (CRTSTUFF_T_CFLAGS): Remove. + * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S. + * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S. + * config/h8300/t-elf: Remove. + * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c: + Move to ../libgcc/config/i386. + * config/i386/t-crtstuff: Remove. + * config/i386/t-i386elf: Remove. + * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove. + * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove. + * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S. + * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S. + * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S. + * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S. + * config/ia64/t-vms: Remove. + * config/ia64/vms-crtinit.asm: Move to + ../libgcc/config/ia64/vms-crtinit.S. + * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove. + * config/m32r/initfini.c: Move to ../libgcc/config/m32r. + * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. + * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove. + ($(T)crtinit.o, $(T)crtfini.o): Remove. + (m32rx, m32r2): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S. + * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S. + * config/m68k/t-crtstuff: Remove. + * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove. + * config/m68k/t-m68kelf: Remove. + * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove. + * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S. + * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S. + * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove. + (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove. + * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S. + * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S. + * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS, + EXTRA_PARTS): Remove. + ($(T)crti$(objext), $(T)crtn$(objext)): Remove. + * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S. + * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S. + * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/mips/t-isa3264: Likewise. + * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove. + * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove. + (CRTSTUFF_T_CFLAGS): Remove. + * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): + Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove. + * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + ($(T)crti.o, $(T)crtn.o): Remove. + * config/mmix/crti.asm: Move to ../libgcc/config/crti.S. + * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S. + * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove. + * config/moxie/crti.asm, config/moxie/crtn.asm: Remove. + * config/pa/stublib.c: Move to libgcc/config/pa. + * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. + * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove. + * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove. + (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o) + (pthread_mutex_unlock-stub.o, pthread_once-stub.o) + ($(T)libgcc_stub.a): Remove. + * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove. + (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o) + (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o) + (pthread_mutex_unlock-stub.o, pthread_once-stub.o) + ($(T)libgcc_stub.a): Remove. + * config/rs6000/eabi-cn.asm: Move to + ../../../libgcc/config/rs6000/eabi-cn.S. + * config/rs6000/eabi-ci.asm: Move to + ../../../libgcc/config/rs6000/eabi-ci.S. + * config/rs6000/sol-ci.asm: Move to + ../../../libgcc/config/rs6000/sol-ci.S. + * config/rs6000/sol-cn.asm: Move to + ../../../libgcc/config/rs6000/sol-cn.S. + * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove. + (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. + * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): + Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove. + (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove. + ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext), + ($(T)ncrtn$(objext)): Remove. + (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. + * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. + * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove. + * config/score/crti.asm: Move to ../libgcc/config/score/crti.S. + * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S. + * config/score/t-score-elf: Remove. + * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S. + * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S. + * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S. + * config/sh/lib1funcs-4-300.asm: Move to + ../../../libgcc/config/sh/lib1funcs-4-300.S. + * config/sh/lib1funcs-Os-4-200.asm: Move to + ../libgcc/config/sh/lib1funcs-Os-4-200.S. + * config/sh/t-elf: Remove. + * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove. + * config/sh/t-linux64: Remove. + * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove. + * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove. + (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove. + ($(T)ic_invalidate_array_4-100.o) + ($(T)libic_invalidate_array_4-100.a) + ($(T)ic_invalidate_array_4-200.o) + ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o) + ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o) + ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o) + ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o) + ($(T)libgcc-4-300.a): Remove. + * config/sh/t-superh: Remove. + * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. + * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove. + * config/spu/cache.S: Move to ../libgcc/config/spu. + * config/spu/cachemgr.c: Move to ../libgcc/config/spu. + * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove. + ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o) + ($(T)cache64k.o, $(T)cache128k.o): Remove. + * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove. + * config/t-libc-ok: Remove. + * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. + * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove. + * config/t-netbsd: Remove. + * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove. + * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. + * config/vms/t-vms (VMS_EXTRA_PARTS): Remove. + ($(T)vcrt0.o, $(T)pcrt0.o): Remove. + * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms. + * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S. + * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S. + * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. + (EXTRA_MULTILIB_PARTS): Remove. + * config/xtensa/t-linux: Remove. + * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove. + +2011-11-02 Uros Bizjak + + * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use + CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2. + +2011-11-02 Rainer Orth + + PR translation/45116 + * Makefile.in (slibdir): Remove, don't export. + (SHLIB_NM_FLAGS): Remove. + (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL, + SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, + SHLIB_MAPFILES, SHLIB_NM_FLAGS. + (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK. + (gcc.o): Pass SHLIB instead of SHLIB_LINK. + (gccspec.o): Likewise. + (installdirs): Don't create $(DESTDIR)$(slibdir). + * configure.ac (slibdir): Remove. + * configure: Regenerate. + * libgcc-libsystem.ver: Move to ../libgcc/config. + * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc. + * config/libgcc-glibc.ver: Move to ../libgcc/config. + * config/t-libunwind (SHLIB_LC): Remove. + * config/t-linux (SHLIB_MAPFILES): Remove. + * config/t-slibgcc-dummy: Rename to config/t-slibgcc. + * config/t-slibgcc-elf-ver: Remove. + * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to + ../libgcc/config. + * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move + to ../libgcc/config/alpha. + * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, + SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC, + SHLIB_SYMVECX2, SHLIB_LINK): Remove. + * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm. + * config/arm/t-bpabi (SHLIB_MAPFILES): Remove. + * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, + SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove. + * config/arm/t-symbian (SHLIB_LC): Remove. + * config/bfin/libgcc-bfin.ver: Move to + ../libgcc/config/bfin/libgcc-glibc.ver. + * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove. + * config/c6x/libgcc-c6xeabi.ver: Move to + ../libgcc/config/c6x/libgcc-eabi.ver. + * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove. + * config/cris/libgcc.ver: Move to + ../libgcc/config/cris/libgcc-glibc.ver. + * config/cris/t-linux (SHLIB_MAPFILES): Remove. + * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv. + * config/frv/t-linux (SHLIB_MAPFILES): Remove. + * config/i386/darwin-libgcc.10.4.ver: Move to + ../libgcc/config/i386/libgcc-darwin.10.4.ver. + * config/i386/darwin-libgcc.10.5.ver: Move to + ../libgcc/config/i386/libgcc-darwin.10.5.ver. + * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386. + * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION, + SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL) + SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK, + SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove. + * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION, + SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove. + * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to + ../libgcc/config/i386. + * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to + ../libgcc/config/i386. + * config/i386/t-linux: Move to ../libgcc/config/i386. + * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386. + * config/i386/t-mingw-w32 (SHLIB_LC): Remove. + * config/i386/t-mingw-w64: Likewise. + * config/i386/t-mingw32: Remove. + * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move + to ../libgcc/config/ia64. + * config/ia64/t-glibc: Remove. + * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove. + * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove. + * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, + SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove. + * config/ia64/vms_symvec_libgcc_s.opt: Remove. + * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r. + * config/m32r/t-linux (SHLIB_MAPFILES): Remove. + * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k. + * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove. + * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux. + * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: + Move to ../libgcc/config/pa. + * config/rs6000/darwin-libgcc.10.4.ver: Move to + ../libgcc/config/rs6000/libgcc-darwin.10.4.ver. + * config/rs6000/darwin-libgcc.10.5.ver: Move to + ../libgcc/config/rs6000/libgcc-darwin.10.5.ver. + * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, + SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove. + * config/rs6000/t-aix52: Likewise. + * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to + ../libgcc/config/sh. + * config/sparc/libgcc-sparc-glibc.ver: Move to + ../libgcc/config/sparc/libgcc-glibc.ver. + * config/sparc/t-linux: Move to ../libgcc/config/sparc. + * config/xtensa/t-linux (SHLIB_MAPFILES): Remove. + * config/xtensa/libgcc-xtensa.ver: Move to + ../libgcc/config/xtensa/libgcc-glibc.ver. + * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with + t-slibgcc in tmake_file. + Remove t-slibgcc-nolc-override for *-*-freebsd[34], + *-*-freebsd[34].* with pthreads. + (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, + *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace + t-slibgcc-elf-ver with t-slibgcc in tmake_file. + (*-*-netbsd*): Likewise. + (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. + (*-*-*vms*): Add t-slibgcc to tmake_file. + (alpha*-*-linux*): Remove alpha/t-linux from tmake_file. + (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in + tmake_file. + (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for + arm*-*-linux-*eabi. + (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in + tmake_file. + (crisv32-*-linux*, cris-*-linux*): Likewise. + (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, + pa/t-slibgcc-dwarf-ver from tmake_file. + (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in + tmake_file. + Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. + (hppa*64*-*-hpux11*): Likewise. + (hppa[12]*-*-hpux11*): Likewise. + (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in + tmake_file. + (x86_64-*-darwin*): Likewise. + (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file. + Add t-slibgcc to tmake_file. + (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. + Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*, + i[34567]86-w64-*. + Remove i386/t-mingw-pthread from tmake_file. + (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file. + (ia64*-*-hpux*): Add t-slibgcc to tmake_file. + (ia64-hp-*vms*): Likewise. + (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in + tmake_file. + (m32rle-*-linux*): Likewise. + (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file. + (microblaze*-linux*): Remove t-slibgcc-elf-ver, + t-slibgcc-nolc-override from tmake_file. + (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in + tmake_file. + (powerpc-*-darwin*): Likewise. + (powerpc64-*-darwin*): Likewise. + (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file. + (powerpc-*-linux*, powerpc64-*-linux*): Likewise. + (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add + t-slibgcc to tmake_file. + (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. + (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise. + (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise. + (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise. + (sparc-*-linux*): Remove sparc/t-linux from tmake_file. + (sparc64-*-linux*): Likewise. + (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in + tmake_file. + (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu, + x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux + from tmake_file. + +2011-11-02 Richard Guenther + + PR tree-optimization/50902 + * tree-vect-stmts.c (vectorizable_load): Properly convert + an invariant initializer element. + +2010-11-02 Richard Guenther + + PR tree-optimization/50890 + * gimple.h (gimple_fold_call): Remove. + * gimple-fold.c (fold_stmt_1): Move all call related code to ... + (gimple_fold_call): ... here. Make static. Update the + cannot-inline flag on direct calls. + * ipa-inline.c (early_inliner): Copy the cannot-inline flag + from the statements to the edges. + +2011-11-01 Ian Lance Taylor + + * godump.c (struct macro_hash_value): Define. + (macro_hash_hashval): New static function. + (macro_hash_eq, macro_hash_del): New static functions. + (go_define): Use macro_hash_value to store values in macro_hash. + Replace an old value on a redefinition. Don't print anything to + go_dump_file. + (go_undef): Delete the entry from the hash table. + (go_output_typedef): For an enum, use macro_hash_value, and don't + print anything to go_dump_file. + (go_print_macro): New static function. + (go_finish): Traverse macro_hash with go_print_macro. + (dump_go_spec_init): Update macro_hash creation for macro_hash_value. + +2011-11-02 Alan Modra + + * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED. + +2011-11-01 Paolo Carlini + + PR c++/44277 + * doc/invoke.texi: Document -Wzero-as-null-pointer-constant. + +2011-11-01 Andrew Stubbs + + * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning. + +2011-11-01 Uros Bizjak + + * config/i386/i386.md (splitters for int-float conversion): Use + SUBREG_REG on SUBREGs in splitter constraints. + +2011-11-01 Jakub Jelinek + + * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New + prototype. + * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New + function. + * config/i386/sse.md (fixuns_trunc2): Use it. + (ssepackfltmode): New mode attr. + (vec_pack_ufix_trunc_): New expander. + +2011-11-01 Uros Bizjak + + PR target/50940 + * config/i386/i386.md (floatsi2_vector_sse_with_temp splitter): + Compare mode to V4SFmode, not V4SImode. + +2011-11-01 Peter Bergner + + * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant. + * config/rs6000/476.h: New file. + * config/rs6000/476.opt: Likewise. + * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define. + (SET_TARGET_LINK_STACK): Likewise. + (TARGET_ASM_CODE_END): Define. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable + TARGET_LINK_STACK for -mtune=476 and -mtune=476fp. + (rs6000_legitimize_tls_address): Emit the link stack preserving GOT + code if TARGET_LINK_STACK. + (rs6000_emit_load_toc_table): Likewise. + (output_function_profiler): Likewise + (macho_branch_islands): Likewise + (machopic_output_stub): Likewise + (get_ppc476_thunk_name): New function. + (rs6000_code_end): Likewise. + * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): + Convert to a define_expand. + (load_toc_v4_PIC_1_normal): New define_insn. + (load_toc_v4_PIC_1_476): Likewise. + (load_toc_v4_PIC_1b_normal): Likewise. + (load_toc_v4_PIC_1b_476): Likewise. + +2011-11-01 Georg-Johann Lay + + PR target/50910 + * config/avr/avr.opt (-mbranch-cost=): New option. + * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost. + * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs. + * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns. + (*addhi3_zero_extend1): Remove % in constraint of operand 1. + (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns. + +2011-11-01 Tom de Vries + + PR tree-optimization/50908 + * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed + before update_vuses, test for 1 predecessor rather than two. + (delete_block_update_dominator_info): New function, part of it factored + out of ... + (replace_block_by): Use delete_block_update_dominator_info. Call + update_vuses after deleting bb1 and updating dominator info, instead of + before. + +2011-11-01 David S. Miller + + * config/sparc/sparc.c (vector_init_faligndata): New function. + (sparc_expand_vector_init): Use it for V4HImode on VIS1. + + * config/sparc/sparc.c (sparc_expand_vcond): New function. + * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it. + * config/sparc/sparc.md (vcond): New VIS3 expander. + (vconduv8qiv8qi): Likewise. + +2011-11-01 Alexandre Oliva + + PR debug/50869 + * cselib.c (cfa_base_preserved_regno): Initialize. + (cselib_expand_value_rtx_1): Don't expand it. + * var-tracking.c (vt_expand_var_loc_chain): Initialize depth. + Check it's only zero if result is NULL. + +2011-11-01 Jakub Jelinek + + * config/i386/sse.md (fixuns_trunc2): New + expander. + + * config/i386/sse.md (sseintvecmode): Remove duplicate modes. + (sseintvecmodelower): New mode iterator. + (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into... + (float2): ... this using VF1 iterator. + (floatunsv4siv4sf2): Macroize into... + (floatuns2): ... this using VF1 iterator. + +2011-10-31 David S. Miller + + * config/sparc/sparc.md (cmask patterns): Allow zero operand. + + * dwarf2out.c (cached_next_real_insn): New. + (dwarf2out_end_epilogue): Set it to NULL_RTX. + (dwarf2out_var_location): Remove cached_next_real_insn local static. + +2011-10-31 Richard Henderson + + * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256. + (floatv4siv4sf2): Rename from sse2_cvtdq2ps. + (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps. + (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256. + (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq. + (floatv4siv4df2): Rename from avx_cvtdq2pd256. + (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256. + (vec_unpacku_float_hi_v8si): Update for insn pattern name changes. + * config/i386/i386.md (splitters for int-float conversion): Likewise. + * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise. + (bdesc_args): Likewise. + (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove. + (ix86_vectorize_builtin_conversion): Remove. + (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. + +2011-10-31 Martin Jambor + + * ipa-prop.c (mark_modified): Moved up in the file. + (is_parm_modified_before_call): Renamed to + is_parm_modified_before_stmt, moved up in the file. + (load_from_unmodified_param): New function. + (compute_complex_assign_jump_func): Also attempt to create pass + through jump functions for values loaded from (addressable) + parameters. + +2011-10-31 Jakub Jelinek + + * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def + in a loop and has different type from op0, cast it to op0's type + before the loop first. For slp give up. Don't crash if op1_vectype + is NULL. + +2011-10-31 Paul Brook + + * cgraphunit.c: Don't mark clones as static constructors. + +2011-10-31 David Edelsohn + + * gcc-ar: Do not include stdio.h. + +2011-10-31 Diego Novillo + + * tree-streamer-out.c (pack_ts_base_value_fields): Emit + TYPE_ADDR_SPACE. + * tree-streamer-in.c (unpack_ts_base_value_fields): Read + TYPE_ADDR_SPACE. + +2011-10-30 David S. Miller + + * config/sparc/sparc.c (vector_init_bshuffle): New function. + (vector_init_fpmerge): New function. + (sparc_expand_vector_init): Use them to improve non-const cases. + + * dwarf2out.c (dwarf2out_var_location): When processing several + consecutive location notes, cache the result of next_real_insn(). + +2011-10-30 Uros Bizjak + + * config/i386/i386.md (avx2_vec_dup): Macroize insn from + avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator. + (vec_dupv4sf): Remove expander. + (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx. + (vec_dupv2df): Remove expander. + (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3. + (*vec_concatv2df): Merge *vec_concatv2df_sse3. + (*vec_dupv4si): Merge *vec_dupv4si_avx. + (*vec_dupv2di): Merge *vec_dupv2di_sse3. + +2011-10-30 Dmitry Plotnikov + + * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions. + * optabs.c (supportable_convert_operation): New function. + * optabs.h (supportable_convert_operation): New prototype. + * tree-vect-stmts.c (vectorizable_conversion): Change condition and + behavior for NONE modifier case. + * tree.h (VECTOR_INTEGER_TYPE_P): New macro. + +2011-10-30 Jakub Jelinek + + * tree-vectorizer.h (NUM_PATTERNS): Bump to 9. + * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New + function. + (vect_vect_recog_func_ptrs): Add it. + +2011-10-30 David S. Miller + + * reorg.c (label_before_next_insn): New function. + (relax_delay_slots): Use it instead of prev_label. + * rtl.h (prev_label): Delete declaration. + * emit-rtl.c (prev_label): Remove. + +2011-10-30 Revital Eres + + * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog + as BB_DISABLE_SCHEDULE. + (mark_loop_unsched): New function. + (sms_schedule): Call it. + +2011-10-29 John David Anglin + + PR target/50617 + * config/pa/protos.h (attr_length_save_restore_dltp): Delete. + (cmpib_comparison_operator): Likewise. + (following_cal, output_and, output_ior, output_move_double, + output_fp_move_double, output_block_move, output_block_clear, + output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra, + output_movb, output_parallel_movb, output_parallel_addb, output_call, + output_indirect_call, output_millicode_call, output_mul_insn, + output_div_insn, output_mod_insn, singlemove_string, + output_arg_descriptor, output_global_address, print_operand, + legitimize_pic_address, hppa_encode_label, symbolic_expression_p, + fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence, + emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay, + hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call, + attr_length_indirect_call, return_addr_rtx, function_arg_padding, + insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p, + output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move, + hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p, + compute_zdepdi_operands, output_64bit_and, output_64bit_ior, + reloc_needed, magic_milli, shadd_constant_p): Consistently prefix + exported functions and variables with "pa_". + * config/pa/predicates.md: Likewise. + * config/pa/pa64-hpux.h: likewise. + * config/pa/som.h: Likewise. + * config/pa/elf.h: Likewise. + * config/pa/pa64-linux.h: Likewise. + * config/pa/pa.md: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa-linux.h: Likewise. + * config/pa/pa.h: Likewise. + * config/pa/constraints.md: Likewise. + +2011-10-29 Uros Bizjak + + * config/i386/i386.md (xop_sha3): Rename from xop_ashl3. + Update all uses. + (xop_shl3): Rename from xop_lshl3. Update all uses. + * config/i386/i386.c: Update all uses. + +2011-10-29 Uros Bizjak + + * config/i386/i386.md (lshlv16qi3): Remove expander. + (lshrv16qi3): New expander. + (v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3 + using any_shiftrt code iterator. Cleanup. + (ashlv16qi3): Cleanup. + (ashrv2di3): Ditto. + +2011-10-29 John David Anglin + + PR target/50691 + * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol + references. + (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC + and TLS_MODEL_LOCAL_DYNAMIC symbol references. + +2011-10-29 Georg-Johann Lay + + PR target/50887 + * config/avr/avr.opt (-maccumulate-args): New option. + * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to + avr_starting_frame_offset. + (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args. + * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove. + (UNSPECV_WRITE_SP_IRQ_OFF): Remove. + (UNSPECV_WRITE_SP): New constant. + (*addhi3_sp_R): Rewrite to... + (*addhi3_sp): ...this new insn. + (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to... + (movhi_sp_r): ...this new insn. + * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New. + (avr_starting_frame_offset): New. + * config/avr/avr.c (avr_accumulate_outgoing_args): New function. + (avr_starting_frame_offset): New function. + (avr_outgoing_args_size): New static function. + (avr_initial_elimination_offset): Use it. + (avr_simple_epilogue): Use it. + (avr_asm_function_end_prologue): Use it. + (expand_epilogue): Use it. + (expand_prologue): Use it. Break out code to... + (avr_prologue_setup_frame): ...this new static function. + (avr_can_eliminate): Allow eliminating to frame pointer if there + is one. + (avr_frame_pointer_required_p): Use frame pointer if target has a + nonlocal label. + * config/avr/constraints.md (R): Remove. + (Csp): New constraint. + * config/avr/predicates.md (avr_sp_immediate_operand): Use it. + +2011-10-29 Andi Kleen + + * gcc-ar.c (target_machine): Add. + +2011-10-29 Anatoly Sokolov + + * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p, + cris_constant_index_p, cris_base_p, cris_index_p, + cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p, + cris_legitimate_address_p): New functions. + (TARGET_LEGITIMATE_ADDRESS_P): Define. + (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type + from rtx to const_rtx. + (cris_print_operand_address, cris_address_cost, + cris_side_effect_mode_ok): Use + cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, + cris_biap_index_p and cris_bdap_index_p. + * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P, + BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, + REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. + (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use + cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, + cris_biap_index_p and cris_bdap_index_p. + * config/cris/cris.md (moversideqi movemsideqi peephole2): Use + cris_base_p. + * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p, + cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New + prototype. + (cris_pic_symbol_type, cris_valid_pic_const): Update prototype. + +2011-10-21 Andi Kleen + + * ggc-page (PAGE_ALIGN): Add. + (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read): + Replace ROUND_UP with PAGE_ALIGN. + +2011-10-20 Andi Kleen + + * ggc-page (alloc_anon): Add check argument. + (alloc_page): Add fallback to 1 page allocation. + Adjust alloc_anon calls to new argument. + +2011-10-18 Andi Kleen + + * ggc-page (release_pages): First free large continuous + chunks in the madvise path. + +2011-10-18 Andi Kleen + + * ggc-page.c (alloc_pages): Always round up entry_size. + +2011-10-19 Andi Kleen + + * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib. + (native): Add gcc-ar, gcc-nm, gcc-ranlib. + (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o, + gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add. + (install): Depend on install-gcc-ar. + (install-gcc-ar): Add. + (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib. + * gcc-ar.c: Add new file. + +2011-10-28 Pat Haugen + + * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble. + * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble + type for V2DF. + (VStype_div): Use vector types for V2DF/V4SF. + (VStype_sqrt): Use *sqrt types. + (VS_spdp_type): Change type to vecdouble. + (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws, + vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds, + vsx_xvcvspuxds): Likewise. + (*vsx_fms4): Set type via . + (*vsx_eq__p, *vsx_gt__p, *vsx_ge__p): Set type via + . + * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe. + (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt, + power7-dsqrt): Correct insn latency. + (power7-vecsimple): Add veccmp type and correct dispatch/VSU values. + (power7-veccmp): Delete. + (power7-vecfloat): Correct latency/dispatch/VSU values. + (define_bypass "power7-vecfloat"): Correct latency and types. + (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values. + (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New. + +2011-10-28 Uros Bizjak + + * config/i386/i386.md (shift_insn): Rename code attribute from + shiftrt_insn. Also handle ashift RTX. + (shift): Rename code attribute from shiftrt. Also handle ashift RTX. + (vshift): New code attribute. + (*): Rename from *. Update asm templates. + (any_lshift): Move and rename code iterator from ... + * config/i386/sse.md (lshift): ... here. + (lshift_insn): Remove code attribute. + (lshift): Remove code attribute. + (vlshr3): Use lshiftrt RTX. + (vashr3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX. + (vashl3, ashlv16qi3): Use ashift RTX. + (avx2_v): Rename from avx2_v. Use + any_lshift code iterator. Update asm template. + (3): Macroize insn from lshr3 and ashl3 + usign any_lshift code iterator. + * config/i386/mmx.md (mmx_3): Macroize insn from + mmx_lshr3 and mmx_ashl3 usign any_lshift code iterator. + * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update. + +2011-10-28 Georg-Johann Lay + + PR target/49313 + * config/avr/avr.md (parityhi2): Expand allowing pseudos. + (*parityhi2): New pre-reload insn-and-split to map 16-bit parity + to the libgcc insn. + (*parityqihi2): Same for 8-bit parity. + +2011-10-28 Julian Brown + + PR rtl-optimization/47918 + * reload1.c (set_initial_label_offsets): Use initial offsets + for labels on the nonlocal_goto_handler_labels chain. + +2011-10-28 Iain Sandoe + + * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): + Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA. + (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm. + (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from + config/t-darwin. + * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable. + (GP_SAVE_INLINE): Likewise. + (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, + RESTORE_FP_SUFFIX): Set to empty strings. + * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin. + (debug_stack_info): Print savres_strategy. + (rs6000_savres_routine_name): Implement for Darwin. + (rs6000_make_savres_rtx): Adjust used register for Darwin. + (rs6000_emit_prologue): Implement out-of-line saves for Darwin. + (rs6000_output_function_prologue): Don't emit .extern for Mach-O. + (rs6000_emit_epilogue): Implement out-of-line saves for Darwin. + * config/rs6000/darwin-gpsave.asm: New file. + +2011-10-28 Jakub Jelinek + + * config/i386/sse.md (VI4SD_AVX2): Removed. + (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators. + (vashl3): Use VI12_128 iterator instead of VI124_128. + Add another expander using VI48_128 iterator for + TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator + for TARGET_AVX2. + (vlshr3): Likewise. Change register_operand predicate to + nonimmediate_operand on last operand in the VI12_128 expander. + (vashr3): Use VI128_128 iterator instead of VI124_128. + (vashrv4si3, vashrv8si3): New expanders. + (avx2_ashrvv8si, avx2_ashrvv4si, avx2_vv8si, + avx2_vv2di): Removed. + (avx2_ashrv): New insn with VI4_AVX2 iterator. + (avx2_v): Macroize using VI48_AVX2 + iterator. Simplify pattern. + +2010-10-28 Richard Guenther + + PR driver/50876 + * lto-wrapper.c (get_options_from_collect_gcc_options): + Properly count arguments. + (run_gcc): Use an obstack to collect argv, properly separate + switches and their arguments. + +2011-10-28 Jakub Jelinek + + * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different + vector mode from vectype's mode. + +2011-10-28 Chung-Lin Tang + + PR rtl-optimization/49720 + * simplify-rtx.c (simplify_relational_operation_1): Detect + infinite recursion condition in "(eq/ne (plus x cst1) cst2) + simplifies to (eq/ne x (cst2 - cst1))" case. + +2011-10-27 David S. Miller + + * config/sparc/sparc.md (snedi_special): Only match when not VIS3. + (*snedi_zero): Likewise. + (*snedi_zero_trunc): Likewise. + (snedi_special_vis3): New expander. + (*snedi_zero_vis3): New insn. + (*snedi_zero_trunc_vis3): Likewise. + (*sltu_insn_vis3): Likewise. + (*sltu_insn_vis3_trunc): Likewise. + (addxc): Likewise. + (*addxc_trunc_sp64_vis3): Likewise. + * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the + gen_snedi_special_vis3 expander, and try GTU/LTU addx based + sequences on DImode values. + + * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f' + constraint. + + * regcprop.c (copyprop_hardreg_forward_1): Reject the + transformation when we narrow the mode on big endian. + +2011-10-27 Jakub Jelinek + + * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2, + vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders. + (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns. + + * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x' + overrides for -masm=intel memory. + * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd, + sse4_1_v8qiv8hi2, avx2_v8qiv8si2, + sse4_1_v4hiv4si2, avx2_v4hiv4di2, + sse4_1_v2siv2di2): Use %q1 instead of %1 for -masm=intel. + (sse4_1_v4qiv4si2, avx2_v4qiv4di2, + sse4_1_v2hiv2di2): Use %k1 instead of %1 for -masm=intel. + (sse4_1_v2qiv2di2): Use %w1 instead of %1 for -masm=intel. + +2011-10-27 Martin Jambor + + * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info + to parm_ainfo. + (ipa_compute_jump_functions_for_edge): Likewise. + (ipa_compute_jump_functions): Likewise. + (ipa_analyze_indirect_call_uses): Likewise. + (ipa_analyze_call_uses): Likewise. + (ipa_analyze_params_uses): Likewise. + (ipa_analyze_node): Likewise. + +2011-10-27 Uros Bizjak + + PR target/50875 + * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn + constraints. Change alternative 1 to "x,m,1". + +2011-10-27 Jakub Jelinek + + * Makefile.in (build/gencheck.o): Depend on tree.def and + c-family/c-common.def. + + * tree-ssa-strlen.c: Include expr.h. + (get_stridx): Don't use c_strlen, instead use string_constant + and compute string length from it. + * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H). + +2011-10-27 Eric Botcazou + + PR rtl-optimization/46603 + PR bootstrap/50879 + * reload.c (push_reload): In the out case, restore previous behavior + for subregs that don't have word mode. + +2011-10-27 Ian Lance Taylor + + * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if + CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not. + (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is + defined. + +2011-10-27 Richard Henderson + + * optabs.c (expand_vec_perm): Use the correct mode for scaling the + selector. Save the qimode constant selector for later use by the + qimode vec_perm pattern. + +2011-10-27 Bernd Schmidt + + * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg + to unit_req_factor to the right enum type. + (get_unit_operand_masks, reshuffle_units, try_rename_operands, + hwloop_optimize): Remove unused variables. + +2010-10-27 Richard Guenther + + PR middle-end/50731 + * tree-vect-generic.c (do_binop): Handle scalar operands. + +2011-08-27 Uros Bizjak + + PR target/37191 + * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers + from different units in a single alternative. + +2011-10-26 David S. Miller + + * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences + if we're comparing DImode and comparison is other than EQ or NE. + + * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until + LEU/LTU/GEU/GTU is attempted. + * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn + and split. + (*neg_seqsi_sign_extend): Likewise. + (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64, + *neg_sgeu_extend_sp64): New insns. + + * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare. + * config/sparc/sparc.md (movcc, movcc): Call it. + (*mov_cc_v9): Normalize to expect operand 0 always in operand 4. + (*mov_cc_reg_sp64): Likewise. + (*movsf_cc_v9): Likewise. + (*movsf_cc_reg_sp64): Likewise. + (*movdf_cc_v9): Likewise. + (*movdf_cc_reg_sp64): Likewise. + (*movtf_cc_hq_v9): Likewise. + (*movtf_cc_reg_hq_sp64): Likewise. + (*movtf_cc_v9): Likewise. + (*movtf_cc_reg_sp64): Likewise. + * config/sparc/sparc.c (sparc_expand_conditional_move): New function. + (sparc_print_operand): Delete 'c' and 'd' handling, no longer used. + +2011-10-26 Eric Botcazou + + * reload.c (reload_inner_reg_of_subreg): Change type of return value + and type of OUTPUT parameter to bool and adjust. Document MODE and + OUTPUT parameters. Use HARD_REGISTER_P. Reorder final condition + and improve associated comment. + (push_reload): Clarify and update comments about reloading of subregs. + Adjust calls to reload_inner_reg_of_subreg. Compute the class upfront + for the reloading of subregs in the out case as well. + +2011-10-26 Alexandre Oliva + + PR debug/50826 + * var-tracking.c (rtx_debug_expr_p): New. + (use_type): Don't use debug exprs to track non-VTA variables. + +2011-10-26 Jeff Law + + * doc/invoke.texi (sink-frequency-threshold): Document. + * tree-ssa-sink.c: Include params.h. + (select_best_block): New function. + (statement_sink_location): Use it. + * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM. + +2011-10-26 Iain Sandoe + + PR target/48108 + * config/darwin.c (top level): Amend comments concerning LTO output. + (lto_section_num): New variable. (darwin_lto_section_e): New GTY. + (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New. + (LTO_NAMES_SECTION): Rename. + (darwin_asm_named_section): Record LTO section counts and switches + in a vec of darwin_lto_section_e. + (darwin_file_start): Remove unused code. + (darwin_file_end): Put an LTO section termination label. Handle + output of the wrapped LTO sections, index and names table. + +2011-10-26 Alan Modra + + * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded + declaration. + (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp. + (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx. Use + simple_return in pattern, emit instruction, and set jump_label. + (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx. Use + simple_return rather than return. + (emit_cfa_restores): New function. + (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap. + Add missing cfa_restores for SAVE_WORLD. Add missing LR cfa_restore + when using out-of-line gpr restore. Add missing LR and FP regs + cfa_restores for out-of-line fpr restore. Consolidate code setting + up cfa_restores. Formatting. Use LR_REGNO define. + (rs6000_output_mi_thunk): Use simple_return rather than return. + * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise. + (return_internal*): Likewise. + (any_return, return_pred, return_str): New iterators. + (return, conditional return insns): Provide both return and + simple_return variants. + * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define. + (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13. + Move r11 and r0 later to suit shrink-wrapping. + +2011-10-26 Richard Guenther + + * lto-wrapper.c (run_gcc): Properly init/free obstack. + +2011-10-26 Jakub Jelinek + + * config/i386/i386.md (UNSPEC_VSIBADDR): New. + * config/i386/predicates.md (vsib_address_operand, + vsib_mem_operator): New predicates. + * config/i386/i386.c (ix86_print_operand_address): Handle + UNSPEC_VSIBADDR addresses. + * config/i386/sse.md (avx2_gathersi, avx2_gatherdi, + avx2_gatherdi256): Adjust expanders to use MEM with + UNSPEC_VSIBADDR address. + (*avx2_gathersi, *avx2_gatherdi, *avx2_gatherdi256): + Adjust insns to use MEM with UNSPEC_VSIBADDR address. + +2011-10-26 Tom de Vries + + PR tree-optimization/50763 + * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or + phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2. + +2011-10-26 Richard Guenther + + PR lto/41844 + * Makefile.in (lto-wrapper): Depend on and link against opts-common.o. + (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H). + * lto-wrapper.c (get_options_from_collect_gcc_options): New function. + (run_gcc): Use it. Filter out language specific options. + +2011-10-26 Andreas Tobler + + * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the + 32-bit target does. + +2011-10-25 Paolo Carlini + + PR driver/46617 + * gcc.c (main): Fix fatal_error string for translation. + +2011-10-25 Ian Lance Taylor + + * tree-eh.c (do_return_redirection): Remove return_value_p + parameter. Change all callers. + (lower_try_finally_nofallthru): Remove local return_val. + (lower_try_finally_onedest): Likewise. + (lower_try_finally_copy): Likewise. + (lower_try_finally_switch): Likewise. + +2011-10-25 H.J. Lu + + * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and + remove "&& !TARGET_64BIT" + (*mmx_maskmovq_rex): Removed. + +2011-10-25 Eric Botcazou + + PR rtl-optimization/46603 + * reload.c (push_reload): In the out case, reload the subreg as well + as the reg if it has word mode. + +2011-10-25 Eric Botcazou + + * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily + suppress debug info for the parent type. + +2011-10-25 Eric Botcazou + + * config/ia64/ia64.c (ia64_profile_hook): Fix thinko. + +2011-10-25 Richard Henderson + + * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove. + (vec_extract_even, vec_extract_odd): Remove. + + * config/rs6000/altivec.md (vec_extract_evenv8hi, + vec_extract_evenv16qi, vec_extract_oddv4si, + vec_extract_oddv4sf): Remove. + + * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf, + vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si, + vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi, + vec_interleave_highv4sf, vec_interleave_lowv4sf, + vec_interleave_highv4si, vec_interleave_lowv4si, + vec_interleave_highv8hi, vec_interleave_lowv8hi, + vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove. + + * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop. + [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise. + [VEC_INTERLEAVE_LOW_EXPR]: Likewise. + * optabs.c (expand_binop): Implement vec_interleave_high_optab, + vec_interleave_low_optab, vec_extract_even_optab, + vec_extract_odd_optab with expand_vec_perm. + (can_vec_perm_for_code_p): New. + * optabs.h: Update. + * tree-vect-data-refs.c (vect_strided_store_supported): Allow for + fallback via can_vec_perm_for_code_p. + (vect_strided_load_supported): Likewise. + * tree-vect-generic.c (expand_vector_operations_1): Never lower + VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR, + VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR. + + * target.def (vec_perm_const_ok): Change parameters to mode and + array of indicies. + * doc/tm.texi: Rebuild. + * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change + parameters to mode and array of indicies. + * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here. + * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p. + Change parameters to mode and array of indicies. + (expand_vec_perm_1): Rename from expand_vec_perm_expr_1. + (expand_vec_perm): Rename from expand_vec_perm_expr. Change + parameters to mode and rtx inputs. Try lowering to QImode + vec_perm_const before trying fully variable permutation. + * optabs.h: Update decls. + * tree-vect-generic.c (lower_vec_perm): Extract array of indices from + VECTOR_CST to pass to can_vec_perm_p. + * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type + from int pointer to unsigned char pointer. + (vect_transform_slp_perm_load): Update for change to can_vec_perm_p. + * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. + + * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name. + (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR, + VEC_INTERLEAVE_LOW_EXPR): Likewise. + +2011-10-25 Mike Stump + + * reload.c (regno_clobbered_p): Fix typo. + +2011-10-25 Dodji Seketeli + + * input.c (expand_location): Rewrite using linemap_resolve_location + and linemap_expand_location. Add a comment. + +2011-10-25 Jakub Jelinek + + PR tree-optimization/50596 + * tree-vect-stmts.c (vect_mark_relevant): Only use + FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME. + (vectorizable_store): If is_pattern_stmt_p look through + VIEW_CONVERT_EXPR on lhs. + * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern): + Use unsigned type instead of signed. + (vect_recog_bool_pattern): Optimize also stores into bool memory in + addition to casts from bool to integral types. + (vect_mark_pattern_stmts): If pattern_stmt already has vinfo + created, don't create it again. + +2011-10-25 Kai Tietz + + * config/i386/i386.c (ix86_frame_pointer_required): Require + frame-pointer, if setjmp is used for 32-bit ms-abi. + +2011-10-24 Michael Meissner + + * builtins.c (set_builtin_user_assembler_name): Remove extra + newline added in October 11th, 2011 change. + +2011-10-24 David S. Miller + + * config/sparc/little-endian.opt: Delete. + * config.gcc: Remove references to config/sparc/little-endian.opt + * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc. + * config/sparc/linux64.h: Delete references to -mlittle-endian. + * config/sparc/netbsd-elf.h: Likewise. + * config/sparc/openbsd64.h: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sp64-elf.h: Likewise and delete overrides for + BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN. + * config/sparc/sparc.c (dump_target_flag_bits): Remove reference + to MASK_LITTLE_ENDIAN. + * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete. + + * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns. + Only use D, Y, and Z constraints in vector insns. + + * config/sparc/sparc.md (cpu_feature, enabled): New attributes. + (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern + called *movsi_insn. + (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate + into *movdi_insn_sp32. + (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into + one pattern called *movdi_insn_sp64. + (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu): + Consolidate into one pattern called *movsf_insn. + (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3, + *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate + into *movdf_insn_sp32. + (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3, + *movdf_insn_sp64_no_fpu): Consolidate into one pattern called + *movdf_insn_sp64. + (*zero_extendsidi2_insn_sp64_novis3, + *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern + called *zero_extendsidi2_insn_sp64. + (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3): + Consolidate into one pattern named *sign_extendsidi2_insn. + (*mov_insn_novis3, *mov_insn_vis3): + Consolidate into one pattern named *mov_insn. + (*mov_insn_sp64_novis3, + *mov_insn_sp64_novis3): Consolidate into one pattern + named *mov_insn_sp64. + (*mov_insn_sp32_novis3, + *mov_insn_sp32_vis3): Consolidate into one pattern + named *mov_insn_sp32. + +2011-10-24 Andreas Krebbel + + * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY. + (zero_length_string): Change assertion to accept strinfo without + length but with stmt instead. + Set the endptr pointer also if starting a new chain. + (adjust_related_strinfos): Ignore strinfos marked for delayed + length computation. + (handle_builtin_strcpy): Mark earlier strinfo elements also for + delayed length computation. + +2011-10-24 Georg-Johann Lay + + PR target/50820 + Port from 4.6 branch r180379 + * doc/invoke.texi (AVR Options): New subsubsection to explain EIND + handling and indirect jump/calls on devices > 128k. + +2011-10-24 Anatoly Sokolov + Georg-Johann Lay + + PR target/49824 + * doc/extend.texi (Declaring Attributes of Functions): + Document OS_main and OS_task attributes. + (Specifying Attributes of Variables): Move up + subsection "AVR Variable Attributes" as of alphabetical order. + +2011-10-24 Richard Guenther + + * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants + to vector element type. + (vectorizable_assignment): Bail out for non-mode-precision operations. + (vectorizable_shift): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_type_demotion): Likewise. + (vectorizable_type_promotion): Likewise. + (vectorizable_store): Handle non-mode-precision stores. + (vectorizable_load): Handle non-mode-precision loads. + (get_vectype_for_scalar_type_and_size): Return a vector type + for non-mode-precision integers. + * tree-vect-loop.c (vectorizable_reduction): Bail out for + non-mode-precision reductions. + +2011-10-24 Julian Brown + + * config/m68k/m68k.c (notice_update_cc): Tighten condition for + setting CC_REVERSED for FP comparisons. + +2011-10-24 Richard Guenther + + PR tree-optimization/50838 + * tree-data-ref.c (dr_analyze_indices): Properly canonicalize + a MEM_REF base if we change it. + +2011-10-24 Bernd Schmidt + + PR bootstrap/50836 + * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h". + + PR rtl-optimization/50833 + * function.c (thread_prologue_and_epilogue_insns): Expect the + return insn optimization only if optimize. + +2011-10-24 Georg-Johann Lay + + * config/avr/avr.c: Break long lines. + Define target hooks on the fly if applicable. + (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition + overridden later. + (targetm): Move definition to end of file. + (avr_can_eliminate): Make static on the fly. + (avr_frame_pointer_required_p): Ditto. + (avr_hard_regno_scratch_ok): Ditto. + (avr_builtin_setjmp_frame_value): Make static on the fly. + Indent according to coding rules. + (avr_case_values_threshold): Ditto. + (avr_attribute_table): Move down. + +2011-10-24 Ira Rosen + + PR tree-optimization/50730 + * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block + analysis if encountered unsupported data-ref. + +2011-10-23 David S. Miller + + * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus + cpu adjustment. + * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit, + append -mcpu=v9 when -mv8plus is given. + + * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move + between float and non-float regs when VIS3. + * config/sparc/sparc.c (eligible_for_restore_insn): We can't + use a restore when the source is a float register. + (sparc_split_regreg_legitimate): When VIS3 allow moves between + float and integer regs. + (sparc_register_move_cost): Adjust to account for VIS3 moves. + (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an + integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS. + (sparc_secondary_reload): On 32-bit with VIS3 when moving between + float and integer regs we sometimes need a FP_REGS class + intermediate move to satisfy the reload. When this happens + specify an extra cost of 2. + (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard. + (*movdi_insn_sp32_v9): Likewise. + (*movdi_insn_sp64): Likewise. + (*movsf_insn): Likewise. + (*movdf_insn_sp32_v9): Likewise. + (*movdf_insn_sp64): Likewise. + (*zero_extendsidi2_insn_sp64): Likewise. + (*sign_extendsidi2_insn): Likewise. + (*movsi_insn_vis3): New insn. + (*movdi_insn_sp32_v9_vis3): New insn. + (*movdi_insn_sp64_vis3): New insn. + (*movsf_insn_vis3): New insn. + (*movdf_insn_sp32_v9_vis3): New insn. + (*movdf_insn_sp64_vis3): New insn. + (*zero_extendsidi2_insn_sp64_vis3): New insn. + (*sign_extendsidi2_insn_vis3): New insn. + (TFmode reg/reg split): Make sure both REG operands are float. + (*mov_insn): Add "_novis3" suffix and !VIS3 guard. Remove + easy constant to integer reg alternatives. + (*mov_insn_sp64): Likewise. + (*mov_insn_sp32_novis3): Likewise. + (*mov_insn_vis3): New insn. + (*mov_insn_sp64_vis3): New insn. + (*mov_insn_sp32_vis3): New insn. + (VM64 reg<-->reg split): New splitter for 32-bit. + + * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function. + * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate): + Declare it. + * config/sparc/sparc.md (DImode reg/reg split): Use it. + (DFmode reg/reg split): Likewise. + + * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for + generating fzero and fone instructions. + (DImode const_int --> reg splitter): Only trigger for integer regs. + + * config/sparc/predicates.md (input_operand): Disallow vector + constants other than 0 and -1. + * config/sparc/sparc.c (sparc_preferred_reload_class): Return + NO_REGS for vector constants other than 0 and -1. + + * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG, + SPARC_INT_REG_P): Define. + (HARD_REGNO_NREGS): Use SPARC_INT_REG_P. + (REGNO_OK_FOR_INDEX_P): Likewise. + * config/sparc/sparc.c (gen_df_reg): Likewise. + (eligible_for_return_delay): Likewise. + (eligible_for_sibcall_delay): Likewise. + (sparc_legitimate_address_p): Likewise. + (emit_save_or_restore_regs): Likewise. + (registers_ok_for_ldd_peep): Likewise. + * config/spac/sparc.md (DI mode splitters): Likewise. + (SF mode const splitters): Likewise. + (DF mode splitters): Likewise. + (32-bit DI mode logical op splitters): Likewise. + +2011-10-23 Paolo Carlini + + PR c++/50841 + Revert: + 2011-10-23 Paolo Carlini + + PR c++/50810 + * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. + +2011-10-23 Uros Bizjak + + * config/i386/sse.md (avx2_lshl3): Remove insn pattern. + (VI248_256): Remove mode iterator. + * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3 + instead of gen_avx2_lshlv4di3. + (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of + CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3. + +2011-10-23 Uros Bizjak + + * config/i386/sse.md (sseintprefix): Rename from gthrfirstp. + (_maskload): Delete expander. + (_maskload) Merge insn + pattern from *avx2_maskload and + *avx_maskload using V48_AVX mode + iterator. Use sseintprefix mode attribute. + (_maskstore): Delete expander. + (_maskstore) Merge insn + pattern from *avx2_maskstore and + *avx_maskstore using V48_AVX mode + iterator. Use sseintprefix mode attribute. + (*avx2_gathersi) Use sseintprefix and ssemodesuffix mode + attributes. + (*avx2_gatherdi): Ditto. + (*avx2_gatherdi256): Ditto. + (VI48_AVX2): Remove mode iterator. + (gthrlastfp): Remove mode attribute. + +2011-10-23 Paolo Carlini + + PR c++/50810 + * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. + +2011-10-23 Tom de Vries + + PR tree-optimization/50763 + * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored + out of ... + (same_succ_flush_bbs): Use same_succ_flush_bb. + (purge_bbs): Remove argument. Remove calls to same_succ_flush_bbs, + release_last_vdef and delete_basic_block. + (unlink_virtual_phi): New function. + (update_vuses): Add and use vuse1_phi_args argument. Set var to + SSA_NAME_VAR of vuse1 or vuse2, and use var. Handle case that + def_stmt2 is NULL. Use phi result as phi arg in case vuse1 or vuse2 + is NULL_TREE. Replace uses of vuse1 if vuse2 is NULL_TREE. Fix code + to limit replacement of uses. Propagate phi argument for phis with a + single argument. + (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE. + Set vuse1_phi_args if vuse1 is a phi defined in bb1. Add + vuse1_phi_args as argument to call to update_vuses. Call + release_last_vdef, same_succ_flush_bb, delete_basic_block. Update + CDI_DOMINATORS info. + (tail_merge_optimize): Remove argument in call to purge_bbs. Remove + call to free_dominance_info. Only call calculate_dominance_info once. + +2011-10-23 Eric Botcazou + + * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR. + + PR tree-optimization/44683 + * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if + we can be sure that there are no signed zeros involved. + +2011-10-23 Jan Hubicka + + * ipa-inline.c (estimate_badness): Scale up and handle overflows. + +2011-10-23 Uros Bizjak + + PR target/50788 + * config/i386/sse.md (_maskload): + Remove (match_dup 0). + (*avx2_maskload): New insn pattern. + (*avx_maskload): Ditto. + (*avx2_maskstore): Ditto. + (*avx_maskstore): Ditto. + (*avx2_maskmov): Remove insn pattern. + (*avx_maskmov): Ditto. + +2011-10-23 Ira Rosen + + PR tree-optimization/50819 + * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove + the last argument. + * tree-vect-loop.c (vect_analyze_loop_2): Update call to + vect_analyze_data_ref_dependences. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove + the last argument. Check load-after-store dependence for unknown + dependencies in basic blocks. + (vect_analyze_data_ref_dependences): Update call to + vect_analyze_data_ref_dependences. + * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo. + * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove. + (vect_slp_analyze_bb_1): Update call to + vect_analyze_data_ref_dependences. Don't call + vect_bb_vectorizable_with_dependencies. + +2011-10-22 David S. Miller + + * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS, + SECONDARY_OUTPUT_RELOAD_CLASS): Delete. + * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine. + (sparc_secondary_reload): New function. + + * config/sparc/sparc.h (sparc_costs): Remove extern decl. + (struct processor_costs): Move from here.. + * config/sparc/sparc.c (struct processor_costs): To here. + (sparc_costs): Mark static. + + * config/sparc/sparc.c (short_branch, reg_unused_after): Delete. + * config/sparc/sparc-protos.h (short_branch, reg_unused_after): + Get rid of declarations. + +2011-10-21 Paul Brook + + * config/c6x/c6x.c (c6x_asm_emit_except_personality, + c6x_asm_init_sections): New functions. + (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define. + +2011-10-21 Jakub Jelinek + + PR target/50813 + * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle + V4DImode and V8SImode for !TARGET_AVX2. + +2011-10-21 Bernd Schmidt + + PR bootstrap/50825 + * sched-deps.c (add_dependence): If not doing predication, promote + REG_DEP_CONTROL to REG_DEP_ANTI. + +2011-10-21 Georg-Johann Lay + + * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X + instead of X to avr_legitimize_reload_address. + * config/avr/avr-protos.h (avr_legitimize_reload_address): Change + first argument's type from rtx to rtx*. + * config/avr/avr.c (avr_legitimize_reload_address): Ditto. + Pass PX to push_reload instead of &X. Change log messages for + better distinction. + +2011-10-21 Roland Stigge + + PR translation/47064 + * params.def: Fix typo "compilatoin" -> "compilation". + +2011-10-21 H.J. Lu + Kirill Yukhin + + PR target/50740 + * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only + if max_level allows that. + +2011-10-21 Bernd Schmidt + + * reg-notes.def (DEP_CONTROL): New. + * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when + not doing speculation. + * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets, + record_hard_reg_uses_1, record_hard_reg_uses): New functions. + * function.c (record_hard_reg_sets, record_hard_reg_uses, + record_hard_reg_uses_1): Remove; move to rtlanal.c. + * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions. + * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h". + (MUST_RECOMPUTE_SPEC_P): New macro. + (real_insn_for_shadow): New function. + (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions, + toggle_cancelled_flags): New static functions. + (schedule_insn): Relax an assert to only check for empty hard back + dependencies. Skip cancelled dependencies. Call + check_clobbered_conditions. + (copy_insn_list): Remove function, renamed moved to lists.c. + (save_backtrack_point): Use new spelling copy_INSN_LIST. + (unschedule_insns_until): Ensure TODO_SPEC is reset properly. + (restore_last_backtrack_point): Likewise. Call toggle_cancelled_flags. + (estimate_insn_tick): Ignore cancelled dependencies. + (haifa_speculate_insn): Move declaration. + (try_ready): Move code into recompute_todo_spec and call it. Tweak + some asserts. Ensure predicated patterns are restored if necessary. + Dump DEP_CONTROL flag. + (haifa_change_pattern): Merge with sched_change_pattern. + (sched_change_pattern): Remove function. + * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove. All + uses changed to simply not test NON_FLUSH_JUMP_P. + (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle + REG_DEP_CONTROL. + (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative. + (reg_pending_control_uses, control_dependency_cache): New static + variables. + (sched_get_reverse_condition_uncached): New function. + (sd_find_dep_between): Remove pointless assert. Look in + control_dependency_cache. + (ask_dependency_caches, set_dependency_caches, sd_delete_dep, + extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL + and control_dependency_cache. + (sd_unresolve_dep): Use dep_spec_p. + (add_dependence): Now a wrapper around add_dependence_1, handling + REG_DEP_CONTROL specially. + (flush_pending_lists): Clear pending_jump_insns. + (sched_analyze_1): Handle pending_jump_insns like a memory flush. + (sched_analyze_2): Unconditionally add to pending memory flushes, + keep previous behaviour but apply it to pending_jump_insns instead. + (sched_analyze_insn): Defer adding jump reg dependencies using + reg_pending_control_uses; add them to the control_uses list. Handle + pending_jump_insns and control_uses when adding dependence lists. + (deps_analyze_insn): Update INSN_COND_DEPS. + (deps_analyze_insn): Add jumps to pending_jump_insns rather than + last_pending_memory_flush. + (init_deps): Initialize pending_jump_insns. + (free_deps): Free control_uses. + (remove_from_deps): Remove from pending_jump_insns. + (init_deps_global): Allocate reg_pending_control_uses). + (finish_deps_global): Free it. + (add_dependence_1): Renamed from add_dependence. Handle + REG_DEP_CONTROL. + * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare. + (copy_INSN_LIST, concat_INSN_LIST): Declare. + * sched-int.h (struct deps_reg): Add control_uses. + (struct deps_desc): Add pending_jump_insns. + (struct _haifa_deps_insn_data): Add cond_deps. + (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat. + (INSN_COND_DEPS, PREDICATED_PAT): New macros. + (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word. + (DEP_CONTROL): New macro. + (DEP_TYPES): Include it. + (HARD_DEP): Adjust definition. + (DEP_CANCELLED): New macro. + (enum SCHED_FLAGS): Add DO_PREDICATION. + (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare. + * sched-rgn.c (concat_INSN_LIST): Remove function. + (deps_join): Handle pending_jump_insns. + (free_pending_lists): Likewise. + * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final + schedule. + +2011-10-21 Georg-Johann Lay + + PR target/50820 + * config/avr/libgcc.S (__EIND__): New define to 0x3C. + (__tablejump__): Consistently use EIND for indirect jump/call. + (__tablejump_elpm__): Ditto. + +2011-10-21 Bernd Schmidt + + * config/c6x/c6x.md (attr "op_pattern"): New. + (load_sdata_pic, mov_insn for QIHIM and SISFVM): Set it. + * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_): + Likewise. + * config/c6x/c6x-mult.md: Regenerate. + * config/c6x/c6x.c: Include "regrename.h". + (unit_req_table): New typedef. + (unit_reqs): Use it for the declaration. + (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance, + get_unit_operand_masks, try_rename_operands, reshuffle_units): New + static functions. + (count_unit_reqs): New arg reqs. All callers changed. Use + get_unit_reqs, and don't merge here. + (res_mii): New arg reqs. All callers changed. Rewrite to use a loop + using unit_req_factor. + (hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after + count_unit_reqs. + (c6x_reorg): Add reg notes problem, and call df_analyze. + * Makefile.in ($(out_object_file)): Depend on regrename.h. + +2011-10-21 Kai Tietz + + * fold-const.c (simple_operand_p_2): Handle integral + casts from boolean-operands. + +2011-10-21 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump alias flag. + * cgraphunit.c (handle_alias_pairs): Handle weakrefs with + no destination. + (get_alias_symbol): New function. + (output_weakrefs): Output also weakrefs with no destinatoin. + (lto_output_node): Output weakref alias flag when at function boundary. + +2011-10-21 Andrew Stubbs + + PR target/50809 + * config/arm/driver-arm.c (vendors): Make static. + +2011-10-21 Uros Bizjak + + * config/i386/i386.c (ix86_emit_swdivsf): Force b into register. + (ix86_emit_swsqrtsf): Force a into register. + +2011-10-20 Mike Stump + + * regcprop.c (copyprop_hardreg_forward_1): Update recog_data + after validate_change wipes it out. + +2011-10-20 Ulrich Weigand + + * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32 + before using the shufb instruction. + +2011-10-20 Kirill Yukhin + + PR target/50766 + * config/i386/i386.md (bmi_bextr_): Update register/ + memory operand order. + (bmi2_bzhi_3): Ditto. + (bmi2_pdep_3): Ditto. + (bmi2_pext_3): Ditto. + +2011-10-20 Richard Henderson + + * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok. + * optabs.c (can_vec_perm_expr_p): Update to match. + (expand_vec_perm_expr): Likewise. + * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename + from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK. + * doc/tm.texi.in: Likewise. + +2011-10-20 Sergey Ostanevich + + PR target/50572 + * config/i386/i386.c (processor_target_table): Change Atom + align_loops_max_skip to 15. + +2011-10-20 Richard Henderson + + * target.def (builtin_vec_perm): Remove. + * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + + * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove. + (IX86_BUILTIN_VEC_PERM_*): Remove. + (bdesc_args): Remove vec_perm builtins + (ix86_expand_builtin): Likewise. + (ix86_expand_vec_perm_const_1): Rename from + ix86_expand_vec_perm_builtin_1. + (extract_vec_perm_cst): Merge into... + (ix86_vectorize_vec_perm_const_ok): ... here. Rename from + ix86_vectorize_builtin_vec_perm_ok. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + + * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + + * config/spu/spu.c (spu_builtin_vec_perm): Remove. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + +2011-10-20 Uros Bizjak + + PR target/47989 + * config/i386/i386.h (RECIP_MASK_DEFAULT): New define. + * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT. + * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC + implements vectorized single float division and vectorized sqrtf(x) + with reciprocal sequence with additional Newton-Raphson step with + -ffast-math. + +2011-10-20 Dodji Seketeli + + * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename + ggc_alloced_size_order_for_request into ggc_round_alloc_size like + it was done in ggc-page.c. + + PR other/50659 + * doc/cppopts.texi: Use @smallexample/@end smallexample in + documentation for -fdebug-cpp instead of @quotation/@end quotation + that is not supported by contrib/texi2pod.pl. + +2011-10-19 Jan Hubicka + + * ipa-inline.c (inline_small_functions): Always update all calles after + inlining. + +2011-10-19 Jan Hubicka + + PR bootstrap/50709 + * ipa-inline.c (inline_small_functions): Fix checking code to not make + effect on fibheap stability. + +2011-10-20 Maxim Kuvyrkov + + * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs. + +2011-10-20 Ramana Radhakrishnan + + PR target/50106 + * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return + reg size from 1-3. + +2011-10-20 Richard Guenther + + * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR + and rotates to the set of expensive operations. + +2011-10-19 David S. Miller + + * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p. + (sparc_emit_set_const32): Likewise. + (sparc_emit_set_const64_longway): Likewise. + (sparc_emit_set_const64): Likewise. + (sparc_legitimize_pic_address): Likewise. + (memory_ok_for_ldd): Likewise. + +2011-10-20 Dehao Chen + + * profile.c (compute_branch_probabilities): Compute and dump the + overlap between the static estimation and the instrumentation profile. + (OVERLAP_BASE): New macro. + (compute_frequency_overlap): New function + +2011-10-19 Jakub Jelinek + + * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use + d->op1 instead of d->op0 for the second vpshufb. + (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates. + (ix86_expand_vec_perm_const): If mask indicates two operands are + needed, but both are the same and expanding them as d.op0 == d.op1 + failed, retry with d.op0 != d.op1. + (ix86_expand_vec_perm_builtin): Likewise. Handle sorry printing + also for d.nelt == 32. + + PR middle-end/50754 + * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore + VEC_PERM_EXPR. + +2011-10-19 Bernd Schmidt + + * regrename.h: New file. + * regrename.c: Include it. Also include "emit-rtl.h". + (struct du_head, struct du_chain, du_head_p DEF_VEC and + DEF_VEC_ALLOC_P): Move to regrename.h. + (do_replace): Remove declaration. + (insn_rr): New variable. + (cur_operand): New static variable. + (regrename_chain_from_id): Renamed from chain_from_id and no longer + static. All callers changed. + (record_operand_use): New static function. + (scan_rtx_reg): Use it. + (find_best_rename_reg): New function, broken out of rename_chains. + (rename_chains): Use it. Don't update chain regno and nregs here, ... + (regrename_do_replace): ... do it here instead. Renamed from + do_replace, and no longer static. All callers changed. + (regrename_analyze): No longer static. New arg bb_mask. + All callers changed. If bb_mask is nonzero, use it to limit the + number of basic blocks we analyze. If we failed to analyze a block, + clear insn operand data. + (record_out_operands): New arg insn_info. Update cur_operand if it is + nonnull. + (build_def_use): If insn_rr is nonnull, pass an insn_info to + record_out_operands, and update cur_operand here as well. + (regrename_init, regrename_finish): New functions. + (regrename_optimize): Use them. + * Makefile.in (regrename.o): Adjust dependencies. + +2011-10-19 Tom de Vries + + PR tree-optimization/50769 + * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2 + unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add + dummy argument .MEM to phi when increasing number of arguments of phi by + redirecting edges to the block with phi. + +2011-10-19 Rainer Orth + + PR bootstrap/50777 + * configure.ac: Save and restore CXXFLAGS around + gcc_AC_CHECK_DECLS uses. + Check for madvise() declaration with g++ if --enable-build-with-cxx. + * configure: Regenerate. + * config.in: Regenerate. + * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE. + +2011-10-19 Alexandre Oliva + + PR debug/49310 + * var-tracking.c (loc_exp_dep, onepart_aux): New structs. + (variable_part): Replace offset with union. + (enum onepart_enum, onepart_enum_t): New. + (variable_def): Drop cur_loc_changed, add onepart. + (value_chain_def, const_value_chain): Remove. + (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking. + (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros. + (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise. + (value_chain_pool, value_chains): Remove. + (dropped_values): New. + (struct parm_reg): Only if HAVE_window_save. + (vt_stack_adjustments): Don't record register arguments. + (dv_as_rtx): New. + (dv_onepart_p): Return a onepart_enum_t. + (onepart_pool): New. + (dv_pool): Remove. + (dv_from_rtx): New. + (variable_htab_free): Release onepart aux data. Reset flags. + (value_chain_htab_hash, value_chain_htab_eq): Remove. + (unshare_variable): Use onepart field. Propagate onepart aux + data or offset. Drop cur_loc_changed. + (val_store): Cope with NULL insn. Rephrase dump output. Check + for unsuitable locs. Add FIXME on using cselib locs. + (val_reset): Remove FIXME of unfounded concerns. + (val_resolve): Check for unsuitable locs. Add FIXME on using + cselib locs. + (variable_union): Use onepart field, adjust access to offset. + (NO_LOC_P): New. + (VALUE_CHANGED, DECL_CHANGED): Update doc. + (set_dv_changed): Clear NO_LOC_P when changed. + (find_loc_in_1pdv): Use onepart field. + (intersect_loc_chains): Likewise. + (unsuitable_loc): New. + (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list. + (add_value_chain, add_value_chains): Remove. + (add_cselib_value_chains, remove_value_chain): Likewise. + (remove_value_chains, remove_cselib_value_chains): Likewise. + (canonicalize_loc_order_check): Use onepart. Drop cur_loc_changed. + (canonicalize_values_star, canonicalize_vars_star): Use onepart. + (variable_merge_over_cur): Likewise. Adjust access to offset. + Drop cur_loc_changed. + (variable_merge_over_src): Use onepart field. + (remove_duplicate_values): Likewise. + (variable_post_merge_new_vals): Likewise. + (find_mem_expr_in_1pdv): Likewise. + (dataflow_set_preserve_mem_locs): Likewise. Drop cur_loc_changed + and value chains. + (dataflow_set_remove_mem_locs): Likewise. Use VAR_LOC_FROM. + (variable_different_p): Use onepart field. Move onepart test out + of the loop. + (argument_reg_set): Drop. + (add_uses, add_stores): Preserve but do not record in dynamic + tables equivalences for ENTRY_VALUEs and CFA_based addresses. + Avoid unsuitable address expressions. + (EXPR_DEPTH): Unlimit. + (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH. + (prepare_call_arguments): Use DECL_RTL_IF_SET. + (dump_var): Adjust access to offset. + (variable_from_dropped, recover_dropped_1paux): New. + (variable_was_changed): Drop cur_loc_changed. Use onepart. + Preserve onepart aux in empty_var. Recover empty_var and onepart + aux from dropped_values. + (find_variable_location_part): Special-case onepart. Adjust + access to offset. + (set_slot_part): Use onepart. Drop cur_loc_changed. Adjust + access to offset. Initialize onepaux. Drop value chains. + (delete_slot_part): Drop value chains. Use VAR_LOC_FROM. + (VEC (variable, heap), VEC (rtx, stack)): Define. + (expand_loc_callback_data): Drop dummy, cur_loc_changed, + ignore_cur_loc. Add expanding, pending, depth. + (loc_exp_dep_alloc, loc_exp_dep_clear): New. + (loc_exp_dep_insert, loc_exp_dep_set): New. + (notify_dependents_of_resolved_value): New. + (update_depth, vt_expand_var_loc_chain): New. + (vt_expand_loc_callback): Revamped. + (resolve_expansions_pending_recursion): New. + (INIT_ELCD, FINI_ELCD): New. + (vt_expand_loc): Use the new macros above. Drop ignore_cur_loc + parameter, adjust all callers. + (vt_expand_loc_dummy): Drop. + (vt_expand_1pvar): New. + (emit_note_insn_var_location): Operate on non-debug decls only. + Revamp multi-part cur_loc recomputation and one-part expansion. + Drop cur_loc_changed. Adjust access to offset. + (VEC (variable, heap)): Drop. + (changed_variables_stack, changed_values_stack): Drop. + (check_changed_vars_0, check_changed_vars_1): Remove. + (check_changed_vars_2, check_changed_vars_3): Remove. + (values_to_stack, remove_value_from_changed_variables): New. + (notify_dependents_of_changed_value, process_changed_values): New. + (emit_notes_for_changes): Revamp onepart updates. + (emit_notes_for_differences_1): Use onepart. Drop cur_loc_changed + and value chains. Propagate onepaux. Recover empty_var and onepaux + from dropped_values. + (emit_notes_for_differences_2): Drop value chains. + (emit_notes_in_bb): Adjust. + (vt_emit_notes): Drop value chains, changed_variables_stack. + Initialize and release dropped_values. + (create_entry_value): Revamp. + (vt_add_function_parameter): Use new interface. + (note_register_arguments): Remove. + (vt_initialize): Drop value chains and register arguments. + (vt_finalize): Drop value chains. Release windowed_parm_regs only + if HAVE_window_save. + * rtl.h: Document various pass-local uses of RTL flags. + * tree.h (DECL_RTL_KNOWN_SET): New. + * doc/invoke.texi (param max-vartrack-expr-depth): Update + description and default. + +2011-10-19 Georg-Johann Lay + + PR target/50447 + * config/avr/avr.md (cc): New alternative out_plus_noclobber. + (adjust_len): Ditto. + (addhi3): Don't pipe through short; use gen_int_mode instead. + Prior to reload, expand to gen_addhi3_clobber. + (*addhi3): Use avr_out_plus_noclobber if applicable, use + out_plus_noclobber in cc and adjust_len attribute. + (addhi3_clobber): 2 new RTL peepholes. + (addhi3_clobber): New insn. + * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype. + * config/avr/avr.c (avr_out_plus_noclobber): New function. + (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER. + (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0. + Set cc0 to set_zn for adiw on 16-bit values. + (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER. + (expand_epilogue): No need to add 0 to frame_pointer_rtx. + +2011-10-19 Richard Guenther + + PR middle-end/50780 + * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify + the condition is properly gimple before using it. + * tree-eh (stmt_could_throw_1_p): Properly extract the + operation type from comparisons. + +2011-10-19 Roland Stigge + + PR translation/48638 + * plugin.c (add_new_plugin): Fix typo in fatal_error message. + +2011-10-19 Roland Stigge + + PR translation/49517 + * config/rx/rx.c (rx_print_operand): Fix typo in warning message. + +2011-10-19 Richard Guenther + + PR middle-end/50768 + * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite. + +2011-10-19 Andrey Belevantsev + + PR rtl-optimization/50340 + * sel-sched-ir.c (update_target_availability): LHS register + availability is not known if the unavailable LHS of the other + expression is a different register. + +2011-10-19 Ulrich Weigand + + PR target/50310 + * config/spu/spu.c (spu_emit_vector_compare): Support unordered + floating-point comparisons. + +2011-10-19 Jan Hubicka + + * cgraphunit.c (handle_alias_pairs): Also handle wekref with + destination declared. + (output_weakrefs): New function. + * varpool.c (varpool_create_variable_alias): Handle external aliases. + +2011-10-19 Jakub Jelinek + + * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as + second argument instead of mode. + +2011-10-18 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use + mode SUBREG of operands[0] as target. + (valid_perm_using_mode_p): Don't ignore higher bits of d->perm. + (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si. + (expand_vec_perm_1): Handle identity and some broadcast + permutations. + (expand_vec_perm_interleave2): Handle also 32-byte modes, using + vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation. + For d->testing_p return true earlier to avoid creating more GC + garbage. + (expand_vec_perm_vpermq_perm_1): New function. + (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true + earlier to avoid creating more GC garbage. Fix handling of + V16HImode. Avoid some SUBREGs in SET_DEST. + (expand_vec_perm_broadcast_1): Return false for 32-byte integer + vector modes. + (expand_vec_perm_vpshufb4_vpermq2): New function. + (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1 + and expand_vec_perm_vpshufb4_vpermq2. + +2011-10-18 Andrew Stubbs + + * config/arm/driver-arm.c (host_detect_local_cpu): Close the file + before exiting. + +2011-10-18 Andrew Stubbs + + PR tree-optimization/50717 + * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type' + parameter. Calculate 'type' from stmt. + (convert_mult_to_widen): Update call the is_widening_mult_p. + (convert_plusminus_to_widen): Likewise. + +2011-10-18 Ulrich Weigand + + * config/spu/spu.c (struct machine_function): New data structure. + (spu_init_machine_status): New function. + (spu_option_override): Install it. + (get_pic_reg): Set and use cfun->machine->pic_reg. + (spu_split_immediate): Do not set crtl->uses_pic_offset_table. + (need_to_save_reg): Use cfun->machine->pic_reg instead of + checking crtl->uses_pic_offset_table. + (spu_expand_prologue): Likewise. + +2011-10-18 Jakub Jelinek + + PR tree-optimization/50735 + * function.c (gimplify_parameters): Use create_tmp_var instead of + create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex + or vector type, set DECL_GIMPLE_REG_P. + +2011-10-18 Andrew Stubbs + + * config.host (arm*-*-linux*): Add driver-arm.o and x-arm. + * config/arm/arm.opt: Add 'native' processor_type and + arm_arch enum values. + * config/arm/arm.h (host_detect_local_cpu): New prototype. + (EXTRA_SPEC_FUNCTIONS): New define. + (MCPU_MTUNE_NATIVE_SPECS): New define. + (DRIVER_SELF_SPECS): New define. + * config/arm/driver-arm.c: New file. + * config/arm/x-arm: New file. + * doc/invoke.texi (ARM Options): Document -mcpu=native, + -mtune=native and -march=native. + +2011-10-18 Alexander Monakov + + PR rtl-optimization/50205 + * sel-sched.c (count_occurrences_1): Simplify on the assumption that + p->x is a register. Forbid substitution when the same register is + found in a different mode. + (count_occurrences_equiv): Assert that 'what' is a register. + +2011-10-18 Richard Guenther + + PR tree-optimization/50767 + * tree-ssa-pre.c (create_expression_by_pieces): Update the + folded statement. + +2011-10-18 Julian Brown + + * config/arm/arm.c (arm_block_move_unaligned_straight) + (arm_adjust_block_mem, arm_block_move_unaligned_loop) + (arm_movmemqi_unaligned): New. + (arm_gen_movmemqi): Support unaligned block copies. + +2011-10-18 Ira Rosen + + * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo, + vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document. + * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR, + VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. + (op_code_prio): Likewise. + (op_symbol_code): Handle WIDEN_LSHIFT_EXPR. + * optabs.c (optab_for_tree_code): Handle + VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. + (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo. + * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo. + * genopinit.c (optabs): Initialize the new optabs. + * expr.c (expand_expr_real_2): Handle + VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. + * gimple-pretty-print.c (dump_binary_rhs): Likewise. + * tree-vectorizer.h (NUM_PATTERNS): Increase to 8. + * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR, + VEC_WIDEN_LSHIFT_LO_EXPR): New. + * cfgexpand.c (expand_debug_expr): Handle new tree codes. + * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add + vect_recog_widen_shift_pattern. + (vect_handle_widen_mult_by_const): Rename... + (vect_handle_widen_op_by_const): ...to this. Handle shifts. + Add a new argument, update documentation. + (vect_recog_widen_mult_pattern): Assume that only second + operand can be constant. Update call to + vect_handle_widen_op_by_const. + (vect_recog_over_widening_pattern): Fix typo. + (vect_recog_widen_shift_pattern): New. + * tree-vect-stmts.c (vectorizable_type_promotion): Handle + widening shifts. + (supportable_widening_operation): Likewise. + * tree-inline.c (estimate_operator_cost): Handle new tree codes. + * tree-vect-generic.c (expand_vector_operations_1): Likewise. + * tree-cfg.c (verify_gimple_assign_binary): Likewise. + * config/arm/neon.md (neon_vec_shiftl_): New. + (vec_widen_shiftl_lo_, neon_vec_shiftl_hi_, + vec_widen_shiftl_hi_, neon_vec_shift_left_): + Likewise. + * config/arm/predicates.md (const_neon_scalar_shift_amount_operand): + New. + * config/arm/iterators.md (V_innermode): New. + * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand + for widening shift. + +2011-10-18 Richard Guenther + + * tree-ssa-alias.h (struct pt_solution): Remove + vars_contains_restrict member. + (pt_solutions_same_restrict_base): Remove. + (pt_solution_set): Adjust. + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove + vars_contains_restrict handling. + (dump_points_to_solution): Likewise. + (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base. + * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var + field. + (new_var_info): Do not initialize it. + (ipa_escaped_pt): Adjust. + (make_constraint_from_restrict): Make the tag global. + (make_constraint_from_global_restrict): New function. + (make_constraint_from_heapvar): Remove. + (create_variable_info_for): Do not make restrict vars point + to NONLOCAL. + (intra_create_variable_infos): Likewise. + (find_what_var_points_to): Remove vars_contains_restrict handling. + (pt_solution_set): Adjust. + (pt_solution_ior_into): Likewise. + (pt_solutions_same_restrict_base): Remove. + (compute_points_to_sets): Do not test is_restrict_var. + * cfgexpand.c (update_alias_info_with_stack_vars): Adjust. + * gimple-pretty-print.c (pp_points_to_solution): Likewise. + +2011-10-18 Tom de Vries + + PR tree-optimization/50672 + * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function, + factored out of ... + (mark_virtual_phi_result_for_renaming): Use + mark_virtual_operand_for_renaming. + * tree-flow.h (mark_virtual_operand_for_renaming): Declare. + * tree-ssa-tail-merge.c (release_last_vdef): New function. + (purge_bbs): Add update_vops parameter. Call release_last_vdef for each + deleted basic block. + (tail_merge_optimize): Add argument to call to purge_bbs. + +2011-10-18 Richard Guenther + + PR middle-end/50716 + * expr.c (get_object_or_type_alignment): New function. + (expand_assignment): Use it. + (expand_expr_real_1): Likewise. + +2011-10-18 Dodji Seketeli + + PR bootstrap/50760 + * input.c (dump_line_table_statistics): Use long, not size_t. + +2011-10-17 Eric Botcazou + + * config/sparc/sparc.md (in_call_delay): Fix formatting issues. + +2011-10-17 Simon Baldwin + Ian Lance Taylor + + * configure.ac: Add --with-native-system-header-dir. Set and + substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header + when setting target_header_dir. + * config.gcc: Always set native_system_header_dir. + (*-*-gnu*): Set native_system_header_dir. Don't use t-gnu. + (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't + use i386/t-djgpp. + (i[34567]86-*-mingw* | x86_64-*-mingw*): Set + native_system_header_dir. + (spu-*-elf*): Set native_system_header_dir. + * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to + @NATIVE_SYSTEM_HEADER_DIR@. + (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR. + * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define. + (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from + STANDARD_INCLUDE_COMPONENT. + (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename + STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR. + * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and + STANDARD_INCLUDE_COMPONENT. + * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove. + * config/i386/t-mingw-w32: Likewise. + * config/i386/t-mingw-w64: Likewise. + * config/spu/t-spu-elf: Likewise. + * config/i386/t-djgpp: Remove. + * config/t-gnu: Remove. + * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define. + (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from + STANDARD_INCLUDE_COMPONENT. + * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define. + * config/spu/spu-elf.h: Likewise. + * config/vms/xm-vms.h: Likewise. + * config/gnu.h: Likewise. + * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR + and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and + NATIVE_SYSTME_HEADER_COMPONENT. + * doc/install.texi (Configuration): Document + --with-native-system-header-dir. Mention it in the documentation + for --with-sysroot and --with-build-sysroot. + * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or + STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to + NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of + STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR. + * doc/fragments.texi (Target Fragment): Don't document + NATIVE_SYSTEM_HEADER_DIR. + * configure, doc/tm.texi: Rebuild. + +2011-10-17 Richard Henderson + + * config/sparc/sparc.md: Use register_or_zero_operand where rJ + is the constraint. + + * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm): New + patterns. + * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function. + * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare. + +2011-10-17 David S. Miller + + * config/sparc/sparc-modes.def: Add single entry vector modes for + DImode and SImode. + * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete + mode iterators. + (mov): Revert back to plain SFmode pattern. + (*movsf_insn): Likewise. + (mov): Revert back to plain DFmode pattern. + (*movdf_insn_sp32): Likewise. + (*movdf_insn_sp32_v9): Likewise. + (*movdf_insn_sp64): Likewise. + (V64 mode splitters) Likewise. + (addsi3): Remove VIS alternatives. + (subsi3): Likewise. + (and3): Revert to DImode only pattern. + (and3_sp32): Likewise. + (*and3_sp64): Likewise. + (and3): Likewise. + (*and_not__sp32): Likewise. + (*and_not__sp64): Likewise. + (*and_not_): Likewise. + (ior3): Likewise. + (*ior3_sp32): Likewise. + (*ior3_sp64): Likewise. + (ior3): Likewise. + (*or_not__sp32): Likewise. + (*or_not__sp64): Likewise. + (*or_not_): Likewise. + (xor3): Likewise. + (*xor3_sp32): Likewise. + (*xor3_sp64): Likewise. + (xor3): Likewise. + (V64I mode splitters): Likewise. + (*xor_not__sp32): Likewise. + (*xor_not__sp64): Likewise. + (*xor_not_): Likewise. + (one_cmpl2): Likewise. + (*one_cmpl2_sp32): Likewise. + (*one_cmpl2_sp64): Likewise. + (one_cmpl2): Likewise. + (VM32, VM64, VMALL): New mode iterators. + (vbits, vconstr, vfptype): New mode attributes. + (mov): New expander. + (*mov_insn): New insn. + (*mov_insn_sp64): New insn. + (*mov_insn_sp32): New insn, and associated splitter + specifically for the register to memory case. + (vec_init): New expander. + (VADDSUB): New mode iterator. + (v2si3, v2hi3): Remove and replace + with... + (3): New consolidated pattern. + (VL): New mode iterator for logical operations. + (vlsuf): New more attribute. + (vlop): New code iterator. + (vlinsn, vlninsn): New code attributes. + (3): New insn to non-negated vector logical ops. + (*not_3): Likewise for negated variants. + (*nand_vis): New insn. + (vlnotop): New code iterator. + (*_not1_vis, *_not2_vis): New insns. + (one_cmpl2): New insn. + (faligndata_vis): Rewrite to use VM64 iterator. + (bshuffle_vis): Likewise. + (v3): Use GCM mode iterator. + (fp64_vis): Use V1DI mode. + (VASS mode iterator): Use V1SI not SI mode. + * config/sparc/sparc.c (sparc_vis_init_builtins): Account for + single-entry vector mode changes. + (sparc_expand_builtin): Likewise. + (sparc_expand_vector_init): New function. + * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare. + +2011-10-17 Kai Tietz + + * fold-const.c (simple_operand_p_2): New function. + (fold_truthop): Rename to + (fold_truth_andor_1): function name. + Additionally remove branching creation for logical and/or. + (fold_truth_andor): Handle branching creation for logical and/or here. + +2011-10-17 Andi Kleen + + * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP. + +2011-10-17 Georg-Johann Lay + + * config/avr/avr.h (ASSEMBLER_DIALECT): Remove. + * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes. + (adjust_len): Add alternative "call". + (isa, enabled): New insn attributes. + (length): Use match_test with AVR_HAVE_JMP_CALL instead of + mcu_mega attribute. + (*sbrx_branch): Ditto. + (*sbrx_and_branch): Ditto. + (*sbix_branch): Ditto. + (*sbix_branch_bit7): Ditto. + (*sbix_branch_tmp): Ditto. + (*sbix_branch_tmp_bit7): Ditto. + (jump): Ditto. + (negsi2): Use attribute "isa" instead of assembler dialect. + (extendhisi2): Ditto. + (call_insn, call_value_insn): Set adjust_len attribute. + (indirect_jump): Indent to coding rules. + (call_prologue_saves): Use isa attribute instead of mcu_mega. + (epilogue_restores): Ditto. Fix setting of SP as described in the + RTX pattern. + (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump + and *indirect_jump_avr6. + (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib. + (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove. + (*tablejump_rjmp, *tablejump_lib): Remove. + * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL. + +2011-10-17 Paolo Carlini + + PR c++/50757 + * doc/invoke.texi ([Wnonnull]): Update. + +2011-10-17 Richard Henderson + + PR 50746 + * optabs.c (expand_vec_perm_expr): Fix indexing error. + +2011-10-17 Sergio Durigan Junior + + * configure.ac: Display `yes' if the SystemTap header has been found. + * configure: Regenerate. + +2011-10-08 Andi Kleen + + PR other/50636 + * config.in, configure: Regenerate. + * configure.ac (madvise): Add to AC_CHECK_FUNCS. + * ggc-page.c (USING_MADVISE): Add. + (page_entry): Add discarded field. + (alloc_page): Check for discarded pages. + (release_pages): Add USING_MADVISE branch. + +2011-10-17 Richard Guenther + + PR tree-optimization/50729 + * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test. + (simplify_conversion_using_ranges): Properly test the + intermediate result. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * ggc.h (ggc_round_alloc_size): Declare new public entry point. + * ggc-none.c (ggc_round_alloc_size): New public stub function. + * ggc-page.c (ggc_alloced_size_order_for_request): New static + function. Factorized from ggc_internal_alloc_stat. + (ggc_round_alloc_size): New public function. Uses + ggc_alloced_size_order_for_request. + (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request. + * ggc-zone.c (ggc_round_alloc_size): New public function extracted + from ggc_internal_alloc_zone_stat. + (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size. + * toplev.c (general_init): Initialize + line_table->alloced_size_for_request. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros. + (num_expanded_macros_counter, num_macro_tokens_counter): Declare + new counters. + (dump_line_table_statistics): Define new function. + * input.h (dump_line_table_statistics): Declare new function. + * toplev.c (dump_memory_report): Call dump_line_table_statistics. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * doc/cppopts.texi: Document -fdebug-cpp. + * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * gcc/diagnostic.h (diagnostic_report_current_module): Add a + location parameter. + * diagnostic.c (diagnostic_report_current_module): Add a location + parameter to the function definition. Use it instead of + input_location. Resolve the virtual location rather than just + looking up its map and risking to touch a resulting macro map. + (default_diagnostic_starter): Pass the relevant diagnostic + location to diagnostic_report_current_module. + * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New. + (virt_loc_aware_diagnostic_finalizer): Likewise. + (diagnostic_report_current_function): Pass the + relevant location to diagnostic_report_current_module. + * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare + new function. + * toplev.c (general_init): By default, use the new + virt_loc_aware_diagnostic_finalizer as diagnostic finalizer. + * Makefile.in: Add vec.h dependency to tree-diagnostic.c. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * doc/cppopts.texi (-ftrack-macro-expansion): Document new option. + * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of + preprocessor related options. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * input.h (struct expanded_location): Move to libcpp/line-map.h. + (LOCATION_COLUMN): New accessor + (in_system_header_at): Use linemap_location_in_system_header_p. + * diagnostic.c (diagnostic_report_current_module): Adjust to avoid + touching the internals of struct line_map. Use the public API instead. + (diagnostic_report_diagnostic): Don't use relational operator '<' + on virtual locations. Use linemap_location_before_p instead. + * input.c (expand_location): Adjust to expand to the tokens' + spelling location when macro location tracking is on. + + +2011-10-08 Andi Kleen + + * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512 + +2011-10-13 Andi Kleen + + * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim. + +2011-10-16 Ira Rosen + + PR tree-optimization/50727 + * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add + DEF_STMT to the list of statements to be replaced by the + pattern statements. + +2011-10-16 Eric Botcazou + + PR rtl-optimization/50615 + * combine.c (distribute_notes) : Skip if I3 is a no-op. + +2011-10-16 Jakub Jelinek + + PR tree-optimization/50596 + * tree-vectorizer.h (NUM_PATTERNS): Increase to 7. + * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add + vect_recog_bool_pattern. + (check_bool_pattern, adjust_bool_pattern_cast, + adjust_bool_pattern, vect_recog_bool_pattern): New functions. + +2011-10-16 Ira Rosen + + * tree-vect-stmts.c (vectorizable_load): For SLP without permutation + treat the first load of the node as the first element in its + interleaving chain. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if + necessary and possible. + (vect_build_slp_tree): Add new argument. Allow load groups of any size + in basic blocks. Keep all the loads for further permutation check. + Use the new argument to determine if there is a permutation. Update + the recursive calls. + (vect_supported_load_permutation_p): Allow subchains of interleaving + chains in basic block vectorization. + (vect_analyze_slp_instance): Update the call to vect_build_slp_tree. + Check load permutation based on the new parameter. + (vect_schedule_slp_instance): Don't start from the first element in + interleaving chain unless the loads are permuted. + +2011-10-15 Jan Hubicka + + PR target/48668 + PR target/50689 + * cgraphunit.c (cgraph_expand_function): Expand thunks and alises + after function body. + +2011-10-15 Richard Henderson + + * tree-vect-slp.c: Include langhooks.h. + (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin. + (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify + mask creation for VEC_PERM_EXPR. + * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask, + not the builtin. + (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin. + * Makefile.in (tree-vect-slp.o): Update dependency. + * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant. + +2011-10-15 Alan Modra + + PR bootstrap/50738 + * ifcvt.c (dead_or_predicable): Revert accidental commit with + HAVE_simple_return test. + +2011-10-15 Alan Modra + + * ifcvt.c (dead_or_predicable): Disable if-conversion when + doing so is likely to kill a shrink-wrapping opportunity. + + PR rtl-optimization/49941 + * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps. + + * rtl.h (set_return_jump_label): Declare. + * function.c (set_return_jump_label): New function, extracted.. + (thread_prologue_and_epilogue_insns): ..from here. Use it in + another instance to set return jump_label. + * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label. + * reorg.c (find_end_label): Likewise. + +2011-10-14 David S. Miller + + * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling + with a more complete cpp test. + * config/sparc/linux64.h: Likewise. + * config/sparc/linux.h: Likewise. + * config/sparc/sparc.opt (sparc_debug): New target variable. + (mdebug): New target option. + * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL, + TARGET_DEBUG_OPTIONS): New defines. + * config/sparc/sparc.c (debug_target_flag_bits, + debug_target_flags): New functions. + (sparc_option_override): Add name strings back to cpu_table[]. + Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print + out the target flags before and after override processing as well + as the selected cpu. If MASK_V8PLUS, make sure that the selected + cpu is at least v9. + +2011-10-15 Oleg Endo + + PR target/49263 + * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro. + * config/sh/sh.c (sh_rtx_costs): Add test instruction case. + * config/sh/sh.md (tstsi_t): Name existing insn. Make inner + and instruction commutative. + (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not, + tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor, + tstsi_t_zero_extract_subreg_xor_little, + tstsi_t_zero_extract_subreg_xor_big): New insns. + (*movsicc_t_false, *movsicc_t_true): Replace space with tab in + asm output. + (*andsi_compact): Reorder alternatives so that K08 is considered first. + +2011-10-14 Eric Botcazou + + PR target/50354 + * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default + processor is at least V9 and TARGET_64BIT_DEFAULT is defined. + +2011-10-14 Gerald Pfeifer + + * invoke.texi (AVR Options): Avoid \leq{}. + +2011-10-14 Kai Tietz + + * gimplify.c (gimplify_expr): Take care that for bitwise-binary + transformation the operands have compatible types. + +2011-10-14 Jakub Jelinek + + * config/i386/sse.md (vec_widen_smult_hi_v8hi, + vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi, + vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2 + mode iterator and any_extend code iterator. + (vec_widen_mult_hi_v8si, vec_widen_mult_lo_v8si): New expanders. + (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable + also for TARGET_SSE4_1 using pmuldq insn. + (sdot_prodv8hi): Macroize using VI2_AVX2 iterator. + (sse2_sse4_1): New code attr. + (udot_prodv4si): Macroize using any_extend code iterator. + (dot_prodv8si): New expander. + +2011-10-14 Yakovlev Vladimir + + * config/i386/i386.c (atom_cost): Changed cost for loading + QImode using movzbl. + +2011-10-14 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my + change on October 11th, 2011. + +2011-10-14 Jakub Jelinek + + * config/i386/sse.md (vec_interleave_high, + vec_interleave_low): Add AVX2 expanders for VI_256 modes. + * config/i386/i386.c (expand_vec_perm_interleave3): New function. + (ix86_expand_vec_perm_builtin_1): Call it. + +2011-10-14 Georg-Johann Lay + + Fix thinko from r179765 + * config/avr/avr.c (avr_option_override): Don't override + flag_omit_frame_pointer if not actually needed. + +2011-10-14 Georg-Johann Lay + + PR target/46278 + * doc/invoke.texi (AVR Options): Document -mstrict-X. + + * config/avr/avr.opt (-mstrict-X): New option. + (avr_strict_X): New variable reflecting -mstrict-X. + * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter + outer_code and pass it down to avr_regno_mode_code_ok_for_base_p. + (avr_legitimate_address_p): Pass outer_code to + avr_reg_ok_for_addr_p and use that function in case PLUS. + (avr_mode_code_base_reg_class): Depend on avr_strict_X. + (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code. + (avr_option_override): Disable -fcaller-saves if -mstrict-X is on. + +2011-10-14 Jakub Jelinek + + * config/i386/sse.md (neg2): Use VI_AVX2 iterator instead + of VI_128. + + * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator. + (ashl3): Use VI248_AVX2 iterator instead of VI248_128. + Use instead of TI in mode attr. + +2011-10-14 David Alan Gilbert + + * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c). + * config/arm/linux-atomic.c: Change comment to point to 64bit version. + (SYNC_LOCK_RELEASE): Instantiate 64bit version. + * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c. + +2011-10-14 David Alan Gilbert + + * config/arm/arm.c (arm_output_ldrex): Support ldrexd. + (arm_output_strex): Support strexd. + (arm_output_it): New helper to output it in Thumb2 mode only. + (arm_output_sync_loop): Support DI mode. Change comment to + not support const_int. + (arm_expand_sync): Support DI mode. + * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH + and LDREXD. + * config/arm/iterators.md (NARROW): move from sync.md. + (QHSD): New iterator for all current ARM integer modes. + (SIDI): New iterator for SI and DI modes only. + * config/arm/sync.md (sync_predtab): New mode_attr. + (sync_compare_and_swapsi): Fold into sync_compare_and_swap. + (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi. + (sync_si): Fold into sync_. + (sync_nandsi): Fold into sync_nand. + (sync_new_si): Fold into sync_new_. + (sync_new_nandsi): Fold into sync_new_nand. + (sync_old_si): Fold into sync_old_. + (sync_old_nandsi): Fold into sync_old_nand. + (sync_compare_and_swap): Support SI & DI. + (sync_lock_test_and_set): Likewise. + (sync_): Likewise. + (sync_nand): Likewise. + (sync_new_): Likewise. + (sync_new_nand): Likewise. + (sync_old_): Likewise. + (sync_old_nand): Likewise. + (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI. + (arm_sync_lock_test_and_setsi): Likewise. + (arm_sync_new_si): Likewise. + (arm_sync_new_nandsi): Likewise. + (arm_sync_old_si): Likewise. + (arm_sync_old_nandsi): Likewise. + (arm_sync_compare_and_swap NARROW): use sync_predtab, fix indent. + (arm_sync_lock_test_and_setsi NARROW): Likewise. + (arm_sync_new_ NARROW): Likewise. + (arm_sync_new_nand NARROW): Likewise. + (arm_sync_old_ NARROW): Likewise. + (arm_sync_old_nand NARROW): Likewise. + +2011-10-14 David Alan Gilbert + + PR target/48126 + * config/arm/arm.c (arm_output_sync_loop): Move label before barrier. + +2011-10-14 David Alan Gilbert + + * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1. + +2011-10-14 Paolo Carlini + + * doc/invoke.texi ([Wformat-zero-length]): Tidy. + +2011-10-14 Jakub Jelinek + + * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also + on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs. + +2011-10-14 Richard Guenther + + PR tree-optimization/50723 + * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING. + +2011-10-14 Nicola Pero + + * gengtype.c (files_rules): Added rules for objc/objc-map.h and + objc/objc-map.c. + +2011-10-14 Paolo Carlini + + PR c++/17212 + * doc/invoke.texi ([Wformat-zero-length]): Update. + +2011-10-14 Iain Sandoe + + PR bootstrap/50699 + * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only + build for powerpc targets. (darwin_patch_builtins): Only build for + powerpc targets. + +2011-10-14 Jakub Jelinek + + * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to... + (avx_cvtdq2pd256_2): ... this. + (sseunpackfltmode): New mode attr. + (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi, + vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize + using VI2_AVX2 iterator. + (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders. + +2011-10-13 David S. Miller + + * config/sparc/sparc.md (plusminus): New code iterator. + (plusminus_insn): New code attr. + (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge + using plusminus and plusminus_insn. + (fpadd64_vis, fpsub64_vis): Likewise. + +2011-10-13 Richard Henderson + + * doc/md.texi (vec_perm): Document fallback to byte permutation. + * genopinit.c (optabs): Add vec_perm_const. + * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p. + Reject non-vector modes. Allow fallback to byte permutation. + (expand_vec_perm_expr_1): Split out from ... + (expand_vec_perm_expr): ... here. Allow fallback to byte permutation. + * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New. + * tree-vect-generic.c (lower_vec_perm): Update for name change. + +2011-10-13 Richard Henderson + + * config/rs6000/altivec.md (vec_permv16qi): New pattern. + + * config/rs6000/spu.md (vec_permv16qi): New pattern. + + * config/i386/i386.c (ix86_expand_vec_perm_const): New. + * config/i386/i386-protos.h: Update. + * config/i386/sse.md (VEC_PERM_CONST): New mode iterator. + (vec_perm_const): New expander. + + * optabs.c (expand_vector_broadcast): New. + (expand_binop): Expand scalar shifts of vectors to vector shifts + of vectors, if the former isn't supported. + * tree-vect-generic.c (expand_vector_operations_1): Don't do that + here; always simplify to scalar shift of vector if possible. + + * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode + test for vector splat. + +2011-10-13 Jakub Jelinek + + * config/i386/sse.md (vec_set): Change V_128 iterator mode to V. + +2011-10-13 Jakub Jelinek + Richard Guenther + + * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector + or complex vars even if their DECL_UID is in not_reg_needs bitmap. + +2011-10-13 Jakub Jelinek + + * config/i386/sse.md (reduc_umin_v8hi): New pattern. + * config/i386/i386.c (ix86_build_const_vector): Handle + also V32QI, V16QI, V16HI and V8HI modes. + (emit_reduc_half): New function. + (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN. + Use emit_reduc_half helper function. + +2011-10-13 Lawrence Crowl + Diego Novillo + + * lto-streamer-in.c (input_struct_function_base): Factor out of ... + (input_function): ... here. + * lto-streamer-out.c (output_struct_function_base): Factor out of ... + (output_function): ... here. + +2011-10-13 Gabriel Charette + Diego Novillo + + * streamer-hooks.h (struct streamer_hooks): Add hooks + input_location and output_location. + * lto-streamer-in.c (lto_input_location): Use + streamer_hooks.input_location, if set. + * lto-streamer-out.c (lto_output_location): Use + streamer_hooks.output_location, if set. + +2011-10-13 Eric Botcazou + + * doc/invoke.texi (SPARC options): Document -mfix-at697f. + * config/sparc/sparc.opt (mfix-at697f): New option. + * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (sparc_reorg): New function. + +2011-10-13 Richard Guenther + + PR tree-optimization/50712 + * ipa-split.c (split_function): Always re-gimplify parameters + when they are not gimple vals before passing them. Properly + check for type compatibility. + +2011-10-13 Tom de Vries + + * function.c (gimplify_parameters): Set number of arguments of call to + BUILT_IN_ALLOCA_WITH_ALIGN to 2. + +2011-10-13 Tom de Vries + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P + for static const strings. + * varasm.c (build_constant_desc): Generate the memory location of the + constant using gen_const_mem. + +2011-10-13 Richard Guenther + + PR tree-optimization/50698 + * tree-data-ref.c (split_constant_offset_1): Also process + offsets of &MEM. + +2011-10-12 David S. Miller + + * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete. + (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New + unspecs. + (fpmerge_vis): Remove inaccurate comment, represent using vec_select + of a vec_concat. + (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns. + (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis): + Reimplement as unspecs and remove inaccurate comments. + (vis3_shift_patname): New code attr. + (_vis): Rename to + "v3". + (vis3_addsub_ss_patname): New code attr. + (_vis): Rename to + "3". + * config/sparc/sparc.c (sparc_vis_init_builtins): Update to + accommodate pattern name changes. + + * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF + to zero when assembler lacks support for such instructions. + * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3 + and MASK_FMAF in defaults when assembler lacks necessary support. + +2011-10-12 Jakub Jelinek + + * config/i386/sse.md (vec_unpacks_lo_, + vec_unpacks_hi_, vec_unpacku_lo_, + vec_unpacku_hi_): Change VI124_128 mode to VI124_AVX2. + * config/i386/i386.c (ix86_expand_sse_unpack): Handle + V32QImode, V16HImode and V8SImode for TARGET_AVX2. + + * config/i386/sse.md (vec_avx2): New mode_attr. + (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ... + (mul3): ... this. + + * config/i386/i386.md (UNSPEC_VPERMDI): Remove. + * config/i386/i386.c (ix86_expand_vec_perm): Handle + V16QImode and V32QImode for TARGET_AVX2. + (MAX_VECT_LEN): Increase to 32. + (expand_vec_perm_blend): Add support for 32-byte integer + vectors with TARGET_AVX2. + (valid_perm_using_mode_p): New function. + (expand_vec_perm_pshufb): Add support for 32-byte integer + vectors with TARGET_AVX2. + (expand_vec_perm_vpshufb2_vpermq): New function. + (expand_vec_perm_vpshufb2_vpermq_even_odd): New function. + (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors + with TARGET_AVX2. + (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq + and expand_vec_perm_vpshufb2_vpermq_even_odd. + * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2 + 32-byte integer vector modes. + (vec_pack_trunc_): Use VI248_AVX2 instead of VI248_128. + (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto. + (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate + 4 new operands. + (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use + match_dup, instead add 4 new operands and require they have + right cross-lane values. + (avx2_permv4di): Change into define_expand. + (avx2_permv4di_1): New instruction. + (avx2_permv2ti): Use nonimmediate_operand instead of register_operand + for "xm" constrained operand. + (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2. + + * config/i386/sse.md (avx2_gathersi, + avx2_gatherdi, avx2_gatherdi256): Add clobber of + match_scratch, change memory_operand to register_operand, + add (mem:BLK (scratch)) use. + (*avx2_gathersi, *avx2_gatherdi, + *avx2_gatherdi256): Add clobber of match_scratch, + add earlyclobber to the output operand and match_scratch, + add (mem:BLK (scratch)) use, change the other mem to match_operand. + Use %p6 instead of %c6 in the pattern. + * config/i386/i386.c (ix86_expand_builtin): Adjust for + operand 2 being a Pmode register_operand instead of memory_operand. + +2011-10-12 Kai Tietz + + * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active. + +2011-10-12 Steve Ellcey + + * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses. + +2011-10-12 Richard Guenther + + * tree-ssa-alias.c (maybe_skip_until): Cache also at the point + of the first store we visit in a basic-block. + (get_continuation_for_phi): Search for a candidate VUSE that + might dominates all others. Do pairwise disambiguation against + that candidate. + +2011-10-12 Paul Koning + + PR tree-optimization/50189 + * tree-vrp.c (extract_range_from_assert): Use the type of + the variable, not the limit. + +2011-10-12 Richard Guenther + + PR tree-optimization/50700 + * tree-object-size.c (addr_object_size): Simplify and treat + MEM_REF bases consistently. + +2011-10-12 Bernd Schmidt + + * function.c (prepare_shrink_wrap, bb_active_p): New function. + (thread_prologue_and_epilogue_insns): Use bb_active_p. Call + prepare_shrink_wrap, then recompute bb_active_p for the last block. + +2011-10-12 Joseph Myers + + PR c/50565 + * convert.c (convert_to_integer): Do not narrow operands of + pointer subtraction. + +2011-10-12 Nick Clifton + + * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro. Used to + emit a .eabi_attribute assembler directive, possibly with a + comment attached. + * config/arm/arm.c (arm_file_start): Use the new macro. + * config/arm/arm-c.c (arm_output_c_attributes): Likewise. + +2011-10-12 Georg-Johann Lay + + PR target/49939 + * config/avr/avr.md (*movqi): Rename to movqi_insn. + (*call_insn): Rename to call_insn. + (*call_value_insn): Rename to call_value_insn. + * config/avr/avr.c (avr_2word_insn_p): New static function. + (jump_over_one_insn_p): Use it. + +2011-10-12 Richard Sandiford + + PR middle-end/48660 + * expr.h (copy_blkmode_to_reg): Declare. + * expr.c (copy_blkmode_to_reg): New function. + (expand_assignment): Don't expand register RESULT_DECLs before + the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a + RESULT_DECL register. + (expand_expr_real_1): Handle BLKmode decls when looking for promotion. + * stmt.c (expand_return): Move BLKmode-to-register code into + copy_blkmode_to_reg. + +2011-10-11 Eric Botcazou + + PR target/49965 + * config/sparc/sparc.md (movcc): Do not save comparison code. + (movcc): Likewise. + +2011-10-11 Bill Schmidt + + * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP. + +2011-10-11 Michael Meissner + + * tree.h (built_in_decls): Delete old interface with two parallel + arrays to hold standard builtin declarations, and replace it with + a function based interface that can support creating builtins on + the fly in the future. Change all uses, and poison the old + names. Make sure 0 is not a legitimate builtin index. + (implicit_built_in_decls): Ditto. + (built_in_info): Ditto. + (BUILTIN_VALID_P): Ditto. + (builtin_decl_explicit): Ditto. + (builtin_decl_implicit): Ditto. + (set_builtin_decl): Ditto. + (set_builtin_decl_implicit_p): Ditto. + (builtin_decl_explicit_p): Ditto. + (builtin_decl_implicit_p): Ditto. + * tree-complex.c (expand_complex_libcall): Ditto. + * tree-loop-distribution.c (generate_memset_zero): Ditto. + * tree-ssa-strlen.c (get_string_length): Ditto. + (handle_builtin_strcpy): Ditto. + (handle_builtin_strcat): Ditto. + * tree.c (iterative_hash_expr): Ditto. + (local_define_builtin): Ditto. + (build_common_builtin_nodes): Ditto. + * builtins.c (built_in_decls): Ditto. + (implicit_built_in_decls): Ditto. + (built_in_info): Ditto + (expand_builtin_classify_type): Ditto. + (mathfn_built_in_1): Ditto. + (expand_builtin_cexpi): Ditto. + (expand_builtin_mempcpy_args): Ditto. + (expand_builtin_stpcpy): Ditto. + (gimplify_va_arg_expr): Ditto. + (expand_builtin_sync_operation): Ditto. + (build_builtin_expect_predicate): Ditto. + (fold_builtin_memory_op): Ditto. + (fold_builtin_strcpy): Ditto. + (fold_builtin_stpcpy): Ditto. + (fold_builtin_strncpy): Ditto. + (fold_builtin_interclass_mathfn): Ditto. + (fold_builtin_classify): Ditto. + (fold_builtin_2): Ditto. + (fold_builtin_strstr): Ditto. + (fold_builtin_strrchr): Ditto. + (fold_builtin_strpbrk): Ditto. + (fold_builtin_strcat): Ditto. + (fold_builtin_strncat): Ditto. + (fold_builtin_strcspn): Ditto. + (fold_builtin_fputs): Ditto. + (fold_builtin_sprintf): Ditto. + (fold_builtin_snprintf): Ditto. + (expand_builtin_memory_chk): Ditto. + (fold_builtin_memory_chk): Ditto. + (fold_builtin_stxcpy_chk): Ditto. + (fold_builtin_strncpy_chk): Ditto. + (fold_builtin_strcat_chk): Ditto. + (fold_builtin_strncat_chk): Ditto. + (fold_builtin_sprintf_chk_1): Ditto. + (fold_builtin_snprintf_chk_1): Ditto. + (fold_builtin_printf): Ditto. + (fold_builtin_fprintf): Ditto. + (fold_call_stmt): Ditto. + (set_builtin_user_assembler_name): Ditto. + * tree-emutls.c (emutls_common_1): Ditto. + * omp-low.c (scan_omp): Ditto. + (lower_rec_input_clauses): Ditto. + (lower_reduction_clauses): Ditto. + (expand_parallel_call): Ditto. + (expand_task_call): Ditto. + (maybe_catch_exception): Ditto. + (optimize_omp_library_calls): Ditto. + (expand_omp_for_generic): Ditto. + (expand_omp_for_static_nochunk): Ditto. + (expand_omp_for_static_chunk): Ditto. + (expand_omp_sections): Ditto. + (expand_omp_atomic_fetch_op): Ditto. + (expand_omp_atomic_pipeline): Ditto. + (expand_omp_atomic_mutex): Ditto. + (lower_omp_single_simple): Ditto. + (lower_omp_single_copy): Ditto. + (lower_omp_master): Ditto. + (lower_omp_ordered): Ditto. + (lower_omp_critical): Ditto. + * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto. + * builtins.c (DEF_BUILTIN_STUB): Ditto. + (BUILT_IN_NONE): Ditto. + * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto. + * gimple-low.c (lower_function_body): Ditto. + (lower_builtin_setjmp): Ditto. + * c-decl.c (merge_decls): Ditto. + * tree-eh.c (lower_resx): Ditto. + (lower_resx): Ditto. + (lower_eh_dispatch): Ditto. + * function (gimplify_parameters): Ditto. + * c-typeck.c (build_function_call_vec): Ditto. + * gimplify.c (build_stack_save_restore): Ditto. + (gimplify_vla_decl): Ditto. + (gimplify_modify_expr_to_memcpy): Ditto. + (gimplify_modify_expr_to_memset): Ditto. + (gimplify_variable_sized_compare): Ditto. + (gimplify_function_tree): Ditto. + * calls.c (emit_call_1): Ditto. + * tree-ssa-forprop.c (simplify_builtin_call): Ditto. + * tree-nested.c (convert_nl_goto_reference): Ditto. + (convert_tramp_reference_op): Ditto. + (finalize_nesting_tree_1): Ditto. + * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. + (tree_ssa_prefetch_arrays): Ditto. + * tree-streamer-in.c (streamer_get_builtin_tree): Ditto. + * system.h (built_in_decls): Ditto. + (implicit_built_in_decls): Ditto. + * tree-vect-generic.c (expand_vector_operations_1): Ditto. + * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto. + * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. + (ix86_veclibabi_svml): Ditto. + (ix86_veclibabi_acml): Ditto. + * config/vms/vms.c (vms_patch_builtins): Ditto. + * config/ia64/ia64.c (ia64_init_builtins): Ditto. + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto. + (rs6000_builtin_vectorized_libmass): Ditto. + (rs6000_init_builtins): Ditto. + * config/darwin.c (darwin_override_options): Ditto. + (darwin_patch_builtin): Ditto. + (darwin_rename_builtins): Ditto. + * config/pa/pa.c (pa_init_builtins): Ditto. + +2011-10-11 Bill Schmidt + + * tree.h (copy_ref_info): Expose existing function. + * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to... + * tree-ssa-address.c (copy_ref_info): ...here, and remove static token. + +2011-10-11 Georg-Johann Lay + + * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New + prototype. + (avr_regno_mode_code_ok_for_base_p): New prototype. + * config/avr/avr.h (BASE_REG_CLASS): Remove. + (REGNO_OK_FOR_BASE_P): Remove. + (REG_OK_FOR_BASE_NOSTRICT_P): Remove. + (REG_OK_FOR_BASE_STRICT_P): Remove. + (MODE_CODE_BASE_REG_CLASS): New define. + (REGNO_MODE_CODE_OK_FOR_BASE_P): New define. + * config/avr/avr.c (avr_mode_code_base_reg_class): New function. + (avr_regno_mode_code_ok_for_base_p): New function. + (avr_reg_ok_for_addr_p): New static function. + (avr_legitimate_address_p): Use it. Beautify. + +2011-10-11 Georg-Johann Lay + + PR target/50447 + * config/avr/avr.md (cc): Add out_plus attribute alternative. + (addsi3): Use it. Adapt avr_out_plus to new prototype. Use + avr_out_plus for all CONST_INT addends. + * config/avr/avr-protos.h (avr_out_plus): Change prototype. + * config/avr/avr.c (notice_update_cc): Call avr_out_plus on + CC_OUT_PLUS. + (avr_out_plus_1): Change prototype and report effect on cc0. + (avr_out_plus): Ditto. + (adjust_insn_length): Adapt call to avr_out_plus to new prototype. + +2011-10-11 H.J. Lu + + * config/i386/i386.c (ix86_expand_special_args_builtin): Remove + the extra break. + +2011-10-11 Artjoms Sinkarovs + + * doc/invoke.texi: Document new warning. + * common.opt (Wvector-operation-performance): Define new warning. + * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded + vector operation. + (exapnd_vector_parallel): Warn about expanded vector operation. + (lower_vec_shuffle): Warn about expanded vector operation. + * c-typeck.c (c_build_vec_perm_expr): Store correct location + when creating VEC_PERM_EXPR. + +2011-10-11 Richard Guenther + + PR tree-optimization/50204 + * tree-ssa-alias.c (get_continuation_for_phi_1): Split out + two argument handling from ... + (get_continuation_for_phi): ... here. Handle arbitrary number + of PHI args. + +2011-10-11 Richard Sandiford + + * modulo-sched.c: Fix comment typo. Mention the possibility + of using scheduling windows of II+1 cycles. + +2011-10-11 Tristan Gingold + + * doc/invoke.texi (C Dialect Options): Document + -fallow-parameterless-variadic-functions. + * c-parser.c (c_parser_parms_list_declarator): Handle it. + +2011-10-10 Georg-Johann Lay + + * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer + to 0 if frame pointer is needed for unwinding. + +2011-10-10 Uros Bizjak + + PR bootstrap/50665 + * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm. Move from enum + optab_index to enum direct_optab_index. + (vec_perm_optab): Update. + +2011-10-10 Anatoly Sokolov + + * config/cris/cris.c (cris_preferred_reload_class): New function. + (TARGET_PREFERRED_RELOAD_CLASS): Define. + * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove. + +2011-10-10 Georg-Johann Lay + + * config/avr/avr.md (*tablejump_rjmp): Change insn condition to + !AVR_HAVE_JMP_CALL. + (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL. + (*tablejump_enh, *tablejump): Remove insns. + * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND + + EIJMP for indirect jump. Use LPM Z+ where available. + +2011-10-10 Richard Henderson + + * doc/md.texi (vec_perm_const): Fix typo in cindex. + +2011-10-10 Kirill Yukhin + Yakovlev Vladimir + + * config/i386/sse.md (fma_fnmsub_): Fix a typo. + +2011-10-10 Richard Guenther + + PR middle-end/50389 + * gimple-fold.c (gimplify_and_update_call_from_tree): Do not + mark symbols for renaming. Append the VUSE to all statements + that possibly can have one. + +2011-10-10 Richard Guenther + + * ipa-split.c (pass_split_functions): Add verification TODOs. + (pass_feedback_split_functions): Likewise. + +2011-10-10 Richard Guenther + + PR middle-end/50195 + * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2) + only when optimizing. + +2011-10-10 Nick Clifton + + PR middle-end/49801 + * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and + df_get_live_out instead of accessing the bitmaps directly. + (execute_compare_elim_after_reload): Remove calls to df_set_flags, + df_live_add_problem and df_analyze. + +2011-10-10 Michael Matz + + PR middle-end/50638 + * tree-emutls.c (gen_emutls_addr): Call add_referenced_var. + +2011-10-10 Richard Sandiford + + * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages. + (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete. + (node_sched_params): Remove first_reg_move and nreg_moves. + (ps_num_consecutive_stages, extend_node_sched_params): New functions. + (update_node_sched_params): Move up file. + (print_node_sched_params): Print the stage. Don't dump info related + to first_reg_move and nreg_moves. + (set_columns_for_row): New function. + (set_columns_for_ps): Move up file and use set_columns_for_row. + (schedule_reg_move): New function. + (schedule_reg_moves): Call extend_node_sched_params and + schedule_reg_move. Extend size of uses bitmap. Initialize + num_consecutive_stages. Return false if a move could not be + scheduled. + (apply_reg_moves): Don't emit moves here. + (permute_partial_schedule): Handle register moves. + (duplicate_insns_of_cycles): Remove for_prolog. Emit moves according + to the same stage-count test as ddg nodes. + (generate_prolog_epilog): Update calls accordingly. + (sms_schedule): Allow move-scheduling to add a new first stage. + +2011-10-10 Richard Sandiford + + * modulo-sched.c (ps_insn): Adjust comment. + (ps_reg_move_info): New structure. + (partial_schedule): Add reg_moves field. + (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params. + (node_sched_params): Turn first_reg_move into an identifier. + (ps_reg_move): New function. + (ps_rtl_insn): Cope with register moves. + (ps_first_note): Adjust comment and assert that the instruction + isn't a register move. + (node_sched_params): Replace with... + (node_sched_param_vec): ...this vector. + (set_node_sched_params): Adjust accordingly. + (print_node_sched_params): Take a partial schedule instead of a ddg. + Use ps_rtl_insn and ps_reg_move. + (generate_reg_moves): Rename to... + (schedule_reg_moves): ...this. Remove rescan parameter. Record each + move in the partial schedule, but don't emit it here. Don't perform + register substitutions here either. + (apply_reg_moves): New function. + (duplicate_insns_of_cycles): Use register indices directly, + rather than finding instructions using PREV_INSN. Use ps_reg_move. + (sms_schedule): Call schedule_reg_moves before committing to + a partial schedule. Try the next ii if the schedule fails. + Use apply_reg_moves instead of generate_reg_moves. Adjust + call to print_node_sched_params. Free node_sched_param_vec + instead of node_sched_params. + (create_partial_schedule): Initialize reg_moves. + (free_partial_schedule): Free reg_moves. + +2011-10-10 Richard Sandiford + + * modulo-sched.c (ps_insn): Replace node field with an identifier. + (SCHED_ASAP): Replace with.. + (NODE_ASAP): ...this macro. + (SCHED_PARAMS): New macro. + (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW) + (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS. + (node_sched_params): Remove asap. + (ps_rtl_insn, ps_first_note): New functions. + (set_node_sched_params): Use XCNEWVEC. Don't copy across the + asap values. + (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP. + (generate_reg_moves): Pass ids to the SCHED_* macros. + (update_node_sched_params): Take a ps insn identifier rather than + a node as parameter. Use ps_rtl_insn. + (set_columns_for_ps): Update for above field and SCHED_* macro changes. + (permute_partial_schedule): Use ps_rtl_insn and ps_first_note. + (optimize_sc): Update for above field and SCHED_* macro changes. + Update calls to try_scheduling_node_in_cycle and + update_node_sched_params. + (duplicate_insns_of_cycles): Adjust for above field and SCHED_* + macro changes. Use ps_rtl_insn and ps_first_note. + (sms_schedule): Pass ids to the SCHED_* macros. + (get_sched_window): Adjust for above field and SCHED_* macro changes. + Use NODE_ASAP instead of SCHED_ASAP. + (try_scheduling_node_in_cycle): Remove node parameter. Update + call to ps_add_node_check_conflicts. Pass ids to the SCHED_* macros. + (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle. + (ps_insert_empty_row): Adjust for above field changes. + (compute_split_row): Use ids rather than nodes. + (verify_partial_schedule): Adjust for above field changes. + (print_partial_schedule): Use ps_rtl_insn. + (create_ps_insn): Take an id rather than a node. + (ps_insn_find_column): Adjust for above field changes. + Use ps_rtl_insn. + (ps_insn_advance_column): Adjust for above field changes. + (add_node_to_ps): Remove node parameter. Update call to + create_ps_insn. + (ps_has_conflicts): Use ps_rtl_insn. + (ps_add_node_check_conflicts): Replace node parameter than an id. + +2011-10-10 Richard Sandiford + + * modulo-sched.c (undo_replace_buff_elem): Delete. + (generate_reg_moves): Don't build and return an undo list. + (free_undo_replace_buff): Delete. + (sms_schedule): Adjust call to generate_reg_moves. + Don't call free_undo_replace_buff. + +2011-10-10 Matthias Klose + + * common/config/m32c: Remove empty directory. + +2011-10-10 Georg-Johann Lay + + * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter. + +2011-10-10 Georg-Johann Lay + + PR target/50652 + * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of + atmega164a to 0x100. + +2011-10-09 Eric Botcazou + + * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make + the replacement if the conversion to the LHS type is not useless. + +2011-10-09 Ira Rosen + + PR tree-optimization/50635 + * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add + DEF_STMT to the list of statements to be replaced by the + pattern statements. + (vect_handle_widen_mult_by_const): Don't check TYPE_OUT. + +2011-10-09 Anatoly Sokolov + + * system.h: Commit forgotten hunk in previous patch. + (OUTPUT_ADDR_CONST_EXTRA): Poison. + +2011-10-08 Nicola Pero + + PR libobjc/50428 + * doc/objc.texi (Garbage Collection): Updated example to protect + +initialize against execution in subclasses. + +2011-10-07 Richard Henderson + + * doc/extend.texi (__builtin_shuffle): Improve the description to + include the modulus of the selector. Mention OpenCL. + * doc/md.texi (vec_perm, vec_perm_const): Document named patterns. + + * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR. + * genopinit.c (optabs): Rename vshuffle to vec_perm. + * c-typeck.c (c_build_vec_perm_expr): Rename from + c_build_vec_shuffle_expr. Update for name changes. + * optabs.c (expand_vec_perm_expr_p): Rename from + expand_vec_shuffle_expr_p. + (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr. + * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle. + (vec_perm_optab): Rename from vshuffle_optab. + * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c, + c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c, + tree-ssa-operands.c, tree-vect-generic.c: Update for name changes. + + * config/i386/i386.c (ix86_expand_vec_perm): Rename from + ix86_expand_vshuffle. + * config/i386/i386-protos.h: Update. + * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2. + (vec_perm): Rename from vshuffle. + +2011-10-07 Richard Henderson + + * config/i386/predicates.md (avx2_pblendw_operand): New. + * config/i386/sse.md (sse4_1_pblendw): Un-macroize. + (avx2_pblendw, *avx2_pblendw): New expander and insn. + +2011-10-07 Richard Henderson + + * config/i386/i386.c (bdesc_args): Update code for + __builtin_ia32_palignr256. Change type of __builtin_ia32_pslldqi256, + and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT. + (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT. + * config/i386/sse.md (mode iterator V16): Add V2TI. + (mode iterator SSESCALARMODE): Use V2TI not V4DI. + (mode attr ssse3_avx2): Add V2TI. + (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove. + +2011-10-07 David S. Miller + + PR 50655 + * configure.ac: Add .register directives to VIS3 test. + * configure: Regenerate. + +2011-10-07 Richard Henderson + + * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu. + +2011-10-07 Richard Henderson + + PR 49752 + * fold-const.c (fold_checksum_tree): Remove out-of-date assert. + +2011-10-07 Andrew Stubbs + + * config/arm/predicates.md (shift_amount_operand): Remove constant + range check. + (shift_operator): Check range of constants for all shift operators. + +2011-10-07 Andreas Krebbel + + * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion. + Load GOT pointer for non-pic builds. + (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12. + (s390_emit_call): Likewise. + +2011-10-07 Tom de Vries + + PR middle-end/50527 + * tree.c (build_common_builtin_nodes): Add local_define_builtin for + BUILT_IN_ALLOCA_WITH_ALIGN. Mark that BUILT_IN_ALLOCA_WITH_ALIGN can + throw. + * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN + arglist. Set align for BUILT_IN_ALLOCA_WITH_ALIGN. + (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN. + (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN. + * tree-ssa-ccp.c (evaluate_stmt): Set align for + BUILT_IN_ALLOCA_WITH_ALIGN. + (fold_builtin_alloca_for_var): Rename to ... + (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd + BUILT_IN_ALLOCA_WITH_ALIGN argument. + (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using + fold_builtin_alloca_with_align. + (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN. + * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using + DEF_BUILTIN_STUB. + * ipa-pure-const.c (special_builtin_state): Handle + BUILT_IN_ALLOCA_WITH_ALIGN. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1) + (call_may_clobber_ref_p_1): Same. + * function.c (gimplify_parameters): Lower vla to + BUILT_IN_ALLOCA_WITH_ALIGN. + * gimplify.c (gimplify_vla_decl): Same. + * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN. + * tree-mudflap.c (mf_xform_statements): Same. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) + (mark_all_reaching_defs_necessary_1, propagate_necessity): Same. + * varasm.c (incorporeal_function_p): Same. + * tree-object-size.c (alloc_object_size): Same. + * gimple.c (gimple_build_call_from_tree): Same. + +2011-10-07 Bernd Schmidt + + * function.c (frame_required_for_rtx): Remove function. + (requires_stack_frame_p): New arg set_up_by_prologue. All callers + changed. Compute a set of mentioned registers and compare against + the new arg rather than calling frame_required_for_rtx. + (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue + reg set. Convert the unconverted_simple_returns mechanism to store + jump insns rather than their basic blocks. Also check the + orig_entry_edge destination for new blocks. + +2011-10-07 Jakub Jelinek + + PR tree-optimization/50650 + * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't + call vect_is_simple_cond here, instead fail if cond_expr isn't + COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL + for cond_expr's first operand. + * tree-vect-stmts.c (vect_is_simple_cond): Static again. + * tree-vectorizer.h (vect_is_simple_cond): Remove prototype. + +2011-10-07 Andreas Krebbel + + * config/s390/s390.md (DWH, dwh): New mode macros. + ("umulsidi3"): Extend to support "umulditi3" as well. + +2011-10-07 Uros Bizjak + H.J. Lu + + PR target/50603 + * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of + integer PLUS RTX to a register to improve address combine. + +2011-10-06 Richard Henderson + + * combine-stack-adjust.c (maybe_move_args_size_note): Add after + parameter; use it to decide whether to merge two notes. + (combine_stack_adjustments_for_block): Use maybe_move_args_size_note + for the deallocation case as well. + +2011-10-06 Anatoly Sokolov + + * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison. + * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation. + * doc/tm.texi: Regenerate. + * target.def (output_addr_const_extra): Use + hook_bool_FILEptr_rtx_false. + * targhooks.c (default_asm_output_addr_const_extra): Remove. + * targhooks.h (default_asm_output_addr_const_extra): Remove. + * hooks.c (hook_bool_FILEptr_rtx_false): New functions. + * hooks.h (hook_bool_FILEptr_rtx_false): Declare. + +2011-10-06 David S. Miller + + * config/sparc/sparc.md (popcount2, clz2): Split up into... + (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the + SI mode 64-bit code gen case explicitly zero-extend and truncate. + (*popcount_sp64): Split up into... + (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the + SImode case use truncate. + (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the + subtract so the compiler can optimize it. + (SIDI): Remove unused mode iterator. + +2011-10-06 Bernd Schmidt + + * function.c (thread_prologue_and_epilogue_insns): Emit split prologue + on the orig_entry_edge. Don't account for it in prologue_clobbered. + +2011-10-06 Jakub Jelinek + + PR tree-optimization/50596 + * tree-vectorizer.h (vect_is_simple_cond): New prototype. + (NUM_PATTERNS): Change to 6. + * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New + function. + (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern. + (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt + if it already has one, and don't set STMT_VINFO_VECTYPE in it + if it is already set. + * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle + COND_EXPR in pattern stmts. + (vect_is_simple_cond): No longer static. + +2001-10-06 Richard Henderson + + * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support. + * config/i386/sse.md (sseshuffint): Remove. + (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI. + (VSHUFFLE_AVX2): New mode iterator. + (vshuffle): Use it. + (avx_vec_concat): Rename from *vec_concat_avx. + + * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode + for vector_all_ones_operand. + (ix86_expand_int_vcond): Distinguish between comparison mode + and data mode. Allow them to differ. + (ix86_expand_vshuffle): Don't force data mode to match maskmode. + +2001-10-06 Richard Henderson + + * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the + mask operand. Tidy the code. + +2011-10-06 Jakub Jelinek + + * tree-vect-patterns.c (vect_pattern_recog_1): Use + vect_recog_func_ptr typedef for the first argument. + (vect_pattern_recog): Rename vect_recog_func_ptr variable + to vect_recog_func, use vect_recog_func_ptr typedef for it. + + PR tree-optimization/49279 + * tree-ssa-structalias.c (find_func_aliases): Don't handle + CAST_RESTRICT. + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow + restrict propagation. + * tree-ssa.c (useless_type_conversion_p): Don't return false + if TYPE_RESTRICT differs. + +2011-10-06 Bernd Schmidt + + * function.c (thread_prologue_and_epilogue_insns): Build a vector + of unconverted simple return blocks rather than trying to + recompute them later based on bb_flags bitmap tests. + +2011-10-06 Michael Matz + + * tree-flow.h (get_var_ann): Don't declare. + * tree-flow-inline.h (get_var_ann): Remove. + (set_is_used): Use var_ann, not get_var_ann. + * tree-dfa.c (add_referenced_var): Inline body of get_var_ann. + * tree-profile.c (gimple_gen_edge_profiler): Call + find_referenced_var_in. + (gimple_gen_interval_profiler): Ditto. + (gimple_gen_pow2_profiler): Ditto. + (gimple_gen_one_value_profiler): Ditto. + (gimple_gen_average_profiler): Ditto. + (gimple_gen_ior_profiler): Ditto. + (gimple_gen_ic_profiler): Ditto plus call add_referenced_var. + (gimple_gen_ic_func_profiler): Call add_referenced_var. + * tree-mudflap.c (execute_mudflap_function_ops): Call + add_referenced_var. + +2011-10-06 Jakub Jelinek + + * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs + don't set SSA_NAME_DEF_STMT that has been already set by + gimple_build_assign_with_ops. + (vect_recog_pow_pattern, vect_recog_widen_sum_pattern, + vect_operation_fits_smaller_type, vect_recog_over_widening_pattern): + Likewise. + + * tree.h (avoid_folding_inline_builtin): New prototype. + * builtins.c (avoid_folding_inline_builtin): No longer static. + * gimple-fold.c (gimple_fold_builtin): Give up if + avoid_folding_inline_builtin returns true. + +2011-10-06 Richard Guenther + + * tree-vect-generic.c (vector_element): Look at previous + generated results. + +2011-10-06 David Edelsohn + + PR target/39950 + * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define + __powerpc__, __PPC__, __unix__. + +2011-10-06 Michael Matz + + * i386/i386.opt (recip_mask, recip_mask_explicit, + x_recip_mask_explicit): New variables and cl_target member. + (mrecip=): New option. + * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV, + RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks. + (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV, + TARGET_RECIP_VEC_SQRT): New tests. + * i386/i386.md (divsf3): Check TARGET_RECIP_DIV. + (sqrt2): Check TARGET_RECIP_SQRT. + * i386/sse.md (div3): Check TARGET_RECIP_VEC_DIV. + (sqrt2): Check TARGET_RECIP_VEC_SQRT. + * i386/i386.c (ix86_option_override_internal): Set recip_mask + for -mrecip and -mrecip=options. + (ix86_function_specific_save): Save recip_mask_explicit. + (ix86_function_specific_restore): Restore recip_mask_explicit. + + * doc/invoke.texi (ix86 Options): Document the new option. + +2011-10-06 Bernd Schmidt + + PR target/49049 + * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. + +2011-10-06 Ulrich Weigand + + PR target/50305 + * config/arm/arm.c (arm_legitimize_reload_address): Recognize + output of a previous pass through legitimize_reload_address. + Do not attempt to optimize addresses if the base register is + equivalent to a constant. + +2011-10-06 Andreas Krebbel + + * function.c (thread_prologue_and_epilogue_insns): Mark + last_bb_active as possibly unused. It is unused for targets which + do neither have "return" nor "simple_return" expanders. + +2011-10-06 Richard Guenther + + * fold-const.c (fold_ternary_loc): Also fold non-constant + vector CONSTRUCTORs. Make more efficient. + * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands. + (cprop_into_stmt): Don't propagate into virtual operands. + (optimize_stmt): Really dump original statement. + +2011-10-06 Nick Clifton + + * config/rx/rx.md (smin3): Revert previous delta. + +2011-10-06 Richard Guenther + + PR tree-optimization/38884 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial + reads from aggregate SSA names. + +2011-10-05 Jakub Jelinek + + * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace + argument, truncate it at the beginning instead of allocating there + and freeing at the end. + (vect_pattern_recog): Allocate stmts_to_replace here and free at end, + pass its address to vect_pattern_recog_1. + +2011-10-05 David S. Miller + + * config/sparc/sparc.opt (POPC): New option. + * doc/invoke.texi: Document it. + * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by + default on Niagara-2 and later. + * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. + * config/sparc/sparc.md (SIDI): New mode iterator. + (ffsdi2): Delete commented out pattern and comments. + (popcount2, clz2): New expanders. + (*popcount_sp64, popcountsi_v8plus, popcountdi_v8plus, + *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns. + +2011-10-06 Artjoms Sinkarovs + + PR middle-end/50607 + * c-tree.h (c_expr_t): New typedef for struct c_expr. + (C_EXPR_APPEND): New macro. + * c-parser.c (c_parser_get_builtin_args): Preserve + original_tree_code of c_expr structure. + (c_parser_postfix_expression): Adjust to the new function. + +2011-10-05 Bernd Schmidt + + * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap + if profiling after the prologue. + +2011-10-05 Jakub Jelinek + + PR tree-optimization/50613 + * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT + operand is ADDR_EXPR, fallthru into ADDR_EXPR handling, + and if it is neither that not SSA_NAME, give up. + +2011-10-05 Richard Henderson + + * tree-vect-generic.c (vector_element): Never fail. Use + build_zero_cst. Tidy up type references. + (lower_vec_shuffle): Never fail. Mask shuffle indicies. Reduce + code duplication. Do update_stmt here ... + (expand_vector_operations_1): ... not here. + + * config/i386/i386.c (ix86_expand_vshuffle): Never fail. Handle + TARGET_XOP. Fix pshufb constant vector creation. Reduce code + duplication. Handle V2DI without SSE4.1. + * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl. + * config/i386/i386.md (vshuffle): Remove assert for ok. + +2011-10-05 Uros Bizjak + + * config/i386/i386.c (distance_non_agu_define): Simplify calculation + of "found". Simplify return value calculation. + (distance_agu_use): Ditto. + +2011-10-05 Bernd Schmidt + + PR bootstrap/50621 + * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only + if the function was not shrink-wrapped. + (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached + to an insn. + * function.c (thread_prologue_and_epilogue_insns): Make sure the + shrink_wrapped flag is set even if there is no dump file. + +2011-10-05 DJ Delorie + Nick Clifton + + * config/rx/rx.opt (mpid): Define. + * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid + (MULTILIB_DIRNAMES): Add pid. + * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val) + (rx_num_interrupt_regs): New variable. + (rx_gp_base_regnum): New function. Returns the number of the + small data area register. + (rx_pid_base_regnum): New function. Returns the number of the pid + base register. + (rx_decl_for_addr): New function. Returns the symbolic part of a MEM. + (rx_pid_data_operand): New function. Returns whether an object is + in the position independent data area. + (rx_legitimize_address): New function. Puts undecided PID + objects in the PID data area. + (rx_is_legitimate_address): Add support for PID operands. + (rx_print_operand_address): Likewise. + (rx_print_operand): Likewise. + (rx_maybe_pidify_operand): New function. Determine if an operand + is suitable for PID addressing. + (rx_gen_move_template): Add PID support. + (rx_conditional_register_usage): Likewise. + (rx_option_override): Initialise rx_num_interrupt_regs. + (rx_is_legitimate_constant): Add support for PID constants. + (TARGET_LEGITIMIZE_ADDRESS): Define. + * config/rx/constraints.md (Rpid): Define. + (Rpda): Define. + * config/rx/rx.md (UNSPEC_PID_ADDR): Define. + (tablejump): Add PID support. + (mov<>): Likewise. + (mov<>_internal): Likewise. + (addsi3): Convert to an expander. Add PID support. + (pid_addr): New pattern. + * config/rx/rx.h (CPP_SPEC): Define. + (ASM_SPEC): Pass -mpid and -mint-register on to assembler. + (CASE_VECTOR_PC_RELATIVE): Define. + (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode. + * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype. + * doc/invoke.texi (RX Options): Document -mpid command line option. + +2011-10-05 Richard Guenther + + PR tree-optimization/38885 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads + from constants. + +2011-10-05 Bernd Schmidt + + * doc/invoke.texi (-fshrink-wrap): Document. + * opts.c (default_options_table): Add it. + * common.opt (fshrink-wrap): Add. + * function.c (emit_return_into_block): Remove useless declaration. + (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx, + requires_stack_frame_p, gen_return_pattern): New static functions. + (emit_return_into_block): New arg simple_p. All callers changed. + Use gen_return_pattern. + (thread_prologue_and_epilogue_insns): Implement shrink-wrapping. + * config/i386/i386.md (return): Expand into a simple_return. + (simple_return): New expander): + (simple_return_internal, simple_return_internal_long, + simple_return_pop_internal_long, simple_return_indirect_internal): + Renamed from return_internal, return_internal_long, + return_pop_internal_long and return_indirect_internal; changed to use + simple_return. + * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand + simple returns. + (ix86_pad_returns): Likewise. + * function.h (struct rtl_data): Add member shrink_wrapped. + * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that + are not jumps or sibcalls can't be compared. + +2011-10-05 Richard Guenther + + * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of + vector type. + (simplify_unary_expression): Handle BIT_FIELD_REFs. + (try_to_simplify): Handle BIT_FIELD_REFs. + +2011-10-05 Georg-Johann Lay + + * config/avr/avr-protos.h (avr_out_addto_sp): New prototype. + * config/avr/avr.c (avr_out_addto_sp): New function. + (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP. + * config/avr/avr.md (adjust_len): Add "addto_sp". + (*movhi_sp): Remove insn. + (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R. + +2011-10-05 Richard Guenther + + * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops + with an embedded expression valueize and fold that as well. + * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name + results from gimple_fold_stmt_to_constant_1. + +2011-10-05 Nick Clifton + + * config/rx/rx.md (tablejump): Add missing label. + (adddi3_internal): Mark operand 0 as early-clobbered. + (smaxsi3): Revert previous delta. + (adc_internal): Fix whitespace in generated asm. + (adc_flags): Likewise. + +2011-10-05 Andreas Krebbel + + * expmed.c (expand_mult_highpart_optab): Replace optab_handler + with the new widening_optab_handler. + +2011-10-05 Richard Guenther + + PR tree-optimization/50609 + * gimple-fold.c (fold_array_ctor_reference): Also handle + vector typed constructors. + (fold_ctor_reference): Dispatch to fold_array_ctor_reference + for vector typed constructors. + +2011-10-05 Uros Bizjak + + * config/i386/i386.c (ix86_emit_binop): New static function. + (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl + instructions. + (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions. + +2011-10-04 David S. Miller + + * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB, + UNSPEC_XMUL): New unspecs. + (muldi3_v8plus): Use output_v8plus_mult. + (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend): + New VIS 3.0 combiner patterns. + (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis, + fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64, + umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus, + xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0 + builtins patterns. + * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins. + (output_v8plus_mult): New function. + * config/sparc/sparc-protos.h: Declare it. + * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd, + __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd, + __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics. + * doc/extend.texi: Document new builtins. + +2011-10-04 Richard Henderson + + * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable. + Avoid save_expr unless two_arguments. + +2011-10-04 Ozkan Sezer + + * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT. + * config/i386/mingw32.h (CPP_SPEC): Likewise. + +2011-10-04 David S. Miller + + * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc + under Linux. + +2011-10-04 Jakub Jelinek + + PR tree-optimization/50604 + * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy, + fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure + last argument to memcpy has size_type_node type instead of ssizetype. + * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node + instead of TREE_TYPE (len) as type for newlen. + + PR tree-optimization/50522 + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test + TYPE_RESTRICT. + (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base + unconditionally. + + * fold-const.c (fold_unary_loc): Don't optimize + POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by + casting the inner pointer if it isn't TYPE_RESTRICT. + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through + casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer. + +2011-10-04 Joseph Myers + + * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff. + +2011-10-04 Jan Hubicka + + * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter. + * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order. + * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order. + * lto-cgraph.c (order_base): New static var. + (lto_output_node): Stream in order. + (lto_output_varpool_node): Stream out order. + (input_node): Stream in order. + (input_varpool_node): Stream out order. + (input_cgraph_1): Initialize order base; update call of + lto_input_toplevel_asms. + +2011-10-04 Georg-Johann Lay + + PR target/50566 + * config/avr/avr-protos.h (avr_legitimize_reload_address): New + prototype. + * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code + from here... + * config/avr/avr.c (avr_legitimize_reload_address) ...to this new + function. Log if avr_log.legitimize_reload_address. + +2011-10-04 Eric Botcazou + + * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests. + +2011-10-04 Andreas Krebbel + + * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local + variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd. + +2011-10-03 David S. Miller + + * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make + GSR_REG an input operand to UNSPEC instead of a parallel USE. + (faligndata_vis): Likewise and use DI mode. + (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis): + Reference GSR_REG in DI mode, simplify convoluted expressions by using + zero_extract. + (bshuffle_vis): Reference GSR_REG in DI mode. + +2011-10-03 Maxim Kuvyrkov + + * tree-eh.c (remove_unreachable_handlers): Obvious cleanup. + +2011-10-03 Jakub Jelinek + Ian Lance Taylor + + * godump.c (go_output_typedef): Support printing enum values that + don't fit in a signed HOST_WIDE_INT. + +2011-10-03 Anatoly Sokolov + + * config/cris/cris.c (cris_output_addr_const_extra): Make static. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove. + +2011-10-03 Anatoly Sokolov + + * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove. + +2011-10-03 Steve Ellcey + + PR target/49967 + * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*. + (gcc_cv_ld_static_option): Ditto. + (gcc_cv_ld_dynamic_option): Ditto. + * configure: Regenerate. + +2011-10-03 David S. Miller + + * config/sparc/sparc.md (bmask_vis): Split into explicit 'di' + and 'si' patterns which describe the GSR changes explicitly in the + RTL using zero_extract. + (bshuffle_vis): Put the GSR use inside of the unspec. + + * config/sparc/sparc.md (bshuffle_vis): Don't wrap + GSR_REG in a USE, since it's now a true arg to the UNSPEC. + +2011-10-03 Artjoms Sinkarovs + + * optabs.c (expand_vec_shuffle_expr_p): New function. Checks + if given expression can be expanded by the target. + (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR + using target vector instructions. + * optabs.h: New optab vshuffle. + (expand_vec_shuffle_expr_p): New prototype. + (expand_vec_shuffle_expr): New prototype. + (vshuffle_optab): New optab. + * genopinit.c: Adjust to support vecshuffle. + * c-tree.h (c_build_vec_shuffle_expr): New prototype. + * expr.c (expand_expr_real_2): Adjust. + * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR + recognizing the cases of two and three arguments. + (convert_arguments) (build_binary_op) + (scalar_to_vector) (build_array_ref): Spurious whitespace. + * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR. + * tree.def: New tree code VEC_SHUFFLE_EXPR. + * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR. + * tree-vect-generic.c (vector_element): New function. Returns an + element of the vector at the given position. + (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported + by the backend or expand an expression piecewise. + (expand_vector_operations_1): Adjusted. + (gate_expand_vector_operations_noop): New gate function. + * Makefile.in (tree-vect-generic.o): New include. + * gimple.c (get_gimple_rhs_num_ops): Adjust. + * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR. + * passes.c: Move veclower down. + * tree-pretty-print.c (dump_generic_node): Recognize + VEC_SHUFFLE_EXPR as valid expression. + * c-parser.c (c_parser_get_builtin_args): Helper function for the + builtins with variable number of arguments. + (c_parser_postfix_expression): Use a new helper function for + RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE. + * tree-ssa-operands: Adjust. + * c-family/c-common.c: New __builtin_shuffle keyword. + * c-family/c-common.h: New __builtin_shuffle keyword. + * gcc/doc/extend.texi: Adjust. + + * gcc/config/i386/sse.md: (sseshuffint) New mode_attr. Correspondence + between the vector and the type of the mask when shuffling. + (vecshuffle): New expansion. + * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype. + * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function. + (ix86_vectorize_builtin_vec_perm_ok): Adjust. + +2011-10-03 Jakub Jelinek + + PR tree-optimization/50587 + * tree-ssa-reassoc.c (init_range_entry): Stop iterating when + arg0 is not a SSA_NAME. + +2011-10-03 Richard Sandiford + + * ipa-inline-analysis.c (MAX_TIME): Update comment. + +2011-10-02 Richard Henderson + David S. Miller + + * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove + conditional insn type setting, we always emit a shift. + (*ashlsi3_extend, *lshrsi3_extend0): New patterns. + (*lshrsi3_extend): Rename to *lshrsi3_extend1. + * config/sparc/predicates.md (const_one_operand): Delete. + +2011-10-02 Gerald Pfeifer + + * invoke.texi (SPARC Options): Refer to GNU/Linux. + +2011-10-02 Richard Sandiford + + * config/mips/mips.c (mips_frame_barrier): New function. + (mips_expand_prologue): Call it after allocating stack space. + (mips_deallocate_stack): New function. + (mips_expand_epilogue): Call mips_frame_barrier and + mips_deallocate_stack. + +2011-10-02 Richard Sandiford + + PR target/49696 + * config/mips/sync.md (sync__12): Allow zero operands. + (sync_old__12, sync_new__12, sync_nand_12): Likewise. + (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise. + +2011-10-02 Jan Hubicka + + * cgraphunit.c (verify_edge_count_and_frequency): Bounds check. + + * cgraphunit.c (ipa_passes): Remove unrechable nodes. + * lto-streamer-out.c (produce_symtab): Skip unused extern declarations. + * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external + functions are reachable when address is taken. + * tree-sra.c (modify_function): Free dominance info. + +2011-10-02 Jan Hubicka + + * ipa-inline-analysis.c (inline_summary_alloc): Bounds check. + + * ipa-inline-analysis.c (reset_inline_edge_summary): New function. + (reset_inline_summary): New function. + (compute_inline_parameters, inline_node_removal_hook, + inline_edge_removal_hook): Use it. + (inline_free_summary): Reset holders correctly. + (inline_generate_summary): Free summary before computing it. + +2011-10-02 Paolo Carlini + + PR preprocessor/36819 + * incpath.c (merge_include_chains): Call free_path on + heads[QUOTE] and tails[QUOTE]. + +2011-10-02 Jan Hubicka + + PR lto/47247 + * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve + when resolution is already availbale from plugin. + (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP. + * cgraph.c (ld_plugin_symbol_resolution): Add + prevailing_def_ironly_exp. + * lto-cgraph.c (LDPR_NUM_KNOWN): Update. + * ipa.c (varpool_externally_visible_p): IRONLY variables are never + externally visible. + * varasm.c (resolution_to_local_definition_p): Add + LDPR_PREVAILING_DEF_IRONLY_EXP. + (resolution_local_p): Likewise. + +2011-10-01 David S. Miller + + * config/sparc/sparc.opt (VIS3): New option. + * doc/invoke.texi: Document it. + * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is + not capable of such instructions. + * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ + to 0x300 when TARGET_VIS3. + * config/sparc/sparc-modes.def: Create 16-byte vector modes. + * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32, + UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs. + (V64N8, VASS): New mode iterators. + (vis3_shift, vis3_addsub_ss): New code iterators. + (vbits, vconstr): New mode attributes. + (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes. + (cmask8_vis, cmask16_vis, cmask32_vis, + fchksm16_vis, _vis, pdistn_vis, + fmean16_vis, fpadd64_vis, fpsub64_vis, + _vis, fucmp8_vis): New + VIS 3.0 instruction patterns. + * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by + default when targetting capable cpus. TARGET_VIS3 implies + TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled. + (sparc_vis_init_builtins): Emit new VIS 3.0 builtins. + (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result + is ignored. + * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16, + __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16, + __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32, + __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16, + __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s, + __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s, + __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8, + __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces. + * doc/extend.texi: Document new VIS 3.0 builtins. + +2011-10-01 Eric Botcazou + + * ira-color.c (assign_hard_reg): Fix typo. + +2011-09-30 H.J. Lu + + * doc/extend.texi: Add missing ','. + +2011-09-30 Bernd Schmidt + + * common/config/c6x/c6x-common.c (c6x_option_optimization_table): + Enable -fmodulo-sched at -O2 and above. + * config/c6x/c6x.md (doloop_end): New expander. + (mvilc, sploop, spkernel, loop_end): New patterns. + (loop_end with memory destination splitter): New. + * config/c6x/c6x.c: Include "hw-doloop.h". + (enum unitreqs): New. + (unit_req_table): New typedef. + (unit_reqs): New static variable. + (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs, + res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch, + hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above, + hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions. + (struct c6x_sched_context): New member last_scheduled_iter0. + (init_sched_state): Initialize it. + (c6x_variable_issue): Update it. + (sploop_max_uid_iter0): New static variable. + (c6x_sched_reorder_1): Be careful about issuing sploop. + (c6x_reorg): Call c6x_hwlooops before the final schedule. + +2011-09-30 Georg-Johann Lay + + PR target/50566 + * config/avr/avr-protos.h (avr_log_t): New field address_cost. + * config/avr/avr.c (avr_address_cost): Use it. + * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it. + (avr_log_vadump): Unknown %-codes finish printing. + +2011-09-30 Jakub Jelinek + + PR inline-asm/50571 + * gimple-fold.c (fold_stmt_1) : If + input constraints allow mem and not reg, pass true instead of + false as second argument to maybe_fold_reference. + + PR tree-optimization/46309 + * fold-const.c (make_range, merge_ranges): Remove prototypes. + (make_range_step): New function. + (make_range): Use it. + * tree.h (make_range_step): New prototypes. + * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H). + * tree-ssa-reassoc.c: Include diagnostic-core.h. + (struct range_entry): New type. + (init_range_entry, range_entry_cmp, update_range_test, + optimize_range_tests): New functions. + (reassociate_bb): Call optimize_range_tests. + +2011-09-30 Jakub Jelinek + Richard Guenther + + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle + BUILT_IN_STRDUP and BUILT_IN_STRNDUP. + * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix + handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK. + (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT, + BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK. + +2011-09-30 Jan Beulich + + * lto-cgraph.c (output_cgraph): Remove processing of + 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead. + (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call + lto_input_toplevel_asms() instead. + * lto-section-in.c (lto_section_name): Add "asm" entry. + * lto-streamer-in.c (lto_input_toplevel_asms): New. + * lto-streamer-out.c (lto_output_toplevel_asms): New. + * lto-streamer.h (LTO_minor_version): Bump. + (enum lto_section_type): Add LTO_section_asm. + (struct lto_asm_header): New. + (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare. + * tree-streamer.h (streamer_write_string_cst): Declare. + * tree-streamer-out.c (write_string_cst): Rename to + streamer_write_string_cst and make global. Handle incoming string + being NULL. + (streamer_write_tree_header): Adjust call to renamed function. + +2011-09-30 Bernd Schmidt + + * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns, + modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left, + modulo_last_stage): New static variables. + (set_modulo_params, discard_delay_pairs_above): New functions. + (struct delay_pair): New member stages. + (htab_i2_traverse, htab_i1_traverse): New static functions. + (record_delay_slot_pair): New arg stages. All callers changed. + Record it. + (pair_delay): Take stages into account. + (add_delay_dependencies): Don't do so for stage pairs. + (struct sched_block_state): New member modulo_epilogue. + (save_backtrack_point): Don't set SHADOW_P for stage pairs. + (unschedule_insns_until): Decrease modulo_insns_scheduled. + Set HARD_DEP without using or. + (resolve_dependencies): New static function. + (prune_ready_list): New arg modulo_epilogue_p. All callers changed. + If it is true, allow only insns with INSN_EXACT_TICK set. + (schedule_block): Return bool, always true for normal scheduling, + true or false depending on modulo scheduling success otherwise. + Add bookkeeping for modulo scheduling, and call resolve_dependencies + on everything left over after a modulo schedule. + (haifa_sched_init): Remove check_cfg call. Clear modulo_ii. + * sched-int.h (schedule_block, record_delay_slot_pair): Adjust + declarations. + (set_modulo_params, discard_delay_pairs_above): Declare. + * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New. + * doc/invoke.texi (--param): Document it. + + * sched-ebb.c (schedule_ebb): No longer static. Remove declaration. + New arg modulo_scheduling. All callers changed. Move note handling + code here from schedule_ebbs. + (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken + out of schedule_ebbs. + (schedule_ebbs): Call them. Remove note handling code moved to + schedule_ebb. + * sched-int.h (schedule_ebb, schedule_ebbs_init, + schedule_ebbs_finish): Declare. + +2011-09-30 Richard Guenther + + PR middle-end/50574 + * tree-cfg.c (verify_gimple_comparison): Compare component + mode sizes for vector comparisons. + +2011-09-30 Revital Eres + + * ddg.c (autoinc_var_is_used_p): New function. + (create_ddg_dep_from_intra_loop_link, + add_cross_iteration_register_deps): Call it. + * ddg.h (autoinc_var_is_used_p): Declare. + * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p. + (sms_schedule): Handle instructions with REG_INC. + +2011-09-30 Revital Eres + + * modulo-sched.c (generate_reg_moves): Skip instructions that + do not set a register and verify no regmoves are created for + !single_set instructions. + +2011-09-30 Bernd Schmidt + + * hw-doloop.c (scan_loop): Compute register usage only for non-debug + insns. + +2011-09-30 Ramana Radhakrishnan + + PR target/50099 + * config/arm/iterators.md (qhs_zextenddi_cstr): New. + (qhs_zextenddi_op): New. + * config/arm/arm.md ("zero_extenddi2"): Use them. + * config/arm/predicates.md ("arm_extendqisi_mem_op"): + Distinguish between ARM and Thumb2 states. + +2011-09-30 David S. Miller + + * config/sparc/sparc.opt (VIS2): New option. + * doc/invoke.texi: Document it. + * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN, + UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N, + UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs. + (define_attr type): New insn type 'edgen'. + (bmask_vis, bshuffle_vis, edge8n_vis, + edge8ln_vis, edge16n_vis, edge16ln_vis, + edge32n_vis, edge32ln_vis): New insn VIS 2.0 + patterns. + * niagara.md: Handle edgen. + * niagara2.md: Likewise. + * ultra1_2.md: Likewise. + * ultra3.md: Likewise. + * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ + to 0x200 when TARGET_VIS2. + * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by + default when targetting capable cpus. TARGET_VIS2 implies + TARGET_VIS, clear and it when TARGET_FPU is disabled. + (sparc_vis_init_builtins): Emit new VIS 2.0 builtins. + (sparc_expand_builtin): Fix predicate indexing when builtin returns + void. + (sparc_fold_builtin): Do not eliminate bmask when result is ignored. + * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi, + __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi, + __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln, + __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces. + * doc/extend.texi: Document new VIS 2.0 builtins. + +2011-09-29 Nick Clifton + Bernd Schmidt + + * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file. + * config/frv/frvend.c: Likewise. + * config/frv/frv.c (frv_function_prologue): Move misplaced + CALL_ARG_LOCATION notes back to their proper locations. + +2011-09-29 Georg-Johann Lay + + PR target/50566 + * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool. + * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed + from avr_rtx_costs. + (avr_legitimate_address_p): Use avr_edump to print log information + filtered by avr_log. + (extra_constraint_Q): Ditto. + (avr_legitimize_address): Ditto. + (avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1. + (final_prescan_insn): Use avr_log.rtx_costs as filter. + +2011-09-29 Richard Sandiford + + * config/arm/arm-protos.h (arm_modes_tieable_p): Declare. + * config/arm/arm.h (MODES_TIEABLE_P): Use it. + * config/arm/arm.c (arm_modes_tieable_p): New function. Allow + NEON vector and structure modes to be tied. + +2011-09-29 Bill Schmidt + + * graphite-scop-detection.c (make_close_phi_nodes_unique): New + forward declaration. + (remove_duplicate_close_phi): Detect and repair creation of + duplicate close-phis for a containing loop. + +2011-09-27 Andi Kleen + + * gcc.c (get_local_tick). Rename to get_random_number. Read from + /dev/urandom. Add getpid call. + (compare_debug_dump_opt_spec_function): Drop getpid call. + +2011-09-26 Andi Kleen + + * toplev.c (init_local_tick): Try reading random seed + from /dev/urandom. + +2011-09-26 Andi Kleen + + * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add. + * lto-streamer.c (lto_get_section_name): Remove crc32_string. + Handle numerical random seed. + * lto-streamer.h (lto_file_decl_data): Change id to + unsigned HOST_WIDE_INT. + * toplev.c (random_seed): Add. + (init_random_seed): Change for numerical random seed. + (get_random_seed): Return as HOST_WIDE_INT. + (set_random_seed): Crc32 existing string. + * toplev.h (get_random_seed): Change to numercal return. + * tree.c (get_file_function_name): Remove CRC. Handle + numerical random seed. + +2011-09-29 Georg-Johann Lay + + PR target/50566 + * config.gcc (extra_objs): Add avr-log.o for $target in: + avr-*-rtems*, avr-*-*. + * config/avr/t-avr (avr-log.o): New rule to compile... + * config/avr/avr-log.c: ...this new file. + * config/avr/avr.opt (mlog=): New option. + * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros. + (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes. + (avr_log_set_avr_log): New prototype. + (avr_log_t): New typedef. + (avr_log): New declaration. + * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log. + +2011-09-29 Artjoms Sinkarovs + + * expr.c (do_store_flag): Expand vector comparison by + building an appropriate VEC_COND_EXPR. + * c-typeck.c (build_binary_op): Typecheck vector comparisons. + (c_objc_common_truthvalue_conversion): Adjust. + * tree-vect-generic.c (do_compare): Helper function. + (expand_vector_comparison): Check if hardware supports + vector comparison of the given type or expand vector piecewise. + (expand_vector_operation): Treat comparison as binary + operation of vector type. + (expand_vector_operations_1): Adjust. + +2011-09-29 Richard Guenther + + * tree.c (build_opaque_vector_type): Make opaque vectors + variant types of the corresponding non-opaque type. Make + sure to share opaque vector types properly. + +2011-09-29 David S. Miller + + * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16, + UNSPEC_ARRAY32): New unspec. + (define_attr type): New type 'array'. + (array{8,16,32}_vis): New patterns. + * config/sparc/ultra1_2.md: Add reservations for 'array'. + * config/sparc/ultra3.md: Likewise. + * config/sparc/niagara.md: Likewise. + * config/sparc/niagara2.md: Likewise. + * config/sparc/sparc.c (sparc_vis_init_builtins): Build new + array builtins. + * config/sparc/visintrin.h (__vis_array8, __vis_array16, + __vis_array32): New. + * doc/extend.texi: Document new VIS builtins. + + * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr. + (VIS pixel-compare insn): Just use . + + * config/sparc/sparc.md (VIS pixel-compare insn): There is only one + code iterator used, so just use . There are two mode iterators + so explicitly use . + +2011-09-29 Iain Sandoe + + * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for + Darwin >= 9. + +2011-09-28 David S. Miller + + * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, + UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to... + (UNSPEC_FCMP): New unspec. + (gcond): New code iterator. + (gcond_name): New code attr. + (GCM): New mode iterator. + (gcm_name): New mode attr. + (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators. + +2011-09-28 Oleg Endo + + PR target/49486 + * config/sh/sh.md (negdi2): Move expansion into split to + allow more combination options. Add T_REG clobber. + (abssi2): New expander. + (*negdi2, *abssi2, *negabssi2): New insns. + (cneg): Change from insn to insn_and_split. Rename to + negsi_cond. Add alternative for non-SH4. + +2011-09-28 Richard Sandiford + + * config/arm/neon.md (neon_move_lo_quad_): Delete. + (neon_move_hi_quad_): Likewise. + (move_hi_quad_, move_lo_quad_): Use subreg moves. + +2011-09-28 Nick Clifton + + * config/rx/predicates.md (rx_minmax_operand): New predicate. + Accepts immediates and a restricted subset of MEMs. + * config/rx/rx.md (int_modes): New iterator. + (smaxsi3, sminsi3): Delete and replace with... + (smax3, smin3): New patterns. + (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns. + +2011-09-28 Richard Guenther + + PR middle-end/50460 + * fold-const.c (try_move_mult_to_index): Handle &a.array the + same as &a.array[0]. + +2011-09-28 Kai Tietz + + * configure.ac: Add test for new section attribute + specifier "e" via define HAVE_GAS_SECTION_EXCLUDE. + * config.in: Regenerated. + * configure: Regenerated. + * config/i386/winnt.c (i386_pe_asm_named_section): Emit + new section flag "e" for excluded sections, if supported. + Otherwise we mark section withc SECTION_EXCLUDE flag as never-load. + +2011-09-28 Richard Sandiford + + * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-28 Richard Sandiford + + * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-27 Sriraman Tallam + + * output.h (SECTION_EXCLUDE): New macro. + * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE. + +2011-09-27 Richard Sandiford + + * fwprop.c (forward_propagate_and_simplify): After checking + reg/subreg combinations, check whether the modes are the same. + +2011-09-27 Bernd Schmidt + Richard Sandiford + + * config/mips/mips.c (mips_add_cfa_restore): New function. + (mips16e_save_restore_reg): Use it. + (mips_restore_reg): Likewise. Split double FPRs for + REG_CFA_RESTORE notes. + +2011-09-27 Richard Sandiford + + PR middle-end/50386 + PR middle-end/50326 + * tree-sra.c (build_ref_for_model): Use the type of the field as + the type of the COMPONENT_REF. + +2011-09-27 Jeff Law + + * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale + non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE. + (find_if_case_1): Use the probability of the THEN clause when + determining if speculation is profitable. + (find_if_case_2): Similarly for the ELSE clause. + +2011-09-27 Jakub Jelinek + + * common.opt: Add -foptimize-strlen option. + * Makefile.in (OBJS): Add tree-ssa-strlen.o. + (tree-sssa-strlen.o): Add dependencies. + * opts.c (default_options_table): Enable -foptimize-strlen + by default at -O2 if not -Os. + * passes.c (init_optimization_passes): Add pass_strlen + after pass_object_sizes. + * timevar.def (TV_TREE_STRLEN): New timevar. + * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter. + * tree-pass.h (pass_strlen): Declare. + * tree-ssa-strlen.c: New file. + * c-decl.c (merge_decls): If compatible stpcpy prototype + is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. + +2011-09-27 Tom de Vries + + PR middle-end/43864 + * tree-ssa-tail-merge.c: New file. + (struct same_succ_def): Define. + (same_succ, const_same_succ): New typedef. + (struct bb_cluster_def): Define. + (bb_cluster, const_bb_cluster): New typedef. + (struct aux_bb_info): Define. + (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define. + (gvn_uses_equal): New function. + (same_succ_print, same_succ_print_traverse, update_dep_bb) + (stmt_update_dep_bb, local_def, same_succ_hash) + (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete) + (same_succ_reset): New function. + (same_succ_htab, same_succ_edge_flags) + (deleted_bbs, deleted_bb_preds): New var. + (debug_same_succ): New function. + (worklist): New var. + (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ) + (init_worklist, delete_worklist, delete_basic_block_same_succ) + (same_succ_flush_bbs, purge_bbs, update_worklist): New function. + (print_cluster, debug_cluster, update_rep_bb) + (add_bb_to_cluster, new_cluster, delete_cluster): New function. + (all_clusters): New var. + (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors) + (merge_clusters, set_cluster): New function. + (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate) + (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi) + (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect) + (find_clusters_1, find_clusters): New function. + (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function. + (update_bbs): New var. + (apply_clusters): New function. + (update_debug_stmt, update_debug_stmts): New function. + (tail_merge_optimize): New function. + tree-pass.h (tail_merge_optimize): Declare. + * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize. + * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o. + (tree-ssa-tail-merge.o): New rule. + * opts.c (default_options_table): Set OPT_ftree_tail_merge by + default at OPT_LEVELS_2_PLUS. + * tree-ssa-sccvn.c (vn_valueize): Move to ... + * tree-ssa-sccvn.h (vn_valueize): Here. + * timevar.def (TV_TREE_TAIL_MERGE): New timevar. + * common.opt (ftree-tail-merge): New switch. + * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS) + (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter. + * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge. + (-ftree-tail-merge, max-tail-merge-comparisons) + (max-tail-merge-iterations): New item. + +2011-09-27 Jan Hubicka + + * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows. + +2011-09-27 Jan Hubicka + + * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle + parameters passed by reference; handle loads from non-SSA scalars + and update comments. + +2011-09-27 Bernd Schmidt + + PR rtl-optimization/50249 + * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument + instead of opnum and type. All callers changed. Remove useless + declaration. + Search forward for other reloads of the same type for the same operand + using the same register; if any are found, return false. + (reload_regs_reach_end_p): Same argument changes; all callers changed. + +2011-09-27 Andi Kleen + Jan Hubicka + + * doc/invoke.texi (ffat-lto-objects): Document. + * toplev.c (compile_file): Do not output assembly when doing slim lto; + Output __gnu_slim_lto when doing slim lto. + * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto. + (cgraph_optimize): Return early when doing slim lto. + * opts.c (finish_options): Complain about lack of linker plugin + when doing slim lto. + * common.opt (ffat-lto-objects): New. + +2011-09-27 Richard Sandiford + + * ipa-inline-analysis.c (predicate_probability): Avoid comparison + between signed and unsigned. + +2011-09-27 Ira Rosen + + * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block + vectorization. + (vectorizable_type_promotion): Likewise. + (vect_analyze_stmt): Call vectorizable_type_demotion and + vectorizable_type_promotion for basic blocks. + (supportable_widening_operation): Don't assume loop vectorization. + * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for + basic blocks. Update vectorization factor for basic block + vectorization. + (vect_analyze_slp_instance): Allow multiple types for basic block + vectorization. Recheck unrolling factor after construction of SLP + instance. + +2011-09-27 Richard Guenther + + * tree-object-size.c (compute_object_sizes): Fix dumping of + folded statement. + +2011-09-27 Richard Guenther + + PR tree-optimization/50363 + * tree-ssa-pre.c (create_expression_by_pieces): Handle + pointer conversions in POINTER_PLUS_EXPRs properly. + +2011-09-27 Richard Sandiford + + * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi) + (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di) + (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si) + (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands + that produce subreg moves. Define using VQX iterators. + +2011-09-27 Georg-Johann Lay + + * config/avr/avr.md (ashrqi3): Split alternative "n" + into its remaining parts C03, C04, C05, C06, C07 and describe + impact in CC by attribute "cc" appropriately. + * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0 + by digging RTX. + +2011-09-27 Jakub Jelinek + + * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE + from 3 x MAX_MACHINE_MODE. + (CONSTM1_RTX): Define. + * emit-rtl.c (const_tiny_rtx): Change into array of + 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE. + (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are + CONSTM1_RTX. + (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and + MODE_VECTOR_INT modes. + * simplify-rtx.c (simplify_binary_operation_1) : + Optimize if one operand is CONSTM1_RTX. + * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x + into mask | x. + +2011-09-26 David S. Miller + + * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode. + (fcmp{le,ne,gt,eq}{16,32}): Likewise. + * config/sparc/visintrin.h: Update edge and pixel-compare + intrinsics to return 'long' instead of 'int'. + * doc/extend.texi: Update documentation to match. + * config/sparc/sparc.c (eligible_for_return_delay): When leaf or + flat, allow any instruction. Otherwise, when V9 allow parallels + which consist only of sets to registers outside of %o0 to %o5. + (sparc_vis_init_builtins): Update VIS builtin types for edge + and pixel-compare. + + * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS + is enabled, mark %gsr as global. + * config/sparc/sparc.md (UNSPEC_WRGSR): Delete. + (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec. + + * config/sparc/sparc-c.c: New file implementing sparc_target_macros, + which will now define __VIS and __VIS__ when -mvis is enabled. + * config/sparc/t-sparc: Likewise. + * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs, + and add t-sparc to tmake_file for all sparc targets. + * config/sparc/sparc-protos.h (sparc_target_macros): Declare. + * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it. + + * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit + builtins for VIS vector addition and subtraction. + * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s, + __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s, + __vis_fpsub32, __vis_fpsub32s): New. + * doc/extend.texi: Document new VIS intrinsics. + +2011-09-26 Georg-Johann Lay + + * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536. + * config/avr/avr.c (avr_out_compare): Print shorter sequence for + EQ/NE comparisons against +/-1 in the case of unused-after, + non-ld-regs target. + +2011-09-26 Jakub Jelinek + + * gimple-fold.c (gimplify_and_update_call_from_tree): Set + gctx.into_ssa after push_gimplify_context. + + * gimple.c (gimple_build_call_valist): New function. + * gimple.h (gimple_build_call_valist): New prototype. + * tree-ssa-propagate.c (finish_update_gimple_call): New function. + (update_gimple_call): Likewise. + (update_call_from_tree): Use finish_update_gimple_call. + * tree-ssa-propagate.h (update_gimple_call): New prototype. + +2011-09-26 Richard Guenther + + PR tree-optimization/50472 + * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold + volatile references. + +2011-09-26 Bingfeng Mei + + * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P. + * target.def: (addr_space_subset_p): Likewise. + +2011-09-26 Tom de Vries + + * tree-ssa-alias.h (pt_solution_singleton_p): Declare. + * tree-ssa-structalias.c (pt_solution_singleton_p): New function. + * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution + of new var. + +2011-09-26 Georg-Johann Lay + + PR target/50465 + * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn. + * config/avr/avr.md (*reload_insi, *reload_insf): Change call to + output_reload_insisf. + (adjust_len): Set default to "no". + Remove alternative "yes". Add alternatives: "mov8", "mov16", + "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi", + "lshrhi", "ashlsi, "ashrsi", "lshrsi". + (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3, + *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3, + *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const, + *lshrsi3_const): Set attribute "adjust_len". + * config/avr/avr.c (output_reload_insisf): Remove parameter "insn". + (output_movsisf): Don't pass insn to output_reload_insisf. + (adjust_insn_length): Handle new alternatives to adjust_len. + Remove handling of ADJUST_LEN_YES. Clean-up code. + +2011-09-26 Eric Botcazou + + * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of + may_trap_p to detect loads that may trap of fault. + +2011-09-26 Georg-Johann Lay + + * config/avr/avr-protos.h (output_reload_inhi): Change prototype. + * config/avr/avr.md (adjust_len): Add "reload_in16" alternative. + (*reload_inhi): Use it. Adapt call to output_reload_inhi to new + prototype. + (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L". + * config/avr/avr.c: Rename output_reload_insisf_1 to + output_reload_in_const. + (avr_popcount_each_byte): Handle SFmode, too. + (output_reload_in_const): Change so it can handle HI loads, too. + Use avr_popcount_each_byte to work out if scratch register must be + created on the fly. + (output_reload_inhi): Rewrite using output_reload_in_const and... + (output_movhi): ...use it to print constants' loads. + (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code. + +2011-09-25 David S. Miller + + * config/sparc/constraints.md (C, P, Z): New constraints for + const_doube, const_int, and const_vector "all ones" values. + Make unused constraint letters comment match reality. + * config/sparc/predicates.md (const_all_ones_operand, + register_or_zero_or_all_ones_operand): New predicates. + * config/sparc/sparc.c (sparc_expand_move): Allow all ones + as well as zero constants when VIS. + (sparc_legitimate_constant_p): Likewise. + * config/sparc/sparc.md (movsi_insn): Add fones alternative. + (movsf_insn): Likewise + (movdi_insn_sp64): Add fone alternative. + (movdf_insn_sp32_v9): Likewise. + (movdf_insn_sp64): Likewise. + + * configure.ac: Add feature check to make sure the assembler + supports the FMAF, HPC, and VIS 3.0 instructions found on + Niagara-3 and later cpus. + * configure: Rebuild. + * config.in: Likewise. + * config/sparc/sparc.opt: New option '-mfmaf'. + * config/sparc/sparc.md: Add float fused multiply-add patterns. + * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro. + (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed. + * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC, + ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise. + * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on + by default for Niagara-3 and later. Turn it off if TARGET_FPU is + disabled. + (sparc_rtx_costs): Handle 'FMA'. + * doc/invoke.texi: Document -mfmaf. + +2011-09-25 Jakub Jelinek + + * tree-ssa-structalias.c (intra_create_variable_infos): Treat + TYPE_RESTRICT REFERENCE_TYPE parameters like restricted + DECL_BY_REFERENCE parameters. + +2011-09-25 Eric Botcazou + + * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore + if there is no outgoing edge. + + * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and + integral types. + +2011-09-25 Ira Rosen + + * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part + of vect_analyze_bb here. + (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1. + +2011-09-25 Ira Rosen + + * tree-data-ref.c (dr_analyze_innermost): Add new argument. + Allow not simple iv if analyzing basic block. + (create_data_ref): Update call to dr_analyze_innermost. + (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise. + * tree-loop-distribution.c (generate_memset_zero): Likewise. + * tree-predcom.c (find_looparound_phi): Likewise. + * tree-data-ref.h (dr_analyze_innermost): Add new argument. + +2011-09-24 David S. Miller + + * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103. + (SPARC_GSR_REG): Define. + (FIXED_REGISTERS): Mark GSR as fixed. + (CALL_USED_REGISTERS): Mark GSR as call used. + (HARD_REGNO_NREGS): GSR is always 1 register. + (REG_CLASS_CONTENTS): Add GSR to ALL_REGS. + (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end. + (REGISTER_NAMES): Add "%gsr". + * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete. + (UNSPEC_WRGSR): New unspec. + (GSR_REG): New constant. + (type): Add new insn type 'gsr'. + (fpack16_vis, fpackfix_vis, fpack32_vis, + faligndata_vis)): Add use of GSR_REG. + (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64, + rdgsr_v8plus): New expanders and insns. + (alignaddr_vis, alignaddrl_vis): Reimplement + using patterns which show that this is a plus in addition to a + modification of GSR_REG, instead of an unspec. + * config/sparc/ultra1_2.md: Handle 'gsr'. + * config/sparc/ultra3.md: Likewise. + * config/sparc/niagara.md: Likewise. + * config/sparc/niagara2.md: Likewise. + * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out + end of table. + (sparc_option_override): Make -mvis imply -mv8plus. + (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries + for %gsr. + (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and + __builtin_vis_read_gsr. + (sparc_expand_buildin): Handle builtins that take one argument and + return void. + (sparc_fold_builtin): Never fold writes to %gsr. + * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New. + * doc/extend.texi: Document new VIS intrinsics. + +2011-09-23 Jan Hubicka + + * ipa-inline-transform.c (inline_call): Add comment. + * ipa-inline.h (inline_param_summary): New structure and vector. + (struct inline_edge_summary): Add param field. + * ipa-inline-analysis.c (CHANGED): New constant. + (add_clause): Handle CHANGED and NOT_CONSTANT. + (predicate_probability): New function. + (dump_condition): Dump CHANGED predicate. + (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker + of unknown function wide invariant. + (evaluate_conditions_for_edge): Handle change probabilities. + (inline_edge_duplication_hook): Copy param summaries. + (inline_edge_removal_hook): Free param summaries. + (dump_inline_edge_summary): Fix dumping of indirect edges and callee + sizes; dump param summaries. + (will_be_nonconstant_predicate): Use CHANGED predicate. + (record_modified_bb_info): New structure. + (record_modified): New function. + (param_change_prob): New function. + (estimate_function_body_sizes): Compute param summaries. + (estimate_edge_size_and_time): Add probability argument. + (estimate_node_size_and_time): Add inline_param_summary argument; + handle predicate probabilities. + (remap_predicate): Fix formating. + (remap_edge_change_prob): New function. + (remap_edge_summaries): Rename from ...; use remap_edge_change_prob. + (remap_edge_predicates): ... this one. + (inline_merge_summary): Remap edge summaries; handle predicate + probabilities; remove param summaries after we are done. + (do_estimate_edge_time): Update. + (do_estimate_edge_growth): Update. + (read_inline_edge_summary): Read param info. + (inline_read_summary): Fix formating. + (write_inline_edge_summary): Write param summaries. + +2011-09-23 Jakub Jelinek + + * config/i386/i386.c (ix86_print_operand): Handle %~. + (ix86_print_operand_punct_valid_p): Return true also for '~'. + * config/i386/sse.md (i128): New mode_attr. + (vec_extract_hi_, vec_extract_hi_, + avx_vbroadcastf128_, *avx_vperm2f128_full, + *avx_vperm2f128_nozero, vec_set_lo_, + vec_set_hi_, *vec_concat_avx): Use in the + patterns, use "" for "mode" attribute. + (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi, + vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use + %~128 in the patterns, use "OI" for "mode" attribute. + +2011-09-23 Georg-Johann Lay + + PR target/50447 + * config/avr/avr.md (adjust_len): Add alternatives "tsthi", + "tstsi", "compare". + (*cmpqi_sign_extend): Use s8_operand. + (*cmphi, *cmpsi): Rewrite using avr_out_compare. + * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove + prototypes. + (out_tsthi, out_tstsi): Remove prototypes. + (avr_out_tsthi, avr_out_tstsi): New prototypes. + * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions. + (avr_asm_len): Negative length now sets *plen to -length. + (compare_sign_p): Return bool instead of int. + (compare_diff_p, compare_eq_p): Ditto and make static. + (avr_out_tsthi): New function. + (avr_out_tstsi): New function. + (avr_out_compare): New function. + (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI, + ADJUST_LEN_COMPARE. + +2011-09-23 Georg-Johann Lay + + PR target/50447 + * config/avr/avr.md: (adjust_len): Add alternative "out_plus". + (addsi3): Rewrite using QI scratch register. Adjust text + peepholes using plus:SI. + (*addsi3_zero_extend.hi): New insn. + (*subsi3_zero_extend.hi): New insn. + (*subhi3_zero_extend1): Set attribute "cc" to "set_czn". + (*subsi3_zero_extend): Ditto. + (subsi3): Change predicate #2 to register_operand. + * config/avr/avr-protos.h (avr_out_plus): New prototype. + (avr_out_plus_1): New static function. + (avr_out_plus): New function. + (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS. + +2011-09-23 Jakub Jelinek + + * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For + GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX. + +2011-09-23 Ian Lance Taylor + + * godump.c (go_define): Treat a single character in single quotes, + or a string, as an operand. + +2011-09-23 Martin Jambor + + * ipa-prop.h (jump_func_type): Updated comments. + (ipa_known_type_data): New type. + (ipa_jump_func): Use it to describe known type jump functions. + * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to + reflect the new known type jump function contents. + (compute_known_type_jump_func): Likewise. + (combine_known_type_and_ancestor_jfs): Likewise. + (try_make_edge_direct_virtual_call): Likewise. + (ipa_write_jump_function): Likewise. + (ipa_read_jump_function): Likewise. + * ipa-cp.c (ipa_value_from_known_type_jfunc): New function. + (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc. + (propagate_accross_jump_function): Likewise. + +2011-09-23 Georg-Johann Lay + + PR target/50446 + * config/avr/avr.md (rotlqi3): Support all offsets 0..7. + (rotlqi3_4): Turn insn into expander. + (*rotlqi3): New insn. + (rotlhi3, rotlsi3): Support rotate left/right by 1. + (*rotlhi2.1, *rotlhi2.15): New insns. + (*rotlsi2.1, *rotlsi2.31): New insns. + * config/avr/constraints.md (C03, C05, C06, C07): New constraints. + +2011-09-23 Bin Cheng + + * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors. + +2011-09-22 Maxim Kuvyrkov + + * ipa-prop.c (ipa_print_node_jump_functions): Fix typos. + +2011-09-22 Andreas Krebbel + + * reload.c (find_reloads): Set operand_mode to Pmode for address + operands consisting of just a CONST_INT. + +2011-09-22 Uros Bizjak + + PR target/50482 + * config/i386/i386.c (ix86_expand_sse_movcc): When generating + blendv, force op_true to register if it doesn't satisfy + nonimmediate_operand predicate. + +2011-09-22 Richard Sandiford + + PR middle-end/50113 + PR middle-end/50061 + * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to + get the locate.where_pad value for register-only arguments. + * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling. + (arm_pad_reg_upward): Handle null types. + +2011-09-22 Jan Hubicka + + * ipa-inline-analysis.c: Fix overly long lines. + +2011-09-22 Jan Hubicka + + * ipa-inline-transform.c (inline_call): Always update jump functions + after inlining. + * ipa-inline.c (ipa_inline): Likewise; do not call + ipa_create_all_structures_for_iinln. + (ipa_inline): Always free jump functions. + * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack. + (remap_edge_predicates): Fix pasto. + (inline_merge_summary): Remove nlined edge predicate; remove hack. + (inline_analyze_function): Always initialize jump functions. + (inline_generate_summary): Likewise. + (inline_write_summary): Always write jump functions when ipa-cp + is not doing that. + (inline_read_summary): Always read jump functions when ipa-cp + is not doing that. + * ipa-prop.c (iinlining_processed_edges): Remove. + (update_indirect_edges_after_inlining): Do not use + iinlining_processed_edges; instead set param_index to -1. + (propagate_info_to_inlined_callees): Only try to indirect inlining + when asked to do so; update jump functions of indirect calls, too; + remove jump functions of the inlined edge. + (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges. + (ipa_create_all_structures_for_iinln): Remove. + (ipa_free_all_structures_after_iinln): Do not free + iinlining_processed_edges. + * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove. + +2011-09-22 Richard Sandiford + + * config/arm/predicates.md (expandable_comparison_operator): New + predicate, extracted from... + (arm_comparison_operator): ...here. + * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4) + (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc) + (movdfcc): Use expandable_comparison_operator. + +2011-09-22 Georg-Johann Lay + + PR target/50447 + PR target/50465 + * config/avr/avr-protos.h (avr_out_bitop): New prototype. + (avr_popcount_each_byte): New prototype. + * config/avr/avr.c (avr_popcount): New static function. + (avr_popcount_each_byte): New function. + (avr_out_bitop): New function. + (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to + avr_out_bitop. Cleanup code. + * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints. + (Ca4, Co4, Cx4): New constraints. + * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute + alternative. + (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop. + (andsi3, iorsi3, xorsi3): Ditto. + (*iorhi3_clobber, *iorsi3_clobber): Remove insns. + +2011-09-22 Ira Rosen + + PR tree-optimization/50451 + * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for + constant operands in reduction. + (vect_get_slp_defs): Don't create vector operand for NULL scalar + operand. + +2011-09-22 David S. Miller + + * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark + fpack16, fpack32, fpackfix as const. + + * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG, + I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New + constants. Use them everywhere. + +2011-09-22 Oleg Endo + + * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs. + Added AND special case. Adapted comments. + (sh_rtx_costs): Added XOR and IOR case. + +2011-09-21 Jan Hubicka + + * ipa-inline-analsis.c (compute_inline_parameters): Set + cfun and current_function_decl. + +2011-09-21 Jan Hubicka + + * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow + handled components in parameter of builtin_constant_p. + (will_be_nonconstant_predicate): Allow loads of non-SSA parameters. + +2011-09-21 Jan Hubicka + + * ipa-inline.c (relative_time_benefit): Fix wrong bracketting. + * ipa-inline.h (estimate_edge_time): Fix pasto. + * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping. + +2011-09-21 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_sse_movcc): Use + blendvps, blendvpd and pblendvb if possible. + +2011-09-21 Uros Bizjak + + PR target/50464 + * config/i386/sse.md (xop_pcmov_): Change + operand 1 predicate to register_operand and operand 2 predicate + to nonimmediate_operand. + * config/i386/i386.c (ix86_expand_sse_movcc): When generating + xop_pcmov, force op_true to register. Also, force op_false to + register if it doesn't satisfy nonimmediate_operand predicate. + +2011-09-21 Kirill Yukhin + + * config/i386/bmi2intrin.h (_mulx_u64): New. + (_mulx_u32): Ditto. + +2011-09-21 Jan Hubicka + + PR tree-optimization/50433 + * ipa-inline-analysis.c (eliminated_by_inlining_prob): + Use get_base_address. + +2011-09-21 Jakub Jelinek + + * config/i386/sse.md (3 smaxmin:VI124_128 expander): Use + nonimmediate_operand instead of register_operand predicate for operands + 1 and 2, force them into registers if expanding them as comparison. + (3 umaxmin:VI124_128 expander): Similarly. For UMAX + V8HImode force into register just operand 1. + +2011-09-21 Georg-Johann Lay + + PR target/45099 + * config/avr/avr.c (avr_function_arg_advance): Change error to + warning if a fixed register is needed as function argument. + +2011-09-21 Georg-Johann Lay + + PR target/50449 + PR target/50465 + * config/avr/avr.md (adjust_len): New insn attribute. + (*reload_insi, *reload_insf): Use it. + (*movsi, *movsf): Use new interface of output_movsisf. + * config/avr/avr-protos.h (output_movsisf): Change prototype. + * config/avr/avr.c (output_movsisf): Ditto. + (adjust_insn_length): Use insn attribute "adjust_len" to adjust + lengths of insns *reload_insi, *reload_insf. + (output_reload_insisf_1): New static function. + (output_reload_insisf): Use it. + +2011-09-21 David S. Miller + + * config/sparc/sparc.c (def_builtin): Change from macro into function. + (def_builtin_const): New. + (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins + other than alignaddr and falignaddr. + + * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT, + UNSPEC_FCMPEQ): New unspec codes. + (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis, + fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns. + * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for + new pixel compare VIS patterns. + * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32, + __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32, + __vis_fcmpeq16, __vis_fcmpeq32): New. + * doc/extend.texi: Document new pixel compare VIS intrinsics. + +2011-09-21 Tom de Vries + + * final.c (final): Handle if JUMP_LABEL is not LABEL_P. + +2011-09-20 David S. Miller + + * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec. + (aligneddrl_vis): New pattern. + (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, + edge32l_vis): Adjust to take Pmode arguments, and return SImode. + * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new + alignaddrl insn, and adjust edge operations for updated types. + * config/sparc/visintrin.h: Likewise. + * doc/extend.texi: Make typing in VIS documentation match reality. + +2011-09-20 Terry Guo + + * config/arm/arm-arches.def: Add armv6s-m. + * config/arm/arm-tables.opt: Regenerate. + +2011-09-20 Wei Guozhi + + PR rtl-optimization/49452 + * postreload.c (reload_combine): Invalidate use information when across + volatile insn. + +2011-09-19 Maxim Kuvyrkov + + * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg): + Remove maintenance overhead. + (haifa_sched_init, sched_finish): Update. + +2011-09-19 Uros Bizjak + + * config/i386/mmx.md (*mov_internal_rex64): Use if_then_else RTX + to calculate unit, prefix_rep and prefix_data16 attributes. + (*mov_internal): Ditto for unit attribute. + (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes. + (*movv2sf_internal): Ditto. + * config/i386/sse.md (VI1248_256): Remove mode iterator. + (avx2_eq3): Use VI_256 instead of VI1248_256. + (*avx2_eq3): Ditto. + (avx2_gt3): Ditto. + +2011-09-19 Uros Bizjak + + * config/i386/i386.md (maxmin): New code iterator. + * config/i386/sse.md (3): Macroize expander + from 3 and 3 using maxmin + code iterator. + (*avx2_3): Macroize isn from + *avx2_3 and *avx2_3 using + maxmin code iterator. + (3): Merge with v8hi3. + (3): Merge with umaxv4si3 and + v16qi3. + +2011-09-19 Alan Modra + Michael Meissner + + PR target/50341 + * config/rs6000/rs6000.md (call_indirect_aix): Do not + split the load of the indirect function's TOC from the call to + prevent the compiler from moving the load of the new TOC above + code that references the current function's TOC. + (call_indirect_aix_internal): Ditto. + (call_indirect_aix_nor11): Ditto. + (call_indirect_aix_internal2): Ditto. + (call_value_indirect_aix): Ditto. + (call_value_indirect_aix_internal): Ditto. + (call_value_indirect_aix_nor11): Ditto. + (call_value_indirect_aix_internal2): Ditto. + +2011-09-19 Jakub Jelinek + + * config/i386/sse.md (*sse4_1_extractps): Change into + define_insn_and_split, add =x 0 n and =x x n alternatives + and split them after reload. + +2011-09-19 Alexandre Oliva + + * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4. + +2011-09-19 Alexandre Oliva + + * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs. + +2011-09-19 Ira Rosen + + PR tree-optimization/50413 + * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize + a basic block if one of its data-refs can't be analyzed. + +2011-09-19 Paul Brook + + * config/arm/predicates.md (shift_amount_operand): Check constant + shift count is in range. + (const_shift_operand): Remove. + +2011-09-18 Eric Botcazou + Iain Sandoe + + PR target/50091 + * config/rs6000/rs6000.md (probe_stack): Use explicit operand. + * config/rs6000/rs6000.c (output_probe_stack_range): Likewise. + +2011-09-18 H.J. Lu + + * config/i386/bmiintrin.h: Remove tmp. + * config/i386/tbmintrin.h: Likewise. + +2011-09-18 Ira Rosen + + PR tree-optimization/50414 + * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and + MIN_EXPR. + +2011-09-18 Ira Rosen + + PR tree-optimization/50412 + * tree-vect-data-refs.c (vect_analyze_group_access): Fail for + acceses that require epilogue loop if vectorizing outer loop. + +2011-09-17 David S. Miller + + * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L, + UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L): + New unspecs. + (define_attr type): New type 'edge'. + (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, + edge32l_vis): New patterns. + * config/sparc/ultra1_2.md: Add insn reservation for 'edge'. + * config/sparc/ultra3.md: Likewise. + * config/sparc/niagara.md: Likewise. + * config/sparc/niagara2.md: Likewise. + * config/sparc/sparc.d (sparc_vis_init_builtins): Generate + builtins for VIS edge instructions. + * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l) + (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New + intrinsics. + (__v8qi, __v4qi): Make unsigned. + (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi, + __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al, + __vis_fpack32): Fix types. + * doc/extend.texi: Document new 'edge' VIS intrinsics. + + * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer + divide costs. + (niagara3_costs): New. + (sparc_option_override): Use it. + * gcc/config/sparc/niagara2.md: Adjust with more accurate + Niagara-3 reservations. + +2011-09-17 Jakub Jelinek + + * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI. + (sse2_avx, sseinsnmode): Add V2TI. + (REDUC_SMINMAX_MODE): New mode iterator. + (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf, + reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove. + (reduc__): New smaxmin and umaxmin expanders. + (sse2_lshrv1ti3): Rename to... + (_lshr3): ... this. Use VIMAX_AVX2 mode + iterator. Move before umaxmin expanders. + * config/i386/i386.h (VALID_AVX256_REG_MODE, + SSE_REG_MODE_P): Accept V2TImode. + * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode, + V16HImode, V8SImode and V4DImode. + + * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode + and V4DImode. + (ix86_build_signbit_mask): Likewise. + (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode. + (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3 + instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3. + * config/i386/sse.md (avx2_3 umaxmin expand): Rename to... + (3) ... this. + (avx2_3 smaxmin expand): Rename to... + (3) ... this. + (smax3, smin3): Macroize using smaxmin code iterator. + (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and + VI8_AVX2 mode iterator. + (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and + VI8_AVX2 mode iterator. + (vcond, vcondu): + New expanders. + +2011-09-17 Richard Sandiford + + * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-16 David S. Miller + + * config/sparc/visintrin.h: New file. + * config.gcc: Add it to extra_headers on sparc. + +2011-09-16 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ... + (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode. + * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf, + reduc_smin_v4sf): Adjust callers. + (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): + New expanders. + + * config/i386/sse.md (vec_extract_hi_, + vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use + vextracti128 instead of vextractf128 for -mavx2 and + integer vectors. For V4DFmode fix up mode attribute. + (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors. + (vec_set_lo_, vec_set_hi_): For VI8F_256 modes use V4DF + instead of V8SF mode attribute. + (avx2_extracti128): Change into define_expand. + * config/i386/i386.c (ix86_expand_vector_extract): Handle + 32-byte vector modes if TARGET_AVX. + +2011-09-16 Georg-Johann Lay + + * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern. + (umulqi3_highpart, smulqi3_highpart): Ditto. + (*maddqihi4.const, *umaddqihi4.uconst): Ditto. + (*msubqihi4.const, *umsubqihi4.uconst): Ditto. + (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto. + +2011-09-16 Georg-Johann Lay + + PR target/50358 + * config/avr/avr.md (*ashiftqihi2.signx.1): New insn. + (*maddqi4, *maddqi4.const): New insns. + (*msubqi4, *msubqi4.const): New insns. + * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases + PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for + HImode by 1 in the case of multiplying with a CONST_INT. + Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI. + +2011-09-15 Jan Hubicka + + PR lto/50430 + * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on + error_mark_node in the DECL_INITIAL of vtable. + +2011-09-15 Diego Novillo + + * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from + @SYSROOT_CFLAGS_FOR_TARGET@. + * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot. + * configure: Regenerate. + (site.exp): Add definition of TEST_ALWAYS_FLAGS. + Remove setting of GCC_UNDER_TEST. + +2011-09-15 Uros Bizjak + + * config/i386/i386.c (output_fp_compare): Return %v prefixed + instruction mnemonics for TARGET_AVX. + + * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in + "type" attribute calculation. + (*movdf_internal): Ditto. + (*movsf_internal): Ditto. + +2011-09-15 James Greenhalgh + + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro. + +2011-09-15 Jason Merrill + + PR c++/50361 + * expr.c (count_type_elements): Handle NULLPTR_TYPE. + +2011-09-15 Jan Hubicka + + * ipa-inline-analysis.c (add_condition): Add conditions parameter; + simplify obviously true clauses. + (and_predicates, or_predicates): Add conditions parameter. + (inline_duplication_hoook): Update. + (mark_modified): New function. + (unmodified_parm): New function. + (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate, + set_switch_stmt_execution_predicate, will_be_nonconstant_predicate): + Use unmodified_parm. + (estimate_function_body_sizes): Update. + (remap_predicate): Update. + +2011-09-15 Ira Rosen + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow + read-after-read dependencies in basic block SLP. + +2011-09-14 Richard Sandiford + + * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-14 Richard Sandiford + + * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-14 Richard Sandiford + + * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-14 Richard Sandiford + + * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref + throughout file. + * config/rs6000/constraints.md: Likewise. + +2011-09-14 Richard Sandiford + + * config/microblaze/microblaze.md: Use match_test rather than + eq/ne symbol_ref throughout file. + +2011-09-14 Richard Sandiford + + * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-14 Tom de Vries + + PR middle-end/50251 + * explow.c (emit_stack_restore): Set crtl->need_drap if + stack_restore is emitted. + +2011-09-14 Julian Brown + + * config/arm/arm.c (arm_override_options): Add unaligned_access + support. + (arm_file_start): Emit attribute for unaligned access as appropriate. + * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD) + (UNSPEC_UNALIGNED_STORE): Add constants for unspecs. + (insv, extzv): Add unaligned-access support. + (extv): Change to expander. Likewise. + (extzv_t1, extv_regsi): Add helpers. + (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu) + (unaligned_storesi, unaligned_storehi): New. + (*extv_reg): New (previous extv implementation). + * config/arm/arm.opt (munaligned_access): Add option. + * config/arm/constraints.md (Uw): New constraint. + * expmed.c (store_bit_field_1): Adjust bitfield numbering according + to size of access, not size of unit, when BITS_BIG_ENDIAN != + BYTES_BIG_ENDIAN. Don't use bitfield accesses for + volatile accesses when -fstrict-volatile-bitfields is in effect. + (extract_bit_field_1): Likewise. + +2011-09-14 Richard Sandiford + + * simplify-rtx.c (simplify_subreg): Check that the inner mode is + a scalar integer before applying integer-only optimisations to + inner arithmetic. + +2011-09-14 Bernd Schmidt + + * config/mips/mips.c (mips_expand_epilogue): Generate a + simple_return only if the return address is in r31. + +2011-09-13 Bernd Schmidt + + * cfgcleanup.c (try_head_merge_bb): If get_condition returns + NULL for a jump that is a cc0 insn, pick the previous insn for + move_before. + +2011-09-13 Richard Sandiford + + * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-13 Richard Sandiford + + * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-13 Richard Sandiford + + * config/mn10300/mn10300.md: Use match_test rather than eq/ne + symbol_ref throughout file. + +2011-09-13 Richard Sandiford + + * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-13 Richard Sandiford + + * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-13 Richard Sandiford + + * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref + throughout file. + * config/arm/neon.md: Likewise. + * config/arm/vfp.md: Likewise. + * config/arm/thumb2.md: Likewise. + * config/arm/cortex-m4.md: Likewise. + +2011-09-13 Sevak Sargsyan + + * config/arm/neon.md (neon_vabd_2, neon_vabd_3): New + define_insn patterns for combine. + +2011-09-13 Giuseppe Scrivano + + * reorg.c: Always define make_return_insns. + +2011-09-13 Jan Hubicka + + PR other/49533 + * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output. + +2011-09-13 Jan Hubicka + + PR other/49533 + * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos. + +2011-09-13 Paul Brook + + * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + (ARM_TARGET2_DWARF_FORMAT): Provide default definition. + * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define. + * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define. + * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define. + * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h. + * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h. + * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code + enabling unwind tables. + (c6x_debug_unwind_info): New function. + (TARGET_ARM_EABI_UNWINDER): Define. + (TARGET_DEBUG_UNWIND_INFO): Define. + * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define. + (TARGET_EXTRA_CFI_SECTION): Remove. + * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set. + * ginclude/unwind-arm-common.h: New file. + +2011-09-13 Georg-Johann Lay + + PR target/50358 + * config/avr/predicates.md (const_1_to_6_operand): New predicate. + * config/avr/avr.md: (extend_s): New code attribute. + (mul_r_d): New code attribute. + (*maddqihi4, *umaddqihi4): New insns. + (*msubqihi4, *umsubqihi4): New insns. + (*usmaddqihi4, *sumaddqihi4): New insns. + (*usmsubqihi4, *susubdqihi4): New insns. + (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits. + (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits. + (*umsubqihi4.uconst.ashift): New insn-and-split. + (*msubqihi4.sconst.ashift): New insn-and-split. + (*sumaddqihi4.uconst): New insn-and-split. + (*sumsubqihi4.uconst): New insn-and-split. + * config/avr/avr.c (avr_rtx_costs): Report costs of above in case + PLUS:HI and MINUS:HI. + +2011-09-13 Revital Eres + + modulo-sched.c (remove_node_from_ps): Return void instead of bool. + (optimize_sc): Adjust call to remove_node_from_ps. + (sms_schedule): Add print info. + +2011-09-13 Bernd Schmidt + + * rtl.c (copy_rtx): Do not handle frame_related, jump or call + flags specially. + +2011-09-12 Jakub Jelinek + + PR bootstrap/50010 + * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between + NOTE_INSN_CFI notes, with the exception of + NOTE_INSN_SWITCH_TEXT_SECTIONS. + +2011-09-12 Bernd Schmidt + Richard Sandiford + + * config/mips/mips.c (mips_epilogue): New structure. + (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when + restoring registers. + (mips_epilogue_emit_cfa_restores): New function. + (mips_epilogue_set_cfa): Likewise. + (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring + the current CFA register from the stack, redefine the CFA in terms + of the stack pointer. + (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information + to the epilogue instructions. + +2011-09-12 Richard Sandiford + + * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p + argument. + (mips16e_build_save_restore): Update accordingly. + +2011-09-12 Jakub Jelinek + + PR rtl-optimization/50212 + * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): + Skip also lps with NULL landing_pad or non-LABEL_P landing_pad. + + PR debug/50299 + * calls.c (load_register_parameters): Use use_reg_mode instead + of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE + entry. + (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument + for stack CALL_INSN_FUNCTION_USAGE uses. + * expr.h (use_reg_mode): New prototype. + (use_reg): Changed into inline around use_reg_mode. + * expr.c (use_reg): Renamed to... + (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST + mode to that mode instead of VOIDmode. + * var-tracking.c (prepare_call_arguments): Don't track parameters + whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible + to it using lowpart_subreg. Convert VALUE and REG/MEM to the + EXPR_LIST mode. + +2011-09-12 Georg-Johann Lay + + PR target/43746 + * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define. + (progmem_section): New Variable. + (avr_asm_init_sections): Initialize it. + (TARGET_ASM_SELECT_SECTION): Define to... + (avr_asm_select_section): ... this new Function. + (avr_replace_prefix): New Function. + (avr_asm_function_rodata_section): Use it. + (avr_insert_attributes): Don't add section attribute for PROGMEM. + (avr_section_type_flags): Use avr_progmem_p instead of section + name to detect if object is in PROGMEM. + (avr_asm_named_section): Set section name prefix for objects in + PROGMEM. + +2011-09-12 Jakub Jelinek + + PR bootstrap/50352 + * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the + sprintf format string. + +2011-09-12 Richard Guenther + + PR tree-optimization/50343 + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check + that the reduction is over an SSA name before checking its definition. + +2011-09-11 Richard Sandiford + + * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref + throughout file. + +2011-09-11 Richard Sandiford + + * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref + throughout file. + * config/mips/sb1.md: Likewise. + * config/mips/predicates.md: Replace (match_test "!...") + with (not (match_test "...")) + * config/mips/constraints.md: Likewise. + +2011-09-09 Andrew Stubbs + + * config/arm/arm-cores.def (generic-armv7-a): New architecture. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Regenerate. + * config/arm/arm.c (arm_file_start): Output .arch directive when + user passes -mcpu=generic-*. + (arm_issue_rate): Add genericv7a support. + * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec. + (ASM_CPU_SPEC): New define. + * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec). + * config/arm/semi.h (ASM_SPEC): Likewise. + * doc/invoke.texi (ARM Options): Document -mcpu=generic-* + and -mtune=generic-*. + +2011-09-09 Richard Guenther + + PR tree-optimization/50328 + * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one + constant or default-def operand. + +2011-09-09 Richard Guenther + + * tree-ssa-pre.c (create_expression_by_pieces): Fold the + last statement. + +2011-09-09 Richard Guenther + + * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator + instead of a statement. + * gimple-fold.c (fold_stmt_inplace): Likewise. + * sese.c (graphite_copy_stmts_from_block): Adjust. + * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. + * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use + fold_stmt. + (forward_propagate_addr_into_variable_array_index): Likewise. + (forward_propagate_addr_expr_1): adjust. + (associate_plusminus): Likewise. + (ssa_forward_propagate_and_combine): Likewise. + * tree-ssa-mathopts.c (replace_reciprocal): Adjust. + (execute_cse_reciprocals): Likewise. + * tree-ssa.c (insert_debug_temp_for_var_def): Adjust. + +2011-09-09 Nick Clifton + + * config/mn10300/mn10300.c (mn10300_split_and_operand_count): + Return a positive value to indicate that the bits at the + bottom of the register should be cleared. + +2011-09-09 Richard Guenther + + * tree-ssa-operands.c (swap_tree_operands): Always adjust + existing operand positions. + +2011-09-09 Richard Guenther + + PR middle-end/50333 + * tree-data-ref.c (split_constant_offset): Do not try to handle + ternary ops. + +2011-09-08 Andrew Stubbs + + PR tree-optimization/50318 + * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct + typo in use of mult_rhs1 and mult_rhs2. + +2011-09-08 Uros Bizjak + + * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes. + (standard_sse_constant_opcode) : Change vpcmpeqd template. + +2011-09-08 Bernd Schmidt + + * config/arm/arm.md (push_multi): Emit predicates. + (push_fp_multi): Likewise. + * config/arm/arm.c (vfp_output_fstmd): Likewise. + +2011-09-08 Dodji Seketeli + + PR c++/33255 - Support -Wunused-local-typedefs warning + * c-decl.c (lookup_name): Use the new maybe_record_typedef_use. + (pushdecl): Use the new record_locally_defined_typedef. + (store_parm_decls): Allocate cfun->language. + (finish_function): Use the new maybe_warn_unused_local_typedefs, + and free cfun->language. + (c_push_function_context): Allocate cfun->language here only if needed. + (c_pop_function_context): Likewise, mark cfun->language + for collection only when it should be done. + * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes. + * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new + maybe_record_local_typedef_use. + * doc/invoke.texi: Update documentation for + -Wunused-local-typedefs. + +2011-09-08 Enkovich Ilya + + * config/i386/i386-protos.h (ix86_lea_outperforms): New. + (ix86_avoid_lea_for_add): Likewise. + (ix86_avoid_lea_for_addr): Likewise. + (ix86_split_lea_for_addr): Likewise. + + * config/i386/i386.c (LEA_MAX_STALL): New. + (increase_distance): Likewise. + (insn_defines_reg): Likewise. + (insn_uses_reg_mem): Likewise. + (distance_non_agu_define_in_bb): Likewise. + (distance_agu_use_in_bb): Likewise. + (ix86_lea_outperforms): Likewise. + (ix86_ok_to_clobber_flags): Likewise. + (ix86_avoid_lea_for_add): Likewise. + (ix86_avoid_lea_for_addr): Likewise. + (ix86_split_lea_for_addr): Likewise. + (distance_non_agu_define): Search in pred BBs added. + (distance_agu_use): Search in succ BBs added. + (IX86_LEA_PRIORITY): Value changed from 2 to 0. + (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL. + (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision. + + * config/i386/i386.md: Split added to transform non destructive + add into move and add. + (lea_1): transformed into insn_and_split to avoid AGU stalls. + (lea_2): Likewise. + +2011-09-08 Martin Jambor + + PR tree-optimization/50287 + * ipa-split.c (split_function): Do not create SSA names for + non-gimple-registers. + +2011-09-08 Richard Guenther + + PR tree-optimization/19831 + * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also + skip builtins with vdefs that do not really store something. + (propagate_necessity): For calls to free that we can associate + with an allocation function do not mark the freed pointer + definition necessary. + (eliminate_unnecessary_stmts): Remove a call to free if + the associated call to an allocation function is not necessary. + +2011-09-08 Richard Guenther + + PR tree-optimization/19831 + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark + allocation functions as necessary. + +2011-09-08 Iain Sandoe + + * config/darwin-driver.c (darwin_find_version_from_kernel): New routine + cut from ... + (darwin_default_min_version): Amended to provide defaults + for the cross directory case. + (darwin_driver_init): call darwin_default_min_version unconditionally. + * config/darwin.h (DEF_MIN_OSX_VERSION): New. + * config/darwin9.h: Likewise. + * config/darwin10.h: Likewise. + * config/rs6000/darwin7.h: Likewise. + +2011-09-08 Jakub Jelinek + + PR target/50310 + * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return + code early if TARGET_AVX. + (ix86_expand_fp_vcond): Handle LTGT and UNEQ. + +2011-09-07 Jakub Jelinek + + * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector + duplicates. + + PR target/50310 + * config/i386/sse.md (*andnot3, *3): Fix up + "mode" attribute computation. + +2011-09-07 Bernd Schmidt + + * regrename.c (struct du_head): Make nregs signed. + (closed_chains): Remove. + (create_new_chain): Return the new chain. + (chain_from_id): New static function. + (dump_def_use_chain): Change argument to be an int, indicating + the first ID to print. All callers changed. + (merge_overlapping_regs): Use chain_from_id. Assert that + chains don't conflict with themselves. + (rename_chains): Take no argument. Iterate over id_to_chain + rather to find chains to rename. Clear tick before the main loop. + (struct incoming_reg_info): New struct. + (struct bb_rename_info): New struct. + (init_rename_info, set_incoming_from_chain, merge_chains): New + static functions. + (regrename_analyze): New static function, broken out of + regrename_optimize. Record and make use of open chain information + at basic block boundaries, and merge chains where possible. + (scan_rtx_reg): Make this_nregs signed. Don't update + closed_chains. + (build_def_use): Return a bool to indicate success. All callers + changed. Don't initialize global data here. + (regrename_optimize): Move most code out of here into + regrename_analyze. + * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set, + range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New + static inline functions. + * vec.h (FOR_EACH_VEC_ELT_FROM): New macro. + + * bb-reorder.c (insert_section_boundary_note): Don't check + optimize_function_for_speed_p. + (gate_handle_partition_blocks): Do it here instead. + (gate_handle_reorder_blocks): Move preliminary checks here ... + (rest_of_handle_reorder_blocks): ... from here. + +2011-09-07 Martin Jambor + + PR middle-end/50301 + * ipa-cp.c (find_more_values_for_callers_subset): Check jump + function index bounds. + (perhaps_add_new_callers): Likewise. + +2011-09-07 Martin Jambor + + PR tree-optimization/49911 + * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced + enumerations to the corresponding plain integer type. + +2011-09-07 Richard Guenther + + PR tree-optimization/50319 + * tree-if-conv.c (set_bb_predicate): Assert we only set + canonical predicates. + (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR + around canonical predicates. + (predicate_bbs): Do not re-gimplify already canonical + predicates. Properly unshare them though. + (find_phi_replacement_condition): Simplify. + +2011-09-07 Richard Sandiford + + PR target/49030 + * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare. + * config/arm/arm.c (maybe_get_arm_condition_code): New function, + reusing the old code from get_arm_condition_code. Return ARM_NV + for invalid comparison codes. + (get_arm_condition_code): Redefine in terms of + maybe_get_arm_condition_code. + * config/arm/predicates.md (arm_comparison_operator): Use + maybe_get_arm_condition_code. + +2011-09-07 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): + Canonicalize negated predicates by swapping edges. + (forward_propagate_into_cond): Likewise. + +2011-09-07 Richard Guenther + + PR tree-optimization/50213 + * tree-flow.h (simple_iv_increment_p): Declare. + * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle + POINTER_PLUS_EXPR. + * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do + not propagate simple IV counter increments. + +2011-09-07 Eric Botcazou + Iain Sandoe + + * config/rs6000/rs6000.c (compute_save_world_info): Test + cfun->has_nonlocal_label to determine if the out-of-line save + world call may be used. + +2011-09-07 Nick Clifton + + * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump + label on the parallel part of the insn. + +2011-09-07 Jakub Jelinek + + PR debug/50191 + * dwarf2out.c (mem_loc_descriptor) : Try + avoid_constant_pool_reference first instead of last. + +2011-09-06 Michael Meissner + + * doc/configfiles.texi (Configuration Files): Update documentation + about tm_p.h and remove FIXME comment. + +2011-09-06 Uros Bizjak + + * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG. + (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX. + +2011-09-06 Iain Sandoe + + * config/darwin10.h Remove duplicate LIB_SPEC. + +2011-09-06 Enkovich Ilya + + PR middle-end/44382 + * target.def (reassociation_width): New hook. + + * doc/tm.texi.in (reassociation_width): Likewise. + + * doc/tm.texi (reassociation_width): Likewise. + + * doc/invoke.texi (tree-reassoc-width): New param documented. + + * hooks.h (hook_int_uint_mode_1): New default hook. + + * hooks.c (hook_int_uint_mode_1): Likewise. + + * config/i386/i386.h (ix86_tune_indices): Add + X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. + + (TARGET_REASSOC_INT_TO_PARALLEL): New. + (TARGET_REASSOC_FP_TO_PARALLEL): Likewise. + + * config/i386/i386.c (initial_ix86_tune_features): Add + X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. + + (ix86_reassociation_width): New function. + + * params.def (PARAM_TREE_REASSOC_WIDTH): New param added. + + * tree-ssa-reassoc.c (get_required_cycles): New function. + (get_reassociation_width): Likewise. + (swap_ops_for_binary_stmt): Likewise. + (rewrite_expr_tree_parallel): Likewise. + + (rewrite_expr_tree): Refactored. Part of code moved into + swap_ops_for_binary_stmt. + + (reassociate_bb): Now checks reassociation width to be used and + call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed. + +2011-09-06 Richard Guenther + + PR tree-optimization/47025 + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END + uses nothing. + (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like + BUILT_IN_FREE. + (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument + definitely points to. + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): + BUILT_IN_VA_START doesn't let its va_list argument escape. + * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does + not make any previous stores necessary. + +2011-09-06 Martin Jambor + + * ipa-inline.h (struct inline_summary): Move versionable flag... + * cgraph.h (struct cgraph_local_info): ...here + * ipa-cp.c (determine_versionability): Use the new versionable flag. + (determine_versionability): Likewise. + (ipcp_versionable_function_p): Likewise. + (ipcp_generate_summary): Likewise. + * ipa-inline-analysis.c (dump_inline_summary): Do not dump the + versionable flag. + (compute_inline_parameters): Do not clear the versionable flag. + (inline_read_section): Do not stream the versionable flag. + (inline_write_summary): Likewise. + * lto-cgraph.c (lto_output_node): Stream the versionable flag. + (input_overwrite_node): Likewise. + +2011-09-06 Richard Guenther + + PR tree-optimization/48149 + * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug. + (vn_valueize): Move earlier. + (valueize_expr): Use vn_valueize. + (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR + operands. + (simplify_unary_expression): Simplify. + +2011-09-06 Richard Guenther + + PR tree-optimization/48317 + * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true + trailing array. + (sizeof_vn_nary_op): New inline function. + (vn_nary_op_lookup_pieces): Adjust. + (vn_nary_op_insert_pieces): Likewise. + * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length. + (init_vn_nary_op_from_pieces): Adjust signature. Deal with + any number of operands. + (vn_nary_length_from_stmt): New function. + (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling. + (vn_nary_op_lookup_pieces): Adjust signature and allocate properly + sized temporary. + (vn_nary_op_lookup): Likewise. + (vn_nary_op_lookup_stmt): Likewise. + (vn_nary_op_insert_into): Likewise. + (vn_nary_op_insert_stmt): Likewise. + (visit_use): Handle CONSTRUCTOR as nary. + * tree-ssa-pre.c (phi_translate_1): Adjust. + (create_expression_by_pieces): Likewise. + (compute_avail): Likewise. + +2011-09-06 Ira Rosen + + * config/arm/arm.c (arm_preferred_simd_mode): Check + TARGET_NEON_VECTORIZE_DOUBLE instead of + TARGET_NEON_VECTORIZE_QUAD. + (arm_autovectorize_vector_sizes): Likewise. + * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse + mask of mvectorize-with-neon-double. Add RejectNegative. + (mvectorize-with-neon-double): New. + +2011-09-06 Richard Guenther + + * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching. + +2011-09-06 Tom de Vries + + * recog.c (asm_labels_ok): New function. + (check_asm_operands): Use asm_labels_ok. + +2011-09-05 Richard Sandiford + + PR target/49606 + * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode. + (PMODE_INSN): New macro. + * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN. + (mips_got_load, mips_expand_synci_loop): Likewise. + (mips_save_gp_to_cprestore_slot): Handle SImode and DImode + cprestore patterns. + (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode + copygp_mips16 patterns. + (mips_expand_prologue): Handle SImode and DImode potential_cprestore + and use_cprestore patterns. + (mips_override_options): Check for incompatible -mabi and -mlong + combinations. + * config/mips/mips.md (unspec_got): Rename to... + (unspec_got_): ...this. + (copygp_mips16): Use the Pmode iterator. + (potential_cprestore, cprestore, use_cprestore): Likewise. + (clear_cache, indirect_jump): Use PMODE_INSN. + (indirect_jump): Rename to... + (indirect_jump_): ...this. + (tablejump): Use PMODE_INSN. + (tablejump): Rename to... + (tablejump_): ...this. + (exception_receiver): Handle restore_gp_si and restore_gp_di. + (restore_gp): Use the Pmode iterator. + * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use + PMODE_INSN. + +2011-09-05 Richard Sandiford + + * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. + Fix the type of the BIT_AND_EXPR. + +2011-09-05 David S. Miller + + * config.host: Add driver-sparc.o and sparc/x-sparc on + native sparc*-*-linux* builds. + * config/sparc/driver-sparc.c: Correct Linux strings. + * config/sparc/linux.h: Add DRIVER_SELF_SPECS. + * config/sparc/linux64.h: Likewise. + * doc/invoke.texi: Document that Linux also supports + -mcpu=native and -mtune=native on sparc. + + * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3, + PROCESSOR_NIAGARA4): New. + * config/sparc/sparc.opt: Handle new processor types. + * config/sparc/sparc.md: Add to "cpu" attribute. + * config/sparc/sparc.h (TARGET_CPU_niagara3, + TARGET_CPU_niagara4): New, treat as niagara2. + * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2. + * config/sparc/sol2.h: Likewise. + * config/sparc/niagara2.md: Schedule niagara3 like niagara2. + * config/sparc/sparc.c (sparc_option_override): Add + niagara3 and niagara4 handling. + (sparc32_initialize_trampoline): Likewise. + (sparc64_initialize_trampoline): Likewise. + (sparc_use_sched_lookahead): Likewise. + (sparc_issue_rate): Likewise. + (sparc_register_move_cost): Likewise. + * config/sparc/driver-sparc.c (cpu_names): Use niagara3 + and niagara4 as appropriate. + * doc/invoke.texi: Document new processor types. + * config.gcc: Recognize niagara3 and niagara4 in --with-cpu + and --with-tune options. + + * config/sparc/sol2-64.h: Move ... + * config/sparc/default-64.h: ... to here. Update comment. + * config.gcc: Update Solaris sparc to use default-64.h, also + prefix this header into the list on sparc64-*-linux. + * config/sparc/linux64.h (TARGET_DEFAULT): Only override if + TARGET_64BIT_DEFAULT is defined. Remove commented out reference + to MASK_HARD_QUAD. + +2011-09-05 Georg-Johann Lay + + PR target/50289 + * config/avr/avr.c (sequent_regs_live): Don't recognize sequences + that contain global register variable. + +2011-09-05 Richard Guenther + + * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace. + +2011-09-05 Richard Guenther + + * stor-layout.c (layout_type): Use size_binop for array size + calculations. + +2011-09-05 Georg-Johann Lay + + * config/avr/avr.h (progmem_section): Remove Declaration. + * config/avr/avr.c (progmem_section): Make static and rename to + progmem_swtable_section. + (avr_output_addr_vec_elt): No need to switch sections. + (avr_asm_init_sections): Use output_section_asm_op as section + callback for progmem_swtable_section. + (avr_output_progmem_section_asm_op): Remove Function. + (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define. + (avr_asm_function_rodata_section): New static Function. + * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output + alignment 2**1 for jump tables. + +2011-09-04 Jan Hubicka + + * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that + parameter is SSA name. + +2011-09-04 Richard Guenther + + Revert + 2011-08-31 Richard Guenther + + * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE + special-casing. + +2011-09-04 Iain Sandoe + + PR debug/49901 + * config/darwin.h (DEBUG_MACRO_SECTION): New macro. + +2011-09-04 Jakub Jelinek + Ira Rosen + + PR tree-optimization/50208 + * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an + argument. Check that def_stmt is inside the loop. + (vect_recog_widen_mult_pattern): Update calls to + vect_handle_widen_mult_by_cons. + (vect_operation_fits_smaller_type): Check that def_stmt is + inside the loop. + +2011-09-04 Ira Rosen + + * tree-vectorizer.c (vect_print_dump_info): Print line + number when dumping to a file. + (vectorize_loops): Add new messages to dump file. + +2011-09-03 Martin Jambor + + * ipa-prop.h (ipa_jump_func_t): New typedef. + (struct ipa_edge_args): Removed field argument_count, field + jump_functions turned into a vector. + (ipa_set_cs_argument_count): Removed. + (ipa_get_cs_argument_count): Updated to work on vectors. + (ipa_get_ith_jump_func): Likewise. + * ipa-prop.c (ipa_count_arguments): Removed. + (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access + jump functions. Update caller. + (compute_pass_through_member_ptrs): Likewise. + (compute_cst_member_ptr_arguments): Likewise. + (ipa_compute_jump_functions_for_edge): Get number of arguments from + the statement, allocate vector. + (ipa_compute_jump_functions): Do not call ipa_count_arguments. + (duplicate_ipa_jump_func_array): Removed. + (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count. + (ipa_read_node_info): Allocate vector. + +2011-09-03 John David Anglin + + PR middle-end/50232 + * config/pa/pa.md (return): Define "return" insn pattern. + (epilogue): Use it when no epilogue is needed. + * config/pa/pa.c (pa_can_use_return_insn): New function. + * config/pa/pa-protos.h (pa_can_use_return_insn): Declare. + +2011-09-03 Eric Botcazou + + * cfgexpand.c (add_stack_var): Assert that the alignment is not zero. + * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change. + Force at least BITS_PER_UNIT alignment on the new variable. + +2011-09-02 Gary Funck + + * opts.c (print_specific_help): Fix off-by-one compare in + assertion check. + * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, + CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): + Increase by +5 to allow for more languages. + * optc-gen.awk: Generate #if that ensures that the number of + languages is within the implementation-defined limit. + +2011-09-02 Michael Matz + + PR middle-end/50260 + * ipa-split.c (split_function): Call add_referenced_var. + + * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann. + (cond_if_else_store_replacement_1): Ditto. + * tree-ssa-pre.c (get_representative_for): Ditto. + (create_expression_by_pieces): Ditto. + (insert_into_preds_of_block): Ditto. + * tree-sra.c (create_access_replacement): Ditto. + (get_replaced_param_substitute): Ditto. + +2011-09-02 Bernd Schmidt + + * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New + automata_options. + (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit. + (l1w, s1w, l2w, s2w): Define in the main automaton. + (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New + units. + * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member. + (c6x_unit_names): Add the new units. + (c6x_unit_codes): New static array. + (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1, + UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1, + UNIT_QID_SIDE_OFFSET): New macros. + (RESERVATION_S2): Adjust value. + (c6x_option_override): Compute c6x_unit_codes. + (assign_reservations): Take the unit_mask of the last instruction + into account. Detect floating point reservations by looking for + the new units. Don't assign reservations if the field is already + nonzero. + (struct c6x_sched_context): Add member prev_cycle_state_ctx. + (init_sched_state): Initialize it. + (c6x_clear_sched_context): Free it. + (insn_set_clock): Clear reservation. + (prev_cycle_state): New static variable. + (c6x_init_sched_context): Save it. + (c6x_sched_init): Allocate space for it and clear it. + (c6x_sched_dfa_pre_cycle_insn): New static function. + (c6x_dfa_new_cycle): Save state at the start of a new cycle. + (c6x_variable_issue): Only record units in the unit_mask that + were not set at the start of the cycle. + (c6x_variable_issue): Compute and store the unit_mask from the + current state. + (reorg_split_calls): Ensure the new information remains correct. + (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT, + TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define. + * config/c6x/c6x.h (CPU_UNITS_QUERY): Define. + * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_): + Add special reservations. + * config/c6x/c6x-sched.md: Regenerate. + +2011-09-02 Martin Jambor + + * ipa-prop.h (ipa_node_params): Removed fields + called_with_var_arguments and node_versionable. + (ipa_set_called_with_variable_arg): Removed. + (ipa_is_called_with_var_arguments): Likewise. + * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert. + (determine_versionability): Do not check for type attributes and va + builtins. Record versionability into inline summary. + (initialize_node_lattices): Do not check + ipa_is_called_with_var_arguments. + (propagate_constants_accross_call): Likewise, ignore arguments we do + not have PARM_DECLs for, set variable flag for parameters that were + not passed a value. + (create_specialized_node): Dump info that we cannot change signature. + * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable + number of arguments. + (ipa_make_edge_direct_to_target): Likewise. + (ipa_update_after_lto_read): Likewise. + (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag. + * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if + they were remapped. + +2011-09-02 Richard Guenther + + PR tree-optimization/27460 + PR middle-end/29269 + * doc/md.texi (vcond): Document. + * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion + optab with two modes. + * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu. + (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu. + (vcond_optab): Adjust. + (vcondu_optab): Likewise. + (expand_vec_cond_expr_p): Adjust prototype. + * optabs.c (get_vcond_icode): Adjust. + (expand_vec_cond_expr_p): Likewise. + (expand_vec_cond_expr): Likewise. + * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison + vector type. + (vectorizable_condition): Allow differing types for comparison + and result. + * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode + for the comparison. + * config/i386/sse.md (vcond): Split to + vcond, vcond, + vcond and + vcondu. + (vcondv2di): Change to vcondv2di. + (vconduv2di): Likewise. + * config/arm/neon.md (vcond): Change to vcond*. + (vcondu): Likewise. + * config/ia64/vect.md (vcond): Likewise. + (vcondu): Likewise. + (vcondv2sf): Likewise. + * config/mips/mips-ps-3d.md (vcondv2sf): Likewise. + * config/rs6000/paired.md (vcondv2sf): Likewise. + * config/rs6000/vector.md (vcond): Likewise. + (vcondu): Likewise. + * config/spu/spu.md (vcond): Likewise. + (vcondu): Likewise. + +2011-09-02 Richard Guenther + + * pretty-print.h (pp_unsigned_wide_integer): New. + * tree-pretty-print.c (dump_generic_node): Print unsigned + host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer. + +2011-09-02 Richard Sandiford + + PR target/49987 + * config/rs6000/rs6000.c (paired_expand_vector_init): Check for + valid CONST_VECTOR operands. + (rs6000_expand_vector_init): Likewise. + +2011-09-02 Martin Jambor + + * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta. + * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use + BINFO_VTABLE. Parameter delta removed, all callers updated. + * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead + BINFO_VTABLE. + * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated + all calls. + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed + handling of thunk_delta. + * ipa-cp.c (get_indirect_edge_target): Removed parameter delta. + (devirtualization_time_bonus): Do not handle thunk deltas. + (ipcp_discover_new_direct_edges): Likewise. + * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. + (try_make_edge_direct_simple_call): Likewise. + (try_make_edge_direct_virtual_call): Likewise. + * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark + parameter set as unused. + (output_edge_opt_summary): Likewise. Mark both parameters as unused. + * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark + parameter set as unused. + (output_edge_opt_summary): Likewise. Mark both parameters as unused. + (input_edge_opt_summary): Likewise. + * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream + BINFO_VIRTUALS at all. + * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise. + +2011-09-02 Richard Guenther + + * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0). + (ccp_fold_stmt): Continue replacing args when folding alloca fails. + +2011-08-31 Richard Guenther + + * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR + handling here, from ... + (expand_expr_real_1): ... here. + * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR + and VEC_COND_EXPR. + * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR + a GIMPLE_TERNARY_RHS. + * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR + and VEC_COND_EXPR here ... + (verify_gimple_assign_single): ... not here. + * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding. + * tree-object-size.c (cond_expr_object_size): Adjust. + (collect_object_sizes_for): Likewise. + * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs. + * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify. + (ssa_forward_propagate_and_combine): Adjust. + * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR + as ternary. + * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust. + * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise. + * tree-vect-stmt.c (vectorizable_condition): Likewise. + * tree-vrp.c (extract_range_from_cond_expr): Likewise. + (extract_range_from_assignment): Likewise. + +2011-08-31 Richard Sandiford + + * config/i386/i386.md: Use (match_test ...) for attribute tests. + * config/i386/mmx.md: Likewise. + * config/i386/sse.md: Likewise. + * config/i386/predicates.md (call_insn_operand): Use + (not (match_test "...")) instead of (match_test "!...") + * config/i386/constraints.md (w): Likewise. + +2011-08-31 Richard Sandiford + + * doc/md.texi: Describe the use of match_tests in attribute tests. + * rtl.def (MATCH_TEST): Update commentary. + * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag) + (write_test_expr, walk_attr_value): Handle MATCH_TEST. + +2011-08-31 Richard Sandiford + + * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. + (attr_string): Use copy_md_ptr_loc. + +2011-08-31 Martin Jambor + + PR middle-end/49886 + * ipa-inline-analysis.c (compute_inline_parameters): Set + can_change_signature of noes with typde attributes. + * ipa-split.c (split_function): Do not skip any arguments if + can_change_signature is set. + +2011-08-31 Martin Jambor + + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias + check removed. + +2011-08-31 Richard Guenther + + * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE + special-casing. + +2011-08-31 Marc Glisse + + * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals. + +2011-08-31 Tom de Vries + + PR middle-end/43513 + * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule. + * tree-ssa-ccp.c (params.h): Include. + (fold_builtin_alloca_for_var): New function. + (ccp_fold_stmt): Use fold_builtin_alloca_for_var. + +2011-08-30 Uros Bizjak + + * config/i386/i386.c (ix86_valid_target_attribute_inner_p): + Handle FMA option. + +2011-08-30 Andrew Stubbs + + * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2, + b3 and b4 unsigned. + +2011-08-30 Andrew Stubbs + + * config/arm/arm.c (arm_gen_constant): Set can_negate correctly + when code is SET. + +2011-08-30 Richard Guenther + + PR middle-end/48571 + * gimple.h (maybe_fold_offset_to_address): Remove. + (maybe_fold_offset_to_reference): Likewise. + (maybe_fold_stmt_addition): Likewise. + (may_propagate_address_into_dereference): Likewise. + * tree-inline.c (remap_gimple_op_r): Do not reconstruct + array references. + * gimple-fold.c (canonicalize_constructor_val): Likewise. + Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF + addresses instead. + (may_propagate_address_into_dereference): Remove. + (maybe_fold_offset_to_array_ref): Likewise. + (maybe_fold_offset_to_reference): Likewise. + (maybe_fold_offset_to_address): Likewise. + (maybe_fold_stmt_addition): Likewise. + (fold_gimple_assign): Do not reconstruct array references but + instead canonicalize invariant POINTER_PLUS_EXPRs to invariant + MEM_REF addresses. + (gimple_fold_stmt_to_constant_1): Likewise. + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. + * gimplify.c (gimplify_conversion): Likewise. + (gimplify_expr): Likewise. + +2011-08-30 Ilya Tocar + + * config/i386/fmaintrin.h: New. + * config.gcc: Add fmaintrin.h. + * config/i386/i386.c + (enum ix86_builtins) : New. + : Likewise. + * config/i386/sse.md (fmai_vmfmadd_): New. + (*fmai_fmadd_): Likewise. + (*fmai_fmsub_): Likewise. + (*fmai_fnmadd_): Likewise. + (*fmai_fnmsub_): Likewise. + * config/i386/immintrin.h: Add fmaintrin.h. + +2011-08-30 Bernd Schmidt + + * genautomata.c (NO_COMB_OPTION): New macro. + (no_comb_flag): New static variable. + (gen_automata_option): Handle NO_COMB_OPTION. + (comb_vect_p): False if no_comb_flag. + (add_vect): Move computation of min/max values. Return early if + no_comb_flag. + * doc/md.texi (automata_option): Document no-comb-vect. + + * config/i386/i386.c (get_pc_thunk_name): Change prefix to + "__x86.get_pc_thunk". + + * bb-reorder.c (insert_section_boundary_note): Only do it if + we reordered the blocks; i.e. not if !optimize_function_for_speed_p. + +2011-08-30 Christian Bruel + + * coverage.c (coverage_init): Check flag_branch_probabilities instead of + flag_profile_use. + +2011-08-29 Michael Meissner + + * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default + to off. Document switch. + * doc/invoke.texi (-msave-toc-indirect): Ditto. + +2011-08-29 Jakub Jelinek + + * gthr-posix.h (__gthread_active_p): Do not use preprocessor + conditionals and comments inside macro arguments. + +2011-08-29 Artjoms Sinkarovs + Richard Guenther + + * tree.h (constant_boolean_node): Adjust prototype. + * fold-const.c (fold_convert_loc): Move aggregate conversion + leeway down. + (constant_boolean_node): Make value parameter boolean, add + vector type handling. + (fold_unary_loc): Use constant_boolean_node. + (fold_binary_loc): Preserve types properly when folding + COMPLEX_EXPR <__real x, __imag x>. + * gimplify.c (gimplify_expr): Handle vector comparison. + * tree.def (EQ_EXPR, ...): Document behavior on vector typed + comparison. + * tree-cfg.c (verify_gimple_comparison): Verify vector typed + comparisons. + +2011-08-29 Jakub Jelinek + + PR middle-end/48722 + * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs, + reset_used_flags also in CALL_INSN_FUNCTION_USAGE. + (verify_rtl_sharing): Likewise and verify_rtx_sharing + in there too. + (unshare_all_rtl_in_chain): For CALL_INSNs + copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE. + +2011-08-29 Richard Guenther + + * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location + on the built ADDR_EXPR. + +2011-08-29 Jakub Jelinek + + PR debug/50215 + * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn + before adding ENTRY_VALUE to val->locs. + +2011-08-28 Mikael Pettersson + + PR bootstrap/50218 + * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize + comp. + +2011-08-27 Bernd Schmidt + + * doc/rtl.texi (simple_return): Document. + (parallel, PATTERN): Here too. + * doc/md.texi (return): Mention it's allowed to expand to simple_return + in some cases. + (simple_return): Document standard pattern. + * gengenrtl.c (special_rtx): SIMPLE_RETURN is special. + * final.c (final_scan_insn): Use ANY_RETURN_P on body. + * reorg.c (function_return_label, function_simple_return_label): + New static variables, replacing... + (end_of_function_label): ... this. + (simplejump_or_return_p): New static function. + (optimize_skip, steal_delay_list_from_fallthrough, + fill_slots_from_thread): Use it. + (relax_delay_slots): Likewise. Use ANY_RETURN_P on body. + (rare_destination, follow_jumps): Use ANY_RETURN_P on body. + (find_end_label): Take a new arg which is one of the two return + rtxs. Depending on which, set either function_return_label or + function_simple_return_label. All callers changed. + (make_return_insns): Make both kinds. + (dbr_schedule): Adjust for two kinds of end labels. + * function.c (emit_return_into_block): Set JUMP_LABEL properly. + * genemit.c (gen_exp): Handle SIMPLE_RETURN. + (gen_expand, gen_split): Use ANY_RETURN_P. + * df-scan.c (df_uses_record): Handle SIMPLE_RETURN. + * rtl.def (SIMPLE_RETURN): New code. + * ifcvt.c (find_if_case_1): Be more careful about + redirecting jumps to the EXIT_BLOCK. + * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p, + returnjump_p_1): Handle SIMPLE_RETURNs. + * print-rtl.c (print_rtx): Likewise. + * rtl.c (copy_rtx): Likewise. + * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P. + * combine.c (simplify_set): Likewise. + * resource.c (find_dead_or_set_registers, mark_set_resources): + Likewise. + * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1, + copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs. + (init_emit_regs): Initialize simple_return_rtx. + * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to + force_nonfallthru_and_redirect. + * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN. + (GR_SIMPLE_RETURN): New enum value. + (simple_return_rtx): New macro. + * basic-block.h (force_nonfallthru_and_redirect): Adjust + declaration. + * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label + argument. All callers changed. Be careful about what kinds of + returnjumps to generate. + * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb, + ix86_pad_short_function): Likewise. + * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds + of return. + * config/mips/mips.md (any_return): New code_iterator. + (optab): Add cases for return and simple_return. + (return): Expand to a simple_return. + (simple_return): New pattern. + (*, *_internal for any_return): New patterns. + (return_internal): Remove. + * config/mips/mips.c (mips_expand_epilogue): Make the last insn + a simple_return_internal. + +2011-08-27 Uros Bizjak + + * config/i386/sse.md (*absneg2): Fix split condition. + (vec_extract_lo_): Prevent both operands in memory. + (vec_extract_lo_v16hi): Ditto. + (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. + +2011-08-27 Uros Bizjak + + * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note. + (*sse2_mulv4si3): Ditto. + (mulv2di3): Ditto. + * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV + notes to REG_EQUAL. + +2011-08-27 Uros Bizjak + + PR target/50202 + * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note + when all outputs are unused. + (sse4_2_pcmpistr): Ditto. + +2011-08-26 Uros Bizjak + + * config/i386/i386.md (round2): New expander. + * config/i386/i386.c (enum ix86_builtins): Add + IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}. + (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256} + descriptions. + (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins. + (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor. + +2011-08-26 Uros Bizjak + + PR middle-end/50083 + * convert.c (convert_to_integer) : Convert + only when TARGET_C99_FUNCTIONS. + : Ditto. + : Ditto. + +2011-08-26 Michael Matz + Jakub Jelinek + + PR lto/50165 + * lto-streamer-in.c (canon_file_name): Initialize new_slot->len; + don't call strlen twice, use memcpy. + +2011-08-26 H.J. Lu + + * config/i386/bmi2intrin.h: Allow in . + * config/i386/bmiintrin.h: Likewise. + * config/i386/lzcntintrin.h: Likewise. + + * config/i386/immintrin.h: Include , + and . + +2011-08-26 Rainer Orth + + PR target/50166 + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main. + * configure: Regenerate. + +2011-08-26 Jakub Jelinek + + PR c/50179 + * c-typeck.c (c_process_expr_stmt): Skip over nops and + call mark_exp_read even if exprv is ADDR_EXPR. + +2011-08-26 Richard Sandiford + + * df-problems.c (df_note_bb_compute): Pass uses rather than defs + to df_set_dead_notes_for_mw. + +2011-08-26 Richard Guenther + + * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF]. + +2011-08-26 Zdenek Dvorak + Tom de Vries + + * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field. + (struct ivopts_data): Add loop_single_exit_p field. + (niter_for_exit): Change parameter desc_p into return value. Return + desc if desc->may_be_zero. Free desc if unused. + (niter_for_single_dom_exit): Change return type. + (find_induction_variables): Handle changed return type of + niter_for_single_dom_exit. Dump may_be_zero. + (add_candidate_1): Keep original base and step type for IP_ORIGINAL. + (set_use_iv_cost): Add and handle comp parameter. + (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add + comp argument to set_use_iv_cost. + (strip_wrap_conserving_type_conversions, expr_equal_p) + (difference_cannot_overflow_p, iv_elimination_compare_lt): New function. + (may_eliminate_iv): Add comp parameter. Handle new return type of + niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt. + (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost + and may_eliminate_iv. + (rewrite_use_compare): Move call to iv_elimination_compare to ... + (may_eliminate_iv): Here. + (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p. + +2011-08-26 Tom de Vries + + * tree-pretty-print (dump_generic_node): Test for NULL_TREE before + accessing TREE_TYPE. + +2011-08-26 Jiangning Liu + + * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well. + (*ior_scc_scc_cmp): Likewise + (*and_scc_scc): Likewise. + (*and_scc_scc_cmp): Likewise. + (*and_scc_scc_nodom): Likewise. + (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2. + +2011-08-26 Jakub Jelinek + + * rtlanal.c (nonzero_bits1): Handle CLRSB. + +2011-08-26 Richard Guenther + + * expr.c (string_constant): Handle &MEM_REF. + +2011-08-26 Andrew Stubbs + + * config/arm/arm.c (struct four_ints): New type. + (count_insns_for_constant): Delete function. + (find_best_start): Delete function. + (optimal_immediate_sequence): New function. + (optimal_immediate_sequence_1): New function. + (arm_gen_constant): Move constant splitting code to + optimal_immediate_sequence. + Rewrite constant negation/invertion code. + +2011-08-26 Andrew Stubbs + + * config/arm/arm-protos.h (const_ok_for_op): Add prototype. + * config/arm/arm.c (const_ok_for_op): Add support for addw/subw. + Remove prototype. Remove static function type. + * config/arm/arm.md (*arm_addsi3): Add addw/subw support. + Add arch attribute. + * config/arm/constraints.md (Pj, PJ): New constraints. + +2011-08-26 Ramana Radhakrishnan + + * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New. + ("cortex_a9_multiply_long"): New and use above. Handle all + long multiply cases. + ("cortex_a9_multiply"): Handle smmul and smmulr. + ("cortex_a9_mac"): Handle smmla. + +2011-08-25 Richard Henderson + + PR 50132 + PR 49864 + * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for + non-constant stack adjutment. + * expr.c (find_args_size_adjust): Break out from ... + (fixup_args_size_notes): ... here. + * rtl.h (find_args_size_adjust): Declare. + +2011-08-25 Uros Bizjak + + * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3, + sse4 and sse4_noavx. + (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx. + (*pushdf_rex64): Change Y2 register constraint to x. + (*movdf_internal_rex64): Ditto. + (*zero_extendsidi2_rex64): Ditto. + (*movdi_internal): Change Y2 register constraint to x + and update "isa" attribute. + (*pushdf): Ditto. + (*movdf internal): Ditto. + (zero_extendsidi2_1): Ditto. + (*truncdfdf_mixed): Ditto. + (*truncxfdf2_mixed): Ditto. + * config/i386/mmx.md (*mov_internal_rex64): Change Y2 + register constraint to x. + (*movv2sf_internal_rex64): Ditto. + (*mov_internal): Change Y2 register constraint to x + and add "isa" attribute. + (*movv2sf_internal): Ditto. + (*vec_extractv2si_1): Ditto. + * config/i386/sse.md ("vec_set_0): Change Y2 and Y4 register + constraints to x and update "isa" attribute. + (*vec_interleave_highv2df): Change Y3 registerconstraint + to x and update "isa" attribute. + (*vec_interleave_lowv2df): Ditto. + (*vec_concatv2df): Change Y2 register constraint to x and + update "isa" attribute. + (sse2_loadld): Ditto. + (*vec_extractv2di_1): Ditto. + (*vec_dupv4si): Ditto. + (*vec_dupv2di): Ditto. + (*vec_concatv4si): Ditto. + (vec_concatv2di): Ditto. + * config/i386/constraints.md (Y2): Remove. + (Y3): Ditto. + (Y4): Ditto. + +2011-08-25 Bernd Schmidt + + * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use, + dump_def_use_chain): Don't declare. + (mark_conflict, create_new_chain): Move before users. + (regrename_optimize): Move to near end of file. + +2011-08-25 Georg-Johann Lay + + * config/avr-protos.h (byte_immediate_operand): Remove Prototype. + (secondary_input_reload_class): Remove Prototype. + * config/avr/avr.c (byte_immediate_operand): Remove Function. + * config/avr/avr.md (setmemhi): Use u8_operand. + (strlenhi): Use const0_rtx for comparison. + * config/avr/avr.h (avr_reg_order): Remove Declaration. + +2011-08-25 Georg-Johann Lay + + * config/avr/avr.c (reg_class_tab): Make local to + avr_regno_reg_class. Return smallest register class available. + +2011-08-25 Georg-Johann Lay + + * config/avr/avr.c (STR_PREFIX_P): New Define. + (avr_asm_declare_function_name): Use it. + (avr_asm_named_section): Use it. + (avr_section_type_flags): Use it. + +2011-08-25 Bernd Schmidt + + * doc/md.texi (automata_option): Document collapse-ndfa. + * genautomata.c (COLLAPSE_OPTION): New macro. + (collapse_flag): New static variable. + (struct description): New member normal_decls_num. + (struct automaton): New members advance_ainsn and collapse_ainsn. + (gen_automata_option): Check for COLLAPSE_OPTION. + (collapse_ndfa_insn_decl): New static variable. + (add_collapse_ndfa_insn_decl, special_decl_p): New functions. + (find_arc): If insn is the collapse-ndfa insn, accept any arc we find. + (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if + necessary. Use normal_decls_num rather than decls_num, remove + test for special decls. + (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p. + (make_automaton); Likewise. Use the new advance_cycle_insn member + of struct automaton. + (create_composed_state): Disallow advance-cycle arcs if collapse_flag + is set. + (NDFA_to_DFA): Don't create composed states for the collapse-ndfa + transition. Create the necessary transitions for it. + (create_ainsns): Return void. Take an automaton_t argument, and + update its ainsn_list, advance_ainsn and collapse_ainsn members. All + callers changed. + (COLLAPSE_NDFA_VALUE_NAME): New macro. + (output_tables): Output code to define it. + (output_internal_insn_code_evaluation): Output code to accept + const0_rtx as collapse-ndfa transition. + (output_default_latencies, output_print_reservation_func, + output_print_description): Reorganize loops to use normal_decls_num + as loop bound; remove special case for advance_cycle_insn_decl. + (initiate_automaton_gen): Handle COLLAPSE_OPTION. + (check_automata_insn_issues): Check for collapse_ainsn. + (expand_automate): Allocate sufficient space. Initialize + normal_decls_num. + +2011-08-25 Georg-Johann Lay + + * config/avr/avr.md: Fix indentation from r177991. + +2011-08-25 Bernd Schmidt + + * regrename.c (struct du_head): Remove member terminated. + (create_new_chain): Don't initialize it. + (scan_rtx_reg): Don't set or test it, test the open_chains_set + bitmap instead. + (tick, this_tick): New global variables, moved out of + regrename_optimize. + (current_id, open_chains, closed_chains, open_chains_set, + live_in_chains, live_hard_regs): Reorder declarations. + (dump_def_use_chain): Move function earlier in the file. + (rename_chains): New static function, broken out of + regrename_optimize. + (regrename_optimize): Use it. Remove #if 0'ed code. + +2011-08-25 Bernhard Reutner-Fischer + + * varasm.c: (default_binds_local_p_1): Commentary typo fix. + +2011-08-24 H.J. Lu + + PR target/50172 + * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed. + +2011-08-24 Richard Guenther + + * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the + ref in the basic-block case. Move stripping array-refs + to the place we create an access-function for it. Remove + bogus stripping down a MEM_REF to its base. + +2011-08-24 Richard Guenther + + * fold-const.c (fold_comparison): Fold &a < &a + 4 even + with -fno-strict-overflow. + +2011-08-24 Richard Guenther + + * tree-vectorizer.c (vect_print_dump_info): Avoid the + file and location clutter when dumping to dump files. + +2011-08-24 Simon Baldwin + + * gengtype-state.c (write_state): Remove timestamped header line. + +2011-08-24 Joseph Myers + + * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o) + (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o) + (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o) + (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New. + (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o) + (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o) + (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation + rules. + (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER). + +2011-08-24 Joseph Myers + + * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@). + +2011-08-24 Richard Guenther + + PR tree-optimization/50067 + * tree-data-ref.c (dr_analyze_indices): Do not add an access + function for a MEM_REF base that has no evolution in the loop + nest or that is not analyzable. + +2011-08-23 Vladimir Makarov + + * ira.c (ira_init_register_move_cost): Check small subclasses + through ira_reg_class_max_nregs and ira_available_class_regs. + +2011-08-23 Uros Bizjak + + * config/i386/constraints.md (Yp): New register constraint. + * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using + Yp register constraint. + (*addqi_1): Merge with *addqi_1_lea using Yp register constraint. + (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint. + (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint. + +2011-08-23 Kirill Yukhin + + * config/i386/sse.md (mul3_highpart): Update. + +2011-08-23 Mark Heffernan + + PR middle-end/38509 + * common.opt (Wfree-nonheap-object): New option. + * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object. + * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object + to warning. + (expand_builtin): Make warning conditional. + +2011-08-23 Uros Bizjak + + * config/i386/i386.md (type): Add imulx, ishiftx and rotatex. + (length_immediate): Handle imulx, ishiftx and rotatex. + (imm_disp): Ditto. + (isa): Add bmi2. + (enabled): Handle bmi2. + (*mul3): Split from *mul3. + (*umul3): Ditto. Add imulx BMI2 alternative. + (*bmi2_umulditi3_1): New insn pattern. + (*bmi2_umulsidi3_1): Ditto. + (*umul3 splitter): New splitter to avoid flags dependency. + (*bmi2_ashl3_1): New insn pattern. + (*ashl3_1): Add ishiftx BMI2 alternative. + (*ashl3_1 splitter): New splitter to avoid flags dependency. + (*bmi2_ashlsi3_1_zext): New insn pattern. + (*ashlsi3_1_zext): Add ishiftx BMI2 alternative. + (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency. + (*bmi2_3_1): New insn pattern. + (*3_1): Add ishiftx BMI2 alternative. + (*3_1 splitter): New splitter to avoid + flags dependency. + (*bmi2_si3_1_zext): New insn pattern. + (*si3_1_zext): Add ishiftx BMI2 alternative. + (*si3_1_zext splitter): New splitter to avoid + flags dependency. + (*bmi2_rorx3_1): New insn pattern. + (*3_1): Add rotatex BMI2 alternative. + (*rotate3_1 splitter): New splitter to avoid flags dependency. + (*rotatert3_1 splitter): Ditto. + (*bmi2_rorxsi3_1_zext): New insn pattern. + (*si3_1_zext): Add rotatex BMI2 alternative. + (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency. + (*rotatertsi3_1_zext splitter): Ditto. + +2011-08-23 Kirill Yukhin + + * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New. + (OPTION_MASK_ISA_BMI2_UNSET): Likewise. + (ix86_handle_option): Handle OPT_mbmi2 case. + * config.gcc (i[34567]86-*-*): Add bmi2intrin.h. + (x86_64-*-*): Likewise. + * config/i386/bmi2intrin.h: New file. + * config/i386/cpuid.h (bit_BMI2): New. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect + BMI2 feature. + * config/i386/i386-c.c (ix86_target_macros_internal): + Conditionally define __BMI2__. + * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2. + Handle BMI2 option. + (ix86_valid_target_attribute_inner_p): Handle BMI2 option. + (print_reg): New code. + (ix86_print_operand): Likewise. + (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, + IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, + IX86_BUILTIN_PEXT64. + (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, + IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, + IX86_BUILTIN_PEXT64. + * config/i386/i386.h (TARGET_BMI2): New. + * config/i386/i386.md (UNSPEC_PDEP): New. + (UNSPEC_PEXT): Likewise. + (*bmi2_bzhi_3): Likewise. + (*bmi2_pdep_3): Likewise. + (*bmi2_pext_3): Likewise. + * config/i386/i386.opt (mbmi2): New. + * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__ + is defined. + * doc/extend.texi: Document BMI2 built-in functions. + * doc/invoke.texi: Document -mbmi2. + +2011-08-23 Jakub Jelinek + + PR middle-end/50161 + * simplify-rtx.c (simplify_const_unary_operation): If + op is CONST_INT, don't look at op_mode, but use instead mode. + * optabs.c (add_equal_note): For FFS, CLZ, CTZ, + CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for + operation and TRUNCATE/ZERO_EXTEND if needed. + * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap): + Document that operand mode must be same as operation mode, + or VOIDmode. + * config/avr/avr.md (paritysi2, *parityqihi2.libgcc, + *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc, + *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2, + *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops + use the mode of operand for the operation and add truncate + or zero_extend around if needed. + * config/c6x/c6x.md (ctzdi2): Likewise. + * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise. + +2011-08-12 Michael Matz + + * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment. + (gimple_expand_cfg): Merge alignment info for coalesced pointer + SSA names. + +2011-08-23 Richard Guenther + + * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency. + * tree-affine.h (aff_comb_cannot_overlap_p): Declare. + * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved + from ... + * tree-ssa-loop-im.c (cannot_overlap_p): ... here. + (mem_refs_may_alias_p): Adjust. + * tree-data-ref.h (dr_may_alias_p): Adjust. + * tree-data-ref.c: Include tree-affine.h. + (dr_analyze_indices): Do nothing for the non-loop case. + (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate + more cases in the non-loop case. + * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust + calls to dr_may_alias_p. + (write_alias_graph_to_ascii_ecc): Likewise. + (write_alias_graph_to_ascii_dot): Likewise. + (build_alias_set_optimal_p): Likewise. + +2011-08-23 Richard Guenther + + PR tree-optimization/50162 + * tree-vect-stmts.c (vectorizable_call): Fix argument lookup. + +2011-08-23 Richard Guenther + + * tree-data-ref.c (dr_analyze_indices): Add comments, handle + REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs. + (create_data_ref): Also dump access functions for the created data-ref. + +2011-08-22 Uros Bizjak + Kirill Yukhin + + PR target/50155 + * config/i386/sse.md (VI_AVX2): New. + (3): Use VI_AVX2 mode iterator. + (*3): Ditto. + (_andnot3): Ditto. + (*andnot3): Fix order of cond operands. + Add asserts for correct TARGET_xxx. + (*3): Ditto. + +2011-08-22 Anatoly Sokolov + + * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro. + * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove. + * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change + regclass argument type to reg_class_t. Change 'max' and 'v' vars + and return types to unsigned char. Use reg_class_contents instead + of class_contents. + (TARGET_CLASS_MAX_NREGS): Define. + +2011-08-22 Bernd Schmidt + + * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation + to make computed_jump_p return true. + +2011-08-22 Rainer Orth + + * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it. + (PICFLAG_FOR_TARGET): Substitute. + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2011-08-22 Dodji Seketeli + + * c-family/c-pch.c (c_common_read_pch): Re-set line table right + after reading in the pch. + +2011-08-22 H.J. Lu + + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined. + * configure: Regenerated. + +2011-08-22 Jakub Jelinek + + PR tree-optimization/50133 + * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location + from stmt instead of some statement around gsi. + + PR middle-end/50141 + * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if + innerdecl is a VAR_DECL. + +2011-08-22 Kirill Yukhin + + * config/i386/avx2intrin.h: New file. + * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI, + PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI, + V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI, + V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI, + V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI, + V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI, + V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI, + V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI, + V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI, + V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI, + V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT, + V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI, + V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI, + V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI, + V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI, + V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT, + V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT, + V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI, + VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI, + VOID_FTYPE_PV8SI_V8SI_V8SI, + V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT, + V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT, + V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT, + V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT, + V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT, + V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT, + V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT, + V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT, + V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT, + V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT, + V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT, + V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT, + V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT, + V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT, + V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT, + V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT, + V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT, + V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT, + V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT, + V4DI_FTYPE_V4DI_INT_CONVERT, + V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New. + * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256, + IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, + IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, + IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, + IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, + IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, + IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, + IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, + IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, + IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, + IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, + IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, + IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, + IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, + IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, + IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, + IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, + IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, + IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, + IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, + IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, + IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, + IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, + IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, + IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, + IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, + IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, + IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, + IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, + IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, + IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, + IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, + IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, + IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, + IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, + IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, + IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, + IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, + IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, + IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, + IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, + IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, + IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, + IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, + IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, + IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, + IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, + IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, + IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, + IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, + IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, + IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, + IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, + IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, + IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, + IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, + IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, + IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, + IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS, + IX86_BUILTIN_VBROADCASTSS_PS256, + IX86_BUILTIN_VBROADCASTSD_PD256, + IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, + IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, + IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, + IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, + IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, + IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, + IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, + IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, + IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, + IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, + IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, + IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, + IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256, + IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, + IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, + IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, + IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, + IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI, + IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF, + IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF, + IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF, + IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF, + IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI, + IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI, + IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI, + IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI. + (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256, + IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, + IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, + IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, + IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256. + (bdesc_args): Add IX86_BUILTIN_MPSADBW256, + IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, + IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, + IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, + IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, + IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, + IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, + IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, + IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, + IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, + IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, + IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, + IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, + IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, + IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, + IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, + IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, + IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, + IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, + IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, + IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, + IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, + IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, + IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, + IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, + IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, + IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, + IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, + IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, + IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, + IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, + IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, + IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, + IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, + IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, + IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, + IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, + IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, + IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, + IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, + IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, + IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, + IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, + IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, + IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, + IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, + IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, + IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, + IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, + IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, + IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, + IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, + IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, + IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, + IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, + IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, + IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, + IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, + IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256, + IX86_BUILTIN_VBROADCASTSD_PD256, + IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, + IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, + IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, + IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, + IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, + IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, + IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, + IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, + IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, + IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, + IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, + IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, + IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, + IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI. + (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF, + IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF, + IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF, + IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF, + IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI, + IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI, + IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI, + IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI, + IX86_BUILTIN_GATHERDIV8SI. + (ix86_preferred_simd_mode): Support AVX2 modes. + (ix86_expand_args_builtin): Support AVX2 builtins. + (ix86_expand_special_args_builtin): Likewise. + (ix86_expand_builtin): Likewise. + * config/i386/i386.md (UNSPEC_VPERMSI): New. + (UNSPEC_VPERMDF): Likewise. + (UNSPEC_VPERMSF): Likewise. + (UNSPEC_VPERMDI): Likewise. + (UNSPEC_VPERMTI): Likewise. + (UNSPEC_GATHER): Likewise. + (ssemodesuffix): Extend. + * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__ + is defined. + * config/i386/predicates.md (const1248_operand): New. + * config/i386/sse.md (VI1_AVX2): New mode iterator. + (VI2_AVX2): Likewise. + (VI4_AVX2): Likewise. + (VI8_AVX2): Likewise. + (VIMAX_AVX2): Likewise. + (SSESCALARMODE): Likewise. + (VI12_AVX2): Likewise. + (VI24_AVX2): Likewise. + (VI124_AVX2): Likewise. + (VI248_AVX2): Likewise. + (VI48_AVX2): Likewise. + (VI4SD_AVX2): Likewise. + (V48_AVX2): Likewise. + (AVX256MODE2P): Likewise. + (AVXMODE48P_DI): Likewise. + (sse2_avx2): New mode attribute. + (ssse3_avx2): Likewise. + (sse4_1_avx2): Likewise. + (avx_avx2): Likewise. + (ssebytemode): Likewise. + (AVXTOSSEMODE): Likewise. + (AVXMODE48P_DI): Likewise. + (gthrfirstp): Likewise. + (gthrlastp): Likewise. + (lshift): New code_iterator + (lshift): New code attribute. + (lshift): Likewise. + (ssescalarmodesuffix): Update. + (sseunpackmode): Likewise. + (ssepackmode): Likewise. + (avx2_vec_dupv4sf): New insn pattern. + (avx2_vec_dupv8sf): Likewise. + (avx2_interleave_highv4di): Likewise. + (avx2_interleave_lowv4di): Likewise. + (avx2_umulv4siv4di3): Likewise + (*avx2_umulv4siv4di3): Likewise + (avx2_pmaddwd): Likewise. + (*avx2_pmaddwd): Likewise. + (avx2_lshrqv4di3): Likewise. + (avx2_lshlqv4di3): Likewise. + (avx2_lshl3): Likewise. + (avx2_3): Likewise. + (*avx2_3): Likewise. + (avx2_3): Likewise. + (*avx2_3): Likewise. + (avx2_eq3): Likewise. + (*avx2_eq3): Likewise. + (avx2_gt3): Likewise. + (avx2_interleave_highv32qi): New. + (avx2_interleave_lowv32qi): Likewise. + (avx2_interleave_highv16hi): Likewise. + (avx2_interleave_lowv16hi): Likewise. + (avx2_interleave_highv8si): Likewise. + (avx2_interleave_lowv8si): Likewise. + (avx2_pshufd): Likewise. + (avx2_pshufd_1): Likewise. + (avx2_pshuflwv3): Likewise. + (avx2_pshuflw_1): Likewise. + (avx2_pshufhwv3): Likewise. + (avx2_pshufhw_1): Likewise. + (avx2_uavgv32qi3): Likewise. + (*avx2_uavgv32qi3): Likewise. + (avx2_uavgv16hi3): Likewise. + (*avx2_uavgv16hi3): Likewise. + (avx2_pmovmskb): Likewise. + (avx2_phaddwv16hi3): Likewise. + (avx2_phadddv8si3): Likewise. + (avx2_phaddswv16hi3): Likewise. + (avx2_phsubwv16hi3): Likewise. + (avx2_phsubdv8si3): Likewise. + (avx2_phsubswv16hi3): Likewise. + (avx2_pmaddubsw256): Likewise. + (avx2_umulhrswv16hi3): Likewise. + (*avx2_umulhrswv16hi3): Likewise. + (avx2_packusdw): Likewise. + (avx2_pblendd): Likewise. + (avx2_v16qiv16hi2): Likewise. + (avx2_v8qiv8si2): Likewise. + (avx2_v8hiv8si2): Likewise. + (avx2_v4qiv4di2): Likewise. + (avx2_v4hiv4di2): Likewise. + (avx2_v4siv4di2): Likewise. + (avx2_pbroadcast): Likewise. + (avx2_permvarv8si): Likewise. + (avx2_permv4df): Likewise. + (avx2_permvarv8sf): Likewise. + (avx2_permv4di): Likewise. + (avx2_permv2ti): Likewise. + (avx2_vec_dupv4df): Likewise. + (avx2_vbroadcasti128_): Likewise. + (avx2_vec_set_lo_v4di): Likewise. + (avx2_vec_set_hi_v4di): Likewise. + (*avx2_maskmov): Likewise. + (avx2_extracti128): Likewise. + (avx2_inserti128): Likewise. + (avx2_ashrvv8si): Likewise. + (avx2_ashrvv4si): Likewise. + (avx2_vv8si): Likewise. + (avx2_v): Likewise. + (avx2_vv2di): Likewise. + (avx2_gathersi): Likewise. + (*avx2_gathersi): Likewise. + (avx2_gatherdi): Likewise. + (*avx2_gatherdi): Likewise. + (avx2_gatherdi256): Likewise. + (*avx2_gatherdi256): Likewise. + (3): Use VI mode iterator. + (*3): Use VI mode iterator. + (_3): Rename from + sse2_3. Use VI12_AVX2 mode iterator. + (*_3): Rename from + *sse2_3. Use VI12_AVX2 mode iterator. + (mul3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator. + (*mul3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator. + (mul3_highpart): Rename from mulv8hi3_highpart. + Use VI2_AVX2 mode iterator. + (*mul3_highpart): Rename from *mulv8hi3_highpart. + Use VI2_AVX2 mode iterator. + (mul3): Rename from mulv4si3. Use VI4_AVX2 mode iterator. + (*mul3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator. + (*_mulv2siv2di3): Rename from *sse4_1_mulv4si3. + Use VI4_AVX2 mode iterator. + (ashr3): Use VI24_AVX2 mode iterator. + (lshr3): Use VI248_AVX2 mode iterator. + (_ashl3): Rename from sse2_ashlv1ti3. + Use VIMAX_AVX2 mode iterator. + (_andnot3): Rename from sse2_andnot3. + Use VI mode iterator. + (*andnot3): Update for AVX2. + (*3): Likewise. + (_packsswb): Rename from sse2_packsswb. + Use VI1_AVX mode iterator. + (_packssdw): Rename from sse2_packssdw. + Use VI2_AVX mode iterator. + (_packuswb): Rename from sse2_packsswb. + Use VI1_AVX mode iterator. + (_psadbw): Rename from sse2_psadbw. + Use VI8_AVX2 mode iterator. + (_pshufb3): Rename from ssse3_pshufbv16qi3. + Use VI1_AVX2 mode iterator. + (_psign3): Rename from ssse3_psign3. + Use VI124_AVX2 mode iterator. + (_palignr): Rename from ssse3_palignrti. + Use SSESCALARMODE mode iterator. + (abs2): Use VI124_AVX2 mode iterator. + (_movntdqa): Rename from sse4_1_movntdqa. + Use VI8_AVX2 mode iterator. + (_mpsadbw): Rename from sse4_1_mpsadbw. + Use VI1_AVX2 mode iterator. + (_pblendvb): Rename from sse4_1_pblendvb. + Use VI1_AVX2 mode iterator. + (_pblendw): Rename from sse4_1_pblendvb. + Use VI2_AVX2 mode iterator. + (_maskload): Rename from + avx_maskload. Use V48_AVX2 mode iterator. + (_maskstore): Rename from + avx_maskstore. + Use V48_AVX2 mode iterator. + * doc/extend.texi: Document AVX2 built-in functions. + * doc/invoke.texi: Document -mavx2. + +2011-08-22 Matthias Klose + + Revert: + 2011-07-11 Arthur Loiret + Matthias Klose + * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if + tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc + convention. + * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. + +2011-08-22 Mikael Pettersson + + PR bootstrap/50146 + * ira-color.c (assign_hard_reg): Move saved_nregs declaration + to #ifndef HONOR_REG_ALLOC_ORDER block. + +2011-08-21 Richard Henderson + + * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN. + * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P. + * resource.c (next_insn_no_annul): Likewise. + (mark_set_resources): Likewise. + * reorg.c (delete_from_delay_slot): Likewise. + (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise. + (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing. + +2011-08-21 Uros Bizjak + + * config/i386/i386.md (any_div): Remove. + (sgnprefix): Update for removal. + (u): Ditto. + +2011-08-20 Vladimir Makarov + + * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class + for ira_reg_class_max_nregs. Increase pressure by 1. + (mark_pseudo_regno_subword_dead): Use allocno class + for ira_reg_class_max_nregs. + +2011-08-20 Richard Henderson + + * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, + config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, + config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, + config/c6x/ltf.c: Adjust include path for soft-fp. + +2011-08-20 H.J. Lu + + PR other/46770 + * config.gcc (tm_file): Add initfini-array.h if + .init_arrary/.fini_array are supported. + + * crtstuff.c: Don't generate .ctors nor .dtors sections if + USE_INITFINI_ARRAY is defined. + + * output.h (default_elf_init_array_asm_out_constructor): New. + (default_elf_fini_array_asm_out_destructor): Likewise. + * varasm.c (elf_init_array_section): Likewise. + (elf_fini_array_section): Likewise. + (get_elf_initfini_array_priority_section): Likewise. + (default_elf_init_array_asm_out_constructor): Likewise. + (default_elf_fini_array_asm_out_destructor): Likewise. + + * config/initfini-array.h: New. + +2011-08-20 Richard Sandiford + + * config/mips/mips.c (mips_class_max_nregs): Check that the mode is + OK for ST_REGS and FP_REGS before taking those classes into account. + +2011-08-20 Richard Sandiford + + * config/mips/mips.c (mips_reorg_process_insns): Check for jumps + before checking for annulled branches. + +2011-08-20 Uros Bizjak + + * config/i386/i386.c (ix86_binary_operator_ok): Use + satisfies_constraint_L. + +2011-08-20 Uros Bizjak + Michael Matz + + * config/i386/i386.c (ix86_expand_round_sse4): Expand as + trunc (a + copysign (nextafter (0.5, 0.0), a)). + +2011-08-20 Anatoly Sokolov + + * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove. + * doc/tm.texi: Regenerate. + * targhooks.c (default_preferred_output_reload_class): Don't use + PREFERRED_OUTPUT_RELOAD_CLASS macro. + * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison. + +2011-08-20 Jakub Jelinek + + PR tree-optimization/48739 + * tree-ssa.c: Include cfgloop.h. + (execute_update_addresses_taken): When updating ssa, if in loop closed + SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa. + * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H). + +2011-08-19 Vladimir Makarov + + PR rtl-optimization/49936 + * ira.c (ira_init_register_move_cost): Ignore too small subclasses + for calculation of max register move costs. + +2011-08-19 Joseph Myers + + * c-parser.c (c_parser_postfix_expression): Convert operands of + __builtin_complex to their semantic types. + +2011-08-19 H.J. Lu + + PR middle-end/49721 + * explow.c (convert_memory_address_addr_space): Also permute the + conversion and addition of constant for zero-extend. + +2011-08-19 Joseph Myers + + * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX. + * doc/extend.texi (__builtin_complex): Document. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants + beyond conversions. + (convert_mult_to_widen): Convert constant inputs to the right type. + (convert_plusminus_to_widen): Don't automatically reject inputs that + are not an SSA_NAME. + Convert constant inputs to the right type. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs + to the correct type. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle + unsigned inputs of different modes. + (convert_plusminus_to_widen): Likewise. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument + 'type'. + Use 'type' from caller, not inferred from 'rhs'. + Don't reject non-conversion statements. Do return lhs in this case. + (is_widening_mult_p): Add new argument 'type'. + Use 'type' from caller, not inferred from 'stmt'. + Pass type to is_widening_mult_rhs_p. + (convert_mult_to_widen): Pass type to is_widening_mult_p. + (convert_plusminus_to_widen): Likewise. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME. + Ensure the the larger type is the first operand. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (convert_mult_to_widen): Convert + unsupported unsigned multiplies to signed. + (convert_plusminus_to_widen): Likewise. + +2011-08-19 Andrew Stubbs + + * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single + conversion statement separating multiply-and-accumulate. + +2011-08-19 Richard Guenther + + PR tree-optimization/50067 + * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF + offset only if we accounted for it. + +2011-08-19 Andrew Stubbs + + * config/arm/arm.md (maddhidi4): Remove '*' from name. + * expr.c (expand_expr_real_2): Use find_widening_optab_handler. + * optabs.c (find_widening_optab_handler_and_mode): New function. + (expand_widen_pattern_expr): Use find_widening_optab_handler. + (expand_binop_directly): Likewise. + (expand_binop): Likewise. + * optabs.h (find_widening_optab_handler): New macro define. + (find_widening_optab_handler_and_mode): New prototype. + * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR + type precision rules. + (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR. + * tree-ssa-math-opts.c (build_and_insert_cast): New function. + (is_widening_mult_rhs_p): Allow widening by more than one mode. + Explicitly disallow mis-matched input types. + (convert_mult_to_widen): Use find_widening_optab_handler, and cast + input types to fit the new handler. + (convert_plusminus_to_widen): Likewise. + +2011-08-19 Andrew Stubbs + + * expr.c (expand_expr_real_2): Use widening_optab_handler. + * genopinit.c (optabs): Use set_widening_optab_handler for $N. + (gen_insn): $N now means $a must be wider than $b, not consecutive. + * optabs.c (widened_mode): New function. + (expand_widen_pattern_expr): Use widening_optab_handler. + (expand_binop_directly): Likewise. + (expand_binop): Likewise. + * optabs.h (widening_optab_handlers): New struct. + (optab_d): New member, 'widening'. + (widening_optab_handler): New function. + (set_widening_optab_handler): New function. + * tree-ssa-math-opts.c (convert_mult_to_widen): Use + widening_optab_handler. + (convert_plusminus_to_widen): Likewise. + +2011-08-19 Joseph Myers + + * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if + pedantic. + * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment. + * ginclude/stdnoreturn.h (noreturn): Don't define for C++. + +2011-08-19 Joseph Myers + + * opth-gen.awk: Do not declare target save/restore structures and + functions if IN_RTS defined. + +2011-08-19 Matthew Gretton-Dann + + PR target/49437 + * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue + when stack was realigned in interrupt handler prologue. + +2011-08-18 Joseph Myers + + * c-decl.c (shadow_tag_warned): Check for _Noreturn. + (quals_from_declspecs): Assert _Noreturn not present. + (grokdeclarator): Handle _Noreturn. + (build_null_declspecs): Initialize noreturn_p. + (declspecs_add_scspec): Handle RID_NORETURN. + * c-parser.c (c_token_starts_declspecs, c_parser_declspecs) + (c_parser_attributes): Handle RID_NORETURN. + * c-tree.h (struct c_declspecs): Add noreturn_p. + * ginclude/stdnoreturn.h: New. + * Makefile.in (USER_H): Add stdnoreturn.h. + +2011-08-18 Kirill Yukhin + + * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New. + (OPTION_MASK_ISA_AVX_UNSET): Update. + (OPTION_MASK_ISA_AVX2_UNSET): New. + (ix86_handle_option): Handle OPT_mavx2 case. + * config/i386/cpuid.h (bit_AVX2): New. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect + AVX2 feature. + * config/i386/i386-c.c (ix86_target_macros_internal): + Conditionally define __AVX2__. + * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2. + Define "core-avx2" processor alias. Handle avx2 option. + (ix86_valid_target_attribute_inner_p): Handle avx2 option. + * config/i386/i386.h (TARGET_AVX2): New. + * config/i386/i386.opt (mavx2): New. + * doc/invoke.texi: Document -mavx2. + +2011-08-18 Vladimir Makarov + + PR rtl-optimization/49890 + * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude + subclasses of class which is superset of a pressure class. + +2011-08-18 H.J. Lu + Igor Zamyatin + + * config/i386/i386-c.c (ix86_target_macros_internal): Replace int + with HOST_WIDE_INT for isa_flag. + (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for + isa variables. + + * config/i386/i386.c (ix86_target_string): Replace int with + HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. + (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. + (pta_flags): Removed. + (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). + (pta): Use HOST_WIDE_INT on flags. + (builtin_isa): Use HOST_WIDE_INT on isa. + (ix86_add_new_builtins): Likewise. + (def_builtin): Use HOST_WIDE_INT on mask. + (def_builtin_const): Likewise. + (builtin_description): Likewise. + + * config/i386/i386.opt (ix86_isa_flags): Replace int with + HOST_WIDE_INT. + (ix86_isa_flags_explicit): Likewise. + (x_ix86_isa_flags_explicit): Likewise. + +2011-08-17 Vladimir Makarov + + PR rtl-optimization/50107 + * ira-int.h (ira_hard_reg_not_in_set_p): Remove. + (ira_hard_reg_in_set_p): New. + + * ira-color.c (calculate_saved_nregs): New. + (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all + hard regs. + (allocno_reload_assign, fast_allocation): Use + ira_hard_reg_set_intersection_p instead of + ira_hard_reg_not_in_set_p. + + * ira.c (setup_reg_renumber): Use + ira_hard_reg_set_intersection_p instead of + ira_hard_reg_not_in_set_p. + (setup_allocno_assignment_flags, calculate_allocation_cost): Use + ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p. + + * ira-costs.c (ira_tune_allocno_costs): Use + ira_hard_reg_set_intersection_p instead of + ira_hard_reg_not_in_set_p. + +2011-08-18 H.J. Lu + Igor Zamyatin + + * hwint.h (HOST_WIDE_INT_1): New. + + * opt-functions.awk (switch_bit_fields): Initialize the + host_wide_int field. + (host_wide_int_var_name): New. + (var_type_struct): Check and return HOST_WIDE_INT. + + * opt-read.awk: Handle HOST_WIDE_INT for "Variable". + + * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. + + * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly + check masks for HOST_WIDE_INT. + + * opts-common.c (set_option): Support HOST_WIDE_INT flag_var. + (option_enabled): Likewise. + (get_option_state): Likewise. + + * opts.h (cl_option): Add cl_host_wide_int. Change var_value + to HOST_WIDE_INT. + +2011-08-18 Rainer Orth + Marc Glisse + + PR libstdc++-v3/1773 + * target.def (decl_mangling_context): New C++ hook. + * doc/tm.texi: Regenerate. + * config/sol2-cxx.c, config/sol2-stubs.c: New files. + * config/sol2-protos.h: Group by source file. + (solaris_cxx_decl_mangling_context): Declare. + * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define. + * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets. + Use $<. + * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs. + Add sol2-stubs.o to extra_objs. + +2011-08-18 Jakub Jelinek + + PR target/50009 + * stor-layout.c (update_alignment_for_field): Don't ICE on + packed flexible array members if ms_bitfield_layout_p. + + PR target/50092 + * config/i386/i386.c (assign_386_stack_local): Call validize_mem + on the result before returning it. + + PR debug/50017 + * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi) + is a debug stmt, use location of the first non-debug stmt after it. + +2011-08-18 Richard Sandiford + + * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET. + (arm_size_rtx_costs): Likewise. + +2011-08-18 Richard Guenther + + * tree.h (tree_int_cst_msb): Remove. + * tree.c (tree_int_cst_msb): Likewise. + (tree_int_cst_sign_bit): Move from ... + * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here. + +2011-08-18 Richard Sandiford + + * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. + * doc/tm.texi: Regenerate. + * target.def (rtx_costs): Add an opno parameter. + * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with... + (hook_bool_rtx_int_int_int_intp_bool_false): ...this. + * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with... + (hook_bool_rtx_int_int_int_intp_bool_false): ...this. + * cse.c (COST_IN): Add an opno parameter. + (notreg_cost): Likewise. Update call to rtx_cost. + (COST, fold_rtx): Update accordingly. + * dojump.c (prefer_and_bit_test): Update call to rtx_cost. + * expmed.c (emit_store_flag): Likewise. + * optabs.c (avoid_expensive_constant): Add an opno parameter. + Update call to rtx_cost. + (expand_binop_directly, expand_binop): Likewise. + (expand_twoval_binop, prepare_cmp_insn): Likewise. + * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters. + (set_src_cost, get_full_set_src_cost): Update accordingly. + * rtlanal.c (rtx_cost): Add an opno parameter. Update call + to target hook. + (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost. + (default_adress_cost): Update calls to rtx_cost. + + * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs) + (arm_slowmul_rtx_costs): Adjust calls to rtx_cost. + (arm_rtx_costs): Add an opno parameter. + * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and + adjust any recursive rtx-cost calls. + * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise. + * config/bfin/bfin.c (bfin_rtx_costs): Likewise. + * config/c6x/c6x.c (c6x_rtx_costs): Likewise. + * config/cris/cris.c (cris_rtx_costs): Likewise. + * config/frv/frv.c (frv_rtx_costs): Likewise. + * config/h8300/h8300.c (h8300_rtx_costs): Likewise. + * config/i386/i386.c (ix86_rtx_costs): Likewise. + * config/ia64/ia64.c (ia64_rtx_costs): Likewise. + * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise. + * config/lm32/lm32.c (lm32_rtx_costs): Likewise. + * config/m32c/m32c.c (m32c_rtx_costs): Likewise. + * config/m32r/m32r.c (m32r_rtx_costs): Likewise. + * config/m68k/m68k.c (m68k_rtx_costs): Likewise. + * config/mcore/mcore.c (mcore_rtx_costs): Likewise. + * config/mep/mep.c (mep_rtx_cost): Likewise. + * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise. + * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost. + (mips_zero_extend_cost): Add an opno parameter. + * config/mmix/mmix.c (mmix_rtx_costs): Likewise. + * config/mn10300/mn10300.c (mn10300_address_cost): Update call + to rtx_cost. + (mn10300_rtx_costs): Add an opno parameter and adjust any recursive + rtx-cost calls. + * config/pa/pa.c (hppa_rtx_costs): Likewise. + * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise. + * config/picochip/picochip.c (picochip_rtx_costs): Likewise. + * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise. + (rs6000_debug_rtx_costs): Likewise. + * config/s390/s390.c (s390_rtx_costs): Likewise. + * config/score/score-protos.h (score_rtx_costs): Likewise. + * config/score/score.c (score_rtx_costs): Likewise. + * config/sh/sh.c (andcosts): Update call to rtx_cost. + (sh_rtx_costs): Add an opno parameter. + * config/sparc/sparc.c (sparc_rtx_costs): Likewise. + * config/spu/spu.c (spu_rtx_costs): Likewise. + * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise. + * config/v850/v850.c (v850_rtx_costs): Likewise. + * config/vax/vax.c (vax_rtx_costs): Likewise. + * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise. + +2011-08-18 Richard Sandiford + + * rtl.h (set_src_cost, get_full_set_src_cost): New functions. + * auto-inc-dec.c (attempt_change): Use set_src_cost instead of + rtx_cost. + * calls.c (precompute_register_parameters): Likewise. + * combine.c (expand_compound_operation, make_extraction): Likewise. + (force_to_mode, distribute_and_simplify_rtx): Likewise. + * dse.c (find_shift_sequence): Likewise. + * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise. + * expr.c (compress_float_constant): Likewise. + * fwprop.c (should_replace_address, try_fwprop_subst): Likewise. + * gcse.c (want_to_gcse_p): Likewise. + * ifcvt.c (noce_try_sign_mask): Likewise. + * loop-doloop.c (doloop_optimize): Likewise. + * loop-invariant.c (create_new_invariant): Likewise. + * optabs.c (avoid_expensive_constant): Likewise. + * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands) + (try_replace_in_use, reload_cse_move2add): Likewise. + * reload1.c (calculate_elim_costs_all_insns): Likewise. + (note_reg_elim_costly): Likewise. + * rtlanal.c (insn_rtx_cost): Likewise. + * simplify-rtx.c (simplify_binary_operation_1): Likewise. + * stmt.c (lshift_cheap_p): Likewise. + * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise. + * config/avr/avr.c (final_prescan_insn): Likewise. + * config/bfin/bfin.c (bfin_rtx_costs): Likewise. + * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise. + +2011-08-18 Richard Sandiford + + * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions. + * auto-inc-dec.c (attempt_change): Use set_rtx_cost. + * cfgloopanal.c (seq_cost): Likewise. + * loop-invariant.c (create_new_invariant): Likewise. + * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn) + (reload_cse_move2add): Use get_full_set_rtx_cost. + +2011-08-18 Richard Guenther + + * expr.c (get_inner_reference): Fix typo in last change. + +2011-08-18 Paolo Carlini + Joseph Myers + + PR tree-optimization/49963 + * hwint.c (absu_hwi): Define. + * hwint.h (absu_hwi): Declare. + * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead + of abs_hwi. + * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. + * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. + +2011-08-18 Richard Guenther + + * expr.c (get_inner_reference): Sign-extend the constant + twos-complement offset before doing arbitrary precision + arithmetic on it. + * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. + (get_constraint_for_1): Pass the offset of a MEM_REF unchanged + to get_constraint_for_ptr_offset. + +2011-08-17 Kaz Kojima + + PR target/50068 + * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule. + +2011-08-17 Richard Guenther + + * tree.h (convert_to_ptrofftype_loc): New function. + (convert_to_ptrofftype): Define. + * builtins.c (expand_builtin_bzero): Use size_type_node. + (fold_builtin_bzero): Likewise. + (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer. + * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc. + * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc. + (cgraph_redirect_edge_call_stmt_to_callee): Use size_int. + * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus. + * fold-const.c (build_range_check): Negate using the original type. + (fold_unary_loc): Use fold_build_pointer_plus_loc. + * gimple-fold.c (gimple_adjust_this_by_delta): Use + convert_to_ptrofftype. + * gimplify.c (gimplify_self_mod_expr): Likewise. + * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise. + (graphite_create_new_loop_guard): Likewise. + * graphite-sese-to-poly.c (my_long_long): Remove. + (scop_ivs_can_be_represented): Adjust. + * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p. + * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus. + * tree-loop-distribution.c (build_size_arg_loc): Use + size_type_node. + (generate_memset_zero): Simplify. + * tree-mudflap.c: Use fold_convert, not convert. + * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in + its own type. + (determine_offset): Likewise for DR_STEP. + (valid_initializer_p): Likewise. + * tree-profile.c (prepare_instrumented_value): Convert the pointer + to an integer type of same size. + * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer + to sizetype without need. + * tree-ssa-address.c (tree_mem_ref_addr): Likewise. + * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype. + * tree-ssa-loop-manip.c (create_iv): Likewise. + (determine_exit_conditions): Adjust comment. + * tree-ssa-pre.c (create_expression_by_pieces): Use + convert_to_ptrofftype. + * tree-ssa-structalias.c (get_constraint_for_1): Likewise. + * varasm.c (array_size_for_constructor): Compute using double_ints. + +2011-08-16 Ulrich Weigand + + * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests + when generating an integer result where possible. Short-cut + comparison against 0 also for QImode. + +2011-08-16 Ulrich Weigand + + * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro. + * config/spu/spu-protos.h (spu_legitimize_reload_address): Add + prototype. + * config/spu/spu.c (spu_legitimize_reload_address): New function. + (spu_legitimate_address_p): Do not check displacement if the base + is an eliminable stack register. + +2011-08-16 Anatoly Sokolov + + * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS, + PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. + * config/m32c/m32c-protos.h (m32c_preferred_reload_class, + m32c_preferred_output_reload_class): Remove. + * config/m32c/m32c.c (m32c_preferred_reload_class): Make static. + Change rclass argument and return types to reg_class_t. Use + reg_class_subset_p instead of class_sizes. + (m32c_preferred_output_reload_class): Make static. Change rclass + argument and return types to reg_class_t. + (TARGET_PREFERRED_RELOAD_CLASS, + TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. + +2011-08-16 Kai Tietz + + * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option. + +2011-08-16 Richard GUenther + + PR tree-optimization/50082 + * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow + warnings here, instead of ... + (ssa_forward_propagate_and_combine): ... here. + (forward_propagate_into_comparison_1): Adjust. + (forward_propagate_into_comparison): Likewise. + (forward_propagate_into_gimple_cond): Likewise. + (forward_propagate_into_cond): Likewise. + +2011-08-16 Andreas Schwab + + * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def + instead of ggc_alloc_zone_vec_rtvec_def. + +2011-08-16 Richard Guenther + + * tree.h (ptrofftype_p): New helper function. + * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR + offset verification. + (verify_gimple_assign_binary): Likewise. + * tree.c (build2_stat): Likewise. + * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise. + (reset_evolution_in_loop): Likewise. + * tree-chrec.h (build_polynomial_chrec): Likewise. + +2011-08-16 Liang Wang + + * ggc.h (ggc_alloc_rtvec_sized): Change arguments of + ggc_alloc_zone_vec_rtvec_def. + +2011-08-16 Richard Guenther + + * tree-vrp.c (extract_range_from_multiplicative_op_1): New + helper factored out from ... + (extract_range_from_binary_expr_1): ... here. Re-structure + to not glob handling too different tree codes. + +2011-08-15 Richard Henderson + + PR middle-end/50006 + * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size + setting out to include allocate_stack named pattern as well. + * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note. + * stmt.c (expand_stack_restore): Likewise. + +2011-08-15 Richard Guenther + + PR middle-end/50082 + * fold-const.c (maybe_canonicalize_comparison_1): Properly + convert the modified operand to the other operand type. + (fold_comparison): Call maybe_canonicalize_comparison_1 with + useless conversions stripped from comparison operands. + +2011-08-15 Richard Guenther + + * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case. + (extract_range_from_unary_expr_1): Restructure. + +2011-08-15 Richard Guenther + + PR tree-optimization/50058 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate + copy matching. + +2011-08-15 Ramana Radhakrishnan + + PR target/50022 + * config/arm/arm.c (output_move_double): Add 2 parameters + to count the number of insns emitted and whether to emit or not. + Use the flag to decide when to emit and count number of instructions + that will be emitted. + Handle case where output_move_double might be called for calculating + lengths with an invalid constant. + (arm_count_output_move_double_insns): Define. + * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare. + (output_move_double): Adjust prototype. + * config/arm/vfp.md ("*movdi_vfp"): Adjust call to + output_move_double. + ("*movdi_vfp_cortexa8"): Likewise and add attribute + for ce_count. + * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double. + ("*movdf_soft_insn"): Likewise. + * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise. + ("*cirrus_thumb2_movdi"): Likewise. + ("*thumb2_cirrus_movdf_hard_insn"): Likewise. + ("*cirrus_movdf_hard_insn"): Likewise. + * config/arm/neon.md (*neon_mov VD): Likewise. + * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise. + ("mov_internal VMMX"): Likewise. + * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise. + +2011-08-14 Uros Bizjak + + * config/i386/i386.c (ix86_expand_round_sse4): New function. + * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype. + * config/i386/i386.md (round2): Use ix86_expand_round_sse4 + for TARGET_ROUND. + + (rint2): Simplify TARGET_ROUND check. + (floor2): Ditto. + (ceil2): Ditto. + (btrunc2): Ditto. + +2011-08-14 Anatoly Sokolov + + * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine + as mmix_preferred_output_reload_class. + +2011-08-14 Georg-Johann Lay + + * PR target/49903 + * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum. + (branch_unspec): New insn. + (branch): Beauty farm. + * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC + to be IF_THEN_ELSE. + (avr_compare_pattern, avr_reorg_remove_redundant_compare): + New static functions. + (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN. + Use CONST_INT_P. Beauty. + +2011-08-12 Richard Henderson + + PR rtl-opt/49994 + * sched-init.h (struct deps_desc): Add sched_before_next_jump. + * sched-deps.c (init_deps): Clear it. + (deps_analyze_insn): Consume it. + (sched_analyze_insn): Fill it. + +2011-08-12 Ramana Radhakrishnan + + PR target/48328 + * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance + for tbh instructions. + +2011-08-12 Diego Novillo + + * data-streamer.h (streamer_write_zero): Rename from output_zero. + (streamer_write_uhwi): Rename from lto_output_uleb128. + (streamer_write_hwi): Rename from output_sleb128. + (streamer_write_string): Rename from lto_output_string. + (streamer_string_index): Rename from lto_string_index. + (streamer_write_string_with_length): Rename from + lto_output_string_with_length. + (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream. + (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream. + (streamer_read_string): Rename from lto_input_string. + (streamer_read_indexed_string): Rename from input_string_internal. + (streamer_read_uhwi): Rename from lto_input_uleb128. + (streamer_read_hwi): Rename from lto_input_sleb128. + (streamer_write_hwi_in_range): Rename from lto_output_int_in_range. + (streamer_read_hwi_in_range): Rename from lto_input_int_in_range. + (streamer_write_enum): Rename from lto_output_enum. + (streamer_read_enum): Rename from lto_input_enum. + (streamer_write_record_start): Rename from output_record_start. + (streamer_read_record_start): Rename from input_record_start. + (streamer_write_bitpack): Rename from lto_output_bitpack. + (streamer_read_bitpack): Rename from lto_input_bitpack. + (streamer_write_char_stream): Rename from lto_output_1_stream. + (streamer_read_uchar): Rename from lto_input_1_unsigned. + * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d. + (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p. + (streamer_read_string_cst): Rename from input_string_cst. + (streamer_read_chain): Rename from lto_input_chain. + (streamer_alloc_tree): Rename from lto_materialize_tree. + (streamer_read_tree_body): Rename from lto_input_tree_pointers. + (streamer_get_pickled_tree): Rename from lto_get_pickled_tree. + (streamer_get_builtin_tree): Rename from lto_get_builtin_tree. + (streamer_read_integer_cst): Rename from lto_input_integer_cst. + (streamer_read_tree_bitfields): Rename from tree_read_bitfields. + (streamer_write_chain): Rename from lto_output_chain. + (streamer_write_tree_header): Rename from lto_output_tree_header. + (streamer_pack_tree_bitfields): Rename from pack_value_fields. + (streamer_write_tree_body): Rename from lto_output_tree_pointers. + (streamer_write_integer_cst): Rename from lto_output_integer_cst. + (streamer_write_builtin): Rename from lto_output_builtin_tree. + (streamer_check_handled_ts_structures): Rename from + check_handled_ts_structures. + (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert. + (streamer_tree_cache_insert_at): Rename from + lto_streamer_cache_insert_at. + (streamer_tree_cache_append): Rename from lto_streamer_cache_append. + (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup. + (streamer_tree_cache_get): Rename from lto_streamer_cache_get. + (streamer_tree_cache_create): Rename from lto_streamer_cache_create. + (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete. + * tree-streamer-out.c (write_string_cst): Rename from output_string_cst. + (write_identifier): Rename from output_identifier. + (write_ts_common_tree_pointers): Rename from + lto_output_ts_common_tree_pointers. + (write_ts_vector_tree_pointers): Rename from + lto_output_ts_vector_tree_pointers. + (write_ts_complex_tree_pointers): Rename from + lto_output_ts_complex_tree_pointers. + (write_ts_decl_minimal_tree_pointers): Rename from + lto_output_ts_decl_minimal_tree_pointers. + (write_ts_decl_common_tree_pointers): Rename from + lto_output_ts_decl_common_tree_pointers. + (write_ts_decl_non_common_tree_pointers): Rename from + lto_output_ts_decl_non_common_tree_pointers. + (write_ts_decl_with_vis_tree_pointers): Rename from + lto_output_ts_decl_with_vis_tree_pointers. + (write_ts_field_decl_tree_pointers): Rename from + lto_output_ts_field_decl_tree_pointers. + (write_ts_function_decl_tree_pointers): Rename from + lto_output_ts_function_decl_tree_pointers. + (write_ts_type_common_tree_pointers): Rename from + lto_output_ts_type_common_tree_pointers. + (write_ts_type_non_common_tree_pointers): Rename from + lto_output_ts_type_non_common_tree_pointers. + (write_ts_list_tree_pointers): Rename from + lto_output_ts_list_tree_pointers. + (write_ts_vec_tree_pointers): Rename from + lto_output_ts_vec_tree_pointers. + (write_ts_exp_tree_pointers): Rename from + lto_output_ts_exp_tree_pointers. + (write_ts_block_tree_pointers): Rename from + lto_output_ts_block_tree_pointers. + (write_ts_binfo_tree_pointers): Rename from + lto_output_ts_binfo_tree_pointers. + (write_ts_constructor_tree_pointers): Rename from + lto_output_ts_constructor_tree_pointers. + (write_ts_target_option): Rename from lto_output_ts_target_option. + (write_ts_translation_unit_decl_tree_pointers): Rename from + lto_output_ts_translation_unit_decl_tree_pointers. + * tree-streamer.c (streamer_tree_cache_add_to_node_array): + Rename from lto_streamer_cache_add_to_node_array. + (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1. + (record_common_node): Rename from lto_record_common_node. + + * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward + declarations. + * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused + function. + * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove + unused function. + * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H. + (ipa-reference.o): Likewise. + * lto-section-out.c: Include data-streamer.h. + * ipa-reference.c: Include data-streamer.h. + +2011-08-12 Nick Clifton + + * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern. + * doc/md.texi (cmpstrn): Note that the comparison stops if both + fetched bytes are zero. + (cmpstr): Likewise. + (cmpmem): Note that the comparison does not stop if both of the + fetched bytes are zero. + +2011-08-12 Uros Bizjak + + * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L} + BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions. + * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL, + BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting + to integer_type_node. + * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL, + BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND. + * builtins.c (expand_builtin_in): Ditto. + (mathfn_built_in_1): Ditto. + (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and + BUILT_IN_IFLOOR. + (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and + BUILT_IN_IROUND. + (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR + BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL, + BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets. + +2011-08-12 Richard Guenther + + * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X. + +2011-08-12 Romain Geissler + + * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H. + +2011-08-12 Richard Sandiford + + * config/arm/arm.c (get_label_padding): New function. + (create_fix_barrier, arm_reorg): Use it. + +2011-08-11 Uros Bizjak + + PR target/49781 + * config/i386/i386.md (*lea_5_zext): New. + (*lea_6_zext): Ditto. + * config/i386/predicates.md (const_32bit_mask): New predicate. + (lea_address_operand): Reject AND. + * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with + const_32bit_mask immediate. + (ix86_print_operand_address): Handle AND. + (memory_address_length): Ditto. + +2011-08-11 Romain Geissler + Brian Hackett + + * plugin.def: Add event for finish_decl. + * plugin.c (register_callback, invoke_plugin_callbacks): Same. + * c-decl.c (finish_decl): Invoke callbacks on above event. + * doc/plugins.texi: Document above event. + +2011-08-11 Richard Guenther + + * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant + lookups, make looking through aggregate copies stronger. + +2011-08-11 Richard Henderson + + PR bootstrap/50018 + * expr.c (fixup_args_size_notes): Accept and ignore normal calls. + +2011-08-11 Richard Guenther + + * lto-cgraph.c (input_node): Use DECL_BUILT_IN. + * tree-vrp.c (stmt_interesting_for_vrp): Likewise. + (vrp_visit_stmt): Likewise. + +2011-08-11 Richard Guenther + + PR middle-end/50040 + * gimplify.c (gimplify_modify_expr_complex_part): Mark the + load of the other piece with TREE_NO_WARNING. + * tree-flow.h (warn_uninit): Adjust prototype. + * tree-ssa.c (warn_uninit): Take uninitialized SSA name, + the base variable and the expression that is used separately. + Properly query all TREE_NO_WARNING flags. + (struct walk_data): Remove. + (warn_uninitialized_var): Likewise. + (warn_uninitialized_vars): Do not walk gimple pieces but simply + look at all SSA uses of the statement. Handle unused memory + separately. + * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust. + +2011-08-11 Kazuhiro Inaoka + + * config/rx/rx.md (movsicc): Allow register to register transfers. + (*movsicc): Likewise. + (*stcc): Restrict this pattern to EQ and NE compares. + (*stcc_reg): New pattern. Works for any comparison but only for + register transfers. + +2011-08-11 Diego Novillo + + * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): + Call stream_write_tree instead of output_record_start. + (lto_output_ts_binfo_tree_pointers): Likewise. + + * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h. + Convert it to a macro. + (stream_read_tree): Likewise. + + * lto-streamer.h (lto_stream_as_builtin_p): Move ... + * tree-streamer.h (lto_stream_as_builtin_p): ... here. + + * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append + and tree_read_bitfields. + * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c + (lto_write_tree): Call it. + * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c + * streamer-hooks.h (struct streamer_hooks): Remove fields + name, is_streamable and alloc_tree. Update all users. + * tree-streamer-in.c (tree_read_bitfields): Factor out of ... + (lto_materialize_tree): ... here. + Handle CALL_EXPR codes. + Remove call to lto_streamer_cache_append. + * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes. + * tree-streamer.h (tree_read_bitfields): Declare. + + * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H. + (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H. + * tree-streamer.h (stream_read_tree): New. Replace all calls + to lto_input_tree with it. + (stream_write_tree): New. Replace all calls to lto_output_tree, + lto_output_tree_ref and lto_output_tree_or_ref with it. + * lto-streamer-in.c (lto_read_tree): Inline code from + lto_streamer_read_tree. + (lto_input_tree): Move from tree-streamer-in.c. + * lto-streamer-out.c (lto_output_tree_ref): Make static. + Remove handling of NULL values for EXPR. + Do not handle EXPRs that are not indexable. + (lto_write_tree): Move from tree-streamer-out.c. + Inline lto_streamer_write_tree. + (lto_output_tree): Move from tree-streamer-out.c. + If REF_P is true and EXPR is indexable, call lto_output_tree_ref. + * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c. + (lto_preload_common_nodes): Likewise. + Remove assertions and adjustments for nodes + main_identifier_node, ptrdiff_type_node and fileptr_type_node. + (lto_streamer_hooks_init): Set streamer_hooks.write_tree to + lto_output_tree and streamer_hooks.read_tree to lto_input_tree. + * lto-streamer.h (lto_input_tree): Declare. + (lto_output_tree_ref): Remove. + * streamer-hooks.h (struct streamer_hooks): Remove fields + preload_common_nodes, indexable_with_decls_p, + pack_value_fields, unpack_value_fields and output_tree_header. + Update all users. + * tree-streamer-in.c (lto_materialize_tree): Make extern. + (lto_input_tree_pointers): Likewise. + (lto_read_tree): Move to lto-streamer-in.c. + (lto_input_integer_cst): Make extern. + (lto_get_pickled_tree): Likewise. + (lto_get_builtin_tree): Likewise. + (lto_input_tree): Move to lto-streamer-in.c. + * tree-streamer-out.c (pack_value_fields): Make extern. + (lto_output_tree_or_ref): Remove. Replace all callers with + calls to stream_write_tree. + (lto_output_builtin_tree): Make extern. + (lto_streamer_write_tree): Inline into lto_write_tree. + (lto_output_tree_pointers): Make extern. + (lto_output_tree_header): Likewise. + (lto_output_integer_cst): Likewise. + (lto_write_tree): Move to lto-streamer-out.c. + (lto_output_tree): Likewise. + * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c + (preload_common_nodes): Likewise. + (lto_streamer_cache_create): Call it. + * tree-streamer.h: Include streamer-hooks.h. + (stream_write_tree): New. + (stream_read_tree): New. + (lto_input_tree): Remove. + (lto_materialize_tree): Declare. + (lto_input_tree_pointers): Declare. + (lto_get_pickled_tree): Declare. + (lto_get_builtin_tree): Declare. + (lto_input_integer_cst): Declare. + (lto_output_tree_header): Declare. + (pack_value_fields): Declare. + (lto_output_tree_pointers): Declare. + (lto_output_integer_cst): Declare. + (lto_output_builtin_tree): Declare. + +2011-08-11 Sergey Grechanik + + * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge + only if producer writes to the register given by regno. + +2011-08-11 Sergey Grechanik + Alexander Monakov + + * sched-deps.c (sched_get_condition_with_rev): Rename to ... + (sched_get_condition_with_rev_uncached): ... this. Factor out + condition caching logic into ... + (sched_get_condition_with_rev): ... this. Reimplement. Do not + attempt to use cache for instructions with zero luid. + (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND. + * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND. + +2011-08-11 Sergey Grechanik + + * sel-sched-ir.c (get_seqno_of_a_pred): Rename to + get_seqno_for_a_jump. Update the caller. + (get_seqno_by_succs): New. Use it ... + (get_seqno_for_a_jump): ... here to find a seqno if looking at + predecessors was not sufficient. + (get_seqno_by_preds): Include head in iteration range, exclude insn. + +2011-08-11 Dmitry Melnik + + * sel-sched-ir.c (invalidate_av_set): Remove the assert. + +2011-08-11 Sergey Grechanik + + * sel-sched-ir.h (register_unavailable_p): Declare. + * sel-sched-ir.c (register_unavailable_p): New. Use it... + (set_unavailable_target_for_expr): ... here to properly test + availability of a register. + (speculate_expr): Ditto. + * sel-sched.c (substitute_reg_in_expr): Ditto. + (av_set_could_be_blocked_by_bookkeeping_p): Ditto. + +2011-08-11 Sergey Grechanik + + * sel-sched.c (verify_target_availability): Fix usage of + hard_regno_nregs. + +2011-08-11 Dmitry Melnik + + * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of + recognized by cannot_copy_insn_p hook and volatile instructions. + +2011-08-11 Dmitry Melnik + + * sel-sched-ir.c (merge_expr_data): Take maximum spec. + +2011-08-11 Richard Sandiford + + * doc/md.texi (define_bypass): Say that the instruction names can + be filename-style globs. + * Makefile.in (FNMATCH_H): Define. + (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H). + * genattrtab.c: Include fnmatch.h. + (bypass_list): Change field name from "insn" to "pattern". + (gen_bypass_1): Update accordingly. + (process_bypasses): Use fnmatch to check for matches between + insn reservations and define_bypasses. + * genautomata.c: Include fnmatch.h. + (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern + and out_pattern respectively. + (gen_bypass, insert_bypass): Update accordingly. + (for_each_matching_insn, process_bypass_2, process_bypass_1) + (process_bypass): New functions. + (process_decls): Use process_bypass. Update after field name changes. + +2011-08-11 Georg-Johann Lay + + PR target/49687 + * config/avr/avr.md (smulqi3_highpart): New insn. + (umulqi3_highpart): New insn. + (*subqi3.ashiftrt7): New insn. + (smulhi3_highpart): New expander. + (umulhi3_highpart): Nex expander. + (*smulhi3_highpart_call): New insn. + (*umulhi3_highpart_call): New insn. + (extend_u): New code attribute. + (extend_prefix): Rename code attribute to extend_su. + * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of + widening QI/HI multiply. + +2011-08-11 Ira Rosen + + PR tree-optimization/50039 + * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check + that DEF_STMT has a stmt_vec_info. + +2011-08-10 Richard Guenther + + * tree.h (can_trust_pointer_alignment): Remove. + * builtins.c (can_trust_pointer_alignment): Remove. + +2011-08-10 Artjoms Sinkarovs + + * c-typeck.c (scalar_to_vector): New function. Try scalar to + vector conversion. + (stv_conv): New enum for scalar_to_vector return type. + (build_binary_op): Adjust. + * doc/extend.texi: Description of scalar to vector expansion. + +2011-08-10 Richard Guenther + + * tree.h (get_pointer_alignment): Remove max-align argument. + (get_object_alignment): Likewise. + * builtins.c (get_object_alignment_1): Adjust. + (get_object_alignment): Remove max-align argument. + (get_pointer_alignment): Likewise. + (expand_builtin_strlen): Adjust. + (expand_builtin_memcpy): Likewise. + (expand_builtin_mempcpy_args): Likewise. + (expand_builtin_strncpy): Likewise. + (expand_builtin_memset_args): Likewise. + (expand_builtin_memcmp): Likewise. + (expand_builtin_strcmp): Likewise. + (expand_builtin_strncmp): Likewise. + (get_builtin_sync_mem): Likewise. + (fold_builtin_memset): Likewise. + (fold_builtin_memory_op): Likewise. + (expand_builtin_memory_chk): Likewise. + * emit-rtl.c (get_mem_align_offset): Likewise. + (set_mem_attributes_minus_bitpos): Likewise. + * expr.c (expand_assignment): Likewise. + (expand_expr_real_1): Likewise. + * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise. + * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. + * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise. + * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. + * value-prof.c (gimple_stringops_transform): Likewise. + +2011-08-10 Paulo J. Matos + + * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo. + * doc/tm.texi: Regenerate. + +2011-08-10 Georg-Johann Lay + + PR target/29560 + * config/avr/avr.md (*ashlhiqi3): New insn-and-split. + (*ashlqihiqi3): New insn-and-splits. + (*ashlqihiqi3.mem): New insn-and-splits. + Add peephole2 to map ashlhi3 to ashlqi3 if high part of + shift target is unused. + +2011-08-10 Richard Guenther + + PR tree-optimization/49937 + * tree-ssa-ccp.c (get_value_from_alignment): Re-implement + using get_object_alignment_1. + +2011-08-09 Uros Bizjak + + * config/i386/i386.c (ix86_emit_i387_round): New function. + * config/i386/i386-protos.h (ix86_emit_i387_round): Declare. + * config/i386/i386.md (round2): Use X87MODEF mode iterator. + Use ix86_emit_i387_round to expand round function for i387 math. + (lround2): Use X87MODEF mode iterator. + Use ix86_emit_i387_round to expand {l,ll}round function for i387 math. + +2011-08-09 Rainer Orth + + * config/sync.c: Move to ../libgcc. + * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS. + * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS): + Remove. + +2011-08-09 Anatoly Sokolov + + * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro. + * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove. + * config/mmix/mmix.c (mmix_register_move_cost): Make static. + Change 'from' and 'to' arguments type to reg_class_t. + (TARGET_REGISTER_MOVE_COST): Define. + +2011-08-09 Vladimir Makarov + + PR target/50026 + Revert: + PR rtl-optimization/49990 + * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't + ignore classes which can not change mode. + (find_costs_and_classes): Ditto. + +2011-08-09 Richard Guenther + + * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise + information for ranges with only negative values. + (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and + BIT_AND_EXPR handling to handle ranges with negative values. + +2011-08-09 Kirill Yukhin + + * config/i386/i386.c: Remove traling spaces. + * config/i386/sse.md: Likewise. + (*fma_fmadd_): Fix insn alternative 1 mnemonic. + (*fma_fmsub_): Likewise. + (*fma_fnmadd_): Likewise. + (*fma_fnmsub_): Likewise. + +2011-08-09 Nick Clifton + + * config/rx/rx.md: Disable extender peepholes at -O3. + +2011-08-09 Uros Bizjak + + PR target/49781 + * config/i386/i386.md (reload_noff_load): New. + (reload_noff_store): Ditto. + * config/i386/i386.c (ix86_secondary_reload): Use + CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle + double-word moves from/to non-offsetable addresses instead of + generating XMM temporary. + +2011-08-09 Anatoly Sokolov + + * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. + +2011-08-09 Ira Rosen + + PR tree-optimization/50014 + * tree-vect-loop.c (vectorizable_reduction): Get def type before + calling vect_get_vec_def_for_stmt_copy (). + +2011-08-08 Vladimir Makarov + + PR rtl-optimization/49990 + * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't + ignore classes which can not change mode. + (find_costs_and_classes): Ditto. + +2011-08-08 Richard Henderson + + PR middle-end/49990 + * config/i386/i386.c (ix86_expand_prologue): Call + for SEH target gen_prologue_use instead of gen_blockage + at prologue's end. + +2011-08-08 Martin Jambor + + PR middle-end/49923 + * tree-sra.c (access_precludes_ipa_sra_p): Also check access + memory alignment. + +2011-08-08 Diego Novillo + + * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H. + (DATA_STREAMER_H): New. + (GIMPLE_STREAMER_H): New. + (TREE_STREAMER_H): New. + (STREAMER_HOOKS_H): New. + (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o, + gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o, + tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o. + (data-streamer.o): New. + (data-streamer-in.o): New. + (data-streamer-out.o): New. + (gimple-streamer-in.o): New. + (gimple-streamer-out.o): New. + (streamer-hooks.o): New. + (tree-streamer.o): New. + (tree-streamer-in.o): New. + (tree-streamer-out.o): New. + (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. + (lto-streamer-in.o): Add dependency on DATA_STREAMER_H, + GIMPLE_STREAMER_H and TREE_STREAMER_H. + (lto-streamer-out.o): Add dependency on DATA_STREAMER_H, + GIMPLE_STREAMER_H and TREE_STREAMER_H. + (lto-streamer.o): Add dependency on STREAMER_HOOKS_H. + (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. + (ipa-inline-analysis.o): Likewise. + (ipa-pure-const.o): Likewise. + * data-streamer-in.c: New. + * data-streamer-out.c: New. + * data-streamer.c: New. + * data-streamer.h: New. + * gimple-streamer-in.c: New. + * gimple-streamer-out.c: New. + * gimple-streamer.h: New. + * ipa-inline-analysis.c: Include data-streamer.h. + * ipa-prop.c: Include data-streamer.h. + * ipa-pure-const.c: Include data-streamer.h. + * lto-cgraph.c: Include data-streamer.h. + * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c. + (lto_input_widest_uint_uleb128): Likewise. + (lto_input_sleb128): Likewise. + (bp_unpack_var_len_unsigned): Likewise. + (bp_unpack_var_len_int): Likewise. + * lto-section-out.c (lto_output_uleb128_stream): Move to + data-streamer-out.c. + (lto_output_widest_uint_uleb128_stream): Likewise. + (lto_output_sleb128_stream): Likewise. + (bp_pack_var_len_unsigned): Likewise. + (bp_pack_var_len_int): Likewise. + * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h. + (struct string_slot): Remove. Update all users. + (lto_tag_check_set): Make extern. + (lto_tag_check_range): Move to lto-streamer.h. + (lto_tag_check): Likewise. + (hash_string_slot_node): Remove. Update all users. + (eq_string_slot_node): Remove. Update all users. + (string_for_index): Move to data-streamer-in.c + (input_string_internal): Likewise. + (input_string_cst): Move to tree-streamer-in.c. + (input_identifier): Likewise. + (lto_input_string): Move to data-streamer-in.c + (input_record_start): Move to data-streamer.h + (canon_file_name): Use new definition of struct string_slot + from data-streamer.h. Set S_SLOT.LEN. + (lto_input_location): Make extern. + (lto_input_chain): Move to tree-streamer-in.c. + (lto_init_eh): Make extern. + (input_phi): Move to gimple-streamer-in.c. + (input_gimple_stmt): Likewise. + (input_bb): Likewise. + (unpack_ts_base_value_fields): Move to tree-streamer-in.c. + (unpack_ts_real_cst_value_fields): Likewise. + (unpack_ts_fixed_cst_value_fields): Likewise. + (unpack_ts_decl_common_value_fields): Likewise. + (unpack_ts_decl_wrtl_value_fields): Likewise. + (unpack_ts_decl_with_vis_value_fields): Likewise. + (unpack_ts_function_decl_value_fields): Likewise. + (unpack_ts_type_common_value_fields): Likewise. + (unpack_ts_block_value_fields): Likewise. + (unpack_ts_translation_unit_decl_value_fields): Likewise. + (unpack_value_fields): Likewise. + (lto_materialize_tree): Likewise. + (lto_input_ts_common_tree_pointers): Likewise. + (lto_input_ts_vector_tree_pointers): Likewise. + (lto_input_ts_complex_tree_pointers): Likewise. + (lto_input_ts_decl_minimal_tree_pointers): Likewise. + (lto_input_ts_decl_common_tree_pointers): Likewise. + (lto_input_ts_decl_non_common_tree_pointers): Likewise. + (lto_input_ts_decl_with_vis_tree_pointers): Likewise. + (lto_input_ts_field_decl_tree_pointers): Likewise. + (lto_input_ts_function_decl_tree_pointers): Likewise. + (lto_input_ts_type_common_tree_pointers): Likewise. + (lto_input_ts_type_non_common_tree_pointers): Likewise. + (lto_input_ts_list_tree_pointers): Likewise. + (lto_input_ts_vec_tree_pointers): Likewise. + (lto_input_ts_exp_tree_pointers): Likewise. + (lto_input_ts_block_tree_pointers): Likewise. + (lto_input_ts_binfo_tree_pointers): Likewise. + (lto_input_ts_constructor_tree_pointers): Likewise. + (lto_input_ts_target_option): Likewise. + (lto_input_ts_translation_unit_decl_tree_pointers): Likewise. + (lto_input_tree_pointers): Likewise. + (lto_get_pickled_tree): Likewise. + (lto_get_builtin_tree): Likewise. + (lto_read_tree): Likewise. + (lto_input_integer_cst): Likewise. + (lto_input_tree): Likewise. + * lto-streamer-out.c: Include data-streamer.h, + gimple-streamer.h and streamer-hooks.h. + (struct string_slot): Move to data-streamer.h. + (hash_string_slot_node): Likewise. + (eq_string_slot_node): Likewise. + (lto_string_index): Move to data-streamer-out.c. + (lto_output_string_with_length): Likewise. + (lto_output_string): Likewise. + (output_string_cst): Move to tree-streamer-out.c. + (output_identifier): Likewise. + (output_zero): Move to data-streamer-out.c + (output_uleb128): Likewise. + (output_sleb128): Likewise. + (output_record_start): Move to data-streamer.h + (pack_ts_base_value_fields): Move to tree-streamer-out.c. + (pack_ts_real_cst_value_fields): Likewise. + (pack_ts_fixed_cst_value_fields): Likewise. + (pack_ts_decl_common_value_fields): Likewise. + (pack_ts_decl_wrtl_value_fields): Likewise. + (pack_ts_decl_with_vis_value_fields): Likewise. + (pack_ts_function_decl_value_fields): Likewise. + (pack_ts_type_common_value_fields): Likewise. + (pack_ts_block_value_fields): Likewise. + (pack_ts_translation_unit_decl_value_fields): Likewise. + (pack_value_fields): Likewise. + (lto_output_chain): Likewise. + (lto_output_ts_common_tree_pointers): Likewise. + (lto_output_ts_vector_tree_pointers): Likewise. + (lto_output_ts_complex_tree_pointers): Likewise. + (lto_output_ts_decl_minimal_tree_pointers): Likewise. + (lto_output_ts_decl_common_tree_pointers): Likewise. + (lto_output_ts_decl_non_common_tree_pointers): Likewise. + (lto_output_ts_decl_with_vis_tree_pointers): Likewise. + (lto_output_ts_field_decl_tree_pointers): Likewise. + (lto_output_ts_function_decl_tree_pointers): Likewise. + (lto_output_ts_type_common_tree_pointers): Likewise. + (lto_output_ts_type_non_common_tree_pointers): Likewise. + (lto_output_ts_list_tree_pointers): Likewise. + (lto_output_ts_vec_tree_pointers): Likewise. + (lto_output_ts_exp_tree_pointers): Likewise. + (lto_output_ts_block_tree_pointers): Likewise. + (lto_output_ts_binfo_tree_pointers): Likewise. + (lto_output_ts_constructor_tree_pointers): Likewise. + (lto_output_ts_target_option): Likewise. + (lto_output_ts_translation_unit_decl_tree_pointers): Likewise. + (lto_output_tree_pointers): Likewise. + (lto_output_tree_header): Likewise. + (lto_output_builtin_tree): Likewise. + (lto_write_tree): Likewise. + (lto_output_integer_cst): Likewise. + (lto_output_tree): Likewise. + (output_phi): Move to gimple-streamer-out.c. + (output_gimple_stmt): Likewise. + (output_bb): Likewise. + * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h. + (streamer_hooks): Move to streamer-hooks.c. + (check_handled_ts_structures): Move to tree-streamer.c + (lto_streamer_cache_add_to_node_array): Likewise. + (lto_streamer_cache_insert_1): Likewise. + (lto_streamer_cache_insert): Likewise. + (lto_streamer_cache_insert_at): Likewise. + (lto_streamer_cache_append): Likewise. + (lto_streamer_cache_lookup): Likewise. + (lto_streamer_cache_get): Likewise. + (lto_record_common_node): Likewise. + (lto_preload_common_nodes): Likewise. + (lto_streamer_cache_create): Likewise. + (lto_streamer_cache_delete): Likewise. + (streamer_hooks_init): Move to streamer-hooks.c. + * lto-streamer.h: Include diagnostic.h + (struct output_block, struct lto_input_block, + struct data_in, struct bitpack_d): Remove forward declarations. + (struct bitpack_d): Move to data-streamer.h. + (struct lto_streamer_cache_d): Move to tree-streamer.h. + (struct streamer_hooks): Move to streamer-hooks.h. + (bp_pack_var_len_unsigned): Move to data-streamer.h. + (bp_pack_var_len_int): Likewise. + (bp_unpack_var_len_unsigned): Likewise. + (bp_unpack_var_len_int): Likewise. + (lto_input_location): Declare. + (lto_tag_check_set): Declare. + (lto_init_eh): Declare. + (lto_output_tree_ref): Declare. + (lto_output_location): Declare. + (bitpack_create): Move to data-streamer.h. + (bp_pack_value): Likewise. + (lto_output_bitpack): Likewise. + (lto_input_bitpack): Likewise. + (bp_unpack_value): Likewise. + (lto_output_1_stream): Likewise. + (lto_input_1_unsigned): Likewise. + (lto_output_int_in_range): Likewise. + (lto_input_int_in_range): Likewise. + (bp_pack_int_in_range): Likewise. + (bp_unpack_int_in_range): Likewise. + (lto_output_enum): Likewise. + (lto_input_enum): Likewise. + (bp_pack_enum): Likewise. + (bp_unpack_enum): Likewise. + * streamer-hooks.c: New. + * streamer-hooks.h: New. + * tree-streamer-in.c: New. + * tree-streamer-out.c: New. + * tree-streamer.c: New. + * tree-streamer.h: New. + +2011-08-08 Rainer Orth + + * gthr-posix95.h: Remove. + * gthr.h [_PTHREADS95]: Remove. + * configure.ac (enable_threads): Remove posix95. + * configure: Regenerate. + * doc/install.texi (Configuration, --enable-threads): Remove posix95. + +2011-08-08 Uros Bizjak + + PR target/49781 + * config/i386/i386.c (ix86_decompose_address): Allow zero-extended + SImode addresses. + (ix86_print_operand_address): Handle zero-extended addresses. + (memory_address_length): Add length of addr32 prefix for + zero-extended addresses. + (ix86_secondary_reload): Handle moves to/from double-word general + registers from/to zero-extended addresses. + * config/i386/predicates.md (lea_address_operand): Reject + zero-extended operands. + +2011-08-08 H.J. Lu + + PR other/48007 + * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86. + + * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned. + (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise. + + * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New. + (_Unwind_Context_Reg_Val): Likewise. + (_Unwind_Get_Unwind_Word): Likewise. + (_Unwind_Get_Unwind_Context_Reg_Val): Likewise. + (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field. + (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT + for EXTENDED_CONTEXT_BIT. + (__frame_state_for): Likewise. + (uw_init_context_1): Likewise. + (_Unwind_GetGR): Updated. + (_Unwind_SetGR): Likewise. + (_Unwind_GetGRPtr): Likewise. + (_Unwind_SetGRPtr): Likewise. + (_Unwind_SetGRValue): Likewise. + (_Unwind_GRByValue): Likewise. + (uw_install_context_1): Likewise. + + * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and + ASSUME_EXTENDED_UNWIND_CONTEXT. + * doc/tm.texi: Regenerated. + +2011-08-08 Rainer Orth + + * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS). + +2011-08-08 Rainer Orth + + * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't + Linux/GNU-specific. + (DEC Alpha Options, -mtune): Likewise. + (MIPS Options, -march): native is supported on IRIX. + +2011-08-08 Rainer Orth + + * config/sparc/driver-sparc.c: New file. + * config/sparc/x-sparc: New file. + * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*. + * config/sparc/sparc.opt (native): New value for enum processor_type. + * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare. + * config/sparc/sparc.c (sparc_option_override): Abort if + PROCESSOR_NATIVE gets here. + * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare. + (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS, + DRIVER_SELF_SPECS): Define. + * doc/invoke.texi (SPARC Options, -mcpu): Document native. + (SPARC Options, -mtune): Likewise. + * configure.ac (EXTRA_GCC_LIBS): Check for libkstat. + Substitute result. + * configure: Regenerate. + * Makefile.in (EXTRA_GCC_LIBS): Set. + (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS). + (cpp$(exeext)): Likewise. + +2011-08-08 Richard Guenther + + * tree-vrp.c (extract_range_from_unary_expr_1): New function, + split out from ... + (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR + by composition. + +2011-08-08 Mikael Pettersson + + PR tree-optimization/50005 + * ipa-inline-analysis (remap_predicate): Add cast to + silence signed/unsigned comparison warning. + +2011-08-08 Richard Sandiford + + * modulo-sched.c (get_sched_window): Use a table for the debug output. + Print the current ii. + (sms_schedule_by_order): Reduce whitespace in dump line. + +2011-08-08 Richard Sandiford + + * modulo-sched.c (get_sched_window): Use just one loop for predecessors + and one loop for successors. Fix upper bound of memory range. + +2011-08-06 Uros Bizjak + + PR target/50001 + * config/alpha/alpha.c (alpha_instantiate_decls): New function. + (TARGET_INSTANTIATE_DECLS): New define. + +2011-08-06 Paolo Bonzini + Mikael Morin + + * Makefile.in (INCLUDES_FOR_TARGET): New. + (LIBGCC2_CFLAGS): Use it. + (CRTSTUFF_CFLAGS): Use it instead of INCLUDES. + +2011-08-06 Uros Bizjak + + * config/i386/i386.c (ix86_compute_frame_layout): Simplify + frame->save_regs_using_mov calculation. + +2011-08-06 Uros Bizjak + + * config/i386/i386.md (ssemodesuffix): Remove V8SI mode. + * config/i386/sse.md (castmode): New mode attribute. + (avx__): Rename from + avx__. + +2011-08-05 Jan Hubicka + + PR middle-end/49494 + * ipa-inline-analysis.c (remap_predicate): Add bounds check. + +2011-08-05 Jan Hubicka + + PR middle-end/49500 + * tree-emultls.c (new_emutls_decl):Add alias_of parameter; + handle aliases. + (create_emultls_var):New function. + (ipa_lower_emutls): Handle aliases correctly. + +2011-08-05 Jan Hubicka + + PR middle-end/49735 + * ipa-inline.c (recursive_inlining): Look through aliases. + +2011-08-05 Jason Merrill + + * config/i386/i386.c (setup_incoming_varargs_ms_64): Move + declarations to beginning of function. + +2011-08-05 Bernd Schmidt + + PR rtl-optimization/49900 + * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to + ensure basic blocks stay in the same order. + +2011-08-05 Aldy Hernandez + + * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to + store_bit_field. + (s390_expand_atomic): Same. + +2011-08-05 Richard Henderson + + PR rtl-opt/49977 + * dwarf2cfi.c (scan_insn_after): Split out of ... + (scan_trace): ... here. Correctly place notes wrt sequences. + +2011-08-05 Kaz Kojima + Richard Henderson + + PR rtl-opt/49982 + * expr.c (fixup_args_size_notes): Look through no-op moves. + +2011-08-05 Uros Bizjak + + * config/i386/i386.md (*push2): Use "o" constraint instead + of "m" for operand 0. Add type and mode attribute. + (*pushxf_nointeger"): Use "<" constraint for operand 0. + (*pushdf_rex64): New pattern, split out of *pushdf. Use "m" + constraint instead of "o" for opreand 1. + (*pushdf): Disable for TARGET_64BIT. Correct mode attribute. + (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for + operand 0, alternative 4. + (*movdf_internal_rex64): Ditto for operand 0, alernative 6. + +2011-08-05 Uros Bizjak + + * config/i386/predicates.md (lea_address_operand): Rename from + no_seg_address_operand. + * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename. + (*lea_1_zext): Ditto. + (*lea_2): Ditto. + (*lea_2_zext): Ditto. + +2011-08-05 Uros Bizjak + + * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of + parts.base and parts.index. + * config/i386/predicates.md (aligned_operand): Ditto. + (cmpxchg8b_pic_memory_operand): Ditto. + +2011-08-05 Rainer Orth + + * config/soft-fp: Move to ../libgcc. + * Makefile.in (SFP_MACHINE): Remove. + (libgcc-support): Remove $(SFP_MACHINE) dependency. + * config/arm/sfp-machine.h: Move to ../libgcc/config/arm. + * config/arm/t-arm-softfp: Move to + ../libgcc/config/arm/t-softfp. + * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x. + * config/c6x/t-c6x-softfp: Remove. + * config/i386/sfp-machine.h: Move to ../libgcc/config/i386. + * config/i386/t-fprules-softfp: Move to + ../libgcc/config/t-softfp-tf. + * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64. + * config/ia64/t-fprules-softfp: Remove. + * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32. + * config/lm32/t-fprules-softfp: Remove. + * config/moxie/sfp-machine.h: Remove. + * config/moxie/t-moxie-softfp: Remove. + * config/rs6000/darwin-ldouble-format: Move to + ../libgcc/config/rs6000/ibm-ldouble-format. + * config/rs6000/darwin-ldouble.c: Move to + ../libgcc/config/rs6000/ibm-ldouble.c + * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000. + * config/rs6000/libgcc-ppc64.ver: Likewise. + * config/rs6000/sfp-machine.h: Likewise. + * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove + $(srcdir)/config/rs6000/libgcc-ppc64.ver. + (LIB2FUNCS_EXTRA): Remove. + (TARGET_LIBGCC2_CFLAGS): Remove. + * config/rs6000/t-aix52: Likewise + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove + $(srcdir)/config/rs6000/darwin-ldouble.c. + (SHLIB_MAPFILES): Remove. + * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove + $(srcdir)/config/rs6000/darwin-ldouble.c. + * config/rs6000/t-fprules-softfp: Move to + ../libgcc/config/t-softfp-sfdf. + * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000. + * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove. + * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove + $(srcdir)/config/rs6000/darwin-ldouble.c. + * config/score/sfp-machine.h: Move to ../libgcc/config/score. + * config/score/t-score-softfp: Remove. + * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp, + soft-fp/t-softfp from tmake_file. + (arm*-*-uclinux*): Likewise. + (arm*-*-ecos-elf): Likewise. + (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. + (arm*-*-rtems*): Likewise. + (arm*-*-elf): Likewise. + (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from + tmake_file. + (moxie-*-uclinux*): Likewise. + (moxie-*-rtems*): Likewise. + (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from + tmake_file. + (lm32-*-rtems*): Likewise. + (lm32-*-uclinux*): Likewise. + (powerpc-*-freebsd*): Remove rs6000/t-freebsd, + rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. + (powerpc-*-linux*, powerpc64-*-linux*): Remove + rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. + (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from + tmake_file. + (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from + tmake_file. + (tic6x-*-uclinux): Likewise. + (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp, + soft-fp/t-softfp from tmake_file. + (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) + (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise. + (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise. + (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. + (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise. + +2011-08-05 Rainer Orth + + * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove. + (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies. + (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS, + TPBIT, TPBIT_FUNCS. + * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc. + * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c): + Remove. + * config/arm/t-vxworks: Likewise. + * config/arm/t-wince-pe: Likewise. + * config/avr/t-avr (fp-bit.c, FPBIT): Remove. + * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/bfin/t-bfin-elf: Likewise. + * config/bfin/t-bfin-linux: Likewise. + * config/bfin/t-bfin-uclinux: Likewise. + * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c): + Remove. + * config/fr30/t-fr30: Likewise. + * config/frv/t-frv: Likewise. + * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove. + * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/m32c/t-m32c: Likewise. + * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove. + * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/mcore/t-mcore: Likewise. + * config/mep/t-mep: Likewise. + * config/microblaze/t-microblaze: Likewise. + * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove. + * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/mips/t-sdemtk (FPBIT, DPBIT): Remove. + * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/mn10300/t-linux: Remove. + * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/pdp11/t-pdp11: Likewise. + * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove. + * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000. + * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. + * config/rs6000/t-aix52: Likewise. + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove + $(srcdir)/config/rs6000/ppc64-fp.c. + * config/rs6000/t-fprules-fpbit: Remove. + * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove. + * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/sh/t-netbsd (FPBIT, DPBIT): Remove. + * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/sparc/t-elf: Likewise. + * config/sparc/t-leon: Likewise. + * config/sparc/t-leon3: Likewise. + * config/spu/t-spu-elf: Likewise. + (DPBIT_FUNCS): Remove. + * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. + * config/v850/t-v850: Likewise. + * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file. + (avr-*-*): Likewise. + (h8300-*-rtems*): Set libgcc_tm_file. + (h8300-*-elf*): Likewise. + (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from + tmake_file. + (powerpc-*-eabisim*): Likewise. + (powerpc-*-elf*): Likewise. + (powerpc-*-eabialtivec*): Likewise. + (powerpc-xilinx-eabi*): Likewise. + (powerpc-*-eabi*): Likewise. + (powerpc-*-rtems*): Likewise. + (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise. + (powerpcle-*-elf*): Likewise. + (powerpcle-*-eabisim*): Likewise. + (powerpcle-*-eabi*): Likewise. + (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file. + (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file. + * doc/fragments.texi (Target Fragment, Floating Point Emulation): + Remove. + +2011-08-05 Rainer Orth + + * Makefile.in (UNWIND_H): Remove. + (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to + ../libgcc/Makefile.in. + (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. + (LIBUNWINDDEP): Remove. + (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. + (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, + LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. + (stmp-int-hdrs): Remove $(UNWIND_H) dependency. + Don't copy $(UNWIND_H). + * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling. + * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, + unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, + unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, + unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. + * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. + * config/arm/libunwind.S, config/arm/pr-support.c, + config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to + ../libgcc/config/arm. + * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. + * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. + * config/frv/t-frv ($(T)frvbegin$(objext)): Use + $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. + ($(T)frvend$(objext)): Likewise. + * config/ia64/t-glibc (LIB2ADDEH): Remove. + * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. + * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, + config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to + ../libgcc/config/ia64. + * config/ia64/t-hpux (LIB2ADDEH): Remove. + * config/ia64/t-ia64 (LIB2ADDEH): Remove. + * config/ia64/t-vms (LIB2ADDEH): Remove. + * config/ia64/vms.h (UNW_IVMS_MODE, + MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. + * config/picochip/t-picochip (LIB2ADDEH): Remove. + * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. + * config/rs6000/t-darwin (LIB2ADDEH): Remove. + * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. + * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use + $(srcdir)/../libgcc to refer to unwinder sources. + * config/spu/t-spu-elf (LIB2ADDEH): Remove. + * config/t-darwin (LIB2ADDEH): Remove. + * config/t-freebsd (LIB2ADDEH): Remove. + * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. + * config/t-libunwind-elf: Move to ../libgcc/config. + * config/t-linux (LIB2ADDEH): Remove. + * config/t-sol2 (LIB2ADDEH): Remove. + * config/xtensa/t-xtensa (LIB2ADDEH): Remove. + * system.h (MD_FROB_UPDATE_CONTEXT): Poison. + +2011-08-05 H.J. Lu + + * config/i386/i386.c (processor_alias_table): Add core-avx-i. + + * doc/invoke.texi: Document core-avx-i. + +2011-08-05 Rainer Orth + + * tsystem.h (CONST_CAST2, CONST_CAST): Define. + +2011-08-05 Ira Rosen + + * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the + result of multiple results reduction when extracting the final + value using scalar code. + +2011-08-05 Richard Guenther + + PR tree-optimization/49984 + * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR. + +2011-08-05 Richard Guenther + + * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always + return true for constant integer ranges. + (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and + BIT_IOR_EXPR handling. + +2011-08-04 Kai Tietz + + * config/i386/i386.c (setup_incoming_varargs_ms_64): Set + ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero. + +2011-08-04 Ira Rosen + + * tree-vectorizer.h (struct _stmt_vec_info): Add new field for + pattern def statement, and its access macro. + (NUM_PATTERNS): Set to 5. + * tree-vect-loop.c (vect_determine_vectorization_factor): Handle + pattern def statement. + (vect_transform_loop): Likewise. + * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new + function vect_recog_over_widening_pattern (). + (vect_operation_fits_smaller_type): New function. + (vect_recog_over_widening_pattern, vect_mark_pattern_stmts): + Likewise. + (vect_pattern_recog_1): Move the code that marks pattern + statements to vect_mark_pattern_stmts (), and call it. Update + documentation. + * tree-vect-stmts.c (vect_supportable_shift): New function. + (vect_analyze_stmt): Handle pattern def statement. + (new_stmt_vec_info): Initialize pattern def statement. + +2011-08-04 Richard Henderson + + PR target/49964 + * config/i386/i386.c (ix86_expand_call): Don't create nested + PARALLELs for TARGET_VZEROUPPER. + (ix86_split_call_vzeroupper): Fix extraction of the original call. + * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't + recognize nested PARALLELs. + (*call_pop_vzeroupper, *sibcall_pop_vzeroupper, + *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper, + *sibcall_value_pop_vzeroupper): Likewise. + +2011-08-04 Richard Henderson + + PR middle-end/49968 + * calls.c (expand_call): Use fixup_args_size_notes for + emit_stack_restore. + * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets + in non-standard modes. + +2011-08-04 Jakub Jelinek + + * gcc.c (self_spec): New variable. + (static_specs): Add self_spec. + (main): Call do_self_spec on "self_spec" specs after reading + user specs files. Move compare_debug handling right after that. + +2011-08-04 Richard Guenther + + * tree-vrp.c (vrp_expr_computes_nonnegative): Remove. + (value_range_nonnegative_p): New function. + (ssa_name_nonnegative_p): Use it. + (value_range_constant_singleton): New function. + (op_with_constant_singleton_value_range): Use it. + (extract_range_from_binary_expr_1): New function, split out from ... + (extract_range_from_binary_expr): ... this. Remove fallback + constant folding done here. + +2011-08-04 Richard Guenther + + PR tree-optimization/49806 + * tree-vrp.c (op_with_boolean_value_range_p): New function. + (simplify_truth_ops_using_ranges): Simplify. Allow inserting + a new statement for a final conversion to bool. + +2011-08-04 Romain Geissler + + * gengtype-state.c: Include "bconfig.h" if + GENERATOR_FILE is defined, "config.h" otherwise. + * gengtype.c: Likewise. + * gengtype-lex.l: Likewise. + * gengtype-parse.c: Likewise. + * Makefile.in (gengtype-lex.o-warn): New variable. + (plugin_resourcesdir): Likewise. + (plugin_bindir): Likewise. + (plugin_includedir): Use $(plugin_resourcesdir) as prefix base. + (MOSTLYCLEANFILES): Add gengtype$(exeext). + (native): Depend on gengtype$(exeext) is $enable_plugin + is set to "yes". + (gtype.state): Depend on s-gtype. Use temporary file. + (gengtype-lex.o): New rule. + (gengtype-parse.o): Likewise. + (gengtype-state.o): Likewise. + (gengtype$(exeext)): Likewise. + (install-gengtype): Likewise. + (gengtype.o): Likewise. + (build/gengtype.o): Depend on version.h. + (build/gengtype-state): Depend on double-int.h, version.h, + $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o. + (install-plugin): Depend on install-gengtype. + +2011-08-04 Jakub Jelinek + + PR middle-end/49905 + * tree.h (init_attributes): New prototype. + * attribs.c (init_attributes): No longer static. + +2011-08-04 Ramana Radhakrishnan + + * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify + maybe_suffix. + +2011-08-03 David Li + + * tree-optimize.c (execute_fixup_cfg): Fix up entry + outgoing edge counts after inlining. + +2011-08-03 David Li + + * profile.c (compute_branch_probabilities): Compute + function frequency after profile annotation. + +2011-08-04 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify + use_backchain_to_restore_sp initialisation. + (rs6000_legitimate_offset_address_p): Simplify offset test. + +2011-08-03 Richard Henderson + + * config/spu/spu.md: Use define_c_enum instead of define_constants. + (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*. + (UNSPECV_NOP): New. + +2011-08-03 Richard Henderson + + PR target/34888 + * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0. + +2011-08-03 Jakub Jelinek + + PR tree-optimization/49948 + * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements. + +2011-08-03 Anatoly Sokolov + + * config/m32c/m32c.c (class_sizes): Remove. + (reduce_class): Change arguments and return type to reg_class_t. + Change type cc var to HARD_REG_SET. Change type best var to + reg_class_t. Change type best_size var to unsigned int. Remove + initialization class_sizes var. Use reg_class_size array instead + of class_sizes. Use reg_class_contents array instead + of class_contents. + +2011-08-03 Richard Guenther + + PR middle-end/49958 + * fold-const.c (fold_binary_loc): Only associate + (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if + overflow wraps. + +2011-08-03 Alan Modra + + PR rtl-optimization/49941 + * jump.c (mark_jump_label): Comment. + (mark_jump_label_1): Set JUMP_LABEL for return jumps. + * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared. + (mark_used_flags): Don't mark RETURN. + +2011-08-03 Richard Guenther + + PR tree-optimization/49938 + * tree-scalar-evolution.c (interpret_loop_phi): Gracefully + deal with a POLYNOMIAL_CHREC. + +2011-08-03 Revital Eres + + * modulo-sched.c (calculate_stage_count, + calculate_must_precede_follow, get_sched_window, + try_scheduling_node_in_cycle, remove_node_from_ps): Add + declaration. + (update_node_sched_params, set_must_precede_follow, optimize_sc): + New functions. + (reset_sched_times): Call update_node_sched_params. + (sms_schedule): Call optimize_sc. + (get_sched_window): Change function arguments. + (sms_schedule_by_order): Update call to get_sched_window. + Call set_must_precede_follow. + (calculate_stage_count): Add function argument. + +2011-08-02 Richard Henderson + + PR target/49864 + PR target/49879 + * reg-notes.def (REG_ARGS_SIZE): New. + * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop. + (expand_call): Add REG_ARGS_SIZE to emit_stack_restore. + * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to + different stack levels. + * combine-stack-adj.c (adjust_frame_related_expr): Remove. + (maybe_move_args_size_note): New. + (combine_stack_adjustments_for_block): Use it. + * combine.c (distribute_notes): Place REG_ARGS_SIZE. + * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member. + (dw_trace_info): Add beg_true_args_size, end_true_args_size, + beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined. + (cur_cfa): New. + (queued_args_size): Remove. + (add_cfi_args_size): Assert size is non-negative. + (stack_adjust_offset, dwarf2out_args_size): Remove. + (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove. + (notice_args_size, notice_eh_throw): New. + (dwarf2out_frame_debug_def_cfa): Use cur_cfa. + (dwarf2out_frame_debug_adjust_cfa): Likewise. + (dwarf2out_frame_debug_cfa_offset): Likewise. + (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset. + (dwarf2out_frame_debug): Don't handle non-frame-related-p insns. + (change_cfi_row): Don't emit args_size. + (maybe_record_trace_start_abnormal): Split out from ... + (maybe_record_trace_start): Here. Set args_size_undefined. + (create_trace_edges): Update to match. + (scan_trace): Handle REG_ARGS_SIZE. + (connect_traces): Connect args_size between EH insns. + * emit-rtl.c (try_split): Handle REG_ARGS_SIZE. + * explow.c (suppress_reg_args_size): New. + (adjust_stack_1): Split out from ... + (adjust_stack): ... here. + (anti_adjust_stack): Use it. + (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE. + * expr.c (mem_autoinc_base): New. + (fixup_args_size_notes): New. + (emit_single_push_insn_1): Rename from emit_single_push_insn. + (emit_single_push_insn): New. Generate REG_ARGS_SIZE. + * recog.c (peep2_attempt): Handle REG_ARGS_SIZE. + * reload1.c (reload_as_needed): Likewise. + * rtl.h (fixup_args_size_notes): Declare. + +2011-08-02 Paolo Carlini + + PR bootstrap/49914 + * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead + of abs. + * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. + * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. + +2011-08-02 Richard Henderson + + * config/h8300/h8300.c (push, pop): Return the insn. + (h8300_swap_into_er6): Generate correct unwind info. + (h8300_swap_out_of_er6): Likewise. + * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a + complex cfa expression. + (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too. + +2011-08-02 H.J. Lu + + * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. + +2011-08-02 Richard Henderson + + PR target/49878 + * config/h8300/h8300.c (h8300_move_ok): New. + * config/h8300/h8300-protos.h: Declare it. + * config/h8300/h8300.md (P): New mode iterator. + (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok. + (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise. + (movsi, *movsi_h8300, *movsi_h8300hs): Likewise. + (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY. + (*pushqi1_h8300hs_

): Macroize from pushqi1_h8300hs_advanced + and pushqi1_h8300hs_normal; use PRE_MODIFY and + register_no_sp_elim_operand. + (*pushhi1_h8300hs_

): Similarly. + (pushqi1, pushhi1, pushhi1_h8300): Remove. + * config/h8300/predicates.md (register_no_sp_elim_operand): New. + +2011-08-02 Richard Henderson + + PR target/49881 + * config/avr/avr.md (push1): Don't constrain the operand. + +2011-08-02 Jakub Jelinek + + * c-parser.c (enum c_parser_prec): New enum, moved from within + c_parser_binary_expression. + (c_parser_binary_expression): Add PREC argument. Stop parsing + if operator has lower or equal precedence than PREC. + (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust + callers. + (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics. + Adjust c_finish_omp_atomic caller. + (c_parser_omp_taskyield): New function. + (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. + (c_parser_omp_clause_name): Handle final and mergeable clauses. + (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New + functions. + (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL + and PRAGMA_OMP_CLAUSE_MERGEABLE. + (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. + (c_parser_omp_clause_reduction): Handle min and max. + * c-typeck.c (c_finish_omp_clauses): Don't complain about + const qualified predetermined vars in firstprivate clause. + andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. + Handle MIN_EXPR and MAX_EXPR. + * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL + and OMP_CLAUSE_MERGEABLE. + (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD + and OMP_ATOMIC_CAPTURE_NEW. + * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and + OMP_CLAUSE_MERGEABLE. + (omp_clause_code_name): Likewise. + (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. + * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL + and OMP_CLAUSE_MERGEABLE. + (OMP_CLAUSE_FINAL_EXPR): Define. + * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and + OMP_CLAUSE_MERGEABLE. + (expand_task_call): Likewise. + (expand_omp_atomic_load, expand_omp_atomic_store): New functions. + (expand_omp_atomic_fetch_op): Handle cases where old or new + value is needed afterwards. + (expand_omp_atomic): Call expand_omp_atomic_load resp. + expand_omp_atomic_store. + * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle + OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW. + (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle + OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Likewise. + * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD, + OMP_ATOMIC_CAPTURE_NEW): New. + * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New. + (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value): + New inlines. + * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin. + * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE, + OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. + +2011-08-02 Kai Tietz + + * gimple.c (canonicalize_cond_expr_cond): Handle cast from + boolean-type. + (ssa_forward_propagate_and_combine): Interprete result of + forward_propagate_comparison. + * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for + boolean-typed operands for comparisons. + +2011-08-02 Georg-Johann Lay + + * config/avr/libgcc.S: Gather related function in the + same input section. + (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4, + __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external + references. + (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4, + __udivmodsi4, __divmodsi4, __prologue_saves__, + __epilogue_restores__, _exit, __tablejump2__, __tablejump__, + __do_copy_data, __do_clear_bss, __do_global_ctors, + __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF. + +2011-08-02 Uros Bizjak + + PR target/47766 + * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value. + (stack_protect_test): The pattern compares ptr_mode value. + +2011-08-02 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE + note for save_LR_around_toc_setup sequence. + +2011-08-01 H.J. Lu + + * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long. + +2011-08-01 Sebastian Pop + Joseph Myers + + * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H. + * hwint.c: Include diagnostic-core.h. + (abs_hwi): New. + (gcd): Moved here... + (pos_mul_hwi): New. + (mul_hwi): New. + (least_common_multiple): Moved here... + * hwint.h (gcd): ... from here. + (least_common_multiple): ... from here. + (HOST_WIDE_INT_MIN): New. + (HOST_WIDE_INT_MAX): New. + (abs_hwi): Declared. + (gcd): Declared. + (pos_mul_hwi): Declared. + (mul_hwi): Declared. + (least_common_multiple): Declared. + * omega.c (check_pos_mul): Removed. + (check_mul): Removed. + (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and + mul_hwi instead of check_mul. + +2011-08-01 Richard Henderson + + PR target/49881 + * config/avr/avr.h (PUSH_ROUNDING): New. + * config/avr/avr.md (pushqi1): Rename from *pushqi. + (*pushhi, *pushsi, *pushsf): Remove. + (MPUSH): New mode iterator. + (push1): New expander. + +2011-08-01 Anatoly Sokolov + + * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS, + PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. + * config/mmix/mmix-protos.h (mmix_preferred_reload_class, + mmix_preferred_output_reload_class): Remove. + * config/mmix/mmix.c (mmix_preferred_reload_class, + mmix_preferred_output_reload_class): Make static. Change rclass + argument and return type to reg_class_t. + (TARGET_PREFERRED_RELOAD_CLASS, + TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. + +2011-08-01 Joern Rennecke + + * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER + handling. + +2011-08-01 H.J. Lu + + PR target/47766 + * config/i386/i386.md (PTR): New. + (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT. + (stack_protect_test): Likewise. + (stack_protect_set_): Replace ":P" with ":PTR". + (stack_tls_protect_set_): Likewise. + (stack_tls_protect_test_): Likewise. + +2011-08-01 Uros Bizjak + + PR target/49927 + * config/i386/i386.c (ix86_address_subreg_operand): New. + (ix86_decompose_address): Use ix86_address_subreg_operand. + (ix86_legitimate_address_p): Do not assert that subregs satisfy + register_no_elim_operand in DImode. + +2011-08-01 Ira Rosen + + PR tree-optimization/49926 + * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement + in a chain doesn't have uses both inside and outside the loop. + +2011-08-01 Georg-Johann Lay + + * config/avr/avr.h (mcu_type_s): Add errata_skip field. + * config/avr/avr-devices.c (avr_mcu_types): Use it. + * config/avr/avr-mcus.def (AVR_MCU): Use it. + * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin + define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__. + * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit): + Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__ + to detect if XJMP must not be skipped. + +2011-08-02 Alan Modra + + * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p): + Delete. + * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static. + (rs6000_emit_prologue): Don't prematurely return when + TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in + save_toc_in_prologue case. + (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for + calls_alloca. + +2011-08-01 Georg-Johann Lay + + * config/avr/avr-devices.c: Delete SVN property svn:executable. + * config/avr/predicates.md: Ditto. + * config/avr/driver-avr.c: Ditto. + * config/avr/genopt.sh: Set SVN property svn:executable to *. + +2011-08-01 H.J. Lu + + * calls.c (emit_library_call_value_1): Declare size only if + BLOCK_REG_PADDING is defined. + +2011-08-01 Kirill Yukhin + + PR target/49547 + * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h. + (x86_64-*-*): Likewise. + * config/i386/i386.opt (mlzcnt): New. + * config/i386/abmintrin.h: File removed. + (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ... + * config/i386/lzcntintrin.h: ... here. New file. + (__lzcnt): Rename to ... + (__lzcnt32): ... this. + * config/i386/bmiintrin.h (head): Update copyright year. + (__lzcnt_u16): Removed. + (__lzcnt_u32): Likewise. + (__lzcnt_u64): Likewise. + * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__ + is defined, remove abmintrin.h. + * config/i386/cpuid.h (bit_LZCNT): New. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect + LZCNT feature. + * config/i386/i386-c.c (ix86_target_macros_internal): Define + __LZCNT__ if needed. + * config/i386/i386.c (ix86_target_string): New option -mlzcnt. + (ix86_option_override_internal): Handle LZCNT option. + (ix86_valid_target_attribute_inner_p): Likewise. + (struct builtin_description bdesc_args) : Update. + * config/i386/i386.h (TARGET_LZCNT): New. + (CLZ_DEFINED_VALUE_AT_ZERO): Update. + * config/i386/i386.md (clz2): Update insn constraint. + (clz2_lzcnt): Likewise. + * doc/invoke.texi: Mention -mlzcnt option. + * doc/extend.texi: Likewise. + +2011-08-01 Julian Brown + + * configure.ac (fixed-point): Add ARM support. + * configure: Regenerate. + * config/arm/arm.c (arm_fixed_mode_set): New struct. + (arm_set_fixed_optab_libfunc): New. + (arm_set_fixed_conv_libfunc): New. + (arm_init_libfuncs): Initialise fixed-point helper libfuncs with + ARM-specific names. + (aapcs_libcall_value): Return sub-word-size fixed-point libcall + return values in SImode. + (arm_return_in_msb): Return fixed-point types in the msb. + (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types + upwards. + (arm_scalar_mode_supported_p): Support fixed-point modes. + (arm_vector_mode_supported_p): Support vector fixed-point modes. + * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE) + (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE) + (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE) + (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define. + * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL): + New mode iterators. + (qaddsub_suf): New mode attribute. + * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare + vector modes. + * config/arm/predicates.md (sat_shift_operator): New predicate. + * config/arm/arm-fixed.md: New. + * config/arm/arm.md: Include arm-fixed.md. + * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md. + +2011-08-01 Julian Brown + + * calls.c (emit_library_call_value_1): Support padding for libcall + arguments and return values. + * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values + downwards in big-endian mode. + +2011-08-01 Rainer Orth + + PR debug/49887 + * config/sol2.c (solaris_code_end): Rename to solaris_file_end. + * config/sol2-protos.h: Likewise. + * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call + solaris_code_end. + * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine. + * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call + solaris_file_end. + * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove. + +2011-08-01 Julian Brown + + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST. + +2011-08-01 Julian Brown + + * final.c (output_addr_const): Print fixed-point constants as + decimal not hex. + +2011-08-01 Richard Guenther + + * stor-layout.c (initialize_sizetypes): Properly sign-extend + bitsiztype TYPE_MAX_VALUE. + +2011-08-01 Julian Brown + + * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point + comparison helpers. + +2011-07-31 Richard Henderson + + * config/h8300/crti.asm: Add flags to .section directive. + * config/h8300/crtn.asm: Likewise. + +2011-07-31 Richard Henderson + + * stor-layout.c (initialize_sizetypes): Handle unsigned short. + * tree.c (build_common_tree_nodes): Likewise. + +2011-07-31 Kaz Kojima + + PR target/49880 + * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1. + (divsi3_i1): Likewise. + +2011-07-31 Bill Schmidt + + PR tree-optimization/49749 + * tree-ssa-reassoc.c (get_rank): New forward declaration. + (PHI_LOOP_BIAS): New macro. + (phi_rank): New function. + (loop_carried_phi): Likewise. + (propagate_rank): Likewise. + (get_rank): Add calls to phi_rank and propagate_rank. + +2011-07-31 H.J. Lu + + * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead + of TARGET_64BIT. + (PTRDIFF_TYPE): Likewise. + +2011-07-31 Uros Bizjak + + PR target/49920 + * config/i386/i386.md (strset): Do not expand strset_singleop + when %eax or $edi are fixed. + (*strsetdi_rex_1): Disable when %eax or %edi are fixed. + (*strsetsi_1): Ditto. + (*strsethi_1): Ditto. + (*strsetqi_1): Ditto. + (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed. + (*rep_stossi): Ditto. + (*rep_stosqi): Ditto. + (*strlenqi_1): Ditto. + (cmpstrnsi): Also fail when %ecx is fixed. + (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed. + (*cmpstrnqi_1): Ditto. + (*strmovdi_rex_1): Disable when %esi or %edi are fixed. + (*strmovsi_1): Ditto. + (*strmovhi_1): Ditto. + (*strmovqi_1): Ditto. + (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed. + (*rep_movsi): Ditto. + (*rep_movqi): Ditto. + +2011-07-31 Mikael Pettersson + + PR target/47908 + * config/m68k/m68k.c (m68k_override_options_after_change): New function. + Disable instruction scheduling for non-ColdFire targets. + (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. + +2011-07-31 Revital Eres + + * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation + of anti-dep edge from a branch. + (add_cross_iteration_register_deps): Create anti-dep edge from + a branch. + +2011-07-31 Revital Eres + + * modulo-sched.c: Change comment. + (reset_sched_times): Fix print message. + (print_partial_schedule): Add print info. + +2011-07-31 Tom de Vries + + PR middle-end/43513 + * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of + get_object_alignment and TYPE_ALIGN. + +2011-07-30 Tom de Vries + + PR middle-end/43513 + * tree-ssa-dce.c (ref_may_be_aliased): Add assert. + (propagate_necessity): Handle WITH_SIZE_EXPR call arg. + +2011-07-29 Rainer Orth + + * config/mips/driver-native.c [__sgi__]: Include , + . + (cpu_types): New array. + (cputype): New function. + (host_detect_local_cpu): Only define buf, f if !__sgi__. + Use scaninvent instead of /proc/cpuinfo if __sgi__. + * config.host: Also use driver-native.o, mips/x-native on + mips-sgi-irix*. + * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare. + (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define. + (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS. + +2011-07-29 Jakub Jelinek + + PR middle-end/49897 + PR middle-end/49898 + * omp-low.c (use_pointer_for_field): If disallowing copy-in/out + in nested parallel and outer is a gimple_reg, mark it as addressable + and set its bit in task_shared_vars bitmap too. + +2011-07-29 Uros Bizjak + + * config/i386/predicates.md (tp_or_register_operand): Remove predicate. + +2011-07-29 Rainer Orth + + * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY, + IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define. + (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE, + AMASK_LOCKPFTCHOK): Define. + (host_detect_local_cpu): Remove buf, f, cpu_names. + Define cpu_types, implver, amask. + Use __builtin_alpha_implver, __builtin_alpha_amask to determine + native CPU. + * config.host: Also use driver-alpha.o, alpha/x-alpha on + alpha*-dec-osf*. + * config/alpha/osf5.h [__alpha__ || __alpha] + (host_detect_local_cpu): Declare. + (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS) + (DRIVER_SELF_SPECS): Define. + +2011-07-29 Uros Bizjak + + PR target/47715 + * config/i386/i386.md (*load_tp_x32): New. + (*load_tp_x32_zext): Ditto. + (*add_tp_x32): Ditto. + (*add_tp_x32_zext): Ditto. + (*load_tp_): Disable for TARGET_X32 targets. + (*add_tp_): Ditto. + * config/i386/i386.c (get_thread_pointer): Load thread pointer in + ptr_mode and convert to Pmode if needed. + +2011-07-29 Georg-Johann Lay + + PR target/49687 + * config/avr/avr.md (mulsi3, *mulsi3, mulusi3, + mulssi3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3, + *mulsi3): + Add X to register footprint: Clobber r26/r27. + +2011-07-29 Richard Guenther + + * builtins.c (fold_builtin_signbit): Build the comparison + with a proper type. + +2011-07-29 Richard Guenther + + PR tree-optimization/49893 + * tree-predcom.c (suitable_reference_p): Volatile references + are not suitable. + +2011-07-29 Georg-Johann Lay + + PR target/49313 + * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. + (__ctzsi2): Result for 0 may be undefined. + (__ctzhi2): Result for 0 may be undefined. + (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. + (__popcountsi2): Ditto. And don't clobber r26. + (__popcountdi2): Ditto. And don't clobber r27. + * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. + (parityhi2): New expand. + (paritysi2): New expand. + (popcounthi2): New expand. + (popcountsi2): New expand. + (clzhi2): New expand. + (clzsi2): New expand. + (ctzhi2): New expand. + (ctzsi2): New expand. + (ffshi2): New expand. + (ffssi2): New expand. + (copysignsf3): New insn. + (bswapsi2): New expand. + (*parityhi2.libgcc): New insn. + (*parityqihi2.libgcc): New insn. + (*paritysihi2.libgcc): New insn. + (*popcounthi2.libgcc): New insn. + (*popcountsi2.libgcc): New insn. + (*popcountqi2.libgcc): New insn. + (*popcountqihi2.libgcc): New insn-and-split. + (*clzhi2.libgcc): New insn. + (*clzsihi2.libgcc): New insn. + (*ctzhi2.libgcc): New insn. + (*ctzsihi2.libgcc): New insn. + (*ffshi2.libgcc): New insn. + (*ffssihi2.libgcc): New insn. + (*bswapsi2.libgcc): New insn. + +2011-07-29 Richard Guenther + + * tree-vrp.c (get_value_range): Only set parameter default + definitions to varying, leave others at undefined. + (extract_range_from_binary_expr): Fix undefined handling. + (vrp_visit_phi_node): Handle merged undefined state. + +2011-07-29 Wei Guozhi + + PR rtl-optimization/49799 + * combine.c (make_compound_operation): Check if the bit field is valid + before change it to bit field extraction. + +2011-07-29 Bernd Schmidt + + PR rtl-optimization/49891 + * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for + newly created returnjumps. + +2011-07-28 DJ Delorie + + * expr.c (expand_expr_addr_expr_1): Detect a user request for a + local frame in a naked function, and produce a suitable error for + that specific case. + + * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI + registers to be reloaded in HI classes when the target is HI. + +2011-07-28 Sebastian Pop + + * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with + bound_one, bound_two. + +2011-07-28 Sebastian Pop + + PR middle-end/48648 + * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle + CLAST assignments. + (translate_clast): Same. + (translate_clast_assignment): New. + +2011-07-28 Sebastian Pop + + PR tree-optimization/49876 + * sese.c (rename_uses): Do not return false on gloog_error: set + the new_expr to integer_zero_node and continue code generation. + (graphite_copy_stmts_from_block): Remove early exit on gloog_error. + +2011-07-28 Jakub Jelinek + + PR debug/49846 + * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack + arguments also check if they aren't initialized with a MODE_INT + mode of the same size. + +2011-07-28 Aldy Hernandez + + * expr.c (get_bit_range): Handle *MEM_REF's. + +2011-07-28 Bernd Schmidt + + * rtlanal.c (tablejump_p): False for returns. + * reorg.c (first_active_target_insn): New static function. + (find_end_label): Set JUMP_LABEL for a new returnjump. + (optimize_skip, get_jump_flags, rare_destination, + mostly_true_jump, get_branch_condition, + steal_delay_list_from_target, own_thread_p, + fill_simple_delay_slots, follow_jumps, fill_slots_from_thread, + fill_eager_delay_slots, relax_delay_slots, make_return_insns, + dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs. + * jump.c (delete_related_insns): Likewise. + (jump_to_label_p): New function. + (redirect_target): New static function. + (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS. + (redirect_jump_1): Assert that the new label is nonnull. + (redirect_jump): Likewise. + (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels. + * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the + exit block. + (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers + changed. Ensure that the right label is passed to redirect_jump. + * function.c (emit_return_into_block, + thread_prologue_and_epilogue_insns): Ensure new returnjumps have + ret_rtx in their JUMP_LABEL. + * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL. + * emit-rtl.c (skip_consecutive_labels): Allow the caller to + pass ret_rtx as label. + * cfglayout.c (fixup_reorder_chain): Use + force_nonfallthru_and_redirect rather than force_nonfallthru. + (duplicate_insn_chain): Copy JUMP_LABELs for returns. + * rtl.h (ANY_RETURN_P): New macro. + (jump_to_label_p): Declare. + * resource.c (find_dead_or_set_registers): Handle ret_rtx in + JUMP_LABELs. + (mark_target_live_regs): Likewise. + * basic-block.h (force_nonfallthru_and_redirect): Declare. + * cfgrtl.c (force_nonfallthru_and_redirect): No longer static. + * config/alpha/alpha.c (alpha_tablejump_addr_vec, + alpha_tablejump_best_label): Remove functions. + * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec, + alpha_tablejump_best_label): Remove declarations. + * config/sh/sh.c (barrier_align, split_branches): Adjust for + ret_rtx in JUMP_LABELs. + * config/arm/arm.c (is_jump_table): Likewise. + +2011-07-28 Uros Bizjak + + * config/i386/predicates.md (pic_32bit_opreand): Do not define as + special predicate. Remove explicit mode checks. + +2011-07-28 Jakub Jelinek + + * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize + DW_AT_data_member_location containing just DW_OP_plus_uconst. + + PR debug/49871 + * dwarf2out.c (size_of_die, value_format, output_die): Use + DW_FORM_udata instead of DW_FORM_data[48] for + dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3. + +2011-07-28 H.J. Lu + + * config/i386/i386.md (*tls_global_dynamic_64): Update + length attribute. + +2011-07-28 Uros Bizjak + + PR target/47715 + * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from + tls_symbolic_operand check. Update code sequence for TARGET_X32. + (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. + (tls_dynamic_gnu2_64): Ditto. + (*tls_dynamic_gnu2_lea_64): Ditto. + (*tls_dynamic_gnu2_call_64): Ditto. + (*tls_dynamic_gnu2_combine_64): Ditto. + +2011-07-28 H.J. Lu + + * config.gcc: Set need_64bit_hwint to yes for x86 targets. + +2011-07-28 H.J. Lu + + PR target/47364 + * config/i386/i386.md (strlen): Replace SWI48x with P. + +2011-07-28 Ramana Radhakrishnan + + * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints + before the core constraints. Adjust attributes. + ("*thumb2_movdf_vfp"): Likewise. + +2011-07-28 Kai Tietz + + * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case. + (simplify_truth_ops_using_ranges): Likewise. + (build_assert_expr_for): Likewise. + (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case + and handle BIT_NOT_EXPR for truth-operation. + +2011-07-28 Georg-Johann Lay + + PR target/49313 + Undo r176835 from trunk + 2011-07-27 Georg-Johann Lay + +2011-07-28 Georg-Johann Lay + + PR target/49687 + * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit. + Add _muluhisi3, _mulshisi3, _usmulhisi3. + * config/avr/libgcc.S (__mulsi3): Rewrite. + (__mulhisi3): Rewrite. + (__umulhisi3): Rewrite. + (__usmulhisi3): New. + (__muluhisi3): New. + (__mulshisi3): New. + (__mulohisi3): New. + (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to + declare. + * config/avr/predicates.md (pseudo_register_operand): Rewrite. + (pseudo_register_or_const_int_operand): New. + (combine_pseudo_register_operand): New. + (u16_operand): New. + (s16_operand): New. + (o16_operand): New. + * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI. + * config/avr/avr.md (QIHI, QIHI2): New mode iterators. + (any_extend, any_extend2): New code iterators. + (extend_prefix): New code attribute. + (mulsi3): Rewrite. Turn insn to expander. + (mulhisi3): Ditto. + (umulhisi3): Ditto. + (usmulhisi3): New expander. + (*mulsi3): New insn-and-split. + (mulusi3): New insn-and-split. + (mulssi3): New insn-and-split. + (mulohisi3): New insn-and-split. + (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3, + *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3, + *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3, + *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New + insn-and-split. + (*mulsi3_call): Rewrite. + (*mulhisi3_call): Rewrite. + (*umulhisi3_call): Rewrite. + (*usmulhisi3_call): New insn. + (*muluhisi3_call): New insn. + (*mulshisi3_call): New insn. + (*mulohisi3_call): New insn. + (extendqihi2): Use combine_pseudo_register_operand as predicate + for operand 1. + (extendqisi2): Ditto. + (zero_extendqihi2): Ditto. + (zero_extendqisi2): Ditto. + (zero_extendhisi2): Ditto. + (extendhisi2): Ditto. Don't early-clobber operand 0. + +2011-07-28 Uros Bizjak + + * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX. + +2011-07-27 Sebastian Pop + + PR tree-optimization/49471 + * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned + iv only when the largest type is unsigned. Do not call + lang_hooks.types.type_for_size. + +2011-07-27 Sebastian Pop + + PR middle-end/45450 + * graphite-poly.c (apply_poly_transforms): Disable legality check + after an openscop read. + +2011-07-27 Sebastian Pop + + PR middle-end/47691 + * graphite-clast-to-gimple.c (translate_clast_user): Update use of + copy_bb_and_scalar_dependences. + * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error. + (graphite_copy_stmts_from_block): Update call to rename_uses. + (copy_bb_and_scalar_dependences): Update call to + graphite_copy_stmts_from_block. + * sese.h (copy_bb_and_scalar_dependences): Update declaration. + +2011-07-27 Georg-Johann Lay + + PR target/49313 + * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. + (__ctzsi2): Result for 0 may be undefined. + (__ctzhi2): Result for 0 may be undefined. + (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. + (__popcountsi2): Ditto. And don't clobber r26. + (__popcountdi2): Ditto. And don't clobber r27. + * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. + (parityhi2): New expand. + (paritysi2): New expand. + (popcounthi2): New expand. + (popcountsi2): New expand. + (clzhi2): New expand. + (clzsi2): New expand. + (ctzhi2): New expand. + (ctzsi2): New expand. + (ffshi2): New expand. + (ffssi2): New expand. + (copysignsf3): New insn. + (bswapsi2): New expand. + (*parityhi2.libgcc): New insn. + (*parityqihi2.libgcc): New insn. + (*paritysihi2.libgcc): New insn. + (*popcounthi2.libgcc): New insn. + (*popcountsi2.libgcc): New insn. + (*popcountqi2.libgcc): New insn. + (*popcountqihi2.libgcc): New insn-and-split. + (*clzhi2.libgcc): New insn. + (*clzsihi2.libgcc): New insn. + (*ctzhi2.libgcc): New insn. + (*ctzsihi2.libgcc): New insn. + (*ffshi2.libgcc): New insn. + (*ffssihi2.libgcc): New insn. + (*bswapsi2.libgcc): New insn. + +2011-07-27 Uros Bizjak + + * config/i386/i386.c (ix86_expand_move): Do not explicitly check + the mode of symbolic_opreand RTXes. + +2011-07-27 Uros Bizjak + + * config/i386/predicates.md (x86_64_movabs_operand): Return false + for pic_32bit_operand RTXes. + * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand + in DImode. + +2011-07-27 Kai Tietz + + * config/i386/i386.c (ix86_option_override_internal): Allow -mabi + for 32-bit, too. + (ix86_handle_abi_attribute): Allow function attributes + ms_abi/sysv_abi in 32-bit mode, too. + * doc/extend.texi: Adjust attribute documentation. + + * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR + expression handling. + (and_var_with_comparison_1): Likewise. + +2011-07-27 Aldy Hernandez + + * params.h (ALLOW_STORE_DATA_RACES): New. + * params.def (PARAM_ALLOW_STORE_DATA_RACES): New. + * Makefile.in (expr.o): Depend on PARAMS_H. + * machmode.h (get_best_mode): Add argument. + * fold-const.c (optimize_bit_field_compare): Add argument to + get_best_mode. + (fold_truthop): Same. + * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field. + * expr.c (emit_group_store): Same. + (copy_blkmode_from_reg): Same. + (write_complex_part): Same. + (optimize_bitfield_assignment_op): Add argument. + Add argument to get_best_mode. + (get_bit_range): New. + (expand_assignment): Calculate maxbits and pass it down accordingly. + (store_field): New argument. + (expand_expr_real_2): New argument to store_field. Include params.h. + * expr.h (store_bit_field): New argument. + * stor-layout.c (get_best_mode): Restrict mode expansion by taking + into account maxbits. + * calls.c (store_unaligned_arguments_into_pseudos): New argument + to store_bit_field. + * expmed.c (store_bit_field_1): New argument. Use it. + (store_bit_field): Same. + (store_fixed_bit_field): Same. + (store_split_bit_field): Same. + (extract_bit_field_1): Pass new argument to get_best_mode. + (extract_bit_field): Same. + * stmt.c (store_bit_field): Pass new argument to store_bit_field. + * doc/invoke.texi: Document parameter allow-store-data-races. + +2011-07-27 Jakub Jelinek + + * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option. + +2011-07-27 Kai Tietz + + * tree-vrp.c (extract_range_from_binary_expr): Remove + TRUTH-binary cases and add new bitwise-cases. + (extract_range_from_assignment): Likewise. + (register_edge_assert_for_1): Likeiwise. + (register_edge_assert_for): Likewise. + (simplify_truth_ops_using_ranges): Likewise. + (simplify_stmt_using_ranges): Likewise. + +2011-07-26 H.J. Lu + + PR target/47372 + * config/i386/i386.c (ix86_delegitimize_address): Call + simplify_gen_subreg for PIC with mode of x only if modes of + x and orig_x are different. + +2011-07-26 Jakub Jelinek + + * dwarf2out.c (output_macinfo_op): Ensure fd->filename points + to GC allocated copy of the string. + (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections + before .debug_line, not after it. + +2011-07-26 Sebastian Pop + + PR middle-end/47046 + * tree-chrec.h (evolution_function_is_affine_p): Recursively call + evolution_function_is_affine_p on CHREC_RIGHT. + +2011-07-26 Sebastian Pop + + * tree-data-ref.c (max_stmt_executions_tree): Do not call + lang_hooks.types.type_for_size. + +2011-07-26 Sebastian Pop + + PR middle-end/47653 + * graphite-scop-detection.c (graphite_can_represent_loop): Discard + loops using wrapping semantics. + +2011-07-26 Sebastian Pop + + PR middle-end/48805 + * tree-scalar-evolution.c (instantiate_scev_r): Return + chrec_dont_know for ADDR_EXPR. + +2011-07-26 Uros Bizjak + H.J. Lu + + PR target/47369 + PR target/49853 + * config/i386/i386.c (ix86_expand_move): Call convert_to_mode + if legitimize_tls_address returned operand in wrong mode. Allow + SImode and DImode symbolic operand for PIC. Call convert_to_mode + if legitimize_pic_address returned operand in wrong mode. + +2011-07-26 Martin Jambor + + * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and + return false for invariants. + +2011-07-26 Uros Bizjak + + * config/i386/i386.md (add->lea splitter): Implement using SWI + mode iterator. Change operand 2 predicate to . + (add->lea zext splitter): Change operand 2 predicate to + x86_64_nonmemory_operand. + +2011-07-26 Richard Guenther + + * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block + frequency makes everything hot. + +2011-07-26 Richard Guenther + + PR tree-optimization/49840 + * tree-vrp.c (range_fits_type_p): Properly handle full + double-int precision. + +2011-07-26 Martin Jambor + + PR bootstrap/49786 + * ipa-cp.c (update_profiling_info): Avoid overflow when updating + counts. + (update_specialized_profile): Likewise. + +2011-07-26 Uros Bizjak + H.J. Lu + + PR target/47381 + PR target/49832 + PR target/49833 + * config/i386/i386.md (i): Change SImode attribute to "e". + (g): Change SImode attribute to "rme". + (di): Change SImode attribute to "nF". + (general_operand): Change SImode attribute to x86_64_general_operand. + (general_szext_operand): Change SImode attribute to + x86_64_szext_general_operand. + (immediate_operand): Change SImode attribute to + x86_64_immediate_operand. + (nonmemory_operand): Change SImode attribute to + x86_64_nonmemory_operand. + (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. + (*movsi_internal): Ditto. Use "e" constraint in alternative 2. + (*lea_1): Use SWI48 mode iterator. + (*lea_1_zext): New insn pattern. + (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. + (*bt): Ditto. + (*add1): Use x86_64_general_operand predicate for operand 2. + Update operand constraints. + (addsi_1_zext): Ditto. + (*add2): Ditto. + (*addsi_3_zext): Ditto. + (*subsi_1_zext): Ditto. + (*subsi_2_zext): Ditto. + (*subsi_3_zext): Ditto. + (*addsi3_carry_zext): Ditto. + (*si3_zext_cc_overflow): Ditto. + (*mulsi3_1_zext): Ditto. + (*andsi_1): Ditto. + (*andsi_1_zext): Ditto. + (*andsi_2_zext): Ditto. + (*si_1_zext): Ditto. + (*si_2_zext): Ditto. + (*test_1): Use predicate for operand 1. + (*and_2): Ditto. + (movcc): Use predicate for operands 1 and 2. + (add->lea splitter): Check operand modes in insn constraint. Extend + operands less than SImode wide to SImode. + (add->lea zext splitter): Do not extend input operands to DImode. + (*lea_general_1): Handle only QImode and HImode operands. + (*lea_general_2): Ditto. + (*lea_general_3): Ditto. + (*lea_general_1_zext): Remove. + (*lea_general_2_zext): Ditto. + (*lea_general_3_zext): Ditto. + (*lea_general_4): Check operand modes in insn constraint. Extend + operands less than SImode wide to SImode. + (ashift->lea splitter): Ditto. + * config/i386/i386.c (ix86_print_operand_address): Print address + registers with 'q' modifier on 64bit targets. + * config/i386/predicates.md (pic_32bit_opreand): Define as special + predicate. Reject non-SI and non-DI modes. + +2011-07-25 Andrew Pinski + + PR tree-opt/49671 + * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and + TREE_THIS_NOTRAP into the inner most MEM_REF. + Always copy TREE_THIS_VOLATILE. + * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and + arguments are not volatile references. + +2011-07-25 Richard Henderson + + * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove. + * final.c (final_scan_insn): Don't test for it. + (rest_of_clean_state): Likewise. + +2011-07-25 Richard Henderson + + PR debug/49841 + * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn. + (emit_frame_save): Likewise. + (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save + insn onto a dummy blockage insn after the join label. + +2011-07-25 Richard Henderson + + * dwarf2cfi.c (dw_trace_info): Add ID member. + (get_trace_index): Remove. Change users to use ID member. + (before_next_cfi_note): New. + (connect_traces): Remove unreachable traces before the main loop. + Look across one trace and generate remember/restore_state if needed. + +2011-07-25 Richard Henderson + + * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New. + +2011-07-25 Joern Rennecke + + * genattr.c (write_upcase, gen_attr ): + Move to ... + * genattr-common.c ... here. + (main): Call gen_attr. + * optc-gen.awk: Make generated program include insn-attr-common.h . + * Makefile.in (oprions.o): Depend on insn-attr-common.h + +2011-07-25 Anatoly Sokolov + + * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, + PRINT_OPERAND_PUNCT_VALID_P): Remove macro. + * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p, + m32c_print_operand, m32c_print_operand_address): Remove. + * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static. + Change return type to bool. Change argument type to bool. + (m32c_print_operand, m32c_print_operand_address): Make static. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, + TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. + +2011-07-25 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords, Environment + attributes): Document mmap. + +2011-07-25 Anatoly Sokolov + + * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, + PRINT_OPERAND_PUNCT_VALID_P): Remove macro. + * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p, + mmix_print_operand, mmix_print_operand_address): Remove. + * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static. + Change return type to bool. Change argument type to bool. + (mmix_print_operand, mmix_print_operand_address): Make static. + (mmix_intval, mmix_output_condition): Change 'x' argument type + to const_rtx. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, + TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. + +2011-07-25 Georg-Johann Lay + + PR target/39386 + * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as + shift counter for x << x and x >> x shifts. + +2011-07-25 Rainer Orth + + PR target/47124 + * config.gcc: Reject *-*-solaris2 configuration. + +2011-07-25 Richard Sandiford + + PR tree-optimization/49809 + * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use + gimple_get_lhs instead of gimple_assign_lhs. + +2011-07-25 Rainer Orth + + * system.h [__cplusplus]: Wrap C function declarations in extern "C". + +2011-07-25 Richard Guenther + + PR tree-optimization/49822 + * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify + more. Make sure to preserve stmts with side-effects. Properly + handle virtual defs, follow a longer def chain. + +2011-07-22 Romain Geissler + + PR plugins/45348 + PR plugins/48425 + PR plugins/46577 + * Makefile.in: Do not flatten c-family directory when installing + plugin headers. + +2011-07-25 Eric Botcazou + + * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of + original nodes if we are dealing with virtual clones. + +2011-07-25 Bernd Schmidt + + * common/config/c6x/c6x-common.c: New file. + +2011-07-25 Roman Zhuykov + + * tree-flow.h (tree_ssa_loop_version): Remove unused declaration. + +2011-07-25 Richard Guenther + + PR tree-optimization/49715 + * tree-vrp.c: Include expr.h and optabs.h. + (range_fits_type_): New function. + (simplify_float_conversion_using_ranges): Likewise. + (simplify_stmt_using_ranges): Call it. + * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies. + * optabs.c (can_float_p): Export. + * optabs.h (can_float_p): Declare. + +2011-07-25 Richard Guenther + + * tree-vrp.c (num_vr_values, values_propagated): New global vars. + (get_value_range): For out-of-range SSA names or names created + after propagation return a read-only varying range. + (dump_all_value_ranges): Adjust. + (vrp_initialize): Likewise. + (vrp_finalize): Likewise. + +2011-07-24 Richard Henderson + + PR debug/49831 + * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip + them entirely. + +2011-07-24 Richard Henderson + + PR debug/49825 + * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier. + (dwarf2out_notice_stack_adjust): Use args_size from call_insn. + +2011-07-24 Richard Henderson + + PR debug/49827 + * dwarf2cfi.c (create_trace_edges): Handle sequences properly. + +2011-07-24 Richard Henderson + + * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter. + Zero args_size for abnormal edges. Adjust all callers. + +2011-07-24 Richard Henderson + + PR debug/49825 + * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size. + +2011-07-24 H.J. Lu + + PR bootstrap/49835 + * collect2.c (demangle_flag): Removed. + +2011-07-24 Sandra Loosemore + + * configure.ac (demangler_in_ld): Default to yes. + * configure: Regenerated. + * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't + mess with COLLECT_NO_DEMANGLE, and just pass --demangle and + --no-demangle options straight through to ld. When + HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a + way that has the intended effect on Windows. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c: Include basic-block.h. + (dw_label_info): Remove. + (trace_work_list, trace_index): New. + (remember_row, emit_cfa_remember): Remove. + (dw_trace_info_hash, dw_trace_info_eq): New. + (get_trace_index, get_trace_info): New. + (save_point_p): New. + (free_cfi_row): Remove. + (add_cfi): Do not emit DW_CFA_remember_state. + (cfa_row_equal_p): New. + (barrier_args_size): Remove. + (compute_barrier_args_size_1, compute_barrier_args_size): Remove. + (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size. + (maybe_record_trace_start, create_trace_edges, scan_trace): New. + (dwarf2out_cfi_begin_epilogue): Remove. + (dwarf2out_frame_debug_restore_state): Remove. + (connect_traces, create_pseudo_cfg): New. + (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces. + * Makefile.in (dwarf2cfi.o): Update. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (dw_trace_info): New. + (dw_label_info): New. + (cie_return_save): New. + (cur_trace): New. + (queued_args_size): Rename from args_size. Update all users. + (cfa_store, cfa_temp, regs_saved_in_regs): Remove. + (def_cfa_1): Use cur_trace instead of cfa_*. + (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise. + (clobbers_queued_reg_save, reg_saved_in): Likewise. + (dwarf2out_frame_debug_expr): Likewise. + (create_cie_data): Split out from ... + (execute_dwarf2_frame): ... here. Initialize cur_trace. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc. + Update all users to match. + (execute_dwarf2_frame): Free reg_saved_in_data. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY. + (queued_reg_saves): Don't GTY. Change to a VEC. + (queue_reg_save): Update to match. + (dwarf2out_flush_queued_reg_saves): Likewise. + (clobbers_queued_reg_save): Likewise. + (reg_saved_in): Likewise. + (execute_dwarf2_frame): Free queued_reg_saves. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (add_cfi_args_size): Split out from... + (dwarf2out_args_size): ... here. + (add_cfi_restore): Split out from ... + (dwarf2out_frame_debug_cfa_restore): ... here. + (def_cfa_0): Split out from ... + (def_cfa_1): ... here. + (cfi_oprnd_equal_p, cfi_equal_p): New. + (change_cfi_row): New. + (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index. + (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note. + (output_cfis): Remove. + * dwarf2out.c (output_fde): Simplify output_cfi loop. + (dwarf2out_switch_text_section): Don't call output_cfis. + (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New. + * dwarf2out.h: Update decls. + (enum dw_val_class): Add dw_val_class_none. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (update_row_reg_save): New. + (dwarf2out_frame_debug_cfa_expression): Use it. + (dwarf2out_frame_debug_cfa_restore): Likewise. + (reg_save): Likewise. Do not emit DW_CFA_same_value. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users. + +2011-07-23 Richard Henderson + + * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New. + (cie_cfi_row): New. + (new_cfi_row, copy_cfi_row, free_cfi_row): New. + (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove. + (cur_row, remember_row): New. + (def_cfa_1): Use cur_row instead of the old_* variables. + (dwarf2out_frame_debug_restore_state): Similarly. + (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise. + (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa. + (dwarf2out_frame_debug_adjust_cfa): Likewise. + (dwarf2out_frame_debug_cfa_offset): Likewise. + (dwarf2out_frame_debug_expr): Likewise. + (execute_dwarf2_frame): Set up cur_row. + * dwarf2out.h (struct cfa_loc): Mark for GTY. + +2011-07-23 Richard Henderson + + * basic-block.h (EDGE_PRESERVE): New. + (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it. + * bb-reorder.c: Include except.h. + (fix_up_crossing_landing_pad): New. + (find_rarely_executed_basic_blocks_and_crossing_edges): Place + landing pads in the right partition. Duplicate as necessary. + (partition_hot_cold_basic_blocks): Fix up DF info after + duplicating landing pads. + * cfg.c (dump_edge_info): Add crossing and preserve to bitnames. + * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING + is set properly. Validate that EH edges are not CROSSING. + * except.c (expand_dw2_landing_pad_for_region): Split out from ... + (dw2_build_landing_pads): ... here. + (convert_to_eh_region_ranges): Remove code to fixup crossing + landing pads. + * except.h (expand_dw2_landing_pad_for_region): Declare. + * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges. + +2011-07-23 Richard Earnshaw + + PR target/49816 + * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure. + +2011-07-22 Jason Merrill + + * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing. + +2011-07-22 Richard Henderson + + * bb-reorder.c (gate_handle_partition_blocks): Honor optimize. + +2011-07-22 Richard Henderson + + * jump.c (maybe_propagate_label_ref): Split out of... + (mark_all_labels): ... here. Do not attempt label_ref + propagation while in cfglayout mode. + +2011-07-22 Jakub Jelinek + + * dwarf2out.c (struct macinfo_struct): Change code to unsigned char. + (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define. + (dwarf_attr_name): Handle DW_AT_GNU_macros. + (dwarf2out_define): If the vector is empty and + lineno is 0, emit a dummy entry first. + (dwarf2out_undef): Likewise. Remove redundant semicolon. + (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op, + optimize_macinfo_range): New functions. + (output_macinfo): Use them. If !dwarf_strict and .debug_str is + mergeable, optimize longer strings using + DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP, + optimize longer sequences of define/undef ops from headers + using DW_MACRO_GNU_transparent_include. For !dwarf_strict + emit a section headers. + (dwarf2out_init): For !dwarf_strict set debug_macinfo_section + and macinfo_section_label to DEBUG_MACRO_SECTION + resp. DEBUG_MACRO_SECTION_LABEL. + (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros + instead of DW_AT_macro_info. + + PR other/32998 + * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New + options. + * dwarf2out.c: Include opts.h. + (dchar_p): New typedef. Define heap VEC for it. + (producer_string): New variable. + (gen_producer_string): New function. + (gen_compile_unit_die): Use it. + (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed. + * Makefile.in (dwarf2out.o): Depend on $(OPTS_H). + * doc/invoke.texi: Document -grecord-gcc-switches and + -gno-record-gcc-switches, add a -grecord-gcc-switches reference + to -frecord-gcc-switches description. + +2011-07-22 Jason Merrill + + PR c++/30112 + * c-decl.c (c_linkage_bindings): Define. + +2011-07-22 Eric Botcazou + + PR debug/49815 + * var-tracking.c (vt_finalize): Always free windowed_parm_regs. + +2011-07-22 H.J. Lu + + * config/i386/i386.c (ix86_option_override_internal): Disallow + MS ABI in x32 mode. + (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi + only for TARGET_LP64. + (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT. + +2011-07-22 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to + avoid warnings when GCC is built with a C++ compiler. + +2011-07-22 Martin Jambor + + PR lto/49796 + * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false + if decl node is in another partition, call cgraph_get_node only once. + +2011-07-22 Uros Bizjak + + * config.gcc (x86_64-*-linux*): Set + default_gnu_indirect_function to yes. + +2011-07-22 Richard Guenther + + PR tree-optimization/45819 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly + preserve volatile and notrap flags. + +2011-07-22 Rainer Orth + Ralf Wildenhues + + PR bootstrap/49794 + * configure.ac: Test AM_ICONV with CXX. + * configure: Regenerate. + * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST. + +2011-07-22 Rainer Orth + + PR bootstrap/49797 + * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing. + (set_cloog_options): Use it. + +2011-07-22 Jakub Jelinek + + PR c++/49756 + * gcc.c (main): Call stack_limit_increase (64MB). + * toplev.c (toplev_main): Likewise. + +2011-07-21 H.J. Lu + + * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg + instead of force_reg. + +2011-07-21 H.J. Lu + + * config/i386/i386.c (ix86_expand_move): Convert to Pmode if + needed and use force_reg after convert. + (ix86_expand_call): Likewise. + (ix86_expand_special_args_builtin): Likewise. + (ix86_expand_builtin): Likewise. + +2011-07-21 Sebastian Pop + + PR middle-end/47654 + PR middle-end/49649 + * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2 + in parameter. Initialize v1 and v2 based on the values returned + by clast_name_to_lb_ub. + (type_for_clast_red): Pass v1 and v2 in parameter, and set their + values. + (type_for_clast_bin): Same. + (type_for_clast_expr): Same. + (type_for_clast_eq): Update calls to type_for_clast_expr. + (type_for_clast_for): Same. + (build_iv_mapping): Same. + * graphite-ppl.h (value_min): New. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (type_for_interval): Generate signed + types whenever possible. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (struct clast_name_index): Add lb + and ub fields. + (new_clast_name_index): Add lb and ub parameters. + (free_clast_name_index): New. + (clast_name_to_lb_ub): New. + (save_clast_name_index): Add lb and ub parameters. + (compute_bounds_for_param): New. + (type_for_level): Removed. + (type_for_clast_for): Removed level parameter. Do not call + type_for_level. + (graphite_create_new_loop): Store the lb and ub for the clast_name + of the iterator of the loop that has been generated. + (graphite_create_new_loop_guard): Remove parameter level. + (create_params_index): Store the lb and ub of each parameter. + (gloog): Use free_clast_name_index. Pass to create_params_index + the current scop. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (max_signed_precision_type): Removed. + (max_precision_type): Inline max_signed_precision_type. + (type_for_clast_red): Use max_precision_type. + (type_for_clast_bin): Same. + (type_for_clast_for): Same. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed + type_for_interval. + (gcc_type_for_value): Renamed type_for_value. + (gcc_type_for_clast_term): Renamed type_for_clast_term. + (gcc_type_for_clast_expr): Renamed type_for_clast_expr. + (gcc_type_for_clast_red): Renamed type_for_clast_red. + (gcc_type_for_clast_bin): Renamed type_for_clast_bin. + (gcc_type_for_clast_eq): Renamed type_for_clast_eq. + (graphite_translate_clast_equation): Update calls. + (compute_type_for_level): Renamed type_for_level. + (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for. + (build_iv_mapping): Update calls. + (graphite_create_new_loop_guard): Same. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme + comment. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (struct ivs_params): New. + (clast_name_to_gcc): Use ivs_params to pass around parameters. + (clast_to_gcc_expression): Same. + (clast_to_gcc_expression_red): Same. + (gcc_type_for_clast_term): Same. + (gcc_type_for_clast_expr): Same. + (gcc_type_for_clast_red): Same. + (gcc_type_for_clast_bin): Same. + (gcc_type_for_clast_eq): Same. + (graphite_translate_clast_equation): Same. + (graphite_create_guard_cond_expr): Same. + (graphite_create_new_guard): Same. + (graphite_create_new_loop): Same. + (build_iv_mapping): Same. + (translate_clast_user): Same. + (graphite_create_new_loop_guard): Same. + (translate_clast): Same. + (translate_clast_for_loop): Same. + (translate_clast_for): Same. + (translate_clast_guard): Same. + (initialize_cloog_names): Fix typo. + (gloog): Initialize an ivs_params struct, pass it to translate_clast. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (struct clast_name_index): Add level. + (new_clast_name_index): Add level parameter. + (clast_name_to_level): New. + (save_clast_name_index): Add level parameter. + (newivs_to_depth_to_newiv): Removed. + (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv. + (graphite_create_new_loop): Add level parameter. Pass level to + save_clast_name_index. + (translate_clast_for_loop): Pass level to graphite_create_new_loop. + (create_params_index): Pass level to save_clast_name_index. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not + recompute type, lb, and ub. Get them from... + (graphite_create_new_loop_guard): ...here. Pass in parameter + pointers to type, lb, and ub. + (translate_clast_for_loop): Update function calls. + (translate_clast_for): Same. + +2011-07-21 Sebastian Pop + + * graphite-clast-to-gimple.c (compute_bounds_for_level): Call + psct_dynamic_dim. + (translate_clast_for_loop): Pass loop level to dependency_in_loop_p. + (gcc_type_for_iv_of_clast_loop): Update use of level. + (gloog): Start counting nesting level from 0. + * graphite-clast-to-gimple.h (get_scattering_level): Removed. + * graphite-dependences.c (graphite_carried_dependence_level_k): Call + psct_dynamic_dim on level. + +2011-07-21 H.J. Lu + + * config/i386/i386.c (ix86_legitimize_address): Convert to + Pmode if needed. + +2011-07-21 H.J. Lu + + * config/i386/i386.c (function_value_64): Always return pointers + in Pmode. + (ix86_promote_function_mode): New. + (TARGET_PROMOTE_FUNCTION_MODE): Likewise. + +2011-07-21 Bill Schmidt + + PR tree-optimization/49749 + * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and + remove no-longer-used maxrank variable. + +2011-07-21 Georg-Johann Lay + + * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs. + +2011-07-21 Jason Merrill + + * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New. + * recog.h (struct insn_data_d): Check it instead of + HAVE_DESIGNATED_INITIALIZERS. + * genoutput.c (output_insn_data): Likewise. + +2011-07-21 Richard Guenther + + PR tree-optimization/49770 + * tree-ssa-sccvn.c (valueize_refs_1): Return whether we + valueized any operand. Renamed from ... + (valueize_refs): ... this. New wrapper around valueize_refs_1. + (valueize_shared_reference_ops_from_ref): Return whether we + valueized any operand. + (vn_reference_lookup): Only when we valueized any operand + use the valueized reference for alias analysis. Do not preserve + the original reference tree in this case. + +2011-07-21 Uros Bizjak + + * config/i386/i386.c (ix86_decompose_address): Reject all but + register operands and subregs of DImode hard registers in index. + +2011-07-21 Kai Tietz + + * fold-const.c (fold_unary_loc): Preserve indirect + comparison cast to none-boolean type. + * tree-ssa.c (useless_type_conversion_p): Preserve cast + from/to boolean-type. + * gimplify.c (gimple_boolify): Handle boolification of comparisons. + (gimplify_expr): Boolifiy non aggregate-typed comparisons. + * tree-cfg.c (verify_gimple_comparison): Check result + type of comparison expression. + * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test + of condition result and disallow type-cast sinking into comparison. + +2011-07-21 Richard Guenther + + * tree-ssa-forwprop.c (combine_conversions): Return whether + we have to run cfg-cleanup. Properly remove dead stmts. + (ssa_forward_propagate_and_combine): Adjust. + +2011-07-21 Richard Sandiford + + * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK. + +2011-07-21 Kai Tietz + + * tree-ssa-propagate.c (substitute_and_fold): Use + do_dce flag to deside, if BB's statements are scanned + in last to first, or first to last order. + +2011-07-21 Georg-Johann Lay + + * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0. + +2011-07-20 H.J. Lu + Uros Bizjak + Richard Henderson + + * config/i386/constraints.md (w): New. + + * config/i386/i386.c (ix86_output_addr_vec_elt): Check + TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD. + + * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64 + instead of TARGET_64BIT. + + * config/i386/i386.md (indirect_jump): Replace + nonimmediate_operand with indirect_branch_operand. + (*indirect_jump): Likewise. Replace constraint "m" with "w". + (tablejump): Replace nonimmediate_operand with indirect_branch_operand. + Convert operand 0 to Pmode for x32 if not PIC. + (*tablejump_1): Replace nonimmediate_operand with + indirect_branch_operand. Replace constraint "m" with "w". + (*call_vzeroupper): Replace constraint "m" with "w". + (*call): Likewise. + (*call_rex64_ms_sysv_vzeroupper): Likewise. + (*call_rex64_ms_sysv): Likewise. + (*call_value_vzeroupper): Likewise. + (*call_value): Likewise. + (*call_value_rex64_ms_sysv_vzeroupper): Likewise. + (*call_value_rex64_ms_sysv): Likewise. + (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT. + + * config/i386/predicates.md (indirect_branch_operand): New. + (call_insn_operand): Support x32. + +2011-07-20 Michael Eager + + * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12. + +2011-07-20 Richard Henderson + + * cfg.c (dump_bb_info): Dump basic_block->flags. + * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info. + +2011-07-20 Uros Bizjak + + * config/i386/i386.c (ix86_decompose_address): Allow only subregs + of DImode hard registers in index. + (ix86_legitimate_address_p): Allow subregs of base and index to span + more than a word. Assert that subregs of base and index satisfy + register_no_elim_operand predicates. Reject addresses where + base and index have different modes. + +2011-07-20 Robert Millan + + * config.gcc (mips*-*-linux*): Remove redundant tm_file entry. + +2011-07-20 Ulrich Weigand + + * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by + removing now-unnecessary assignment. + +2011-07-20 Ulrich Weigand + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting + memory address space to the type's address space. + +2011-07-20 Georg-Johann Lay + + PR target/36467 + PR target/49687 + * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2 + and expand appropriately if there is a CONST_INT in operand2. + (usmulqihi3): New insn. + (*sumulqihi3): New insn. + (*osmulqihi3): New insn. + (*oumulqihi3): New insn. + (*muluqihi3.uconst): New insn_and_split. + (*muluqihi3.sconst): New insn_and_split. + (*mulsqihi3.sconst): New insn_and_split. + (*mulsqihi3.uconst): New insn_and_split. + (*mulsqihi3.oconst): New insn_and_split. + (*ashifthi3.signx.const): New insn_and_split. + (*ashifthi3.signx.const7): New insn_and_split. + (*ashifthi3.zerox.const): New insn_and_split. + (mulsqihi3): New insn. + (muluqihi3): New insn. + (muloqihi3): New insn. + * config/avr/predicates.md (const_2_to_7_operand): New. + (const_2_to_6_operand): New. + (u8_operand): New. + (s8_operand): New. + (o8_operand): New. + (s9_operand): New. + (register_or_s9_operand): New. + +2011-07-20 Kai Tietz + + * builtins.c (fold_builtin_expect): See through the cast + from truthvalue_type_node to long. + +2011-07-20 Michael Meissner + + * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions + where we can use them from the standard and altivec instruction + sets, instead of always using the 3 operand VSX forms that require + the destination to overlap one of the inputs. + (vsx_fms*): Ditto. + (vsx_fnma*): Ditto. + (vsx_fnms*): Ditto. + + * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d + for DF types. + (fmsdf4_fpr): Ditto. + (nfmadf4_fpr): Ditto. + (nfmsdf4_fpr): Ditto. + +2011-07-20 Sandra Loosemore + + * genrecog.c (make_insn_sequence): Correct position numbering + when filtering out match_scratch and match_dup. + +2011-07-20 Richard Guenther + + * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify + against already removed statements. + (forward_propagate_into_comparison): Remove dead defining stmts. + (forward_propagate_into_gimple_cond): Likewise. + (forward_propagate_into_cond): Simplify. + (ssa_forward_propagate_and_combine): Handle changed cfg from + forward_propagate_into_comparison. + * tree-ssa-phiopt.c (conditional_replacement): Use proper + locations for newly built statements. + +2011-07-20 Georg-Johann Lay + + * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0. + +2011-07-20 Andreas Krebbel + + * config/s390/s390.c (s390_class_max_nregs): Fix return type. + * config/s390/s390-protos.h (s390_class_max_nregs): Likewise. + +2011-07-20 Richard Guenther + + PR middle-end/18908 + * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision. + * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus + ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X. + +2011-07-20 Vladimir Makarov + + * config/frv/frv.c (frv_register_move_cost): Define explicitly + costs for subclasses of GR_REGS. + +2011-07-20 Uros Bizjak + + PR target/49780 + * config/i386/predicates.md (no_seg_addres_operand): No more special. + * config/i386/i386.c (ix86_decompose_address): Allow only subregs + of DImode hard registers in base. + (ix86_legitimate_address_p): Allow SImode and DImode base and index + registers. + +2011-07-20 Richard Guenther + + * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily. + (unify_nodes): Deal with that. + (solve_graph): Likewise. + +2011-07-20 Chung-Lin Tang + + * config/arm/arm.c (arm_canonicalize_comparison): Add case to + canonicalize left operand from ZERO_EXTEND to AND. + +2011-07-20 Anatoly Sokolov + + * target.def (class_max_nregs): New hook. + * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document. + * doc/tm.texi: Regenerate. + * targhooks.c (default_class_max_nregs): New function. + * targhooks.h (default_class_max_nregs): Declare. + * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and + x_ira_reg_class_min_nregs arrays to unsigned char. + * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target + hook instead of CLASS_MAX_NREGS macro. + * reginfo.c (restore_register_info): Ditto. + * ira-conflicts.c (process_regs_for_copy): Use + ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. + Change type rclass and aclass vars to reg_class_t. + * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs + array instead of CLASS_MAX_NREGS macro. Change type rclass var to + reg_class_t. + * reload.c (combine_reloads, find_reloads, find_reloads_address_1): + Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. + + * config/i386/i386.h (CLASS_MAX_NREGS): Remove. + * config/i386/i386.c (ix86_class_max_nregs): New function. + (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook + instead of CLASS_MAX_NREGS macro. + (TARGET_CLASS_MAX_NREGS): Define. + * config/avr/avr.h (CLASS_MAX_NREGS): Remove. + * config/avr/avr-protos.h (class_max_nregs): Remove declaration. + * config/avr/avr.c (class_max_nregs): Remove function. + * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove. + * config/spu/spu.h (CLASS_MAX_NREGS): Remove. + * config/mep/mep.h (CLASS_MAX_NREGS): Remove. + * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove. + * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove. + * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove. + * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove. + * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove. + * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove. + * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove. + * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove. + * config/score/score.h (CLASS_MAX_NREGS): Remove. + * config/vax/vax.h (CLASS_MAX_NREGS): Remove. + * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove. + * config/v850/v850.h (CLASS_MAX_NREGS): Remove. + +2011-07-19 Eric Botcazou + + * cif-code.def (OVERWRITABLE): Fix typo and move around. + (TARGET_OPTIMIZATION_MISMATCH): Delete. + (EH_PERSONALITY): Fix typo. + (NON_CALL_EXCEPTIONS): Fix message. + (OPTIMIZATION_MISMATCH): Adjust message. + * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH. + +2011-07-19 Ian Lance Taylor + + * doc/install.texi (Configuration): Document + --enable-build-poststage1-with-cxx. + +2011-07-19 Robert Millan + + * config/mips/gnu-user.h: Copy from linux.h. Update comments. + (GLIBC_DYNAMIC_LINKER): Remove. + + * config/mips/gnu-user64.h: Copy from linux64.h. Update comments. + (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) + (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) + (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove. + (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32, + GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32. + + * config/mips/linux.h: Remove everything except for ... + (GLIBC_DYNAMIC_LINKER): ... this macro. + + * config/mips/linux64.h: Remove everything except for ... + (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) + (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) + (BIONIC_DYNAMIC_LINKERN32): ... these macros. + (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64) + (GNU_USER_LINK_EMULATIONN32): New macros. + + * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*): + Use the new headers. + +2011-07-19 Richard Sandiford + + * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs. + Add offset_known_p and size_known_p fields. + (MEM_OFFSET_KNOWN_P): Update accordingly. + (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise. + * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes. + (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset) + (clear_mem_offset, set_mem_size, clear_mem_size, change_address) + (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill) + (init_emit_regs): Likewise. + +2011-07-19 Richard Sandiford + + * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document. + (MEM_OFFSET): Change from returning an rtx to returning a + HOST_WIDE_INT. + * rtl.h (MEM_OFFSET_KNOWN_P): New macro. + (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx. + * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. + (clear_mem_offset): Declare. + * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using + MEM_OFFSET_KNOWN_P to test whether the offset is known, and + MEM_OFFSET to get a HOST_WIDE_INT offset. + (nonoverlapping_memrefs_p): Likewise. Adjust calls to... + (adjust_offset_for_component_ref): Take a bool "known_p" + parameter and a HOST_WIDE_INT "offset" parameter. + * builtins.c (get_memory_rtx): As for ao_ref_from_mem. + Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather + than an rtx. Use clear_mem_offset to clear the offset. + * cfgcleanup.c (merge_memattrs): Likewise. + * dwarf2out.c (tls_mem_loc_descriptor): Likewise. + * function.c (assign_parm_find_stack_rtl): Likewise. + (assign_parm_setup_stack): Likewise. + * print-rtl.c (print_rtx): Likewise. + * reload.c (find_reloads_subreg_address): Likewise. + * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. + * var-tracking.c (INT_MEM_OFFSET): Likewise. + * emit-rtl.c (set_reg_attrs_from_value): Likewise. + (get_mem_align_offset): Likewise. + (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. + (clear_mem_offset): New function. + * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT + offset rather than an rtx. Assume both the expressio and offset + are available. + (r10k_needs_protection_p_1): Update accordingly, checking the + expression and offset availability here instead. + +2011-07-19 Richard Sandiford + + * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document. + (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT. + * rtl.h (MEM_SIZE_KNOWN_P): New macro. + (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx. + * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. + (clear_mem_size): Declare. + * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. + (clear_mem_size): New function. + * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using + MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE + to get a HOST_WIDE_INT size. Adjust calls to set_mem_size, + passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size + to clear the size. + (nonoverlapping_memrefs_p): Likewise. + * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise. + (expand_builtin_init_trampoline): Likewise. + * calls.c (compute_argument_addresses): Likewise. + * cfgcleanup.c (merge_memattrs): Likewise. + * dce.c (find_call_stack_args): Likewise. + * dse.c (record_store, scan_insn): Likewise. + * dwarf2out.c (dw_sra_loc_expr): Likewise. + * expr.c (emit_block_move_hints): Likewise. + * function.c (assign_parm_find_stack_rtl): Likewise. + * print-rtl.c (print_rtx): Likewise. + * reload.c (find_reloads_subreg_address): Likewise. + * rtlanal.c (may_trap_p_1): Likewise. + * var-tracking.c (track_expr_p): Likewise. + * varasm.c (assemble_trampoline_template): Likewise. + * config/arm/arm.c (arm_print_operand): Likewise. + * config/h8300/h8300.c (h8sx_emit_movmd): Likewise. + * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise. + (expand_setmem_via_rep_stos, expand_constant_movmem_prologue) + (expand_constant_setmem_prologue): Likewise. + * config/mips/mips.c (mips_get_unaligned_mem): Likewise. + * config/rs6000/rs6000.c (expand_block_move): Likewise. + (adjacent_mem_locations): Likewise. + * config/s390/s390.c (s390_expand_setmem): Likewise. + (s390_expand_insv): Likewise. + * config/s390/s390.md (*extzv, *extv): Likewise. + (*extendqi2_short_displ): Likewise. + * config/sh/sh.c (expand_block_move): Likewise. + * config/sh/sh.md (extv, extzv): Likewise. + +2011-07-19 Richard Sandiford + + * emit-rtl.c (mem_attrs_eq_p): New function, split out from... + (mem_attrs_htab_eq): ...here. + (find_mem_attrs): Replace with... + (set_mem_attrs): ...this function. Take a mem_attrs structure + rather than individual fields. + (set_mem_attributes_minus_bitpos, set_mem_alias_set) + (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) + (set_mem_size, change_address, adjust_address_1, offset_address) + (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): + Update accordingly. + +2011-07-19 Richard Sandiford + + * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE) + (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs. + Provide a dummy definition of MEM_ADDR_SPACE for generators. + (target_rtl): Add x_mode_mem_attrs. + (mode_mem_attrs): New macro. + (get_mem_attrs): New function. + * emit-rtl.c (get_mem_attrs): Rename to... + (find_mem_attrs): ...this. + (set_mem_attributes_minus_bitpos, set_mem_alias_set) + (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) + (set_mem_size, change_address, adjust_address_1, offset_address) + (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): + Update accordingly. + (init_emit_regs): Initialize mode_mem_attrs. + +2011-07-19 Richard Guenther + + * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove + TRUTH_*_EXPR handling. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree-ssa-pre.c (fully_constant_expression): Likewise. + * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre): + Likewise. + (is_and_or_or): Likewise. + (is_norm_cond_subset_of): Likewise. + +2011-07-19 Richard Guenther + + * tree.h (fold_build_pointer_plus_loc): New helper function. + (fold_build_pointer_plus_hwi_loc): Likewise. + (fold_build_pointer_plus): Define. + (fold_build_pointer_plus_hwi): Likewise. + * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus. + (fold_builtin_memory_op): Likewise. + (fold_builtin_stpcpy): Likewise. + (fold_builtin_memchr): Likewise. + (fold_builtin_strstr): Likewise. + (fold_builtin_strchr): Likewise. + (fold_builtin_strrchr): Likewise. + (fold_builtin_strpbrk): Likewise. + (fold_builtin_strcat): Likewise. + (expand_builtin_memory_chk): Likewise. + (fold_builtin_memory_chk): Likewise. + * c-typeck.c (build_unary_op): Likewise. + * cgraphunit.c (thunk_adjust): Likewise. + * fold-const.c (build_range_check): Likewise. + (fold_binary_loc): Likewise. + * omp-low.c (extract_omp_for_data): Likewise. + (expand_omp_for_generic): Likewise. + (expand_omp_for_static_nochunk): Likewise. + (expand_omp_for_static_chunk): Likewise. + * tree-affine.c (add_elt_to_tree): Likewise. + * tree-data-ref.c (split_constant_offset_1): Likewise. + * tree-loop-distribution.c (generate_memset_zero): Likewise. + * tree-mudflap.c (mf_xform_derefs_1): Likewise. + * tree-predcom.c (ref_at_iteration): Likewise. + * tree-ssa-address.c (tree_mem_ref_addr): Likewise. + (add_to_parts): Likewise. + (create_mem_ref): Likewise. + * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. + * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise. + (number_of_iterations_le): Likewise. + * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise. + * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. + (vect_create_addr_base_for_vector_ref): Likewise. + * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise. + (vect_create_cond_for_alias_checks): Likewise. + * tree-vrp.c (extract_range_from_assert): Likewise. + * config/alpha/alpha.c (alpha_va_start): Likewise. + (alpha_gimplify_va_arg_1): Likewise. + * config/i386/i386.c (ix86_va_start): Likewise. + (ix86_gimplify_va_arg): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/mep/mep.c (mep_expand_va_start): Likewise. + (mep_gimplify_va_arg_expr): Likewise. + * config/mips/mips.c (mips_va_start): Likewise. + (mips_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start): Likewise. + (rs6000_gimplify_va_arg): Likewise. + * config/s390/s390.c (s390_va_start): Likewise. + (s390_gimplify_va_arg): Likewise. + * config/sh/sh.c (sh_va_start): Likewise. + (sh_gimplify_va_arg_expr): Likewise. + * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. + * config/spu/spu.c (spu_va_start): Likewise. + (spu_gimplify_va_arg_expr): Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Likewise. + (xstormy16_gimplify_va_arg_expr): Likewise. + * config/xtensa/xtensa.c (xtensa_va_start): Likewise. + (xtensa_gimplify_va_arg_expr): Likewise. + +2011-07-19 Richard Guenther + + * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling. + (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST + handling. + + PR middle-end/18908 + * expr.c (expand_expr_real_2): Do not unnecessarily truncate the + result of BIT_*_EXPR to bitfield precision. + +2011-07-19 Richard Sandiford + + PR tree-optimization/49742 + * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call + as a potential write. + +2011-07-19 Richard Guenther + + * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h. + * tree-ssa-forwprop.c: Include gimple-pretty-print.h. + (forward_propagate_comparison): Simplify, remove obsolete code. + +2011-07-19 Richard Guenther + + * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as + BIT_XOR_EXPR, same as the RTL expander does. + * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL. + (verify_gimple_assign_unary): Likewise. + * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR. + * tree-ssa-forwprop.c (forward_propagate_comparison): Handle + BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR. + +2011-07-19 Jakub Jelinek + + PR tree-optimization/49768 + * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL + if offset is smaller than bitoffset, but offset+size is bigger + than bitoffset. + +2011-07-19 Ira Rosen + + PR tree-optimization/49771 + * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of + zero step, set segment length to the size of the data-ref's type. + +2011-07-18 Martin Jambor + + * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general + comments. + (ipcp_values_pool): Declare. + (ipcp_sources_pool): Likewise. + (ipcp_lattice): Changed to forward declaration. + (ipa_param_descriptor): Removed fields ipcp_lattice, types and + cannot_devirtualize. + (ipa_node_params): New fields descriptors, lattices, known_vals, + clone_for_all_contexts and node dead, removed fields params and + count_scale. + (ipa_set_param_count): Removed. + (ipa_get_param_count): Made to work with descriptors vector. + (ipa_get_param): Updated. + (ipa_param_cannot_devirtualize_p): Removed. + (ipa_param_types_vec_empty): Likewise. + (ipa_set_param_used): New function. + (ipa_get_param_used): Updated to use descriptors vector. + (ipa_func_list): Removed. + (ipa_init_func_list): Removed declaration. + (ipa_push_func_to_list_1): Likewise. + (ipa_pop_func_from_list): Likewise. + (ipa_push_func_to_list): Removed. + (ipa_lattice_from_jfunc): Remove declaration. + (ipa_get_jf_pass_through_result): Declare. + (ipa_get_jf_ancestor_result): Likewise. + (ipa_value_from_jfunc): Likewise. + (ipa_get_lattice): Update. + (ipa_lat_is_single_const): New function. + * ipa-prop.c (ipa_push_func_to_list_1): Removed. + (ipa_init_func_list): Likewise. + (ipa_pop_func_from_list): Likewise. + (ipa_get_param_decl_index): Fix coding style. + (count_formal_params): Removed. + (count_formal_params_1): Renamed to count_formal_params. + (ipa_populate_param_decls): Update to use descriptors vector. + (ipa_initialize_node_params): Likewise. + (visit_ref_for_mod_analysis): Use ipa_set_param_used. + (ipa_analyze_params_uses): Likewise. + (ipa_free_node_params_substructures): Likewise and free also lattices + and known values. + (duplicate_array): Removed. + (ipa_edge_duplication_hook): Add the new edge to the list of edge + clones. + (ipa_node_duplication_hook): Update to use new lattices. + (ipa_free_all_structures_after_ipa_cp): Free alloc pools. + (ipa_free_all_structures_after_iinln): Likewise. + (ipa_write_node_info): Update to use new lattices. + (ipa_read_node_info): Likewise. + (ipa_get_jf_pass_through_result): New function. + (ipa_get_jf_ancestor_result): Likewise. + (ipa_value_from_jfunc): Likewise. + (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc. + * ipa-cp.c: Reimplemented. + * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed. + (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter. + (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. + * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies. + * doc/invoke.texi (devirt-type-list-size): Removed description. + (ipa-cp-value-list-size): Added description. + +2011-07-18 Richard Henderson + + * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns + before calling create_basic_block. + +2011-07-18 Jakub Jelinek + + PR middle-end/49675 + * tree.c (build_common_builtin_nodes): Register + __builtin_return_address, __cyg_profile_func_enter + and __cyg_profile_func_exit. + +2011-07-18 Richard Henderson + + * bb-reorder.c (emit_barrier_after_bb): Split out of ... + (add_labels_and_missing_jumps): ... here. + (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it. + +2011-07-18 Uros Bizjak + + PR target/47744 + * config/i386/i386.c (ix86_decompose_address): Allow only subregs + of DImode hard registers in PLUS address chains. + +2011-07-18 Rainer Orth + + PR bootstrap/49769 + * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts. + (alpha*-*-freebsd*): Likewise. + (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, + i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, + i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o, + crtprec80.o, crtfastmath.o to extra_parts for all targets. + (ia64*-*-elf*): Remove extra_parts. + (sparc-*-linux*): Add crtfastmath.o to extra_parts. + (sparc64-*-linux*): Likewise. + (sparc64-*-freebsd*): Likewise. + + Revert: + * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts. + (ia64*-*-linux*): Likewise. + (mips64*-*-linux*): Likewise. + (mips*-*-linux*): Likewise. + +2011-07-18 David Edelsohn + + * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug. + +2011-07-18 Richard Guenther + + * gimplify.c (gimplify_expr): Use input_location, not saved_location + when building new trees. + +2011-07-18 Richard Guenther + + * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR + expansion result to bitfield precision if required. + +2011-07-18 Rainer Orth + + * config.gcc (i[3456x]86-*-netware*): Remove. + + * gthr-nks.h: Remove. + * configure.ac (enable_threads): Remove nks. + * configure: Regenerate. + + * config/i386/i386.c (ix86_encode_section_info): Remove netware + reference. + * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove + reference. + + * config/i386/netware-libgcc.c, + gcc/config/i386/netware-libgcc.def, + gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c, + gcc/config/i386/netware.h, gcc/config/i386/netware.opt, + gcc/config/i386/nwld.c, gcc/config/i386/nwld.h, + gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove + + * doc/extend.texi (Function Attributes, + callee_pop_aggregate_return): Remove i?86-netware reference. + * doc/install.texi (Configuration, --enable-threads): Remove nks. + +2011-07-17 John David Anglin + + PR target/49746 + Revert: + 2010-12-30 John David Anglin + + * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean + patterns. + +2011-07-17 Eric Botcazou + + PR middle-end/49732 + * tree.c (walk_tree_1) : Do not walk a pointed-to type. + +2011-07-16 Matthias Klose + + * doc/install.texi: Document --enable-static-libjava. + +2011-07-15 Richard Henderson + + * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): + Replace all three arguments by returning a VEC of edges. + (add_labels_and_missing_jumps): Accept a VEC of edges, not bare + pointers and counts. + (fix_edges_for_rarely_executed_code): Merge ... + (rest_of_handle_partition_blocks): ... into... + (partition_hot_cold_basic_blocks): ... here. Return todo items if + any work was performed. + (pass_partition_blocks): Clear todo_flags_finish. + +2011-07-15 Paolo Carlini + Jakub Jelinek + Jonathan Wakely + + PR libstdc++/49745 + * gthr-posix.h: Do not include unconditionally; use + _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS. + +2011-07-15 Jason Merrill + + PR testsuite/49741 + * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts + rather than --tool_opts. + +2011-07-15 Basile Starynkevitch + + * doc/plugins.texi (Building GCC plugins): gengtype needs its + corresponding gtype.state. + +2011-07-15 John David Anglin + + PR target/49723 + * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT. + +2011-07-15 Eric Botcazou + + PR target/48220 + * doc/md.texi (Standard Names): Document window_save. + * cfgexpand.c (expand_debug_parm_decl): New function extracted from + expand_debug_expr and expand_debug_source_expr. If the target has + a window_save instruction, adjust the ENTRY_VALUE_EXP. + (expand_debug_expr) : Call expand_debug_parm_decl if the + SSA_NAME_VAR is a parameter. + (expand_debug_source_expr) : Call expand_debug_parm_decl. + * var-tracking.c (parm_reg_t): New type and associated vector type. + (windowed_parm_regs): New variable. + (adjust_insn): If the target has a window_save instruction and this + is the instruction, make its effect on parameter registers explicit. + (next_non_note_insn_var_location): New function. + (emit_notes_in_bb): Use it instead of NEXT_INSN throughout. + (vt_add_function_parameter): If the target has a window_save insn, + adjust the incoming RTL and record that in windowed_parm_regs. + (vt_finalize): Free windowed_parm_regs. + +2011-07-15 Bernd Schmidt + + * doc/invoke.texi (C6X Options): New section. + * doc/md.texi (TI C6X family): New section. + * config.gcc: Handle tic6x, in particular tic6x-*-elf and + tic6x-*-uclinux. + * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm, + count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME): + Provide C6X definitions. + * config/c6x/c6x.md: New file. + * config/c6x/constraints.md: New file. + * config/c6x/predicates.md: New file. + * config/c6x/c6x-sched.md.in: New file. + * config/c6x/c6x-sched.md: New file. + * config/c6x/gensched.sh: New file. + * config/c6x/c6x-mult.md.in: New file. + * config/c6x/genmult.sh: New file. + * config/c6x/c6x-mult.md: New file. + * config/c6x/sync.md: New file. + * config/c6x/c6x-protos.h: New file. + * config/c6x/sfp-machine.h: New file. + * config/c6x/c6x.c: New file. + * config/c6x/c6x.h: New file. + * config/c6x/crti.s: New file. + * config/c6x/crtn.s: New file. + * config/c6x/lib1funcs.asm: New file. + * config/c6x/c6x-modes.def: New file. + * config/c6x/genopt.sh: New file. + * config/c6x/c6x.opt: New file. + * config/c6x/c6x-tables.opt: New file. + * config/c6x/c6x-opts.h: New file. + * config/c6x/c6x-isas.def: New file. + * config/c6x/elf.h: New file. + * config/c6x/elf-common.h: New file. + * config/c6x/uclinux-elf.h: New file. + * config/c6x/t-c6x: New file. + * config/c6x/t-c6x-elf: New file. + * config/c6x/t-c6x-uclinux: New file. + * config/c6x/t-c6x-softfp: New file. + * config/c6x/gtd.c: New file. + * config/c6x/gtf.c: New file. + * config/c6x/ltd.c: New file. + * config/c6x/ltf.c: New file. + * config/c6x/ged.c: New file. + * config/c6x/gef.c: New file. + * config/c6x/led.c: New file. + * config/c6x/lef.c: New file. + * config/c6x/eqd.c: New file. + * config/c6x/eqf.c: New file. + * config/c6x/libgcc-c6xeabi.ver: New file. + + Revert + 2003-07-10 Eric Botcazou + PR rtl-optimization/11320 + * sched-int.h (struct deps) [reg_conditional_sets]: New field. + (struct sched_info) [compute_jump_reg_dependencies]: New prototype. + * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to + current_sched_info->compute_jump_reg_dependencies. Record which + registers are used and which registers are set by the jump. + Clear deps->reg_conditional_sets after a barrier. + Set deps->reg_conditional_sets if the insn is a COND_EXEC. + Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. + (init_deps): Initialize reg_conditional_sets. + (free_deps): Clear reg_conditional_sets. + * sched-ebb.c (compute_jump_reg_dependencies): New prototype. + Mark registers live on entry of the fallthrough block and conditionally + set as set by the jump. Mark registers live on entry of non-fallthrough + blocks as used by the jump. + * sched-rgn.c (compute_jump_reg_dependencies): New prototype. + Mark new parameters as unused. + +2011-07-14 Andrew Pinski + + PR tree-opt/49309 + * tree-mudflap.c (mf_xform_derefs_1 ): + Use fold_build2_loc instead of build2. + Use the correct type for the new tree. + +2011-07-14 Bernd Schmidt + + PR rtl-optimization/11320 + * config/ia64/ia64.md (load_symptr_low): Show a MEM. + * config/ia64/ia64.c (ia64_expand_load_address): Generate it. + +2011-07-14 Georg-Johann Lay + + PR target/49487 + * config/avr/avr.md (rotl3): Generate SCRATCH instead + of REG. + (*rotw): Use const_int_operand for operand2. + Use match_scatch for operand3. + (*rotb): Ditto + * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH. + +2011-07-14 Richard Guenther + + PR tree-optimization/49651 + * tree-ssa-structalias.c (get_constraint_for_1): Properly + handle dereferences with subvariables. + +2011-07-14 Richard Guenther + + * gimple-fold.c (fold_gimple_assign): Remove operand swapping. + (fold_stmt_1): Do it here directly on gimple and as a first thing. + +2011-07-14 Richard Guenther + + * fold-const.c (fold_binary_loc): Convert the !bool_var result, + not bool_var when folding bool_var != 1 or bool_var == 0. + +2011-07-14 Bernd Schmidt + + * haifa-sched.c (schedule_insns): Remove outdated comment. + (schedule_block): When computing a known value for TODO_SPEC, + just set it rather than using logical operations. + (try_ready): Likewise. Use a local variable rather than a + pointer to TODO_SPEC. Reorder an if statement to move the + easy case to the then block. + * sched-deps.c (dep_spec_p): New static function. + (update_dep): Use it to decide whether to call + change_spec_dep_to_hard. + (get_back_and_forw_lists): Use it. + (sd_resolve_dep): Likewise. + (init_dep): If !USE_DEPS_LIST, use zero to initialize status. + (haifa_note_mem_dep): Likewise. + (check_dep): Likewise. + (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION. + (sched_free_deps): Free in two passes. + +2011-07-14 Richard Sandiford + + PR middle-end/49736 + * expr.c (all_zeros_p): Undo bogus part of last change. + +2011-07-14 Matthias Klose + + * doc/extend.texi (optimize attribute): Fix typo. + +2011-07-14 Richard Guenther + + * gimplify.c (gimplify_expr): Only do required conversions. + +2011-07-14 Georg-Johann Lay + + PR target/43746 + * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove, + i.e. use default_elf_select_section. + (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove. + (READONLY_DATA_SECTION_ASM_OP): Remove. + (TARGET_ASM_NAMED_SECTION): Move from here... + * config/avr/avr.c: ...to here. + (avr_asm_init_sections): Set unnamed callback of readonly_data_section. + (avr_asm_named_section): Make static. + +2011-07-13 Rainer Orth + + PR bootstrap/49739 + * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o + and crtfastmath.o for Linux/x86. + +2011-07-14 Bernd Schmidt + + * haifa-sched.c: Include "hashtab.h" + (sched_no_dce): New global variable. + (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN, + SHADOW_P): New macros. + (last_clock_var, cycle_issued_insns): Move declarations. + (must_backtrack): New static variable. + (struct delay_pair): New structure. + (delay_htab, delay_htab_i2): New static variables. + (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq, + record_delay_slot_pair, pair_delay, add_delay_dependencies): New + functions. + (dep_cost_1): If delay pairs exist, try to look up the insns and + use the correct pair delay if we find them. + (rank-for_schedule): Tweak priority for insns that must be scheduled + soon to avoid backtracking. + (queue_insn): Detect conditions which force backtracking. + (ready_add): Likewise. + (struct sched_block_state): Add member shadows_only_p. + (struct haifa_save_data): New structure. + (backtrack_queue): New static variable. + (mark_backtrack_feeds, copy_insn_list, save_backtrack_point, + unschedule_insns_until, restore_last_backtrack_point, + free_topmost_backtrack_point, free_backtrack_queue, + estimate_insn_tick, estimate_shadow_tick): New functions. + (prune_ready_list): New arg shadows_only_p. All callers changed. + If true, remove everything that isn't SHADOW_P. Look up delay + pairs and estimate ticks to avoid scheduling the first insn too early. + (verify_shadows): New function. + (schedule_block): Add machinery to enable backtracking. + (sched_init): Take sched_no_dce into account when setting + DF_LR_RUN_DCE. + (free_delay_pairs): New function. + (init_h_i_d): Initialize INSN_EXACT_TICK. + * Makefile.in (haifa-sched.o): Add $(HASHTAB_H). + * sched-deps.c (sd_unresolve_dep): New function. + * sched-int. (struct haifa_sched_info): New fields save_state + and restore_state. + (struct _haifa_insn_data): New fields exact_tick, tick_estimate, + feeds_backtrack_insn and shadow_p. + (DO_BACKTRACKING): New value in enum SCHED_FLAGS. + (sched_no_dce): Declare variable. + (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies, + sd_unresolve_dep): Declare functions. + * modulo-sched.c (sms_sched_info): Clear the two new fields. + * sched-rgn.c (rgn_const_sched_info): Likewise. + * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. + * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions. + (ebb_sched_info): Add them for the two new fields. + (add_deps_for_risky_insns): Call add_delay_dependencies. + +2011-07-13 Michael Meissner + + * config/rs6000/rs6000.opt (-mpointers-to-nested-functions): + Rename -mr11. + * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto. + (rs6000_call_indirect_aix): Ditto. + * config/rs6000/rs6000.md (call_indirect_aix): Ditto. + (call_indirect_aix_internal): Ditto. + (call_indirect_aix_nor11): Ditto. + (call_indirect_aix_internal2): Ditto. + (call_value_indirect_aix): Ditto. + (call_value_indirect_aix_internal): Ditto. + (call_value_indirect_aix_nor11): Ditto. + (call_value_indirect_aix_internal2): Ditto. + * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto. + +2011-07-13 Jason Merrill + + * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts. + +2011-07-13 Ulrich Weigand + + * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2. + * config/spu/spu.md ("clrsb2"): New expander. + +2011-07-13 Thomas Schwinge + + * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo. + * configure: Regenerate. + +2011-07-13 Ulrich Weigand + + * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define. + (asm_file_start): Remove. + (spu_machine_dependent_reorg): Call compute_bb_for_insn and + free_bb_for_insn around code that modifies insns before + restarting df analysis. + +2011-07-13 Rainer Orth + + PR target/49541 + * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ... + (LINK_SPEC): ... here. + +2011-07-13 Bernd Schmidt + + * haifa-sched.c (struct sched_block_state): New. + (schedule_block): Move some local variables into such a structure. + +2011-07-13 Rainer Orth + + * config/i386/crtprec.c: Move to ../libgcc/config/i386. + * config/i386/t-crtpc: Remove. + * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. + * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from + tmake_file. + (x86_64-*-darwin*): Likewise. + (i[34567]86-*-linux*): Likewise. + (x86_64-*-linux*): Likewise. + + * config/i386/sol2.h (ENDFILE_SPEC): Redefine. + Handle -mpc32, -mpc64, -mpc80. + +2011-07-13 Rainer Orth + + * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha. + * config/alpha/t-crtfm: Remove. + * config/i386/crtfastmath.c: Move to ../libgcc/config/i386. + * config/i386/t-crtfm: Remove. + * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64. + * config/mips/crtfastmath.c: Move to ../libgcc/config/mips. + * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc. + * config/sparc/t-crtfm: Remove. + + * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file. + (alpha*-*-freebsd*): Likewise. + (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file. + (x86_64-*-darwin*): Likewise. + (i[34567]86-*-linux*): Likewise. + (x86_64-*-linux*): Likewise. + (x86_64-*-mingw*): Likewise. + (ia64*-*-elf*): Remove crtfastmath.o from extra_parts. + (ia64*-*-freebsd*): Likewise. + (ia64*-*-linux*): Likewise. + (mips64*-*-linux*): Likewise. + (mips*-*-linux*): Likewise. + (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file. + (sparc64-*-linux*): Likewise. + (sparc64-*-freebsd*): Likewise. + +2011-07-13 Rainer Orth + + * config/darwin-crt2.c: Move to ../libgcc/config/rs6000. + * config/darwin-crt3.c: Move to ../libgcc/config. + * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. + ($(T)crt3$(objext)): Remove. + * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove. + ($(T)crt2$(objext)): Remove. + * config.gcc (powerpc-*-darwin*): Remove extra_parts. + (powerpc64-*-darwin*): Likewise. + +2011-07-13 H.J. Lu + + * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode. + + * config/i386/i386.md (*addsi_1_zext): Renamed to ... + (addsi_1_zext): This. + +2011-07-13 Bernd Schmidt + + * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook. + * doc/tm.texi: Regenerate. + * target.def (mergeable_rodata_prefix): New defhookpod. + * varasm.c (mergeable_string_section, mergeable_constant_section): + Use it. Allocate name with alloca. + +2011-07-13 H.J. Lu + + * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma. + +2011-07-13 Richard Sandiford + + * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten + overlap check. + +2011-07-13 Richard Sandiford + + * tree.h (categorize_ctor_elements): Remove comment. Fix long line. + (count_type_elements): Delete. + (complete_ctor_at_level_p): Declare. + * expr.c (flexible_array_member_p): New function, split out from... + (count_type_elements): ...here. Make static. Replace allow_flexarr + parameter with for_ctor_p. When for_ctor_p is true, return the + number of elements that should appear in the top-level constructor, + otherwise return an estimate of the number of scalars. + (categorize_ctor_elements): Replace p_must_clear with p_complete. + (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p. + (complete_ctor_at_level_p): New function, borrowing union logic + from old categorize_ctor_elements_1. + (mostly_zeros_p): Return true if the constructor is not complete. + (all_zeros_p): Update call to categorize_ctor_elements. + * gimplify.c (gimplify_init_constructor): Update call to + categorize_ctor_elements. Don't call count_type_elements. + Unconditionally prevent clearing for variable-sized types, + otherwise rely on categorize_ctor_elements to detect + incomplete initializers. + +2011-07-13 Richard Guenther + + * tree-vrp.c (simplify_conversion_using_ranges): Make sure + the final type is integral. + +2011-07-13 Bernd Schmidt + + * sched-int.h (struct _dep): Add member cost. + (DEP_COST, UNKNOWN_DEP_COST): New macros. + * sched-deps.c (init_dep_1): Initialize DEP_COST. + * haifa-sched.c (dep_cost_1): Use and set DEP_COST. + (sched_change_pattern): Reset it for dependent insns. + +2011-07-13 Rainer Orth + + * Makefile.in (CRT0STUFF_T_CFLAGS): Remove. + ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove. + * config/i386/netware-crt0.c: Move to ../libgcc/config/i386. + * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove. + (CRT0_S, MCRT0_S): Remove. + ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def): + Remove. + (s-crt0): Remove. + * config.gcc (i[3456x]86-*-netware*): Remove extra_parts. + +2011-07-12 Eric Botcazou + + * cse.c (insert_with_costs): Put semi-colon after empty loop body + on the next line. + * emit-rtl.c (push_to_sequence): Likewise. + * haifa-sched.c (max_issue): Likewise. + * matrix-reorg.c (add_allocation_site): Likewise. + * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. + * reload.c (alternative_allows_const_pool_ref): Likewise. + * sched-rgn.c (rgn_add_block): Likewise. + (rgn_fix_recovery_cfg): Likewise. + * tree.c (attribute_list_contained): Likewise. + +2011-07-12 Uros Bizjak + + * config/i386/i386.c: Tidy processor feature bitmasks. + (m_P4_NOCONA): New. + +2011-07-12 Andrew Pinski + + PR rtl-opt/49474 + * cprop.c (find_implicit_sets): Correct the condition. + +2011-07-12 Richard Henderson + + PR target/49713 + * dwarf2out.h (dwarf_frame_regnum): Remove. + * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno + earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number. + * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New. + (execute_dwarf2_frame): Initialize them. + (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace + users of the macros with the variables. + (expand_builtin_dwarf_sp_column): Revert last change. + (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the + result of DWARF_FRAME_REGNUM into a local variable. + +2011-07-12 Richard Henderson + + PR target/49714 + * config/i386/i386.c (x86_output_mi_thunk): Use + machopic_indirect_call_target instead of machopic_indirection_name + directly. + +2011-07-12 Laurent GUERBY + Eric Botcazou + + * prefix.h: Wrap up in extern "C" block. + +2011-07-12 Harsha Jagasia + + AMD bdver2 Enablement + * config.gcc (i[34567]86-*-linux* | ...): Add bdver2. + (case ${target}): Add bdver2. + * config/i386/driver-i386.c (host_detect_local_cpu): Let + -march=native recognize bdver2 processors. + * config/i386/i386-c.c (ix86_target_macros_internal): Add + bdver2 def_and_undef + * config/i386/i386.c (struct processor_costs bdver2_cost): New + bdver2 cost table. + (m_BDVER2): New definition. + (m_AMD_MULTIPLE): Includes m_BDVER2. + (initial_ix86_tune_features): Add bdver2 tuning. + (processor_target_table): Add bdver2 entry. + (static const char *const cpu_names): Add bdver2 entry. + (ix86_option_override_internal): Add bdver2 instruction sets. + (ix86_issue_rate): Add bdver2. + (ix86_adjust_cost): Add bdver2. + (has_dispatch): Add bdver2. + * config/i386/i386.h (TARGET_BDVER2): New definition. + (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2. + (enum processor_type): Add PROCESSOR_BDVER2. + * config/i386/i386.md (define_attr "cpu"): Add bdver2. + * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to + description. + +2011-07-12 Richard Henderson + + PR target/49714 + * config/i386/i386.c (x86_output_mi_thunk): Fix mode for + destination address in memory on some paths. + +2011-07-12 Bernd Schmidt + + * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention + TARGET_FUNCTION_ARG_ROUND_BOUNDARY. + (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook. + * function.c (locate_and_pad_parm): Take it into account. + * target.def (function_arg_round_boundary): New hook. + * targhooks.c (default_function_arg_round_boundary): New function. + * targhooks.h (default_function_arg_round_boundary): Declare. + * doc/tm.texi: Regenerate. + +2011-07-12 Richard Guenther + + * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics. + Do not perform no-op changes. + +2011-07-12 Richard Sandiford + + * config/arm/predicates.md (neon_struct_operand): Make a normal + predicate. + (neon_struct_or_register_operand): New predicate. + * config/arm/neon.md (movmisalign): Replace predicates + with neon_struct_or_register_operand. + (*movmisalign_neon_store, *movmisalign_neon_load): Use + neon_struct_operand instead of memory_operand. + +2011-07-12 Martin Jambor + + * cgraph.h (cgraph_get_node_or_alias): Removed declaration. + * cgraph.c (cgraph_get_node_or_alias): Removed. + (change_decl_assembler_name): Changed all calls to + cgraph_get_node_or_alias to a call to cgraph_get_node. + (cgraph_make_decl_local): Likewise. + * lto-symtab.c (lto_symtab_resolve_symbols): Likewise. + * varasm.c (default_binds_local_p_1): Likewise. + (decl_binds_to_current_def_p): Likewise. + +2011-07-12 Jakub Jelinek + + PR tree-optimization/49712 + * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF. + +2011-07-11 Bernd Schmidt + + * genautomata.c (add_arc): Return void. All callers changed. + (make_automaton): Remove dead code. + +2011-07-11 Richard Henderson + + * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New. + (DW_FRAME_POINTER_REGNUM): New. + (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum. + (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here. + (dwf_regno): New. + (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa, + dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register, + dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr): + Use it. + * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum. + * dwarf2out.h (dwarf_frame_regnum): New. + (struct cfa_loc): Document the domain of the reg member. + +2011-07-11 Uros Bizjak + + * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr. + Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE. + +2011-07-11 Jakub Jelinek + + PR debug/49676 + * dwarf2out.c (int_shift_loc_descriptor): New function. + (int_loc_descriptor): If shorter, emit i as + (i >> shift), shift, DW_OP_shl for suitable shift value. + Similarly, try to optimize large negative values using + DW_OP_neg of a positive value if shorter. + (size_of_int_shift_loc_descriptor): New function. + (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor + changes. + (mem_loc_descriptor) : Emit zero-extended constants + that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor + + DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former + is shorter. + (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large + addend as added DW_OP_plus if it is shorter. + +2011-07-11 Rainer Orth + + * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define. + (DTORS_SECTION_ASM_OP): Define. + +2011-07-11 Rainer Orth + + * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc. + * config/t-dfprules: Move to ../libgcc/config. + * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, + i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, + i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file. + (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): + Likewise. + (i[34567]86-*-cygwin*): Likewise. + (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. + (powerpc-*-linux*, powerpc64-*-linux*): Likewise. + * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove. + (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS, + D64PBIT_FUNCS, D128PBIT_FUNCS. + +2011-07-11 Richard Guenther + + * tree-vrp.c (simplify_conversion_using_ranges): Manually + translate the source value-range through the conversion chain. + +2011-07-11 Richard Sandiford + + * expr.c (expand_expr_real_1): Use expand_insn for movmisalign. + +2011-07-11 Arthur Loiret + + * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build + a bi-arch compiler defaulting to 31-bit. In this case: + (tmake_file): Add s390/t-linux64. + * doc/install.texi: Add s390-linux to the list of targets supporting + --enable-targets=all. + +2011-07-11 Arthur Loiret + Matthias Klose + + * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build + a tri-arch compiler defaulting to 32-bit (ABI o32). In this case: + (tm_file): Add mips/linux64.h. + (tmake_file): Add mips/t-linux64. + (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. + * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT + instead of hardcoded mabi=n32. + * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if + tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc + convention. + +2011-07-11 Andreas Krebbel + + * passes.c (init_optimization_passes): Add invariant motion pass + after induction variable optimization. + +2011-07-11 Georg-Johann Lay + + PR target/39633 + * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only + offsets 1..5 set cc0 in a usable way. + +2011-07-11 Romain Geissler + + * tree.h (call_expr_arg): Remove. + (call_expr_argp): Likewise. + +2011-07-11 Eric Botcazou + + * config/sparc/sparc.md (save_register_window_1): Rename to... + (window_save): ...this. + * config/sparc/sparc.c (emit_save_register_window): Rename to... + (emit_window_save): ...this. + (sparc_expand_prologue): Adjust to above renaming. + +2011-07-10 H.J. Lu + + * config/i386/i386.c (ix86_trampoline_init): Use movl instead + of movabs for x32. + +2011-07-10 Richard Henderson + + * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and + run final, instead of emitting text directly. + +2011-07-10 H.J. Lu + + * config/i386/i386.c (ix86_option_override_internal): Turn on + OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and + small PIC models for TARGET_X32. + +2011-07-10 Hans-Peter Nilsson + + PR target/49684 + * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include + $(LIBGCC2_CFLAGS). + + PR bootstrap/49680 + * config/cris/cris.c (cris_asm_output_case_end): Robustify against + stray notes and debug insns by using prev_nonnote_nondebug_insn + instead of PREV_INSN. + +2011-07-09 Richard Henderson + + * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE, + DWARF_TYPE_SIGNATURE_SIZE): Move from ... + * dwarf2out.c: ... here. + (output_all_cfis): Remove. + (dwarf2out_switch_text_section): Use output_cfis directly. + (size_of_locs): Export. + (output_loc_sequence, output_loc_sequence_raw): Export. + (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi, + output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc, + output_cfa_loc_raw): Move to ... + * dwarfcfi.c: ... here. + * dwarf2out.h: Update decls. + +2011-07-09 Richard Henderson + + * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN, + DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ... + * dwarf2cfi.c: ... here. + (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove. + (DWARF_ROUND, DWARF_CIE_ID): Remove. + * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove. + (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove. + (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove. + +2011-07-09 Richard Henderson + + * dwarf2cfi.c (cie_return_save): New. + (queue_reg_save): Use compare_reg_or_pc. + (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column. + (dwarf2out_frame_debug_expr): Likewise. + (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too. + (initial_return_save): Likewise. + (execute_dwarf2_frame): Save and restore initial return save from + the cie to the fde. + * config/mips/mips.c (mips_frame_set): Remove special case for + DWARF_FRAME_RETURN_COLUMN. + +2011-07-09 Richard Henderson + + * dwarf2cfi.c (lookup_cfa): Remove. + (execute_dwarf2_frame): Assert queues are empty on entry. + Setup initial cfa directly, not via lookup_cfa. + Don't clear args_size state here. + +2011-07-09 Richard Henderson + + * dwarf2cfi.c (add_cfi_vec): New. + (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec. + (def_cfa_1, reg_save): Remove for_cie argument. Update all callers. + (execute_dwarf2_frame): Set add_cfi_vec. + +2011-07-09 Richard Henderson + + * defaults.h (ASM_COMMENT_START): Move here... + * dwarf2asm.c: ... from here. + * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates. + * toplev.c: Remove ifndef tests of ASM_COMMENT_START. + * varasm.c: Likewise. + +2011-07-09 Richard Henderson + + PR debug/49686 + * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here... + (create_cfi_notes): ... do it here instead. + +2011-07-09 Jakub Jelinek + + PR debug/49676 + * dwarf2out.c (size_of_int_loc_descriptor): New function. + (address_of_int_loc_descriptor): Use it. + (scompare_loc_descriptor): Optimize EQ/NE comparison with constant. + +2011-07-09 Richard Henderson + + * config/pdp11/pdp11.md (define_c_enum "unspecv"): New. + (prologue, epilogue): New. + (return, *rts): New. + (blockage, setd, seti): New. + * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove. + (TARGET_ASM_FUNCTION_EPILOGUE): Remove. + (pdp11_saved_regno): New. + (pdp11_expand_prologue): Rename from pdp11_output_function_prologue; + generate rtl instead of text. + (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue. + (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno. + * config/pdp11/pdp11-protos.h: Update. + +2011-07-09 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't + try to insert an rtl prologue here. + (rs6000_output_function_epilogue): Similarly. + * config/rs6000/rs6000.md (prologue): Emit a barrier to + satisfy !TARGET_SCHED_PROLOG. + (epilogue, sibcall_epilogue): Likewise. + +2011-07-09 Eric Botcazou + + * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around. + (FP_REG_P): Delete. + (IN_OR_GLOBAL_P): Likewise. + +2011-07-08 Jason Merrill + + PR c++/45437 + * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in + compound assignment. + + * cgraph.c (cgraph_add_to_same_comdat_group): New. + * cgraph.h: Declare it. + * ipa.c (function_and_variable_visibility): Make sure thunks + have the right visibility. + +2011-07-08 Richard Henderson + + PR bootstrap/49680 + * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after + any tablejump vector. + + PR bootstrap/49680 + * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the + end of the prologue. + +2011-07-08 Jakub Jelinek + + PR target/49621 + * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use + CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE. + * config/rs6000/vector.md (vector_select_, + vector_select__uns): Change second operand of NE to + CONST0_RTX (mode) instead of const0_rtx. + * config/rs6000/altivec.md (*altivec_vsel, + *altivec_vsel_uns): Expect second operand of NE to be + zero_constant of the corresponding vector mode. + * config/rs6000/vsx.md (*vsx_xxsel, *vsx_xxsel_uns): + Likewise. + +2011-07-08 Sebastian Pop + + * graphite-dependences.c (build_alias_set_powerset): Remove + continue from loop, add one more assert. + +2011-07-08 Georg-Johann Lay + + PR target/46779 + * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite. + In particular, allow 8-bit values in r28 and r29. + (avr_hard_regno_scratch_ok): Disallow any register that might be + part of the frame pointer. + (avr_hard_regno_rename_ok): Same. + (avr_legitimate_address_p): Don't allow SUBREGs. + +2011-07-08 Julian Brown + + * config/arm/neon.md (vec_shr_, vec_shl_): Disable in + big-endian mode. + (reduc_splus_, reduc_uplus_, reduc_smin_) + (reduc_smax_, reduc_umin_, reduc_umax_) + (neon_vec_unpack_lo_, neon_vec_unpack_hi_) + (vec_unpack_hi_, vec_unpack_lo_) + (neon_vec_mult_lo_, vec_widen_mult_lo_) + (neon_vec_mult_hi_, vec_widen_mult_hi_) + (vec_pack_trunc_, neon_vec_pack_trunc_): Disable for Q + registers in big-endian mode. + +2011-07-08 Bernd Schmidt + + * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined + in terms of another. + (write_attr_value): Write a cast if necessary. + + * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default. + * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN. + (REG_WORDS_BIG_ENDIAN): Document. + * doc/tm.texi: Regenerate. + * reload.c (operands_match_p): Take it into account. + (reload_adjust_reg_for_mode): Likewise. + * rtlanal.c (subreg_get_info): Likewise. + +2011-07-08 Richard Guenther + + * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index + folding. + +2011-07-08 Kai Tietz + + * fold-const.c (fold_truth_andor): Factored out truth_andor + label from fold_binary as function. + (fold_binary_loc): Replace truth_andor lable + by function fold_truth_andor. + +2011-07-08 Kirill Yukhin + + PR middle-end/49519 + * calls.c (mem_overlaps_already_clobbered_arg_p): Additional + check if address is stored in register. If so - give up. + (check_sibcall_argument_overlap_1): Do not perform check of + overlapping when it is call to address. + +2011-07-08 Georg-Johann Lay + + * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead + of magic '31'. + +2011-07-08 Bernd Schmidt + + * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of + GET_MODE_BITSIZE where appropriate. + (widen_leading, expand_parity, expand_ctz, expand_ffs, + expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump, + expand_float, expand_fix): Likewise. + * expr.c (convert_move, convert_modes, expand_expr_real_2, + expand_expr_real_1, reduce_to_bit_field_precision): Likewise. + * stor-layout.c (get_mode_bounds): Likewise. + * cfgexpand.c (convert_debug_memory_address, expand_debug_expr): + Likewise. + * convert.c (convert_to_integer): Likewise. + * expmed.c (expand_shift_1): Likewise. + + * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against + a bitsize. + + * optabs.c (expand_binop): Tighten conditions for doubleword + expansions. + (widen_bswap): Assert that mode bitsize and precision are the same. + * stor-layout.c (get_best_mode): Skip modes that have lower + precision than bitsize. + * recog.c (simplify_while_replacing): Assert that bitsize and + precision are the same. + +2011-07-08 Rainer Orth + + * Makefile.in (LIBGCOV): Remove. + (libgcc.mvars): Remove LIBGCOV. + * libgov.c: Move to ../libgcc. + +2011-07-08 Rainer Orth + + * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc. + +2011-07-08 Martin Jambor + + * tree-sra.c (analyze_all_variable_accesses): Dump that a struture + is too big for total scalarization. + +2011-07-07 Richard Henderson + + * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef. + (DBX_DEBUGGING_INFO): Undef. + +2011-07-07 Richard Henderson + + * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter. + Handle some opcodes specially for debugging. + * print-rtl.c: Include dwarf2out.h + (print_rtx): Handle NOTE_INSN_CFI. + * Makefile.in (print-rtl.o): Update. + +2011-07-07 Richard Henderson + + * tree-pass.h (pass_dwarf2_frame): Declare. + * passes.c (init_optimization_passes): Add it. + * dwarf2cfi.c (dwarf2out_frame_debug): Make static. + (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue; + make static, do not call add_cfis_to_fde. + (dwarf2out_frame_debug_init, dwarf2cfi_function_init, + dwarf2out_frame_init): Merge into... + (execute_dwarf2_frame): ... here. New function. + (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change + saved_do_cfi_asm to a tri-state variable. + (gate_dwarf2_frame, pass_dwarf2_frame): New. + * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde + if it has yet to be done. Don't call dwarf2cfi_function_init. + * dwarf2out.h, debug.h: Update decls. + * final.c (final_start_function): Don't call + dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue. + * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init. + * toplev.c (lang_dependent_init): Likewise. + +2011-07-07 Richard Henderson + + * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use, + FDE_TABLE_INCREMENT): Replace with... + (fde_vec): ... this, a new vector. + (current_fde): Remove. Replace all users with cfun->fde. + (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec. + (size_of_aranges, dwarf2out_finish): Likewise. + (dwarf2out_alloc_current_fde): Break out from ... + (dwarf2out_begin_prologue): ... here. + (dwarf2out_frame_init): Remove. + * dwarf2cfi.c: Update all users of current_fde. + (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init. + * dwarf2out.h: Update decls. + (dw_fde_node): Add fde_index member. + * function.h (struct function): Add fde member. + +2011-07-07 Bernd Schmidt + Richard Henderson + + * dwarf2cfi.c (add_cfi): Remove. + (dwarf2out_cfi_label): Remove force argument. Only generate the + label name. + (add_fde_cfi): Simplify the different code paths. + (add_cie_cfi): New. + (old_cfa, old_cfa_remember): New. + (def_cfa_1, reg_save): Remove label, add for_cie parameter. + (last_reg_save_label): Remove. + (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save, + dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, + dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, + dwarf2out_frame_debug_cfa_expression, + dwarf2out_frame_debug_cfa_restore, + dwarf2out_frame_debug_cfa_window_save, + dwarf2out_frame_debug_expr): Remove label parameter. + (cfi_label_required_p, add_cfis_to_fde): New. + (dwarf2out_frame_debug_after_prologue): New. + (dwarf2cfi_frame_init): Initialize old_cfa. + (dwarf2out_frame_debug_restore_state): Likewise. + * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm. + (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here. + * final.c (final_start_function): Call + dwarf2out_frame_debug_after_prologue. + +2011-07-07 Bernd Schmidt + Richard Henderson + + * dwarf2cfi.c (cfi_insn): New. + (dwarf2out_cfi_label): Don't emit cfi label here. + (add_fde_cfi): Create a NOTE_INSN_CFI. + (dwarf2out_frame_debug): Setup cfi_insn. + (dwarf2out_frame_debug_init): Loop over insns creating CFI notes. + (dwarf2out_cfi_begin_epilogue): Make static. + (dwarf2out_frame_debug_restore_state): Make static. + * dwarf2out.c (output_cfi_directive): Make static. + (dwarf2out_emit_cfi): New. + * dwarf2out.h: Update. + * final.c (final): Remove CFI notes. + (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue, + dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug. + Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL. + * insn-notes.def (NOTE_INSN_CFI): New. + (NOTE_INSN_CFI_LABEL): New. + * rtl.h (union rtunion_def): Add rt_cfi member. + (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New. + +2011-07-07 Richard Henderson + + * dwarf2cfi.c: New file. + * Makefile.in (OBJS): Add it. + (GTFILES): Add dwarf2cfi.c and dwarf2out.h. + * gengtype.c (open_base_files): Include dwarf2out.h. + * coretypes.h (enum var_init_status): Move from ... + * rtl.h: ... here. + * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame, + dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num, + expand_builtin_dwarf_sp_column, init_return_column_size, + expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi, + dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi, + lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size, + old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save, + stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1, + compute_barrier_args_size, dwarf2out_args_size, + dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust, + queued_reg_saves, reg_saved_in_data, regs_saved_in_regs, + compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label, + queue_reg_save, dwarf2out_flush_queued_reg_saves, + clobbers_queued_reg_save, reg_saved_in, cfa_temp, + dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, + dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, + dwarf2out_frame_debug_cfa_expression, + dwarf2out_frame_debug_cfa_restore, + dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr, + dwarf2out_frame_debug, dwarf2out_frame_debug_init, + dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, + get_cfa_from_loc_descr): Move to dwarf2cfi.c. + (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type, + dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node, + dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref, + dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node, + dw_loc_descr_node): Move to dwarf2out.h. + (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode, + mem_loc_descriptor): Export. + (build_cfa_aligned_loc): Export. Take CFA as a parameter. + (dwarf2out_frame_init): Extract CIE generation code to + dwarf2cfi_frame_init. + +2011-07-07 Eric Botcazou + + PR target/49660 + * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add + MASK_V8PLUS, remove commented out flag and reorder. + +2011-07-07 Jakub Jelinek + + PR c/49644 + * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with + one non-complex and one complex argument, call c_save_expr on both + operands. + +2011-07-07 Martin Jambor + + PR middle-end/49495 + * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function. + (verify_cgraph_node): Some functinality moved to + verify_edge_corresponds_to_fndecl, call it. + +2011-07-07 Joseph Myers + + * config.gcc (*local*): Remove. + * doc/install-old.texi: Don't mention local configurations. + +2011-07-07 Jakub Jelinek + + PR debug/49522 + * df-problems.c (dead_debug_reset): Remove dead_debug_uses + referencing debug insns that have been reset. + (dead_debug_insert_before): Don't assert reg is non-NULL, + instead return immediately if it is NULL. + +2011-07-07 Joseph Myers + + * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove. + +2011-07-07 Bernd Schmidt + + * hw-doloop.c: New file. + * hw-doloop.h: New file. + * Makefile.in (OBJS): Add hw-doloop.o. + (hw-doloop.o): New rule. + ($(obj_out_file)): Add hw-doloop.h dependency. + * config/bfin/bfin.c: Include "hw-doloop.h". + (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove. + (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove. + (hwloop_optimize): Renamed from bfin_optimize_loop. Argument + type changed to hwloop_info. Return bool, true if the loop was + successfully optimized. Remove code that was moved to + hw-doloop.c, and adjust other parts. + (hwloop_fail): New static function, containing parts that used + to be in bfin_optimize_loop. + (bfin_discover_loop, bfin_discover_loops, free_loops, + bfin_reorder_loops): Remove. + (hwloop_pattern_reg): New static function. + (bfin_doloop_hooks): New variable. + (bfin_reorg_loops): Remove most code, call reorg_loops. + * config/bfin/bfin.md (doloop_end splitter): Also enable if + loop counter is a memory_operand. + +2011-07-07 H.J. Lu + + * config.gcc: Support --with-multilib-list for x86 Linux targets. + + * configure.ac: Mention x86-64 for --with-multilib-list. + * configure: Regenerated. + + * config/i386/gnu-user64.h (SPEC_64): Support x32. + (SPEC_32): Likewise. + (ASM_SPEC): Likewise. + (LINK_SPEC): Likewise. + (TARGET_THREAD_SSP_OFFSET): Likewise. + (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise. + (SPEC_X32): New. + + * config/i386/i386.h (TARGET_X32): New. + (TARGET_LP64): New. + (LONG_TYPE_SIZE): Likewise. + (POINTER_SIZE): Likewise. + (POINTERS_EXTEND_UNSIGNED): Likewise. + (OPT_ARCH64): Support x32. + (OPT_ARCH32): Likewise. + + * config/i386/i386.opt (mx32): New. + + * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New. + (GLIBC_DYNAMIC_LINKERX32): Likewise. + * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise. + (GLIBC_DYNAMIC_LINKERX32): Likewise. + + * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New. + (BIONIC_DYNAMIC_LINKERX32): Likewise. + (GNU_USER_DYNAMIC_LINKERX32): Likewise. + + * config/i386/t-linux64: Support TM_MULTILIB_CONFIG. + + * doc/install.texi: Document --with-multilib-list for Linux/x86-64. + + * doc/invoke.texi: Document -mx32. + +2011-07-07 Richard Sandiford + + * doc/invoke.texi (mwords-little-endian): Deprecate. + * config/arm/arm.opt (mwords-little-endian): Likewise. + * config/arm/arm.c (arm_option_override): Warn about the deprecation + of -mwords-little-endian. + +2011-07-07 Richard Sandiford + + * reload1.c (choose_reload_regs): Use mode sizes to check whether + an old reload register completely defines the required value. + +2011-07-07 Richard Guenther + + * fold-const.c (fold_unary_loc): Do not strip sign-changes + for NEGATE_EXPR. + +2011-07-07 Richard Guenther + + * tree-vrp.c (simplify_conversion_using_ranges): New function. + (simplify_stmt_using_ranges): Call it. + +2011-07-07 Kai Tietz + + * tree-ssa-forwprop.c (truth_valued_ssa_name): New function. + (lookup_logical_inverted_value): Likewise. + (simplify_bitwise_binary_1): Likewise. + (simplify_bitwise_binary): Use simplify_bitwise_binary_1. + +2011-07-07 Joseph Myers + + * gcc.c (%[Spec]): Don't document. + (struct spec_list): Update comment. + (do_spec_1): Don't handle %[Spec]. + * doc/invoke.texi (%[@var{name}]): Remove documentation of spec. + +2011-07-07 Joseph Myers + + * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't + default based on TARGET_ASM_NAMED_SECTION. + * common/common-target.def (have_named_sections): Default to true. + * common/config/default-common.c: Don't include tm.h. + * common/config/picochip/picochip-common.c + (TARGET_HAVE_NAMED_SECTIONS): Don't define. + * common/config/m32c/m32c-common.c: Remove. + * config.gcc (m32c*-*-*): Set target_has_targetm_common=no. + * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. + * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. + * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. + * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. + * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. + * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. + +2011-07-07 Jakub Jelinek + + PR middle-end/49640 + * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands + and last COMPONENT_REF operand call gimplify_expr on it if non-NULL. + +2011-07-07 Rainer Orth + + PR libmudflap/49550 + * gcc.c (MFWRAP_SPEC): Also wrap mmap64. + +2011-07-07 Rainer Orth + + PR target/39150 + * configure.ac (gcc_cv_as_hidden): Also accept + x86_64-*-solaris2.1[0-9]*. + (gcc_cv_as_cfi_directive): Likewise. + (gcc_cv_as_comdat_group_group): Likewise. + (set_have_as_tls): Likewise. + * configure: Regenerate. + * config.gcc (i[34567]86-*-solaris2*): Also handle + x86_64-*-solaris2.1[0-9]*. + * config.host (i[34567]86-*-solaris2*): Likewise. + * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove. + * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine. + [USE_GLD] (ARCH_DEFAULT_EMULATION): Define. + (TARGET_LD_EMULATION): Use it. + * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define. + (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default. + * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define. + (ASM_CPU64_DEFAULT_SPEC): Define. + (ASM_CPU_SPEC): Use %(asm_cpu_default). + (ASM_SPEC): Redefine. + (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT. + * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce. + * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document. + (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]* + configuration. + (Specific, x86_64-*-solaris2.1[0-9]*): Document. + +2011-07-07 Rainer Orth + + * config/sol2.h (ASM_SPEC): Split into ... + (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. + * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. + * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine. + (ASM_SPEC): Use ASM_SPEC_BASE. + * config/sparc/sol2.h (ASM_SPEC): Redefine. + +2011-07-07 Georg-Johann Lay + + * config/avr/avr.md (*reload_insi): Change predicate #1 to + const_int_operand. Ditto for peep2 producing this insn. + Add argument to output_reload_insisf call. + (*movsi,*movsf): Add argument to output_movsisf call. + (*reload_insf): New insn and new peep2 to produce it. + * config/avr/avr-protos.h (output_movsisf): Change prototype. + (output_reload_insisf): Change prototype. + * config/avr/avr.c (avr_asm_len): New function. + (output_reload_insisf): Rewrite. + (output_movsisf): Change prototype. output_reload_insisf for + all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory. + (adjust_insn_length): Add argument to output_movsisf and + output_reload_insisf call. + +2011-07-07 Bernd Schmidt + + * emit-rtl.c (paradoxical_subreg_p): New function. + * rtl.h (paradoxical_subreg_p): Declare. + * combine.c (set_nonzero_bits_and_sign_copies, get_last_value, + apply_distributive_law, simplify_comparison, simplify_set): Use it. + * cse.c (record_jump_cond, cse_insn): Likewise. + * expr.c (force_operand): Likewise. + * rtlanal.c (num_sign_bit_copies1): Likewise. + * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise. + * reload.c (push_secondary_reload, find_reloads_toplev): Likewise. + (push_reload): Use precision to check for paradoxical subregs. + * expmed.c (extract_bit_field_1): Likewise. + + * machmode.h (HWI_COMPUTABLE_MODE_P): New macro. + * combine.c (set_nonzero_bits_and_sign_copies): Use it. + (find_split-point, combine_simplify_rtx, simplify_if_then_else, + simplify_set, simplify_logical, expand_compound_operation, + make_extraction, force_to_mode, if_then_else_cond, extended_count, + try_widen_shift_mode, simplify_shift_const_1, simplify_comparison, + record_value_for_reg): Likewise. + * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise. + * simplify-rtx. c (simplify_unary_operation_1, + simplify_binary_operation_1, simplify_const_relational_operation): + Likewise. + + * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION + instead of GET_MODE_BITSIZE where appropriate. + * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1, + num_sign_bit_copies1, canonicalize_condition, low_bitmask_len, + init_num_sign_bit_copies_in_rep): Likewise. + * cse.c (fold_rtx, cse_insn): Likewise. + * loop-doloop.c (doloop_modify, doloop_optimize): Likewise. + * simplify-rtx.c (simplify_unary_operation_1, + simplify_const_unary_operation, simplify_binary_operation_1, + simplify_const_binary_operation, simplify_ternary_operation, + simplify_const_relational_operation, simplify_subreg): Likewise. + * combine.c (try_combine, find_split_point, combine_simplify_rtx, + simplify_if_then_else, simplify_set, expand_compound_operation, + expand_field_assignment, make_extraction, if_then_else_cond, + make_compound_operation, force_to_mode, make_field_assignment, + reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, + extended_count, try_widen_shift_mode, simplify_shift_const_1, + simplify_comparison, record_promoted_value, simplify_compare_const, + record_dead_and_set_regs_1): Likewise. + + Revert: + * simplify-rtx.c (simplify_const_binary_operation): Use the + shift_truncation_mask hook instead of performing modulo by width. + Compare against mode precision, not bitsize. + * combine.c (combine_simplify_rtx, simplify_shift_const_1): + Use shift_truncation_mask instead of constructing the value manually. + +2011-07-06 Michael Meissner + + * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New + declaration. + (rs6000_save_toc_in_prologue_p): Ditto. + + * config/rs6000/rs6000.opt (-mr11): New switch to disable loading + up the static chain (r11) during indirect function calls. + (-msave-toc-indirect): New undocumented debug switch. + + * config/rs6000/rs6000.c (struct machine_function): Add + save_toc_in_prologue field to note whether the prologue needs to + save the TOC value in the reserved stack location. + (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need + to save the TOC in the prologue, do so. + (rs6000_trampoline_init): Don't allow creating AIX style + trampolines if -mno-r11 is in effect. + (rs6000_call_indirect_aix): New function to create AIX style + indirect calls, adding support for -mno-r11 to suppress loading + the static chain, and saving the TOC in the prologue instead of + the call body. + (rs6000_save_toc_in_prologue_p): Return true if we are saving the + TOC in the prologue. + + * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed + register numbers. + (TOC_REGNUM): Ditto. + (STATIC_CHAIN_REGNUM): Ditto. + (ARG_POINTER_REGNUM): Ditto. + (SFP_REGNO): Delete, unused. + (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and + function descriptor offsets. + (TOC_SAVE_OFFSET_64BIT): Ditto. + (AIX_FUNC_DESC_TOC_32BIT): Ditto. + (AIX_FUNC_DESC_TOC_64BIT): Ditto. + (AIX_FUNC_DESC_SC_32BIT): Ditto. + (AIX_FUNC_DESC_SC_64BIT): Ditto. + (ptrload): New mode attribute for the appropriate load of a pointer. + (call_indirect_aix32): Delete, rewrite AIX indirect function calls. + (call_indirect_aix64): Ditto. + (call_value_indirect_aix32): Ditto. + (call_value_indirect_aix64): Ditto. + (call_indirect_nonlocal_aix32_internal): Ditto. + (call_indirect_nonlocal_aix32): Ditto. + (call_indirect_nonlocal_aix64_internal): Ditto. + (call_indirect_nonlocal_aix64): Ditto. + (call): Rewrite AIX indirect function calls. Add support for + eliminating the static chain, and for moving the save of the TOC + to the function prologue. + (call_value): Ditto. + (call_indirect_aix): Ditto. + (call_indirect_aix_internal): Ditto. + (call_indirect_aix_internal2): Ditto. + (call_indirect_aix_nor11): Ditto. + (call_value_indirect_aix): Ditto. + (call_value_indirect_aix_internal): Ditto. + (call_value_indirect_aix_internal2): Ditto. + (call_value_indirect_aix_nor11): Ditto. + (call_nonlocal_aix32): Relocate in the rs6000.md file. + (call_nonlocal_aix64): Ditto. + + * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and + -mno-r11 documentation. + +2011-07-06 Jonathan Wakely + + PR other/49658 + * doc/extend.texi (Compound Literals): Fix typo. + +2011-07-06 James Greenhalgh + + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP. + +2011-07-06 Basile Starynkevitch + + * configure.ac (plugin-version.h): Generate + GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR, + GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer + macros. + + * configure: Regenerate. + + * doc/plugins.texi (Building GCC plugins): Mention + GCCPLUGIN_VERSION ... constant macros in plugin-version.h. + +2011-07-06 Bernd Schmidt + + * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro. + * combine.c (make_extraction, gen_lowpart_or_truncate, + apply_distributive_law, simplify_comparison, + reg_truncated_to_mode, record_truncated_value): Use it. + * cse.c (notreg_cost): Likewise. + * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise. + * expr.c (convert_move, convert_modes): Likewise. + * optabs.c (expand_binop, expand_unop): Likewise. + * postreload.c (move2add_last_label): Likewise. + * regmove.c (optimize_reg_copy_3): Likewise. + * rtlhooks.c (gen_lowpart_general): Likewise. + * simplify-rtx.c (simplify_unary_operation_1): Likewise. + +2011-07-06 Joseph Myers + + * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define. + +2011-07-06 Bernd Schmidt + + * cse.c (find_comparison_args): Use val_mode_signbit_set_p. + * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION. + (val_mode_signbit_p, val_mode_signbit_set_p): New functions. + (simplify_const_unary_operation, simplify_binary_operation_1, + simplify_const_binary_operation, simplify_const_relational_operation): + Use them. Use GET_MODE_MASK for masking and sign-extensions. + * combine.c (set_nonzero_bits_and_sign_copies, simplify_set, + combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine, + simplify_shift_const_1, simplify_comparison): Likewise. + * expr.c (convert_modes): Likewise. + * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise. + * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise. + * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare. + + * simplify-rtx.c (simplify_ternary_operation): Remove dead code. + +2011-07-06 Richard Guenther + + PR tree-optimization/49645 + * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global + register variables. + * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences + in type qualification here ... + (copy_reference_ops_from_ref): ... not here. + (vn_reference_lookup_3): ... or here. + (copy_reference_ops_from_ref): Record decl bases as MEM[&decl]. + (vn_reference_lookup): Do the lookup with a valueized ao-ref. + +2011-07-06 Ian Lance Taylor + + * doc/install.texi (Configuration): It's + --enable-gnu-indirect-function, not --enable-indirect-function. + +2011-07-06 Bernd Schmidt + + * simplify-rtx.c (simplify_const_binary_operation): Use the + shift_truncation_mask hook instead of performing modulo by width. + Compare against mode precision, not bitsize. + * combine.c (combine_simplify_rtx, simplify_shift_const_1): + Use shift_truncation_mask instead of constructing the value manually. + +2011-07-06 H.J. Lu + + PR middle-end/47383 + * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for + address computation and convert to address_mode if needed. + +2011-07-06 Richard Guenther + + * tree.c (build_common_tree_nodes_2): Merge with + build_common_tree_nodes. + * tree.h (build_common_tree_nodes): Adjust prototype. + (build_common_tree_nodes_2): Remove. + * doc/tm.texi.in (lang_hooks.builtin_function): Adjust. + * doc/tm.texi (lang_hooks.builtin_function): Regenerate. + +2011-07-05 Jakub Jelinek + + PR tree-optimization/49618 + * tree-eh.c (tree_could_trap_p) : For DECL_WEAK + t recurse on the decl. + : For DECL_WEAK decls + return true if expr isn't known to be defined in current + TU or some other LTO partition. + +2011-07-05 Michael Meissner + + * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to + override CASE_VALUES_THRESHOLD. + + * stmt.c (toplevel): Include params.h. + (case_values_threshold): Use the --param case-values-threshold + value if non-zero, otherwise use machine dependent value. + (expand_case): Use case_values_threshold. + + * Makefile.in (stmt.o): Add $(PARAMS_H) dependency. + + * doc/invoke.texi (--param case-values-threshold): Document. + +2011-07-05 Richard Henderson + + * dwarf2out.c (dwarf2out_cfi_label): Make static. + (dwarf2out_flush_queued_reg_saves): Make static. + (dwarf2out_reg_save): Remove. + (dwarf2out_return_save): Remove. + (dwarf2out_return_reg): Remove. + (dwarf2out_reg_save_reg): Remove. + (dwarf2out_def_cfa): Merge into ... + (dwarf2out_frame_init): ... here. + * dwarf2out.h, tree.h: Remove declarations as necessary. + +2011-07-05 Richard Henderson + + * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove. + (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. + (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for + the alloc insn. + + * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove. + (IA64_CHANGE_CFA_IN_EPILOGUE): Remove. + (process_epilogue): Don't call dwarf2out_def_cfa. + + * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to + indicate the return address save. + (process_cfa_register): Likewise. + + * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove. + (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it. + + * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER + for ar.pfs save at alloc insn. + +2011-07-05 Richard Henderson + + * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove. + (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. + (arm_expand_prologue): Use REG_CFA_REGISTER to mark the + stack pointer save. + (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN. + (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit + proper unwind info for a REG_CFA_REGISTER save of stack pointer. + * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove. + +2011-07-05 Richard Henderson + + * config/vax/vax.md (define_c_enum unspecv): New. Define the + VUNSPEC_* constants here instead of via define_constants. + (VUNSPEC_PEM): New constant. + (procedure_entry_mask): New insn. + (prologue): New expander. + * config/vax/vax.c (vax_add_reg_cfa_offset): New. + (vax_expand_prologue): Rename from vax_output_function_prologue; + emit rtl instead of text. + (TARGET_ASM_FUNCTION_PROLOGUE): Remove. + (print_operand): Add 'x' prefix. + +2011-07-05 H.J. Lu + + PR middle-end/47715 + * calls.c (precompute_register_parameters): Promote the function + argument before checking non-legitimate constant. + +2011-07-05 Sebastian Pop + + PR tree-optimization/47654 + * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool. + (lst_do_strip_mine_loop): Return an int. + (lst_do_strip_mine): Same. + (scop_do_strip_mine): Same. + (scop_do_block): Loop blocking should strip-mine at least two loops. + * graphite-interchange.c (lst_interchange_select_outer): Return an int. + (scop_do_interchange): Same. + * graphite-poly.h (scop_do_interchange): Update declaration. + (scop_do_strip_mine): Same. + +2011-07-05 Sebastian Pop + + * graphite-clast-to-gimple.c (precision_for_value): Removed. + (precision_for_interval): Removed. + (gcc_type_for_interval): Use mpz_sizeinbase. + +2011-07-05 Sebastian Pop + + * graphite-ppl.h (value_max): Correct computation of max. + +2011-07-05 Sebastian Pop + + * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space. + +2011-07-05 Richard Guenther + + * c-decl.c (c_init_decl_processing): Defer building common + tree nodes to c_common_nodes_and_builtins. + +2011-07-05 Razya Ladelsky + + PR tree-optimization/49580 + * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of + the loop's number of iterations. + * tree-parloops.c (transform_to_exit_first_loop): Add the + handling of the loop's number of iterations before the call + to gimple_duplicate_sese_tail. + Insert the stmt caclculating the new rhs of the loop's + condition stmt to the preheader instead of iters_bb. + +2011-07-05 H.J. Lu + + PR rtl-optimization/47449 + * fwprop.c (forward_propagate_subreg): Don't propagate hard + register nor zero/sign extended hard register. + +2011-07-05 Richard Guenther + + PR tree-optimization/49518 + PR tree-optimization/49628 + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip + irrelevant and invariant data-references. + (vect_analyze_data_ref_access): For invariant loads clear the + group association. + +2011-07-04 Jakub Jelinek + + PR rtl-optimization/49619 + * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification + pass VOIDmode as op0_mode to recursive call, and return temp even + when different from tor, just if it is not IOR of the original + PLUS arguments. + + PR rtl-optimization/49472 + * simplify-rtx.c (simplify_unary_operation_1) : When + negating MULT, negate the second operand instead of first. + (simplify_binary_operation_1) : If one operand is + a NEG and the other is MULT, don't attempt to optimize by negation + of the MULT operand if it only moves the NEG operation around. + + PR debug/49602 + * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard + get_current_def return value if it can't be trusted to be + the current value of the variable in the current bb. + +2011-07-04 Uros Bizjak + + PR target/49600 + * config/i386/i386.md (SSE2 int->float split): Push operand 1 in + general register to memory for !TARGET_INTER_UNIT_MOVES. + +2011-07-04 Georg-Johann Lay + + PR target/44643 + * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY + instead of TREE_READONLY. + +2011-07-04 Georg-Johann Lay + + * doc/extend.texi (AVR Built-in Functions): Update documentation + of __builtin_avr_fmul*. + * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL. + * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto. + * config/avr/avr.md (fmul): Rename to fmul_insn. + (fmuls): Rename to fmuls_insn. + (fmulsu): Rename to fmulsu_insn. + (fmul,fmuls,fmulsu): New expander. + (*fmul.call,*fmuls.call,*fmulsu.call): New Insn. + * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu. + * config/avr/libgcc.S (__fmul): New function. + (__fmuls): New function. + (__fmulsu,__fmulsu_exit): New function. + +2011-07-04 Richard Guenther + + PR tree-optimization/49615 + * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix + basic-block index check. + +2011-07-04 Georg-Johann Lay + + * longlong.h (count_leading_zeros, count_trailing_zeros, + COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16 + resp. 64. + +2011-07-03 Ira Rosen + + PR tree-optimization/49610 + * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has + a basic block. + +2011-07-02 Eric Botcazou + Olivier Hainque + Nicolas Setton + + * tree.h (TYPE_ARTIFICIAL): New flag. + * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to + the DIE of the type if it is artificial. + (gen_array_type_die): Likewise. + (gen_enumeration_type_die): Likewise. + (gen_struct_or_union_type_die): Likewise. + * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL. + * lto-streamer-out.c (pack_ts_base_value_fields): Likewise. + +2011-07-01 Jakub Jelinek + + * tree-object-size.c (pass_through_call): Handle + BUILT_IN_ASSUME_ALIGNED. + +2011-07-01 Martin Jambor + + * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs. + +2011-07-01 H.J. Lu + + PR middle-end/48016 + * explow.c (update_nonlocal_goto_save_area): Use proper mode + for stack save area. + * function.c (expand_function_start): Likewise. + +2011-07-01 Richard Guenther + + PR middle-end/49596 + * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes + may have unknown refs. + +2011-07-01 Kai Tietz + + * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo. + +2011-07-01 Rainer Orth + + * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5. + * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it. + (Specific, mips-sgi-irix6): Likewise. + +2011-07-01 Rainer Orth + + PR libmudflap/49549 + * doc/sourcebuild.texi (Effective-Target Keywords): Document gld. + +2011-07-01 Jakub Jelinek + + * tree-pretty-print.c (dump_generic_code) : Print + [idx]= and [idx1 ... idx2]= before initializers if needed for + array initializers. + +2011-07-01 Chen Liqin + + * config.gcc (score-*-elf): Remove score7.o. + * config/score/t-score-elf: Likewise. + * config/score/score.c: Merge score7 to score.c and + remove forwarding functions. + * config/score/score7.c: Deleted. + * config/score/score7.h: Deleted. + +2011-07-01 Richard Guenther + + PR tree-optimization/49603 + * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert. + +2011-06-30 Martin Jambor + + * tree-sra.c (struct access): Rename total_scalarization to + grp_total_scalarization + (completely_scalarize_var): New function. + (sort_and_splice_var_accesses): Set total_scalarization in the + representative access. + (analyze_access_subtree): Propagate total scalarization accross the + tree, no holes in totally scalarized trees, simplify coverage + computation. + (analyze_all_variable_accesses): Call completely_scalarize_var instead + of completely_scalarize_record. + +2011-06-30 Richard Henderson + + * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove. + (TARGET_DEEP_BRANCH_PREDICTION): Remove. + * config/i386/i386.c: Don't include dwarf2out.h. + (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION. + (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete + all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves. + (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn. + (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION. + +2011-06-30 Richard Henderson + + * reg-notes.def (REG_CFA_FLUSH_QUEUE): New. + * dwarf2out.c (dwarf2out_frame_debug): Handle it. + * final.c (final_scan_insn): Look for it, and invoke + dwarf2out_frame_debug before the insn if found. + +2011-06-30 Richard Henderson + + * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX + as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN. + +2011-06-30 Richard Henderson + + * dwarf2out.c (struct reg_saved_in_data): Provide a typedef. + Define a vector of this type. + (regs_saved_in_regs): Use a VEC. + (num_regs_saved_in_regs): Remove. + (compare_reg_or_pc): New. + (record_reg_saved_in_reg): Split out from... + (dwarf2out_flush_queued_reg_saves): ... here. + (clobbers_queued_reg_save): Update for VEC. + (reg_saved_in): Likewise. + (dwarf2out_frame_debug_init): Likewise. + (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg. + (dwarf2out_frame_debug_cfa_register): Likewise. + +2011-06-30 Eric Botcazou + + PR tree-optimization/49572 + * tree-ssa-dom.c (initialize_hash_element) : Use the + type of the RHS instead of that of the LHS for the expression type. + +2011-06-30 Eric Botcazou + + * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro + unconditionally. + +2011-06-30 Richard Guenther + + * opts.c (finish_options): Do not disable IPA-PTA during ltrans. + * tree-ssa-structalias.c (create_variable_info_for): Do not + add initial constraints for non-var-decls. Properly handle + globals in other ltrans partitions. + (intra_create_variable_infos): Manually create constraints for + the fake no-alias parameter. + (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly + and assert there are no clones. + +2011-06-30 Richard Guenther + + PR tree-optimization/46787 + * tree-data-ref.c (dr_address_invariant_p): Remove. + (find_data_references_in_stmt): Invariant accesses are ok now. + * tree-vect-stmts.c (vectorizable_load): Handle invariant loads. + * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow + invariant loads. + +2011-06-30 Martin Jambor + + PR tree-optimization/49094 + * tree-sra.c (tree_non_mode_aligned_mem_p): New function. + (build_accesses_from_assign): Use it. + +2011-06-30 Jakub Jelinek + + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix + handling of BUILT_IN_ASSUME_ALIGNED. + + PR debug/49364 + * dwarf2out.c (output_abbrev_section): Don't return early + if abbrev_die_table_in_use is 1. + (dwarf2out_finish): Instead don't call output_abbrev_section + nor emit abbrev_section_label in that case. + +2011-06-30 Nick Clifton + + * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling + for the V850E. + +2011-06-30 Jakub Jelinek + + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix + handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK. + +2011-06-30 Ira Rosen + + * tree-vect-loop.c (vect_determine_vectorization_factor): Handle + both pattern and original statements if necessary. + (vect_transform_loop): Likewise. + * tree-vect-patterns.c (vect_pattern_recog): Update documentation. + * tree-vect-stmts.c (vect_mark_relevant): Add new argument. + Mark the pattern statement only if the original statement doesn't + have its own uses. + (process_use): Call vect_mark_relevant with additional parameter. + (vect_mark_stmts_to_be_vectorized): Likewise. + (vect_get_vec_def_for_operand): Use vectorized pattern statement. + (vect_analyze_stmt): Handle both pattern and original statements + if necessary. + (vect_transform_stmt): Don't store vectorized pattern statement + in the original statement. + (vect_is_simple_use_1): Use related pattern statement only if the + original statement is irrelevant. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. + +2011-06-29 Changpeng Fang + + * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask + option. + * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL + entry. + (TARGET_AVX128_OPTIMAL): New definition. + * config/i386/i386.c (initial_ix86_tune_features): Initialize + X86_TUNE_AVX128_OPTIMAL entry. + (ix86_option_override_internal): Enable the generation + of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set. + (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128. + (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128. + +2011-06-29 Eric Botcazou + + PR tree-optimization/49539 + * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA + names by means of stmt_references_abnormal_ssa_name. + (associate_plusminus): Call can_propagate_from before propagating + from definition statements. + (ssa_forward_propagate_and_combine): Remove superfluous newline. + +2011-06-29 Richard Guenther + + * doc/invoke.texi: Document -scev dump modifier. + * tree-pass.h (TDF_SCEV): New dump flag. + * tree-dump.c (dump_option_value_in): Add scev. + * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV. + * tree-scalar-evolution.c: Likewise. + +2011-06-29 Nathan Sidwell + + * config/arm/unwind-arm.c (enum __cxa_type_match_result): New. + (cxa_type_match): Correct declaration. + (__gnu_unwind_pr_common): Reconstruct additional indirection + when __cxa_type_match returns succeeded_with_ptr_to_base. + +2011-06-29 Ulrich Weigand + + PR rtl-optimization/49114 + * reload.c (struct replacement): Remove SUBREG_LOC member. + (push_reload): Do not set it. + (push_replacement): Likewise. + (subst_reload): Remove dead code. + (copy_replacements): Remove assertion. + (copy_replacements_1): Do not handle SUBREG_LOC. + (move_replacements): Likewise. + (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode. + Detect subregs via recursive descent instead of via SUBREG_LOC. + +2011-06-29 Georg-Johann Lay + + * config/avr/avr.c (avr_encode_section_info): Dispatch to + default_encode_section_info. + +2011-06-29 Richard Sandiford + + PR tree-optimization/49545 + * builtins.c (get_object_alignment_1): Update function comment. + Do not use DECL_ALIGN for functions, but test + TARGET_PTRMEMFUNC_VBIT_LOCATION instead. + * fold-const.c (get_pointer_modulus_and_residue): Don't check + for functions here. + * tree-ssa-ccp.c (get_value_from_alignment): Likewise. + +2011-06-29 Jakub Jelinek + + PR debug/49567 + * dwarf2out.c (mem_loc_descriptor) : Give up for + non-MODE_INT modes instead of asserting the mode has MODE_INT class. + +2011-06-29 Georg-Johann Lay + + PR target/34734 + * config/avr/avr.c (avr_handle_progmem_attribute): Move warning + about uninitialized data attributed 'progmem' from here... + (avr_encode_section_info): ...to this new function. + (TARGET_ENCODE_SECTION_INFO): New define. + (avr_section_type_flags): For data in ".progmem.data", remove + section flag SECTION_WRITE. + +2011-06-29 Georg-Johann Lay + + * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3, + _xmulhisi3_exit. + * config/avr/libgcc.S (_xmulhisi3_exit): New Function. + (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp. + (__umulhisi3): Ditto. + * config/avr/avr.md (mulhisi3): New insn expender. + (umulhisi3): New insn expender. + (*mulhisi3_call): New insn. + (*umulhisi3_call): New insn. + +2011-06-28 Joseph Myers + + * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED. + +2011-06-28 Richard Henderson + + * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete + all code and arguments that handled pushes. Update all callers. + +2011-06-28 Richard Henderson + + * config/arm/arm.c (arm_output_function_prologue): Don't call + thumb1_output_function_prologue. + (arm_expand_prologue): Avoid dead store. + (number_of_first_bit_set): Use ctz_hwi. + (thumb1_emit_multi_reg_push): New. + (thumb1_expand_prologue): Merge thumb1_output_function_prologue + to emit the entire prologue as rtl. + (thumb1_output_interwork): Split out from + thumb1_output_function_prologue. + (thumb1_output_function_prologue): Remove. + (arm_attr_length_push_multi): Handle thumb1. + * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New. + (prologue_thumb1_interwork): New. + (*push_multi): Allow thumb1; use push_mult_memory_operand. + * config/arm/predicates.md (push_mult_memory_operand): New. + +2011-06-28 Eric Botcazou + + * config/sparc/sync.md (*stbar): Delete. + (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8. + +2011-06-28 Eric Botcazou + + * tree-ssa-dom.c (initialize_hash_element): Fix oversight. + +2011-06-28 Rainer Orth + + * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove. + (TARGET_64BIT_DEFAULT): Define. + * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front + of tm_file. + * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define. + +2011-06-28 Joseph Myers + + * common.opt (in_lto_p): New Variable entry. + * flags.h (in_lto_p): Move to common.opt. + * gcc.c: Include params.h. + (set_option_handlers): Also use common_handle_option and + target_handle_option. + (main): Call global_init_params, finish_params and init_options_struct. + * opts.c (debug_type_names): Move from toplev.c. + (print_filtered_help): Access quiet_flag through opts pointer. + (common_handle_option): Return early in the driver for some options. + Access in_lto_p, dwarf_version and warn_maybe_uninitialized through + opts pointer. + * toplev.c (in_lto_p): Move to common.opt. + (debug_type_names): Move to opts.c. + * Makefile.in (OBJS): Remove opts.o. + (OBJS-libcommon-target): Add opts.o. + (gcc.o): Update dependencies. + +2011-06-28 Kai Tietz + + * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking. + +2011-06-28 Ramana Radhakrishnan + + * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier + with '=' constraint modifier. + (*divdf3_vfp): Likewise. + ("*mulsf3_vfp"): Likewise. + ("*muldf3_vfp"): Likewise. + ("*mulsf3negsf_vfp"): Likewise. + ("*muldf3negdf_vfp"): Likewise. + +2011-06-28 Nick Clifton + + * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker + relaxation when performing an incremental link. + +2011-06-28 Kai Tietz + + * tree-ssa-math-opts.c (execute_optimize_bswap): Search + within BB from last to first. + +2011-06-28 Joseph Myers + + * genattr-common.c: New. Based on genattr.c. + * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h. + (MOSTLYCLEANFILES): Add insn-attr-common.h. + (opts.o): Update dependencies. + (.PRECIOUS): Add insn-attr-common.h. + (simple_rtl_generated_h): Add insn-attr-common.h. + (build/genattr-common.o): New. + (genprogrtl): Add attr-common. + * genattr.c (main): Include insn-attr-common.h. Don't generate + definitions of DELAY_SLOTS or INSN_SCHEDULING. + * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h. + +2011-06-28 Georg-Johann Lay + + * config.gcc (tm_file): Add elfos.h and avr/elf.h for + avr-*-* and avr-*-rtems* targets. + + * config/avr/elf.h: New file. + (ASM_OUTPUT_BEFORE_CASE_LABEL): Define. + (TARGET_ASM_SELECT_SECTION): Define. + (INIT_SECTION_ASM_OP): Undefine. + (FINI_SECTION_ASM_OP): Undefine. + (READONLY_DATA_SECTION_ASM_OP): Undefine. + (PCC_BITFIELD_TYPE_MATTERS): Undefine. + (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine. + * config/avr/avr.h: + (PREFERRED_DEBUGGING_TYPE): Move to elf.h. + (TARGET_ASM_NAMED_SECTION): Move to elf.h. + (MAX_OFILE_ALIGNMENT): Move to elf.h. + (STRING_LIMIT): Move to elf.h. + (ASM_DECLARE_FUNCTION_NAME): Move to elf.h. + (ASM_DECLARE_OBJECT_NAME): Remove. + (ESCAPES): Remove. + (ASM_OUTPUT_SKIP): Remove. + (DWARF2_DEBUGGING_INFO): Remove. + (OBJECT_FORMAT_ELF): Remove. + (USER_LABEL_PREFIX): Remove. + (ASM_OUTPUT_EXTERNAL): Remove. + (ASM_OUTPUT_ASCII): Remove. + (TYPE_ASM_OP): Remove. + (SIZE_ASM_OP): Remove. + (WEAK_ASM_OP): Remove. + (STRING_ASM_OP): Remove. + (SET_ASM_OP): Remove. + (ASM_WEAKEN_LABEL): Remove. + (TYPE_OPERAND_FMT): Remove. + (ASM_DECLARE_FUNCTION_SIZE): Remove. + (ASM_FINISH_DECLARE_OBJECT): Remove. + (NO_DOLLAR_IN_LABEL): Remove. + (ASM_GENERATE_INTERNAL_LABEL): Remove. + (ASM_OUTPUT_CASE_LABEL): Remove. + * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use + ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON. + (gas_output_ascii): Remove. + (gas_output_limited_string): Remove. + (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove. + * config/avr/avr-protos.h + (gas_output_ascii): Remove prototye. + (gas_output_limited_string): Remove prototype. + +2011-06-27 Richard Earnshaw + + PR target/48637 + * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid + asm operands. + +2011-06-27 Jan Hubicka + + * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of + node instead of references in node. + +2011-06-27 Richard Henderson + + * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition. + * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins + inside ifdef. + +2011-06-27 Jakub Jelinek + + * c-decl.c (union lang_tree_node): Use it in chain_next expression. + + * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New. + * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin. + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, + find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED. + * tree-ssa-ccp.c (bit_value_assume_aligned): New function. + (evaluate_stmt, execute_fold_all_builtins): Handle + BUILT_IN_ASSUME_ALIGNED. + * tree-ssa-dce.c (propagate_necessity): Likewise. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, + call_may_clobber_ref_p_1): Likewise. + * builtins.c (is_simple_builtin, expand_builtin): Likewise. + (expand_builtin_assume_aligned): New function. + * doc/extend.texi (__builtin_assume_aligned): Document. + + PR debug/49544 + * cselib.c (promote_debug_loc): If cselib_preserve_constants + and l has two DEBUG_INSN owned locs instead of just one, adjust + the second location's setting_insn too. + +2011-06-27 Rainer Orth + + PR libmudflap/38738 + * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define. + +2011-06-27 Nick Clifton + + * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert + bit position of highest bit set into a count of the high zero bits. + +2011-06-27 Eric Botcazou + + * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types. + +2011-06-27 Eric Botcazou + + PR lto/48492 + * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list + to a NULL parent. + +2011-06-27 Richard Guenther + + PR tree-optimization/49394 + * passes.c (execute_one_pass): Restore current_pass after + applying IPA transforms. + +2011-06-27 Kai Tietz + + * tree-ssa-math-opts.c (do_shift_rotate): Zero bits + out of type precision after operation. + (find_bswap): Take for limit value the integer auto-promotion + into account. + +2011-06-27 Eric Botcazou + + * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the + forward scan as well. + +2011-06-27 Tristan Gingold + + PR target/44241 + * config/vms/vms-protos.h: New file. + * config/vms/vms-crtlmap.map: New file. + * config/vms/vms.c: New file. + * config/vms/make-crtlmap.awk: New file. + * config/vms/vms-crtl.h: File removed. + * config/vms/vms-crtl-64.h: File removed. + * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets. + * config/alpha/vms64.h: Do not include vms-crtl-64.h + * config/alpha/alpha.c (alpha_init_builtins): Remove code to + clear some builtins on VMS. Calls vms_patch_builtins. + (avms_asm_output_external): Remove. + * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove. + (struct crtl_name_spec): Remove + (DO_CTRL_NAMES): Remove. + * config/ia64/vms.h (struct crtl_name_spec): Remove + (DO_CTRL_NAMES): Remove. + * config/ia64/ia64.c (alpha_init_builtins): Remove code to + clear some builtins on VMS. Calls vms_patch_builtins. + (ia64_asm_output_external): Remove DO_CRTL_NAME. + * config/ia64/vms64.h: Do not include vms-crtl-64.h + * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file. + +2011-06-27 Tristan Gingold + + * config/alpha/alpha.c (alpha_end_function): Always generate .end + directive on VMS. + +2011-06-27 Eric Botcazou + + * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if + the function receives nonlocal gotos. + +2011-06-27 Richard Guenther + + PR tree-optimization/49536 + * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): + For non-scalar inner types use a scalar type according to + the scalar inner mode. + +2011-06-27 Richard Guenther + + PR tree-optimization/49365 + * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9. + +2011-06-27 Richard Guenther + + PR tree-optimization/49169 + * fold-const.c (get_pointer_modulus_and_residue): Don't rely on + the alignment of function decls. + +2011-06-26 Iain Sandoe + + PR target/47997 + * config/darwin.c (darwin_mergeable_string_section): Place string + constants in '.cstring' rather than '.const' when CF/NSStrings are + active. + +2011-06-26 Eric Botcazou + + * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment. + (emit_save_register_window): Likewise. + (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables. + (sparc_flat_expand_prologue): Add comment. Always emit blockage. + Swap back %o7/%i7 in register naming. + +2011-06-25 Iain Sandoe + + PR driver/49371 + * config/darwin.c (darwin_override_options): Improve warning when + mdynamic-no-pic is given together with fPIC/fpic, also warn when it + is given with fpie/fPIE. + * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC. + * config/darwin9.h (PIE_SPEC): New. + +2011-06-25 Basile Starynkevitch + + * timevar.c (timevar_print): Increase width for display of timevar + name. + +2011-06-24 Jakub Jelinek + + PR c++/46400 + * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT + instead of TYPE_CHAIN for chain_next for types. + +2011-06-24 Richard Henderson + + * config/sparc/sparc.md (create_flat_frame_1): Remove. + (create_flat_frame_2, create_flat_frame_3): Remove. + * config/sparc/sparc.c (gen_create_flat_frame_1): Remove. + (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove. + (sparc_flat_expand_prologue): Emit individual instructions + instead of one of the above. + +2011-06-24 Easwaran Raman + + PR rtl-optimization/49429 + PR target/49454 + * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and + MEM_EXPR(y) addressable if emit_block_move_via_libcall is + used to copy y into x. + * calls.c (initialize_argument_information): Mark + an argument addressable if it is passed by invisible reference. + (emit_library_call_value_1): Mark MEM_EXPR (val) addressable + if it is passed by reference. + +2011-06-24 H.J. Lu + + PR rtl-optimization/49504 + * rtlanal.c (nonzero_bits1): Properly handle addition or + subtraction of a pointer in Pmode if pointers extend unsigned. + (num_sign_bit_copies1): Likewise. + +2011-06-24 Martin Jambor + + PR tree-optimizations/49516 + * tree-sra.c (sra_modify_assign): Choose the safe path for + aggregate copies if we also did scalar replacements. + +2011-06-24 Ramana Radhakrishnan + + PR target/49335 + * config/arm/predicates.md (add_operator): New. + * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2. + +2011-06-24 Andi Kleen + + * tree-sra.c (type_internals_preclude_sra_p): Add msg + parameter. Split up ifs and report reason in *msg. + (reject): Add. + (find_var_candiate): Add msg variable. + Split up ifs and report reason to reject. + (find_param_candidates): Add msg variable. + Pass msg to type_internals_preclude_sra_p. + +2011-06-23 Jeff Law + + PR middle-end/48770 + * reload.h (reload): Change to return a bool. + * ira.c (ira): If requested by reload, run a fast DCE pass after + reload has completed. Fix comment typo. + * reload1.c (need_dce): New file scoped static. + (reload): Set reload_completed here. Return whether or not a DCE + pass after reload is needed. + (delete_dead_insn): Set need_dce as needed. + + PR middle-end/49465 + * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition + to detect threading through joiner block. If there was already + an edge to the new target, then do not change the PHI nodes. + +2011-06-23 Jakub Jelinek + + * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use + get_pointer_alignment to see if base isn't sufficiently aligned. + +2011-06-23 Jan Hubicka + + PR tree-optimize/49373 + * tree-pass.h (all_late_ipa_passes): Declare. + * cgraphunit.c (init_lowered_empty_function): Fix properties. + (cgraph_optimize): Execute late passes; remove unreachable funcions + after materialization. + * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or + LTOing. + * passes.c (all_late_ipa_passes): Declare. + (dump_passes, register_pass): Handle late ipa passes. + (init_optimization_passes): Move ipa_pta to late passes; schedule + fixup_cfg at beggining of all_passes. + (apply_ipa_transforms): New function. + (execute_one_pass): When doing simple ipa pass, apply all transforms. + +2011-06-23 Joseph Myers + + * params.c: Include common/common-target.h. Don't include tm.h. + (lang_independent_params): Move from toplev.c. + (global_init_params): New. + * params.h (global_init_params): Declare. + * target.def (default_params): Move to common-target.def. + * toplev.c (lang_independent_options): Remove. + (lang_independent_params): Move to params.c. + (general_init): Use global_init_params. + * common/common-target.def (option_default_params): Move from + target.def. + * common/config/ia64/ia64-common.c: Include params.h. + (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move + from ia64.c. + * common/config/rs6000/rs6000-common.c: Include params.h. + (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move + from rs6000.c. + * common/config/sh/sh-common.c: Include params.h. + (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move + from sh.c. + * common/config/spu/spu-common.c: Include params.h. + (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move + from spu.c. + * config/ia64/ia64.c (ia64_option_default_params, + TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c. + * config/rs6000/rs6000.c (rs6000_option_default_params, + TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c. + * config/sh/sh.c (sh_option_default_params, + TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c. + * config/spu/spu.c (spu_option_default_params, + TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c. + * Makefile.in (OBJS): Remove params.o. + (OBJS-libcommon-target): Add params.o. + (params.o, $(common_out_object_file)): Update dependencies. + * doc/tm.texi: Regenerate. + +2011-06-23 Alan Modra + + PR bootstrap/49383 + * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph + invocation for 2011-06-09 changes. + +2011-06-22 Jakub Jelinek + + PR libgomp/49490 + * omp-low.c (expand_omp_for_static_nochunk): Only + use n ceil/ nthreads size for the first n % nthreads threads in the + team instead of all threads except for the last few ones which + get less work or none at all. + + PR debug/49496 + * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug + uses. + +2011-06-22 Richard Guenther + + PR tree-optimization/49493 + * tree-ssa-structalias.c (get_constraint_for_ssa_var): + Refer to the alias target of variables. + (associate_varinfo_to_alias_1): Remove. + (ipa_pta_execute): Do not associate aliases with anything. + * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors. + (cgraph_function_node): Likewise. + (cgraph_function_or_thunk_node): Likewise. + (varpool_variable_node): Likewise. + +2011-06-22 Nathan Sidwell + + * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo. + * config.gcc (arm*-*-linux*): Default to gnu tls. + (arm*-*-*): Add --with-tls option. + (all_defaults): Add 'tls'. + +2011-06-22 Richard Henderson + + * reg-notes.def (REG_CFA_WINDOW_SAVE): New. + * dwarf2out.c (dwarf2out_frame_debug): Handle it. + (dwarf2out_frame_debug_cfa_window_save): Rename from + dwarf2out_window_save; make static. + * tree.h (dwarf2out_window_save): Don't declare. + + * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove. + (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. + (emit_save_register_window): Rename from gen_save_register_window; + emit the insn and add REG_CFA_* notes. + (sparc_expand_prologue): Update to match. + * config/sparc/sparc.md (save_register_window_1): Simplify from + save_register_window. + +2011-06-22 H.J. Lu + + PR target/49497 + * config/i386/i386.md (*lea_general_2): Always allow SImode. + (*lea_general_2_zext): Likewise. + (imul to lea peepholes): Use const359_operand and check + TARGET_PARTIAL_REG_STALL. + + * config/i386/predicates.md (const359_operand): New. + +2011-06-22 Michael Matz + + * cgraphunit.c (assemble_thunk): Use correct return type. + +2011-06-22 Dmitry Plotnikov + Dmitry Melnik + + * config/arm/arm.c (neon_immediate_valid_for_shift): New function. + (neon_output_shift_immediate): Ditto. + * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New + prototype. + (neon_output_shift_immediate): Ditto. + * config/arm/neon.md (vashl3): Modified constraint. + (vashr3_imm): New insn pattern. + (vlshr3_imm): Ditto. + (vashr3): Modified constraint. + (vlshr3): Ditto. + * config/arm/predicates.md (imm_for_neon_lshift_operand): New + predicate. + (imm_for_neon_rshift_operand): Ditto. + (imm_lshift_or_reg_neon): Ditto. + (imm_rshift_or_reg_neon): Ditto. + + * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr. + +2011-06-22 Jakub Jelinek + + * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for + builtin calls even if likelyvalue is not CONSTANT. + Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC. + Return get_value_for_expr of first operand + for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle + BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like + their non-checking counterparts. + (call_may_clobber_ref_p_1): Likewise. + (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK + like their non-checking counterparts. + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): + Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK + like their non-checking counterparts. + (find_func_clobbers): Likewise. + * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK + like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC. + + * dwarf2out.c (size_of_loc_descr, output_loc_operands, + mark_base_types, hash_loc_operands, compare_loc_operands): Allow + DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead + of base type reference as argument. + (resolve_addr_in_expr): Likewise. Fix keep computation. + (convert_descriptor_to_signed): Renamed to... + (convert_descriptor_to_mode): ... this. For wider types convert to + unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped. + (typed_binop): New function. + (scompare_loc_descriptor, ucompare_loc_descriptor, + minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes + default to unsigned type instead of signed. + + PR debug/47858 + * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND. + (gimple_build_debug_source_bind_stat): New prototype. + (gimple_build_debug_source_bind): Define. + (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var, + gimple_debug_source_bind_get_value, + gimple_debug_source_bind_get_value_ptr, + gimple_debug_source_bind_set_var, + gimple_debug_source_bind_set_value): New inlines. + * gimple.c (gimple_build_debug_source_bind_stat): New function. + * gimple-pretty-print.c (dump_gimple_debug): Handle + GIMPLE_DEBUG_SOURCE_BIND. + * sese.c (rename_uses): Handle gimple_debug_source_bind_p. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. + * tree-parloops.c (eliminate_local_variables, + separate_decls_in_region): Likewise. + (separate_decls_in_region_debug): Renamed from + separate_decls_in_region_debug_bind. Handle + gimple_debug_source_bind_p. + * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New + prototypes. + (DECL_HAS_DEBUG_ARGS_P): Define. + (struct tree_function_decl): Add has_debug_args_flag field. + * tree.c (debug_args_for_decl): New variable. + (decl_debug_args_lookup, decl_debug_args_insert): New functions. + * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts. + (rewrite_debug_stmt_uses): New function. + (rewrite_stmt): Use it to rewrite debug stmt uses. + * rtl.def (DEBUG_PARAMETER_REF): New. + * rtl.h (DEBUG_PARAMETER_REF_DECL): Define. + * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle + DEBUG_PARAMETER_REF. + * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise. + * print-rtl.c (print_rtx): Likewise. + * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of + SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind + debug stmts in the first bb. + * tree-inline.c (remap_ssa_name): If remapping default def + of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in + a source bind debug stmt. + (remap_gimple_stmt): Handle gimple_debug_source_bind_p. + (maybe_move_debug_stmts_to_successors): Likewise. + (copy_debug_stmt): Likewise. Avoid shadowing a variable. + (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy + debug args vector from old_decl to new_decl. + * ipa-prop.c (ipa_modify_call_arguments): For optimized away + or modified parameters, add debug bind stmts before call + setting DEBUG_EXPR_DECL which is remembered in debug args vector. + * cfgexpand.c (expand_call_stmt): Call expand_debug_expr + on DECL_DEBUG_EXPRs from debug args vector. + (expand_debug_source_expr): New function. + (expand_debug_locations): Use it for source bind insns. + (expand_gimple_basic_block): Handle gimple_debug_source_bind_p. + * var-tracking.c (prepare_call_arguments): Add debug args + to call_arguments if any. + * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr, + output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr, + compare_loc_operands): Handle DW_OP_GNU_parameter_ref. + (get_ref_die_offset, parameter_ref_descriptor): New functions. + (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF. + (gen_subprogram_die): Handle parameters identified by + DEBUG_PARAMETER_REF. + +2011-06-22 Nathan Sidwell + + * doc/invoke.texi (ARM Options): Document -mtls-dialect option. + * doc/install.texi (Configuration): Document --with-tls. + * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ. + (arm_call_tls_get_addr): Clean up. Assert not tls descriptor. + (arm_tls_descseq_addr): New. + (legitimize_tls_address): Add tlsdesc support. + (arm_cannot_copy_insn_p): Check for tlscall. + (arm_emit_tls_decoration): Likewise. + * config/arm/arm.h (TARGET_GNU2_TLS): New. + (OPTION_DEFAULT_SPECS): Add with-tls support. + * config/arm/arm.md (R1_REGNUM): Define. + (tlscall): New. + * config/arm/arm.opt (tls_type): New enumeration type and values. + (mtls-dialect): New switch. + * config/arm/arm-opts.h (enum tls_type): New. + +2011-06-21 Nicola Pero + + * attribs.c (register_attribute): Added assert to check that all + attribute specs are registered with a name that is not empty and + does not start with '_'. + (decl_attributes): Avoid the lookup of the "naked" attribute spec + if the function has no attributes. + * tree.c (is_attribute_with_length_p): Removed. + (is_attribute_p): Removed. + (private_is_attribute_p): New. + (private_lookup_attribute): New. + (lookup_attribute): Removed. + (lookup_ident_attribute): New. + (remove_attribute): Require the first argument to be in the form + 'text', not '__text__'. Updated asserts. + (merge_attributes): Use lookup_ident_attributes instead of + lookup_attribute. + (merge_dllimport_decl_attributes): Use remove_attribute. + (attribute_list_contained): Likewise. + (attribute_list_equal): Immediately return 1 if the arguments are + identical pointers. + * tree.h (is_attribute_p): Made inline. Return a 'bool', not an + 'int'. Require the first argument to be in the form 'text', not + '__text__'. Require the second argument to be an identifier. + (lookup_attribute): Made inline. Require the first argument to be + in the form 'text', not '__text__'. + (private_is_attribute_p, private_lookup_attribute): New. + Updated comments. + +2011-06-21 Andrew MacLeod + + * builtins.c: Add sync_ or SYNC__ to builtin names. + * sync-builtins.def: Add sync_ or SYNC__ to builtin names. + * omp-low.c: Add sync_ or SYNC__ to builtin names. + +2011-06-21 Georg-Johann Lay + + PR target/33049 + * config/avr/avr.md (extzv): New expander. + (*extzv): New insn. + (*extzv.qihi1, *extzv.qihi2): New insn-and-split. + * config/avr/constraints.md (C04): New constraint. + * doc/md.texi (Machine Constraints): Document it. + +2011-06-21 Jakub Jelinek + + PR middle-end/49489 + * builtins.c (expand_builtin_unop): Call expand_unop with 0 as + unsignedp argument instead of 1 for clrsb_optab. + (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT + and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*. + (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*. + * optabs.c (widen_leading): Call widen_operand and expand_unop + with 0 as unsignedp argument instead of 1 for clrsb_optab. + (expand_unop): Subtract difference of mode sizes also for clrsb_optab. + +2011-06-21 Georg-Johann Lay + + * config/avr/avr.md (*jcindirect_jump): Fix build warning. + +2011-06-21 Bernd Schmidt + + * gensupport.c (add_define_attr): New static function. + (is_predicable): Allow multi-alternative lists for the "predicable" + attribute. + (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions. + (process_one_cond_exec): Call alter_attrs_for_insn. + * doc/md.texi (Defining Attributes): Mention some standard names. + (Conditional Execution): Update documentation for "predicable". + + * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl, + __builtin_clrsbll): Document. + * doc/rtl.texi (clrsb): New entry. + * optabs.c (widen_leading): Renamed from widen_clz. New argument + UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab. + (expand_unop): Handle clrsb_optab. + (init_optabs): Initialize it. + * optabs.h (enum optab_index): New entry OTI_clrsb. + (clrsb_optab): Define. + * genopinit.c (optabs): Add an entry for it. + * builtins.c (expand_builtin): Handle clrsb builtin functions. + * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL, + BUILT_IN_CLRSBLL): New. + * rtl.def (CLRSB): New code. + * dwarf2out.c (mem_loc_descriptor): Handle it. + * simplify-rtx.c (simplify_const_unary_operation): Likewise. + Use op_mode rather than mode when optimizing ffs, clz, ctz, parity + and popcount. + * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions. + * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare. + (__ctzDI2): Move declaration. + * config/bfin/bfin.md (clrsbsi2): New expander. + (signbitssi2): Use the CLRSB rtx. + (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx. + * config/bfin/bfin.c (bdesc_1arg): Changed accordingly. + +2011-06-21 Richard Guenther + + * ipa-inline-transform.c (inline_transform): Fix previous change. + +2011-06-21 Ira Rosen + + PR tree-optimization/49478 + * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR + with constant operand. + +2011-06-21 Richard Guenther + + * ipa-inline-transform.c (inline_transform): Fix typo. + +2011-06-21 Richard Guenther + + PR tree-optimization/49483 + * tree-vect-stmts.c (vectorizable_assignment): Also handle + VIEW_CONVERT_EXPR conversions. + +2011-06-21 Joseph Myers + + * config/avr/avr-mcus.def, config/avr/genopt.sh: New files. + * config/avr/avr-tables.opt: New file (generated). + * config.gcc (avr-*-*): Use avr/avr-tables.opt. + * config/avr/avr-devices.c (avr_mcu_types): Move contents to + avr-mcus.def. + * config/avr/avr.c (avr_help, TARGET_HELP): Remove. + (avr_option_override): Don't process -mmcu= argument here. Set + avr_current_device using avr_mcu_index. + (avr_file_start): Use avr_current_device->name instead of avr_mcu_name. + * config/avr/avr.opt (mmcu=): Use Enum. + * config/avr/t-avr (avr-devices.o): Update dependencies. + ($(srcdir)/config/avr/avr-tables.opt): New. + * target.def (help): Remove. + * doc/tm.texi.in (TARGET_HELP): Remove. + * doc/tm.texi: Regenerate. + * opts.c: Don't include target.h. + (common_handle_option): Don't call targetm.help. + * system.h (TARGET_HELP): Poison. + * Makefile.in (opts.o): Update dependencies. + +2011-06-21 Rainer Orth + + * config/usegld.h: New file. + * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove. + (CPP_SUBTARGET_SPEC): Remove -compat-bsd support. + (LIB_SPEC): Likewise. Search /lib. + (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support. + (RDYNAMIC_SPEC): Handle GNU ld. + [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC): + Define. + (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld. + (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define. + [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine. + (STACK_CHECK_STATIC_BUILTIN): Define. + * config/sol2.opt (compat-bsd): Remove. + * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef. + * config/sol2-bi.h: New file. + * config/sol2-gld.h: Remove. + * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS. + (NO_DBX_BNSYM_ENSYM): Remove. + (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove. + (STACK_CHECK_STATIC_BUILTIN): Remove. + Test USE_GLD instead of TARGET_GNU_LD. + * config/i386/sol2-10.h: Rename to ... + * config/i386/sol2-bi.h .. this. + (SUBTARGET_EXTRA_SPECS): Redefine. + (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove. + (MULTILIB_DEFAULTS): Remove. + (DEFAULT_ARCH32_P): Define. + (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove. + (ARCH64_SUBDIR): Define. + Test USE_GLD instead of TARGET_GNU_LD. + (I386_EMULATION): Rename to ... + (ARCH32_EMULATION): ... this. + (X86_64_EMULATION): Rename to ... + (ARCH64_EMULATION): ... this. + (TARGET_LD_EMULATION): Remove. + (LINK_ARCH_SPEC): Remove. + * config/i386/sol2-gas.h: Remove. + * config/i386/t-sol2-10: Rename to ... + * config/i386/t-sol2-64: ... this. + * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine. + (AS_SPARC64_FLAG): Define. + (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine. + (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine + depending on TARGET_CPU_DEFAULT. + (CPP_CPU_SPEC): Redefine. + (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P. + (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine. + (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine. + (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC, + ASM_ARCH_DEFAULT_SPEC): Redefine. + (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, + LINK_ARCH_DEFAULT_SPEC. + [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define. + [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine. + (ARCH64_SUBDIR): Define. + (LINK_ARCH64_SPEC): Redefine. + (CC1_SPEC): Redefine. + (OPTION_DEFAULT_SPECS): Redefine. + (MULTILIB_DEFAULTS): Define. + (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine. + [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine. + [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef. + (NO_DBX_BNSYM_ENSYM): Remove. + (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove. + (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS. + (TARGET_ASM_NAMED_SECTION): Likewise. + (STACK_CHECK_STATIC_BUILTIN): Remove. + * config/sparc/sol2-bi.h: Remove. + * config/sparc/sol2-gas-bi.h: Remove. + * config/sparc/sol2-gas.h: Remove. + * config/sparc/sol2-gld-bi.h: Remove. + * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move + common parts ... + (*-*-solaris2*): ... here. + +2011-06-21 Christian Bruel + + PR other/43564 + * ipa-inline.c (can_inline_edge_p): Check + !DECL_DISREGARD_INLINE_LIMITS. + +2011-06-21 Christian Bruel + + PR middle-end/49139 + * cgraphunit.c (process_function_and_variable_attributes): warn when + always_inline functions that are not inline. + * ipa-inline-transform.c (inline_transform): Always call + optimize_inline. + * tree-inline.c (tree_inlinable_function_p): Use error instead + of sorry. + (expand_call_inline): Likewise. + +2011-06-21 Jakub Jelinek + + * Makefile.in (dg_target_exps): Set. + (check_gcc_parallelize): Parallelize gcc testing into 10 jobs + instead of 7, try to divide it more evenly. + +2011-06-20 Changpeng Fang + + PR target/49089 + * config/i386/i386.c (avx256_split_unaligned_load): New definition. + (avx256_split_unaligned_store): New definition. + (ix86_option_override_internal): Enable avx256 unaligned load/store + splitting only when avx256_split_unaligned_load/store is set. + +2011-06-20 Bernd Schmidt + + * regrename.c (scan_rtx_reg): Handle the case where we write to an + open chain in a smaller mode without failing the entire block. + +2011-06-21 Alan Modra + + * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match + CONST high part large-toc address. + (rs6000_tls_referenced_p): Make static. + * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete. + +2011-06-20 Ramana Radhakrishnan + + PR target/49385 + * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast + one of the operands is a register. + +2011-06-20 Kai Tietz + + * fold-const.c (fold_binary_loc): Add missing folding for truth-not + operations in combination with binary and. + +2011-06-20 Bernd Schmidt + + * regrename.c (do_replace): Don't update notes. + +2011-06-20 Alan Modra + + * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part + of toc-relative address in CONST. + (rs6000_delegitimize_address): Recognize changed address. + (rs6000_legitimize_reload_address): Likewise. + (rs6000_emit_move): Don't force these constants to memory. + * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of + toc-relative address in CONST. + (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise. + (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise. + +2011-06-18 H.J. Lu + + * longlong.h (count_leading_zeros): Use long long builtin for x86-64. + (count_trailing_zeros): Likewise. + +2011-06-18 H.J. Lu + + PR other/49325 + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if + .init_array can be used with .ctors on targets. + * configure: Regenerated. + +2011-06-18 Eric Botcazou + + * tree-sra.c (type_internals_preclude_sra_p) : Return true + if the element type is volatile. + +2011-06-18 Jan Hubicka + + * lto-symtab.c (lto_varpool_replace_node): Remove code handling + extra name aliases. + (lto_symtab_resolve_can_prevail_p): Likewise. + (lto_symtab_merge_cgraph_nodes): Update alias_of pointers. + * cgraphbuild.c (record_reference): Remove extra body alias code. + (mark_load): Likewise. + (mark_store): Likewise. + * cgraph.h (varpool_node): Remove extra_name filed; + add alias_of and extraname_alias. + (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare. + (varpool_alias_aliased_node): New inline function. + (varpool_variable_node): New function. + * cgraphunit.c (handle_alias_pairs): Handle also variable aliases. + * ipa-ref.c (ipa_record_reference): Allow aliases on variables. + * lto-cgraph.c (lto_output_varpool_node): Update streaming. + (input_varpool_node): Likewise. + * lto-streamer-out.c (produce_symtab): Remove extra name aliases. + (varpool_externally_visible_p): Remove extra body alias code. + (function_and_variable_visibility): Likewise. + * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function. + (ipa_pta_execute): Use it. + * varpool.c (varpool_remove_node): Remove extra name alias code. + (varpool_mark_needed_node): Likewise. + (varpool_analyze_pending_decls): Analyze aliases. + (assemble_aliases): New functoin. + (varpool_assemble_decl): Use it. + (varpool_create_variable_alias): New function. + (varpool_extra_name_alias): Rewrite. + (varpool_for_node_and_aliases): New function. + +2011-06-18 Jakub Jelinek + + PR target/49411 + * config/i386/i386.c (ix86_expand_multi_arg_builtins): If + last_arg_constant and last argument doesn't match its predicate, + for xop_vpermil23 error out and for xop_rotl3 + if it is CONST_INT, mask it, otherwise expand using rotl3. + (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix + spelling of error message. + * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi, + vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use + const_0_to_255_operand instead of const_int_operand. + + Revert: + 2011-05-09 Uros Bizjak + + * config/i386/sse.md (blendbits): Remove mode attribute. + (_blend): Use const_int_operand + instead of const_0_to__operand for operand 3 predicate. + Check integer value of operand 3 in insn constraint. + +2011-06-17 Hans-Peter Nilsson + + PR rtl-optimization/48542 + * reload.c (find_equiv_reg): Stop looking when finding a + setjmp-type call. + * reload1.c (reload_as_needed): Invalidate all reload + registers when crossing a setjmp-type call. + +2011-06-16 Jeff Law + + * tree-ssa-threadupdate.c (struct redirection_data): New field + intermediate_edge. + (THREAD_TARGET2): Define. + (redirection_data_eq): Also check that the intermediate edge is equal. + (lookup_redirection_data): Drop useless argument. Extract the + outgoing_edge and intermediate edge from E. Callers updated. + (copy_phi_args, update_destination_phis): New functions. + (fix_duplicate_block_edges): Likewise. + (create_edge_and_update_destination_phis): Duplicate all the edges + hung off e->aux. Use copy_phi_args. + (create_duplicates): Use fix_duplicate_block_edges. + (fixup_template_block): Likewise. + (redirect_edges): If necessary, redirect the joiner block's incoming + edge to the duplicate of the joiner block. + (thread_block): Don't muck up loops when threading through a joiner + block. + (thread_through_loop_header): Handle threading through a joiner block. + (mark_threaded_blocks, register_jump_thread): Likewise. + * tree-flow.h (register_jump_thread): Add new argument. Callers + updated. + * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function. + (thread_across_edge): Handle threading through a joiner block. + +2011-06-16 Martin Jambor + + PR tree-optimization/49343 + * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to + calculate offset, provide 2nd operand for the new COMPONENT_REF. + +2011-06-16 Iain Sandoe + + * config/darwin-protos.h (machopic_select_rtx_section): Move to + inside RTX_CODE ifdef. + +2011-06-16 Tom de Vries + + PR target/45098 + * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): + Disallow NULL pointer for pointer arithmetic. + +2011-06-16 Ramana Radhakrishnan + + PR target/49398 + Revert. + 2011-06-10 Wei Guozhi + + PR target/45335 + * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da, + stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns. + (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and + related peephole2. + (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and + related peephole2. + * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype. + (arm_legitimate_ldrd_p): New prototype. + (arm_output_ldrd): New prototype. + * config/arm/arm.c (arm_check_ldrd_operands): New function. + (arm_legitimate_ldrd_p): New function. + (arm_output_ldrd): New function. + +2011-06-16 Joern Rennecke + + PR middle-end/46500 + * doc/tm.texi.in: Update Copyright date. + * doc/tm.texi: Regenerate. + * targhooks.c (default_setup_incoming_varargs): Replace + CUMULATIVE_ARGS* argument type with cumulative_args_t. + (default_pretend_outgoing_varargs_named): Likewise. + (hook_pass_by_reference_must_pass_in_stack): Likewise. + (hook_callee_copies_named): Likewise. + (default_function_arg_advance): Likewise. + (default_function_arg): Likewise. + (default_function_incoming_arg): Likewise. + (hook_bool_CUMULATIVE_ARGS_false): Likewise. + (hook_bool_CUMULATIVE_ARGS_true): Likewise. + (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise. + (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. + (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise. + * targhooks.h (default_setup_incoming_varargs): Likewise. + (default_pretend_outgoing_varargs_named): Likewise. + (hook_pass_by_reference_must_pass_in_stack): Likewise. + (hook_callee_copies_named): Likewise. + (default_function_arg_advance): Likewise. + (default_function_arg): Likewise. + (default_function_incoming_arg): Likewise. + (hook_bool_CUMULATIVE_ARGS_false): Likewise. + (hook_bool_CUMULATIVE_ARGS_true): Likewise. + (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise. + (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. + (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise. + * target.def (pass_by_reference): Likewise. + (setup_incoming_varargs, strict_argument_naming): Likewise. + (pretend_outgoing_varargs_named, callee_copies): Likewise. + (arg_partial_bytes, function_arg_advance, function_arg): Likewise. + (function_incoming_arg): Likewise. + * target.h: Don't include "tm.h" . + (cumulative_args_t): New typedef. + [GCC_TM_H] (get_cumulative_args): New static inline function. + [GCC_TM_H] (pack_cumulative_args): Likewise. + * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS* + argument type with cumulative_args_t. + (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise. + (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise. + * config/frv/frv.c (frv_setup_incoming_varargs): Likewise. + (frv_arg_partial_bytes, frv_function_arg): Likewise. + (frv_function_incoming_arg, frv_function_arg_advance): Likewise. + (frv_function_arg_1): Likewise. + * config/s390/s390.c (s390_pass_by_reference): Likewise. + (s390_function_arg_advance, s390_function_arg): Likewise. + * config/m32c/m32c.c (m32c_function_arg): Likewise. + (m32c_pass_by_reference, m32c_function_arg_advance): Likewise. + (m32c_strict_argument_naming): Likewise. + * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise. + (spu_function_arg_advance): Likewise. + (spu_setup_incoming_varargs): Likewise. Make static. + * config/spu/spu-protos.h (spu_setup_incoming_varargs): + Remove prototype. + * config/sparc/sparc.c (sparc_strict_argument_naming): Replace + CUMULATIVE_ARGS* argument type with cumulative_args_t. + (sparc_pass_by_reference, sparc_function_arg_advance): Likewise. + (sparc_function_arg, sparc_function_incoming_arg): Likewise. + (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise. + * config/mep/mep.c (mep_setup_incoming_varargs): Likewise. + (mep_pass_by_reference, mep_function_arg): Likewise. + (mep_function_arg_advance): Likewise. + * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. + (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise. + (m32r_function_arg, m32r_function_arg_advance): Likewise. + * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise. + * config/i386/i386.c (ix86_function_arg_advance): Likewise. + (ix86_function_arg, ix86_pass_by_reference): Likewise. + (ix86_setup_incoming_varargs): Likewise. + * config/sh/sh.c (sh_setup_incoming_varargs): Likewise. + (sh_strict_argument_naming): Likewise. + (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise. + (sh_callee_copies, sh_arg_partial_bytes): Likewise. + (sh_function_arg_advance, sh_function_arg): Likewise. + * config/pdp11/pdp11.c (pdp11_function_arg): Likewise. + (pdp11_function_arg_advance): Likewise. + * config/microblaze/microblaze.c (microblaze_function_arg_advance): + Likewise. + (microblaze_function_arg, function_arg_partial_bytes): Likewise. + * config/avr/avr.c (avr_function_arg): Likewise. + (avr_function_arg_advance): Likewise. + * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise. + (xtensa_function_arg, xtensa_function_incoming_arg): Likewise. + (xtensa_function_arg_1): Likewise. + * config/stormy16/stormy16.c (xstormy16_function_arg_advance): + Likewise. + (xstormy16_function_arg): Likewise. + * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise. + (fr30_arg_partial_bytes, fr30_function_arg): Likewise. + (fr30_function_arg_advance): Likewise. + * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. + (lm32_function_arg, lm32_function_arg_advance): Likewise. + * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise. + (moxie_function_arg, moxie_function_arg_advance): Likewise. + (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise. + * config/cris/cris.c (cris_setup_incoming_varargs): Likewise. + (cris_pass_by_reference, cris_arg_partial_bytes): Likewise. + (cris_function_arg, cris_function_incoming_arg): Likewise. + (cris_function_arg_advance, cris_function_arg_1): Likewise. + * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise. + (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise. + (iq2000_function_arg, iq2000_function_arg_advance): Likewise. + * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise. + (mn10300_function_arg, mn10300_function_arg_advance): Likewise. + (mn10300_arg_partial_bytes): Likewise. + * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise. + (ia64_arg_partial_bytes, ia64_function_arg): Likewise. + (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise. + (ia64_function_arg_1): Likewise. + * config/m68k/m68k.c (m68k_function_arg_advance): Likewise. + (m68k_function_arg): Likewise. + * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise. + (rs6000_function_arg, setup_incoming_varargs): Likewise. + (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise. + * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise. + (picochip_function_arg, picochip_incoming_function_arg): Likewise. + (picochip_arg_advance): Likewise. + * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise. + (mcore_arg_partial_bytes, mcore_function_arg): Likewise. + (mcore_function_arg_advance): Likewise. + * config/score/score.c (score_pass_by_reference): Likewise. + (score_function_arg_advance): Likewise. + (score_arg_partial_bytes): Likewise. Make static. + * config/score/score-protos.h (score_arg_partial_bytes): Don't declare. + * config/arm/arm.c (arm_arg_partial_bytes): Replace + CUMULATIVE_ARGS* argument type with cumulative_args_t. + (arm_function_arg, arm_function_arg_advance): Likewise. + (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise. + * config/pa/pa.c (pa_pass_by_reference): Likewise. + (pa_arg_partial_bytes, pa_function_arg_advance): Likewise. + (pa_function_arg): Likewise. + * config/mips/mips.c (mips_strict_argument_naming): Likewise. + (mips_function_arg, mips_function_arg_advance): Likewise. + (mips_arg_partial_bytes, mips_pass_by_reference): Likewise. + (mips_callee_copies, mips_setup_incoming_varargs): Likewise. + * config/vax/vax.c (vax_function_arg): Likewise. + (vax_function_arg_advance): Likewise. + * config/h8300/h8300.c (h8300_function_arg): Likewise. + (h8300_function_arg_advance): Likewise. + * config/v850/v850.c (v850_pass_by_reference): Likewise. + (v850_strict_argument_naming, v850_function_arg): Likewise. + (v850_arg_partial_bytes, v850_function_arg_advance): Likewise. + (v850_setup_incoming_varargs): Likewise. + * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise. + (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise. + (mmix_function_arg, mmix_pass_by_reference): Likewise. + (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type + with const void *. + * config/bfin/bfin.c (setup_incoming_varargs): Replace + CUMULATIVE_ARGS* argument type with cumulative_args_t. + (bfin_function_arg_advance, bfin_function_arg): Likewise. + (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise. + * calls.c (emit_call_1): Change type of args_so_far to + cumulative_args_t. Changed all callers. + (initialize_argument_information): Likewise. + (expand_call, emit_library_call_value_1): Use pack_cumulative_args. + * dse.c (get_call_args): Likewise. + * expr.c (block_move_libcall_safe_for_call_parm): Likewise. + * function.c (pass_by_reference, reference_callee_copied): Likewise. + (struct assign_parm_data_all): Rename args_so_far to args_so_far_v. + New member args_so_far_v. Changed all users. + * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args. + * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise. + * config/mips/mips.c (mips_output_args_xfer): Likewise. + * config/s390/s390.c (s390_call_saved_register_used): Likewise. + * config/sh/sh.c (sh_output_mi_thunk): Likewise. + * config/microblaze/microblaze.c (microblaze_expand_prologue): + Likewise. + * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed + m32r_pass_by_reference. + +2011-06-16 Ira Rosen + + * tree-vectorizer.h (vect_recog_func_ptr): Change the first + argument to be a VEC of statements. + * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the + assert that pattern statements have to have their vector type set. + * tree-vect-patterns.c (vect_recog_widen_sum_pattern): + Change the first argument to be a VEC of statements. Update + documentation. + (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise. + (vect_handle_widen_mult_by_const): New function. + (vect_recog_widen_mult_pattern): Change the first argument to be a + VEC of statements. Update documentation. Check that the constant is + INTEGER_CST. Support multiplication by a constant that fits an + intermediate type - call vect_handle_widen_mult_by_const. + (vect_pattern_recog_1): Update vect_recog_func_ptr and its + call. Handle additional pattern statements if necessary. + +2011-06-16 Nick Clifton + + PR target/49427 + * config.gcc: Set cpu_type to v850 for any V850 architecture. + (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file, + md_file, extra_modes, out_file and extra_options are these are all + deduced from cpu_type. + +2011-06-16 Georg-Johann Lay + + * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift + truncation mask to 63. + +2011-06-16 Georg-Johann Lay + + PR target/49313 + PR target/29524 + * longlong.h: Add AVR support: + (count_leading_zeros): New macro. + (count_trailing_zeros): New macro. + (COUNT_LEADING_ZEROS_0): New macro. + * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2, + _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2, + _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2, + _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3. + (LIB2FUNCS_EXCLUDE): Add _clz. + * config/avr/libgcc.S (XCALL): Move up in file. + (XJMP): New C Macro. + (DEFUN): New asm macro. + (ENDF): New asm macro. + (__ffssi2): New function. + (__ffshi2): New function. + (__loop_ffsqi2): New function. + (__ctzsi2): New function. + (__ctzhi2): New function. + (__clzdi2): New function. + (__clzsi2): New function. + (__clzhi2): New function. + (__paritydi2): New function. + (__paritysi2): New function. + (__parityhi2): New function. + (__parityqi2): New function. + (__popcounthi2): New function. + (__popcountsi2): New function. + (__popcountdi2): New function. + (__popcountqi2): New function. + (__bswapsi2): New function. + (__bswapdi2): New function. + (__ashldi3): New function. + (__ashrdi3): New function. + (__lshrdi3): New function. + Fix suspicous lines. + +2011-06-16 Richard Guenther + + * gimple.c (canonicalize_cond_expr_cond): (bool)x is not + the same as x != 0. + * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 + to (bool) X & 1. + * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow + equality compares against zero for the lower bit. + +2011-06-16 Jakub Jelinek + + PR tree-optimization/49419 + * tree-vrp.c (execute_vrp): Call init_range_assertions + before estimate_numbers_of_iterations, call + free_number_of_iterations_estimates before calling + remove_range_assertions. + +2011-06-16 Revital Eres + + * modulo-sched.c (struct ps_insn): Remove row_rest_count field. + (struct partial_schedule): Add rows_length field. + (verify_partial_schedule): Check rows_length. + (ps_insert_empty_row): Handle rows_length. + (create_partial_schedule): Likewise. + (free_partial_schedule): Likewise. + (reset_partial_schedule): Likewise. + (create_ps_insn): Remove rest_count argument. + (remove_node_from_ps): Update rows_length. + (add_node_to_ps): Update rows_length and call create_ps_insn + without passing row_rest_count. + (rotate_partial_schedule): Update rows_length. + +2011-06-16 Revital Eres + + * ddg.c (add_intra_loop_mem_dep): New function. + (build_intra_loop_deps): Call it. + +2011-06-13 Jeff Law + + * df-problems.c (df_lr_local_compute): Manually CSE + PIC_OFFSET_TABLE_REGNUM. + * df-scan.c (df_get_regular_block_artificial_uses): Likewise. + (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise. + +2011-06-13 Jan Hubicka + + * cgraphunit.c (handle_alias_pairs): New function. + (cgraph_finalize_compilation_unit): Use it. + * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names + as externally visible. + +2011-06-15 Richard Guenther + + * expr.c (expand_expr_real_2): Reduce all integral types to + bitfield precision. + (expand_expr_real_1): Likewise. + +2011-06-15 Martin Jambor + + PR tree-optimization/48613 + * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if + ipa_node_params_vector is NULL. + +2011-06-15 Jakub Jelinek + + PR debug/49382 + * dwarf2out.c (dw_loc_list_node): Add force field. + (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming + location in the list, even if it is modified before first real insn. + (output_loc_list): Emit empty ranges with force flag set. + (dw_loc_list): If first range of a PARM_DECL is empty, set force flag. + +2011-06-15 Alexander Monakov + + PR target/49349 + * sel-sched.c (find_place_for_bookkeeping): Add new parameter + (fence_to_rewind). Use it to notice when bookkeeping will be placed + above a fence. Update comments. + (generate_bookkeeping_insn): Rewind fence when bookkeeping code is + placed just above it. Do not allow NULL place_to_insert. + +2011-06-15 Ira Rosen + + * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove. + (slpeel_tree_peel_loop_to_edge): Don't call + remove_dead_stmts_from_loop. + * tree-vect-loop.c (vect_determine_vectorization_factor): Don't + remove irrelevant pattern statements. For irrelevant statements + check if it is the last statement of a detected pattern, use + corresponding pattern statement instead. + (destroy_loop_vec_info): No need to remove pattern statements, + only free stmt_vec_info. + (vect_transform_loop): For irrelevant statements check if it is + the last statement of a detected pattern, use corresponding + pattern statement instead. + * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert + pattern statements. Set basic block for the new statement. + (vect_pattern_recog): Update documentation. + * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan + operands of pattern statements. + (vectorizable_call): Fix printing. In case of a pattern statement + use the lhs of the original statement when creating a dummy + statement to replace the original call. + (vect_analyze_stmt): For irrelevant statements check if it is + the last statement of a detected pattern, use corresponding + pattern statement instead. + * tree-vect-slp.c (vect_schedule_slp_instance): For pattern + statements use gsi of the original statement. + +2011-06-14 Joseph Myers + + * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to + common/common-target-def.h. + * target.def (default_target_flags, handle_option, + supports_split_stack, optimization_table, init_struct, + except_unwind_info, unwind_tables_default, have_named_sections): + Move to common/common-target.def. + * target.h (enum opt_levels, struct default_options): Move to + common/common-target.h. + * targhooks.c (default_except_unwind_info, + dwarf2_except_unwind_info, sjlj_except_unwind_info, + default_target_handle_option, empty_optimization_table): Move to + common/common-targhooks.c. + * targhooks.h (default_except_unwind_info, + dwarf2_except_unwind_info, sjlj_except_unwind_info, + default_target_handle_option, empty_optimization_table): Move to + common/common-targhooks.h. + * common/common-target-def.h: Include common/common-targhooks.h. + (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION + defined. + * common/common-target.def (handle_option, option_init_struct, + option_optimization_table, default_target_flags, + except_unwind_info, supports_split_stack, unwind_tables_default, + have_named_sections): Move from target.def. + (HOOK_PREFIX): Undefine at end of file. + * common/common-target.h: Include input.h. + (enum opt_levels, struct default_options): Move from target.h. + * common/common-targhooks.c, common/common-targhooks.h: New. + * config.gcc (target_has_targetm_common): Default to yes. + (moxie*): Set target_has_targetm_common=no. + (hppa*-*-*): Don't set target_has_targetm_common=yes. + * doc/tm.texi: Regenerate. + * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H). + (C_TARGET_DEF_H): Add common/common-targhooks.h. + (GCC_OBJS): Remove vec.o. + (OBJS): Remove hooks.o and vec.o. + (OBJS-libcommon-target): Add vec.o, hooks.o and + common/common-targhooks.o. + (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o, + tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o, + expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o, + cfglayout.o, $(out_object_file), $(common_out_object_file)): + Update dependencies. + (common/common-targhooks.o): New. + * common/config/default-common.c: Include tm.h. Add FIXME comment. + * common/config/pa/pa-common.c: Include more headers. Take + copyright dates from pa.c. + (pa_option_optimization_table, pa_handle_option, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS, + TARGET_HANDLE_OPTION): Move from pa.c. + * common/config/alpha/alpha-common.c, + common/config/arm/arm-common.c, common/config/avr/avr-common.c, + common/config/bfin/bfin-common.c, + common/config/cris/cris-common.c, + common/config/fr30/fr30-common.c, common/config/frv/frv-common.c, + common/config/h8300/h8300-common.c, + common/config/i386/i386-common.c, + common/config/ia64/ia64-common.c, + common/config/iq2000/iq2000-common.c, + common/config/lm32/lm32-common.c, + common/config/m32c/m32c-common.c, + common/config/m32r/m32r-common.c, + common/config/m68k/m68k-common.c, + common/config/mcore/mcore-common.c, + common/config/mep/mep-common.c, + common/config/microblaze/microblaze-common.c, + common/config/mips/mips-common.c, + common/config/mmix/mmix-common.c, + common/config/mn10300/mn10300-common.c, + common/config/pdp11/pdp11-common.c, + common/config/picochip/picochip-common.c, + common/config/rs6000/rs6000-common.c, + common/config/rx/rx-common.c, common/config/s390/s390-common.c, + common/config/score/score-common.c, common/config/sh/sh-common.c, + common/config/sparc/sparc-common.c, + common/config/spu/spu-common.c, common/config/v850/v850-common.c, + common/config/vax/vax-common.c, + common/config/xstormy16/xstormy16-common.c, + common/config/xtensa/xtensa-common.c: New. + * config/alpha/alpha.c: Include common/common-target.h. + (alpha_option_optimization_table, alpha_handle_option, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c. + * config/arm/arm-protos.h (arm_except_unwind_info): Declare. + * config/arm/arm.c (arm_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to + arm-common.c. + * config/avr/avr.c (avr_option_optimization_table, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move + to avr-common.c. + * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h. + (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION, + TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c. + * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c. + * config/cris/cris.c (cris_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to + cris-common.c. + * config/fr30/fr30.c (fr30_option_optimization_table, + TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move + to fr30-common.c. + * config/frv/frv.c (frv_option_optimization_table, + MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS, + TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c. + * config/h8300/h8300.c (h8300_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c. + * config/i386/i386-protos.h (ix86_handle_option): Declare. + * config/i386/i386.c: Include common/common-target.h. + (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET, + OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET, + OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET, + OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET, + OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET, + OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET, + OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET, + OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET, + OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET, + OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET, + OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET, + OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET, + OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET, + OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET, + OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET, + OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET, + OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET, + OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET, + OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET, + OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET, + OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET, + OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET, + OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET, + OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET, + OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET, + OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET, + OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET, + OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET, + OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option, + ix86_option_optimization_table, ix86_option_init_struct, + ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS, + TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to + i386-common.c. + * config/i386/t-i386 (i386.o): Update dependencies. + * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare. + * config/ia64/ia64.c (ia64_option_optimization_table, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + ia64_handle_option): Move to ia64-common.c. + * config/iq2000/iq2000.c (iq2000_option_optimization_table, + TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c. + * config/lm32/lm32.c (lm32_option_optimization_table, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move + to lm32-common.c. + * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to + m32c-common.c. + * config/m32r/m32r.c (m32r_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO, + m32r_handle_option): Move to m32r-common.c. + (m32r_memory_move_cost): Remove comment referring to + TARGET_HANDLE_OPTION. + * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option): + Move to m68k-common.c. + * config/mcore/mcore.c (mcore_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c. + * config/mep/mep.c (mep_option_optimization_table, + mep_handle_option, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS): + Move to mep-common.c. + * config/microblaze/microblaze.c + (microblaze_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c. + * config/mips/mips.c (mips_handle_option, + mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to + mips-common.c. + * config/mmix/mmix.c (mmix_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE): + Move to mmix-common.c. + * config/mn10300/mn10300.c (mn10300_option_optimization_table, + mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c. + * config/pa/pa.c: Include common/common-target.h. + (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + pa_handle_option): Move to pa-common.c. + (pa_option_override): Use targetm_common.except_unwind_info. + (pa_asm_output_mi_thunk, pa_function_section): Use + targetm_common.have_named_sections. + * config/pdp11/pdp11.c (pdp11_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT, + pdp11_handle_option, pdp11_option_init_struct): Move to + pdp11-common.c. + * config/picochip/picochip.c (picochip_option_optimization_table, + TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c. + * config/rs6000/rs6000.c: Include common/common-target.h. + (rs6000_option_optimization_table, TARGET_HANDLE_OPTION, + TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct, + rs6000_handle_option): Move to rs6000-common.c. + * config/rs6000/t-rs6000 (rs6000.o): Update dependencies. + * config/rx/rx.c (rx_handle_option, rx_option_optimization_table, + TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c. + * config/s390/s390.c (processor_flags_table, + s390_option_optimization_table, s390_option_init_struct, + s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS, + TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, + TARGET_OPTION_INIT_STRUCT): Move to s390-common.c. + * config/s390/s390.h (processor_flags_table): Declare. + * config/score/score.c (score_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS, + score_handle_option): Move to score-common.c. + * config/sh/sh.c (sh_option_optimization_table, + TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, + sh_handle_option, sh_option_init_struct): Move to sh-common.c. + * config/sparc/sparc.c: Include common/common-target.h. + (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS, + TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c. + * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS, + TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO, + spu_option_init_struct): Move to spu-common.c. + * config/stormy16/stormy16.c (xstorym16_option_optimization_table, + TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c. + * config/v850/v850.c (small_memory_physical_max, + v850_handle_memory_optionn v850_handle_option, + v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS, + TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to + v850-common.c. + * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c. + * config/xtensa/xtensa.c (xtensa_option_optimization_table, + TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE): + Move to xtensa-common.c. + * cfglayout.c: Include common/common-target.h. + (fixup_reorder_chain): Use targetm_common.have_named_sections. + * cfgrtl.c: Include common/common-target.h. + (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use + targetm_common.have_named_sections. + * dbxout.c: Include common/common-target.h. + (dbxout_function_end): Use targetm_common.have_named_sections. + * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use + targetm_common.except_unwind_info. + * dwarf2out.c: Include common/common-target.h. + (dwarf2out_do_frame, dwarf2out_do_cfi_asm, + dwarf2out_begin_prologue, dwarf2out_frame_init, + dwarf2out_frame_finish, dwarf2out_assembly_start): Use + targetm_common.except_unwind_info. + * except.c: Include common/common-target.h. + (init_eh, finish_eh_generation, + output_one_function_exception_table): Use + targetm_common.except_unwind_info. + (switch_to_exception_section): Use targetm_common.have_named_sections. + * explow.c: Include common/common-target.h. + * expr.c: Include common/common-target.h. + (build_personality_function): Use targetm_common.except_unwind_info. + * function.c: Include common/common-target.h. + (expand_function_end): Use targetm_common.except_unwind_info. + * haifa-sched.c: Include common/common-target.h. + (sched_create_recovery_edges): Use targetm_common.have_named_sections. + * lto-opts.c: Include common/common-target.h instead of target.h. + (lto_reissue_options): Use targetm_common.handle_option. + * opts.c: Include common/common-target.h. + (target_handle_option): Use targetm_common.handle_option. + (init_options_struct): Update comment referring to + targetm.target_option.optimization. Use + targetm_common.default_target_flags, + targetm_common.unwind_tables_default and + targetm_common.option_init_struct. + (default_options_optimization): Use + targetm_common.option_optimization_table. + (finish_options): Use targetm_common.except_unwind_info, + targetm_common.unwind_tables_default, + targetm_common.have_named_sections and + targetm_common.supports_split_stack. + * toplev.c: Include common/common-target.h. + (process_options): Use targetm_common.have_named_sections. + * tree-tailcall.c: Include common/common-target.h. + (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info. + * tree.c: Include common/common-target.h. + (build_common_builtin_nodes): Use targetm_common.except_unwind_info. + * varasm.c: Include common/common-target.h. + (resolve_unique_section, hot_function_section, + default_function_section): Use targetm_common.have_named_sections. + +2011-06-14 Easwaran Raman + + PR rtl-optimization/44194 + * dse.c: Include tree-flow.h + (insn_info): Add new field non_frame_wild_read. + (group_info): Add new fields escaped_n and escaped_p. + (kill_on_calls): New variable. + (get_group_info): Initialize gi->escaped_n and gi->escaped_p. + (dse_step0): Initialize kill_on_calls. + (can_escape): New function. + (set_usage_bits): Add additional parameter; record information + about escaped locations. + (record_store): Pass EXPR corresponding to MEM to set_usage_bits. + (dse_step2_nospill): Set kill_on_calls based on + group->escaped_n and group->escaped_n. + (add_wild_read): Refactor into... + (reset_active_stores): ... New function, and + (free_read_records): ... New function. + (add_non_frame_wild_read): New function. + (scan_insn): Call add_non_frame_wild_read on non-const calls. + (scan_reads_nospill): Handle instructions with non_frame_wild_read. + (dse_step5_nospill): Call scan_reads_nospill for instructions + marked as non_frame_wild_read. + (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps. + +2011-06-14 Joseph Myers + + * common/common-target-def.h, common/common-target.def, + common/common-target.h, common/config/default-common.c, + common/config/pa/pa-common.c: New files. + * Makefile.in (common_out_file, common_out_object_file, + COMMON_TARGET_H, COMMON_TARGET_DEF_H): New. + (OBJS-libcommon-target): Include $(common_out_object_file). + (prefix.o): Update dependencies. + ($(common_out_object_file), common/common-target-hooks-def.h, + s-common-target-hooks-def-h): New. + (s-tm-texi): Also check timestamp on common-target.def. + (build/genhooks.o): Update dependencies. + * config.gcc (common_out_file, target_has_targetm_common): Define. + * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with + TARGET_ALWAYS_STRIP_DOTDOT. + * configure.ac (common_out_object_file): Define. + (common_out_file, common_out_object_file): Substitute. + (common): Create directory. + * configure: Regenerate. + * doc/tm.texi.in (targetm_common): Document. + (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry. + * doc/tm.texi: Regenerate. + * genhooks.c (hook_array): Also include common/common-target.def. + * prefix.c (tm.h): Don't include. + (common/common-target.h): Include. + (ALWAYS_STRIP_DOTDOT): Don't define. + (update_path): Use targetm_common.always_strip_dotdot instead of + ALWAYS_STRIP_DOTDOT. + * system.h (ALWAYS_STRIP_DOTDOT): Poison. + +2011-06-14 David Li + + * passes.c (execute_function_todo): Remove TODO_dump_func. + (execute_one_pass): Remove TODO_dump_func. + (execute_function_dump): New function. + * tree-vrp.c: Remove TODO_dump_func. + * regrename.c: Remove TODO_dump_func. + * fwprop.c: Remove TODO_dump_func. + * tree-into-ssa.c: Remove TODO_dump_func. + * tree-complex.c: Remove TODO_dump_func. + * tracer.c: Remove TODO_dump_func. + * tree-loop-distribution.c: Remove TODO_dump_func. + * postreload-gcse.c: Remove TODO_dump_func. + * postreload.c: Remove TODO_dump_func. + * tree-ssa-loop-ch.c: Remove TODO_dump_func. + * tree-tailcall.c: Remove TODO_dump_func. + * ipa-cp.c: Remove TODO_dump_func. + * final.c: Remove TODO_dump_func. + * tree-emutls.c: Remove TODO_dump_func. + * omp-low.c: Remove TODO_dump_func. + * tree-ssa-dse.c: Remove TODO_dump_func. + * tree-ssa-uncprop.c: Remove TODO_dump_func. + * auto-inc-dec.c: Remove TODO_dump_func. + * reorg.c: Remove TODO_dump_func. + * tree-ssa-copyrename.c: Remove TODO_dump_func. + * tree-ssa-ccp.c: Remove TODO_dump_func. + * compare-elim.c: Remove TODO_dump_func. + * mode-switching.c: Remove TODO_dump_func. + * modulo-sched.c: Remove TODO_dump_func. + * tree-call-cdce.c: Remove TODO_dump_func. + * cse.c: Remove TODO_dump_func. + * web.c: Remove TODO_dump_func. + * tree-stdarg.c: Remove TODO_dump_func. + * lto-streamer-out.c: Remove TODO_dump_func. + * tree-ssa-math-opts.c: Remove TODO_dump_func. + * tree-ssa-dom.c: Remove TODO_dump_func. + * tree-nrv.c: Remove TODO_dump_func. + * loop-init.c: Remove TODO_dump_func. + * gimple-low.c: Remove TODO_dump_func. + * ipa-inline.c: Remove TODO_dump_func. + * tree-ssa-sink.c: Remove TODO_dump_func. + * jump.c: Remove TODO_dump_func. + * ifcvt.c: Remove TODO_dump_func. + * tree-ssa-loop.c: Remove TODO_dump_func. + * recog.c: Remove TODO_dump_func. + * dse.c: Remove TODO_dump_func. + * tree-ssa-ifcombine.c: Remove TODO_dump_func. + * matrix-reorg.c: Remove TODO_dump_func. + * tree-eh.c: Remove TODO_dump_func. + * regmove.c: Remove TODO_dump_func. + * function.c: Remove TODO_dump_func. + * tree-vectorizer.c: Remove TODO_dump_func. + * ipa-split.c: Remove TODO_dump_func. + * gcse.c: Remove TODO_dump_func. + * tree-if-conv.c: Remove TODO_dump_func. + * init-regs.c: Remove TODO_dump_func. + * tree-ssa-phiopt.c: Remove TODO_dump_func. + * implicit-zee.c: Remove TODO_dump_func. + * lower-subreg.c: Remove TODO_dump_func. + * bt-load.c: Remove TODO_dump_func. + * tree-dfa.c: Remove TODO_dump_func. + * except.c: Remove TODO_dump_func. + * emit-rtl.c: Remove TODO_dump_func. + * store-motion.c: Remove TODO_dump_func. + * cfgexpand.c: Remove TODO_dump_func. + * tree-cfgcleanup.c: Remove TODO_dump_func. + * cfgcleanup.c: Remove TODO_dump_func. + * tree-ssa-pre.c: Remove TODO_dump_func. + * tree-sra.c: Remove TODO_dump_func. + * tree-mudflap.c: Remove TODO_dump_func. + * tree-ssa-copy.c: Remove TODO_dump_func. + * cfglayout.c: Remove TODO_dump_func. + * tree-ssa-forwprop.c: Remove TODO_dump_func. + * tree-ssa-dce.c: Remove TODO_dump_func. + * ira.c: Remove TODO_dump_func. + * tree-ssa.c: Remove TODO_dump_func. + * integrate.c: Remove TODO_dump_func. + * tree-optimize.c: Remove TODO_dump_func. + * tree-ssa-phiprop.c: Remove TODO_dump_func. + * tree-object-size.c: Remove TODO_dump_func. + * combine.c: Remove TODO_dump_func. + * bb-reorder.c: Remove TODO_dump_func. + * cprop.c: Remove TODO_dump_func. + * var-tracking.c: Remove TODO_dump_func. + * tree-profile.c: Remove TODO_dump_func. + * tree-vect-generic.c: Remove TODO_dump_func. + * reg-stack.c: Remove TODO_dump_func. + * sched-rgn.c: Remove TODO_dump_func. + * tree-ssa-structalias.c: Remove TODO_dump_func. + * tree-switch-conversion.c: Remove TODO_dump_func. + * tree-cfg.c: Remove TODO_dump_func. + * tree-ssa-reassoc.c: Remove TODO_dump_func. + * combine-stack-adj.c: Remove TODO_dump_func. + * dce.c: Remove TODO_dump_func. + * tree-ssanames.c: Remove TODO_dump_func. + * regcprop.c: Remove TODO_dump_func. + +2011-06-14 H.J. Lu + + PR middle-end/47364 + * builtins.c (expand_builtin_strlen): Expand strlen to Pmode + and properly handle result not in Pmode. + +2011-06-14 Robert Millan + + * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'. + * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with + `config/linux.h'. + + * config/i386/kfreebsd-gnu64.h: New file. + * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h' + with `i386/kfreebsd-gnu64.h'. + + * config/i386/linux64.h (GNU_USER_LINK_EMULATION32) + (GNU_USER_LINK_EMULATION64): New macros. + * config/i386/gnu-user64.h (LINK_SPEC): Rely on + `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead + of hardcoding `elf_i386' and `elf_x86_64'. + +2011-06-14 Nick Clifton + + PR target/49403 + * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter. + + PR target/49402 + * config.gcc(v850*-*-*): Avoid duplication of v850.opt. + +2011-06-14 Jakub Jelinek + + PR fortran/49103 + * tree.h (DECL_NONSHAREABLE): Define. + (struct tree_decl_common): Change decl_common_unused to + decl_nonshareable_flag. + * cfgexpand.c (expand_used_vars_for_block, clear_tree_used): + Ignore vars with DECL_NONSHAREABLE bit set. + * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE + on stores to automatic aggregate vars. + + PR rtl-optimization/49390 + Revert: + 2010-06-29 Bernd Schmidt + + * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare + MEM_ALIAS_SET. + +2011-06-14 Zdenek Dvorak + Tom de Vries + + PR target/45098 + * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate): + Document changed semantics. + (max_stmt_executions, max_stmt_executions_int): Declare. + * tree-data-ref.c (estimated_loop_iterations) + (estimated_loop_iterations_int): Move functions... + * tree-ssa-loop-niter.c (estimated_loop_iterations) + (estimated_loop_iterations_int): here. + (record_estimate): Change nb_iterations_upper_bound and + nb_iterations_estimate semantics. + (max_stmt_executions, max_stmt_executions_int): New function. + * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ... + (max_stmt_executions_tree): this. + (analyze_miv_subscript): Use max_stmt_executions_tree instead of + estimated_loop_iterations_tree. + tree-ssa-loop-ivopts.c (avg_loop_niter): Use + max_stmt_executions_int instead of estimated_loop_iterations_int. + * predict.c (predict_loops): Idem. + * tree-parloops.c (parallelize_loops): Idem. + * tree-data-ref.c (analyze_siv_subscript_cst_affine) + (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine) + (init_omega_for_ddr_1): Idem. + * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse) + (loop_prefetch_arrays): Idem + * graphite-sese-to-poly.c (build_loop_iteration_domains): Use + max_stmt_executions instead of estimated_loop_iterations. + * tree-data-ref.c (estimated_loop_iterations_tree): Idem. + * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations + instead of nb_iterations_upper_bound. + +2011-06-13 Jan Hubicka + + * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type. + +2011-06-14 Richard Henderson + + PR debug/48459 + * dwarf2out.c (frame_pointer_fb_offset_valid): New. + (based_loc_descr): Assert it's true. + (compute_frame_pointer_to_fb_displacement): Set it, rather than + aborting immediately. + +2011-06-14 Sanjin Liu + Mingfeng Wu + + * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores. + +2011-06-13 Jan Hubicka + + * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit. + +2011-06-13 Jan Hubicka + + * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY + similarly to DECL_COMDAT. + * cgraphunit.c (cgraph_analyze_function): Likewise. + * ipa.c (function_and_variable_visibility): Likewise. + +2011-06-13 Jan Hubicka + + * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output + BINFO_VIRTUALS when streaming for ltrans unit. + +2011-06-13 David Edelsohn + + * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic. + (movdi_internal64): Same. + +2011-06-13 Edmar Wienskoski + + PR target/44618 + * config/rs6000/rs6000.md (save_gpregs_): Replaced pattern with + a set of similar patterns, where the MATCH_OPERAND for the function + argument is replaced with individual references to hardware registers. + (save_fpregs_): Ditto + (restore_gpregs_): Ditto + (return_and_restore_gpregs_): Ditto + (return_and_restore_fpregs_): Ditto + (return_and_restore_fpregs_aix_): Ditto + +2011-06-13 Jan Hubicka + + * ipa-utils.c (postorder_stack): New structure. + (ipa_reverse_postorder): Handle aliases. + +2011-06-13 Jan Hubicka + + * ipa-inline.c (reset_edge_caches): Walk aliases. + (update_caller_keys): Do not test inlinability of aliases. + * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias. + (do_estimate_growth): Fix typo. + +2011-06-13 Jan Hubicka + + * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from... + (can_remove_node_now_p): ... here; handle same comdat groups. + (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO. + (inline_call): Update use of can_remove_node_now_p. + +2011-06-13 Kaushik Phatak + + * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added + condition to disallow non-identical memory locations. + (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give + preference to bit manipulation instructions. + +2011-06-13 Jan Hubicka + + * cgraph.c (cgraph_for_node_thunks_and_aliases, + cgraph_for_node_and_aliases): Fix thinko in recursive walking. + (nonremovable_p): New function. + (cgraph_can_remove_if_no_direct_calls_p): New function. + (used_from_object_file_p): New functoin. + (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for + references from aliases. + * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline. + * ipa-inline.c (check_caller_edge): New function. + (want_inline_function_called_once_p): Use it; accept aliases called + once, too. + * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME. + +2011-06-13 Ramana Radhakrishnan + + PR target/48454 + * config/arm/neon.md (vec_pack_trunc): Set the lengths + correctly for the case with Quad vectors. + +2011-06-13 Jakub Jelinek + Ira Rosen + + PR tree-optimization/49352 + * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at + all, make sure loop_use_stmt after the loop is a def stmt of a used + SSA_NAME that is the only one defined inside of the loop. Don't + check for COND_EXPR and GIMPLE_BINARY_RHS. + (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if + check_reduction is true. + +2011-06-11 Jan Hubicka + + PR middle-end/49373 + * ipa.c (cgraph_externally_visible_p): Check resolution info. + +2011-06-11 Jan Hubicka + + PR middle-end/48836 + * ipa-inline-transform.c: Include tree-pass.h + (inline_transform): Set TODO_update_ssa_only_virtuals. + * Makefile.in (ipa-inline-transform.o): Add tree-pass.h. + +2011-06-11 Jan Hubicka + + PR middle-end/49378 + * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out + aliases and thunks. + +2011-06-12 Ira Rosen + + * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent): + Take number of iterations to peel into account for equally frequent + misalignment values. + +2011-06-11 Jan Hubicka + + * lto-streamer-out.c (produce_symtab): Stream out the newly + represented aliases. + +2011-06-11 Jan Hubicka + + * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting + varying args. + (ipa_update_after_lto_read): Likewise. + (ipa_write_node_info): Do not sream call_with_var_arguments. + (ipa_read_node_info): Likewise. + +2011-06-11 Jan Hubicka + + * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto. + +2011-06-11 Jan Hubicka + + * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code. + (lto_symtab_resolve_can_prevail_p): Likewise. + (lto_symtab_merge_cgraph_nodes): Update merging of aliases. + * cgraph.c (same_body_aliases_done): New global var. + (cgraph_same_body_alias_1): Rename to ... + (cgraph_create_function_alias): ... this one; reorg to new + representation. + (cgraph_same_body_alias): Use cgraph_create_function_alias; + record references when asked to. + (cgraph_add_thunk): Fix formating. + (cgraph_get_node): Kill same body alias code. + (cgraph_node_for_asm): Likewise. + (cgraph_remove_same_body_alias): Remove. + (cgraph_remove_node): Kill same body alias code. + (cgraph_mark_address_taken_node): Mark also the aliased function + as having address taken. + (dump_cgraph_node): Dump same body aliases. + (cgraph_for_node_thunks_and_aliases): Update for new alias + representation. + (cgraph_for_node_and_aliases): Likewise. + * cgraph.h (same_body): Kll pointer. + (same_body_alias): Update comment. + (same_body_aliases_done): Declare. + (cgraph_remove_same_body_alias): Remove declaration. + (cgraph_create_function_alias): Declare. + (cgraph_process_same_body_aliases): Declare. + (cgraph_function_with_gimple_body_p): Check for alias. + (cgraph_can_remove_if_no_direct_calls_p): Look for aliases. + (cgraph_alias_aliased_node): New function. + (cgraph_function_node): Update for new aliases. + (cgraph_function_or_thunk_node): Likewise. + * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases. + (inline_call): Remove dead aliases. + * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler + name hack for same body aliases. + (clone_of_p): Look through aliases. + (verify_cgraph_node): Verify aliases. + (cgraph_analyze_function): Analyze aliases; fixup C++ bugs. + (cgraph_process_same_body_aliases): New function. + (process_function_and_variable_attributes): Disable weakref warning on + alias. + (cgraph_analyze_functions): Handle aliases. + (cgraph_mark_functions_to_output): Handle aliases same way as thunks. + (assemble_thunks): Rename to ... + (assemble_thunks_and_aliases): ... this one; handle aliases, too. + (cgraph_expand_function): Remove alias output code. + (cgraph_output_in_order): Skip aliases. + (cgraph_preserve_function_body_p): Aliases don't need preserving. + * ipa-ref.c (ipa_ref_use_name): Add alias reference. + (ipa_record_reference): Do not assert on alias references. + (ipa_ref_has_aliases_p): New function. + * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS. + (ipa_ref_has_aliases_p): Declare. + * lto-cgraph.c (lto_output_node): Handle aliases. + (input_node): Likewise. + * lto-streamer-out.c (lto_output): Skip aliases. + (produce_symtab): Kill same_body_alias code. + * ipa-utils.c (ipa_reverse_postorder): Add FIXME. + (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p. + * ipa-inline.c (update_caller_keys): Walk aliases. + (inline_small_functions): Fix thinko in previous patch. + * ipa.c (cgraph_externally_visible_p): Do not walk aliases. + (function_and_variable_visibility): Do not walk same body aliases. + * tree-ssa-structalias.c (associate_varinfo_to_alias): New function. + (ipa_pta_execute): Use it. + +2011-06-11 Uros Bizjak + + * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register. + (*vec_dupv2df): Rename from vec_dupv2df. + (vec_dupv2df): New expander. + +2011-06-11 Uros Bizjak + + * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P. + +2011-06-11 Uros Bizjak + + * config/i386/i386.md: Use default value in "isa" attribute. + * config/i386/sse.md: Ditto. + * config/i386/mmx.md: Ditto. + +2011-06-10 Wei Guozhi + + PR target/45335 + * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da, + stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns. + (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and + related peephole2. + (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and + related peephole2. + * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype. + (arm_legitimate_ldrd_p): New prototype. + (arm_output_ldrd): New prototype. + * config/arm/arm.c (arm_check_ldrd_operands): New function. + (arm_legitimate_ldrd_p): New function. + (arm_output_ldrd): New function. + +2011-06-10 David Li + + * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump. + * passes.c (passr_eq): New function. + (create_pass_tab): New function. + (pass_traverse): New function. + (dump_one_pass): New function. + (dump_pass_list): New function. + (dump_passes): New function. + +2011-06-10 Jan Hubicka + + * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after + setting the nothrow flag. + * ipa-reference.c (propagate): Skip aliases. + * ipa-pure-const.c (propagate_pure_const): Skip aliases. + (propagate_nothrow): Skip aliases; do not update cgraph. + (local_pure_const): Do not update cgraph. + * tree-profile.c (tree_profiling): Do fixup_cfg. + +2011-06-10 Jan Hubicka + + * ipa.c (cgraph_non_local_node_p_1): Break out from ...; + (cgraph_local_node_p): ... here; handle aliases. + (has_addr_references_p): Break out from ...; + (cgraph_remove_unreachable_nodes) ... here. + +2011-06-10 Jan Hubicka + + * opts.c (default_options): Enlist OPT_finline_functions_called_once. + * common.opt (flag_inline_functions_called_once): Do not + initialize to 1. + +2011-06-10 Jan Hubicka + + * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable. + (ipcp_initialize_node_lattices): Do not deal with aliases; + Do not try to propagate through thunks. + (ipcp_change_tops_to_bottom): Do not deal with aliases. + +2011-06-10 Jan Hubicka + + * ipa-prop.c (ipa_write_node_info): Stream jump functions + for indirect calls. + (ipa_read_node_info): Likewise. + +2011-06-10 Bill Schmidt + + PR lto/49302 + * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup. + (build_and_insert_call): Likewise. + (build_and_insert_ref): New. + (gimple_expand_builtin_pow): Minor cleanup. + (gimple_expand_builtin_cabs): New. + (execute_cse_sincos): Add case for BUILT_IN_CABS. + +2011-06-10 Jan Hubicka + + * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable. + (ipcp_cloning_candidate_p): Aliases are not clonning candidates. + (ipcp_initialize_node_lattices): We don't propagate through an aliases. + (ipcp_propagate_stage): Skip aliases when propagating. + (ipcp_need_redirect_p): Skip aliases. + (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and + collect_callers_of_node. + * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures + for aliases. + (ipa_compute_jump_functions): Look through aliases. + +2011-06-10 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it. + +2011-06-10 Hans-Peter Nilsson + + * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES. + Adjust comments. + * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison. + +2011-06-10 Jan Hubicka + + * ipa-cp.c (ipcp_process_devirtualization_opportunities): + Update call of gimple_get_virt_method_for_binfo. + * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove + refuse_thunks parameter. + (gimple_fold_call): Update. + * ipa-prop.c (try_make_edge_direct_virtual_call): Update. + +2011-06-10 Jan Hubicka + + * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ... + (not_all_callers_have_enough_arguments_p): ... this one; turn into + worker for cgraph_for_node_and_aliases. + (convert_callers_for_node): Break out from ... + (convert_callers): ... here. + (modify_function): Use collect_callers_of_node. + (ipa_early_sra): Use cgraph_for_node_and_aliases. + +2011-06-10 Richard Guenther + + PR tree-optimization/49361 + * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0) + when not already in gimple form. + +2011-06-10 Richard Guenther + + PR bootstrap/49344 + * tree-ssa-math-opts.c (convert_mult_to_fma): Use + FOR_EACH_PHI_OR_STMT_USE. + +2011-06-10 Jan Hubicka + + * ipa-inline-transform.c (can_remove_node_now_p): Move out of... + (clone_inlined_nodes): ... here. + (inline_call): Use cgraph_function_or_thunk_node; redirect edge + to real destination prior inlining. + * ipa-inline.c (caller_growth_limits, can_inline_edge_p, + can_early_inline_edge_p, want_early_inline_function_p, + want_early_inline_function_p, want_inline_small_function_p, + want_inline_self_recursive_call_p, want_inline_function_called_once_p, + edge_badness, update_all_callee_keys, lookup_recursive_calls, + add_new_edges_to_heap, inline_small_functions, flatten_function, + inline_always_inline_functions, early_inline_small_functions): Use + cgraph_function_or_thunk_node. + * ipa-inline-analysis.c (evaluate_conditions_for_edge, + dump_inline_edge_summary, estimate_function_body_sizes): Likewise. + (do_estimate_edge_growth_1): Break out from ... + (do_estimate_growth) ... here; walk aliases. + (inline_generate_summary): Skip aliases. + +2011-06-10 Richard Guenther + + * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts + forward when combining, visit inserted stmts when a stmt was changed. + +2011-06-10 Paolo Carlini + + * tree.h (error_operand_p): Add. + * dbxout.c (dbxout_type_fields): Use the latter. + * c-decl.c (add_stmt): Likewise. + * gimplify.c (omp_add_variable, omp_notice_variable, + gimplify_scan_omp_clauses): Likewise. + +2011-06-10 Georg-Johann Lay + + * config/avr/avr.c (avr_function_arg_advance): Fix thinko about + when a value is actually passed in regs. + +2011-06-10 Eric Botcazou + Laurent Rougé + + * doc/invoke.texi (SPARC options): Add -mflat. + * config/sparc/sparc.opt: Likewise. + * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter. + (sparc_flat_expand_prologue): Declare. + (sparc_flat_expand_epilogue): Likewise. + * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float. + (CPP_ENDIAN_SPEC): Replace with... + (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float. + (CPP_SPEC): Adjust to above change. + (EXTRA_SPECS): Likewise. + (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling. + (INCOMING_REGNO): Likewise. + (OUTGOING_REGNO): Likewise. + (LOCAL_REGNO): Likewise. + (SETUP_FRAME_ADDRESSES): Likewise. + (FIXED_REGISTERS): Set 0 for %fp. + (CALL_USED_REGISTERS): Likewise. + (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf. + (EXIT_IGNORE_STACK): Define to 1 unconditionally. + (RETURN_ADDR_REGNUM): Define. + (RETURN_ADDR_RTX): Use it. + (INCOMING_RETURN_ADDR_REGNUM): Define. + (INCOMING_RETURN_ADDR_RTX): Use it. + (DWARF_FRAME_RETURN_COLUMN): Likewise. + (EH_RETURN_REGNUM): Define. + (EH_RETURN_STACKADJ_RTX): Use it. + (EH_RETURN_HANDLER_RTX): Delete. + (EPILOGUE_USES): Use them and add TARGET_FLAT handling. + * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs): + Delete. + (struct machine_function): Add frame_size, apparent_frame_size, + frame_base_reg, frame_base_offset, n_global_fp_regs and + save_local_in_regs_p fields. + (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg, + sparc_frame_base_offset, sparc_n_global_fp_regs, + sparc_save_local_in_regs_p): New macros. + (sparc_option_override): Error out if -fcall-saved-REG is specified + for Out registers. + (eligible_for_restore_insn): Fix formatting. + (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling. + (eligible_for_sibcall_delay): Likewise. + (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter. + (sparc_legitimate_address_p): Adjust to above change. + (save_global_or_fp_reg_p): New predicate. + (return_addr_reg_needed_p): Likewise. + (save_local_or_in_reg_p): Likewise. + (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling. + (SORR_SAVE, SORR_RESTORE): Delete. + (sorr_pred_t): New typedef. + (sorr_act_t): New enum. + (save_or_restore_regs): Rename to... + (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH + parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P, + ACTION_TRUE and ACTION_FALSE parameters. Implement more general + mechanism. Add CFI information for double-word saves in 32-bit mode. + (emit_adjust_base_to_offset): New function extracted from... + (emit_save_or_restore_regs): ...this. Rename the rest to... + (emit_save_or_restore_regs_global_fp_regs): ...this. + (emit_save_or_restore_regs_local_in_regs): New function. + (gen_create_flat_frame_[123]): New functions. + (sparc_expand_prologue): Use SIZE local variable. Adjust. + (sparc_flat_expand_prologue): New function. + (sparc_asm_function_prologue): Add TARGET_FLAT handling. + (sparc_expand_epilogue): Use SIZE local variable. Adjust. + (sparc_flat_expand_epilogue): New function. + (sparc_can_use_return_insn_p): Add TARGET_FLAT handling. + (output_return): Likewise. + (output_sibcall): Likewise. + (sparc_output_mi_thunk): Likewise. + (sparc_frame_pointer_required): Likewise. + (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf + function optimization. + * config/sparc/sparc.md (flat): New attribute. + (prologue): Add TARGET_FLAT handling. + (save_register_window): Disable if TARGET_FLAT. + (create_flat_frame_[123]): New patterns. + (epilogue): Add TARGET_FLAT handling. + (sibcall_epilogue): Likewise. + (eh_return): New expander. + (eh_return_internal): New insn and splitter. + (return_internal): Add TARGET_FLAT handling. + (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM. + (save_stack_nonlocal): Use RETURN_ADDR_REGNUM. + (nonlocal_goto): Add TARGET_FLAT handling. + * config/sparc/t-elf: Add -mflat multilib. + * config/sparc/t-leon: Likewise. + +2011-06-10 Jan Hubicka + + * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node. + * ipa-pure-const.c (analyze_function): Aliases don't need analysis. + (self_recursive_p): Use cgraph_function_node. + (propagate_pure_const): Likewise. + (propagate_nothrow): Likewise. + * ipa-reference.c (ipa_reference_get_not_read_global): Use + cgraph_function_node. + (propagate_bits): Likewise. + (propagate): Likewise. + +2011-06-10 Ramana Radhakrishnan + Richard Earnshaw + + * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used. + * config/arm/vfp.md (*arm_movdi_vfp): Delete. + (*thumb2_movdi_vfp): Delete. + (*arm_movdi_vfp_cortexa8): Delete. + (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp. + (*movdi_vfp_cortexa8): Likewise. + +2011-06-10 Richard Guenther + + * stor-layout.c (initialize_sizetypes): Give names to all + sizetype kinds. + +2011-06-10 Ira Rosen + + PR tree-optimization/49318 + * tree-vect-loop.c (vect_determine_vectorization_factor): Remove + irrelevant pattern statements. + +2011-06-10 Hans-Peter Nilsson + + * system.h (SETJMP_VIA_SAVE_AREA): Poison. + + PR bootstrap/49354 + * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast + to last assignment. + +2011-06-09 Jan Hubicka + + * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline; + do not recompute reachable flag. + (cgraph_finalize_function, cgraph_analyze_functions): Set + redefined_extern_inline here. + +2011-06-09 Jan Hubicka + + * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ... + (cgraph_only_called_directly_p): ... this one; bring offline. + (resolution_used_from_other_file_p, cgraph_used_from_object_file_p, + varpool_used_from_object_file_p): Drop names from the declaratoin. + (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases, + collect_callers_of_node): New. + (cgraph_function_node, cgraph_function_or_thunk_node): New functions. + (cgraph_edge_recursive_p): Use cgraph_function_node. + * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias. + (cgraph_node_cannot_be_local_p_1): Break out from ... + (cgraph_node_can_be_local_p): ... here; walk aliases. + (cgraph_for_node_thunks_and_aliases): New function. + (cgraph_for_node_and_aliases): New function. + (cgraph_make_node_local_1): Break out from ... + (cgraph_make_node_local) ... here; use + cgraph_for_node_thunks_and_aliases. + (cgraph_set_nothrow_flag_1): Break out from ... + (cgraph_set_nothrow_flag) ... here; + use cgraph_for_node_thunks_and_aliases. + (cgraph_set_const_flag_1): Break out from ... + (cgraph_set_const_flag) ... here; + use cgraph_for_node_thunks_and_aliases. + (cgraph_set_pure_flag_1): Break out from ... + (cgraph_set_pure_flag) ... here; + use cgraph_for_node_thunks_and_aliases. + (cgraph_propagate_frequency_1): Break out from ... + (cgraph_propagate_frequency) ... here; use + cgraph_for_node_thunks_and_aliases. + (cgraph_used_from_object_file_p): Do not care about aliases. + (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p): + New functions. + (collect_callers_of_node_1, collect_callers_of_node): New functions. + +2011-06-10 Hans-Peter Nilsson + + PR rtl-optimization/49154 + * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM. + (enum reg_class): Add SRP_REGS and MOF_SRP_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS) + (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit. + * config/cris/cris.h (cris_register_move_cost): Remove + !TARGET_V32 code. Tweak comments. + +2011-06-09 Jan Hubicka + + * cgraphbuild.c (record_eh_tables): Mark personality function as having + address taken. + +2011-06-10 Hans-Peter Nilsson + + PR rtl-optimization/49154 + * ira-costs.c (setup_regno_cost_classes_by_mode): If there already + is a matching slot in the hashtable, assign it to classes_ptr. + + PR rtl-optimization/49154 + * doc/tm.texi.in (Register Classes): Document rule for the narrowest + register classes. + * doc/tm.texi: Regenerate. + +2011-06-09 Kaz Kojima + + PR target/49307 + * config/sh/sh.md (UNSPEC_CHKADD): New. + (chk_guard_add): New define_insn_and_split. + (symGOT_load): Use chk_guard_add instead of blockage. + +2011-06-09 Kai Tietz + + * libgcc2.c (L_trampoline): Include windows.h for mingw targets. + +2011-06-09 Eric Botcazou + + * config/sparc/sparc.md (return_internal): Adjust 'length' attribute. + +2011-06-09 Wei Guozhi + + PR target/46975 + * config/arm/arm.md (*addsi3_carryin_compare0_): New pattern. + (peephole2 for conditional move): Generate 16 bit instructions. + +2011-06-09 Uros Bizjak + + * config/i386/i386.md (*movdi_internal_rex64): Merge + alternatives 6 and 8. + +2011-06-09 David Li + + * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump. + * passes.c (passr_eq): New function. + (create_pass_tab): New function. + (pass_traverse): New function. + (dump_one_pass): New function. + (dump_pass_list): New function. + (dump_passes): New function. + +2011-06-09 David Li + + * tree-complex.c (tree_lower_complex): Gate cleanup. + * tree-stdarg.c (check_all_va_list_escapes): Ditto. + (execute_optimize_stdarg): Ditto. + * tree-eh.c (execute_lower_eh_dispatch): Ditto. + (execute_cleanup_eh_1): Ditto. + (execute_cleanup_eh): Ditto. + * gcse.c (gate_rtl_pre): Ditto. + (execute_rtl_pre): Ditto. + * except.c (finish_eh_generation): Ditto. + (convert_to_eh_region_ranges): Ditto. + * cprop.c (one_cprop_pass): Ditto. + +2011-06-09 Bernd Schmidt + + PR target/48673 + * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag + in all basic blocks. + +2011-06-09 Rainer Orth + + * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/darwin.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove. + (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + [IN_LIBGCC2]: Don't include . + * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove. + * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/sol2.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove. + (HAVE_ENABLE_EXECUTE_STACK): Define. + * config/alpha/alpha.c (alpha_trampoline_init): Test + HAVE_ENABLE_EXECUTE_STACK. + * config/i386/i386.c (ix86_trampoline_init): Likewise. + * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise. + (sparc64_initialize_trampoline): Likewise. + * libgcc2.c [L_enable_execute_stack]: Remove. + * system.h (ENABLE_EXECUTE_STACK): Poison. + * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove. + * doc/tm.texi: Regenerate. + * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc. + +2011-06-09 Jakub Jelinek + + PR middle-end/49308 + * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn + variable. After resetting and rescanning insn continue with previous + statement. + +2011-06-09 Rainer Orth + + * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*. + (gcc_cv_ld_hidden): Likewise. + * configure: Regenerate. + * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO. + (ix86_stack_protect_fail): Mark unused. + (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine. + * config/rs6000/rs6000.c (rs6000_assemble_visibility) + [TARGET_MACHO]: Don't define. + (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise. + (TARGET_STACK_PROTECT_FAIL): Likewise. + (rs6000_stack_protect_fail): Mark unused. + * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if + USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly. + +2011-06-08 Andi Kleen + + * varasm.c (get_section): Print location of other conflict + for section conflicts. + +2011-06-08 Andi Kleen + + * config/i386/driver-i386.c (host_detect_local_cpu): + Add model 0x2d Intel CPU. + +2011-06-08 Andi Kleen + + * reginfo.c (global_regs_decl): Add. + (globalize_reg): Add decl parameter. Compute location. Pass location + to warnings and add inform. Store decl in global_regs_decl. + * rtl.h (globalize_reg): Update prototype. + * varasm.c (make_decl_rtl): Pass decl to globalize_reg(). + +2011-06-09 Mingjie Xing + + * treestruct.def (TS_TYPE_DECL): Fix the printable name typo. + +2011-06-08 Kaz Kojima + + PR target/49305 + * config/sh/predicates.md (general_movsrc_operand): Check + mode for memory with indexed address for QI and HImode. + (general_movdst_operand): Likewise. + +2011-06-09 Nicola Pero + + * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated. + +2011-06-08 Alexandre Oliva + + * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts. + (num_ssa_operands): Likewise. + (op_iter_init_phiuse): Forward-declare. + (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE. + +2011-06-08 Nick Clifton + + * doc/invoke.texi (ARM Options): Update description of + -mthumb-interwork. + +2011-06-08 H.J. Lu + + * config/i386/driver-i386.c (host_detect_local_cpu): Support + unknown Intel family 0x6 CPUs. + +2011-06-08 Martin Jambor + + * tree-sra.c (mark_rw_status): Removed. + (analyze_access_subtree): New parameter parent instead of + mark_read and mark_write, propagate from that. + +2011-06-08 Julian Brown + + * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI + for double-precision helper functions in hard-float mode if only + single-precision arithmetic is supported in hardware. + +2011-06-08 Alexander Monakov + + PR rtl-optimization/49303 + * sel-sched.c (move_op): Use correct type for 'res'. Verify that + code_motion_path_driver returned 0 or 1. + (sel_region_finish): Clear h_d_i_d. + +2011-06-08 Kaz Kojima + + * config/sh/sh.c (prepare_move_operands): Set pic register + appropriately for global and local dynamic tls models even + if flag_pic is unset. + +2011-06-07 Jason Merrill + + * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set. + +2011-06-07 Xinliang David Li + * passes.c (enable_disable_pass): Handle assembler name. + (is_pass_explicitly_enabled_or_disabled): Ditto. + +2011-06-07 Rainer Orth + + PR tree-optimization/48497 + * doc/sourcebuild.texi (Directives, dg-additional-options): Document. + +2011-06-07 Bill Schmidt + + PR tree-optimization/46728 + * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME + to use gimple_val_nonnegative_real_p. + * gimple-fold.c (gimple_val_nonnegative_real_p): New function. + * gimple.h (gimple_val_nonnegative_real_p): New declaration. + +2011-06-07 H.J. Lu + + * config/i386/i386.md (*movsf_internal): Optimize AVX check. + +2011-06-07 Sergey Grechanik + + * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for + constant vectors. + +2011-06-07 Richard Guenther + + * stor-layout.c (initialize_sizetypes): Initialize all + sizetypes based on target definitions. + (set_sizetype): Remove. + * tree.c (build_common_tree_nodes): Do not call set_sizetype. + * tree.h (set_sizetype): Remove. + +2011-06-07 Nick Clifton + + * config.gcc: Unify V850 architecture options and add support for + newer V850 architectures. + * config/v850/t-v850e: Delete. + +2011-06-07 Richard Guenther + + * tree.c (build_common_tree_nodes): Also initialize size_type_node. + Call set_sizetype from here. + +2011-06-07 Andrew Stubbs + + * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns. + (*maddhisi4tb, *maddhisi4tt): New define_insns. + +2011-06-07 Bernd Schmidt + Andrew Stubbs + + * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening + multiplies. + * doc/md.texi (Canonicalization of Instructions): Document widening + multiply canonicalization. + +2011-06-07 Jakub Jelinek + + PR gcov-profile/49299 + * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge. + +2011-06-07 Ira Rosen + + * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be + a pointer. + * tree-vect-patterns.c (vect_recog_widen_sum_pattern, + vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern, + vect_recog_pow_pattern): Likewise. + (vect_pattern_recog_1): Remove declaration. + (widened_name_p): Remove declaration. Add new argument to specify + whether to check that both types are either signed or unsigned. + (vect_recog_widen_mult_pattern): Update documentation. Handle + unsigned patterns and multiplication by constants. + (vect_pattern_recog_1): Update vect_recog_func references. Use + statement information from the statement returned from pattern + detection functions. + (vect_pattern_recog): Update vect_recog_func reference. + * tree-vect-stmts.c (vectorizable_type_promotion): For widening + multiplication by a constant use the type of the other operand. + +2011-06-06 Richard Sandiford + + PR rtl-optimization/49145 + * combine.c (make_compound_operation): Handle ZERO_EXTEND specially. + +2011-06-06 Jakub Jelinek + + PR debug/49262 + * dwarf2out.c (native_encode_initializer): Decrement count in each + iteration. + + PR debug/49294 + * dwarf2out.c (mem_loc_descriptor) : Give up for + non-MODE_INT modes. + + PR c++/49264 + * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs + if stmt folded into nothing. + * tree-inline.c (fold_marked_statements): If a builtin at the end of + a bb folded into nothing, just update cgraph edges and move to next bb. + * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt + to be NULL. Don't compute count and frequency if new_call is NULL. + +2011-06-04 Diego Novillo + + * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H. + (cgraph.o): Likewise. + (cgraphunit.o): Likewise. + * cgraphunit.c: Include lto-streamer.h + (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init + if LTO is enabled. + * lto-streamer-in.c (unpack_value_fields): Call + streamer_hooks.unpack_value_fields if set. + (lto_materialize_tree): For unhandled nodes, first try to + call lto_streamer_hooks.alloc_tree, if it exists. + (lto_input_ts_decl_common_tree_pointers): Move reading of + DECL_INITIAL to lto_streamer_read_tree. + (lto_read_tree): Call lto_streamer_hooks.read_tree if set. + (lto_streamer_read_tree): New. + (lto_reader_init): Rename from lto_init_reader. + Move initialization code to lto/lto.c. + * lto-streamer-out.c (pack_value_fields): Call + streamer_hooks.pack_value_fields if set. + (lto_output_tree_ref): For tree nodes that are not normally indexable, + call streamer_hooks.indexable_with_decls_p before giving up. + (lto_output_ts_decl_common_tree_pointers): Move handling + for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree. + (lto_output_tree_header): Call streamer_hooks.is_streamable instead of + lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set. + (lto_write_tree): Call lto_streamer_hooks.write_tree if set. + (lto_streamer_write_tree): New. + (lto_output): Call lto_streamer_init directly. + (lto_writer_init): Remove. + * lto-streamer.c (streamer_hooks): New. + (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes + instead of lto_preload_common_nodes. + (lto_is_streamable): Move from lto-streamer.h + (lto_streamer_hooks_init): New. + (streamer_hooks): New. + (streamer_hooks_init): New. + * lto-streamer.h (struct output_block): Forward declare. + (struct lto_input_block): Likewise. + (struct data_in): Likewise. + (struct bitpack_d): Likewise. + (struct streamer_hooks): Declare. + (streamer_hooks): Declare. + (lto_streamer_hooks_init): Declare. + (lto_streamer_write_tree): Declare. + (lto_streamer_read_tree): Declare. + (streamer_hooks_init): Declare. + (lto_is_streamable): Move to lto-streamer.c + +2011-06-06 Andreas Krebbel + + * longlong.h (smul_ppmm): The resulting register pair contains the + higher order word first. + +2011-06-06 Bill Schmidt + + PR tree-optimization/46728 + * builtins.c (powi_table): Remove. + (powi_lookup_cost): Remove. + (powi_cost): Remove. + (expand_powi_1): Remove. + (expand_powi): Remove. + (expand_builtin_pow_root): Remove. + (expand_builtin_pow): Remove. + (expand_builtin_powi): Eliminate handling of constant exponent. + (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW. + +2011-06-06 Alexandre Oliva + + * cprop.c (local_cprop_pass): Don't set changed for debug insns. + +2011-06-06 Alexandre Oliva + + * dce.c (reset_unmarked_insns_debug_uses): New. + (delete_unmarked_insns): Skip debug insns. + (prescan_insns_for_dce): Likewise. + (rest_of_handle_ud_dce): Reset debug uses of removed sets. + * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no + active reg can be found. + (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then. + (convert_regs_1): Use it. + +2011-06-06 Alexandre Oliva + + * tree-pretty-print.c (dump_function_header): Add flags. + Don't dump decl_uid with nouid. + * tree-pretty-print.h (dump_function_header): Adjust. + * final.c (rest_of_clean_state): Pass dump_flags on, with nouid. + * passes.c (pass_init_dump_file): Pass dump_flags on. + * tree-cfg.c (gimple_dump_cfg): Pass flags on. + +2011-06-06 Alexandre Oliva + + PR bootstrap/49270 + * ipa-inline-analysis.c (read_predicate): Initialize all clauses. + +2011-06-06 Mikael Pettersson + + PR tree-optimization/49243 + * calls.c (setjmp_call_p): Also check if fndecl has the + returns_twice attribute. + +2011-06-06 Rainer Orth + + * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if + -ffast-math etc. + +2011-06-06 Richard Henderson + Georg-Johann Lay + + PR target/42210 + * config/avr/predicates.md (const1_operand, const_0_to_7_operand): + New predicates. + * config/avr/avr.md ("insv"): New insn expander. + ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io", + "*insv.not.io", "*insv.reg"): New insns. + +2011-06-06 Hans-Peter Nilsson + + PR target/49285 + * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate + to nonimmediate_operand from memory_operand for the operand that is to + be forced to memory by the expander. Lose the constraints. + +2011-06-05 Eric Botcazou + + * config/sparc/sparc.c (output_return): Fix thinko in the output of an + EH return when delayed branches are disabled. + +2011-06-05 Uros Bizjak + + * config/i386/i386.md (*movdf_internal_rex64) : + Remove MODE_TI handling. Remove SSE1 handling in attribute "mode" + calculation. + (*movdf_internal_rex64) : Remove MODE_TI handling. + Simplify MODE_V1DF and MODE_V2SF handling. + (*movsf_internal): Remove x constraint from alternative 7 of operand 1. + Simplify MODE_SF handling. + +2011-06-04 Jan Hubicka + + PR tree-optimization/48893 + PR tree-optimization/49091 + PR tree-optimization/49179 + * ipa-inline-analysis.c (evaluate_conditions_for_known_args): + Bounds check. + +2011-06-04 Jan Hubicka + + PR lto/48954 + * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args + bitmaps. + +2011-06-04 Jonathan Wakely + + * doc/invoke.texi: Document -Wdelete-non-virtual-dtor. + +2011-06-04 Jakub Jelinek + + PR target/49281 + * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3]) + to be strictly smaller than 1 << shiftcount. + +2011-06-04 Jan Hubicka + + PR tree-optimize/48929 + * ipa-inline-analysis.c (remap_edge_predicates): Fix handling + of empty predicate. + +2011-06-04 Alexandre Oliva + + PR debug/48333 + * calls.c (emit_call_1): Prefer the __builtin declaration of + builtin functions. + +2011-06-03 Diego Novillo + + * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts. + (lto_input_tree_pointers): Likewise. + * lto-streamer-out.c (pack_value_fields): Likewise. + (lto_output_tree_pointers): Likewise. + * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE + and OPTIMIZATION_NODE. + +2011-06-03 Rainer Orth + + * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove. + * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove. + * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove. + * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove. + * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove. + * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove. + * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove. + * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove. + * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove. + * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove. + * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove. + * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove. + * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove. + * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove. + * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove. + * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha. + * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha. + * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha. + * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin. + * config/i386/linux-unwind.h: Move to ../libgcc/config/i386. + * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386. + * config/i386/w32-unwind.h: Move to ../libgcc/config/i386. + * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64. + * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64. + * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k. + * config/mips/linux-unwind.h: Move to ../libgcc/config/mips. + * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa. + * config/pa/linux-unwind.h: Move to ../libgcc/config/pa. + * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000. + * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000. + * config/s390/linux-unwind.h: Move to ../libgcc/config/s390. + * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390. + * config/sh/linux-unwind.h: Move to ../libgcc/config/sh. + * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc. + * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc. + * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa. + * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove. + * system.h (MD_UNWIND_SUPPORT): Poison. + * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove. + * doc/tm.texi: Regenerate. + * unwind-dw2.c: Include md-unwind-support.h instead of + MD_UNWIND_SUPPORT. + * config/ia64/unwind-ia64.c: Likewise. + * config/xtensa/unwind-dw2-xtensa.c: Likewise. + +2011-06-03 Jack Howarth + + * varpool.c (varpool_extra_name_alias): Return NULL, not false. + +2011-06-03 Richard Henderson + Rainer Orth + + * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__] + (sigill_hdlr): Correct insn, insn size. + (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps. + +2011-06-03 Rainer Orth + + * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6 + t-slibgcc-dummy. + * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S. + * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S. + * config/mips/t-iris: Remove. + * config/mips/t-irix6: New file. + * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips. + +2011-06-03 Rainer Orth + + * Makefile.in (LIB2ADDEHDEP): Remove. + * config/arm/t-bpabi (LIB2ADDEHDEP): Remove. + * config/arm/t-symbian (LIB2ADDEHDEP): Remove. + * config/picochip/t-picochip (LIB2ADDEHDEP): Remove. + * config/t-darwin (LIB2ADDEHDEP): Remove. + * config/t-freebsd (LIB2ADDEHDEP): Remove. + * config/t-linux (LIB2ADDEHDEP): Remove. + +2011-06-03 Diego Novillo + + * lto-streamer-in.c (get_resolution): Move to lto/lto.c. + (lto_register_var_decl_in_symtab): Likewise. + (lto_register_function_decl_in_symtab): Likewise. + (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration + logic to uniquify_nodes. + +2011-06-03 Rainer Orth + + * config/alpha/t-osf5: Remove. + * config/alpha/t-osf-pthread: Remove. + * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy. + * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file. + +2011-06-03 Julian Brown + + * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100) + (strongarm1110): Use strongarm tuning. + * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field. + * config/arm/arm.c (arm_strongarm_tune): New. + (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) + (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune) + (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field + setting, using previous defaults or 1 for Cortex-A5. + (arm_option_override): Set max_insns_skipped from current tuning. + +2011-06-03 Nathan Sidwell + + * doc/install.texi (Options specification): Document --with-specs. + +2011-06-02 Ramana Radhakrishnan + + * config/arm/neon.md (orndi3_neon): Actually split it. + +2011-06-02 Alexandre Oliva + + * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10. + * var-tracking.c (reverse_op): Limite recurse depth to 5. + +2011-06-02 Alexandre Oliva + + PR debug/47590 + * target.def (delay_sched2, delay_vartrack): New. + * doc/tm.texi.in: Update. + * doc/tm.texi: Rebuild. + * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2. + * var-tracking.c (gate_handle_var_tracking): Likewise. + * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop. + (bfin_flag_var_tracking): Drop. + (output_file_start): Don't save and override flag_var_tracking. + (bfin_option_override): Ditto flag_schedule_insns_after_reload. + (bfin_reorg): Test original variables. + (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. + * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop. + (ia64_flag_var_tracking): Drop. + (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. + (ia64_file_start): Don't save and override flag_var_tracking. + (ia64_override_options_after_change): Ditto + flag_schedule_insns_after_reload. + (ia64_reorg): Test original variables. + * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop. + (picochip_flag_var_tracking): Drop. + (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. + (picochip_option_override): Don't save and override + flag_schedule_insns_after_reload. + (picochip_asm_file_start): Ditto flag_var_tracking. + (picochip_reorg): Test original variables. + * config/spu/spu.c (spu_flag_var_tracking): Drop. + (TARGET_DELAY_VARTRACK): Define. + (spu_var_tracking): New. + (spu_machine_dependent_reorg): Call it. + (asm_file_start): Don't save and override flag_var_tracking. + +2011-06-02 Kaz Kojima + + PR target/49163 + * config/sh/predicates.md (general_movsrc_operand): Return 0 + for memory and memory subreg of which address is an invalid + indexed address for QI and HImode. + (general_movdst_operand): Likewise. + +2011-06-02 Eric Botcazou + + * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL + edges only, when there is a non-local label in the function. + * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise. + +2011-06-02 Uros Bizjak + + * config/i386/constraints.md (Y3): New register constraint. + * config/i386/sse.md (*vec_interleave_highv2df): Merge with + *sse3_interleave_highv2df and *sse2_interleave_highv2df. + (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and + *sse2_interleave_lowv2df. + +2011-06-02 Julian Brown + + * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning. + * config/arm/arm.c (arm_cortex_a5_branch_cost): New. + (arm_cortex_a5_tune): New. + +2011-06-02 Julian Brown + + * config/arm/arm-protos.h (tune_params): Add branch_cost hook. + * config/arm/arm.c (arm_default_branch_cost): New. + (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) + (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune) + (arm_fa726_tune): Set branch_cost field using + arm_default_branch_cost. + * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from + current_tune structure. + * dojump.c (tm_p.h): Include file. + +2011-06-02 Julian Brown + + * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2 + tuning. + (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4) + (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning. + * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool + field. + * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune) + (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune) + (arm_fa726te_tune): Add prefer_constant_pool setting. + (arm_v6t2_tune, arm_cortex_tune): New. + * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on + prefer_constant_pool setting. + +2011-06-02 Uros Bizjak + + * config/i386/i386.c (standard_sse_constant_p) : Simplify + switch statement. + * config/i386/i386.md (*movdf_internal_rex64) : Ditto. + (*movdf_internal) : Ditto. + + * config/i386/constraints.md (Y4): New register constraint. + * config/i386/sse.md (vec_set_0): Merge with + *vec_set_0_sse4_1 and *vec_set_0_sse2. + (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and + *vec_extractv2di_1_sse. + (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1 + and *vec_concatv2di_rex64_sse. + +2011-06-02 Stuart Henderson + + PR target/48807 + * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value + of cgraph_local_info for null before attempting to use it. + +2011-06-02 Eric Botcazou + + * function.h (struct stack_usage): Remove dynamic_alloc_count field. + (current_function_dynamic_alloc_count): Delete. + * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp. + (expand_builtin_nonlocal_goto): Remove obsolete comment. + (expand_builtin_update_setjmp_buf): Remove dead code. + * cse.c (cse_find_path): Do not follow a single abnormal incoming edge. + * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA + support. + * function.c (instantiate_virtual_regs): Likewise. + * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false + for a block with a single abnormal incoming edge. + * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define. + (SETJMP_VIA_SAVE_AREA): Delete. + * config/sparc/sparc-protos.h (load_got_register): Declare. + * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. + (load_got_register): Make global. + (sparc_frame_pointer_required): Add 'static'. + (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required. + (sparc_builtin_setjmp_frame_value): New function. + * config/sparc/sparc.md (UNSPECV_SETJMP): Remove. + (save_stack_nonlocal): New expander. + (restore_stack_nonlocal): Likewise. + (nonlocal_goto): Remove modes, adjust predicates and reimplement. + (nonlocal_goto_internal): New insn. + (goto_handler_and_restore): Delete. + (builtin_setjmp_setup): Likewise. + (do_builtin_setjmp_setup): Likewise. + (setjmp): Likewise. + (builtin_setjmp_receiver): New expander. + +2011-06-01 David Li + + PR middle-end/49261 + * tree-pretty-print.c (dump_function_header): Format cleanup. + +2011-06-01 Kaz Kojima + + PR target/49238 + * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if + needed when original operands are used for msw_skip comparison. + +2011-06-01 Jakub Jelinek + + PR debug/49250 + * var-tracking.c (add_uses, add_stores): Don't call + cselib_subst_to_values on ENTRY_VALUE. + +2011-06-01 Diego Novillo + + * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call + output_record_start with LTO_null instead of output_zero. + (lto_output_ts_binfo_tree_pointers): Likewise. + (lto_output_tree): Likewise. + (output_eh_try_list): Likewise. + (output_eh_region): Likewise. + (output_eh_lp): Likewise. + (output_eh_regions): Likewise. + (output_bb): Likewise. + (output_function): Likewise. + (output_unreferenced_globals): Likewise. + * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES + instead of NUM_TREE_CODES. + (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES. + (lto_output_int_in_range): Change << to >> when shifting VAL. + +2011-06-01 Diego Novillo + + * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers): + Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes. + +2011-06-01 Richard Sandiford + + PR target/45074 + * optabs.h (valid_multiword_target_p): Declare. + * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when + doing multi-word operations. + * optabs.c (expand_binop): Likewise. + (expand_doubleword_bswap): Likewise. + (expand_absneg_bit): Likewise. + (expand_unop): Likewise. + (expand_copysign_bit): Likewise. + (multiword_target_p): New function. + +2011-06-01 Richard Sandiford + + PR rtl-optimization/48830 + PR rtl-optimization/48808 + PR rtl-optimization/48792 + * reload.c (push_reload): Check contains_reg_of_mode. + * reload1.c (strip_paradoxical_subreg): New function. + (gen_reload_chain_without_interm_reg_p): Use it to handle + paradoxical subregs. + (emit_output_reload_insns, gen_reload): Likewise. + +2011-06-01 David Li + + * predict.c : Change pass name + * ipa.c: Ditto. + * dce.c: Ditto. + * tree-profile.c: Ditto. + * except.c: Ditto. + +2011-06-01 David Li + + * tree-pretty-print.c (dump_function_header): New function. + * final.c (rest_of_clean_state): Use header dumper. + * tree-cfg.c (gimple_dump_cfg): Use header dumper. + * passes.c (pass_init_dump_file): Use header dumper. + +2011-06-01 Jakub Jelinek + + * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor, + ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor, + popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor): + New functions. + (mem_loc_descriptor): Use them. + + * var-tracking.c (create_entry_value): New function. + (vt_add_function_parameter): Use it. + +2011-06-01 Rainer Orth + + * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]: + Include , . + (sigill_caught): Define. + (sigill_hdlr): New function. + (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE + insns can be executed. + * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc. + * config/sparc/sol2.h (ENDFILE_SPEC): Remove. + +2011-06-01 Rainer Orth + + * config/t-slibgcc-darwin: Move to ... + * config/t-slibgcc-dummy: ... this. Clarify comments. + * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*, + powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this. + (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file. + (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems. + Remove i386/t-crtstuff from tmake_file. + (i[34567]86-*-solaris2*): Remove t-svr4, + t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add + t-slibgcc-dummy. + (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts. + (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin, + sparc/t-crtfm from tmake_file. + (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm, + t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy. + Remove extra_parts. + * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define. + * config/i386/t-nwld (SHLIB_LINK): Remove. + * config/i386/t-rtems-i386: Rename to ... + * config/i386/t-rtems: ... this. + ($(T)crti.o, $(T)crtn.o): Remove. + (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove. + (dp-bit.c, fp-bit.c, xp-bit.c): Remove. + (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove. + * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC, + EXTRA_MULTILIB_PARTS): Remove. + * config/sparc/t-sol2-64: Likewise. + * config/sparc/t-sol2: Remove. + * config/sparc/t-crtin: Remove. + * config/sparc/gmon-sol2.c: Move to ../libgcc/config. + * config/i386/gmon-sol2.c: Remove. + * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S. + * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S. + * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S. + * config/i386/sol2-gc1.asm: Remove. + * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S. + * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S. + * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S. + * config/t-slibgcc-sld: Remove. + +2011-06-01 Jakub Jelinek + + * dwarf2out.c (mem_loc_descriptor) : Call + base_type_for_mode with op_mode instead of mode. + +2011-06-01 Paul Brook + + * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to + Cortex-A15. + * config/arm/arm-tune.md: Regenerate. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm.c (FL_DIV): Rename... + (FL_THUMB_DIV): ... to this. + (FL_ARM_DIV): Define. + (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV. + (arm_arch_hwdiv): Remove. + (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables. + (arm_issue_rate): Add cortexr5. + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set + __ARM_ARCH_EXT_IDIV__. + (TARGET_IDIV): Define. + (arm_arch_hwdiv): Remove. + (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes. + * config/arm/arm.md (tune_cortexr4): Add cortexr5. + (divsi3, udivsi3): New patterns. + * config/arm/thumb2.md (divsi3, udivsi3): Remove. + * doc/invoke.texi: Document ARM -mcpu=cortex-r5 + +2011-06-01 Martin Jambor + + * ipa-utils.c (ipa_dfs_info): New field scc_no. + * ipa-utils.c (searchc): Set scc_no. + +2011-06-01 Martin Jambor + + * ipa-utils.c (searchc_env): New field allow_overwritable. + (searchc): do not ignore edges to overwritable nodes if indicated + by env->allow_overwritable. + (ipa_reduced_postorder): Set env.allow_overwritable. + +2011-06-01 Richard Guenther + + * tree.c (free_lang_data): Do not reset boolean_type_node nor + char_type_node. + * lto-streamer.c (lto_record_common_node): Take node pointer, + do not register types. + (lto_preload_common_nodes): Explicitly skip preloading nodes + that differ between frontends. + +2011-05-31 Pat Haugen + + * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from + NON_FLOAT_REGS. + +2011-05-31 Pat Haugen + + * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from + parameter value for dump. Dump cost on outermost call only. + (rs6000_memory_move_cost): Dump cost on outermost call only. + +2011-05-31 Jakub Jelinek + + * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant + DW_OP_GNU_convert ops. + + * cselib.c (promote_debug_loc): Allow l->next non-NULL for + cselib_preserve_constants. + (cselib_lookup_1): If cselib_preserve_constants, + a new VALUE is being created for REG and there is a VALUE for the + same register in wider mode, add another loc with lowpart SUBREG of + the wider VALUE. + (cselib_subst_to_values): Handle ENTRY_VALUE. + * var-tracking.c (replace_expr_with_values): Return NULL for + ENTRY_VALUE too. + * dwarf2out.c (convert_descriptor_to_signed): New function. + (mem_loc_descriptor) : Optimize using DW_OP_and + instead of two shifts. + (mem_loc_descriptor) : ZERO_EXTEND second argument to + the right mode if needed. + (mem_loc_descriptor) : For typed ops just use DW_OP_mod. + (mem_loc_descriptor) : Use + convert_descriptor_to_signed. + (mem_loc_descriptor) : Handle these rtls. + + PR target/48688 + * config/i386/i386.md (*lea_general_4): New define_insn_and_split. + +2011-05-31 Uros Bizjak + + * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead + of X87MODEI12 and SWI48x instead of SSEMODEI24. + (SWI248x): New mode iterator, rename from X87MODEI. + (X87MODEI): Remove mode iterator. + (X87MODEI12): Ditto. + (SSEMODEI24): Ditto. + +2011-05-31 Alexandre Oliva + + * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New. + * doc/invoke.texi: Document max-vartrack-expr-depth. + * var-tracking.c (EXPR_DEPTH): New. + (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it. + +2011-05-31 Alexandre Oliva + + * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA. + * config/i386/sse.md: Add n to negated FMA pattern names. + +2011-05-31 Alexandre Oliva + + * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug. + +2011-05-31 Alexandre Oliva + + * gengtype-state.c (read_state_params_structs): Initialize previous. + +2011-05-31 Uros Bizjak + + * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2. + (FP push_operand splitters): Merge {TF,XF,DF}mode splitters. + +2011-05-31 Uros Bizjak + + * config/i386/i386.md (*movtf_internal): Avoid allocating general + registers. Penalize F*r->o alternative to prevent partial memory + stalls. Slightly penalize *roF->*r alternative. Generate SSE + CONST_DOUBLE immediates when optimizing function for size. Do not move + CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL. + (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative. + (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative. + (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m + alternatives. + (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives. + + (fp_register_operand splitters): Use fp_register_operand + constraint. Do not use FP_REG_P in insn condition. + (any_fp_register_operand splitters): Use any_fp_register_operand + constraint. Do not use ANY_FP_REG_P in insn condition. + +2011-05-31 Jan Hubicka + + * cgraph.h (cgraph_inline_failed_t): Give enum a name + * lto-cgraph.c (LDPR_NUM_KNOWN): New macro. + (LTO_cgraph_tags): Add LTO_cgraph_last_tag. + (lto_output_edge): Use output_enum and var_len_unsigned. + (lto_output_varpool_node): Likewise. + (input_overwrite_node): Do not take resolution parameter; + extract it from a bitpack. + (input_node): Do not read resolution; use input_enum and + var_len_unsigned. + (input_varpool_node): Likewise. + (input_edge): Likewise. + (input_cgraph_1): Likewise. + +2011-05-31 Richard Guenther + + * gimple.c (gimple_register_canonical_type): Do not register + any types via gimple_register_type. + +2011-05-31 Jan Hubicka + + * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl + of thunks. + +2011-05-31 Jakub Jelinek + + PR rtl-optimization/49235 + * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx. + (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST. + +2011-05-31 Ira Rosen + + PR tree-optimization/49093 + * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile + data references. + +2011-05-31 Dodji Seketeli + + PR debug/49047 + * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute + for concrete functions containing the code of cloned functions. + +2011-05-31 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename + to ... + (forward_propagate_into_comparison_1): ... this. + (forward_propagate_comparison): Rename to ... + (forward_propagate_into_comparison): ... this. Split out + real forward propagation code to ... + (forward_propagate_comparison): ... this. + (forward_propagate_into_gimple_cond): Remove looping. + (forward_propagate_into_cond): Likewise. + (simplify_not_neg_expr): Return whether we have done something. + (simplify_gimple_switch): Likewise. + (tree_ssa_forward_propagate_single_use_vars): Rename to ... + (ssa_forward_propagate_and_combine): ... this. Re-structure + to do a forward forward-propagation walk on BBs and a backward + stmt combining walk on BBs. Consistently re-scan changed statements. + (pass_forwprop): Adjust. + +2011-05-30 Ian Lance Taylor + + * godump.c (go_format_type): Correct length of name added to + obstack for anonymous field. + +2011-05-30 Kaz Kojima + + PR target/49186 + * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high + part of the second operand is 0. + +2011-05-30 Uros Bizjak + + * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative + to prevent partial memory stalls. Do not move CONST_DOUBLEs directly + to memory for !TARGET_MEMORY_MISMATCH_STALL. + (*movdf_internal_rex64): Do not penalize F->r alternative. + (*movdf_internal): Penalize FYd*r->o alternative to prevent partial + memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only + when optimizing function for size. Do not move CONST_DOUBLEs + directly to memory for !TARGET_MEMORY_MISMATCH_STALL. + (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle + SUBREGs. Do not check for MEM_P operands in the insn condition, + check for ANY_FP_REGNO_P instead. + * config/i386/constraints.md (Yd): Enable GENERAL_REGS for + TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing + function for speed. + * config/i386/i386.c (ix86_option_override_internal): Do not + set TARGET_INTEGER_DFMODE_MOVES here. + +2011-05-30 H.J. Lu + + PR target/49168 + * config/i386/i386.md (*movtf_internal): Handle misaligned load/store. + +2011-05-30 Jakub Jelinek + + * dwarf2out.c (modified_type_die, gen_reference_type_die): Use + DW_TAG_rvalue_reference_type even for + -gdwarf-4 -fno-debug-types-section. + +2011-05-30 Bill Schmidt + + PR tree-optimization/46728 + * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms. + (build_and_insert_binop): New. + (gimple_expand_builtin_pow): Reorder args for + build_and_insert_call; use build_and_insert_binop; add more + optimizations for fractional exponents. + +2011-05-30 Nathan Froyd + + PR bootstrap/49190 + + Revert: + 2011-05-26 Nathan Froyd + + * tree.h (struct tree_identifier): Inherit from tree_typed, not + tree_common. + (HT_IDENT_TO_GCC_IDENT): Adjust for said change. + * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as + TS_BASE instead of TS_COMMON. + * varasm.c (assemble_name): Remove assert. + +2011-05-30 Richard Sandiford + + * config.gcc: Keep obselete list sorted. + +2011-05-30 Jakub Jelinek + Eric Botcazou + + * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with + crtl->args.internal_arg_pointer based address to arg_pointer_rtx if + there is a DRAP register and arg_pointer_rtx is the CFA pointer. + (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned. + (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register. + +2011-05-30 Richard Guenther + + * gimple.c (gimple_types_compatible_p_1): Compare record + and union type members properly. + +2011-05-30 Richard Guenther + + PR tree-optimization/49210 + * ipa-split.c (split_function): Care for the case where the call + result is not trivially convertible to the result holding variable. + +2011-05-30 Richard Guenther + + PR tree-optimization/49218 + * tree-vrp.c (adjust_range_with_scev): Properly check whether + overflow occured. + +2011-05-30 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_into_comparison): + New function split out from ... + (forward_propagate_into_gimple_cond): ... here. Adjust. + (forward_propagate_into_cond): Likewise. + (forward_propagate_comparison): Also propagate into + comparisons on assignment RHS. Change return value to + behave similar to forward_propagate_into_cond. + (tree_ssa_forward_propagate_single_use_vars): Handle + strict-overflow warnings properly for forward_propagate_comparison. + +2011-05-30 Rainer Orth + + * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support + from plugin linker. + * configure: Regenerate. + +2011-05-30 Ira Rosen + + PR tree-optimization/49199 + * tree-vect-loop.c (vect_is_slp_reduction): Check that the + non-reduction operands are either defined in the loop or by induction. + +2011-05-29 Xinliang David Li + + * opts-global.c (handle_common_deferred_options): Handle new options. + * passes.c (register_one_dump_file): Call register_pass_name. + (execute_one_pass): Check explicit enable/disable flag. + (passr_hash): New function. + (passr_eq): Ditto. + (register_pass_name): Ditto. + (get_pass_by_name): Ditto. + (pass_hash): Ditto. + (pass_eq): Ditto. + (enable_pass): Ditto. + (disable_pass): Ditto. + (is_pass_explicitly_enabled_or_disabled): Ditto. + +2011-05-29 Uros Bizjak + + * config/i386/i386.md (*movoi_internal_avx): Use + standard_sse_constant_opcode for alternative 0. + (*movti_internal_sse): Ditto. + (*movti_internal_rex64): Use standard_sse_constant_opcode for + alternative 2. + (*movdi_internal_rex64): Use standard_sse_constant_opcode for + sselog1 type moves. + (*movsi_internal): Ditto. + (*movdi_internal): Ditto. Add ssecvt type moves. + +2011-05-29 Eric Botcazou + + PR target/48830 + * rtlanal.c (simplify_subreg_regno): Adjust comment. + +2011-05-29 Jakub Jelinek + + PR rtl-optimization/49095 + * config/i386/predicates.md (plusminuslogic_operator): New predicate. + * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0. + +2011-05-29 Richard Sandiford + + PR target/43995 + * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a + recurse_p argument. Only follow register copies if it is set, + and prevent mips_find_pic_call_symbol from recursing. + (mips_find_pic_call_symbol): Add a recurse_p argument. + Pass it to mips_pic_call_symbol_from_set. + (mips_annotate_pic_calls): Update accordingly. + +2011-05-29 Richard Sandiford + + * emit-rtl.c (try_split): Use a loop to search for + NOTE_INSN_CALL_ARG_LOCATIONs. + +2011-05-29 Richard Guenther + + PR tree-optimization/49217 + * ipa-pure-const.c (propagate_pure_const): Fix typos. + +2011-05-28 Jan Hubicka + + * lto-streamer-out.c (hash_string_slot_node): Hash string based on its + length. + (string_slot_free): Remove + (create_output_block): Initialize obstack. + (destroy_output_block): Free obstack. + (lto_string_index): Add PERSISTENT parameter; do not duplicate + the string unless it needs to be added into the hash. + (lto_output_string_with_length): Add persistent attribute; + handle NULL strings. + (lto_output_string): Add PERSISTENT parameter. + (output_string_cst, output_identifier): Simplify. + (lto_output_location_bitpack): Update. + (lto_output_builtin_tree): Update. + * lto-streamer.h (struct output_block): Add obstack. + (lto_output_string, lto_output_string_with_length): Remove + declarations; functions are static now. + +2011-05-28 Jan Hubicka + + * lto-streamer-out.c (pack_ts_fixed_cst_value_fields, + pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields, + pack_ts_function_decl_value_fields, lto_output_builtin_tree, + output_cfg, output_gimple_stmt): Use enum and variable length i/o. + * lto-streamer-in.c (input_cfg, input_gimple_stmt, + unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields, + unpack_ts_decl_with_vis_value_fields, + unpack_ts_type_common_value_fields, unpack_ts_block_value_fields, + lto_get_builtin_tree): Use enum and variable length i/o. + * basic-block.h (profile_status_d): Add PROFILE_LAST. + * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range): + New functions. + (bp_pack_enum, bp_unpack_enum): New macros. + +2011-05-28 Richard Sandiford + + * genrecog.c: Remove redundant forward declarations. + +2011-05-28 Richard Sandiford + + * config.gcc: Deprecate mips*-*-openbsd*. + +2011-05-28 Richard Sandiford + + PR bootstrap/49195 + * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP + for match_op_dup. + +2011-05-27 Andrew Pinski + + PR middle-end/48981 + * gengtype.c (vec_prefix_type): New function. + (note_def_vec): Use vec_prefix_type and change the length + attribute to be based on the prefix. + * vec.c: Include coretypes.h before vec.h. + (struct vec_prefix): Remove. + (vec_gc_p_reserve): Change the offsetof to sizeof. + (vec_gc_p_reserve_exact): Likewise. + (vec_heap_p_reserve): Likewise. + (vec_heap_p_reserve_exact): Likewise. + (vec_stack_o_reserve_1): Copy from +1 instead of from vec. + (vec_stack_p_reserve): Change the offsetof to sizeof. + (vec_stack_p_reserve_exact): Likewise. + * vec.h (struct vec_prefix): New struct definition. + (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields. + (VEC_T_GTY(T,B)): Likewise. + (DEF_VEC_FUNC_P(T)): Use prefix field. + (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise. + (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise. + +2011-05-27 Bill Schmidt + + PR tree-optimization/46728 + * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location. + (powi_as_mults): Add gimple_set_location. + (build_and_insert_call): New. + (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is + 0.5, 0.25, 0.75, 1./3., or 1./6. + +2011-05-27 Alexander Monakov + + * doc/contrib.texi: Update copyright years. + (Contributors): Add Zdenek Sojka. + +2011-05-27 Nathan Froyd + + * c-decl.c (c_push_function_context): Copy the current statement + list stack. + (add_stmt): Check building_stmt_list_p and push_stmt if necessary. + (finish_struct): Call building_stmt_list_p instead of checking + cur_stmt_list. + * c-parser.c (c_parser_postfix_expression): Likewise. + * c-typeck.c (c_end_compound_stmt): Likewise. + * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN. + * tree-iterator.c (stmt_list_cache): Change to a VEC. + (alloc_stmt_list): Adjust for stmt_list_cache's new type. + (free_stmt_list): Likewise. + * tree.h (struct tree_statement_list): Include typed_tree instead + of tree_common. + * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST + as TS_TYPED instead of TS_COMMON. + +2011-05-27 Rainer Orth + Uros Bizjak + + * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt + (HAVE_AS_IX86_TLSGDPTL): Define. + (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt. + (HAVE_AS_IX86_TLSLDMPLT): Define. + * configure: Regenerate. + * config.in: Regenerate. + * config/i386/i386.c (ix86_print_operand): Handle code 'p'. + * config/i386/i386.md (*tls_global_dynamic_32_gnu): If + TARGET_SUN_TLS, use @tlsgdplt or @plt. + (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS. + (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use + @tlsldmplt or @plt. + (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS. + +2011-05-27 Bernd Schmidt + + * sched-int.h (struct _haifa_deps_insn_data): New members cond + and reverse_cond. + (INSN_COND, INSN_REVERSE_COND): New macros. + * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev + once. + (sched_get_condition_with_rev): Cache the results, and look them up + if possible. + (sched_analyze_insn): Destroy INSN_COND of previous insns if they + are clobbered by the current insn. + * target.def (exposed_pipline): New sched data hook. + * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook. + * doc/tm.texi: Regenerate. + +2011-05-27 Bill Schmidt + + PR tree-optimization/49170 + * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for + sincos or cexp. + +2011-05-27 Richard Guenther + + PR middle-end/49189 + * fold-const.c (fold_unary_loc): Do not re-fold folding conversions + of comparisons. + +2011-05-27 Bernd Schmidt + + * haifa-sched.c (sched_scan_info): Remove. + (schedule_block): Call sched_extend_luids rather than sched_init_luids + with NULL args. + (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb): + Remove functions. + (sched_scan): Remove. + (sched_extend_luids): Renamed from luids_extend_insn and no longer + static. All callers changed. + (sched_init_insn_luid): Renamed from luids_init_insn and no longer + static. All callers changed. + (sched_init_luids): Remove all arguments except the first. All + callers changed. Don't use sched_scan. + (haifa_init_h_i_d): Likewise. + (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid + manually rather than using sched_init_luids. Likewise with + extend_h_i_d, init_h_i_d and haifa_init_h_i_d. + * sel-sched.c (sel_region_target_finish): Call sched_extend_luids + rather than sched_init_luids with NULL args. + * sel-sched-ir.c (new_insns): Remove variable. + (sched_scan): New static function, previously in haifa-sched.c. Remove + all arguments but the first two; all callers changed. + (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid + rather than sched_init_luids. + (sel_init_bbs): Remove second argument. All callers changed. + (sel_add_bb): Call sched_extend_luids rather than sched_init_luids + with NULL arguments. + (create_insn_rtx_from_pattern): Likewise. + * sel-sched-ir.h (sel_init_bbs): Adjust declaration. + * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise. + (sched_init_insn_luid, sched_extend_luids): Declare. + (sched_scan_info_def, sched_scan_info, sched_scan): Remove + declarations. + +2011-05-27 Richard Guenther + + PR middle-end/49177 + * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to + A CMP B ? (T) true : (T) false for non-integral types T again. + +2011-05-27 Jan Hubicka + + * lto-streamer-out.c (lto_string_index): break out from...; offset by 1 + so 0 means NULL string. + (lto_output_string_with_length): ... here. + (lto_output_string, output_string_cst, output_identifier): Update + handling of NULL strings. + (lto_output_location_bitpack): New function. + (lto_output_location): Use it. + (lto_output_tree_ref): Use output_record_start. + (pack_ts_type_common_value_fields): Pack aliagn & alias set in var + len values. + * lto-streamer-in.c (string_for_index): Break out from ...; offset + values by 1. + (input_string_internal): ... here; + (input_string_cst, input_identifier, lto_input_string): Update handling + of NULL strings. + (lto_input_location_bitpack): New function + (lto_input_location): Use it. + (unpack_ts_type_common_value_fields): Pack align & alias in var len + values. + * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int, + bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare. + (bp_pack_value): Sanity check the value range. + * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int): + New functions. + * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int): + New functions. + +2011-05-27 Hariharan Sandanagobalane + + * config/picochip/picochip.c (reorder_var_tracking_notes): Drop + call_arg_location instructions down the floor. + +2011-05-26 Vladimir Makarov + + PR rtl-optimization/49154 + * ira.c (setup_pressure_classes): Process class without sublcasses + as a candidate for pressure classes. + +2011-05-26 Richard Sandiford + + PR rtl-optimization/48575 + * genrecog.c (position_type): New enum. + (position): New structure. + (decision): Use position structure instead of a string. + (root_pos, peep2_insn_pos_list): New variables. + (next_position, compare_positions): New functions. + (new_decision): Use position structures instead of strings. + (maybe_both_true): Likewise. + (change_state): Likewise. + (write_tree): Likewise. + (make_insn_sequence): Likewise. + +2011-05-26 Nathan Froyd + + * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as + TS_BASE instead of TS_COMMON. + (find_decls_types_r): Check for TS_TYPED structure before looking at + TREE_TYPE. + * tree.h (struct tree_block): Inherit from tree_base, not tree_common. + Add chain field. + (BLOCK_CHAIN): Use new chain field. + +2011-05-26 Pat Haugen + + * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR + moves expensive on Power7 also. + +2011-05-26 Richard Guenther + + * fold-const.c (fold_unary_loc): Remove bogus code. + +2011-05-26 Nathan Froyd + + * tree.h (struct tree_identifier): Inherit from tree_typed, not + tree_common. + (HT_IDENT_TO_GCC_IDENT): Adjust for said change. + * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as + TS_BASE instead of TS_COMMON. + * varasm.c (assemble_name): Remove assert. + +2011-05-26 Bernd Schmidt + + * Makefile.in (srcdirify): Change order so that libgcc_objdir is + substituted first. + * libgcc-std.ver: Delete file. + +2011-05-26 Richard Guenther + + PR tree-optimization/48702 + * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs + only when we know the base address is within bounds. + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not + assume the base address of TARGET_MEM_REFs is in bounds. + +2011-05-26 Rainer Orth + + PR target/49099 + * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap + declaration in TARGET_SOLARIS. + +2011-05-26 Hariharan Sandanagobalane + + * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator. + The instruction is then expanded explicitly. + (supported_compare): Callable instruction. + (compare): Likewise. + +2011-05-26 Jakub Jelinek + + PR c++/49165 + * gimplify.c (shortcut_cond_r): Don't special case + COND_EXPRs if they have void type on one of their arms. + +2011-05-26 Bernd Schmidt + + * haifa-sched.c (schedule-block): Reorder the inner scheduling loop + to reduce duplication, and to achieve a slightly more logical order + of operations. + +2011-05-26 Jakub Jelinek + + PR tree-optimization/49161 + * tree-vrp.c (struct case_info): New type. + (compare_case_labels): Sort case_info structs instead of + trees, and not primarily by CASE_LABEL uids but by + label_for_block indexes. + (find_switch_asserts): Put case labels into struct case_info + array instead of TREE_VEC, adjust sorting, compare label_for_block + values instead of CASE_LABELs. + +2011-05-26 Ramana Radhakrishnan + + * config/arm/neon.md ("orn3_neon"): Canonicalize not. + ("orndi3_neon"): Likewise. + ("bic3_neon"): Likewise. + +2011-05-26 Ira Rosen + + PR tree-optimization/49038 + * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): + Ensure at least one epilogue iteration if required by data + accesses with gaps. + * tree-vectorizer.h (struct _loop_vec_info): Add new field + to mark loops that require peeling for gaps. + * tree-vect-loop.c (new_loop_vec_info): Initialize new field. + (vect_get_known_peeling_cost): Take peeling for gaps into + account. + (vect_transform_loop): Generate epilogue if required by data + access with gaps. + * tree-vect-data-refs.c (vect_analyze_group_access): Mark the + loop as requiring an epilogue if there are gaps in the end of + the strided group. + +2011-05-25 Ian Lance Taylor + + * godump.c (go_format_type): Output the first field with a usable + Go type, if any. + +2011-05-25 Ian Lance Taylor + + * godump.c (go_format_type): Check for invalid type names, pointer + target types, and struct field types. + +2011-05-25 Jason Merrill + + * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED. + +2011-05-25 Uros Bizjak + + * config/i386/sse.md (*_maskcmp3_comm): New pattern. + +2011-05-25 H.J. Lu + + * config/i386/i386.md (*movqi_extv_1)): Put back + "register_operand" check in "type" calculation. + (*movqi_extzv_2): Likewise. + +2011-05-25 H.J. Lu + + * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic. + +2011-05-25 Bernd Schmidt + + PR bootstrap/49160 + * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2, + __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, + __divxc3, __divtc3): Wrap definitions in #ifndef. + +2011-05-25 H.J. Lu + + PR target/49142 + * config/i386/i386.md (*movqi_extv_1_rex64): Remove + "register_operand" check and replace q_regs_operand with + QIreg_operand in "type" calculation. + (*movqi_extv_1): Likewise. + (*movqi_extzv_2_rex64): Likewise. + (*movqi_extzv_2): Likewise. + + * config/i386/predicates.md (QIreg_operand): New. + +2011-05-25 Richard Guenther + + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix + type-based offset disambiguation, streamline MEM_REF and + TARGET_MEM_REF handling. + +2011-05-25 H.J. Lu + + * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE. + (bdesc_special_args): Add pause intrinsic. + + * config/i386/i386.md (UNSPEC_PAUSE): New. + (pause): Likewise. + (*pause): Likewise. + * config/i386/ia32intrin.h (__pause): Likewise. + + * doc/extend.texi (X86 Built-in Functions): Add documentation for + pause intrinsic. + +2011-05-25 Bill Schmidt + + PR tree-optimization/46728 + * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New. + (execute_cse_sincos): Add switch case for BUILT_IN_POW. + +2011-05-25 Nathan Froyd + + * tree.h (struct tree_exp): Inherit from struct tree_typed. + * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED + instead of TS_COMMON. + +2011-05-25 Bernd Schmidt + + * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if + LIBGCC2_GNU_PREFIX is defined. + (__N): New macro. + (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2, + __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3, + __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack, + __clz_tab): Define using __N. + (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if + COMPAT_SIMODE_TRAPPING_ARITHMETIC. + * target.def (libfunc_gnu_prefix): New hook. + * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document. + (TARGET_LIBFUNC_GNU_PREFIX): Add hook. + * doc/tm.texi: Regenerate. + * system.h (LIBGCC2_GNU_PREFIX): Poison. + * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into + account. + (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise. + (init_optabs): Likewise for the bswap libfuncs. + * tree.c (build_common_builtin_nodes): Likewise for complex multiply + and divide. + * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir). + * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise. + * libgcc-std.ver: Remove. + * Makefile.in (srcdirify): Handle $$(libgcc_objdir). + * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for + libgcc-std.ver. + * config/i386/t-linux (SHLIB_MAPFILES): Likewise. + * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise. + * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise. + * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise. + * config/sparc/t-linux (SHLIB_MAPFILES): Likewise. + * config/i386/t-linux (SHLIB_MAPFILES): Likewise. + * config/i386/t-linux (SHLIB_MAPFILES): Likewise. + * config/fixed-bit.h (FIXED_OP): Define differently depending on + LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores. + (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise. + +2011-05-25 Jan Hubicka + + * lto-streamer-out.c (output_record_start): Use lto_output_enum + (lto_output_tree): Use output_record_start. + * lto-streamer-in.c (input_record_start): Use lto_input_enum + (lto_get_pickled_tree): Use input_record_start. + * lto-section-in.c (lto_section_overrun): Turn into fatal error. + (lto_value_range_error): New function. + * lto-streamer.h (lto_value_range_error): Declare. + (lto_output_int_in_range, lto_input_int_in_range): New functions. + (lto_output_enum, lto_input_enum): New macros. + +2011-05-25 Eric Botcazou + + * common.opt (flag_stack_usage_info): New variable. + (-Wstack-usage): New option. + * doc/invoke.texi (Warning options): Document -Wstack-usage. + * opts.c (common_handle_option) : New case. + : Likewise. + * toplev.c (output_stack_usage): Handle -Wstack-usage. + * calls.c (expand_call): Test flag_stack_usage_info variable instead + of flag_stack_usage. + (emit_library_call_value_1): Likewise. + * explow.c (allocate_dynamic_stack_space): Likewise. + * function.c (instantiate_virtual_regs ): Likewise. + (prepare_function_start): Likewise. + (rest_of_handle_thread_prologue_and_epilogue): Likewise. + * config/alpha/alpha.c (alpha_expand_prologue): Likewise. + * config/arm/arm.c (arm_expand_prologue): Likewise. + (thumb1_expand_prologue): Likewise. + * config/avr/avr.c (expand_prologue): Likewise. + * config/i386/i386.c (ix86_expand_prologue): Likewise. + * config/ia64/ia64.c (ia64_expand_prologue): Likewise. + * config/m68k/m68k.c (m68k_expand_prologue): Likewise. + * config/mips/mips.c (mips_expand_prologue): Likewise. + * config/pa/pa.c (hppa_expand_prologue): Likewise. + * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. + * config/s390/s390.c (s390_emit_prologue): Likewise. + * config/sh/sh.c (sh_expand_prologue): Likewise. + * config/sparc/sparc.c (sparc_expand_prologue): Likewise. + * config/spu/spu.c (spu_expand_prologue): Likewise. + +2011-05-25 Richard Guenther + + * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs. + (gimple_canonical_types_compatible_p): Likewise. + +2011-05-25 Jan Hubicka + + PR middle-end/49062 + * ipa.c (function_and_variable_visibility): Only add to same + comdat group list if DECL_ONE_ONLY. + +2011-05-25 Andrey Belevantsev + + PR rtl-optimization/49014 + * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi. + +2011-05-25 Jakub Jelinek + + PR target/49128 + * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. + +2011-05-24 Vladimir Makarov + + PR rtl-optimization/48757 + * ira-build.c (loop_with_eh_edge_p): Rename to + loop_with_complex_edge_p, check edges on complexity, make function + conditional. + (mark_loops_for_removal): Make call of loop_with_complex_edge_p + conditional. + +2011-05-24 Eric Botcazou + + * config/sparc/sparc.c (sparc_option_override): If not set by the user, + force flag_ira_share_save_slots to 0. + +2011-05-24 Eric Botcazou + + * var-tracking.c (compute_cfa_pointer): Adjust head comment. + (vt_initialize): Set PROLOGUE_BB unconditionally. + Add block comment about CFA_BASE_RTX machinery. + Reset FP_CFA_OFFSET to -1 on all invalid paths. + Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1. + +2011-05-24 Nicola Pero + + PR objc/48187 + * c-parser.c (c_parser_objc_class_instance_variables): More robust + parsing of syntax error in ObjC instance variable lists. In + particular, avoid an infinite loop if there is a stray ']'. + Updated error message. + +2011-05-24 Ian Lance Taylor + + * godump.c (go_define): Don't accept a string immediately after + another operand. + +2011-05-24 Ian Lance Taylor + + * godump.c (struct godump_container): Add invalid_hash field. + (go_format_type): Return false if type is found in invalid_hash. + (go_output_typedef): Add invalid type to invalid_hash. + (go_finish): Create and delete invalid_hash. + +2011-05-24 Bill Schmidt + + PR tree-optimization/46728 + * tree-ssa-math-opts.c (powi_table): New. + (powi_lookup_cost): New. + (powi_cost): New. + (powi_as_mults_1): New. + (powi_as_mults): New. + (gimple_expand_builtin_powi): New. + (execute_cse_sincos): Add switch case for BUILT_IN_POWI. + (gate_cse_sincos): Remove sincos/cexp restriction. + +2011-05-24 Rainer Orth + + PR target/3746 + * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile, + mips-tdump native. + * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling. + * mips-tdump.c: Likewise. + +2011-05-24 H.J. Lu + + PR target/49128 + * config/i386/driver-i386.c (host_detect_local_cpu): Always + add -mno-XXX. Handle FMA. + +2011-05-24 Vladimir Makarov + + PR rtl-optimization/48633 + * ira-build.c (loop_with_eh_edge_p): New function. + (mark_loops_for_removal): Use it. + +2011-05-24 Vladimir Makarov + + PR rtl-optimization/48971 + * ira.c (setup_pressure_classes): Don't check register move cost + for classes with one registers. Don't add pressure class if there + is a pressure class with the same available hard registers. + Check contains_reg_of_mode. Fix a typo in collecting + temp_hard_regset. Ignore hard registers not belonging to a class. + +2011-05-24 Uros Bizjak + + PR target/49133 + * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative. + +2011-05-24 Eric Botcazou + Rainer Orth + + PR gcov-profile/48845 + * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling. + +2011-05-24 Richard Guenther + + * gimple.c (compare_type_names_p): Remove for_completion_p arg. + (gimple_compatible_complete_and_incomplete_subtype_p): Remove. + (gimple_types_compatible_p_1): Adjust. + (iterative_hash_canonical_type): Do not bother about complete vs. + incomplete types. + (gimple_canonical_types_compatible_p): Likewise. + +2011-05-24 Rainer Orth + + * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove. + +2011-05-24 Richard Guenther + + PR bootstrap/49078 + * gimple.c (gimple_register_canonical_type): Revert + previous change. + * alias.c (get_alias_set): Only assert that TYPE_CANONICAL + does not for a tree for the case where it matters. Cache + pointer-type alias-sets. + +2011-05-24 Joseph Myers + + * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o. + (OBJS): Remove options.o, opts-common.o and prefix.o. + (OBJS-libcommon-target): New. + (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target). + (BACKEND): Include libcommon-target.a. + (MOSTLYCLEANFILES): Include libcommon-target.a. + (libcommon-target.a): New. + (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of + prefix.o. + +2011-05-23 Joseph Myers + + * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate + parts of output shared with the driver. + * optc-gen.awk: Don't generate parts of output not shared with the + driver. + * opth-gen.awk: Remove GCC_DRIVER conditionals. + * doc/options.texi (SourcerInclude): Mention options-save.c. + * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o. + (OBJS): Add options-save.o. + (options-save.c, options-save.o): New. + (options.o): Update dependencies. + (gcc-options.o): Remove. + (mostlyclean): Remove options-save.c. + +2011-05-23 Jakub Jelinek + + PR debug/49032 + * dbxout.c: Include cgraph.h. + (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written + and without value expr, return NULL if no varpool node exists for + it or if it is not needed. + * Makefile.in (dbxout.o): Depend on $(CGRAPH_H). + + PR c/49120 + * c-decl.c (start_decl): Convert expr to void_type_node. + +2011-05-23 Richard Sandiford + + PR rtl-optimization/48826 + * emit-rtl.c (try_split): When splitting a call that is followed + by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call. + +2011-05-23 Jakub Jelinek + + * cfgexpand.c (expand_debug_expr): For unused non-addressable + parameters passed in memory prefer using DECL_INCOMING_RTL over + the pseudos it will be copied into. + +2011-05-23 H.J. Lu + + PR target/47315 + * config/i386/i386.c (ix86_option_override_internal): Save the + initial options after checking vzeroupper. + +2011-05-23 David Li + + PR tree-optimization/48988 + * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): + Initialize has_valid_pred for each pred chain. + +2011-05-23 Richard Guenther + + * gimple.c (gimple_types_compatible_p_1): Always compare type names. + (iterative_hash_gimple_type): Always hash type names. + +2011-05-23 Nathan Froyd + + * c-typeck.c (build_function_call_vec): Tweak call to + check_function_arguments. + +2011-05-23 Richard Guenther + + PR tree-optimization/49115 + * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment + is not necessarily carried out, do not claim it kills the ref. + * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. + +2011-05-23 Richard Guenther + + PR middle-end/15419 + * builtins.c (fold_builtin_memory_op): Be less restrictive about + what pointer types we accept for folding. + +2011-05-23 Rainer Orth + + * gthr-gnat.c: Remove. + * gthr-gnat.h: Remove. + * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c. + * config/t-freebsd (LIB2ADDEH): Likewise. + * config/t-linux (LIB2ADDEH): Likewise. + * config/t-sol2 (LIB2ADDEH): Likewise. + * config/ia64/t-vms (LIB2ADDEH): Likewise. + * configure.ac (target_thread_file): Remove gnat handling. + * configure: Regenerate. + * doc/install.texi (Configuration, --enable-threads): Remove gnat. + +2011-05-23 Tristan Gingold + Eric Botcazou + + * gcov.c (create_file_names): If no object directory is specified, + keep the directory of the file. + +2011-05-23 Rainer Orth + + * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list. + * configure: Regenerate. + +2011-05-23 Jakub Jelinek + + PR middle-end/48973 + * expr.c (expand_expr_real_2) : If do_store_flag + failed and the comparison has a single bit signed type, use + constm1_rtx instead of const1_rtx for true value. + (do_store_flag): If ops->type is single bit signed type, disable + signel bit test optimization and pass -1 instead of 1 as last + parameter to emit_store_flag_force. + +2011-05-23 Tom de Vries + + PR target/45098 + * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New + function. + (infer_loop_bounds_from_undefined): Use new function. + +2011-05-22 Richard Sandiford + + * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete. + (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt, + -O1 for -fno-delayed-branch, -O2 if optimization is enabled, + and -O0 otherwise. + (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec. + +2011-05-22 Eric Botcazou + + * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK. + (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges + returns true. + +2011-05-22 Richard Sandiford + + * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT. + +2011-05-22 Eric Botcazou + + * config/sparc/sparc.c (sparc_delegitimize_address): Handle + UNSPEC_MOVE_PIC pattern. + +2011-05-22 Eric Botcazou + + * config.gcc (sparc-*-elf*): Add sparc/t-crtin. + (sparc-*-rtems*): Likewise. + (sparc64-*-elf*): Likewise. + (sparc64-*-rtems*): Likewise. + (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts. + * config/sparc/t-crtin: New file. + * config/sparc/t-sol2 (crti.o): Delete rule. + (crtn.o): Likewise. + * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete. + * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise. + * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o. + (ENDFILE_SPEC): Add crtn.o. + +2011-05-22 Tom de Vries + + PR middle-end/48689 + * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with + CODE_CONTAINS_STRUCT (TS_COMMON). + +2011-05-22 Jakub Jelinek + + PR middle-end/49029 + * expmed.c (extract_fixed_bit_field): Test whether target can be used + only after deciding which mode to use. + +2011-05-22 Tom de Vries + + PR target/45098 + * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test + for call to get_shiftadd_cost. + +2011-05-22 Uros Bizjak + + PR target/49104 + * config/i386/cpuid.h (bit_MMXEXT): New define. + +2011-05-22 Nick Clifton + + * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent + initialisation of non-existant args[2] element. Use args[] array + not arg[] array to pass arguments to build_function_type_list. + +2011-05-22 Ira Rosen + + PR tree-optimization/49087 + * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses. + +2011-05-21 Jason Merrill + + PR c++/49092 + * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for + static storage duration. + +2011-05-21 Eric Botcazou + + * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard + frame pointer. + +2011-05-21 Eric Botcazou + + * config/sparc/sparc.c (eligible_for_return_delay): Do not return + false if there are call-saved registers here... + (sparc_can_use_return_insn_p): ...but here instead. + (save_or_restore_regs): Fix thinko. + (sparc_expand_prologue): Use current_function_is_leaf. + (sparc_frame_pointer_required): Likewise. + +2011-05-21 Nick Clifton + + PR target/49098 + * config/rx/rx.c (rx_memory_move_cost): Note unused parameters. + +2011-05-21 Nicola Pero + + * gengtype.c (walk_type): Implemented "atomic" GTY option. + * doc/gty.texi (GTY Options): Document "atomic" GTY option. + +2011-05-21 Joseph Myers + + * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk. + * optc-gen.awk: Move common code to opt-read.awk. + * opth-gen.awk: Likewise. + * Makefile.in (options.c, s-options-h): Update to use opt-read.awk. + +2011-05-20 Nathan Froyd + + * godump.c (go_format_type): Don't use TYPE_ARG_TYPES. + +2011-05-20 Tom de Vries + + PR target/45098 + * tree-ssa-loop-ivopts.c: Include expmed.h. + (get_shiftadd_cost): New function. + (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost. + +2011-05-20 Jakub Jelinek + + PR bootstrap/49086 + * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL + for PHI args that are SSA_NAME_IS_DEFAULT_DEF. + +2011-05-20 Joseph Myers + + * Makefile.in: Update comment referring to $(OBJS-common). + +2011-05-20 Ian Lance Taylor + + * godump.c (go_output_typedef): Put enum constants in the macro + hash table to avoid duplicate Go const definitions. + +2011-05-20 Joseph Myers + + * Makefile.in (LIBDEPS): Add libcommon.a. + (LIBS): Likewise. + (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o. + (OBJS-common): Remove diagnostic.o, input.o, intl.o, + pretty-print.o and version.o. + (OBJS-libcommon): New. + (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon). + (BACKEND): Add libcommon.a. + (MOSTLYCLEANFILES): Likewise. + (libcommon.a): New. + (xgcc$(exeext)): Don't explicitly use version.o and intl.o. + (cpp$(exeext)): Likewise. + (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o, + pretty-print.o and input.o. + (lto-wrapper$(exeext)): Don't explicitly use intl.o. + (lto-wrapper.o): Depend on $(DIAGNOSTIC_H). + (errors.o): Remove. + (mips-tfile): Don't explicitly use version.o. + (mips-tdump): Likewise. + (gcov.o): Depend on $(DIAGNOSTIC_H). + (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H). + (GCOV_OBJS): Remove intl.o, version.o and errors.o. + (GCOV_DUMP_OBJS): Remove version.o and errors.o. + * gcov-dump.c: Include intl.h and diagnostic.h. + (main): Initialize diagnostics. + * gcov.c: Include diagnostic.h. + (fnotice): Remove. + (main): Initialize diagnostics. + * lto-wrapper.c: Include diagnostic.h. + (main): Initialize diagnostics. + +2011-05-20 Michael Matz + + * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS. + +2011-05-20 Michael Matz + Richard Guenther + + * lto-streamer.c (lto_record_common_node): Don't track seen nodes, + use lto_streamer_cache_append directly instead of returning a VEC. + (preload_common_node): Remove. + (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't + track seen nodes. + (lto_streamer_cache_create): Call lto_preload_common_nodes. + +2011-05-20 Richard Guenther + + PR tree-optimization/49079 + * tree-dfa.c (get_ref_base_and_extent): Handle view-converting + MEM_REFs correctly for the trailing array access detection. + Special case constants the same way as decls for overall size + constraining. + +2011-05-20 Uros Bizjak + + * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro + argument expansion. + +2011-05-20 Jakub Jelinek + + PR tree-optimization/49073 + * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if + PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI. + * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators. + +2011-05-20 Richard Guenther + + PR middle-end/48849 + * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL + of pointer types the same way the middle-end does. + +2011-05-20 Richard Guenther + + * gimple.c (gimple_register_type_1): Do not fiddle with main-variant + or pointer-to chains. Delay all fixup to uniquify_nodes. + +2011-05-19 Quentin Neill + + * config/i386/sse.md (fma4_fmsubadd): Use . + (fma4_fmaddsub): Likewise + +2011-05-19 Jan Hubicka + + * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove. + (GIMPLE_TYPE_PAIR_SIZE): New macro. + (type_pair_cache): New static var. + (lookup_type_pair): Use fixed sized custom hash; make inline. + (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update + calls of lookup_type_pair. + (print_gimple_types_stats): Remove cache stats. + (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited + and gtc_ob. + +2011-05-19 Uros Bizjak + + * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE + when TARGET_RDRND is active. + (ix86_expand_builtin) : + Generate dummy SImode target register when target is NULL. + +2011-05-19 Joseph Myers + + * config/arm/arm-fpus.def: New. + * config/arm/genopt.sh: Generate Enum and EnumValue entries from + arm-fpus.def. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def. + (arm_option_override): Don't decode FPU name to string here. + * config/arm/arm.opt (mfpu=): Use Enum. + * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o): + Update dependencies. + +2011-05-19 Joseph Myers + + * collect2.c: Include diagnostic.h. + (fatal_perror, fatal, error, fancy_abort): Remove. + (main): Set progname. Call xmalloc_set_program_name and + diagnostic_initialize. + (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file, + scan_libraries, resolve_lib_name): Call fatal_error instead of + fatal and fatal_perror. + * collect2.h (error, fatal, fatal_perror): Don't declare. + * tlink.c: Include diagnostic-core.h. + (recompile_files): Call fatal_error instead of fatal_perror. + * Makefile.in (COLLECT2_OBJS): Include diagnostic.o, + pretty-print.o and input.o. + (collect2.o, tlink.o): Update dependencies. + +2011-05-19 Rainer Orth + + * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon. + +2011-05-19 Rainer Orth + + PR target/40483 + * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as + COMDAT group syntax, both SPARC and x86 variants. + (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group. + * configure: Regenerate. + * config/sol2.h (TARGET_SOLARIS): Define. + (PUSHSECTION_FORMAT): Remove. + (SECTION_NAME_FORMAT): Define. + * config/sol2.c: Include hashtab.h. + (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its + expansion, using SECTION_NAME_FORMAT. + (solaris_comdat_htab): New variable. + (struct comdat_entry): Define. + (comdat_hash): New function. + (comdat_eq): New function. + (solaris_elf_asm_comdat_section): New function. + (solaris_define_comdat_signature): New function. + (solaris_code_end): New function. + * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare. + (solaris_code_end): Declare. + * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency. + * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call + solaris_code_end. + (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS. + Remove ATTRIBUTE_UNUSED. + [!USE_GAS]: Call solaris_elf_asm_comdat_section for + SECTION_LINKONCE sections if HAVE_COMDAT_GROUP. + * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise. + * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ... + * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here. + * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine. + (PUSHSECTION_FORMAT): Remove. + (SECTION_NAME_FORMAT): Redefine. + +2011-05-19 Kai Tietz + + * tree-cfg.c (verify_gimple_assign_binary): Barf on + TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR. + (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form. + +2011-05-19 Anatoly Sokolov + Rainer Orth + + * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency. + +2011-05-19 Richard Guenther + + PR middle-end/48985 + * tree-object-size.c (addr_object_size): If the pointed-to + variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT. + +2011-05-19 Richard Guenther + + * gimple.c (gimple_types_compatible_p_1): Compare names of + the types themselves. + (iterative_hash_gimple_type): And hash them that way. + (gimple_register_type_1): If we register a main variant properly + initialize the leader to ourselves. + +2011-05-19 Tom de Vries + + PR target/45098 + * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of + get_loop_invariant_expr_id. + (get_loop_invariant_expr_id): Use get_expr_id. + (parm_decl_cost): New function. + (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost. + Improve bound cost estimation. Use different inv_expr_id for elim and + express cases. + +2011-05-19 Tom de Vries + + PR target/45098 + * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent + cost_base.cost == 0. + +2011-05-18 H.J. Lu + + PR target/49002 + * config/i386/sse.md + (avx__): Properly handle + load cast. + +2011-05-18 Jakub Jelinek + + PR tree-optimization/49039 + * tree-vrp.c (extract_range_from_binary_expr): For + MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]> + return ~[MAX_EXPR , MIN_EXPR ]. + +2011-05-18 Tom de Vries + + PR target/45098 + * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0. + +2011-05-18 Uros Bizjak + + * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template. + (*tls_global_dynamic_64): Ditto. + (*tls_local_dynamic_base_32_gnu): Ditto. + (*tls_local_dynamic_base_64): Ditto. + (tls_initial_exec_64_sun): Ditto. + +2011-05-18 Stuart Henderson + + * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592. + * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for + bf592-none. + * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. + * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. + * config/bfin/bfin.c (bfin_cpus): Add bf592. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define + __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592. + * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592. + * config/bfin/elf.h (LIB_SPEC): Add bf592. + +2011-05-18 Joseph Myers + + * config/arm/arm-opts.h (enum arm_fp16_format_type, enum + arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h. + * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi, + target_thread_pointer, arm_structure_size_boundary, struct + float_abi, all_float_abis, struct fp16_format, all_fp16_formats, + struct abi_name, arm_all_abis): Remove. + (arm_option_override) Don't process most enumerated option values here. + Don't process target_fpe_name here. Work with integer not string for + structure size boundary; use separate diagnostics for each case. + * config/arm/arm.h (enum float_abi_type, enum + arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move + to arm-opts.h. + (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer, + arm_structure_size_boundary): Remove. + * config/arm/arm.opt (mabi=): Use Enum and Init. + (arm_abi_type): New Enum and EnumValue entries. + (mfloat-abi=): Use Enum and Init. + (float_abi_type): New Enum and EnumValue entries. + (mfp=, mfpe=): Replace by separate Alias entries for each argument. + (mfp16-format=): Use Enum and Init. + (arm_fp16_format_type): New Enum and EnumValue entries. + (mstructure-size-boundary=): Use UInteger and Init. + (mtp=): Use Enum and Init. + (arm_tp_type): New Enum and EnumValue entries. + +2011-05-18 Richard Guenther + + PR tree-optimization/49018 + * gimple.c (gimple_has_side_effects): Volatile asms have side-effects. + * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use + gimple_has_side_effects. + +2011-05-18 Richard Guenther + + * gimple.c (gimple_register_type_1): New function, split out from ... + (gimple_register_type): ... here. Avoid infinite recursion. + +2011-05-18 Ira Rosen + + PR tree-optimization/41881 + * tree-vectorizer.h (struct _loop_vec_info): Add new field + reduction_chains along with a macro for its access. + * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains. + (destroy_loop_vec_info): Free reduction chains. + (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false. + (vect_is_slp_reduction): New function. + (vect_is_simple_reduction_1): Call vect_is_slp_reduction. + (vect_create_epilog_for_reduction): Support SLP reduction chains. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different + definition types for reduction chains. + (vect_supported_load_permutation_p): Don't allow permutations for + reduction chains. + (vect_analyze_slp_instance): Support reduction chains. + (vect_analyze_slp): Try to build SLP instance from reduction chains. + (vect_get_constant_vectors): Handle reduction chains. + (vect_schedule_slp_instance): Mark the first statement of the + reduction chain as reduction. + +2011-05-18 Ira Rosen + + * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new + names for group elements access. + * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for + reduction chains as well. Remove data reference and interleaving + related words from the fields names. + * tree-vect-loop.c (vect_transform_loop): Use new names for group + elements access. + * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain, + vect_insert_into_interleaving_chain, vect_update_interleaving_chain, + vect_update_interleaving_chain, vect_same_range_drs, + vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel, + vect_verify_datarefs_alignment, vector_alignment_reachable_p, + vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment, + vect_analyze_group_access, vect_analyze_data_ref_access, + vect_create_data_ref_ptr, vect_transform_strided_load, + vect_record_strided_load_vectors): Likewise. + * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost, + vect_model_load_cost, vectorizable_store, vectorizable_load, + vect_remove_stores, new_stmt_vec_info): Likewise. + * tree-vect-slp.c (vect_build_slp_tree, + vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise. + +2011-05-18 Richard Guenther + + PR middle-end/48989 + * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op + operand verification. + (verify_gimple_assign_binary): Likewise. + * tree-ssa.c (useless_type_conversion_p): Preserve conversions + to non-1-precision BOOLEAN_TYPEs. + +2011-05-18 Tom de Vries + + PR target/45098 + * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost. + +2011-05-18 Jakub Jelinek + + PR tree-optimization/49000 + * tree-ssa.c (execute_update_addresses_taken): Call + maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't + be rewritten and decl has been marked for renaming, reset + the debug stmt. + +2011-05-17 Joseph Myers + + * config/i386/i386.c (ix86_valid_target_attribute_tree): Use + enum_opts_set when testing if attributes have set -mfpmath=. + +2011-05-17 Richard Sandiford + + * config/mips/mips.c (mips_handle_option): Remove unused variable. + +2011-05-17 Uros Bizjak + + * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize + info->entry with 0 + * tree-inline.c (maybe_inline_call_in_expr): Initialize + id.transform_lang_insert_block with NULL. + +2011-05-17 Uros Bizjak + + * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool. + (output_fp_compare): Change args 3 and 4 to bool. + (ix86_expand_call): Change arg 6 to bool. + (ix86_attr_length_immediate_default): Change arg 2 to bool. + (ix86_attr_length_vex_default): Change arg 3 to bool. + * config/i386/i386.md: Update all uses. + * config/i386/i386.c: Ditto. + (ix86_flags_dependent): Change return type to bool. + +2011-05-17 Richard Guenther + + * gimple.c (type_hash_pair_compare): Fix comparison. + +2011-05-17 Richard Guenther + + * gimple.c (iterative_hash_gimple_type): Simplify singleton + case some more, fix final hash value of the non-singleton case. + +2011-05-17 Richard Guenther + + PR bootstrap/49013 + Revert + 2011-05-16 Richard Guenther + + * gimple.c (gimple_types_compatible_p_1): Use names of the + type itself, not its main variant. + (iterative_hash_gimple_type): Likewise. + +2011-05-17 Richard Guenther + + * gimple.c (gimple_register_canonical_type): Use the main-variant + leader for computing the canonical type. + +2011-05-17 Nick Clifton + + * config/rx/rx.c (rx_memory_move_cost): Include cost of register + moves. + + * config/rx/rx.md: Add peephole to remove redundant extensions + after loads. + (bitset_in_memory): Use rx_restricted_mem_operand. + (bitinvert_in_memory): Likewise. + (bitclr_in_memory): Likewise. + +2011-05-17 Kazuhio Inaoka + Nick Clifton + + * config/rx/rx.md: Add peepholes to match a register move followed + by a comparison of the moved register. Replace these with an + addition of zero that does both actions in one instruction. + +2011-05-17 Jakub Jelinek + + PR target/48986 + * config/i386/sync.md (sync_old_add): Relax operand 2 + predicate to allow CONST_INT. + (*sync_old_add_cmp): New insn and peephole2 for it. + +2011-05-16 Joseph Myers + + * opts-common.c (opt_enum_arg_to_value): New. + * opts.h (opt_enum_arg_to_value): Declare. + * config/i386/i386.opt (fpmath): Remove. + (mfpmath=): Use Enum, Init and Save. + (fpmath_unit): New Enum and EnumValue entries. + * config/i386/i386-c.c (ix86_pragma_target_parse): Update field + name for function fpmath state. + * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h. + * config/i386/i386.c: Include diagnostic.h. + (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove. + (ix86_target_string): Take enum fpmath_unit value instead of string. + (ix86_debug_options): Update call to ix86_target_string. + (ix86_option_override_internal): Don't process fpmath strings here. + (x86_function_specific_save, ix86_function_specific_restore): + Don't handle fpmath state specially. + (ix86_function_specific_print): Pass fpmath state to + ix86_target_string instead of printing in this function. + (ix86_valid_target_attribute_inner_p): Take gcc_options pointer. + Handle enum attributes. + (IX86_ATTR_ENUM, ix86_opt_enum): New. + (ix86_valid_target_attribute_tree): Update option_strings + handling. Handle fpmath as enum option. + (ix86_can_inline_p): Update field names for function fpmath state. + (ix86_expand_builtin): Update call to ix86_target_string. + * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h. + (ix86_fpmath): Remove. + * config/i386/t-i386 (i386.o): Update dependencies. + +2011-05-16 Joseph Myers + + PR preprocessor/48677 + * cppspec.c (lang_specific_driver): Set new_decoded_options[0] + from decoded_options[0], not from itself. + +2011-05-16 Uros Bizjak + + * config/i386/constraints.md (z): New constraint. + * config/i386/i386.c (c): New mode attribute. + (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and + *call_1_rex64_large patterns using "P" mode iterator. Use "zm" + constraint for operand 0. + (*call_vzeroupper): Ditto. + (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0. + (*call_rex64_ms_sysv_vzeroupper): Ditto. + (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1. + Use "lzm" constraint for operand 0. + (*call_pop_vzeroupper): Ditto. + (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and + *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz" + constraint for operand 0. + (*sibcall_vzeroupper): Ditto. + (*sibcall_rex64_ms_sysv): Ditto. + (*sibcall_rex64_ms_sysv_vzeroupper): Ditto. + (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and + *sibcall_pop_1. Use "Uz" constraint for operand 0. + (*sibcall_pop_vzeroupper): Ditto. + (*call_value): Merge insn pattern from *call_value_0, *call_value_1, + *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P" + mode iterator. Use "zm" constraint for operand 1. + (*call_value_vzeroupper): Ditto. + (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint + for operand 1. + (*call_value_rex64_ms_sysv_vzeroupper): Ditto. + (*call_value_pop): Merge insn pattern from *call_value_pop_0 and + *call_value_pop_1. Use "lzm" constraint for operand 1. + (*call_value_pop_vzeroupper): Ditto. + (*sibcall_value): Merge insn pattern from *sibcall_value_0, + *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P" + mode iterator. Use "Uz" constraint for operand 1. + (*sibcall_value_vzeroupper): Ditto. + (*sibcall_value_rex64_ms_sysv): Ditto. + (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto. + (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz" + constraint for operand 1. + (*sibcall_value_pop_vzeroupper): Ditto. + (*tls_global_dynamic_64): Use constant_call_address_operand predicate + and "z" constraint for operand 2. + (*tls_global_dynamic_32_gnu): Ditto. + (*tls_local_dynamic_base_32_gnu): Ditto. + (*tls_local_dynamic_base_64): Ditto. + (*tls_local_dynamic_32_once): Ditto. + * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument. + Update all callers. + * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype. + +2011-05-16 Richard Guenther + + * gimple.c (gimple_types_compatible_p_1): Use names of the + type itself, not its main variant. + (iterative_hash_gimple_type): Likewise. + +2011-05-16 Richard Guenther + + * gimple.c (iterative_hash_gimple_type): Re-instantiate change to + always visit pointer target and function result and argument types. + +2011-05-16 Jason Merrill + + PR c++/48999 + * tree-inline.c (copy_statement_list): Put back recursion. + +2011-05-16 Georg-Johann Lay + + PR target/27663 + PR target/41076 + * config/avr/predicates.md (const_8_16_24_operand): New predicate. + * config/avr/avr.md ("*iorqi.byte0", + "*iorqi.byte1-3"): New define_insn_and_split patterns. + +2011-05-16 Georg-Johann Lay + + PR target/45099 + * config/avr/avr.c (avr_function_arg_advance): Error if a fixed + register is needed for a function argument. + +2011-05-16 Richard Guenther + + * gimple.c (struct type_hash_pair): New type. + (type_hash_pair_compare): New function. + (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order. + +2011-05-16 Revital Eres + + * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first. + +2011-05-15 Uros Bizjak + + * config/i386/i386.md (floating point move splitters): Fix + usage of standard_80387_constant_p. + * config/i386/i386.c (ix86_preferred_reload_class): Ditto. + +2011-05-15 Uros Bizjak + + * config/i386/i386.md (*movdf_internal): Simplify insn condition. + +2011-05-14 Eric Botcazou + + * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro. + (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN. + (tree_ssa_lim_finalize): Likewise. + +2011-05-14 Uros Bizjak + + * config/i386/constraint.md (Yd, Yx): New register constraints. + * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use + Yd conditional register constraint. + (*movtf_internal): Use standard_sse_constant_opcode. + (*movxf_internal): Merge with *movxf_internal_nointeger. Use + Yx conditional register constraint. + (*movdf_internal): Merge with *movdf_internal_nointeger. Use + Yd conditional register constraint. Use standard_sse_constant_p to + check for valid SSE constants and call standard_sse_constant_opcode to + output SSE insn. + (*movsf_internal): Use standard_sse_constant_p to check for valid SSE + constants and call standard_sse_constant_opcode to output SSE insn. + * config/i386/i386.c (ix86_option_ovverride_internal): Set + TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when + optimize_size is set. + (standard_sse_constant_opcode): Output conditional AVX insn templates. + +2011-05-14 Tobias Burnus + + * doc/invoke.texi (-Ofast): Also enables -fstack-arrays. + +2011-05-13 Martin Jambor + + * ipa-prop.c (ipa_cst_from_jfunc): New function. + * ipa-prop.h (ipa_cst_from_jfunc): Declare. + * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it. + (evaluate_conditions_for_ipcp_clone): Removed. + (estimate_ipcp_clone_size_and_time): Accept vector of known constants. + * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants. + * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update. + +2011-05-13 Eric Botcazou + + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message. + * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in + lieu of MAY_HAVE_DEBUG_STMTS. + * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move + debug statements if !MAY_HAVE_DEBUG_STMTS. + +2011-05-13 Martin Thuresson + + PR gcov-profile/47793 + * libgcov.c (gcov_exit): Support relative profile paths. + * doc/invoke.texi (-fprofile-dir): Update for above change. + +2011-05-13 Richard Guenther + + * gimple.c (gimple_canonical_types_compatible_p): Do not use + type-pair caching, do not compare hashes. + +2011-05-13 Nathan Froyd + + PR middle-end/48965 + * tree-cfg.c (edge_to_cases_cleanup): Return true. + (verify_expr) [CASE_LABEL_EXPR]: Add checking. + +2011-05-13 Kai Tietz + + * gimplify.c (gimplify_expr): Make sure operand is boolified. + * tree-cfg.c (verify_gimple_assign_unary): Check for boolean + compatible type for TRUTH_NOT_EXPR. + +2011-05-13 H.J. Lu + + * config/i386/i386.c (ix86_save_reg): Change return type to bool. + (ix86_hard_regno_mode_ok): Change return value to bool. Use + can_create_pseudo_p (). + +2011-05-13 Richard Guenther + + PR lto/48978 + * gimple.c (iterative_hash_gimple_type): Revert change in + pointer target and function result and argument hashing. + +2011-05-13 Uros Bizjak + + * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo (). + (*movxf_internal_nointeger): Ditto. + (*movdf_internal_rex64): Ditto. + (*movdf_internal): Ditto. + (*movdf_internal_nointeger): Ditto. + (*movsf_internal): Ditto. + (sincos splitters): Use can_create_pseudo (). + +2011-05-13 Joseph Myers + + * config/i386/i386-opts.h: New. + * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel, + ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost, + ix86_section_threshold): Remove. + (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle + OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and + OPT_mbranch_cost_. + (ix86_option_override_internal): Don't decode strings for options + other than -march=, -mtune= and -mfpmath=. Don't allow for + __attribute__ uses in remaining diagnostics for options with + string arguments. Don't check for integer arguments being negative. + * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi, + enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h. + (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect, + ix86_branch_cost, ix86_section_threshold): Remove. + * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New + HeaderInclude. + (malign-functions=, malign-jumps=, malign-loops=): Use UInteger + but not Var. + (masm=): Use Enum and Init. + (asm_dialect): New Enum and EnumValue entries. + (mbranch-cost=): Use UInteger. + (mlarge-data-threshold=): Use UInteger and Init. + (mcmodel=): Use Enum and Init. + (cmodel): New Enum and EnumValue entries. + (mpc): Replace with separate mpc32, mpc64 and mpc80 entries. + (mpreferred-stack-boundary=, mincoming-stack-boundary=, + mregparm=): Use UInteger. + (mstringop-strategy=): Use Enum and Init. + (stringop_alg): New Enum and EnumValue entries. + (mtls-dialect=): Use Enum and Init. + (tls_dialect): New Enum and EnumValue entries. + (mabi=): Use Enum and Init. + (calling_abi): New Enum and EnumValue entries. + (mveclibabi=): Use Enum and Init. + (ix86_veclibabi): New Enum and EnumValue entries. + +2011-05-13 Nick Clifton + + * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p. + * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype. + +2011-05-13 Kai Tietz + + PR middle-end/48984 + * gimplify.c (gimplify_expr): Check for boolean_type_node instead + for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR. + (gimple_boolify): Check for cast for boolean_type_node instead for + BOOLEAN_TYPE. + +2011-05-13 Richard Guenther + + PR tree-optimization/48172 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid + multiplying by number of iterations for equal step. + (vect_create_cond_for_alias_checks): Likewise. + +2011-05-13 Andreas Schwab + + * configure.ac: Use AS_HELP_STRING throughout. + * configure: Regenerate. + +2011-05-12 H.J. Lu + + * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool. + (ix86_emit_restore_regs_using_mov): Likewise. + (ix86_emit_restore_sse_regs_using_mov): Likewise. + +2011-05-12 Anatoly Sokolov + + * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, + SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove. + (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to... + * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P, + RTX_OK_FOR_OLO10_P): ...here. + (sparc_mode_dependent_address_p): Use symbolic_operand instead of + SYMBOLIC_CONST. + +2011-05-12 Kai Tietz + + * gimplify.c (gimple_boolify): Re-boolify expression + arguments even if expression type is of kind BOOLEAN_TYPE. + (gimplify_boolean_expr): Removed. + (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF, + and XOR. Additional take care that we keep expression's type. + * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type + of TRUTH_AND|OR|XOR_EXPR. + +2011-05-12 Jakub Jelinek + + PR tree-optimization/48975 + * tree-if-conv.c (combine_blocks): Call free_bb_predicate + on all bbs here and free and clear ifc_bbs at the end. + +2011-05-12 Richard Guenther + + * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle + NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup + until after simple checks. + (gimple_types_compatible_p): Likewise. + (iterative_hash_gimple_type): Always hash pointer targets + and function return and argument types. + (iterative_hash_canonical_type): Do not hash TYPE_QUALS, + hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE. + (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE, + handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates + completely in the simple compare section. + (gimple_register_canonical_type): Query the cache again after + registering. + +2011-05-12 Richard Guenther + + PR tree-optimization/48172 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude + the number of iterations from the segment size calculation. + (vect_create_cond_for_alias_checks): Adjust. + +2011-05-12 Jakub Jelinek + + PR debug/48967 + * var-tracking.c (use_narrower_mode_test) : Return 1 + if validate_subreg fails. + +2011-05-12 Hariharan Sandanagobalane + + * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from + accessing beyond the end of REGNO_REG_CLASS array by stopping the loop + early. + +2011-05-12 DJ Delorie + + * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions. + (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install + created builtin into rx_builtins array. + (rx_builtin_decl): New function. + (TARGET_BUITLIN_DECL): Define. Include gt-rx.h. + +2011-05-12 DJ Delorie + Nick Clifton + + * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo. + * config/rx/rx.c (CC_FLAG_FP): Fix comment. + (rx_is_legitimate_address): Add pre-decrement and post-increment + addressing in HImode and QImode. Fix test for out of range + REG+INT addressing. + (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant. + (rx_align_for_label): Test label before extracting its usage count. + (rx_adjust_insn_lengths): Fix selection of insn codes. + (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function. + +2011-05-11 Jason Merrill + + * tree.c (type_hash_canon): Use struct tree_type_non_common. + +2011-05-11 Eric Botcazou + + * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and + reindent the subsequent block. + +2011-05-11 Satoru Takabayashi + Paul Pluzhnikov + + * doc/install.texi (Configuration): Document --with-linker-hash-style. + * gcc.c (init_spec): Handle LINKER_HASH_STYLE. + * config.in: Add LINKER_HASH_STYLE. + * configure.ac: Add --with-linker-hash-style. + * configure: Regenerate. + +2011-05-11 Richard Guenther + + PR middle-end/48964 + * gimple.c (iterative_hash_canonical_type): Fix typo. + +2011-05-11 Uros Bizjak + + * config/i386/i386.c (legitimize_tls_address) + : Call gen_tls_dynamic_gnu2_{32,64} + expanders directly for TARGET_GNU2_TLS. Determine pic and + __tls_get_addr symbol reference here. Update call to + gen_tls_global_dynamic_{32,64} for added arguments. + : Call gen_tls_dynamic_gnu2_{32,64} + expanders directly for TARGET_GNU2_TLS. Determine + __tls_get_addr symbol reference here. Update call to + gen_tls_local_dynamic_base_{32,64} for added arguments. Attach + unique UNSPEC REG_EQUIV to libcall block. + (ix86_tls_get_addr): Declare static. + * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration. + * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3. + Do not determine pic and __tls_get_addr symbol reference here. Do not + call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS. + (tls_local_dynamic_base_32): Ditto for operands 1 and 2. + (tls_global_dynamic_64): Add operand 2. Do not determine + __tls_get_addr symbol reference here. Do not call + gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here. + (tls_local_dynamic_base64): Ditto for operand 1. + +2011-05-11 Eric Botcazou + + * function.c (expand_function_start): Initialize stack_check_probe_note + only if the generic stack checking mechanism is used. + +2011-05-11 Richard Guenther + + PR tree-optimization/15256 + * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize + (A & B) | C, combine (A op CST1) op CST2. + (tree_ssa_forward_propagate_single_use_vars): Only bother to + visit assigns that have uses. + +2011-05-11 Nathan Froyd + + * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common. + * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to... + (unpack_ts_type_common_value_fields): ...this. Update comment. + (unpack_value_fields): Adjust for renaming. + (lto_input_ts_type_tree_pointers): Split into... + (lto_input_ts_type_common_tree_pointer): ...this and... + (lto_input_ts_type_non_common_tree_pointers): ...this. + (lto_input_tree_pointers): Adjust for above split. + * lto-streamer-out.c (pack_ts_type_value_fields): Rename to... + (pack_ts_type_common_value_fields): ...this. Update comment. + (lto_output_ts_type_tree_pointers): Split into... + (lto_output_ts_type_common_tree_pointers): ...this and... + (lto_output_ts_type_non_common_tree_pointers): ...this. + (lto_output_tree_pointers): Adjust for above split. + * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON, + TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled. + * stor-layout.c (vector_type_mode): Adjust location of mode field. + * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC): + Define. + (struct tree_type): Split into... + (struct tree_type_common: ...this and... + (struct tree_type_with_lang_specific): ...this and... + (struct tree_type_non_common): ...this. Adjust accessor macros + accordingly. + (TYPE_VALUES_RAW): Define. + (union tree_node): Update for above changes. + * tree.c (tree_node_structure_for_code) [tcc_type]: Return + TS_TYPE_NON_COMMON. + (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON. + Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON. + (tree_code_size) [tcc_type]: Use struct tree_type_non_common. + * treestructu.def (TS_TYPE): Remove. + (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON): + Define. + +2011-05-11 Jakub Jelinek + + PR debug/48159 + * tree-ssa.c (reset_debug_uses): New function. + * tree-flow.h (reset_debug_uses): New prototype. + * tree-data-ref.c (stmts_from_loop): Ignore debug stmts. + * tree-loop-distribution.c (generate_loops_for_partition): Call + reset_debug_uses on the stmts that will be removed. Keep around + all debug stmts, don't count them as bits in partition bitmap. + (generate_builtin): Don't count debug stmts or labels as bits in + partition bitmap. + +2011-05-11 Richard Guenther + + * gimple.c (gimple_type_hash_1): Merge with ... + (gimple_type_hash): ... this. + (gtc_visit): Remove mode parameter and simplify accordingly. + (gimple_types_compatible_p_1): Likewise. + (gimple_types_compatible_p): Likewise. + (iterative_hash_gimple_type): Likewise. + (visit): Likewise. + (gimple_type_eq): Adjust. + +2011-05-11 Revital Eres + + * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge + enters the branch create an anti edge in the opposite direction + to prevent the creation of reg-moves. + * modulo-sched.c: Adjust comment to reflect the fact we are + scheduling closing branch. + (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine. + (stage_count): New field in struct partial_schedule. + (calculate_stage_count): New function. + (normalize_sched_times): Rename to reset_sched_times and handle + incrementing the sched time of the nodes by a constant value + passed as parameter. + (duplicate_insns_of_cycles): Skip closing branch. + (sms_schedule_by_order): Schedule closing branch. + (ps_insn_find_column): Handle closing branch. + (sms_schedule): Call reset_sched_times and adjust the code to + support scheduling of the closing branch. + (ps_insert_empty_row): Update calls to normalize_sched_times + and rotate_partial_schedule functions. + +2011-05-11 Richard Guenther + + PR middle-end/48953 + * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs. + +2011-05-11 Joseph Myers + + * opts.c (finish_options): Move warning settings from process_options. + * toplev.c (process_options): Move warning settings to finish_options. + +2011-05-11 Richard Guenther + + PR tree-optimization/18041 + * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ... + (simplify_bitwise_binary): ... this. Handle operand conversions + by applying them to the result instead. + (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code. + +2011-05-11 Richard Guenther + + * gimple.c (gimple_canonical_types_compatible_p): Split out + from gimple_types_compatible_p and friends. Do not recurse + to pointed-to types. + (gimple_canonical_type_eq): Use it. + (iterative_hash_canonical_type): Split out from + iterative_hash_gimple_type and friends. Do not recurse + to pointed-to types. + (gimple_canonical_type_hash): Use it, allocate the hash here. + +2011-05-11 Revital Eres + + * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while + recognizing doloop. + +2011-05-11 Revital Eres + + * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn + instead of PREV_INSN. + +2011-05-11 Revital Eres + + * modulo-sched.c (sms_schedule): Support new form of doloop pattern + * loop-doloop.c (doloop_condition_get): Likewise. + * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*". + (doloop_end): New. + * config/arm/arm.md (*addsi3_compare0): Remove "*". + +2011-05-10 Nathan Froyd + + * tree.def (CASE_LABEL_EXPR): Add an operand. + * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN. + +2011-05-10 Joseph Myers + + * c-decl.c (c_override_global_bindings_to_false): Remove. + (global_bindings_p): Don't check + c_override_global_bindings_to_false. + * c-tree.h (c_override_global_bindings_to_false): Remove. + * c-typeck.c (composite_type): Don't set + c_override_global_bindings_to_false. + +2011-05-10 Michael Meissner + + PR target/48857, 48495 + * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete. + (VSX_MODE): Ditto. + (VSX_MOVE_MODE): Ditto. + (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and + VSX vector types. Add V2DImode. + (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of + ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls. + (MODES_TIEABLE_P): Ditto. + + * config/rs6000/rs6000.c (rs6000_emit_move): Use + ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and + VSX_VECTOR_MODE. + (init_cumulative_args): Ditto. + (rs6000_function_arg_boundary): Ditto. + (rs6000_function_arg_advance_1): Ditto. + (rs6000_function_arg): Ditto. + (rs6000_function_ok_for_sibcall): Ditto. + (emit_frame_save): Ditto. + (rs6000_function_value): Ditto. + (rs6000_libcall_value): Ditto. + +2011-05-10 Joseph Myers + + * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add + i386/darwin-lib.h to $libgcc_tm_file. + * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove. + +2011-05-10 Joseph Myers + + * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk. + +2011-05-10 Joseph Myers + + * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files. + * config/rs6000/rs6000-tables.opt: New file (generated). + * config.gcc (powerpc*-*-*, rs6000*-*-*): Add + rs6000/rs6000-tables.opt to extra_options. + * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define. + * config/rs6000/rs6000.c (rs6000_select): Remove. + (processor_target_table): Move contents to rs6000-cpus.def. + (darwin_rs6000_override_options): Check + global_options_set.x_rs6000_cpu_index instead of + rs6000_select[1].string. + (rs6000_option_override_internal): Likewise. + (rs6000_handle_option): Don't assert that global structures are in + use. Don't handle OPT_mcpu_ and OPT_mtune_ here. + (rs6000_default_cpu): New variable. + (rs6000_file_start): Set it instead of local default_cpu. Check + rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and + global_options_set.x_rs6000_tune_index instead of rs6000_select. + (rs6000_darwin_file_start): Check rs6000_default_cpu and + global_options_set.x_rs6000_cpu_index instead of rs6000_select. + * config/rs6000/rs6000.h (struct rs6000_cpu_select, + rs6000_select): Remove. + * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index): + Remove. + (mcpu=, mtune=): Use Var, Init, Enum and Save. + * config/rs6000/t-rs6000 + ($(srcdir)/config/rs6000/rs6000-tables.opt): New. + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check + global_options_set.x_rs6000_cpu_index instead of + rs6000_select[1].string. + * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check + global_options_set.x_rs6000_cpu_index instead of + rs6000_select[1].string. + +2011-05-10 Joseph Myers + + * config.gcc (libgcc_tm_file): Define instead of including files + from ../../libgcc/config/ in tm_file. + * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define. + * configure: Regenerate. + * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list, + libgcc_tm.h, cs-libgcc_tm.h): New. + (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list). + (clean): Remove libgcc_tm.h. + * config/arm/symbian.h (RENAME_LIBRARY): Remove. + * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET. + * system.h (DECLARE_LIBRARY_RENAMES): Poison. + +2011-05-10 Georg-Johann Lay + + PR target/48896 + * config/avr/avr.c (avr_ret_register): Return unsigned int + instead of int. + (avr_function_value): Mark fn_decl_or_type as unused, don't pass + it to avr_libcall_value. + avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to + expand_expr. + (avr_expand_binop_builtin): Ditto. + (avr_expand_unop_builtin): Ditto. + +2011-05-10 DJ Delorie + + * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define. + (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label + * config/rx/rx.c (rx_align_for_label): Add label and + uses_threshold parameters. Do not align when the label is not + used enough. + * config/rx/rx-protos.h (rx_align_for_label): Update prototype. + +2011-05-10 Richard Guenther + + * tree-ssa-forwprop.c (combine_conversions): Pattern-match + a series of conversions and apply foldings similar to what + fold-const does. + (tree_ssa_forward_propagate_single_use_vars): Call it. + +2011-05-10 Jakub Jelinek + + PR tree-optimization/48611 + PR tree-optimization/48794 + * tree-eh.c (remove_unreachable_handlers): Don't remove regions + referenced from RESX or EH_DISPATCH arguments. + + PR debug/48928 + * dfp.c (decimal_to_decnumber): Handle conversion from + dconst{1,2,m1,half}. + +2011-05-09 Uros Bizjak + + * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0 + for !flag_prefer_avx128. + (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2. + +2011-05-09 Eric Botcazou + + * fold-const.c (fold_range_test): Pass LOC to build_range_check. + (fold_ternary_loc): Use expr_location_or. + +2011-05-09 H.J. Lu + + PR debug/48853 + * dwarf2out.c (mem_loc_descriptor) : If + POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is + Pmode and mem_mode is not VOIDmode. + +2011-05-09 Ville Voutilainen + + * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, + TYPE_QUAL_RESTRICT): Convert to enum. + +2011-05-09 Uros Bizjak + + * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove. + (const_pow2_1_to_8_operand): Ditto. + (const_pow2_1_to_128_operand): Ditto. + (const_pow2_1_to_32768_operand): Ditto. + * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of + const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2 + in insn constraint to check integer value of operand 3. + * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto. + + (PINSR_MODE): New mode iterator. + (sse2p4_1): New mode attribute. + (_pinsr): Merge insn from sse4_1_pinsrb, + sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode + iterator. Use const_int_operand instead of + const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use + exact_log2 in insn constraint to check integer value of operand 3. + +2011-05-09 Uros Bizjak + + * config/i386/sse.md (blendbits): Remove mode attribute. + (_blend): Use const_int_operand + instead of const_0_to__operand for operand 3 predicate. + Check integer value of operand 3 in insn constraint. + +2011-05-09 Richard Guenther + + * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p + for diagnostics. + (lto_symtab_merge): Likewise. Do not register types here. + (lto_symtab_merge_decls_2): Likewise. + (lto_symtab_merge_decls_1): Likewise. + * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare. + * gimple.c (enum gtc_mode): Declare. + (gimple_types_compatible_p): Make static. + +2011-05-09 Andreas Krebbel + + * config/s390/s390.md (TD/TF mem to reg move splitter): Make the + temporary register to match Pmode. + +2011-05-09 Uros Bizjak + + * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1 + and *vec_concatv4si_1_avx. + +2011-05-09 Uros Bizjak + + PR rtl-optimization/48927 + * ira-conflicts.c (commutative_constraint_p): Use + recog_data.alternative_enabled_p to disable alternatives where + "enabled" attribute is false. + (get_dup_num): Ditto. + * ira-lives.c (single_reg_class): Ditto. + (ira_implicitly_set_insn_hard_regs): Ditto. + +2011-05-09 Eric Botcazou + + * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. + (dataflow_set_preserve_mem_locs): Likewise. + +2011-05-09 Philipp Thomas + + * config/mep/mep.c (mep_validate_vliw): Syntax description + should not be translated. + +2011-05-09 Joseph Myers + + * config/mips/genopt.sh, config/mips/mips-cpus.def: New files. + * config/mips/mips-tables.opt: New file (generated). + * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options. + * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI, + MIPS_ARCH_OPTION_NATIVE): Define. + * config/mips/mips.c (mips_cpu_info_table): Move contents to + mips-cpus.def. + (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p, + mips_parse_cpu): Remove. + (mips_cpu_info_from_opt, mips_default_arch): New. + (mips_handle_option): Don't assert that global structures are in + use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here. + (mips_option_override): Use new variables and functions to set + state of these options. Use strcmp to check for individual CPU names. + * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default + definition. + * config/mips/mips.opt (march=): Use ToLower and Enum. + (mips): Use ToLower, Enum and Var. + (mtune=): Use ToLower and Enum. + * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New. + +2011-05-08 Jan Hubicka + + * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair): + Arrange type pairs to be UID ordered. + (gimple_lookup_type_leader): Make inline. + +2011-05-09 Nick Clifton + + PR target/48899 + * config/iq2000/iq2000.opt (iq2000_tune): Initialise to + PROCESSOR_DEFAULT. + + PR target/48897 + * config/mn10300/mn10300.c (extract_bundle): Remove spurious local + variable 's'. + +2011-05-08 Chung-Lin Tang + + * combine.c (simplify_comparison): Abstract out parts into... + (simplify_compare_const): ... new function. + (try_combine): Generalize parallel arithmetic/compare combining + to call simplify_compare_const() and CANONICALIZE_COMPARE(). + +2011-05-08 Jan Hubicka + + * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter. + (cgraph_create_virtual_clone): Call hooks once virtual clone + is finished. + * cgraph.h (cgraph_clone_node): Update prototype. + * ipa-cp.c (ipcp_estimate_growth): Use + estimate_ipcp_clone_size_and_time. + * ipa-inline-transform.c (clone_inlined_nodes): Update. + * lto-cgraph.c (input_node): Update. + * ipa-inline.c (recursive_inlining): Update. + * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function. + (evaluate_conditions_for_known_args): Break out from ... + (evaluate_conditions_for_edge): ... here. + (evaluate_conditions_for_ipcp_clone): New function. + (inline_node_duplication_hook): Update clone summary based + on parameter map. + (estimate_callee_size_and_time): Rename to ... + (estimate_node_size_and_time): take NODE instead of EDGE; + take POSSIBLE_TRUTHS as argument. + (estimate_callee_size_and_time): Update. + (estimate_ipcp_clone_size_and_time): New function. + (do_estimate_edge_time): Update. + +2011-05-08 Richard Guenther + + PR middle-end/48908 + PR middle-end/48905 + * expmed.c (expand_shift_1): Compute adjusted constant shift + amount manually. + +2011-05-08 Eric Botcazou + + * config/avr/avr.c (print_operand_address): Fix invalid RTL access. + +2011-05-08 Eric Botcazou + + * config/rs6000/rs6000.c (output_profile_hook): Fix thinko. + +2011-05-08 Jonathan Wakely + + * doc/invoke.texi (-fuse-linker-plugin): Improve grammar. + +2011-05-07 Jan Hubicka + + * ipa-inline-transform.c (inline_call): Account when program size + decreases. + * ipa-inline.c (relative_time_benefit): New function. + (edge_badness): Reorganize to be power 2 based; fix thinko when + computing badness for negative growth; update comments to match + reality; better dumps. + +2011-05-07 Eric Botcazou + + * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return + type to bool and adjust comment. + * fold-const.c (fold_range_test): Adjust call to global_bindings_p. + (fold_mathfn_compare): Remove calls to global_bindings_p. + (fold_inf_compare): Likewise. + * stor-layout.c (variable_size): Adjust call to global_bindings_p. + * c-tree.h (global_bindings_p): Adjust prototype. + * c-decl.c (global_bindings_p): Return bool and simplify. + +2011-05-07 Zdenek Dvorak + + PR tree-optimization/48837 + * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls + when accumulator transformation is performed. + +2011-05-06 Jan Hubicka + + * i386.h (ix86_tune_indices): Add + X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL. + (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro. + * i386.c (initial_ix86_tune_features): Add + X86_SOFTARE_PREFETCHING_BENEFICIAL. + (software_prefetching_beneficial_p): Remove predicate. + (ix86_option_override_internal): Use new macro. + +2011-05-06 Jan Hubicka + + * ipa-inline.c (update_callee_keys): Don't reset node growth cache. + +2011-05-06 Jan Hubicka + + * cgraph.c (cgraph_add_thunk): Create real function node instead + of alias node; finalize it and mark needed/reachale; arrange visibility + to be right and add it into the corresponding same comdat group list. + (dump_cgraph_node): Dump thunks. + * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function, + cgraph_function_with_gimple_body_p, + cgraph_first_function_with_gimple_body, + cgraph_next_function_with_gimple_body): New functions. + (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION): + New macros. + * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected. + (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. + * cgraphunit.c (cgraph_finalize_function): Only look into possible + devirtualization when optimizing. + (verify_cgraph_node): Verify thunks. + (cgraph_analyze_function): Analyze thunks. + (cgraph_mark_functions_to_output): Output thunks only in combination + with function they are assigned to. + (assemble_thunk): Turn thunk into non-thunk; don't try to turn + alias into normal node. + (assemble_thunks): New functoin. + (cgraph_expand_function): Use it. + * lto-cgraph.c (lto_output_node): Stream thunks. + (input_overwrite_node): Stream in thunks. + * ipa-pure-const.c (analyze_function): Thunks do nothing interesting. + * lto-streamer-out.c (lto_output): Do not try to output thunk's body. + * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION. + * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks. + (inline_analyze_function): Do not care about thunk jump functions. + (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION. + * ipa-prop.c (ipa_prop_write_jump_functions): Use + cgraph_function_with_gimple_body_p. + * passes.c (do_per_function_toporder): Use + cgraph_function_with_gimple_body_p. + (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. + (ipa_write_summaries): Use cgraph_function_with_gimple_body_p. + (function_called_by_processed_nodes_p): Likewise. + +2011-05-06 Joseph Myers + + * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi, + rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable + entries. + (mabi=): Replace with separate entries for mabi=altivec, + mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32, + mabi=ieeelongdouble and mabi=ibmlongdouble. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Move + check for -mabi=spe without SPE ABI support here. + (rs6000_handle_option): Replace OPT_mabi_ handling with + OPT_mabi_altivec and OPT_mabi_spe handling. + +2011-05-06 Cary Coutant + + * dwarf2out.c (contains_subprogram_definition): New function. + (should_move_die_to_comdat): Call it. + +2011-05-06 Jeff Law + + * tree-ssa-threadupdate.c (create_block_for_threading): Do not call + remove_ctrl_stmt_and_useless_edges. + (create_duplicates): Call remove_ctrl_stmt_and_useless_edges. + (fixup_template_block, thread_single_edge): Likewise. + (mark_threaded_blocks): Use THREAD_TARGET. + +2011-05-06 Alan Modra + + PR target/48900 + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use + const0_rtx as the arg to the dummy __tls_get_addr libcall. + +2011-05-06 Uros Bizjak + + * config/i386/i386.md (*movdf_internal_nointeger): Apply "*" + constraint modifier to "r". + +2011-05-06 Joseph Myers + + * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and + fall through for OPT_mcmodel_. + +2011-05-06 Andreas Krebbel + + * config/s390/s390.c (s390_asm_trampoline_template): Comment + instruction sizes. + (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG. + +2011-05-06 Ramana Radhakrishnan + + PR target/47930 + * config/arm/arm.opt (marm): Document it. + (mthumb): Reject negative variant. + +2011-05-06 Uros Bizjak + + PR target/48898 + * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name): + Fix typo in "ccvt" variable name. + +2011-05-06 Tristan Gingold + + PR target/48895 + * config/vms/vms-ar.c (main): Remove cwd variable. + +2011-05-06 Jakub Jelinek + + PR debug/48902 + * var-tracking.c (prepare_call_arguments): Move else before #endif. + +2011-05-05 Nathan Froyd + + * except.c (sjlj_emit_dispatch_table): Call build_case_label. + * gimplify.c (gimplify_switch_expr): Likewise. + * omp-low.c (expand_omp_sections): Likewise. + * tree-eh.c (lower_try_finally_switch): Likewise. + (lower_eh_dispatch): Likewise. + * tree.h (build_case_label): Declare. + * tree.c (build_case_label): Define. + +2011-05-05 Jason Merrill + + PR c++/40975 + * tree-inline.c (copy_tree_r): Use copy_statement_list. + (copy_statement_list): Don't recurse. + * stor-layout.c (copy_self_referential_tree_r): Don't allow + STATEMENT_LIST. + +2011-05-05 Joseph Myers + + * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall + through from -mfpu= handling. + * config/rs6000/rs6000.opt (mfpu=): Use Var and Init. + +2011-05-05 Bernd Schmidt + + * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle + POST_MODIFY. + +2011-05-05 Steve Ellcey + + * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options + for 11.31. + (hppa[12]*-*-hpux11*): Ditto. + (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file. + * config/ia64/hpux-unix2003.h: New. + * config/pa/pa-hpux1131.opt: New. + * config/pa/pa-hpux1131.h: New. + * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested. + * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value. + * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value. + +2011-05-05 Jakub Jelinek + + PR debug/48853 + * dwarf2out.c (mem_loc_descriptor) : Pass mem_mode + instead of mode as 3rd argument to recursive call. + (mem_loc_descriptor) : If POINTERS_EXTEND_UNSIGNED, don't + emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not + VOIDmode. + (mem_loc_descriptor) : If POINTERS_EXTEND_UNSIGNED, + don't give up if mode is Pmode and mem_mode is not VOIDmode. + (mem_loc_descriptor) : If POINTERS_EXTEND_UNSIGNED, + use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode. + +2011-05-05 Julian Brown + + * config/arm/neon.md (vec_set_internal): Fix misplaced + parenthesis in D-register case. + +2011-05-05 Joseph Myers + + * opt-functions.awk (var_type_struct): Handle Enum options. + * optc-gen.awk: Don't check range of variables of character type. + * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str, + rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name, + rs6000_sdata_name, rs6000_explicit_options): Remove. + (rs6000_option_override_internal): Check for -malign-power here. + Use global_options_set instead of rs6000_explicit_options. + (rs6000_parse_fpu_option): Remove. + (rs6000_handle_option): Access variables via opts and opts_set + pointers. Use error_at and warning_at. Add fall-through + comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return, + OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_, + OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_, + OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly + here. Don't use rs6000_parse_fpu_option. + * config/rs6000/rs6000.h (fpu_type): Remove declaration. + * config/rs6000/rs6000.opt (rs6000_long_double_type_size, + rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries. + (mrecip=): Use Var. + (mspe): Use Var and Save. + (mtraceback=): Use Enum and Var. + (rs6000_traceback_type): New Enum and EnumValue entries. + (mfloat-gprs=): Use Enum, Var and Save. + (rs6000_float_gprs): New Enum and EnumValue entries. + (mlong-double-): use Var and Save. + (msched-costly-dep=, minsert-sched-nops=): Use Var. + (malign-): Use Enum and Var. + (rs6000_alignment_flags): New Enum and EnumValue entries. + (mfpu=): Use Enum. + (fpu_type_t): New Enum and EnumValue entries. + * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out + definition. + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var. + (rs6000_cmodel): New Enum and EnumValue entries. + * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use + global_options_set instead of rs6000_explicit_options. + * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var. + (mtls-size=): Use Enum and Var. + (rs6000_tls_size): New Enum and EnumValue entries. + +2011-05-05 Michael Matz + + * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast. + * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast. + * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast. + * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast. + * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast. + * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast. + * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast. + * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast. + * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast. + * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast. + * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast. + * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast. + * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast. + * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast. + * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast. + * config/mips/linux.h (ENDFILE_SPEC): Add Ofast. + +2011-05-05 Richard Guenther + + * expmed.c (expand_variable_shift): Rename to ... + (expand_shift_1): ... this. Take an expanded shift amount. + For rotates recurse directly not building trees for the shift amount. + (expand_variable_shift): Wrap around expand_shift_1. + (expand_shift): Adjust. + +2011-05-05 Jakub Jelinek + + * gimplify.c (create_tmp_var_raw): Don't call build_type_variant. + +2011-05-05 Eric Botcazou + + * tree.h (get_pending_sizes): Remove prototype. + (put_pending_size): Likewise. + (put_pending_sizes): Likewise. + * stor-layout.c (pending_sizes): Delete. + (get_pending_sizes): Likewise. + (put_pending_size): Likewise. + (put_pending_sizes): Likewise. + (variable_size): Do not call put_pending_size and tidy up. + * function.h (struct function): Remove dont_save_pending_sizes_p. + * lto-streamer-in.c (input_function): Do not stream it. + * lto-streamer-out.c (output_function): Likewise. + * tree-inline.c (initialize_cfun): Do not copy it. + * c-decl.c (store_parm_decls): Do not set it. + * omp-low.c (create_task_copyfn): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + +2011-05-05 Uros Bizjak + + * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if" + conditions. + (*movdf_internal): Ditto. + (*movdf_internal_nointeger): Ditto. + (*movsf_internal): Ditto. + +2011-05-05 Joseph Myers + + * c-decl.c (finish_decl): Don't call get_pending_sizes. + (grokparm): Add parameter expr. Pass it to grokdeclarator. + (push_parm_decl): Add parameter expr. Pass it to grokdeclarator. + (c_variable_size): Remove. + (grokdeclarator): Use save_expr instead of c_variable_size. Don't + call put_pending_sizes. + (get_parm_info): Add parameter expr. Use it to set + arg_info->pending_sizes. + (store_parm_decls): Use arg_info->pending_sizes instead or calling + get_pending_sizes. + * c-parser.c (c_parser_parms_declarator): Update call to + c_parser_parms_list_declarator. + (c_parser_parms_list_declarator): Take parameter expr. Update + call to push_parm_decl. Update recursive call. Don't call + get_pending_sizes. Update calls to get_parm_info. + (c_parser_objc_method_definition): Update calls to + c_parser_objc_method_decl and objc_start_method_definition. + (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl. + (c_parser_objc_method_decl): Add parameter expr. Update call to + grokparm. + (c_parser_objc_try_catch_finally_statement): Update call to grokparm. + * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree. + (get_parm_info, grokparm, push_parm_decl): Update prototypes. + +2011-05-05 Michael Hope + + PR pch/45979 + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for + __ARM_EABI__ hosts. + +2011-05-05 Ulrich Weigand + + * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. + (spu_output_mi_thunk): New function. + +2011-05-05 Rainer Orth + + * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use + targetm.asm_out.print_operand. + * config/sol2.c: Include target.h. + +2011-05-04 Jan Hubicka + + * ipa-inline.c (reset_edge_caches): New function. + (update_caller_keys): Add check_inlinablity_for; do not + reset edge caches; remove now unnecesary loop. + (update_callee_keys): Add comments; reset node_growth_cache of callee. + (update_all_callee_keys): Likewise. + (inline_small_functions): Sanity check cache; update code + recomputing it. + +2011-05-04 Bernd Schmidt + + PR rtl-optimization/47612 + * df-problems.c (can_move_insns_across): Don't pick a cc0 setter + as the last insn of the sequence to be moved. + +2011-05-04 Tobias Burnus + + PR fortran/48864 + * doc/invoke.texi (Ofast): Document that it + enables Fortran's -fno-protect-parens. + +2011-05-04 Uros Bizjak + + * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first. + +2011-05-04 Eric Botcazou + + * stor-layout.c (variable_size): Do not issue errors. + +2011-05-04 Richard Guenther + + * coverage.c (tree_coverage_counter_ref): Use integer_type_node + for array-ref indices. + (tree_coverage_counter_addr): Likewise. + (build_fn_info_type): Use size_int for index types. + (build_gcov_info): Likewise. + +2011-05-04 Richard Guenther + + * c-decl.c (check_bitfield_type_and_width): Do not pass NULL + to build_int_cst. + * c-typeck.c (really_start_incremental_init): Use bitsize_int + for constructor indices. + (push_init_level): Likewise. + +2011-05-04 Richard Guenther + + * explow.c (promote_mode): Move variable declarations before code. + +2011-05-04 Nathan Froyd + + * tree.h (build_function_type_array): Declare. + (build_varargs_function_type_array): Declare. + (build_function_type_vec, build_varargs_function_type_vec): Define. + * tree.c (build_function_type_array_1): New function. + (build_function_type_array): New function. + (build_varargs_function_type_array): New function. + +2011-05-04 Richard Sandiford + + * tree-vect-loop.c (vectorizable_reduction): Check reduction cost + before setting STMT_VINFO_TYPE. + +2011-05-04 Ulrich Weigand + + * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference + instead of spu_pass_by_reference. + +2011-05-04 Andreas Krebbel + + * calls.c (emit_library_call_value_1): Invoke + promote_function_mode hook on libcall arguments. + * explow.c (promote_function_mode, promote_mode): Handle TYPE + argument being NULL. + * targhooks.c (default_promote_function_mode): Lisewise. + * config/s390/s390.c (s390_promote_function_mode): Likewise. + * config/sparc/sparc.c (sparc_promote_function_mode): Likewise. + + * doc/tm.texi: Document that TYPE argument might be NULL. + +2011-05-04 Stuart Henderson + + * config/bfin/bfin.c (bfin_cpus): Update silicon revisions. + +2011-05-04 Stuart Henderson + + From Bernd Schmidt + * config/bfin/bfin.md (addsi3): Add an alternative for IREGS. + +2011-05-04 Rainer Orth + + * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB) + (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET): + Move ... + * mips-tfile.c: ... here. + Don't include coretypes.h, tm.h, filenames.h. + (saber_stop): Remove definition and all calls. + [__SABER__]: Remove. + (__LINE__): Remove default. + (Size_t, Ptrdiff_t): Remove definitions. + Replace by size_t, ptrdiff_t. + [!MIPS_DEBUGGING_INFO]: Remove. + (SHASH_SIZE, THASH_SIZE): Remove defaults. + (progname): Add const. + (STATIC): Remove. + Replace all uses by static. + (ALIGN_SYMTABLE_OFFSET): Remove default. + * mips-tdump.c: Don't include coretypes.h, tm.h. + Remove !MIPS_IS_STAB guard. + * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h, + $(TM_H), filenames.h dependencies. + (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies. + +2011-05-04 Stuart Henderson + + From Jie Zhang + *config/bfin/bfin.c (bfin_extra_live_on_entry): New. + (TARGET_EXTRA_LIVE_ON_ENTRY): Define. + +2011-05-04 Stuart Henderson + + From Bernd Schmidt + * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into + account and save/restore RETS. + (PROFILE_BEFORE_PROLOGUE): Define. + (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct + the push insn to use predecrement. + +2011-05-04 Stuart Henderson + + From Jie Zhang + * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2. + +2011-05-04 Nick Clifton + + * config/mn10300/mn10300.c: Include cfgloop.h. + (DUMP): New macro. + (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a + Lcc or a FLcc insn into the instruction stream. + (mn10300_block_contains_call): New function. Returns true if the + given basic block contains a CALL insn. + (mn10300_loop_contains_call_insn): New function. Returns true if + the given loop contains a CALL insn. + (mn10300_scan_for_setlb_lcc): New function. Finds opportunities + to use the SETLB and Lcc or FLcc insns. + (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing. + (TARGET_FLAGS): Add MASK_ALLOW_SETLB. + * config/mn10300/mn10300.opt (msetlb): New option. Used to + disable the SETLB optimization. + * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add + __SETLB__ or __NO_SETLB__. + * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant. + (movsf_internal): Handle MDR register. + (cmpsi): Make visible. + (setlb): New pattern. + (Lcc): New pattern. + (FLcc): New pattern. + +2011-05-04 Uros Bizjak + + PR target/48860 + * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd + for reg<->xmm moves. + * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto. + (vec_concatv2di_rex64_sse): Ditto. + (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic. + (*vec_extractv2di_1_rex64): Ditto. + + Revert: + 2011-05-02 Uros Bizjak + + * config/i386/mmx.md (*mov_internal_rex64): Use %vmovq for + reg<->xmm moves. + (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. + +2011-05-04 Richard Guenther + + * tree.h (int_const_binop): Remove notrunc argument. + * fold-const.c (int_const_binop): Remove notrunc argument. Always + create integer constants that are properly truncated. + (extract_muldiv_1): Expand one notrunc int_const_binop caller. + (const_binop): Remove zero notrunc argument to int_const_binop. + (size_binop_loc): Likewise. + (fold_div_compare): Likewise. + (maybe_canonicalize_comparison_1): Likewise. + (fold_comparison): Likewise. + (fold_binary_loc): Likewise. + (multiple_of_p): Likewise. + * expr.c (store_constructor): Likewise. + * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise. + (maybe_fold_stmt_addition): Likewise. + * ipa-prop.c (ipa_modify_call_arguments): Likewise. + * stor-layout.c (layout_type): Likewise. + * tree-data-ref.c (tree_fold_divides_p): Likewise. + * tree-sra.c (build_ref_for_offset): Likewise. + (build_user_friendly_ref_for_offset): Likewise. + * tree-ssa-address.c (maybe_fold_tmr): Likewise. + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. + * tree-ssa-loop-niter.c (inverse): Likewise. + * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. + * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise. + * tree-switch-conversion.c (check_range): Likewise. + (build_constructors): Likewise. + * tree-vect-generic.c (expand_vector_piecewise): Likewise. + * tree-vrp.c (set_and_canonicalize_value_range): Likewise. + (extract_range_from_assert): Likewise. + (vrp_int_const_binop): Likewise. + (extract_range_from_binary_expr): Likewise. + (extract_range_from_unary_expr): Likewise. + (check_array_ref): Likewise. + (find_case_label_range): Likewise. + (simplify_div_or_mod_using_ranges): Likewise. + * tree-cfg.c (group_case_labels_stmt): Use double-ints for + comparing case labels for merging. + +2011-05-03 Mark Wielaard + + * dwarf2out.c (debug_str_hash_forced): Removed. + (gen_label_for_indirect_string): Removed. + (get_debug_string_label): Removed. + (AT_string_form): Generate label directly. + (output_indirect_string): Test indirect_string_node for + DW_FORM_strp instead of checking label and refcount. + (prune_indirect_string): Removed. + (prune_unused_types): Don't check debug_str_hash_forced or + call prune_indirect_string. + +2011-05-04 Alexandre Oliva + + PR other/48093 + * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG. + +2011-05-04 Alexandre Oliva + + PR debug/47994 + PR debug/47919 + * combine.c (try_combine): Skip debug insns at m_split tests. + +2011-04-26 Mark Wielaard + + PR42288 + * dwarf2out.c (dwarf2out_finish): Always call output_aranges () + when info_section_emitted. + +2011-05-03 Joseph Myers + + * config/mips/mips-opts.h: New. + * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move + to mips-opts.h. + (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove. + (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_ + or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func + via opts pointer. + * config/mips/mips.h (enum mips_code_readable_setting): Move to + mips-opts.h. + (mips_abi, mips_code_readable): Don't declare. + * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude. + (mabi=): Use Enum and Var. + (mips_abi): New Enum and EnumValue entries. + (mcode-readable=): Use Enum and Var. + (mips_code_readable_setting): New Enum and EnumValue entries. + (mr10k-cache-barrier=): Use Enum and Var. + (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries. + +2011-05-03 Jan Hubicka + + * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY; + replace hash by pointer map. + (cgraph_node_set_element_def, cgraph_node_set_element, + const_cgraph_node_set_element, varpool_node_set_element_def, + varpool_node_set_element, const_varpool_node_set_element): Remove. + (free_cgraph_node_set, free_varpool_node_set): New function. + (cgraph_node_set_size, varpool_node_set_size): Use vector size. + * tree-emutls.c: Free varpool node set. + * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add, + cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set, + debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new, + varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, + dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set): + Move here from ipa.c; implement using pointer_map + * ipa.c (cgraph_node_set_new, cgraph_node_set_add, + cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set, + debug_cgraph_node_set, varpool_node_set_new, + varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, + dump_varpool_node_set, debug_varpool_node_set): + Move to ipa-uitls.c. + * passes.c (ipa_write_summaries): Update. + +2011-05-03 Stuart Henderson + + From Mike Frysinger: + * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for + bf542/bf544/bf547/bf548/bf549. + +2011-05-03 Uros Bizjak + + * expmed.c (extract_bit_field_1): Remove write-only variable "icode". + +2011-05-03 Stuart Henderson + + From Bernd Schmidt: + * config/bfin/bfin.md (MOVCC): New mode_macro. + (movcc_insn1, movcc_insn2, movcc): Renamed from + movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove + comments from generated assembly. + +2011-05-03 Stuart Henderson + + From Bernd Schmidt + * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart. + * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3. + * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3. + * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3. + * config/bfin/lib1funcs.asm (___muldi3): New function. + +2011-05-03 Nathan Froyd + + * config/stormy16/stormy16 (xstormy16_init_builtins): Call + build_function_type_list instead of build_function_type. + Rearrange initialization of `args' to do so. + +2011-05-03 Nathan Froyd + + * config/i386/i386.c (ix86_code_end): Call build_function_type_list + instead of build_function_type. + +2011-05-03 Nathan Froyd + + * config/rs6000/rs6000.c (spe_init_builtins): Call + build_function_type_list instead of build_function_type. + (paired_init_builtins, altivec_init_builtins): Likewise. + (builtin_function_type): Likewise. + +2011-05-03 Nathan Froyd + + * config/sh/sh.c (sh_media_init_builtins): Call + build_function_type_list instead of build_function_type. + +2011-05-03 Nathan Froyd + + * config/sparc/sparc.c (sparc_file_end): Call + build_function_type_list instead of build_function_type. + +2011-05-03 Nathan Froyd + + * config/alpha/alpha.c (alpha_init_builtins): Call + build_function_type_list instead of build_function_type. + +2011-05-03 Nathan Froyd + + * config/xtensa/xtensa.c (xtensa_init_builtins): Call + build_function_type_list instead of build_function_type. + +2011-05-03 Nathan Froyd + + * config/iq2000/i2000.c (iq2000_init_builtins): Call + build_function_type_list instead of build_function_type. + Delete `endlink' variable. + +2011-05-03 Nathan Froyd + + * config/avr/avr.c (avr_init_builtins): Call + build_function_type_list instead of build_function_type. + +2011-05-03 Nathan Froyd + + * config/picochip/picochip.c (picochip_init_builtins): Call + build_function_type_list instead of build_function_type. + Delete `endlink' variable. + +2011-05-03 Nathan Froyd + + * config/bfin/bfin.c (bfin_init_builtins): Call + build_function_type_list instead of build_function_type. + +2011-05-03 Stuart Henderson + + From Bernd Schmidt + * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything + that's not CONST_INT. Seemingly redundant check is due to PR39768. + +2011-05-03 Stuart Henderson + + From Jie Zhang: + * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure + libbffastfp overrides libgcc when -mfast-fp. + +2011-05-03 Stuart Henderson + + Originally from Bernd Schmidt + * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro. + * config/bfin/bfin.c (override_options): Test it and error if + TARGET_FDPIC. + +2011-05-03 Stuart Henderson + + Originally From Bernd Schmidt + * config/bfin/bfin.c (override_options): Disable -fstack-limit for + FD-PIC. + +2011-05-03 Jeff Law + + * tree-ssa-threadupdate.c (THREAD_TARGET): define. + (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges. + (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather + than accessing AUX field directly. Free the AUX field before + clearing it. + (thread_block, thread_through_loop_header): Likewise. + (thread_single_edge, mark_threaded_blocks): Likewise. + (redirect_edges): Delay clearing the AUX field. Free the AUX field. + (register_jump_thread): Do not attempt to thread to a NULL edge. + +2011-05-03 Bernd Schmidt + + * function.c (init_function_start): Call decide_function_section. + * varasm.c (decide_function_section): New function. + (assemble_start_function): When not using + flag_reorder_blocks_and_partition, don't compute in_cold_section_p + or first_function_block_is_cold. + * rtl.h (decide_function_section): Declare. + +2011-05-03 Uros Bizjak + Jakub Jelinek + + PR target/48774 + * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode + only succeed if req_mode is the same as set_mode. + +2011-05-03 Bernd Schmidt + + * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special. + * genemit.c (gen_exp): Handle RETURN. + * emit-rtl.c (verify_rtx_sharing): Likewise. + (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially. + * rtl.c (copy_rtx): RETURN is shared. + * rtl.h (enum global_rtl_index): Add GR_RETURN. + (ret_rtx): New. + * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN. + * config/s390/s390.c (s390_emit_epilogue): Likewise. + * config/rx/rx.c (gen_rx_rtsd_vector): Likewise. + * config/cris/cris.c (cris_expand_return): Likewise. + * config/m68k/m68k.c (m68k_expand_epilogue): Likewise. + * config/rs6000/rs6000.c (rs6000_make_savres_rtx, + rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise. + * config/picochip/picochip.c (picochip_expand_epilogue): Likewise. + * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue): + Likewise. + * config/v850/v850.c (expand_epilogue): Likewise. + * config/bfin/bfin.c (bfin_expand_call): Likewise. + * config/arm/arm.md (epilogue): Likewise. + * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise. + * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx + variable to ret_reg. + +2011-05-03 Richard Guenther + + PR lto/48846 + * lto-streamer-in.c (unpack_ts_decl_common_value_fields): + Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN. + * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. + +2011-05-03 Richard Guenther + + * c-decl.c (grokdeclarator): Instead of looking at + TREE_OVERFLOW check if the constant fits in the index type. + +2011-05-03 Richard Sandiford + + * config/arm/neon.md (vec_load_lanes): New expanders, + (vec_store_lanes): Likewise. + +2011-05-03 Richard Sandiford + + * doc/md.texi (vec_load_lanes, vec_store_lanes): Document. + * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New + convert_optab_index values. + (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs. + * genopinit.c (optabs): Initialize the new optabs. + * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions. + * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES) + (expand_STORE_LANES): New functions. + * tree.h (build_array_type_nelts): Declare. + * tree.c (build_array_type_nelts): New function. + * tree-vectorizer.h (vect_model_store_cost): Add a bool argument. + (vect_model_load_cost): Likewise. + (vect_store_lanes_supported, vect_load_lanes_supported) + (vect_record_strided_load_vectors): Declare. + * tree-vect-data-refs.c (vect_lanes_optab_supported_p) + (vect_store_lanes_supported, vect_load_lanes_supported): New functions. + (vect_transform_strided_load): Split out statement recording into... + (vect_record_strided_load_vectors): ...this new function. + * tree-vect-stmts.c (create_vector_array, read_vector_array) + (write_vector_array, create_array_ref): New functions. + (vect_model_store_cost): Add store_lanes_p argument. + (vect_model_load_cost): Add load_lanes_p argument. + (vectorizable_store): Try to use store-lanes functions for + interleaved stores. + (vectorizable_load): Likewise load-lanes and loads. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call + to vect_model_store_cost. + (vect_build_slp_tree): Likewise vect_model_load_cost. + +2011-05-03 Richard Sandiford + + * hooks.h (hook_bool_mode_uhwi_false): Declare. + * hooks.c (hook_bool_mode_uhwi_false): New function. + * target.def (array_mode_supported_p): New hook. + * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook. + * doc/tm.texi: Regenerate. + * stor-layout.c (mode_for_array): New function. + (layout_type): Use it. + * config/arm/arm.c (arm_array_mode_supported_p): New function. + (TARGET_ARRAY_MODE_SUPPORTED_P): Define. + +2011-05-03 Eric Botcazou + + PR target/48723 + * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack + for -fstack-check if the size to allocate is negative. + +2011-05-02 Lawrence Crowl + + * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN. + (timevar_cond_start): New for starting a timer only when it is not + already running. + (timevar_cond_stop): New for stopping a timer when it was not already + running. + + * timevar.c (timevar_stop): Enable start/stop timers to start again. + (timevar_cond_start): New as above. + (timevar_cond_stop): New as above. + + * timevar.def: Add start/stop timers for compiler phases, + TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, + TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE, + and TV_PHASE_FINALIZE. + Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL. + Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC, + TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST. + Change push/pop timer TV_NAME_LOOKUP into a start/stop timer. + Make unused TV_OVERLOAD into a start/stop timer. + + Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION. + Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|" + to indicate that they are start/stop timers. + + * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL. + Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE. + Move initialization to do_compile. + (do_compile): Add initialization from above. + Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE. + + * c-decl.c (c_write_global_declarations): Add start/stop of + TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO. + + * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC + or TV_PARSE_INLINE, as appropriate. + (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM. + (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT. + +2011-05-02 Jason Merrill + + PR c++/40975 + * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST. + +2011-05-02 Simon Martin + + PR c/35445 + * c-decl.c (finish_decl): Only create a composite if the types are + compatible. + +2011-05-02 Joseph Myers + + * config/fr30/fr30-protos.h (Mmode): Don't define. + * config/m32r/m32r-protos.h (Mmode): Don't define. Expand + definition where used. + * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't + define. Expand definitions where used. + * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define. + Expand definitions where used. + * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size, + rx_function_arg, rx_function_arg_advance, + rx_function_arg_boundary): Expand definitions of those macros. + * config/v850/v850-protos.h (Mmode): Don't define. Expand + definition where used. + +2011-05-02 Uros Bizjak + + * config/i386/mmx.md (*mov_internal_rex64): Use %vmovq for + reg<->xmm moves. + (*mov_internal): Merge with *mov_internal_avx. + (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge + with *movv2sf_internal_rex64_avx. + (*movv2sf_internal): Merge with *movv2sf_internal_avx. + * config/i386/i386.md (*movdi_internal_rex64) : + Use %v prefix in insn mnemonic to handle TARGET_AVX. + (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of + "vex" in "prefix" attribute calculation. + (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute. + +2011-05-02 Stuart Henderson + + PR target/47951 + * config/bfin/bfin.md (loop_end): Use matching constraints to ensure + inputs match the output. + +2011-05-02 Andreas Schwab + + PR target/47955 + * config/m68k/m68k.c (m68k_expand_prologue): Set + current_function_static_stack_size. + +2011-05-02 Jan Hubicka + + * lto-streamer.c (lto_streamer_cache_insert_1, + lto_streamer_cache_lookup, lto_streamer_cache_create, + lto_streamer_cache_delete): Use pointer map instead of hashtable. + * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map. + +2011-05-02 Joseph Myers + + * config/m68k/genopt.sh, config/m68k/m68k-isas.def, + config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h, + config/m68k/t-opts: New files. + * config/m68k/m68k-tables.opt: New file (generated). + * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to + extra_options and m68k/t-opts to tmake_file. + * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt. + (all_isas): Initialize using m68k-isas.def. + (all_microarchs): Initialize using m68k-microarchs.def. + (m68k_find_selection): Remove. + (m68k_handle_option): Don't assert that global structures are in + use. Use error_at. Access variables via opts pointer. Don't + handle -march=, -mcpu= and -mtune= here. Set gcc_options fields + directly for -m68020-40 and -m68020-60. + (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and + m68k_tune_entry here. + * config/m68k/m68k.h (enum uarch_type, enum target_device): Move + to m68k-opts.h. + (m68k_library_id_string): Remove declaration. + * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude. + (m68k_library_id_string): New Variable. + (march=, mcpu=, mtune=): Use Enum and Var. + +2011-05-02 Richard Guenther + + * varasm.c (output_constructor_regular_field): Compute zero-based + index with double-ints. Make sure to ICE instead of producing + wrong code. + * cgraph.c (cgraph_add_thunk): Do not create new tree nodes + in asserts. Properly use a signed type. + +2011-05-02 Uros Bizjak + + * config/i386/sse.md (V): New mode iterator. + (V_128): Rename from SSEMODE. Make V2DF mode conditional on + TARGET_SSE2. + (V_256): Rename from AVX256MODE. + (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction + condition to all users. + (VF1): Ditto. + (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction + condition to all users. + (VF_128): Make V4SF mode unconditional. + (VF_256): Rename from AVX256MODEF2P. + (VI4F_128): Rename from SSEMODE4S. + (VI8F_128): Rename from SSEMODE2D. + (VI4F_256): Rename from AVX256MODE8P. + (VI8F_256): Rename from AVX256MODE4P. + (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes. + (ssescalarmodesuffix): Remove SF and DF modes. + (SSEMODE124): Remove. + (SSEMODE1248): Ditto. + (SSEMODEF2P): Ditto. + (AVXMODEF2P): Ditto. + (AVXMODEFDP): Ditto. + (AVXMODEFSP): Ditto. + (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes + unconditional. + (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode + unconditional. + (xop_pcmov_): Merge from xop_pcmov_ and + xop_pcmov_256. Use V mode iterator. + + Adjust RTX patterns globally for renamed mode attributes. + +2011-05-02 Ulrich Weigand + + * haifa-sched.c (sched_emit_insn): Emit insn before first + non-scheduled insn. Inform back-end about new insn. Add + new insn to scheduled_insns list. + +2011-05-02 Richard Guenther + + PR tree-optimization/48822 + * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice. + (process_scc): Indicate which iteration we start. + +2011-05-02 Jan Hubicka + + * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h + (lto_section_overrun): New. + * lto-section-out.c (append_block): Rename to ... + (lto_append_block): ... this one; export. + (lto_output_1_stream): Move lto lto-streamer.h + (lto_output_data_stream): Update. + * lto-streamer.h (lto_section_overrun, lto_append_block): Declare. + (lto_output_1_stream, lto_input_1_unsigned): Turn into inline + functions. + +2011-05-02 Richard Guenther + + * tree.c (tree_code_counts): New global array. + (record_node_allocation_statistics): Count individual tree codes. + (dump_tree_statistics): Dump individual code stats. + +2011-05-01 Jan Hubicka + + * ipa-inline.c (caller_growth_limits): Fix thinko when + looking for largest stack frame. + * ipa-inline.h (dump_inline_summary): Declare. + * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info + on stack usage. + (dump_inline_summary): Export. + (debug_inline_summary): Declare as DEBUG_FUNCTION. + +2011-05-01 Anatoly Sokolov + + * reginfo.c (memory_move_cost): Change rclass argument type form + 'enum reg_class' to reg_class_t. + * reload.h (memory_move_cost): Update prototype. + * postreload.c reload_cse_simplify_set): Change type dclass var to + reg_class_t. + * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector): + Update prototype. + (ira_allocate_and_set_costs): Change aclass argument type form + 'enum reg_class' to reg_class_t. + * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector): + Change aclass argument type to reg_class_t. + (update_conflict_hard_reg_costs): Change type aclass and pref vars + to reg_class_t. + * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust + memory_move_cost call. + + * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and + 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'. + Change type tmp var to reg_class_t. + +2011-04-30 Jan Hubicka + + * ipa-inline.c (can_inline_edge_p): Disregard limits when + inlining into function with flatten attribute. + (want_inline_small_function_p): Be more realistic about inlining + cold calls where callee size grows. + +2011-04-30 Jan Hubicka + + * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor + flags. + +2011-04-30 Anatoly Sokolov + + * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, + PRINT_OPERAND_PUNCT_VALID_P): Remove. + * config/sparc/sparc-protos.h (print_operand): Remove declaration. + * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P, + TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. + (print_operand): Rename to... + (sparc_print_operand): ...this. Make static. Adjust + sparc_print_operand function call. + (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New + functions. + +2011-04-30 Jan Hubicka + + PR middle-end/48752 + * ipa-inline.c (early_inliner): Disable when doing late + addition of function. + +2011-04-30 Jakub Jelinek + + * dwarf2out.c (get_address_mode): New inline. + (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls, + if not dwarf_strict emit + DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when + desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT, + UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for + FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED. + (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor, + dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust + mem_loc_descriptor callers. + (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, + output_loc_operands_raw, hash_loc_operands, compare_loc_operands): + Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type, + DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret. + (base_types): New variable. + (get_base_type_offset, calc_base_type_die_sizes, + base_type_for_mode, mark_base_types, base_type_cmp, + move_marked_base_types): New functions. + (calc_die_sizes): Assert that die_offset is 0 or equal to + next_die_offset. + (loc_descriptor): Only handle here lowpart SUBREGs of REG, for + others defer to mem_loc_descriptor. Adjust mem_loc_descriptor + callers. If not dwarf_strict, call mem_loc_descriptor even for + non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE. + (gen_subprogram_die): Don't give up on call site parameters + with non-integral or large integral modes. Adjust + mem_loc_descriptor callers. + (prune_unused_types): Call prune_unused_types_mark on base_types + vector entries. + (resolve_addr): Call mark_base_types. + (dwarf2out_finish): Call move_marked_base_types. + + PR tree-optimization/48809 + * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned + type. + (gen_inbound_check): Don't compute index_expr - range_min in utype + again, instead reuse SSA_NAME initialized in build_arrays. + Remove two useless gsi_for_stmt calls. + +2011-04-29 Jeff Law + + * tree-ssa-threadedge.c (thread_across_edge): Add missing return. + +2011-04-29 Martin Jambor + + * cgraph.h (cgraph_postorder): Remove declaration. + * ipa-utils.h (ipa_free_postorder_info): Declare. + (ipa_reverse_postorder): Likewise. + * cgraphunit.c: Include ipa-utils.h. + (cgraph_expand_all_functions): Update call to ipa_reverse_postorder. + * ipa-inline.c: Include ipa-utils.h. + (ipa_inline): Update call to ipa_reverse_postorder. + * ipa-pure-const.c (propagate_pure_const): Update call to + ipa_reduced_postorder and ipa_print_order. Call + ipa_free_postorder_info to clean up. + (propagate_nothrow): Likewise. + * ipa-reference.c (propagate): Removed a useless call to + ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder + and ipa_print_order. Call ipa_free_postorder_info to clean up. + * ipa.c: Include ipa-utils.h. + (ipa_profile): Update call to ipa_reverse_postorder. + (cgraph_postorder): Moved to... + * ipa-utils.c (ipa_reverse_postorder): ...here and renamed. + (ipa_utils_print_order): Renamed to ipa_print_order. + (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated + comments. + (ipa_free_postorder_info): New function. + * passes.c: Include ipa-utils.h. + (do_per_function_toporder): Update call to ipa_reverse_postorder. + (ipa_write_summaries): Likewise. + * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies. + (cgraphunit.o): Likewise. + (ipa.o): Likewise. + (ipa-inline.o): Likewise. + +2011-04-29 Jan Hubicka + + * ipa-inline.h (clause_t): Turn into unsigned int. + * ipa-inline-analysis.c (add_clause): Do more simplification. + (and_predicates): Shortcut more cases. + (predicates_equal_p): Move forward; check that clauses are properly + ordered. + (or_predicates): Shortcut more cases. + (edge_execution_predicate): Rewrite as... + (set_cond_stmt_execution_predicate): ... this function; handle + __builtin_constant_p. + (set_switch_stmt_execution_predicate): New . + (compute_bb_predicates): New. + (will_be_nonconstant_predicate): Update TODO. + (estimate_function_body_sizes): Use compute_bb_predicates + and free them later, always try to estimate if stmt is constant. + (estimate_time_after_inlining, estimate_size_after_inlining): + Gracefully handle optimized out edges. + (read_predicate): Fix off by one error. + +2011-04-29 Nicola Pero + + * Makefile.in (ENABLE_MAINTAINER_RULES): New. + +2011-04-27 Xinliang David Li + + * tree-profile.c (init_ic_make_global_vars): Set + tls attribute on ic vars. + * coverage.c (coverage_end_function): Initialize + function_list with zero. + +2011-04-29 Richard Guenther + + * builtins.c (fold_builtin_classify_type): Use integer_type_node + for the type of the result. + (fold_builtin_isascii): Likewise. + (fold_builtin_toascii): Use integer_type_node where appropriate. + (fold_builtin_logb): Likewise. + (fold_builtin_frexp): Likewise. + (fold_builtin_strstr): Likewise. + (fold_builtin_strpbrk): Likewise. + (fold_builtin_fputs): Likewise. + (fold_builtin_sprintf): Likewise. + (fold_builtin_snprintf): Likewise. + (fold_builtin_printf): Likewise. + (do_mpfr_remquo): Use a proper type for the assigned constant. + (do_mpfr_lgamma_r): Likewise. + * dwarf2out.c (resolve_one_addr): Use size_int. + * except.c (init_eh): Likewise. + (assign_filter_values): Use integer_type_node for filter values. + (sjlj_emit_dispatch_table): Use integer_type_node for dispatch + indices. + * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node + for EH region numbers. + * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node + for the shift amount. + +2011-04-29 Richard Guenther + + * expr.h (expand_shift): Rename to ... + (expand_variable_shift): ... this. + (expand_shift): Take a constant shift amount. + * expmed.c (expand_shift): Rename to ... + (expand_variable_shift): ... this. + (expand_shift): New wrapper around expand_variable_shift. + * expr.c (convert_move, emit_group_load_1, emit_group_store, + optimize_bitfield_assignment_op, store_field, expand_expr_real_2, + expand_expr_real_1, reduce_to_bit_field_precision): Adjust. + * expmed.c (store_fixed_bit_field, extract_bit_field_1, + extract_fixed_bit_field, extract_split_bit_field, expand_mult_const, + expand_mult, expand_widening_mult, expand_mult_highpart_adjust, + extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore, + emit_store_flag_1, emit_store_flag): Likewise. + * builtins.c (expand_builtin_signbit): Likewise. + * calls.c (load_register_parameters): Likewise. + * function.c (assign_parm_setup_block): Likewise. + * lower-subreg.c (resolve_shift_zext): Likewise. + * optabs.c (widen_bswap, expand_abs_nojump, + expand_one_cmpl_abs_nojump, expand_float): Likewise. + * spu/spu.c (spu_expand_extv): Likewise. + * sparc/sparc.c (sparc32_initialize_trampoline): Likewise. + +2011-04-29 Richard Guenther + + * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node + for the remapped region number. + * predict.c (build_predict_expr): Use integer_type_node for the + predict kind. + * fold-const.c (fold_binary_loc): Use integer_type_node for + the shift amount. Use a proper type for the PLUS_EXPR operand. + +2011-04-29 Michael Matz + + * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override + other trees that just builtins. + (lto_record_common_node): Don't leave NULL TYPE_CANONICAL. + +2011-04-29 Richard Guenther + + * tree-nested.c (get_trampoline_type): Use size_int. + (get_nl_goto_field): Likewise. + * tree-eh.c (lower_try_finally_switch): Use integer_type_node + for all indexes. + (lower_eh_constructs_2): Likewise. + (lower_resx): Likewise. + (lower_eh_dispatch): Likewise. + * tree-mudflap.c (mf_build_string): Use size_int. + (mudflap_register_call): Use integer_type_node for the flag. + (mudflap_enqueue_constant): Use size_int. + * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR + instead of rebuilding it. + +2011-04-29 Richard Guenther + + * tree-ssa-structalias.c (get_fi_for_callee): Restructure. + Handle OBJ_TYPE_REF. + (find_func_aliases_for_call): Use it more consistently. + +2011-04-29 Alexandre Oliva + + * haifa-sched.c (last_nondebug_scheduled_insn): New. + (rank_for_schedule): Use it. + (schedule_block): Set it. + +2011-04-28 David Li + + * tree.c (crc32_string): Use crc32_byte. + (crc32_byte): New function. + * tree.h (crc32_byte): New function. + * gcov.c (read_graph_file): Handle new cfg_cksum. + (read_count_file): Ditto. + * profile.c (instrument_values): Ditto. + (get_exec_counts): Ditto. + (read_profile_edge_counts): Ditto. + (compute_branch_probabilities): Ditto. + (compute_value_histograms): Ditto. + (branch_prob): Ditto. + (end_branch_prob): Ditto. + * coverage.c (read_counts_file): Ditto. + (get_coverage_counts): Ditto. + (tree_coverage_counter_addr): Ditto. + (coverage_checksum_string): Ditto. + (coverage_begin_output): Ditto. + (coverage_end_function): Ditto. + (build_fn_info_type): Ditto. + (build_fn_info_value): Ditto. + * libgcov.c (gcov_exit): Ditto. + * gcov-dump.c (tag_function): Ditto. + (compute_checksum): Remove. + +2011-04-29 Alan Modra + + * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle + unspec plus offset. Tidy macho code. + +2011-04-29 Martin Jambor + + * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph + node instead of a decl. Update all callers. + * cgraph.h: Update declaration. + +2011-04-28 Ira Rosen + + PR tree-optimization/48765 + * tree-vectorizer.h (vect_make_slp_decision): Return bool. + * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument + to indicate if loop aware SLP is being used. Scan the statements + and update the vectorization factor according to the type of + vectorization before statement analysis. + (vect_analyze_loop_2): Get a return value from vect_make_slp_decision, + pass it to vect_analyze_loop_operations. + (vectorizable_reduction): Set number of copies to 1 in case of pure + SLP statement. + * tree-vect-stmts.c (vectorizable_conversion, + vectorizable_assignment, vectorizable_shift, + vectorizable_operation, vectorizable_type_demotion, + vectorizable_type_promotion, vectorizable_store, vectorizable_load): + Likewise. + (vectorizable_condition): Move the check that it is not SLP + vectorization before the number of copies check. + * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided + to vectorize the loop using SLP. + +2011-04-28 Jakub Jelinek + + PR middle-end/48597 + * final.c (final_scan_insn): Call dwarf2out_frame_debug even for + inline asm. + +2011-04-28 Joseph Myers + + * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | + *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC. + (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | + i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, + x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use + linux*.h headers. + * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define. + * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine. + * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. + * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. + * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. + * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use + REG_NAME. + * config/i386/linux.h (REG_NAME): Don't define. + * config/i386/linux64.h (REG_NAME): Don't define. + * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): + Undefine before defining. + +2011-04-28 Jan Hubicka + + * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take + nonconstant_names array. + (estimate_function_body_sizes): Build nonconstant_names array; handle + BUILT_IN_CONSTANT_P. + +2011-04-28 Richard Guenther + + PR bootstrap/48804 + Revert + 2011-04-28 Richard Guenther + + * tree-ssa-structalias.c (solve_constraints): Build succ graph + as late as possible. + +2011-04-28 Richard Guenther + + * tree-ssa-structalias.c (dump_constraint): Don't end the line. + (debug_constraint): Do it here. + (dump_constraints): And here. + (rewrite_constraints): And here. + (dump_constraint_edge): Remove. + (dump_constraint_graph): Rewrite to produce DOT output. + (solve_constraints): Build succ graph as late as possible. + Dump constraint graphs before and after solving. + +2011-04-28 Richard Guenther + + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): + New function split out from ... + (find_func_aliases): ... here. Call it. + (find_func_aliases_for_call): Likewise. + +2011-04-27 Gabriel Dos Reis + + * internal-fn.h (internal_fn_name_array): Declare. + (internal_fn_flags_array): Likewise. + +2011-04-27 Uros Bizjak + + * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize, + ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp. + Move from sse.md. + (ssemodefsuffix): Remove. + (ssevecmodesuffix): New mode attribute. + (fix_truncdi_sse, fix_truncsi_sse, + *float2_mixed_interunit, + *float2_mixed_nointerunit, + *float2_sse_interunit, + *float2_sse_nointerunit, setcc__sse, + *sqrt2_sse, sse4_1_round2, 3, + *ieee_smin3, *ieee_smax3): Adjust assembler templates for + ssemodesuffix mode attribute. + (float splitters): Use ssevecmodesuffix mode attribute. + * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode. + (sseinsmode): Rename from avxvecmode. + (avxsizesuffix): Rename from avxmodesuffix. + (sseintvecmode): Rename from avxpermvecmode. + (ssedoublevecmode): Rename from ssedoublesizemode. + (ssehalfvecmode): Rename from avxhalfvecmode. + (ssescalarmode): Rename from avxscalarmode. + (_comi, _ucomi, sse4a_movnt): Adjust assembler + templates for ssemodesuffix mode attribute. + (*andnot3, *3): Use ssevecmodesuffix + mode attribute. + + Adjust RTX patterns globally for renamed mode attributes. + +2011-04-27 Jan Hubcika + + * ipa-inline.h (struct inline_edge_summary): Add predicate pointer. + * ipa-inline-analysis.c: Include alloc-pool.h. + (edge_predicate_pool): New. + (trye_predicate_p): New function + (false_predicate_p): New function. + (add_clause): Sanity check that false clauses are "optimized"; + never add clauses to predicate that is already known to be false. + (and_predicate): Use flase_predicate_p. + (evaulate_predicate): Rename to ... + (evaluate_predicate): ... this one; update all callers; assert + that false is not listed among possible truths. + (dump_predicate): Use true_predicate_p. + (account_size_time): Use false_predicate_p. + (evaulate_conditions_for_edge): Rename to ... + (evaluate_conditions_for_edge) ... this one. + (edge_set_predicate): New function. + (inline_edge_duplication_hook): Duplicate edge predicates. + (inline_edge_removal_hook): Free edge predicates. + (dump_inline_edge_summary): Add INFO parameter; dump edge predicates. + (dump_inline_summary): Update. + (estimate_function_body_sizes): Set edge predicates. + (estimate_calls_size_and_time): Handle predicates. + (estimate_callee_size_and_time): Update. + (remap_predicate): Add toplev_predicate; update comment. + (remap_edge_predicates): New function. + (inline_merge_summary): Compute toplev predicate; update. + (read_predicate): New function. + (read_inline_edge_summary): Use it. + (inline_read_section): Likewise. + (write_predicate): New function. + (write_inline_edge_summary): Use it. + (inline_write_summary): Likewise. + (inline_free_summary): Free alloc pool and edge summary vec. + +2011-04-27 Richard Guenther + + * tree-ssa-structalias.c (changed_count): Remove. + (changed): Use a bitmap. + (unify_nodes): Adjust. + (do_sd_constraint): Likewise. + (do_ds_constraint): Likewise. + (do_complex_constraint): Likewise. + (solve_graph): Likewise. + +2011-04-27 Jan Hubicka + + * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue. + +2011-04-27 Uros Bizjak + + * config/i386/predicates.md (avx_vpermilp_*_operand): Remove. + (avx_vperm2f128_*_operand): Ditto. + * config/i386/sse.md (*avx_vpermilp): Remove operand2 predicate. + Use avx_vpermilp_parallel in insn condition. + (*avx_vperm2f128_nozero): Remove operand3 predicate. + Use avx_vperm2f128_parallel in insn condition. + +2011-04-27 Richard Guenther + + * Makefile.in (tree-ssa-structalias.o): Remove + gt-tree-ssa-structalias.h dependency. + (GTFILES): Remove tree-ssa-structalias.c. + * tree.c (allocate_decl_uid): New function. + (make_node_stat): Use it. + (copy_node_stat): Likewise. + * tree.h (allocate_decl_uid): Declare. + * tree-ssa-alias.h (delete_alias_heapvars): Remove. + * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars. + * tree-flow.h (struct var_ann_d): Remove is_heapvar flag. + * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag. + * tree-ssa-structalias.c (heapvar_for_stmt): Remove. + (struct heapvar_map): Likewise. + (heapvar_map_eq, heapvar_map_hash, heapvar_lookup, + heapvar_insert): Likewise. + (make_heapvar_for): Rename to ... + (make_heapvar): ... this. Simplify. + (fake_var_decl_obstack): New global var. + (build_fake_var_decl): New function. + (make_constraint_from_heapvar): Adjust. + (handle_lhs_call): Likewise. + (create_function_info_for): Likewise. + (intra_create_variable_infos): Likewise. + (init_alias_vars): Allocate fake_var_decl_obstack. + (init_alias_heapvars, delete_alias_heapvars): Remove. + (compute_points_to_sets): Do not call init_alias_heapvars. + (ipa_pta_execute): Likewise. + (delete_points_to_sets): Free fake_var_decl_obstack. + +2011-04-27 Ulrich Weigand + + * config/spu/divmovti4.c (union qword_UTItype): New data type. + (si_from_UTItype, si_to_UTItype): New functions. + (__udivmodti4): Use them to implement type-punning. + * config/spu/multi3.c (union qword_TItype): New data type. + (si_from_TItype, si_to_TItype): New functions. + (__multi3): Use them to implement type-punning. + +2011-04-27 Ulrich Weigand + + * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier. + +2011-04-27 Jan Hubicka + + * ipa-prop.c (function_insertion_hook_holder): New holder. + (ipa_add_new_function): New function. + (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks): + Register/deregister holder. + +2011-04-27 Richard Guenther + + PR tree-optimization/48772 + * tree-ssa-pre.c (eliminate): Update call stmts after elimination only. + +2011-04-27 Richard Guenther + + * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix + TARGET_MEM_REF handling. + +2011-04-27 Nick Clifton + + * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS, + ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS. + (ACC_REGS): New macro. Alias for QUAD_ACC_REGS. + (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS. + (FPR_REGS): New macro. Alias for QUAD_ACC_REGS. + (EVEN_REGS): New macro. Alias for QUAD_REGS. + * config/frv/frv.c (frv_secondary_reload_class): Remove use of + duplicate register classes. + (frv_class_likely_spilled_p): Likewise. + (frv_register_move_cost): Likewise. + + * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the + end of the regno_reg_class array. + +2011-04-27 Jakub Jelinek + + PR c/48742 + * c-typeck.c (build_binary_op): Don't wrap arguments if + int_operands is true. + +2011-04-26 Kaz Kojima + + PR target/48767 + * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call + targetm.calls.must_pass_in_stack for void type. + +2011-04-26 Jan Hubicka + + * cgraphbuild.c (build_cgraph_edges): Update call + of cgraph_create_edge and cgraph_create_indirect_edge. + * cgraph.c (cgraph_create_edge_including_clones, + cgraph_create_edge_1, cgraph_allocate_init_indirect_info, + cgraph_update_edges_for_call_stmt_node): Do not take nest + argument; do not initialize call_stmt_size/time. + (dump_cgraph_node): Do not dump nest. + (cgraph_clone_edge): Do not take loop_nest argument; + do not propagate it; do not clone call_stmt_size/time. + (cgraph_clone_node): Likewise. + (cgraph_create_virtual_clone): Update. + * cgraph.h (struct cgraph_edge): Remove + call_stmt_size/call_stmt_time/loop_nest. + (cgraph_create_edge, cgraph_create_indirect_edge, + cgraph_create_edge_including_clones, cgraph_clone_node): Update + prototype. + * tree-emutls.c (gen_emutls_addr): Update. + * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle + loop_nest; handle indirect calls, too. + (clone_inlined_nodes): Do not care about updating inline summaries. + * cgraphunit.c (cgraph_copy_node_for_versioning): Update. + * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not + stream call_stmt_size/call_stmt_time/loop_nest. + * ipa-inline.c (edge_badness): Update. + (ipa_inline): dump summaries after inlining. + * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t): + New. + (inline_edge_summary): New function. + * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder. + (inline_edge_removal_hook): Handle edge summaries. + (inline_edge_duplication_hook): New hook. + (inline_summary_alloc): Alloc hooks. + (initialize_growth_caches): Do not register removal hooks. + (free_growth_caches); Do not free removal hook. + (dump_inline_edge_summary): New function. + (dump_inline_summary): Use it. + (estimate_function_body_sizes, estimate_edge_size_and_time): Update. + (inline_update_callee_summaries): New function. + (inline_merge_summary): Use it. + (do_estimate_edge_time, do_estimate_edge_growth): Update. + (read_inline_edge_summary): New function. + (inline_read_section): Use it. + (write_inline_edge_summary): New function. + (inline_write_summary): Use it. + (inline_free_summary): Free edge new holders. + * tree-inline.c (copy_bb): Update. + +2011-04-26 Jason Merrill + + * tree-eh.c (lower_try_finally_switch): Create the label along with + the CASE_LABEL_EXPR. + +2011-04-26 David S. Miller + Rainer Orth + + * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment. + * configure: Regenerate. + +2011-04-26 Michael Meissner + + PR target/48258 + * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector + reduction. + (VEC_reduc): New code iterator and splitters for vector reduction. + (VEC_reduc_name): Ditto. + (VEC_reduc_rtx): Ditto. + (reduc__v2df): Vector reduction expanders for VSX. + (reduc__v4sf): Ditto. + + * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add + support for extracting SF on VSX. + + * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for + generating xscvspdp. + (vsx_extract_v4sf): New insn to extract SF from V4SF vector. + (vsx_reduc__v2df): New insns and splitters for + double add, minimum, maximum vector reduction. + (vsx_reduc__v4sf): Ditto. + (vsx_reduc__v2df2_scalar): New combiner insn to + optimize double vector reduction. + (vsx_reduc__v4sf_scalar): Ditto. + +2011-04-26 Joseph Myers + + * config/fr30/fr30.h (inhibit_libc): Don't define. + * config/m32r/m32r-protos.h: Correct comment. + * config/v850/v850.h (GHS_default_section_names, + GHS_current_section_names): Use tree, not union tree_node *. + +2011-04-26 Xinliang David Li + + * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code. + * c-family/c-opts.c (c_common_handle_option): Set + warn_maybe_uninitialized. + * opts.c (common_handle_option): Ditto. + * common.opt: New option. + * tree-ssa.c (warn_uninit): Add one more parameter. + (warn_uninitialized_var): Pass warning code. + * tree-flow.h: Interface change. + +2011-04-26 Rainer Orth + + * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI. + (WINT_TYPE_SIZE): Use INT_TYPE_SIZE. + (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards. + +2011-04-26 Rainer Orth + + * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove. + * config/mips/mips.opt (mmips-tfile): Remove. + + * doc/install.texi (Specific, mips-*-*): Move mips-tfile, + mips-tdump reference to ... + (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX. + * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS + reference by Tru64 UNIX. + +2011-04-26 Jakub Jelinek + + PR debug/48768 + * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result + is error_mark_node, set value to NULL. + + PR tree-optimization/48734 + * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up + if return value from maybe_fold_*_comparsions isn't something + the code is prepared to handle. + +2011-04-26 Uros Bizjak + + * config/i386/predicates.md (ext_QIreg_operand): Remove extra + mode check. + (ext_QIreg_nomode_operands): Remove. + * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand. + (*andsi_1): Ditto. + (*andhi_1): Ditto. + +2011-04-26 Andrew Stubbs + + * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial. + +2011-04-26 Richard Guenther + + * c-typeck.c (build_unary_op): Do not expand array-refs via + pointer arithmetic. Only adjust qualifiers for function types. + +2011-04-26 Richard Guenther + + PR middle-end/48694 + * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag. + * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs + compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees + with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set. + +2011-04-25 Paolo Carlini + + * doc/extend.texi: Document __underlying_type. + +2011-04-25 Segher Boessenkool + + * config/rs6000/titan.md (automata_option "progress"): Remove. + +2011-04-25 Jeff Law + + * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too. + +2011-04-25 Jan Kratochvil + + * system.h (ENUM_BITFIELD): Remove. + +2011-04-25 Maxim Kuvyrkov + Eric Botcazou + + * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals + for STORE_FLAG_VALUE==-1 case. + +2011-04-24 Richard Sandiford + + PR target/43804 + * config/m68k/constraints.md (T): Allow PIC operands that satisfy + LEGITIMATE_PIC_OPERAND_P. + +2011-04-24 Jan Hubicka + + * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette + WPA hack. + * ipa-prop.h (ipa_get_param, ipa_is_param_used, + ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty, + ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds. + * ipa-inline-analysis.c (add_clause): Fix clause ordering. + (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate): + Sanity check predicate length. + (remap_predicate): Likewise; sanity check jump functions. + (inline_read_section, inline_write_summary): Sanity check + predicate length. + +2011-04-24 Paolo Carlini + + PR other/48748 + * doc/extend.texi (Type Traits): Document __is_standard_layout, + __is_literal_type, and __is_trivial; update throughout about + possibly cv-qualified void types. + +2011-04-24 Gerald Pfeifer + + * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS + testsuite and make it version agnostic. + +2011-04-22 Jan Hubicka + + * ipa-inline-analysis.c (inline_write_summary): Fix thinko. + +2011-04-23 Jakub Jelinek + + PR c/48685 + * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting + to VOID_TYPE even around MODIFY_EXPR. + +2011-04-22 Mike Stump + + * gensupport.c (read_md_rtx): Fix typo in comment. + * config/cris/cris.opt (moverride-best-lib-options): Fix typo in + comment. + +2011-04-22 Jan Hubicka + + * gengtype.c (open_base_files): Add ipa-inline.h include. + * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to + ipa-prop.c; update all uses. + * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here. + * ipa-inline-transform.c (inline_call): Use inline_merge_summary to + merge summary of inlined function into former caller. + * ipa-inline.c (max_benefit): Remove. + (edge_badness): Compensate for removal of benefits. + (update_caller_keys): Use + reset_node_growth_cache/reset_edge_growth_cache. + (update_callee_keys): Likewise. + (update_all_callee_keys): Likewise. + (inline_small_functions): Do not collect max_benefit; do not reset + estimated_growth; call free_growth_caches and initialize_growth_caches. + * ipa-inline.h (struct condition, type clause_t, struct predicate, + struct size_time_entry): New structures. + (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants. + (inline_summary): Remove size_inlining_benefit, time_inlining_benefit + and estimated_growth. + (edge_growth_cache_entry): New structure. + (node_growth_cache, edge_growth_cache): New global vars. + (estimate_growth): Turn into inline. + (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time, + initialize_growth_caches, free_growth_caches): Declare. + (estimate_edge_growth): Rewrite. + (estimate_edge_time): Implement as inline cache lookup. + (reset_node_growth_cache, reset_edge_growth_cache): New inline + functions. + (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE. + (NUM_CONDITIONS): New constant. + (predicate_conditions): New enum. + (IS_NOT_CONSTANT): New constant. + (edge_removal_hook_holder): New var. + (node_growth_cache, edge_growth_cache): New global vars. + (true_predicate, single_cond_predicate, false_predicate, + not_inlined_predicate, add_condition, add_clause, and_predicates, + or_predicates, predicates_equal_p, evaulate_predicate, dump_condition, + dump_clause, dump_predicate, account_size_time, + evaulate_conditions_for_edge): New functions. + (inline_summary_alloc): Move to heap. + (inline_node_removal_hook): Clear condition and entry vectors. + (inline_edge_removal_hook): New function. + (initialize_growth_caches, free_growth_caches): New function. + (dump_inline_summary): Update. + (edge_execution_predicate): New function. + (will_be_nonconstant_predicate): New function. + (estimate_function_body_sizes): Compute BB and constantness predicates. + (compute_inline_parameters): Do not clear estimated_growth. + (estimate_edge_size_and_time): New function. + (estimate_calls_size_and_time): New function. + (estimate_callee_size_and_time): New function. + (remap_predicate): New function. + (inline_merge_summary): New function. + (do_estimate_edge_time): New function based on... + (estimate_edge_time): ... this one. + (do_estimate_edge_growth): New function. + (do_estimate_growth): New function based on.... + (estimate_growth): ... this one. + (inline_analyze_function): Analyze after deciding on jump functions. + (inline_read_section): New function. + (inline_read_summary): Use it. + (inline_write_summary): Write all the new data. + * ipa-prop.c (ipa_get_param_decl_index): Export. + (ipa_lattice_from_jfunc): Move here from ipa-cp.c + * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc): + Declare. + (ipa_get_lattice): Move here from ipa-cp.c + * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c + * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11. + * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters, + cgraph_edge_inlinable_p): Remove. + * cgraphunit.c: Include ipainline.h + (cgraph_process_new_functions): Update call of + compute_inline_parameters. + +2011-04-22 Richard Guenther + + * tree.c (build_int_cst): Properly create canonicalized integer + constants. + (build_int_cst_type): Remove scary comments. + +2011-04-22 Xinliang David Li + + * toplev.c (process_options): Enable -Werror=coverage-mismatch + by default when -Wno-error is not specified. + * opts-global.c (decode_options): Remove call to + control_warning_options. + +2011-04-22 Jakub Jelinek + + PR tree-optimization/48717 + * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and + ~A + A optimizations use build_int_cst_type instead of build_int_cst. + +2011-04-22 Joseph Myers + + * config/bfin/bfin-protos.h (Mmode): Don't define. Expand + definition where used. + +2011-04-22 Jakub Jelinek + + PR c/48716 + * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also + TREE_STATIC variables declared inside of some OpenMP construct. + +2011-04-22 Martin Jambor + + PR middle-end/48585 + * tree-inline.c (copy_bb): Create new edges only for analyzed nodes. + +2011-04-22 Alexander Monakov + + PR c/36750 + * c-typeck.c (pop_init_level): Do not warn about initializing + with ` = {0}'. + +2011-04-22 Alan Modra + + * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL + when returning call_cookie. + (rs6000_function_ok_for_sibcall): Allow sibcalls via function + pointers, to functions with no more vector args than the current + function, and some non-local calls for ABI_V4. + * config/rs6000/rs6000.md (sibcall_nonlocal_aix32, + sibcall_nonlocal_aix64): Combine to .. + (sibcall_nonlocal_aix): ..this. Handle function pointer calls. + (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine.. + (sibcall_value_nonlocal_aix): ..likewise. + (*sibcall_nonlocal_sysv): Handle function pointer calls. + (sibcall_value_nonlocal_sysv): Likewise. Correct call cookie + operand. + * config/rs6000/darwin.md (sibcall_nonlocal_darwin64, + sibcall_value_nonlocal_darwin64, sibcall_symbolic_64, + sibcall_value_symbolic_64): Delete. + +2011-04-21 Xinliang David Li + + * cgraph.h: Remove pid. + * cgraph.c: Remove pid. + * value-prof.c (init_node_map): New function. + (del_node_map): New function. + (find_func_by_funcdef_no): New function. + (gimple_ic_transform): Call new function. + * cgraphunit.c (cgraph_finalize_function): Remove pid. + * function.c (get_last_funcdef_no): New function. + * function.h (get_last_funcdef_no): New function. + * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no + to libgcov function. + (tree-profiling): Call node map init and delete function. + +2011-04-21 Ian Lance Taylor + + * godump.c (go_format_type): Use exported Go name for anonymous + field name. + +2011-04-21 Nathan Froyd + + * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable. + Call builtin_function_type_list instead of builtin_function_type. + (UNARY, BINARY, TRINARY, QUAD): Likewise. + +2011-04-21 Nathan Froyd + + * config/arm/arm.c (arm_init_iwmmxt_builtins): Call + build_function_type_list instead of build_function_type. + Delete variable `endlink'. + +2011-04-21 Nathan Froyd + + * config/s390/s390.c (s390_init_builtins): Call + build_function_type_list instead of build_function_type. + +2011-04-21 Nathan Froyd + + * config/ia64/ia64.c (ia64_init_builtins): Call + build_function_type_list instead of builtin_function_type. + +2011-04-21 Easwaran Raman + + * cfgexpand.c (stack_var): Remove OFFSET... + (add_stack_var): ...and its reference here... + (expand_stack_vars): ...and here. + (stack_var_cmp): Sort by descending order of size. + (partition_stack_vars): Change heuristic. + (union_stack_vars): Fix to reflect changes in partition_stack_vars. + (dump_stack_var_partition): Add newline after each partition. + +2011-04-21 Dimitrios Apostolou + Jeff Law + + * gengtype-state.c (read_a_state_token): Fix argument to obstack_free. + * gengtype.c (matching_file_name_substitute): Likewise. + +2011-04-21 Richard Guenther + + PR lto/48703 + * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME. + +2011-04-21 Eric Botcazou + + * gimple.c (walk_gimple_op) : Fix couple of oversights. + +2011-04-21 Richard Guenther + + * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary + file name. + +2011-04-21 Richard Guenther + + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle + MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs. + Use DECL_P, not SSA_VAR_P. + (ptr_derefs_may_alias_p): Likewise. + (ptr_deref_may_alias_ref_p_1): Likewise. + (decl_refs_may_alias_p): Likewise. + (refs_may_alias_p_1): Likewise. + (ref_maybe_used_by_call_p_1): Likewise. + (call_may_clobber_ref_p_1): Likewise. + (indirect_ref_may_alias_decl_p): Assume indirect refrences + are either MEM_REF or TARGET_MEM_REF. + (indirect_refs_may_alias_p): Likewise. + * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF + for MEM_EXPR of indirect calls. + +2011-04-21 Tristan Gingold + + * vmsdbgout.c (write_srccorr): Compute file length from the string. + (dst_file_info_struct): Remove flen field. + (lookup_filename): Remove code that set flen field. + +2011-04-21 Tristan Gingold + + * config/ia64/ia64.c (ia64_start_function): Add a guard. + +2011-04-21 Uros Bizjak + + PR target/48708 + * config/i386/i386.c (ix86_expand_vector_set) : Generate + vec_extract and vec_concat for non-SSE4_1 targets. + +2011-04-21 Richard Guenther + + * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle + return statements. + +2011-04-21 Joseph Myers + + * config/i386/cygming.h (union tree_node, TREE): Don't define or + undefine. + (FILE): Don't undefine. + +2011-04-21 Joseph Myers + + * config/alpha/alpha.c (struct machine_function): Use rtx, not + struct rtx_def *. + * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not + struct rtx_def *. + * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define. + * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *. + * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct + rtx_def *. + * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand + definitions where used. + * config/microblaze/microblaze.h (struct microblaze_args): Use + rtx, not struct rtx_def *. + * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct + rtx_def *. + * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *. + * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *. + * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx, + not struct rtx_def *. + * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not + struct rtx_def *. + * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct + rtx_def *. + * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *. + +2011-04-21 Richard Sandiford + + * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use + operand_equal_p to compare DR_BASE_ADDRESSes. + (vect_check_interleaving): Likewise. + +2011-04-21 Richard Sandiford + + PR target/46329 + * config/arm/arm.c (arm_legitimate_constant_p_1): Return false + for all Neon struct constants. + +2011-04-21 Richard Sandiford + + * target.def (legitimate_constant_p): New hook. + * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with... + (TARGET_LEGITIMATE_CONSTANT_P): ...this. + * doc/tm.texi: Regenerate. + * hooks.h (hook_bool_mode_rtx_true): Declare. + * hooks.c (hook_bool_mode_rtx_true): Define. + * system.h (LEGITIMATE_CONSTANT_P): Poison. + * calls.c (precompute_register_parameters): Replace uses of + LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p. + (emit_library_call_value_1): Likewise. + * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn) + (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise. + * ira-costs.c (scan_one_insn): Likewise. + * recog.c (general_operand, immediate_operand): Likewise. + * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise. + * reload1.c (init_eliminable_invariants): Likewise. + + * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a + mode argument. + * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete. + * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode + argument. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + * config/alpha/predicates.md (input_operand): Update call to + alpha_legitimate_constant_p. + + * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete. + * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise. + (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise. + * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (arm_legitimate_constant_p_1, thumb_legitimate_constant_p) + (arm_legitimate_constant_p): New functions. + (arm_cannot_force_const_mem): Make static. + + * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete. + * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete. + * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p + instead of bfin_legitimate_constant_p. + (bfin_legitimate_constant_p): Make static. Add a mode argument. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + + * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete. + * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete. + * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (frv_legitimate_constant_p): Make static. Add a mode argument. + + * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete. + * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise. + + * config/i386/i386-protos.h (legitimate_constant_p): Delete. + * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/i386/i386.c (legitimate_constant_p): Rename to... + (ix86_legitimate_constant_p): ...this. Make static. Add a mode + argument. + (ix86_cannot_force_const_mem): Update accordingly. + (ix86_legitimate_address_p): Likewise. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + * config/i386/i386.md: Update commentary. + + * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete. + * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (ia64_legitimate_constant_p): Make static. Add a mode argument. + + * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete. + * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (lm32_legitimate_constant_p): Make static. Add a mode argument. + + * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete. + * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise. + + * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete. + * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (m32r_legitimate_constant_p): New function. + + * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare. + * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of + LEGITIMATE_CONSTANT_P. + (LEGITIMATE_CONSTANT_P): Delete. + * config/m68k/m68k.c (m68k_expand_prologue): Call + m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P. + (m68k_legitimate_constant_p): New function. + * config/m68k/m68k.md: Update comments. + + * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete. + * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (mcore_legitimate_constant_p): New function. + + * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete. + * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/mep/mep.c (mep_legitimate_constant_p): Make static. + Add a mode argument. + (mep_legitimate_address): Update accordingly. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + + * config/microblaze/microblaze-protos.h (microblaze_const_double_ok): + Delete. + * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/microblaze/microblaze.c (microblaze_const_double_ok): Make + static. Check OP's mode for VOIDmode. + (microblaze_legitimate_constant_p): New function. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + + * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete. + * config/mips/mips.c (mips_legitimate_constant_p): New function. + (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + * config/mips/predicates.md: Update comments. + + * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete. + * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (mmix_legitimate_constant_p): Make static, return a bool, and take + a mode argument. + (mmix_print_operand_address): Update accordingly. + + * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p): + Delete. + * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make + static. Add a mode argument. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + + * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete. + * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (pa_legitimate_constant_p): New function. + + * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete. + * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (pdp11_legitimate_constant_p): New function. + + * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete. + * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (rs6000_legitimate_constant_p): New function. + + * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with... + (rx_legitimate_constant_p): ...this. + * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete. + * config/rx/rx.c (rx_is_legitimate_constant): Replace with... + (rx_legitimate_constant_p): ...this. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + * config/rx/rx.md (mov): Update accordingly. + + * config/s390/s390-protos.h (legitimate_constant_p): Delete. + * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/s390/s390.c (legitimate_constant_p): Rename to... + (s390_legitimate_constant_p): ...this. Make static, return a bool, + and add a mode argument. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + + * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete. + * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (sh_legitimate_constant_p): New function. + + * config/sparc/sparc-protos.h (legitimate_constant_p): Delete. + * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete. + * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (legitimate_constant_p): Rename to... + (sparc_legitimate_constant_p): ...this. Make static. Add a mode + argument. + (constant_address_p): Update accordingly. + + * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode + argument and return a bool. + * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete. + * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (spu_legitimate_constant_p): Add a mode argument and return a bool. + (spu_rtx_costs): Update accordingly. + * config/spu/predicates.md (vec_imm_operand): Likewise. + + * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete. + + * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete. + * config/v850/v850.c (v850_legitimate_constant_p): New function. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + + * config/vax/vax-protos.h (legitimate_constant_p): Delete. + * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise. + * config/vax/vax.c (legitimate_constant_p): Likewise. + + * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete. + * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define. + (xtensa_legitimate_constant_p): New function. + +2011-04-21 Richard Sandiford + + * target.def (cannot_force_const_mem): Add a mode argument. + * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly. + * doc/tm.texi: Regenerate. + * hooks.h (hook_bool_mode_rtx_false): Declare. + * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary. + (hook_bool_mode_const_rtx_true): Likewise. + (hook_bool_mode_rtx_false): New function. + * reload.c (CONST_POOL_OK_P): Take a mode argument and require it + to be non-VOID. Update call to cannot_force_const_mem. + (find_reloads): Update accordingly. + * varasm.c (force_const_mem): Update call to cannot_force_const_mem. + * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode + argument. + * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise. + * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call. + * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument. + * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise. + * config/frv/frv.c (frv_cannot_force_const_mem): Likewise. + * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise. + * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise. + * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to... + (m68k_cannot_force_const_mem): ...this new function. + * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode + argument. + (mips_const_insns, mips_legitimize_const_move): Update calls. + (mips_secondary_reload_class): Likewise. + * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to... + (pa_cannot_force_const_mem): ...this new function. + * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to... + (rs6000_cannot_force_const_mem): ...this new function. + * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode + argument. + * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise. + * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine + to... + (xtensa_cannot_force_const_mem): ...this new function. + +2011-04-20 Nathan Froyd + + * config/mips/mips.c (mips16_build_function_stub): Call + build_function_type_list instead of build_function_type. + (mips16_build_call_stub): Likewise. + +2011-04-20 Nathan Froyd + + * config/mep/mep.c (mep_init_builtins): Call build_function_type_list + instead of build_function_type. + +2011-04-20 Nathan Froyd + + * config/pa/pa.c (pa_init_builtins): Call build_function_type_list + instead of build_function_type. + +2011-04-20 Uros Bizjak + + PR target/48678 + * config/i386/i386.md (insv): Change operand 0 constraint to + "register_operand". Change operand 1 and 2 constraint to + "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate. + * config/i386/sse.md (sse4_1_pinsrb): Export. + (sse2_pinsrw): Ditto. + (sse4_1_pinsrd): Ditto. + (sse4_1_pinsrq): Ditto. + * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype. + * config/i386/i386.c (ix86_expand_pinsr): New. + +2011-04-20 Easwaran Raman + + * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable + containing union type only with -fstrict-aliasing. + +2011-04-20 Jim Meyering + + Remove useless if-before-free tests. + * calls.c (expand_call, save_area): Likewise. + * cfgcleanup.c (try_forward_edges): Likewise. + * collect2.c (collect_execute): Likewise. + * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise. + * config/mcore/mcore.c (mcore_expand_prolog): Likewise. + * coverage.c (coverage_checksum_string): Likewise. + * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise. + * cselib.c (cselib_init): Likewise. + * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise. + (df_set_clean_cfg): Likewise. + * function.c (free_after_compilation): Likewise. + * gcc.c (do_spec_1, main): Likewise. + * gcov.c (create_file_names): Likewise. + * gensupport.c (identify_predicable_attribute): Likewise. + * graphite-clast-to-gimple.c (save_clast_name_index): Likewise. + * graphite-sese-to-poly.c (free_data_refs_aux): Likewise. + * haifa-sched.c (haifa_finish_h_i_d): Likewise. + * ipa-prop.c (ipa_free_node_params_substructures): Likewise. + * ipa-pure-const.c (local_pure_const): Likewise. + * ipa-reference.c (propagate): Likewise. + * ira-costs.c (free_ira_costs): Likewise. + * ira.c (free_register_move_costs, build_insn_chain): Likewise. + * matrix-reorg.c (mat_free): Likewise. + * prefix.c (get_key_value): Likewise. + * profile.c (compute_value_histograms): Likewise. + * reload1.c (free_reg_equiv): Likewise. + * sched-deps.c (free_deps): Likewise. + * sel-sched-ir.c (fence_clear): Likewise. + * sese.c (set_rename, if_region_set_false_region): Likewise. + * tree-data-ref.c (free_rdg): Likewise. + * tree-eh.c (lower_try_finally): Likewise. + * tree-ssa-coalesce.c (delete_coalesce_list): Likewise. + * tree-ssa-live.c (delete_var_map): Likewise. + * tree-ssa-loop-ivopts.c (free_loop_data): Likewise. + * tree-ssa-pre.c (phi_trans_add): Likewise. + +2011-04-20 Jakub Jelinek + + PR tree-optimization/48611 + * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate + beyond ERT_MUST_NOT_THROW region. + +2011-04-20 Catherine Moore + + * config/mips/mips.opt (mfix-24k): New. + * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k. + * config/mips/mips.md (length): Increase by 4 for stores if + fixing 24K errata. + * config/mips/mips.c (mips_reorg_process_insns): Do not allow + all noreorder if fixing 24K errata. + * doc/invoke.texi: Document mfix-24k. + +2011-04-20 Chung-Lin Tang + + * config/arm/arm.c (arm_legitimize_reload_address): For NEON + quad-word modes, reduce to 9-bit index range when above 1016 limit. + +2011-04-20 Andrew Stubbs + + * config/arm/arm.c (arm_gen_constant): Move movw support .... + (const_ok_for_op): ... to here. + +2011-04-20 Kai Tietz + + * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y) + and (X && !Y) | (!X && Y) optimization to (X ^ Y). + +2011-04-20 Andrew Stubbs + + * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert. + +2011-04-20 Richard Guenther + + PR tree-optimization/47892 + * tree-if-conv.c (if_convertible_stmt_p): Const builtins + are if-convertible. + +2011-04-20 Eric Botcazou + + * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine. + +2011-04-20 Tristan Gingold + + * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld. + +2011-04-20 Georg-Johann Lay + + PR target/18145 + + * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. + (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define. + (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section. + + * config/avr/avr-protos.h (avr_asm_output_aligned_common): + New prototype. + + * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define. + (avr_asm_named_section, avr_asm_output_aligned_common, + avr_output_data_section_asm_op, avr_output_bss_section_asm_op): + New functions to update... + (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables. + (avr_asm_init_sections): Overwrite section callbacks for + data_section, bss_section. + (avr_file_start): Move output of __do_copy_data, __do_clear_bss + from here to... + (avr_file_end): ...here. + +2011-04-20 Richard Guenther + + PR middle-end/48695 + * tree-ssa-alias.c (aliasing_component_refs_p): Compute base + objects and types here. Adjust for their offset before comparing. + +2011-04-20 Richard Sandiford + + * tree-vect-stmts.c (vectorizable_store): Only chain one related + statement per copy. + +2011-04-20 Richard Sandiford + + * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define. + (GIMPLE_H): Include $(INTERNAL_FN_H). + (OBJS-common): Add internal-fn.o. + (internal-fn.o): New rule. + * internal-fn.def: New file. + * internal-fn.h: Likewise. + * internal-fn.c: Likewise. + * gimple.h: Include internal-fn.h. + (GF_CALL_INTERNAL): New gf_mask. + (gimple_statement_call): Put fntype into a union with a new + internal_fn field. + (gimple_build_call_internal): Declare. + (gimple_build_call_internal_vec): Likewise. + (gimple_call_same_target_p): Likewise. + (gimple_call_internal_p): New function. + (gimple_call_internal_fn): Likewise. + (gimple_call_fntype): Return null for internal calls. + (gimple_call_set_fntype): Assert that the function is not internal. + (gimple_call_set_fn): Likewise. + (gimple_call_set_fndecl): Likewise. + (gimple_call_set_internal_fn): New function. + (gimple_call_addr_fndecl): Handle null functions. + (gimple_call_return_type): Likewise null types. + * gimple.c (gimple_build_call_internal_1): New function. + (gimple_build_call_internal): Likewise. + (gimple_build_call_internal_vec): Likewise. + (gimple_call_same_target_p): Likewise. + (gimple_call_flags): Handle calls to internal functions. + (gimple_call_fnspec): New function. + (gimple_call_arg_flags, gimple_call_return_flags): Use it. + (gimple_has_side_effects): Handle null functions. + (gimple_rhs_has_side_effects): Likewise. + (gimple_call_copy_skip_args): Handle calls to internal functions. + * cfgexpand.c (expand_call_stmt): Likewise. + * expr.c (expand_expr_real_1): Assert that the call isn't internal. + * gimple-fold.c (gimple_fold_call): Handle null functions. + (gimple_fold_stmt_to_constant_1): Don't fold + calls to internal functions. + * gimple-low.c (gimple_check_call_args): Handle calls to internal + functions. + * gimple-pretty-print.c (dump_gimple_call): Likewise. + * ipa-prop.c (ipa_analyze_call_uses): Handle null functions. + * tree-cfg.c (verify_gimple_call): Handle calls to internal functions. + (do_warn_unused_result): Likewise. + * tree-eh.c (same_handler_p): Use gimple_call_same_target_p. + * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions. + * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record + the target of a call. + (initialize_hash_element): Update accordingly. + (hashable_expr_equal_p): Use gimple_call_same_target_p. + (iterative_hash_hashable_expr): Handle calls to internal functions. + (print_expr_hash_elt): Likewise. + * tree-ssa-pre.c (can_value_number_call): Likewise. + (eliminate): Handle null functions. + * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions. + * tree-ssa-structalias.c (get_fi_for_callee): Likewise. + (find_func_aliases): Likewise. + * value-prof.c (gimple_ic_transform): Likewise. + (gimple_indirect_call_to_profile): Likewise. + * lto-streamer-in.c (input_gimple_stmt): Likewise. + * lto-streamer-out.c (output_gimple_stmt): Likewise. + +2011-04-19 Jan Hubicka + + * ipa-inline-transform.c (save_inline_function_body): Add comments. + * ipa-inline.c (inline_small_functions): Compute summaries first, + populate heap later. + +2011-04-19 Jan Hubicka + + * cgraph.h (save_inline_function_body): Remove. + * ipa-inline-transform.c: New file, broke out of... + * ipa-inline.c: ... this one; Update toplevel comment. + (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c; + make global. + (update_noncloned_frequencies): Move to ipa-inline-transform.c + (cgraph_mark_inline_edge): Rename to inline_call; move to + ipa-inline-transform.c. + (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes; + move to ipa-inline-transform.c + (recursive_inlining, inline_small_functions, flatten_function, + ipa_inline, inline_always_inline_functions, + early_inline_small_functions): Update. + (inline_transform): Move to ipa-inline-transform.c. + * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes): + Declare. + * Makefile.in (ipa-inline-transform.o): New file. + * cgraphunit.c (save_inline_function_body): Move to + ipa-inline-transform.c + +2011-04-19 DJ Delorie + + * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push + registers if we already know there aren't any. + (m32c_emit_epilogue): Don't emit a barrier here. + (m32c_emit_eh_epilogue): Likewise. + * config/m32c/blkmov.md (movstr): Don't fail on wrong-type + operands at expand time. + * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long + int" wchar type. + (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove + duplicates. Provide aliases instead. + * config/m32c/prologue.md (eh_return): Emit a barrier here. + (eh_epilogue): Add a "(return)" here as a hint to other parts of + the compiler. + +2011-04-19 Anatoly Sokolov + + * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove. + * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define. + (general_or_i64_p, sparc_register_move_cost): New function. + +2011-04-19 Rainer Orth + + * doc/install.texi (Configuration, --enable-threads): Remove mach. + Add lynx, mipssde. Sort table. + +2011-04-19 Xinliang David Li + + * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is + not negative. + +2011-04-19 Jakub Jelinek + + PR target/48678 + * config/i386/i386.md (movstrict): FAIL if operands[0] + is a SUBREG with non-MODE_INT mode inside of it. + +2011-04-19 Martin Jambor + + * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize + also according to actual contants. + * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function. + (gimple_fold_call): Use it. + * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare. + +2011-04-19 Martin Jambor + + * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar + non-pointer assignments. + +2011-04-19 Martin Jambor + + * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into + account anc_offset and otr_type from the indirect edge info. + * ipa-prop.c (get_ancestor_addr_info): New function. + (compute_complex_ancestor_jump_func): Assignment analysis moved to + get_ancestor_addr_info, call it. + (ipa_note_param_call): Do not initialize information about polymorphic + calls, return the indirect call graph edge. Remove the last + parameter, adjust all callers. + (ipa_analyze_virtual_call_uses): Process also calls to ancestors of + parameters. Initialize polymorphic information in the indirect edge. + +2011-04-19 Eric Botcazou + + PR lto/48148 + * gimple.c (gimple_types_compatible_p_1) : Do not merge + the types if they have different enumeration identifiers. + +2011-04-19 Jan Hubicka + + * cgraph.h (cgraph_optimize_for_size_p): Declare. + * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p. + * predict.c (cgraph_optimize_for_size_p): Break out from ... + (optimize_function_for_size_p) ... here. + +2011-04-19 Richard Guenther + + PR lto/48207 + * tree.c (free_lang_data): Do not reset the decl-assembler-name + langhook. + +2011-04-19 Eric Botcazou + + * tree-inline.c (expand_call_inline): Do not issue a -Winline warning + if DECL_NO_INLINE_WARNING_P is set on the function. + +2011-04-19 Bernd Schmidt + + PR fortran/47976 + * reload1.c (inc_for_reload): Return void. All callers changed. + (emit_input_reload_insns): Don't try to delete previous output + reloads to a register, or record spill_reg_store for autoincs. + +2011-04-19 Basile Starynkevitch + + * gengtype.h: Updated copyright year. + (struct input_file_st): Add inpisplugin field. + (type_fileloc): New function. + * gengtype.c + (write_typed_struct_alloc_def): Add gcc_assert. + (write_typed_alloc_defns): Ditto. Don't output for plugin files. + (write_typed_alloc_defns): Don't output for plugin files. + (input_file_by_name): Clear inpisplugin field. + (main): Set inpisplugin field for plugin files. + +2011-04-19 Nicola Pero + + * gengtype-state.c (string_eq): New. + (read_state): Use string_eq instead of strcmp when creating the + state_ident_tab. + +2011-04-19 Wei Guozhi + + PR target/47855 + * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype. + * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static + linkage. + * config/arm/constraints.md (Uu): New constraint. + * config/arm/arm.md (*arm_movqi_insn): Compute attr "length". + +2011-04-19 Tristan Gingold + + * config.gcc (-*-*-*vms): Added. + (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common + definitions moved. + * config/vms/vms-ld.c: New file. + * config/vms/vms-ar.c: New file. + * config/vms/t-vmsnative: New file. + +2011-04-18 Xinliang David Li + + * final.c (dump_basic_block_info): Use ASM_COMMENT_START. + +2011-04-18 Jakub Jelinek + + PR middle-end/48661 + * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL + if TREE_TYPE (v) is non-NULL. + + * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from + gimple_get_virt_mehtod_for_binfo. + * gimple.h (gimple_get_virt_method_for_binfo): Likewise. + * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust + callers. + * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. + +2011-04-18 Michael Matz + Steve Ellcey + + * expr.c (expand_expr_real_2) : If OP0 is a constant, + use its mode as source mode if it isn't VOIDmode. + +2011-04-18 Dennis, CHENG Renquan + + * doc/passes.texi: Fill crossref nodes. + +2011-04-18 Jim Meyering + + Fix doubled-word typos in comments and strings + * config/alpha/vms-unwind.h: s/for for/for/ + * config/arm/unwind-arm.h: Likewise. + * config/microblaze/microblaze.c: Likewise. + * config/sh/constraints.md: s/in in/in/ + * tree-cfg.c (verify_types_in_gimple_reference): Likewise. + +2011-04-18 Uros Bizjak + + * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove. + (AVX_FLOAT_MODE_P): Ditto. + (AVX128_VEC_FLOAT_MODE_P): Ditto. + (AVX256_VEC_FLOAT_MODE_P): Ditto. + (AVX_VEC_FLOAT_MODE_P): Ditto. + * config/i386/i386.md (UNSPEC_MASKLOAD): Remove. + (UNSPEC_MASKSTORE): Ditto. + * config/i386/sse.md (_movmsk): + Merge from _movmsk and + avx_movmsk256. Use VF mode iterator. + (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode + iterator. + (avx_maskload): New expander. + (avx_maskstore): Ditto. + (*avx_maskmov): New insn. + +2011-04-18 Jan Hubicka + + * ipa-inline.c (inline_small_functions): Fix pasto in previous patch. + + * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h + (want_inline_function_called_once_p): Break out the logic from + ipa_inline. + (edge_badness): Ensure that profile is not misupdated. + (lookup_recursive_calls): Prioritize by call frequencies. + (inline_small_functions): Move program size estimates here; + actually process whole queue even when unit growth has been + met. (to properly compute inline_failed reasons and for the + case unit size decrease.) Revisit comments on recursive inlining. + (ipa_inline): Remove unit summary code; first inline hot calls + of functions called once, cold calls next. + (order, nnodes): Remove unused variables. + * Makefile.in (ipa-inline.o): No longer depent on ggc files. + (GTFILES): Remove ipa-inline.c + * sel-sched.c (fill_insns): Silence uninitialized var warning. + +2011-04-18 Eric Botcazou + + * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype. + +2011-04-18 Jie Zhang + Richard Earnshaw + + * arm.c (neon_builtin_type_bits): Remove. + (typedef enum neon_builtin_mode): New. + (T_MAX): Don't define. + (typedef enum neon_builtin_datum): Remove bits, codes[], + num_vars and base_fcode. Add mode, code and fcode. + (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9 + VAR10): Change accordingly. + (neon_builtin_data[]): Change accordingly + (arm_init_neon_builtins): Change accordingly. + (neon_builtin_compare): Remove. + (locate_neon_builtin_icode): Remove. + (arm_expand_neon_builtin): Change accordingly. + + * arm.h (enum arm_builtins): Move to ... + * arm.c (enum arm_builtins): ... here; and rearrange builtin code. + + * arm.c (arm_builtin_decl): Declare. + (TARGET_BUILTIN_DECL): Define. + (enum arm_builtins): Correct ARM_BUILTIN_MAX. + (arm_builtin_decls[]): New. + (arm_init_neon_builtins): Store builtin declarations in + arm_builtin_decls[]. + (arm_init_tls_builtins): Likewise. + (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code. + (arm_builtin_decl): New. + +2011-04-18 Richard Guenther + + * tree.c (upper_bound_in_type): Build properly canonicalized + INTEGER_CSTs. + (lower_bound_in_type): Likewise. + +2011-04-18 Richard Guenther + + * gimple.h (gimple_call_addr_fndecl): New function. + (gimple_call_fndecl): Use it. + * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs + for direct calls. + * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding. + * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs. + +2011-04-18 Richard Guenther + + PR middle-end/48650 + * tree.c (build_string): STRING_CST is now derived from tree_typed. + +2011-04-18 Eric Botcazou + + PR lto/48492 + * cfgexpand.c (expand_debug_expr) : Return NULL for a + DECL_IN_CONSTANT_POOL without RTL. + +2011-04-18 Ulrich Weigand + Ira Rosen + + PR target/48252 + * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments + to match neon_vzip/vuzp/vtrn_internal. + * config/arm/neon.md (neon_vtrn_internal): Make both + outputs explicitly dependent on both inputs. + (neon_vzip_internal, neon_vuzp_internal): Likewise. + +2011-04-18 Jakub Jelinek + + PR tree-optimization/48616 + * tree-vect-stmts.c (vectorizable_shift): If SLP, determine + whether the shift is by scalar or vector based on whether all SLP + scalar stmts have the same rhs. + +2011-04-17 Chung-Lin Tang + + * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC + memory operands. + +2011-04-17 Richard Sandiford + + PR target/43700 + * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global + registers. + +2011-04-17 Jan Hubicka + + * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend. + * cgrpahunit.c (cgraph_finalize_function): Do not set + finalized_by_frontend. + * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream + finalized_by_frontend. + +2011-04-17 Jan Hubicka + + * cgraph.c (cgraph_clone_node): Do not handle vtable_method + * cgraph.h (struct cgraph_local_info): Drop vtable_method. + * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method. + * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable + method. + * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in + gimple-fold.c + * varasm.c (mark_decl_referenced): Drop vtable_method handling code. + +2011-04-17 Eric Botcazou + + PR lto/48538 + * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data + is non-null before accessing it. + (input_cgraph): Remove trailing spaces. + +2011-04-17 Revital Eres + + * params.def (sms-min-sc): New param flag. + * modulo-sched.c (sms_schedule): Use it. + * doc/invoke.texi (sms-min-sc): Document it. + +2011-04-17 Jan Hubicka + + * lto-symtab.c (lto_cgraph_replace_node): When call statement is + present, also set gimple_call_set_cannot_inline. + * ipa-inline.c: Update toplevel comment. + (MAX_TIME): Remove. + (cgraph_clone_inlined_nodes): Fix linebreaks. + (cgraph_check_inline_limits): Restructure to ... + (caller_growth_limits): ... this one; be more tolerant + on growth in nested inline chains; add explanatory comment; + fix stack accounting thinko introduced by previous patch. + (cgraph_default_inline_p): Remove. + (report_inline_failed_reason): New function. + (can_inline_edge_p): New function. + (can_early_inline_edge_p): New function. + (leaf_node_p): Move upwards in file. + (want_early_inline_function_p): New function. + (want_inline_small_function_p): New function. + (want_inline_self_recursive_call_p): New function. + (cgraph_edge_badness): Rename to ... + (edge_badness) ... this one; fix linebreaks. + (update_edge_key): Update call of edge_baddness; add + detailed dump about queue updates. + (update_caller_keys): Use can_inline_edge_p and + want_inline_small_function_p. + (cgraph_decide_recursive_inlining): Rename to... + (recursive_inlining): Use can_inline_edge_p and + want_inline_self_recursive_call_p; simplify and remove no longer + valid FIXME. + (cgraph_set_inline_failed): Remove. + (add_new_edges_to_heap): Use can_inline_edge_p and + want_inline_small_function_p. + (cgraph_decide_inlining_of_small_functions): Rename to ... + (inline_small_functions): ... this one; cleanup; use + can/want predicates; cleanup debug ouput; work edges till fibheap + is exhausted and do not stop once unit growth is reached; remove + later loop processing remaining edges. + (cgraph_flatten): Rename to ... + (flatten_function): ... this one; use can_inline_edge_p + and can_early_inline_edge_p predicates. + (cgraph_decide_inlining): Rename to ... + (ipa_inline): ... this one; remove unreachable nodes before + inlining functions called once; simplify the pass. + (cgraph_perform_always_inlining): Rename to ... + (inline_always_inline_functions): ... this one; use + DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate. + (cgraph_decide_inlining_incrementally): Rename to ... + (early_inline_small_functions): ... this one; simplify + using new predicates; cleanup; make dumps prettier. + (cgraph_early_inlining): Rename to ... + (early_inliner): newer inline regular functions into always-inlines; + fix updating of call stmt summaries. + (pass_early_inline): Update for new names. + (inline_transform): Fix formating. + (gate_cgraph_decide_inlining): Rename to ... + (pass_ipa_inline): ... this one. + * ipa-inline.h (inline_summary): Remove disregard_inline_limits. + * ipa-inline-analysis.c (dump_inline_summary): Update. + (compute_inline_parameters): Do not compute disregard_inline_limits; + look for mismatching arguments. + (estimate_growth): Fix handlig of non-trivial self recursion. + (inline_read_summary): Do not read info->disregard_inline_limits. + (inline_write_summary): Do not write info->disregard_inline_limits. + * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove + and move all checks into can_inline_edge_p predicate; re-enable code + comparing optimization levels. + (expand_call_inline): Do not test inline_forbidden_into_p. + * Makefile.in (ipa-inline.o): Update arguments. + +2011-04-17 Revital Eres + + * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs. + +2011-04-17 Revital Eres + + * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails. + +2011-04-17 Michael Matz + + PR tree-optimization/48622 + PR lto/48645 + * ipa-inline-analysis.c (inline_read_summary): Read size/time + in same order as they're written. + +2011-04-16 John David Anglin + + * config/pa/predicates.md: Reorganize and simplify predicates. + Eliminate duplicate code checks. + (arith_operand): Rename to arith14_operand + (reg_or_ior_operand): Rename to reg_or_cint_ior_operand. + * config/pa/pa.md: Use renamed operands. + * config/pa/pa-protos.h (symbolic_operand): Delete declaration. + (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand, + arith11_operand, adddi3_operand, indexed_memory_operand, + symbolic_memory_operand, int11_operand, reg_or_cint_move_operand, + arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator, + borx_reg_operand, shadd_operand, arith_operand, read_only_operand, + move_dest_operand, move_src_operand, prefetch_cc_operand, + prefetch_nocc_operand, and_operand, ior_operand, arith32_operand, + uint32_operand, reg_before_reload_operand, reg_or_0_operand, + reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand, + div_operand, int5_operand, movb_comparison_operator, + ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand, + arith_double_operand, ireg_operand, lhs_lshift_operand, + pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator, + integer_store_memory_operand): Likewise. + * config/pa/pa.c (adddi3_operand): Move to predicates.md. + (integer_store_memory_operand, read_only_operand, + function_label_operand, borx_reg_operand, + non_hard_reg_operand): Likewise. + (eq_neq_comparison_operator): Delete unused operator. + (legitimize_pic_address): Use VOIDmode for mode argument in calls to + function_label_operand. + (emit_move_sequence): Likewise. + +2011-04-16 Uros Bizjak + + * config/i386/sse.md (sseunpackmode): New mode attribute. + (ssepackmode): Ditto. + (vec_pack_trunc_): Macroize expander from + vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator. + (vec_unpacks_lo_): Macroize expander from + vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator. + (vec_unpacks_hi_): Macroize expander from + vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator. + (vec_unpacku_lo_): Macroize expander from + vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator. + (vec_unpacku_hi_): Macroize expander from + vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator. + * config/i386/i386.c (ix86_expand_sse_unpack): Merge with + ix86_expand_sse4_unpack. + * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove. + +2011-04-16 Jan Hubicka + + * cgraphbuild.c: Include ipa-inline.h. + (reset_inline_failed): Use initialize_inline_failed. + * cgraph.c: Include ipa-inline.h. + (cgraph_create_node_1): Do not initialize estimated_growth. + (initialize_inline_failed): More to ipa-inline-analysis.c + (dump_cgraph_node): Do not dump inline flags. + * cgraph.h (cgraph_local_info): Remove inlineable, versionable + and disregard_inline_limits flags. + (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset, + time, size, estimated_growth. + * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary): + Update. + * cgraphunit.c (cgraph_decide_is_function_needed): Use + DECL_DISREGARD_INLINE_LIMITS. + (cgraph_analyze_function): Do not initialize + node->local.disregard_inline_limits. + * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream + inlinable, versionable and disregard_inline_limits. + * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, + cgraph_check_inline_limits, cgraph_default_inline_p, + cgraph_edge_badness, update_caller_keys, update_callee_keys, + add_new_edges_to_heap): Update. + (cgraph_decide_inlining_of_small_function): Update; set + CIF_FUNCTION_NOT_INLINABLE for uninlinable functions. + (cgraph_decide_inlining, cgraph_edge_early_inlinable_p, + cgraph_decide_inlining_incrementally): Update. + * ipa-inline.h (inline_summary): Add inlinable, versionable, + disregard_inline_limits, estimated_stack_size, stack_frame_offset, + time, size and estimated_growth parameters. + (estimate_edge_growth): Update. + (initialize_inline_failed): Declare. + * ipa-split.c: Include ipa-inline.h + (execute_split_functions): Update. + * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS. + (cgraph_remove_unreachable_nodes): Do not clear inlinable flag. + (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS. + * ipa-inline-analysis.c (inline_node_removal_hook): Update; set + estimated_growth to INT_MIN. + (inline_node_duplication_hook): Likewise. + (dump_inline_summary): Dump new fields. + (compute_inline_parameters): Update. + (estimate_edge_time, estimate_time_after_inlining, + estimate_size_after_inlining, estimate_growth, inline_read_summary, + inline_write_summary): + (initialize_inline_failed): Move here from cgraph.c. + * tree-sra.c: Include ipa-inline.h. + (ipa_sra_preliminary_function_checks): Update. + * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on + ipa-inline.h. + +2011-04-16 Uros Bizjak + + * config/i386/sse.md (V16): New mode iterator. + (VI1, VI8): Ditto. + (AVXMODEQI, AVXMODEDI): Remove. + (sse2, sse3): New mode attribute. + (mov): Use V16 mode iterator. + (*mov_internal): Merge with *avx_mov_internal. + (push1): Use V16 mode iterator. + (movmisalign): Ditto. + (_movu): Merge from + _movu and avx_movu. + (*_movu): Merge from + *_movu and *avx_movu. + (_movdqu): Merge from sse2_movdqu and + avx_movdqu. + (*_movdqu): Merge from *sse2_movdqu and + *avx_movdqu. + (_lddqu) Merge from sse3_lddqu and + avx_lddqu. + (_movnt): Merge with avx_movnt. + (_movnt): Merge from sse2_movntv2di and + avx_movnt. + * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for + renamed sse_movups, sse2_movupd and sse2_movdqu patterns. + +2011-04-16 Bernd Schmidt + + PR target/48629 + * haifa-sched.c (prune_ready_list, schedule_block): Use + sched_pressure_p rather than flag_sched_pressure. + +2011-04-15 Pat Haugen + + * config/rs6000/rs6000.c (call_ABI_of_interest): Call + cgraph_get_node instead of cgraph_get_create_node. + +2011-04-15 Jakub Jelinek + + * cfgexpand.c (expand_debug_expr): Use + simplify_gen_{unary,binary,ternary} instead of gen_rtx_*. + +2011-04-15 Michael Matz + + * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P. + * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P. + * function.c (gimplify_parameters): Ditto. + * gimplify.c (gimplify_vla_decl): Ditto. + + * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR. + (gimple_call_set_alloca_for_var): New inline function. + (gimple_call_alloca_for_var_p): Ditto. + * gimple.c (gimple_build_call_from_tree): Remember + CALL_ALLOCA_FOR_VAR_P state. + * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state. + + * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca + calls if they were for VLA objects. + +2011-04-15 Martin Jambor + + * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling + of ADR_EXPRs. + +2011-04-15 Martin Jambor + + PR middle-end/48601 + * tree-emutls.c (lower_emutls_function_body): Call + cgraph_get_create_node instead of cgraph_get_node. Do not assert the + result is non-NULL. + +2011-04-15 Nicola Pero + + * c-decl.c (detect_field_duplicates): Call + objc_detect_field_duplicates instead of objc_get_interface_ivars. + +2011-04-15 Nathan Froyd + + * gimple.h (gimple_asm_clobbers_memory_p): Declare. + * gimple.c (gimple_asm_clobbers_memory_p): Define. + * ipa-pure-const.c (check_stmt): Call it. + * tree-ssa-operands.c (get_asm_expr_operands): Likewise. + +2011-04-15 Richard Guenther + + PR tree-optimization/48290 + * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants. + Properly decide inhibiting propagation based on the valueized + operand. Do loop-closed SSA form preserving here ... + (init_copy_prop): ... not here. + +2011-04-15 H.J. Lu + + PR target/48612 + * config/i386/sse.md (*ieee_smin3): Switch mnemonics. + (*ieee_smax3): Likewise. + +2011-04-15 Andreas Krebbel + + * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2): + Replace match_operand with match_dup for the third operand in + these expanders. + +2011-04-15 Maxim Kuvyrkov + + * combine.c (subst, combine_simlify_rtx): Add new argument, use it + to track processing of conditionals. Update all callers. + (try_combine, simplify_if_then_else): Update. + +2011-04-15 Maxim Kuvyrkov + + * config/m68k/m68k.c (m68k_sched_variable_issue): Handle + -fsched-pressure. + +2011-04-15 Georg-Johann Lay + + * config/avr/avr.md ("rotl3",mode=HIDI): Use match_dup + instead of match_operand for operand 3. + +2011-04-15 Richard Sandiford + + * recog.h (insn_operand_data): Add an "allows_mem" field. + * genoutput.c (output_operand_data): Initialize it. + * optabs.c (maybe_legitimize_operand_same_code): New function. + (maybe_legitimize_operand): Use it when matching the original + op->value. + +2011-04-15 Eric Botcazou + + * gimplify.c: Fix issues in comments throughout. + (voidify_wrapper_expr): Fix long line. + (build_stack_save_restore): Likewise. + (gimplify_loop_expr): Likewise. + (gimplify_compound_lval): Likewise. + (gimplify_init_ctor_eval): Likewise. + (gimplify_modify_expr_rhs): Likewise. + (omp_notice_threadprivate_variable): Likewise. + +2011-04-15 Eric Botcazou + + * cfgexpand.c (expand_call_stmt): Convert the function type to the + original one if this is not a builtin function. + +2011-04-14 Jakub Jelinek + + PR target/48605 + * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM, + offset it as needed based on top 2 bits in operands[3], change + MEM mode to SFmode and mask those 2 bits away from operands[3]. + +2011-04-14 Nicola Pero + + * c-parser.c (c_parser_objc_protocol_definition): Updated for + change from objc_declare_protocols() to objc_declare_protocol(). + +2011-04-14 Uros Bizjak + + * config/i386/sse.md (sse4_1): New mode attribute. + (_blend): Macroize from + avx_blend and + sse4_1_blend using VF mode iterator. + (_blendv): Macroize from + avx_blendv and + sse4_1_blendv using VF mode iterator. + (_dp): Macroize from + avx_dp and + sse4_1_dp using VF mode iterator. + (sse4_1_mpsadbw): Merge with *avx_mpsadbw. + (sse4_1_packusdw): Merge with *avx_packusdw. + (sse4_1_pblendvb): Merge with *avx_pblendvb. + (sse4_1_pblendw): Merge with *avx_pblendw. + (avx_vtest): Use VF mode iterator. + (_round): Macroize from + avx_round256 and sse4_1_round using + VF mode iterator. + (sse4_1_round): Merge with + *avx_round. + (aesenc): Merge with *avx_aesenc. + (aesenclast): Merge with *avx_aesenclast. + (aesdec): Merge with *avx_aesdec. + (aesdeclast): Merge with *avx_aesdeclast. + (pclmulqdq): Merge with *pclmulqdq. + * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx): + New predicate. + (nonimm_not_xmm0_operand_maybe_avx): Ditto. + +2011-04-14 H.J. Lu + + PR middle-end/48608 + * cfgexpand.c (get_decl_align_unit): Renamed to ... + (align_local_variable): This. Update DECL_ALIGN. + (add_stack_var): Updated. + (expand_one_stack_var): Likewise. + +2011-04-14 Richard Guenther + + * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data): + Remove. + (dse_initialize_block_local_data, dse_leave_block, + record_voperand_set, get_stmt_uid): Likewise. + (dse_possible_dead_store_p): Allow any kind of killing stmt. + (dse_optimize_stmt): Remove voperand set handling code. + Simplify and improve to handle any kind of killing stmt. + (dse_record_phi): Remove. + (dse_enter_block): Simplify. + (tree_ssa_dse): Likewise. + * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins. + +2011-04-14 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Do not dump inline summaries. + * cgraph.h (struct inline_summary): Move to ipa-inline.h + (cgraph_local_info): Remove inline_summary. + * ipa-cp.c: Include ipa-inline.h. + (ipcp_cloning_candidate_p, ipcp_estimate_growth, + ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary + accesor. + * lto-cgraph.c (lto_output_node): Do not stream inline summary. + (input_overwrite_node): Do not set inline summary. + (input_node): Do not stream inline summary. + * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries. + (cgraph_decide_inlining_incrementally): Do not try to estimate overall + growth; we do not have inline parameters computed for that anyway. + (cgraph_early_inlining): After inlining compute call_stmt_sizes. + * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h + (inline_summary_t): New type and VECtor. + (debug_inline_summary, dump_inline_summaries): Declare. + (inline_summary): Use VOCtor. + (estimate_edge_growth): Kill hack computing call stmt size directly. + * lto-section-in.c (lto_section_name): Add inline section. + * ipa-inline-analysis.c: Include lto-streamer.h + (node_removal_hook_holder, node_duplication_hook_holder): New holders + (inline_node_removal_hook, inline_node_duplication_hook): New functions. + (inline_summary_vec): Define. + (inline_summary_alloc, dump_inline_summary, debug_inline_summary, + dump_inline_summaries): New functions. + (estimate_function_body_sizes): Properly compute size/time of outgoing + calls. + (compute_inline_parameters): Alloc inline_summary; do not compute + size/time of incomming calls. + (estimate_edge_time): Avoid missing time summary hack. + (inline_read_summary): Read inline summary info. + (inline_write_summary): Write inline summary info. + (inline_free_summary): Free all hooks and inline summary vector. + * lto-streamer.h: Add LTO_section_inline_summary section. + * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies. + * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating. + +2011-04-14 Richard Sandiford + + * tree-vectorizer.h (vect_strided_store_supported): Add a + HOST_WIDE_INT argument. + (vect_strided_load_supported): Likewise. + (vect_permute_store_chain): Return void. + (vect_transform_strided_load): Likewise. + (vect_permute_load_chain): Delete. + * tree-vect-data-refs.c (vect_strided_store_supported): Take a + count argument. Check that the count is a power of two. + (vect_strided_load_supported): Likewise. + (vect_permute_store_chain): Return void. Update after above changes. + Assert that the access is supported. + (vect_permute_load_chain): Likewise. + (vect_transform_strided_load): Return void. + * tree-vect-stmts.c (vectorizable_store): Update calls after + above interface changes. + (vectorizable_load): Likewise. + (vect_analyze_stmt): Don't check for strided powers of two here. + +2011-04-14 Richard Guenther + + PR tree-optimization/48590 + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle + BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. + (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and + BUILT_IN_STACK_SAVE. + * tree-ssa-dce.c (propagate_necessity): Handle + BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. + +2011-04-14 Nicola Pero + + * c-parser.c (c_parser_objc_class_declaration): Updated call to + objc_declare_class. + +2011-04-14 Richard Guenther + + * tree.h (get_object_alignment_1): Declare. + * builtins.c (get_object_alignment_1): Split out worker from ... + (get_object_alignment): ... here. + * fold-const.c (get_pointer_modulus_and_residue): Use + get_object_alignment_1. + +2011-04-14 Richard Sandiford + + * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra + type parameter. + * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type + parameter. Generalise code to handle arrays as well as vectors. + (vect_setup_realignment): Update accordingly. + * tree-vect-stmts.c (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + +2011-04-14 Richard Sandiford + + * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain + within the per-copy loop. + +2011-04-14 Richard Sandiford + + * tree-vect-stmts.c (vectorizable_load): Print the number of copies + in the dump file. + +2011-04-14 Richard Sandiford + + * doc/options.texi (Negative): Explicitly mention that the + Negative chain must be circular. + +2011-04-14 Nathan Froyd + + * function.h (block_chainon): Declare. + * function.c (block_chainon): Define. + +2011-04-14 Anatoly Sokolov + Eric Weddington + Georg-Johann Lay + + * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"): + New Includes + (avr_init_builtins, avr_expand_builtin, + avr_expand_delay_cycles, avr_expand_unop_builtin, + avr_expand_binop_builtin ): New functions. + (avr_builtin_id): New enum + (struct avr_builtin_description): New struct + (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins. + (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. + + * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU, + UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR, + UNSPECV_DELAY_CYCLES): new enumeration values + (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values + ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS + ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS + ("*rotlqi3_4"): rename insn to "rotlqi3_4" + ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3", + "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls", + "fmulsu"): New insns + + * config/avr/avr-c.c: fix line endings + (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP, + __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR, + __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP, + __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL, + __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU. + + * doc/extend.texi (AVR Built-in Functions): New node + (Target Builtins): Add documentation of AVR + built-in functions. + +2011-04-14 Georg-Johann Lay + + PR target/44643 + * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY + alone. Error if non-const data has attribute progmem. + +2011-04-13 Nathan Froyd + + * tree.h (struct tree_constructor): Include tree_typed instead of + tree_common. + * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as + TS_TYPED instead of TS_COMMON. + +2011-04-13 Uros Bizjak + + * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3. + (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3. + (sse2_psadbw): Merge with *avx_psadbw. + (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3. + (ssse3_phadddv4si3): Merge with *avx_phadddv4si3. + (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3. + (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3. + (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3. + (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3. + (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128. + (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3. + (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3. + (ssse3_psign3): Merge with *avx_psign3. + (ssse3_palignrti): Merge with *avx_palignrti. + +2011-04-13 Nathan Froyd + + * tree-flow.h (struct gimple_df): Make free_ssanames a VEC. + * tree-ssanames.c (fini_ssanames): VEC_free it. + (make_ssa_name_fn): Update for VECness of free_ssanames. + (release_ssa_name, release_dead_ssa_names): Likewise. + * tree.h (struct tree_ssa_name): Include tree_typed instead of + tree_common. + * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as + TS_TYPED instead of TS_COMMON. + +2011-04-13 Nathan Froyd + + * postreload-gcse.c (gcse_after_reload_main): Add calls to + statistics_counter_event. + * tree-ssa-copyrename.c (stats): Define. + (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to + statistics_counter_event. + * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define. + (bswap_stats, widen_mul_stats): Define. + (insert_reciprocals): Increment rdivs_inserted. + (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment + rfuncs_inserted. Add calls to statistics_counter_event. + (execute_cse_sincos_1): Increment inserted. + (execute_cse_sincos): Zeroize sincos_stats. Add call to + statistics_counter_event. + (execute_optimize_bswap): Zeroize bswap_stats. Increment fields + of bswap_stats. Add calls to statistics_counter_event. + (convert_mult_to_widen): Increment widen_mults_inserted. + (convert_plusminus_to_widen): Increment maccs_inserted. + (convert_mult_to_fma): Increment fmas_inserted. + (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add + calls to statistics_counter_event. + +2011-04-13 Vladimir Makarov + + PR rtl-optimization/48455 + * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of + `temp_costs->mem_cost'. + +2011-04-13 Jan Hubicka + + * ipa-inline.h: New file. + * ipa-inline-analysis.c: New file. Broken out of ... + * ipa-inline.c: ... this file; update toplevel comment; + include ipa-inline.h + (inline_summary): Move to ipa-inline.h + (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to + ipa-inline-analysis.c. + (cgraph_estimate_time_after_inlining): Rename to + estiamte_time_after_inlining; move to ipa-inline-analysis.c + (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename + to estimate_edge_growth. + (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c; + rename to estimate_size_after_inlining. + (cgraph_mark_inline_edge): Update for new naming convention. + (cgraph_check_inline_limits): Likewise. + (cgraph_edge_badness): Likewise. + (cgraph_decide_recursive_inlining): Likewise. + (cgraph_decide_inlining_of_small_functions): Likewise. + (cgraph_decide_inlining_incrementally): Likewise. + (cgraph_estimate_growth): Rename to estimate_growth; move to + ipa-inline-analysis.c. + (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c. + (estimate_function_body_sizes): Move to ipa-inline-analysis.c. + (compute_inline_parameters): Likewise. + (compute_inline_parameters_for_current): Likewise. + (pass_inline_parameters): Likewise. + (inline_indirect_intraprocedural_analysis): Likewise. + (analyze_function): Rename to inline_analyze_function; likewise. + (add_new_function): Move to ipa-inline-analysis.c. + (inline_generate_summary): Likewise. + (inline_read_summary): Likewise. + (inline_write_summary): Likewise. + * Makefile.in (ipa-inline-analysis.c): New file. + +2011-04-13 Rainer Orth + + * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check. + * configure: Regenerate. + +2011-04-13 Nathan Froyd + + * tree.h (struct tree_int_cst, struct real_value): Include tree_typed + instead of tree_common. + (struct tree_fixed_cst, struct tree_string, struct tree_complex): + Likewise. + * tree.c (initialize_tree_contains_struct): Mark such nodes as being + TS_TYPED rather than TS_COMMON. + * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN. + +2011-04-01 Georg-Johann Lay + + PR target/45263 + * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use + r20 around calls of __tablejump_elpm__ + +2011-04-13 Jakub Jelinek + + PR middle-end/48591 + * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is + NULL. + (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL. + +2011-04-13 Bernd Schmidt + + * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next. + (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps. + (cfi_vec): New typedef. + (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace + dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index. + (cie_cfi_vec): New static variable. + (cie_cfi_head): Delete. + (add_cfi): Accept a cfi_vec * as first argument. All callers and + declaration changed. Use vector rather than list operations. + (new_cfi): Don't initialize the dw_cfi_next field. + (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector + rather than list operations. + (lookup_cfa): Use vector rather than list operations. + (output_cfis): New argument upto. Accept a cfi_vec rather than + a dw_cfi_ref list head as argument. All callers changed. + Iterate over the vector using upto as a maximum index. + (output_all_cfis): New static function. + (output_fde): Use vector rather than list operations. Use the + new upto argument for output_cfis rather than manipulating a + list. + (dwarf2out_begin_prologue): Change initializations to match + new struct members. + (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index + from the vector length rather than searching for the end of a list. + Use output_all_cfis. + (convert_cfa_to_fb_loc_list): Use vector rather than list operations. + +2011-04-13 Nick Clifton + + * config/rx/rx.md (movmemsi): Do not use this pattern when + volatile pointers are involved. + +2011-04-13 Uros Bizjak + + * config/i386/sse.md (pinsrbits): Remove. + (sse2_packsswb): Merge with *avx_packsswb. + (sse2_packssdw): Merge with *avx_packssdw. + (sse2_packuswb): Merge with *avx_packuswb. + (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi. + (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi. + (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi. + (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi. + (vec_interleave_highv4si): Merge with *avx_interleave_highv4si. + (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si. + (*sse4_1_pinsrb): Merge with *avx_pinsr. + (*sse2_pinsrw): Merge with *avx_pinsr. + (*sse4_1_pinsrd): Merge with *avx_pinsr. + (*sse4_1_pinsrq): Merge with *avx_pinsrq. + (sse2_loadld): Merge with *avx_loadld. + (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx. + (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx. + (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx. + (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx. + (vec_concatv2di): Merge with *vec_concatv2di_avx. + +2011-04-12 Nathan Froyd + + * c-decl.c (union lang_tree_node): Check for TS_COMMON before + calling TREE_CHAIN. + * print-tree.c (print_node): Likewise. + * tree-inline.c (copy_tree_r): Likewise. + * c-lang.c (LANG_HOOKS_INIT_TS): Define. + * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED + instead of TS_COMMON. + * lto-streamer-out.c (lto_output_tree_pointers): Likewise. + * tree.c (initialize_tree_contains_struct): Handle TS_TYPED. + (copy_node_stat): Zero TREE_CHAIN only if necessary. + (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these... + (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL): + ...and these... + (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these... + * tree.h: ...here. + (TREE_CHAIN): Check for a TS_COMMON structure. + (TREE_TYPE): Check for a TS_TYPED structure. + +2011-04-12 Pat Haugen + + * config/rs6000/rs6000.c (call_ABI_of_interest): Call + cgraph_get_create_node instead of cgraph_node. + +2011-04-12 Nicola Pero + + * c-parser.c (c_parser_initelt): Updated call to + objc_build_message_expr. + (c_parser_postfix_expression): Likewise. + +2011-04-12 Kai Tietz + + * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add + MASK_MS_BITFIELD_LAYOUT bit. + +2011-04-12 Jakub Jelinek + + * combine.c (update_cfg_for_uncondjump): Instead of testing at_end + assert it is always true. + (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump + moves. + +2011-04-12 Nicola Pero + + * c-parser.c (c_lex_one_token): Rewritten conditional used when + compiling Objective-C to be more efficient. + +2011-04-12 Axel Freyn + + * opts-common.c (decode_cmdline_options_to_array): Remove variable + argv_copied. + +2011-04-12 Richard Sandiford + + * recog.h, genoutput.c, optabs.c: Revert last patch. + +2011-04-12 Ramana Radhakrishnan + + PR target/48090 + * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints. + +2011-04-12 Richard Sandiford + + * recog.h (insn_operand_data): Add an "allows_mem" field. + * genoutput.c (output_operand_data): Initialize it. + * optabs.c (maybe_legitimize_operand_same_code): New function. + (maybe_legitimize_operand): Use it when matching the original + op->value. + +2011-04-12 Richard Sandiford + + * genpreds.c (process_define_predicate): Move most processing + to gensupport.c. Continue to validate the expression. + * genrecog.c (did_you_mean_codes, compute_predicate_codes) + (process_define_predicate): Move processing to gensupport.c. + (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases. + * gensupport.c (did_you_mean_codes): Moved from genrecog.c. + (compute_predicate_codes): Moved from genrecog.c. Add lineno + argument. + (valid_predicate_name_p): New function, split out from old + genpreds.c:process_define_predicate. + (process_define_predicate): New function, combining code from + old genpreds.c and genrecog.c functions. + (process_rtx): Call it for DEFINE_PREDICATE and + DEFINE_SPECIAL_PREDICATE. + +2011-04-12 Richard Sandiford + + * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the + size of a '%A' memory reference. + (T_DREG, T_QREG): New neon_builtin_type_bits. + (arm_init_neon_builtins): Assert that the load and store operands + are neon_struct_operands. + (locate_neon_builtin_icode): Provide the neon_builtin_type_bits. + (NEON_ARG_MEMORY): New builtin_arg. + (neon_dereference_pointer): New function. + (arm_expand_neon_args): Add a neon_builtin_type_bits argument. + Handle NEON_ARG_MEMORY. + (arm_expand_neon_builtin): Update after above interface changes. + Use NEON_ARG_MEMORY for loads and stores. + * config/arm/predicates.md (neon_struct_operand): New predicate. + * config/arm/iterators.md (V_two_elem): Tweak formatting. + (V_three_elem): Use BLKmode for accesses that have no associated mode. + (V_four_elem): Tweak formatting. + * config/arm/neon.md (neon_vld1, neon_vld1_dup) + (neon_vst1_lane, neon_vst1, neon_vld2) + (neon_vld2_lane, neon_vld2_dup, neon_vst2) + (neon_vst2_lane, neon_vld3, neon_vld3_lane) + (neon_vld3_dup, neon_vst3, neon_vst3_lane) + (neon_vld4, neon_vld4_lane, neon_vld4_dup) + (neon_vst4): Replace pointer operand with a memory operand. + Use %A in the output template. + (neon_vld3qa, neon_vld3qb, neon_vst3qa) + (neon_vst3qb, neon_vld4qa, neon_vld4qb) + (neon_vst4qa, neon_vst4qb): Likewise, but halve + the width of the memory access. Remove post-increment. + * config/arm/neon-testgen.ml: Allow addresses to have an alignment. + +2011-04-12 Nick Clifton + + * config/v850/v850.c (expand_prologue): Do not use the CALLT + instruction for interrupt handlers if the target is the basic V850 + architecture. + (expand_epilogue): Likewise. + +2011-04-12 Jakub Jelinek + + PR rtl-optimization/48549 + * combine.c (propagate_for_debug): Also stop after BB_END of + this_basic_block. Process LAST and just stop processing after it. + (combine_instructions): If last_combined_insn has been deleted, + set last_combined_insn to its PREV_INSN. + +2011-04-12 Richard Guenther + + PR tree-optimization/46076 + * gimple.h (struct gimple_statement_call): Add fntype field. + (gimple_call_fntype): Adjust. + (gimple_call_set_fntype): New function. + * gimple.c (gimple_build_call_1): Set the call function type. + * gimplify.c (gimplify_call_expr): Preserve the function + type the frontend used for the call. + (gimplify_modify_expr): Likewise. + * lto-streamer-in.c (input_gimple_stmt): Input the call stmts + function type. + * lto-streamer-out.c (output_gimple_stmt): Output the call stmts + function type. + * tree-ssa.c (useless_type_conversion_p): Function pointer + conversions are useless. + +2011-04-12 Martin Jambor + + * cgraph.h (cgraph_node): Remove function declaration. + (cgraph_create_node): Declare. + (cgraph_get_create_node): Likewise. + * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1. + Updated all callers. + (cgraph_node): Renamed to cgraph_create_node, assert that a node for + the decl does not already exist. Call cgraph_get_create_node instead + of cgraph_node. + (cgraph_get_create_node): New function. + (cgraph_same_body_alias): Update comment. + (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node, + assert it does not return NULL. + (cgraph_update_edges_for_call_stmt): Likewise. + (cgraph_clone_edge): Likewise. + (cgraph_create_virtual_clone): Likewise. + (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node + instead of cgraph_node. + (cgraph_add_new_function): Call cgraph_create_node or + cgraph_get_create_node instead of cgraph_node. + * cgraphbuild.c (record_reference): Call cgraph_get_create_node + instead of cgraph_node. + (record_eh_tables): Likewise. + (mark_address): Likewise. + (mark_load): Likewise. + (build_cgraph_edges): Call cgraph_get_create_node instead + of cgraph_node. + (rebuild_cgraph_edges): Likewise. + * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node + instead of cgraph_node. + (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of + cgraph_node. + * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call + cgraph_create_node instead of cgraph_node. + * c-decl.c (finish_function): Call cgraph_get_create_node instead + of cgraph_node. + * lto-cgraph.c (input_node): Likewise. + * lto-streamer-in.c (input_function): Likewise. + * varasm.c (mark_decl_referenced): Likewise. + (assemble_alias): Likewise. + +2011-04-12 Martin Jambor + + * tree-inline.c (tree_function_versioning): Call cgraph_get_node + instead of cgraph_node and assert it does not return NULL. + * lto-streamer-in.c (lto_read_body): Likewise. + * omp-low.c (new_omp_context): Likewise. + (create_task_copyfn): Likewise. + * tree-emutls.c (lower_emutls_function_body): Likewise. + * matrix-reorg.c (transform_allocation_sites): Likewise. + +2011-04-12 Jakub Jelinek + + PR c/48552 + * c-typeck.c (build_asm_expr): Error out on attempts to use + void type outputs or inputs for constraints that allow reg or + don't allow memory. + +2011-04-11 Chung-Lin Tang + Richard Earnshaw + + PR target/48250 + * config/arm/arm.c (arm_legitimize_reload_address): Update cases + to use sign-magnitude offsets. Reject unsupported unaligned + cases. Add detailed description in comments. + * config/arm/arm.md (reload_outdf): Disable for ARM mode; change + condition from TARGET_32BIT to TARGET_ARM. + +2011-04-11 Nathan Froyd + + * tree.h (struct typed_tree): New. + (struct tree_common): Include it instead of tree_base. + (TREE_TYPE): Update for new location of type field. + (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly. + (DECL_USER_ALIGN, DECL_PACKED): Likewise. + (union tree_node): Add typed field. + * treestruct.def (TS_TYPED): New. + * lto-streamer.c (check_handled_ts_structures): Handle it. + * tree.c (MARK_TS_TYPED): New macro. + (MARK_TS_COMMON): Call it instead of MARK_TS_BASE. + +2011-04-11 Eric Botcazou + + * cfghooks.c (redirect_edge_and_branch_force): Localize variable. + (force_nonfallthru): Do not alter the loop nest if no basic block + was created. + +2011-04-11 Uros Bizjak + + * config/i386/sse.md (VI): New mode iterator. + (SSEMODEI): Remove. + (AVX256MODEI): Ditto. + (AVXMODEF4P): Ditto. + (avxvecpsmode): Ditto. + (one_cmpl2): Enable for TARGET_SSE. Use VI mode iterator. + (sse2_andnot3): New expander. + (*andnot3): Merge with *sse2_andnot3 and + *avx_andnot3. Enable for TARGET_SSE. Use VI mode iterator. + (3): Use VI mode iterator. + (*3): Merge with *sse2_3 + and *avx_3. Use VI mode iterator. + (*andnottf3): Handle AVX three-operand constraints. + (*tf3): Handle AVX three-operand constraints. + +2011-04-11 Joseph Myers + Robert Millan + + * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h. + * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32, + GNU_USER_DYNAMIC_LINKER64): Define. + (REG_NAME): Don't undefine. + (MD_UNWIND_SUPPORT): Undefine. + * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define. + (REG_NAME): Don't undefine. + (MD_UNWIND_SUPPORT): Undefine. + * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define. + +2011-04-11 Joseph Myers + + * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define. + (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove. + +2011-04-11 Xinliang David Li + + * value-profile.c (check_ic_target): New function. + (gimple_ic_transform): Sanity check indirect call target. + * gimple-low.c (gimple_check_call_args): Interface change. + (gimple_check_call_matching_types): New function. + * tree-inline.c (tree_can_inline_p): Call new function. + +2011-04-11 Basile Starynkevitch + + * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h + tree-pretty-print.h & realmpfr.h. + +2011-04-11 Vladimir Makarov + + PR middle-end/48464 + * ira.c (setup_pressure_classes): Fix typo in loop condition. + (setup_allocno_and_important_classes): Ditto. + +2011-04-11 Joseph Myers + + * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to + GNU_USER_DYNAMIC_LINKER. + * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change + LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. + (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to + GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change + LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. + (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to + GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to + GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove. + * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32, + GNU_USER_DYNAMIC_LINKER64): Remove. + * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to + GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to + GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename + to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to + GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER. + (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32. + (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64. + * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to + GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to + GNU_USER_DYNAMIC_LINKERN32. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to + GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to + GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to + GNU_USER_DYNAMIC_LINKER32. + * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. + * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to + GNU_USER_DYNAMIC_LINKER32. + (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64. + * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to + GNU_USER_DYNAMIC_LINKER. + * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to + GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to + GNU_USER_DYNAMIC_LINKER64. + * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to + GNU_USER_DYNAMIC_LINKER. + * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to + GNU_USER_DYNAMIC_LINKER32. + (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to + GNU_USER_DYNAMIC_LINKER64. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to + GNU_USER_DYNAMIC_LINKER64. + * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change + LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. + (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. + +2011-04-11 Joseph Myers + + * config/i386/gnu-user.h: Copy from linux.h. Update comments. + (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove. + (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and + GNU_USER_DYNAMIC_LINKER. + (MD_UNWIND_SUPPORT, REG_NAME): Remove. + * config/i386/gnu-user64.h: Copy from linux64.h. Update comments. + (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove. + (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and + GNU_USER_DYNAMIC_LINKER64. + (MD_UNWIND_SUPPORT, REG_NAME): Remove. + * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to + GNU_USER_LINK_EMULATION. + * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE, + DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, + ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS, + MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE, + PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS, + CPP_SPEC, CC1_SPEC): Remove. + (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION. + (GNU_USER_DYNAMIC_LINKER): Define. + (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC, + ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN, + ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA, + LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE, + TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP, + STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET, + TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. + * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC, + CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN, + TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC, + LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE, + LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove. + (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define. + (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN, + TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK, + TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. + * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to + GNU_USER_DYNAMIC_LINKER. + * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to + GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. + * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to + GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. + * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to + GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. + * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | + i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | + i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* | + x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers. + +2011-04-11 Kai Tietz + + PR target/9601 + PR target/11772 + * config/i386/i386-protos.h (ix86_get_callcvt): New prototype. + * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust + comment. + (ix86_is_msabi_thiscall): Removed. + (ix86_is_type_thiscall): Likewise. + (ix86_get_callcvt): New function. + (ix86_comp_type_attributes): Simplify check. + (ix86_function_regparm): Use ix86_get_callcvt for calling + convention attribute checks. + (ix86_return_pops_args): Likewise. + (ix86_static_chain): Likewise. + (x86_this_parameter): Likewise. + (x86_output_mi_thunk): Likewise. + (ix86_function_type_abi): Optimize check for types without attributes. + * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL, + IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM, + IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention + by flag-values. + (IX86_BASE_CALLCVT): Helper macro. + * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name): + Use ix86_get_callcvt for calling convention attribute checks and avoid + symbol-decoration for stdcall in TARGET_RTD case. + * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name): + Likewise. + (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN + for declaration. + +2011-04-11 Uros Bizjak + + * config/i386/sse.md (VI_128): New mode iterator. + (VI12_128): Rename from SSEMODE12. + (VI14_128): Rename from SSEMODE14. + (VI124_128): New mode iterator. + (VI24_128): Rename from SSEMODE248. + (VI248_128): Rename from SSEMODE248. + (SSEMODE124C8): Remove. + (*3): Merge with *avx_3. + (*sse2_3): Merge with + *avx_3. + (*mulv8hi3): Merge with *avx_mulv8hi3. + (*mulv8hi3_highpart): Merge with *avx_mulv8hi3_highpart. + (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3. + (*sse2_pmaddwd): Merge with *avx_pmaddwd. + (*sse4_1_mulv4si3): Merge with *avx_mulv4si3. + (ashr3): Merge with *avx_ashr3. + (lshr3): Merge with *avx_lshr3. + (ashl3): Merge with *avx_ashl3. + (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3. + (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3. + (*sse4_1_3): Merge with *avx_3. + (*v8hi3): Ditto. + (*sse4_1_3): Merge with *avx_3. + (*v16qi3): Ditto. + (*sse4_1_eqv2di3): Merge with *avx_eq3. + (*sse2_eq3): Ditto. + (*sse4_2_eqv2di3): Merge with *avx_gt3. + (*sse2_gt3): Ditto. + (vcondv2di): Split out of vcond. + (vconduv2di): Split out of vcondu. + +2011-04-11 Richard Guenther + + * gimplify.c (gimple_fold_indirect_ref): Check host_integerp + before calling tree_low_cst. + +2011-04-11 Richard Guenther + + * stor-layout.c (layout_type): Compute all array index size operations + in the original type. + (initialize_sizetypes): Add comment. + (set_sizetype): Do not set TREE_TYPE of a TREE_VEC. + +2011-04-11 Joseph Myers + + * common.opt (Tbss=, Tdata=, Ttext=): New options. + +2011-04-11 Martin Jambor + + * cgraph.c (cgraph_local_info): Call cgraph_get_node instead + of cgraph_node, handle NULL return value. + (cgraph_global_info): Likewise. + (cgraph_rtl_info): Likewise. + * tree-inline.c (estimate_num_insns): Likewise. + * gimplify.c (unshare_body): Likewise. + (unvisit_body): Likewise. + (gimplify_body): Likewise. + * predict.c (optimize_function_for_size_p): Likewise. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. + (call_may_clobber_ref_p_1): Likewise. + * varasm.c (function_section_1): Likewise. + (assemble_start_function): Likewise. + +2011-04-11 Martin Jambor + + * except.c (set_nothrow_function_flags): Call cgraph_get_node instead + of cgraph_node. + * final.c (rest_of_clean_state): Likewise. + * gimple-iterator.c (update_call_edge_frequencies): Likewise. + * passes.c (pass_init_dump_file): Likewise. + (execute_all_ipa_transforms): Likewise. + (function_called_by_processed_nodes_p): Likewise. + * predict.c (maybe_hot_frequency_p): Likewise. + (probably_never_executed_bb_p): Likewise. + (compute_function_frequency): Likewise. + * tree-nested.c (check_for_nested_with_variably_modified): Likewise. + (unnest_nesting_tree_1): Likewise. + (lower_nested_functions): Likewise. + * tree-optimize.c (execute_fixup_cfg): Likewise. + (tree_rest_of_compilation): Likewise. + * tree-profile.c (gimple_gen_ic_func_profiler): Likewise. + * tree-sra.c (ipa_early_sra): Likewise. + * tree-ssa-loop-ivopts.c (computation_cost): Likewise. + * config/i386/i386.c (ix86_compute_frame_layout): Likewise. + * ipa.c (record_cdtor_fn): Likewise. + * ipa-inline.c (cgraph_early_inlining): Likewise. + (compute_inline_parameters_for_current): Likewise. + * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. + * ipa-pure-const.c (local_pure_const): Likewise. + * ipa-split.c (split_function): Likewise. + (execute_split_functions): Likewise. + * cgraphbuild.c (build_cgraph_edges): Likewise. + (rebuild_cgraph_edges): Likewise. + (cgraph_rebuild_references): Likewise. + (remove_cgraph_callee_edges): Likewise. + * cgraphunit.c (cgraph_mark_if_needed): Likewise. + (verify_cgraph_node): Likewise. + (cgraph_analyze_functions): Likewise. + (cgraph_preserve_function_body_p): Likewise. + (save_inline_function_body): Likewise. + (save_inline_function_body): Likewise. + * tree-inline.c (copy_bb): Likewise. + (optimize_inline_calls): Likewise. + +2011-04-11 Martin Jambor + + PR tree-optimization/48195 + * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and + ipa_check_create_edge_args. + (ipcp_generate_summary): Do not call ipa_check_create_node_params and + ipa_check_create_edge_args. + * ipa-inline.c (inline_generate_summary): Do not call + ipa_check_create_node_params and ipa_check_create_edge_args. + * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and + ipa_check_create_edge_args. + +2011-04-09 Anatoly Sokolov + + * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function + instead of loop. + * sel-sched.c (mark_unavailable_hard_regs): Likewise. + * function.c (record_hard_reg_sets): Likewise. + * ira.c (compute_regs_asm_clobbered): Likewise. + * sched-deps.c (sched_analyze_1): Likewise. + * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise. + +2011-04-09 Xinliang David Li + + PR tree-optimization/PR48484 + * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set + has_valid_pred lazily + +2011-04-09 Duncan Sands + + * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set. + +2011-04-08 Eric Botcazou + + * combine.c (combine_validate_cost): Adjust comments. Set registered + cost of I0 to zero at the end, if any. + +2011-04-08 Xinliang David Li + + * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due + to insane profile data. + +2011-04-08 Xinliang David Li + + * ipa-cp.c (ipcp_update_profiling): Correct + negative scale factor due to insane profile data. + +2011-04-08 Xinliang David Li + + * final.c (dump_basic_block_info): New function. + (final): Dump basic block. + (final_scan_insn): Remove old dump. + +2011-04-08 Steven G. Kargl + + PR target/47829 + * config.gcc (i386-*-freebsd): Disable unwind table generation for + crtbegin/crtend. + +2011-04-08 Michael Matz + + PR middle-end/48389 + * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New + functions. + (rebuild_jump_labels): Call rebuild_jump_labels_1. + * rtl.h (rebuild_jump_labels_chain): Declare. + * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on + insns inserted on edges. + +2011-04-08 Joseph Myers + + * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options. + * config/arm/arm-arches.def: New. + * config/arm/arm-opts.h: New. + * config/arm/genopt.sh: New. + * config/arm/arm-tables.opt: New (generated). + * config/arm/arm.c (arm_handle_option, arm_target_help, + TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove. + (all_architectures): Get most table contents from arm-arches.def. + (arm_option_override): Set arm_selected_arch, arm_selected_cpu and + arm_selected_tune here. + * config/arm/arm.h (enum processor_type): Move to arm-opts.h. + * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude. + (march=, mcpu=, mtune=): Use Enum and Var. + * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New. + (arm.o): Update dependencies. + +2011-04-08 Basile Starynkevitch + + * gengtype.c (write_typed_alloc_def): New argument f. Use it instead + of header_file. + (write_typed_struct_alloc_def, write_typed_typedef_alloc_def) + (write_typed_alloc_defns): Likewise. + (main): Calls write_typed_alloc_defns with output_header. + +2011-04-08 Vladimir Makarov + + PR inline-asm/48435 + * ira-color.c (setup_profitable_hard_regs): Add comments. + Don't take prohibited hard regs into account. + (setup_conflict_profitable_regs): Rename to + get_conflict_profitable_regs. + (check_hard_reg_p): Check prohibited hard regs. + +2011-04-08 Nathan Froyd + + * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg. + * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise. + * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise. + +2011-04-08 John David Anglin + + PR target/48366 + * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of + move from floating point to shift amount register. + (emit_move_sequence): Remove secondary reload support for floating + point to shift amount amount register copies. + (pa_secondary_reload): Return GENERAL_REGS for floating point/shift + amount register copies. + * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount + register, return false if mode isn't a scalar integer mode. + * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise. + +2011-04-08 Richard Guenther + + * gimple.c (gimple_call_flags): Remove kludge. + +2011-04-08 Alexander Monakov + + * sel-sched.c (sel_region_init): Move call to + sel_setup_region_sched_flags after setup_current_loop_nest. + +2011-04-08 Andrey Belevantsev + + PR rtl-optimization/48272 + * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to + init_insn_reg_pressure_info. Adjust a caller. + * sched-int.h (init_insn_reg_pressure_info): Declare. + * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info + when sched-pressure is enabled. + +2011-04-08 Richard Guenther + + * gimple.c (gimple_set_modified): Do not queue calls to + MODIFIED_NORETURN_CALLS here ... + * tree-ssa-operands.c (update_stmt_operands): ... but here. + +2011-04-08 Richard Guenther + + PR lto/48467 + * toplev.c (lang_dependent_init): Do not open asm_out_file + in WPA mode, nor perform debug machinery initialization. + (finalize): Do not unlink asm_out_file in WPA mode. + +2011-04-08 Richard Guenther + + * gimple.h (gimple_call_fntype): New function. + (gimple_call_return_type): Use it. + * expr.c (expand_expr_real_1): Use gimple_call_fntype. + * gimple-low.c (gimple_check_call_args): Likewise. + * gimple.c (gimple_call_flags): Likewise. + (gimple_call_arg_flags): Likewise. + (gimple_call_return_flags): Likewise. + * tree-cfg.c (verify_gimple_call): Likewise. + (do_warn_unused_result): Likewise. + * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. + * value-prof.c (gimple_ic_transform): Fix fndecl check. + +2011-04-08 Dmitry Melnik + + PR rtl-optimization/48235 + * sel-sched.c (code_motion_process_successors): Recompute the last + insn in basic block if control flow changed. + (code_motion_path_driver): Ditto. Recompute the first insn as well. + Update condition for ilist_remove. + +2011-04-08 Alexander Monakov + + PR rtl-optimization/48302 + * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype. + * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use + it to record added preheader blocks. + * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it + on to sel_add_loop_preheaders. + (sel_region_init): Move call to setup_current_loop_nest after + sel_init_bbs. + +2011-04-08 Alexander Monakov + + PR target/48273 + * cfgloop.h (loop_has_exit_edges): New helper. + * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs + non-clonable. + * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops + that have no exit edges. + +2011-04-08 Alexander Monakov + + PR rtl-optimization/48442 + * sel-sched.c (init_seqno): Remove number_of_insns argument. Update + all callers. Adjust assert. + +2011-04-08 Jakub Jelinek + + PR tree-optimization/48377 + * tree-vect-data-refs.c (vector_alignment_reachable_p): Set + is_packed to true even for types with smaller TYPE_ALIGN than + TYPE_SIZE. + +2011-04-08 Richard Guenther + + PR bootstrap/48513 + * doc/tm.texi: Re-generate. + +2011-04-08 Wei Guozhi + + PR target/47855 + * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype. + * config/arm/arm.c (arm_attr_length_push_multi): New function. + * config/arm/arm.md (*push_multi): Change the length computation to + call a C function. + +2011-04-08 Anatoly Sokolov + + * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation. + (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation. + * doc/tm.texi: Regenerate. + * system.h (ASM_OUTPUT_BSS): Poison. + * varasm.c (asm_output_bss): Remove function. + (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro. + + * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment. + * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise. + * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise. + * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Likewise. + * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Likewise. + * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Likewise. + * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + +2011-04-07 Joseph Myers + + * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on + EnumValue lines. + +2011-04-07 Joseph Myers + + * config/m68k/m68k.c (m68k_handle_option): Don't handle + OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020, + OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and + OPT_mcpu32. + * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't + handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020, + -m68030, -m68040, -m68060, -mcpu32 and -m68332. + * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040, + m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias. + * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove. + (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS). + (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu= + options. Don't map other m68k options manually. Don't handle + old-style options as canonical. + (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS). + * doc/install.texi (m68k-*-*): Document binutils version requirement. + +2011-04-07 Eric Botcazou + + * basic-block.h (force_nonfallthru): Move to... + * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook. + (force_nonfallthru): ...here. + * cfghooks.c (force_nonfallthru): New function. + * cfgrtl.c (force_nonfallthru): Rename into... + (rtl_force_nonfallthru): ...this. + (commit_one_edge_insertion): Do not set AUX field. + (commit_edge_insertions): Do not discover new basic blocks. + (rtl_cfg_hooks): Add rtl_force_nonfallthru. + (cfg_layout_rtl_cfg_hooks): Likewise. + * function.c (thread_prologue_and_epilogue_insns): Remove bogus + ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns. + * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru. + +2011-04-07 Anatoly Sokolov + + * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): + Remove macros. + +2011-04-07 Uros Bizjak + + * config/i386/sse.md: Update copyright year. + (avxcvtvecmode): Remove. + (sse_movhlps): Merge with *avx_movhlps. + (sse_movlhps): Merge with *avx_movlhps. + (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf. + (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf. + (sse_shufps_): Merge with *avx_shufps_. + (sse_loadhps): Merge with *avx_loadhps. + (sse_storelps): Merge with *avx_storelps. + (sse_loadlps): Merge with *avx_loadlps. + (sse_movss): Merge with *avx_movss. + (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx. + (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx. + (*vec_set_0_sse4_1): Merge with *vec_set_0_avx. + (*vec_set_0_sse2): Split multi-unit alternative. + (vec_set_0): Ditto. + (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx. + (sse4_1_insertps): Merge with *avx_insertps. + (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df. + (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df. + (vec_interleave_highv2di): Merge with *avx_interleave_highv2di. + (sse2_shufpd_): Merge with *avx_shufpd_. + (sse2_storehpd): Merge with *avx_storehpd. + (sse2_loadhpd): Merge with *avx_loadhpd. + (sse2_loadlpd): Merge with *avx_loadlpd. + (sse2_movsd): Merge with *avx_movsd. + (*vec_concatv2df): Merge with *vec_concatv2df. + +2011-04-07 Jakub Jelinek + + PR debug/48343 + * combine.c (combine_instructions): Add last_combined_insn, + update it if insn is after it, pass it to all try_combine calls. + (try_combine): Add last_combined_insn parameter, pass it instead of + i3 to propagate_for_debug. + +2011-04-07 Nick Clifton + + * config/mn10300/mn10300.md (movqi_internal): Add alternatives + to handle MDR <-> data register transfers. + (movhi_internal): Likewise. + +2011-04-07 Alan Modra + + * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against + previous stack info. + +2011-04-07 Tom de Vries + + PR target/43920 + * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to + flow_find_cross_jump. Swap variables to implement backward replacement. + (try_crossjump_bb): Add argument to try_crossjump_to_edge. + +2011-04-07 Tom de Vries + + PR target/43920 + * cfgcleanup.c (walk_to_nondebug_insn): New function. + (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1 + and bb2. + (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not + src1 or src2. Redirect edges to the last basic block. Update + frequency and count on multiple basic blocks in case of fallthru. + +2011-04-07 Tom de Vries + + PR target/43920 + * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New + function. + (old_insns_match_p): Change return type. Replace return false/true + with return dir_none/dir_both. Use can_replace_by. + (flow_find_cross_jump): Add dir_p parameter. Init replacement + direction from dir_p. Register replacement direction in dir, last_dir + and afterlast_dir. Handle new return type of old_insns_match_p using + merge_dir. Return replacement direction in dir_p. + (flow_find_head_matching_sequence, outgoing_edges_match): Handle new + return type of old_insns_match_p. + (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump. + * ifcvt.c ( cond_exec_process_if_block): Add argument to call to + flow_find_cross_jump. + * basic-block.h (enum replace_direction): New type. + (flow_find_cross_jump): Add parameter to declaration. + +2011-04-06 Uros Bizjak + + * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove. + (AVXMODEDCVTPS2DQ): Ditto. + (VEC_FLOAT_MODE): Ditto. + (_andnot3): Merge with avx_andnot3. Use VF mode + iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. + (3): Use VF mode iterator. + (*3): Merge with *avx_3. + Use VF mode iterator. + (copysign3): Use VF mode iterator. + (*andnot3): Merge with *avx_andnot3. Handle + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. + (*3): Merge with + *avx_3. + (sse_cvtsi2ss): Merge with *avx_cvtsi2ss. + (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq. + (avx_cvtdq2ps256): Split from avx_cvtdq2ps. + (avx_cvtdq2ps): Remove. + (sse2_cvtdq2ps): Use %v modifier. + (avx_cvtps2dq256): Split from avx_cvtps2dq. + (avx_cvtps2dq): Remove. + (sse2_cvtps2dq): Use %v modifier. + (avx_cvttps2dq256): Split from avx_cvttps2dq. + (avx_cvttps2dq): Remove. + (sse2_cvttps2dq): Use %v modifier. + (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd. + (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq. + (sse2_cvtsd2siq): Fix insn template. + (sse2_cvtsd2siq_2): Ditto. + (sse2_cvttsd2siq): Ditto. + (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss. + (sse2_cvtss2sd): Merge with *avx_cvtss2sd. + +2011-04-06 Joseph Myers + + * gcov-io.c: Use GCC Runtime Library Exception. + +2011-04-06 Jakub Jelinek + + PR debug/48466 + * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use + as base_reg whatever register reg has been eliminated to, instead + of hardcoding STACK_POINTER_REGNUM. + +2011-04-06 Joseph Myers + + * doc/tm.texi.in: Document C target hooks as separate from general + target hooks. + * doc/tm.texi: Regenerate. + * genhooks.c (struct hook_desc): Add docname field. + (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize + docname field. + (hook_array): Include c-target.def. + (emit_documentation): Use docname field in output. + (emit_init_macros): Take docname argument. Only emit definitions + for hooks matching docname. + (main): Expect additional arguments in all cases. Pass argument + to emit_init_macros. + * target.def: Move initial macro definitions and comments to + target-hooks-macros.h. + (gcc_targetcm): Move to c-family/c-target.def. + * target.h (targetcm): Move declaration to c-family/c-target.h. + * targhooks.c (default_handle_c_option): Move to + c-family/c-opts.c. + * targhooks.h (default_handle_c_option): Move declaration to + c-family/c-common.h. + * target-hooks-macros.h: New file. + * config.gcc (target_has_targetcm): Define and use to add to + c_target_objs and cxx_target_objs. + * config/default-c.c: New file. + * config/darwin-c.c: Include c-target.h and c-target-def.h instead + of target.h and target-def.h. + (TARGET_HANDLE_C_OPTION, targetcm): Define later in file. + (darwin_objc_construct_string, darwin_cfstring_ref_p, + darwin_check_cfstring_format_arg): Make static. + (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, + TARGET_STRING_OBJECT_REF_TYPE_P, + TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here. + * config/darwin-protos.h (darwin_objc_construct_string, + darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't + declare. + * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, + TARGET_STRING_OBJECT_REF_TYPE_P, + TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove. + * config/t-darwin (darwin-c.o): Update dependencies. + * system.h (TARGET_HAS_TARGETCM): Poison. + * Makefile.in (TARGET_H): Update. + (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define. + (c-family/c-format.o, c-family/c-opts.o): Update dependencies. + (default-c.o): New target. + (s-target-hooks-def-h): Pass "Target Hook" string to genhooks. + (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets. + (s-tm-texi): Pass -d option to genhooks. Also test timestamp on + c-target.def. + (build/genhooks.o): Update dependencies. + +2011-04-06 Richard Guenther + + * ipa-inline.c (enum inlining_mode): Remove. + (cgraph_flatten): Use some other token. + (cgraph_edge_early_inlinable_p): New function, split out from ... + (cgraph_perform_always_inlining): New function, split out from ... + (cgraph_decide_inlining_incrementally): ... here. + (cgraph_mark_inline_edge): Adjust. + (cgraph_early_inlining): Re-structure. + (pass_early_inline): Require SSA form. + +2011-04-06 Andrew Stubbs + Julian Brown + Mark Shinwell + + * config/arm/arm.h (arm_class_likely_spilled_p): Check against + LO_REGS only for Thumb-1. + (MODE_BASE_REG_CLASS): Restrict base registers to those which can + be used in short instructions when optimising for size on Thumb-2. + +2011-04-06 Eric Botcazou + + * gimple-low.c (lower_gimple_return): When not optimizing, force labels + associated with user returns to be preserved. + +2011-04-06 Tristan Gingold + + * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index, + symbol_queue_size, DBXOUT_DECR_NESTING, + (DBXOUT_DECR_NESTING_AND_RETURN): Also define + if XCOFF_DEBUGGING_INFO. + +2011-04-06 Uros Bizjak + + * config/i386/i386.md (attribute isa): New. + (attribute enabled): New. + (setcc__sse): Merge from *{avx,sse}_setcc. + (*fop__comm_mixed): Merge with *fop__comm_mixed_avx. + (*fop__comm_sse): Merge with *fop__comm_avx. + (*fop__1_mixed): Merge with *fop__1_mixed_avx. + (*fop__1_sse): Merge with *fop__1_avx. + (3): Merge with *avx_3. + (*ieee_smin3): Merge with *avx_ieee_smin3. + (*ieee_smax3): Merge with *avx_ieee_smax3. + + * config/i386/sse.md (VF): New mode iterator. + (VF1): Ditto. + (VF2): Ditto. + (VF_128): Ditto. + (SSEMODEF4): Remove. + (attribute sse): Handle V8SF and V4DF modes. + (2): Use VF mode iterator. + (*absneg2): Merge from *{avx,sse}_absneg2. Use VF + mode iterator. + (3): Use VF mode iterator. + (*3): Merge with *avx_3. + Use VF mode iterator. + (_vm3): Merge with + *avx_vm3. Use VF_128 mode iterator. + (mul3): Use VF mode iterator. + (*mul3): Merge with *avx_mul3. Use VF mode iterator. + (_vmmul3): Merge with *avx_vmmul3. Use VF_128 + mode iterator. + (div3): Merge from divv2df3 and divv4df3. + (div3): Merge from divv4sf3 and divv8sf3. + (_div3): Merge with *avx_div3. Use VF mode iterator. + (_vmdiv3): Merge with *avx_vmdiv3. Use VF_128 + mode iterator. + (_rcp2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2. + Use VF1 mode iterator. + (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2. + (sqrt2): New expander. + (sqrt2): Merge from sqrtv4sf2 and sqrtv8sf2. + (_sqrt2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2 + and sqrtv2df2. Use VF mode iterator. + (_vmsqrt2): Merge with *avx_vmsqrt2. Use VF_128 + mode iterator. + (rsqrt2): Merge from rsqrtv4sf2 and rsqrtv8sf2. + (_rsqrt2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2. + Use VF1 mode iterator. + (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2. + (3): Use VF mode iterator. + (*3_finite): Merge with + *avx_3_finite. Use VF mode iterator. + (*3): Merge with *avx_3. + (_vm2): Merge with + *avx_vm2. Use VF_128 mode iterator. + (*ieee_smin3): Merge with *avx_ieee_smin3. Use VF + mode iterator. + (*ieee_smax3): Merge with *avx_ieee_smax3. Use VF + mode iterator. + (sse3_addsubv2df3): Merge with *avx_addsubv2df3. + (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3. + (sse3_hv2df3): Merge with *avx_hv2df3. + (sse3_hv4sf3): Merge with *avx_hv4sf3. + (avx_cmp3): Rename from avx_cmp3. Use + VF mode iterator. + (avx_vmcmp3): Rename from avx_cmp3. + Use VF_128 mode iterator. + (_maskcmp3): Merge with *avx_maskcmp3. Use VF + mode iterator. + (_vmmaskcmp3): Merge with *avx_vmmaskcmp3. Use + VF_128 mode iterator. + (vcond): Use VF mode iterator. + * config/i386/predicates.md (sse_comparison_operator): Merge with + avx_comparison_float_operator. Do not declare as special_predicate. + * config/i386/i386.c (struct builtin_description): Update for renamed + compare patterns. + (ix86_expand_args_builtin): Ditto. + (ix86_expand_sse_compare_mask): Ditto. + +2011-04-06 Richard Guenther + + * tree-inline.c (estimate_num_insns): For calls simply account + for all passed arguments and a used return value. + +2011-04-06 Richard Guenther + + PR tree-optimization/47663 + * cgraph.h (struct cgraph_edge): Add call_stmt_size and + call_stmt_time fields. + (cgraph_edge_inlinable_p): Declare. + (cgraph_edge_recursive_p): New inline function. + * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size. + (cgraph_clone_edge): Copy it. + * ipa-inline.c (cgraph_estimate_edge_time): New function. + Account for call stmt time. + (cgraph_estimate_time_after_inlining): Take edge argument. + (cgraph_estimate_edge_growth): Account call stmt size. + (cgraph_estimate_size_after_inlining): Take edge argument. + (cgraph_mark_inline_edge): Adjust. + (cgraph_check_inline_limits): Likewise. + (cgraph_recursive_inlining_p): Remove. + (cgraph_edge_badness): Use cgraph_edge_recursive_p. + (cgraph_decide_recursive_inlining): Take edge argument and + adjust. + (cgraph_decide_inlining_of_small_functions): Do not avoid + diags for recursive inlining here. + (cgraph_flatten): Adjust. + (cgraph_decide_inlining_incrementally): Likewise. + (estimate_function_body_sizes): Remove call cost handling. + (compute_inline_parameters): Initialize caller edge call costs. + (cgraph_estimate_edge_growth): New function. + (cgraph_estimate_growth): Use it. + (cgraph_edge_badness): Likewise. + (cgraph_check_inline_limits): Take an edge argument. + (cgraph_decide_inlining_of_small_functions): Adjust. + (cgraph_decide_inlining): Likewise. + * tree-inline.c (estimate_num_insns): Only account for call + return value if it is used. + (expand_call_inline): Avoid diagnostics on recursive inline + functions here. + * lto-cgraph.c (lto_output_edge): Output edge call costs. + (input_edge): Input edge call costs. + +2011-04-06 Rainer Orth + + * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define. + +2011-04-06 Jonathan Wakely + + * doc/invoke.texi (Spec Files): Fix typo. + +2011-04-06 Eric Botcazou + + * profile.c (branch_prob): Move declaration of local variable. Remove + obsolete ??? comment. Expand the location explicitly instead of using + the LOCATION_FILE and LOCATION_LINE macros. + +2011-04-06 Wei Guozhi + + PR target/47855 + * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length". + (arm_cond_branch): Likewise. + (arm_cond_branch_reversed): Likewise. + (arm_jump): Likewise. + (push_multi): Likewise. + * config/arm/constraints.md (Py): New constraint. + +2011-04-05 Nathan Froyd + + PR bootstrap/48471 + * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index): + Move these... + (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these... + (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under + #ifdef DBX_DEBUGGING_INFO. + +2011-04-05 Bernd Schmidt + + PR bootstrap/48403 + * haifa-sched.c (schedule_block): Increment cycle_issued_insns only + if old and new states differ. + +2011-04-05 Joseph Myers + + * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200, + OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e. + * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't + handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e. + * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, + mcfv4e): Use Alias. + * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy + ColdFire options to -mcpu= options. + +2011-04-05 Jeff Law + + * tree-ssa-threadupdate.c (determine_bb_domination_status): Always + check if BB is a successor of LOOP->header and return + NONDOMINATING if it is not, regardless of ENABLE_CHECKING. + +2011-04-05 Steven Bosscher + + * cprop.c (struct reg_use): Remove. + (reg_use_table): Make an array of RTX. + (find_used_regs, constprop_register, local_cprop_pass, + bypass_block): Simplify users of reg_use_table. + (cprop_insn): Likewise. Iterate if copy propagation succeeded + on one of the uses found by find_used_regs. + +2011-04-05 Nathan Froyd + + PR bootstrap/48469 + * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links + declaration. + +2011-04-05 Nathan Froyd + + * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links + as an rtx. + (try_combine) [AUTO_INC_DEC]: Declare a local link rtx. + +2011-04-05 Steven Bosscher + + PR middle-end/48441 + * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns. + +2011-04-05 Nathan Froyd + + * combine.c: Include obstack.h. + (struct insn_link): Define. + (uid_log_links): Adjust type. + (FOR_EACH_LOG_LINK): New macro. + (insn_link_obstack): Declare. + (alloc_insn_link): Define. + (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust + type of link variables. + (find_single_use, insn_a_feeds_b, combine_instructions): Likewise. + (try_combine, record_promoted_values, distribute_notes): Likewise. + (distribute_links): Likewise. Tweak prototype. + (clear_log_links): Delete. + (adjust_for_new_dest): Call alloc_insn_link. + * Makefile.in (combine.o): Depend on $(OBSTACK_H). + +2011-04-05 Nathan Froyd + + * gcse.c (modify_mem_list): Convert to an array of VECs. + (canon_modify_mem_list, compute_transp): Tweak formatting. + (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change. + (load_killed_in_block_p): Likewise. + (record_last_mem_set_info): Likewise. + (clear_modify_mem_tables): Likewise. + +2011-04-05 Tom de Vries + + PR middle-end/48461 + * function.c (emit_use_return_register_into_block): Only define if + HAVE_return. + +2011-04-05 Eric Botcazou + + * stor-layout.c (self_referential_size): Fix 2010-07-13 commit. + +2011-04-05 Joseph Myers + + * config/rx/rx-opts.h: New. + * config/rx/rx.c (rx_cpu_type): Remove. + (rx_handle_option): Don't assert that global structures are in + use. Access variables via opts pointer. Defer most handling of + OPT_mint_register_. Use error_at. + (rx_option_override): Handle deferred OPT_mint_register_ here. + * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h. + * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude. + (mcpu=): Use Enum and specifiy rx_cpu_type with Var. + (rx_cpu_types): New Enum and EnumValue entries. + (mint-register=): Use Defer and use Var accordingly. + +2011-04-05 Nathan Froyd + + * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete. + (debug_free_queue, debug_nesting, symbol_queue_index): Delete. + * final.c (debug_flush_symbol_queue, debug_queue_symbol): + Move these... + (debug_free_queue, debug_nesting, symbol_queue_index): + ...and these... + * dbxout.c: ...to here. Make static. + +2011-04-05 Nathan Froyd + + * gcse.c (modify_pair): Define. Define a VEC of it. + (canon_modify_mem_list): Convert to an array of VECs. + (free_insn_expr_list_list): Delete. + (clear_modify_mem_tables): Call VEC_free instead. + (record_last_mem_set_info): Don't modify canon_modify_mem_list. + (alloc_gcse_mem): Adjust for canon_modify_mem_list change. + (canon_list_insert, compute_transp): Likewise. + +2011-04-05 Tom de Vries + + PR target/43920 + * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing + for size. + +2011-04-05 Tom de Vries + + PR target/43920 + * function.c (emit_use_return_register_into_block): New function. + (thread_prologue_and_epilogue_insns): Use + emit_use_return_register_into_block. + +2011-04-05 Tom de Vries + + PR target/43920 + * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as + insn. + +2011-04-05 Tom de Vries + + * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables. + +2011-04-05 Yufeng Zhang + + * config/arm/arm.md (define_constants for unspec): Replace with + define_c_enum. + (define_constants for unspecv): Replace with define_c_enum. + * config/arm/neon.md (define_constants for unspec): Replace with + define_c_enum. + +2011-04-04 Richard Henderson + + PR bootstrap/48400 + * dwarf2out.c (output_line_info): Always emit line info from + at least one section. + (dwarf2out_init): Create text_section_line_info here ... + (set_cur_line_info_table): ... not here. + +2011-04-04 Vladimir Makarov + + PR target/48380 + * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is + not called. + + * ira-emit.c (emit_move_list): Update reg_equiv_init insn list. + +2011-04-04 Steven Bosscher + + * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'. + (expr_equiv_p): Remove. + (insert_set_in_table): Look at pair instead of expr. + (hash_scan_set): Update call to insert_set_in_table. + (dump_hash_table): Dump pair. + (lookup_set): Simplify. Lookup pair. + (compute_transp): Remove, fold heavily simplified code into... + (compute_local_properties): ...here. Expect COMP and TRANSP + unconditionally. + (find_avail_set): Take set directly from struct expr. + (find_bypass-set): Likewise. + (bypass_block): Likewise. + (cprop_insn): Likewise. Remove redundant INSN_P test. + + * cprop.c (implicit_set_cond_p): Assume nothing about COND, move + checks on form of COND from find_implicit_sets to here. + (find_implicit_sets): Cleanup control flow. Split critical edges + if it exposes implicit sets. Allocate/resize implicit_sets as + necessary. + (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass + changed something. Run df_analyze after find_implicit_sets if any + edges were split. Do not allocate implicit_sets here. + + * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse. + (gcse_obstack): Renamed to cprop_obstack. + (GNEW, GNEWVEC, GNEWVAR): Remove. + (gmalloc): Remove. + (alloc_hash_table): Use XNEWVAR instead of GNEWVAR. + (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming. + (gcse_alloc): Likewise, and rename to cprop_alloc. + (alloc_gcse_men, free_gcse_mem): Remove. + (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers. + (compute_hash_table_work): Allocate and free reg_set_bitmap here. + (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming. + + * cprop.c (oprs_not_set_p): Remove. + (mark_set, mark_clobber): Remove. + (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache. + (reg_not_set_p): New function. + (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p. + (cprop_insn): Likewise. + (cprop_jump): Use FOR_EACH_EDGE. + +2011-04-04 Bernd Schmidt + + PR bootstrap/48403 + * haifa-sched.c (nonscheduled_insns_begin): New static variable. + (rank_for_schedule): Use scheduled_insns vector instead of + last_scheduled_insn. + (ok_for_early_queue_removal): Likewise. + (queue_to_ready): Search forward in nonscheduled_insns_begin if + we have a dbg_cnt. + (choose_ready): Likewise. + (commit_schedule): Use VEC_iterate. + (schedule_block): Initialize nonscheduled_insns_begin. If we have + a dbg_cnt, use it and ensure the first insn is in the ready list. + (haifa_sched_init): Allocate scheduled_insns. + (sched_extend_ready_list): Don't allocate it; reserve space. + (haifa_sched_finish): Free it. + +2011-04-04 Joseph Myers + + * optc-gen.awk: Always remove type from Variable entry before + recording in var_seen. + +2011-04-04 Eric Botcazou + + * cfghooks.c (tidy_fallthru_edges): Add ??? comment. + * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove + call to tidy_fallthru_edges. + +2011-04-04 Joseph Myers + + * doc/options.texi (ToLower): Document. + * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field. + * opts-common.c (decode_cmdline_option): Handle cl_tolower. + * opts.h (cl_option): Add cl_tolower field. + * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu= + arguments with lowercase strings. + * config/rx/rx.opt (mcpu=): Add ToLower. + * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu= + argument. + +2011-04-04 Richard Sandiford + + * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete. + +2011-04-04 Richard Sandiford + + * config/vax/vax.c: Include reload.h. + +2011-04-04 Anatoly Sokolov + + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove. + * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define. + (sparc_preferred_reload_class): New function. + +2011-04-04 Jakub Jelinek + + PR debug/48401 + * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. + Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC. + +2011-04-03 Nathan Froyd + + * tree.h (struct tree_const_decl): Inherit from tree_decl_common. + * tree.c (initialize_tree_contains_struct): Adjust accordingly. + +2011-04-03 Anatoly Sokolov + + * config/avr/avr.h (ASM_OUTPUT_BSS): Remove. + (ASM_OUTPUT_ALIGNED_BSS): Define. + +2011-04-03 Michael Matz + + * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets + and next_slot members. + (lto_streamer_cache_insert, lto_streamer_cache_insert_at, + lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes. + (lto_streamer_cache_append): Declare. + * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use + unsigned index, remove offset parameter, ensure that we append + or update existing entries. + (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p + parameter, update next_slot for append. + (lto_streamer_cache_insert): Use unsigned index, remove offset_p + parameter. + (lto_streamer_cache_insert_at): Likewise. + (lto_streamer_cache_append): New function. + (lto_streamer_cache_lookup): Use unsigned index. + (lto_streamer_cache_get): Likewise. + (lto_record_common_node): Don't test tree_node_can_be_shared. + (preload_common_node): Adjust call to lto_streamer_cache_insert. + (lto_streamer_cache_delete): Don't free offsets member. + * lto-streamer-out.c (eq_string_slot_node): Use memcmp. + (lto_output_string_with_length): Use lto_output_data_stream. + (lto_output_tree_header): Remove ix parameter, don't write it. + (lto_output_builtin_tree): Likewise. + (lto_write_tree): Adjust callers to above, don't track and write + offset, write unsigned index. + (output_unreferenced_globals): Don't emit all global vars. + (write_global_references): Use unsigned indices. + (lto_output_decl_state_refs): Likewise. + (write_symbol): Likewise. + * lto-streamer-in.c (lto_input_chain): Move earlier. + (input_function): Use unsigned index. + (input_alias_pairs): Don't read and then ignore all global vars. + (lto_materialize_tree): Remove ix_p parameter, don't read index, + don't pass it back, use lto_streamer_cache_append. + (lto_register_var_decl_in_symtab): Use unsigned index. + (lto_register_function_decl_in_symtab): Likewise. + (lto_get_pickled_tree): Don't read in or handle offset, read unsigned + index. + (lto_get_builtin_tree): Don't read index, use + lto_streamer_cache_append. + (lto_read_tree): Adjust call to lto_materialize_tree. + + * ipa-inline.c (cgraph_edge_badness): Move growth calculaton, + don't use function calls in arguments to MIN. + + * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC + twice. + + * gimple.c (gimple_type_leader_entry): Mark deletable. + +2011-04-03 Alan Modra + + * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM. + +2011-04-03 Michael Matz + + * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not + an integer. + * tree.h (tree_decl_non_common.vindex): Adjust comment. + +2011-04-03 Michael Matz + + * cgraphbuild.c (record_reference): Canonicalize constructor values. + * gimple-fold.c (canonicalize_constructor_val): Accept being called + without function context. + * cgraphunit.c (cgraph_finalize_compilation_unit): Clear + current_function_decl and cfun. + +2011-04-03 Michael Matz + + * tree.c (decl_init_priority_insert): Don't create entry for + default priority. + (decl_fini_priority_insert): Ditto. + (fields_compatible_p, find_compatible_field): Remove. + * tree.h (fields_compatible_p, find_compatible_field): Remove. + * gimple.c (gimple_compare_field_offset): Adjust block comment. + +2011-04-03 Eric Botcazou + + * combine.c (try_combine): Remove useless local variable. + +2011-04-03 Richard Guenther + Ira Rosen + + * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all + non-variable offsets and compare the remaining bases of the two + accesses instead of looking for exact same data-ref. + +2011-04-02 Kai Tietz + + PR target/48416 + * i386.c (ix86_function_arg_boundary): Fix printf formatter. + + * i386.c (ix86_is_msabi_thiscall): New helper function. + (ix86_is_type_thiscall): New helper function. + (ix86_comp_type_attributes): Handle thiscall for method-functions + special. + (init_cumulative_args): Likewise. + (find_drap_reg): Likewise. + (ix86_static_chain): Likewise. + (x86_this_parameter): Likewise. + (x86_output_mi_thunk): Likewise. + +2011-04-01 Olivier Hainque + Nicolas Setton + Eric Botcazou + + * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type. + (add_gnat_descriptive_type_attribute): New function. + (gen_array_type_die): Call it. + (gen_enumeration_type_die): Likewise. + (gen_struct_or_union_type_die): Likewise. + (modified_type_die): Likewise. + * langhooks.h (lang_hooks_for_types): New descriptive_type hook. + * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE. + +2011-04-01 Jakub Jelinek + + PR bootstrap/48148 + * dwarf2out.c (resolve_addr): Don't call force_decl_die + if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN. + + Revert: + 2011-03-17 Richard Guenther + + PR bootstrap/48148 + * lto-cgraph.c (input_overwrite_node): Clear the abstract + origin for decls in other ltrans units. + (input_varpool_node): Likewise. + +2011-04-01 Jakub Jelinek + + PR middle-end/48335 + * expr.c (expand_assignment): Handle all possibilities + if TO_RTX is CONCAT. + * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs. + (store_split_bit_field): If SUBREG_REG (op0) or + op0 itself has smaller mode than word, return it + for offset 0 and const0_rtx for out-of-bounds stores. + If word is const0_rtx, skip it. + +2011-04-01 Naveen H.S + + * config/h8300/h8300.c (print_operand_address): Rename to... + (h8300_print_operand_address): ...this. Make static. Adjust comments. + Call h8300_print_operand and h8300_print_operand_address instead of + print_operand and print_operand_address. Declare. + (print_operand): Renake to... + (h8300_print_operand): ...this. Make static. Adjust comments. + Call h8300_print_operand instead of print_operand. Declare. + (h8300_print_operand_punct_valid_p): Moved from h8300.h file. + (h8300_register_move_cost): Likewise. + (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND + TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define. + * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND + PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete. + * config/h8300/h8300-protos.h (print_operand): Delete. + (print_operand_address): Delete. + +2011-04-01 Richard Henderson + + PR 48400 + * dwarf2out.c (dwarf2out_source_line): Disable discriminators + in strict mode before dwarf4. Re-order tests to early out + before switching sections. + +2011-04-01 Nathan Froyd + + * config/h8300/constraints.md: New file. + * config/h8300/h8300.md: Include it. Use satisfies_constraint_J, + satisfies_constraint_L, and satisfies_constraint_N for peephole2s. + (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U. + * config/h8300/predicates.md (bit_operand): Likewise. + (incdec_operand): Use satisfies_constraint_M and + satisfies_constraint_O. Don't use C code block. + * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete. + * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete. + (compute_mov_length): Use satisfies_constraint_G. + (fix_bit_operand): Use satisfies_constraint_U. + * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete. + (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete. + (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete. + (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete. + (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete. + (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete. + (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete. + (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete. + (EXTRA_MEMORY_CONSTRAINT): Delete. + +2011-04-01 Andrew Pinski + Michael Meissner + + PR target/48262 + * config/rs6000/vector.md (movmisalign): Allow for memory + operands, as per the specifications. + + * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes. + (vec_extract_evenv4sf): Ditto. + (vec_extract_evenv8hi): Ditto. + (vec_extract_evenv16qi): Ditto. + (vec_extract_oddv4si): Ditto. + +2011-03-31 Mark Wielaard + + * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or + high_pc attribute if the CU has no associated code. Only output + DW_AT_entry_pc for CU if not generating strict dwarf and + dwarf_version < 4. + +2011-04-01 Bernd Schmidt + + * dwarf2out.h (dwarf2out_frame_debug_init): Declare. + * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken + out of ... + (dwarf2out_frame_debug): ... here. Don't handle a NULL argument. + * final.c (final_start_function): Call the new function rather + than using a NULL argument for dwarf2out_frame_debug. + + * ifcvt.c (cond_exec_process_insns): Disallow converting a block + that contains the prologue. + + * haifa-sched.c (queue_insn): New arg REASON. All callers + changed. Print it in debugging output. + + * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag. + + * sched-ebb.c (begin_schedule_ready): Remove second argument. + Split most of the code into... + (begin_move_insn): ... here. New function. + (ebb_sched_info): Add a pointer to it. + * haifa-sched.c (scheduled_insns): New static variable. + (sched_extend_ready_list): Allocate it. + (schedule_block): Use it to record the order of scheduled insns. + Perform RTL changes to move insns only after all scheduling + decisions have been made. + * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the + begin_move_insn field. + * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. + * sched-int.h (struct haifa_sched_info): Remove second argument + from begin_schedule_ready hook. Add new member begin_move_insn. + * sched-rgn.c (begin_schedule_ready): Remove second argument. + (rgn_const_sched_info): Add NULL entry for the begin_move_insn field. + + * haifa-sched.c (prune_ready_list): New function, broken out of + schedule_block. + (schedule_block): Use it. + +2011-04-01 Ulrich Weigand + + * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>. + +2011-04-01 Kai Tietz + + * config.gcc (*-*-mingw*): Allow as option the + posix threading model. + * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2): + New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT + definition. + (CPP_SPEC): Add pthread/no-pthread handling. + (LIB_SPEC): Likewise. + * config/i386/mingw-w64.h (CPP_SPEC):Likewise. + (LIB_SPEC): Likewise. + * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New + flag to pass -pthread option for shared libgcc build. + (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread + for shared libgcc build. + * config/i386/t-mingw-pthread: New file. + * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT): + New define to enable use of library pthread by default. + * config/i386/mingw.opt (pthread): New driver option. + (no-pthread): New driver option. + * config/i386/cygming.opt: Make sure trailing empty line is retained. + * config/i386/mingw-w64.opt: Likewise. + +2011-04-01 Gary Funck + + * c-decl.c (grokdeclarator): Fix formatting. + +2011-04-01 Richard Sandiford + + * expr.c (emit_block_move_via_movmem): Use n_generator_args + instead of n_operands. + (set_storage_via_setmem): Likewise. + * optabs.c (maybe_gen_insn): Likewise. + * config/arm/arm.c (arm_init_neon_builtins): Likewise. + * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise. + (mips_expand_builtin_direct): Likewise. + * config/spu/spu.c (expand_builtin_args): Likewise. + +2011-04-01 Richard Sandiford + + * recog.h (insn_data_d): Add n_generator_args. + * genoutput.c (data): Likewise. + (output_insn_data): Print it. + (max_opno, num_dups): Delete. + (scan_operands): Just fill in "d->operand[...]". + (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats. + +2011-04-01 Richard Sandiford + + * gensupport.h (pattern_stats): New structure. + * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions. + * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete. + (max_operand_1, max_operand_vec): Delete. + (gen_insn, gen_expand, gen_split): Use get_pattern_stats. + +2011-03-31 Nathan Froyd + + * emit-rtl.c (emit_pattern_after_setloc): New function. + (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it. + (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise. + (emit_pattern_after): New function. + (emit_insn_after, emit_jump_insn_after): Call it. + (emit_call_insn_after, emit_debug_insn_after): Likewise. + (emit_pattern_before_setloc): New function. + (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it. + (emit_call_insn_before_setloc, emit_debug_insn_before_setloc): + Likewise. + (emit_pattern_before): New function. + (emit_insn_before, emit_jump_insn_before): Call it. + (emit_call_insn_before, emit_debug_insn_before): Likewise. + +2011-03-31 Richard Henderson + + * dwarf2out.c (dw_separate_line_info_ref): Remove. + (dw_separate_line_info_entry): Remove. + (enum dw_line_info_opcode): New. + (dw_line_info_entry): Use it. + (dw_line_info_table, dw_line_info_table_p): New. + (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes. + (line_info_table, line_info_label_num): Remove. + (line_info_table_in_use): Remove. + (separate_line_info_table): Remove. + (separate_line_info_table_allocated): Remove. + (separate_line_info_table_in_use): Remove. + (LINE_INFO_TABLE_INCREMENT): Remove. + (line_info_label_num): New. + (cur_line_info_table): New. + (text_section_line_info, cold_text_section_line_info): New. + (separate_line_info): New. + (SEPARATE_LINE_CODE_LABEL): Remove. + (print_dwarf_line_table): Remove. + (debug_dwarf): Don't dump it. + (output_one_line_info_table): New. + (output_line_info): Use it. + (new_line_info_table): New. + (set_cur_line_info_table): New. + (dwarf2out_switch_text_section): Use it. + (dwarf2out_begin_function): Likewise. + (push_dw_line_info_entry): New. + (dwarf2out_source_line): Rewrite for new line info tables. + (dwarf2out_init): Remove dead initailizations. + +2011-03-31 Joseph Myers + + * opts.h (cl_option): Add comments to fields. Add bit-fields for + various flags. + (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK, + CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, + CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK, + CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove. + (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions. + * opt-functions.awk (flag_init, switch_bit_fields): New. + (switch_flags): Don't handle flags moved to bit-fields. Don't + generate CL_MISSING_OK or CL_SAVE. + * optc-gen.awk: Update to generate bit-field output as well as + flags field. + * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver + bit-field instead of CL_REJECT_DRIVER flag. + * opts-common.c (generate_canonical_option, + decode_cmdline_option): Use bit-fields instead of CL_* flags. + * opts.c (maybe_default_option): Use cl_reject_negative bit-field + instead of CL_REJECT_NEGATIVE flag. + * toplev.c (print_switch_values): Use cl_report bit-field instead + of CL_REPORT flag. + +2011-03-31 Eric Botcazou + + * tree-ssa-pre.c (create_component_ref_by_pieces_1) : Drop + a zero minimum index only if it is redundant. + +2011-03-31 Vladimir Makarov + + PR rtl-optimization/48381 + * ira-color.c (assign_hard_reg): Use hard reg set intersection + instead of ira_class_hard_reg_index for calculating conflicting + hard registers. + +2011-03-31 Steven Bosscher + + * cprop.c: Clean up hash table building. + (reg_avail_info): Remove. + (oprs_available_p): Remove. + (record_last_reg_set_info): Remove. + (record_last_set_info): Remove. + (reg_available_p): New function. + (gcse_constant_p): Do not treat unfolded conditions as constants. + (make_set_regs_unavailable): New function. + (hash_scan_set): Simplify with new reg_available_p. + (compute_hash_table_work): Traverse insns stream only once. + Do not compute reg_avail_info. Traverse insns in reverse order. + Record implicit sets after recording explicit sets from the block. + +2011-03-31 Michael Matz + + * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc. + +2011-03-31 Anatoly Sokolov + + * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro. + * config/h8300/h8300-protos.h (h8300_get_index): Remove. + * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + (h8300_mode_dependent_address_p): New function. + (h8300_get_index): Make static. + +2011-03-31 Jeff Law + + * reload1.c (elimination_effects): Fix typo in recent change. + + * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid + typo potentially leading to null pointer dereference. + + * caller-save.c (new_saved_hard_reg): Eliminate return value. + (setup_save_areas): Corresponding changes to avoid useless + assignments. + + * jump.c (reversed_comparison_code_parts): Avoid successive return + statements when REVERSE_CONDITION is defined. + + * expr.c (expand_assignment): Avoid useless assignments. + (expand_expr_real_1): Likewise. + (expand_expr_real_2): Avoid useless statements. + + * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement. + + * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. + + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless + statements. + + * stmt.c (expand_expr_stmt): Avoid useless assignment. + +2011-03-31 Joseph Myers + + PR target/47109 + * doc/tm.texi.in (TARGET_VERSION): Remove. + * doc/tm.texi: Regenerate. + * system.h (TARGET_VERSION, MACHINE_TYPE): Poison. + * collect2.c (main): Don't use TARGET_VERSION. + * mips-tdump.c (main): Don't use TARGET_VERSION. + * mips-tfile.c (main): Don't use TARGET_VERSION. + * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h. + * config/rs6000/vxworksae.h: Remove. + * config/alpha/alpha.h (TARGET_VERSION): Remove. + * config/alpha/freebsd.h (TARGET_VERSION): Remove. + * config/alpha/linux-elf.h (TARGET_VERSION): Remove. + * config/alpha/netbsd.h (TARGET_VERSION): Remove. + * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove. + * config/arm/arm.h (TARGET_VERSION): Remove. + * config/arm/coff.h (TARGET_VERSION): Remove. + * config/arm/ecos-elf.h (TARGET_VERSION): Remove. + * config/arm/elf.h (TARGET_VERSION): Remove. + * config/arm/freebsd.h (TARGET_VERSION): Remove. + * config/arm/linux-elf.h (TARGET_VERSION): Remove. + * config/arm/netbsd-elf.h (TARGET_VERSION): Remove. + * config/arm/pe.h (TARGET_VERSION): Remove. + * config/arm/rtems-elf.h (TARGET_VERSION): Remove. + * config/arm/semi.h (TARGET_VERSION): Remove. + * config/arm/uclinux-elf.h (TARGET_VERSION): Remove. + * config/arm/unknown-elf.h (TARGET_VERSION): Remove. + * config/arm/vxworks.h (TARGET_VERSION): Remove. + * config/avr/avr.h (TARGET_VERSION): Remove. + * config/bfin/bfin.h (TARGET_VERSION): Remove. + * config/fr30/fr30.h (TARGET_VERSION): Remove. + * config/frv/frv.h (TARGET_VERSION): Remove. + * config/h8300/h8300.h (TARGET_VERSION): Remove. + * config/i386/cygwin.h (TARGET_VERSION): Remove. + * config/i386/darwin.h (TARGET_VERSION): Remove. + * config/i386/darwin64.h (TARGET_VERSION): Remove. + * config/i386/djgpp.h (TARGET_VERSION): Remove. + * config/i386/freebsd.h (TARGET_VERSION): Remove. + * config/i386/freebsd64.h (TARGET_VERSION): Remove. + * config/i386/gnu.h (TARGET_VERSION): Remove. + * config/i386/i386-interix.h (TARGET_VERSION): Remove. + * config/i386/i386elf.h (TARGET_VERSION): Remove. + * config/i386/linux.h (TARGET_VERSION): Remove. + * config/i386/linux64.h (TARGET_VERSION): Remove. + * config/i386/lynx.h (TARGET_VERSION): Remove. + * config/i386/mingw32.h (TARGET_VERSION): Remove. + * config/i386/netbsd-elf.h (TARGET_VERSION): Remove. + * config/i386/netbsd64.h (TARGET_VERSION): Remove. + * config/i386/netware.h (TARGET_VERSION): Remove. + * config/i386/nto.h (TARGET_VERSION): Remove. + * config/i386/openbsd.h (TARGET_VERSION): Remove. + * config/i386/vxworks.h (TARGET_VERSION): Remove. + * config/ia64/elf.h (TARGET_VERSION): Remove. + * config/ia64/freebsd.h (TARGET_VERSION): Remove. + * config/ia64/hpux.h (TARGET_VERSION): Remove. + * config/ia64/linux.h (TARGET_VERSION): Remove. + * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove. + * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE, + TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. + * config/lm32/lm32.h (TARGET_VERSION): Remove. + * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove. + * config/m32c/m32c.h (TARGET_VERSION): Remove. + * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove. + * config/m32r/m32r.h (TARGET_VERSION): Remove. + * config/m68k/linux.h (TARGET_VERSION): Remove. + * config/m68k/m68k.h (TARGET_VERSION): Remove. + * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove. + * config/m68k/uclinux.h (TARGET_VERSION): Remove. + * config/mcore/mcore-elf.h (TARGET_VERSION): Remove. + * config/mep/mep.h (TARGET_VERSION): Remove. + * config/microblaze/microblaze.h (MICROBLAZE_VERSION, + MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. + * config/mips/iris6.h (MACHINE_TYPE): Remove. + * config/mips/linux.h (TARGET_VERSION): Remove. + * config/mips/netbsd.h (MACHINE_TYPE): Remove. + * config/mips/vxworks.h (TARGET_VERSION): Remove. + * config/mmix/mmix.h (TARGET_VERSION): Remove. + * config/mn10300/linux.h (TARGET_VERSION): Remove. + * config/mn10300/mn10300.h (TARGET_VERSION): Remove. + * config/pa/pa.h (TARGET_VERSION): Remove. + * config/pdp11/pdp11.h (TARGET_VERSION): Remove. + * config/picochip/picochip.h (TARGET_VERSION): Remove. + * config/rs6000/aix.h (TARGET_VERSION): Remove. + * config/rs6000/darwin.h (TARGET_VERSION): Remove. + * config/rs6000/darwin64.h (TARGET_VERSION): Remove. + * config/rs6000/eabi.h (TARGET_VERSION): Remove. + * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove. + * config/rs6000/eabisim.h (TARGET_VERSION): Remove. + * config/rs6000/eabispe.h (TARGET_VERSION): Remove. + * config/rs6000/freebsd.h (TARGET_VERSION): Remove. + * config/rs6000/linux.h (TARGET_VERSION): Remove. + * config/rs6000/linux64.h (TARGET_VERSION): Remove. + * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove. + * config/rs6000/linuxspe.h (TARGET_VERSION): Remove. + * config/rs6000/lynx.h (TARGET_VERSION): Remove. + * config/rs6000/netbsd.h (TARGET_VERSION): Remove. + * config/rs6000/sysv4.h (TARGET_VERSION): Remove. + * config/rs6000/vxworks.h (TARGET_VERSION): Remove. + * config/s390/linux.h (TARGET_VERSION): Remove. + * config/s390/s390.h (TARGET_VERSION): Remove. + * config/s390/tpf.h (TARGET_VERSION): Remove. + * config/score/score.h (TARGET_VERSION): Remove. + * config/sh/linux.h (TARGET_VERSION): Remove. + * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN, + TARGET_VERSION_CPU, TARGET_VERSION): Remove. + * config/sh/sh.h (TARGET_VERSION): Remove. + * config/sh/sh64.h (TARGET_VERSION): Remove. + * config/sh/superh.h (TARGET_VERSION): Remove. + * config/sh/vxworks.h (TARGET_VERSION): Remove. + * config/sparc/freebsd.h (TARGET_VERSION): Remove. + * config/sparc/linux.h (TARGET_VERSION): Remove. + * config/sparc/linux64.h (TARGET_VERSION): Remove. + * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64, + TARGET_NAME32, TARGET_NAME): Remove. + * config/sparc/openbsd64.h (TARGET_VERSION): Remove. + * config/sparc/sp-elf.h (TARGET_VERSION): Remove. + * config/sparc/sp64-elf.h (TARGET_VERSION): Remove. + * config/sparc/sysv4.h (TARGET_VERSION): Remove. + * config/sparc/vxworks.h (TARGET_VERSION): Remove. + * config/spu/spu.h (TARGET_VERSION): Remove. + * config/stormy16/stormy16.h (TARGET_VERSION): Remove. + * config/v850/v850.h (TARGET_VERSION): Remove. + * config/vax/linux.h (TARGET_VERSION): Remove. + * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove. + * config/xtensa/elf.h (TARGET_VERSION): Remove. + * config/xtensa/linux.h (TARGET_VERSION): Remove. + +2011-03-31 Eric Botcazou + + PR target/48142 + * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate + frame-related from frame-unrelated adjustments to the stack pointer. + +2011-03-31 Jakub Jelinek + + * common.opt (fdebug-types-section): Move earlier. + * doc/invoke.texi: Fix up -fno-debug-types-section documentation. + +2011-03-31 Andreas Tobler + + * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel + var. + +2011-03-30 Nathan Froyd + + * tree.h (CASE_CHAIN): Define. + * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it. + (gimple_redirect_edge_and_branch): Likewise. + +2011-03-30 Vladimir Makarov + + PR middle-end/48367 + * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost + calculation. + +2011-03-30 Jeff Law + + * PR bootstrap/48371 + * reload1.c (reload): Fix botch in last change. + + * reload.h (struct reload): Fix typo introduced in last change. + +2011-03-30 Joseph Myers + + * config/arm/arm.opt (mhard-float, msoft-float): Mark + Undocumented. Remove help text. + * doc/invoke.texi (ARM Options): Don't document -msoft-float and + -mhard-float. + +2011-03-30 Joseph Myers + + * doc/options.texi (NegativeAlias): Document. + (Alias): Mention NegativeAlias. + * opt-functions.awk: Handle NegativeAlias. + * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments. + * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS. + * opts.h (CL_NEGATIVE_ALIAS): Define. + * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove. + (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and + OPT_mspe_. + * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with + Alias entries. + * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use + mno-spe and mno-isel instead of mspe=no and -misel=no. + +2011-03-29 Mark Wielaard + + * common.opt (fdebug-types-section): New flag. + * doc/invoke.texi: Document new -fno-debug-types-section flag. + * dwarf2out.c (use_debug_types): New define. + (struct die_struct): Mark die_id with GTY desc use_debug_types. + (print_die): Guard output of type unit signatures using + use_debug_types. + (build_abbrev_table): Replace assert of dwarf_version >= 4 + with assert on use_debug_types. + (size_of_die): Likewise. + (unmark_dies): Likewise. + (value_format): Decide AT_ref_external form on use_debug_types. + (output_die): Replace dwarf_version version check guard with + use_debug_types where appropriate. + (modified_type_die): Likewise. + (gen_reference_type_die): Likewise. + (dwarf2out_start_source_file): Likewise. + (dwarf2out_end_source_file): Likewise. + (prune_unused_types_walk_attribs): Likewise. + (dwarf2out_finish): Likewise. + +2011-03-30 Vladimir Makarov + + * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'. + +2011-03-30 Richard Sandiford + + PR rtl-optimization/48332 + * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated + mode of input operand N and modeN to its actual mode. + +2011-03-30 Jeff Law + + * reload.h (reg_equiv_constant): Move into new structure reg_equivs, + define accessor macro. + (reg_equiv_invariant, reg_equiv_memory_loc): Likewise. + (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise. + (reg_equiv_init): Likewise. + (reg_equivs_size): New variable. + (reg_equiv_init_size): Remove. + (allocate_initial_values): Move prototype to here from.... + * integrate.h (allocate_initial_values): Remove prototype. + * integrate.c: Include reload.h. + (allocate_initial_values): Corresponding changes. + * ira.c (find_reg_equiv_invariant_cost): Corresponding changes. + (fix_reg_equiv_init, no_equiv): Corresponding changes. + (update_equiv_regs): Corresponding changes. + (ira): Corresponding changes. + * reload.c (push_reg_equiv_alt_mem): Corresponding changes. + (push_secondary_reload): Corresponding changes. + (push_reload, find_reloads, find_reloads_toplev): Corresponding changes. + (make_memloc, find_reloads_address): Corresponding changes. + (subst_reg_equivs, subst_indexed_address): Corresponding changes. + (find_reloads_address_1): Corresponding changes. + (find_reloads_subreg_address, subst_reloads): Corresponding changes. + (refers_to_regno_for_reload_p): Corresponding changes. + (reg_overlap_mentioned_for_reload_p): Corresponding changes. + (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes. + * reload1.c: Include ggc.h. + (grow_reg_equivs): New function. + (replace_pseudos_in, reload): Corresponding changes. + (calculate_needs_all_insns, alter_regs): Corresponding changes. + (eliminate_regs_1, elimination_effects): Corresponding changes. + (emit_input_reload_insns, emit_output_reload_insns): Likewise. + (delete_output_reload): Likewise. + * caller-save.c (mark_referenced_regs): Corresponding changes. + * alpha/alpha.c (resolve_reload_operand): Corresponding changes. + * frv/predicates.md (frv_load_operand): Corresponding changes. + * microblaze/microblaze.c (double_memory_operand): Corresponding + changes. + * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes. + * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes. + * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes. + * m68k/m68k.c (emit_move_sequence): Corresponding changes. + * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding + changes. + * pa/pa.c (emit_move_sequence): Corresponding changes. + * vax/vax.c (nonindexed_address_p): Corresponding changes. + +2011-03-30 Richard Sandiford + + PR target/47551 + * config/arm/arm.c (coproc_secondary_reload_class): Handle + structure modes. Don't check neon_vector_mem_operand for + vector or structure modes. + +2011-03-30 Richard Sandiford + Ramana Radhakrishnan + + PR target/43590 + * config/arm/neon.md (neon_vld3qa, neon_vld4qa): Remove + operand 1 and reshuffle the operands to match. + (neon_vld3, neon_vld4): Update accordingly. + +2011-03-30 Christian Schüler + + PR driver/48208 + * config/c.opt (F): Added 'Driver' to -F option. + + PR driver/48260 + * config/darwin-driver.c (darwin_driver_init): Add '-arch' to + handler function. + * config/darwin.opt: Added '-arch' option. + +2011-03-30 Nick Clifton + + * config/rx/rx.md: Add peepholes and patterns to combine + extending loads and simple arithmetic instructions. + * config/rx/rx.h (ADJUST_INSN_LENGTH): Define. + * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype. + * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI + modes to use pre-decrement and post-increment addressing. + (rx_is_restricted_memory_address): Add range checking of REG+INT + addresses. + (rx_print_operand): Add support for %Q. Fix handling of %Q. + (rx_memory_move_cost): Adjust cost of stores. + (rx_adjust_insn_length): New function. + +2011-03-30 Jakub Jelinek + + PR c/48305 + * fold-const.c (fold_binary_loc) : Make sure + arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to + matching arg00/arg01 types. + +2011-03-30 Eric Botcazou + + * cfglayout.c (insn_locators_alloc): Initialize curr_location and + last_location to UNKNOWN_LOCATION. + +2011-03-30 H.J. Lu + + PR target/48349 + * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in + FLOAT_SSE_REGS. + +2011-03-30 Joseph Myers + Rainer Orth + + PR bootstrap/48337 + * config/sparc/sparc.opt (sparc_cpu_and_features): Add + Init(PROCESSOR_V7). + (sparc_cpu): Likewise. + * config/sparc/sparc.c (sparc_option_override): Replace 0 by + PROCESSOR_V7. + +2011-03-29 Vladimir Makarov + + PR target/48336 + PR middle-end/48342 + PR rtl-optimization/48345 + * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited + hard regs for given mode from profitable regs when doing secondary + allocation. + +2011-03-29 Jeff Law + + PR bootstrap/48327 + * tree-ssa-threadupdate.c (struct redirection_data): Remove + do_not_duplicate field. + (lookup_redirection_data): Corresponding changes. + (create_duplicates): Always create a template block. + (redirect_edges): Remove code which reused the original block + when it was going to become unreachable code. + (thread_block): Don't set do_not_duplicate field. + +2011-03-29 Joseph Myers + + * lto-opts.c (register_user_option_p, lto_register_user_option): + Make type argument unsigned. + * lto-streamer.h (lto_register_user_option): Make type argument + unsigned. + * opth-gen.awk: Make CL_* macros unsigned. + * opts-common.c (find_opt): Make lang_mask argument unsigned. + * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, + CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS, + CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED, + CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE, + CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned. + (find_opt): Make lang_mask argument unsigned. + +2011-03-29 Vladimir Makarov + + PR rtl-optimization/48331 + PR rtl-optimization/48334 + * ira-color.c (color_allocnos): Call setup_profitable_hard_regs + for any used algorithm. + +2011-03-29 Vladimir Makarov + + * ira-conflicts.c (build_object_conflicts): Add unused attribute + to parent_max. + +2011-03-29 Uros Bizjak + + * config/alpha/alpha.c (alpha_sr_alias_set): Don't define. + (alpha_option_override): Don't set alpha_sr_alias_set. + (emit_frame_store_1): Use gen_frame_mem rather than calling + set_mem_alias_set. + (alpha_expand_epilogue): Ditto. + +2011-03-29 Ira Rosen + + PR tree-optimization/48290 + * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop + vectorization, check that relevant phis in the basic block after + the inner loop are really inner loop's exit phis. + +2011-03-29 Richard Sandiford + + PR debug/48190 + * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced. + (cached_dw_loc_list_def): New structure. + (cached_dw_loc_list): New typedef. + (cached_dw_loc_list_table): New variable. + (cached_dw_loc_list_table_hash): New function. + (cached_dw_loc_list_table_eq): Likewise. + (add_location_or_const_value_attribute): Take a bool cache_p. + Cache the list when the parameter is true. + (gen_formal_parameter_die): Update caller. + (gen_variable_die): Likewise. + (dwarf2out_finish): Likewise. + (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table + while generating debug info for the decl. + (dwarf2out_function_decl): Clear cached_dw_loc_list_table. + (dwarf2out_init): Initialize cached_dw_loc_list_table. + (resolve_addr): Cache the result of resolving a chain of + location lists. + +2011-03-28 Vladimir Makarov + + * ira-color.c (update_left_conflict_sizes_p): Don't assume that + conflict object hard regset nodes have intersecting hard reg sets. + + * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call + after regstat_init_n_sets_and_refs. + + * ira.c: Add more comments at the top. + (setup_stack_reg_pressure_class, setup_pressure_classes): + Add comments how we compute the register pressure classes. + (setup_allocno_and_important_classes): Add more comments. + (setup_class_translate_array, reorder_important_classes) + (setup_reg_class_relations): Add comments. + + * ira-emit.c: Add 2011 to the Copyright line. Add comments at the + start of the file. + + * ira-color.c: Add 2011 to the Copyright line. + (assign_hard_reg): Add more comments. + (improve_allocation): Ditto. + + * ira-costs.c: Add 2011 to the Copyright line. + (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more + comments. + (setup_regno_cost_classes_by_mode): Ditto. + + Initial patches from ira-improv branch: + + 2010-08-13 Vladimir Makarov + + * ira-build.c (ira_create_object): Remove initialization of + OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA. + (ira_create_allocno): Remove initialization of + ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P, + ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P, + ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P, + ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO, + ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO. + Initialize ALLOCNO_ADD_DATA. + (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA + and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and + ALLOCNO_REG. + (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of + ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P. + + * ira.c (ira_reallocate): Remove. + (setup_pressure_classes): Call + ira_init_register_move_cost_if_necessary. Use + ira_register_move_cost instead of ira_get_register_move_cost. + (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA. + (ira): Call ira_initiate_emit_data and ira_finish_emit_data. + + * ira-color.c: Use ALLOCNO_COLOR_DATA instead of + ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P, + ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO, + ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA + instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE, + OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM. + Fix formatting. + (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h. + (struct object_hard_regs, struct object_hard_regs_node): Ditto. + (struct allocno_color_data): New. + (allocno_color_data_t): New typedef. + (allocno_color_data): New definition. + (ALLOCNO_COLOR_DATA): New macro. + (struct object_color_data): New. + (object_color_data_t): New typedef. + (object_color_data): New definition. + (OBJECT_COLOR_DATA): New macro. + (update_copy_costs, calculate_allocno_spill_cost): Call + ira_init_register_move_cost_if_necessary. Use + ira_register_move_cost instead of ira_get_register_move_cost. + (move_spill_restore, update_curr_costs): Ditto. + (allocno_spill_priority): Make it inline. + (color_pass): Allocate and free allocno_color_dat and object_color_data. + (struct coalesce_data, coalesce_data_t): New. + (allocno_coalesce_data): New definition. + (ALLOCNO_COALESCE_DATA): New macro. + (merge_allocnos, coalesced_allocno_conflict_p): Use + ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO, + ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP. + (coalesce_allocnos): Ditto. + (setup_coalesced_allocno_costs_and_nums): Ditto. + (collect_spilled_coalesced_allocnos): Ditto. + (slot_coalesced_allocno_live_ranges_intersect_p): Ditto. + (setup_slot_coalesced_allocno_live_ranges): Ditto. + (coalesce_spill_slots): Ditto. + (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and + free allocno_coalesce_data. + + * ira-conflicts.c: Fix formatting. + (process_regs_for_copy): Call + ira_init_register_move_cost_if_necessary. Use + ira_register_move_cost instead of ira_get_register_move_cost. + (build_object_conflicts): Optimize. + + * ira-costs.c (record_reg_classes): Optimize. Call + ira_init_register_move_cost_if_necessary. Use + ira_register_move_cost, ira_may_move_in_cost, and + ira_may_move_out_cost instead of ira_get_register_move_cost and + ira_get_may_move_cost. + (record_address_regs): Ditto. + (scan_one_insn): Optimize. + (find_costs_and_classes): Optimize. + (process_bb_node_for_hard_reg_moves): Call + ira_init_register_move_cost_if_necessary. Use + ira_register_move_cost instead of ira_get_register_move_cost. + + * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of + ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST, + ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P. + (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New + definitions. + (ira_initiate_emit_data, ira_finish_emit_data) + (create_new_allocno): New functions. + (modify_move_list): Call create_new_alloc instead of ira_create_allocno. + (emit_move_list): Call ira_init_register_move_cost_if_necessary. + Use ira_register_move_cost instead of ira_get_register_move_cost. + + * ira-int.h: Fix some comments. + (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c. + (struct object_hard_regs, struct object_hard_regs_node): Ditto. + (struct ira_object): Remove profitable_hard_regs, hard_regs_node, + hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member + add_data. + (struct ira_allocno): Make mode and aclass a bitfield. Move other + bitfield after mode. Make hard_regno a short int. Make + hard_regno short. Remove first_coalesced_allocno and + next_coalesced_allocno. Move mem_optimized_dest_p, + somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest + into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p, + available_regs_num, next_bucket_allocno, prev_bucket_allocno, + temp, colorable_p. Add new member add_data. + (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove. + (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove. + (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove. + (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove. + (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove. + (ALLOCNO_ADD_DATA): New macro. + (ira_emit_data_t): New typedef. + (struct ira_emit_data): New. Move mem_optimized_dest_p, + somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest + from struct ira_allocno. + (ALLOCNO_EMIT_DATA): New macro. + (ira_allocno_emit_data, allocno_emit_reg): New. + (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove. + (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove. + (OBJECT_ADD_DATA): New macro. + (ira_reallocate): Remove. + (ira_initiate_emit_data, ira_finish_emit_data): New. + (ira_get_register_move_cost, ira_get_may_move_cost): Remove. + (ira_init_register_move_cost_if_necessary): New. + (ira_object_conflict_iter_next): Merge into + ira_object_conflict_iter_cond. + (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next. + + * ira-live.c (process_single_reg_class_operands): Call + ira_init_register_move_cost_if_necessary. Use + ira_register_move_cost instead of ira_get_register_move_cost. + + 2010-08-13 Vladimir Makarov + + * ira-int.h (struct target_ira_int): Remove x_cost_classes. + + * ira-costs.c: Fix formatting. + (cost_classes, cost_classes_num): Remove. + (struct cost_classes, cost_classes_t, const_cost_classes_t): New. + (regno_cost_classes, cost_classes_hash, cost_classes_eq): New. + (cost_classes_del, cost_classes_htab): New. + (cost_classes_aclass_cache, cost_classes_mode_cache): New. + (initiate_regno_cost_classes, setup_cost_classes): New. + (setup_regno_cost_classes_by_aclass): New. + (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New. + (record_reg_classes): Use regno_cost_classes instead of + cost_classes. Move checking opposite operand up. + (record_address_regs): Use regno_cost_classes + instead of cost_classes. + (scan_one_insn): Ditto. Use always general register. + (print_allocno_costs): Use regno_cost_classes instead of + cost_classes. + (print_pseudo_costs): Ditto. Use Reg_N_REFS. + (find_costs_and_classes): Set up cost classes for each registers. + Use also their mode for this. Use regno_cost_classes instead of + cost_classes. + (setup_allocno_class_and_costs): Use regno_cost_classes instead of + cost_classes. + (free_ira_costs, ira_init_costs): Don't use cost_classes. + (ira_costs, ira_set_pseudo_classes): Call + initiate_regno_cost_classes and finish_regno_cost_classes. + + 2010-10-04 Vladimir Makarov + + * target-def.h (TARGET_IRA_COVER_CLASSES): Remove. + + * target.def (ira_cover_classes): Remove. + + * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES. + + * doc/tm.texi.in: Ditto. + + * ira-conflicts.c: Remove mentioning cover classes from the file. + Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use + ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting. + + * targhooks.c (default_ira_cover_classes): Remove. + + * targhooks.h (default_ira_cover_classes): Ditto. + + * haifa-sched.c: Remove mentioning cover classes from the file. + Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use + ira_pressure_classes and ira_pressure_classes_num instead of + ira_reg_class_cover_size and ira_reg_class_cover. Use + sched_regno_pressure_class instead of sched_regno_cover_class. + (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use + ira_reg_class_max_nregs instead of ira_reg_class_nregs. + + * ira-int.h: Add 2010 to Copyright. Remove mentioning cover + classes from the file. + (object_hard_regs_t, object_hard_regs_node_t): New typedefs. + (struct object_hard_regs, struct object_hard_regs_node): New. + (struct ira_object): New members profitable_hard_regs, + hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num. + (struct ira_allocno): Rename cover_class to aclass. Rename + cover_class_cost and updated_cover_class_cost to class_cost and + updated_class_cost. Remove splay_removed_p and + left_conflict_size. Add new members colorable_p. + (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove. + (ALLOCNO_COLORABLE_P): New macro. + (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS. + (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST): + Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST. + (OBJECT_...): Rename parameter C to O. + (OBJECT_PROFITABLE_HARD_REGS): New macro. + (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START) + (OBJECT_HARD_REGS_SUBNODES_NUM): New macros. + (struct target_ira_int): New members x_ira_max_memory_move_cost, + x_ira_max_register_move_cost, x_ira_max_may_move_in_cost, + x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p, + x_ira_reg_pressure_class_p, x_ira_important_class_nums, + x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to + x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to + x_ira_reg_class_subunion. + (ira_max_memory_move_cost, ira_max_register_move_cost) + (ira_max_may_move_in_cost, ira_max_may_move_out_cost) + (ira_reg_allocno_class_p, ira_reg_pressure_class_p) + (ira_important_class_nums, ira_reg_class_superunion): New macros. + (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs. + (ira_reg_class_union): Rename to ira_reg_class_subunion. + (ira_debug_class_cover): Rename to ira_debug_allocno_classes. + (ira_set_allocno_cover_class): Rename to ira_set_allocno_class. + (ira_tune_allocno_costs_and_cover_classes): Rename to + ira_tune_allocno_costs. + (ira_debug_hard_regs_forest): New. + (ira_object_conflict_iter_init, ira_object_conflict_iter_cond) + (ira_object_conflict_iter_next): Fix comments. + (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions. + (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename + cover_class to aclass. + (ira_allocate_and_accumulate_costs): Ditto. + (ira_allocate_and_set_or_copy_costs): Ditto. + + * opts.c (decode_options): Remove ira_cover_class check. + + * ira-color.c: Remove mentioning cover classes from the file. Use + ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST + instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and + ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting. + (splay-tree.h): Remove include. + (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move + before copy_freq_compare_func. + (allocnos_for_spilling, removed_splay_allocno_vec): Remove. + (object_hard_regs_vec, object_hard_regs_htab, node_check_tick): + New definitions. + (hard_regs_roots, hard_regs_node_vec): Ditto. + (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto. + (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto. + (finish_object_hard_regs, object_hard_regs_compare): Ditto. + (create_new_object_hard_regs_node): Ditto. + (add_new_object_hard_regs_node_to_forest): Ditto. + (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto. + (setup_object_hard_regs_nodes_parent, first_common_ancestor_node): + Ditto. + (print_hard_reg_set, print_hard_regs_subforest): Ditto. + (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto. + (remove_unused_object_hard_regs_nodes): Ditto. + (enumerate_object_hard_regs_nodes): Ditto. + (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto. + (object_hard_regs_subnode_t): Ditto. + (struct object_hard_regs_subnode): Ditto. + (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto. + (setup_object_hard_regs_subnode_index): Ditto. + (get_object_hard_regs_subnodes_num): Ditto. + (form_object_hard_regs_nodes_forest): Ditto. + (finish_object_hard_regs_nodes_tree): Ditto. + (finish_object_hard_regs_nodes_forest): Ditto. + (allocnos_have_intersected_live_ranges_p): Rename to + allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func. + (pseudos_have_intersected_live_ranges_p): Rename to + conflict_by_live_ranges_p. Move before copy_freq_compare_func. + (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto. + (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto. + (update_copy_costs): Remove assert. Skip cost update if the hard + reg does not belong the class. + (assign_hard_reg): Process only profitable hard regs. + (uncolorable_allocnos_num): Make it scalar. + (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM + and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE + and ira_reg_class_max_nregs. + (bucket_allocno_compare_func): Check frequency first. + (sort_bucket): Add compare function as a parameter. + (add_allocno_to_ordered_bucket): Assume no coalesced allocnos. + (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove. + (push_allocno_to_stack): Rewrite for checking new allocno + colorability. + (remove_allocno_from_bucket_and_push): Print cost too. Remove assert. + (push_only_colorable): Pass new parameter to sort_bucket. + (push_allocno_to_spill): Remove. + (allocno_spill_priority_compare): Make it inline and rewrite. + (splay_tree_allocate, splay_tree_free): Remove. + (allocno_spill_sort_compare): New function. + (push_allocnos_to_stack): Sort allocnos for spilling once. Don't + build and use splay tree. Choose first allocno in uncolorable + allocno bucket to spill. Remove setting spill cost. + (all_conflicting_hard_regs): Remove. + (setup_allocno_available_regs_num): Check only profitable hard + regs. Print info about hard regs nodes. + (setup_allocno_left_conflicts_size): Remove. + (put_allocno_into_bucket): Don't call + setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p. + (improve_allocation): New. + (color_allocnos): Call setup_profitable_hard_regs, + form_object_hard_regs_nodes_forest, improve_allocation, + finish_object_hard_regs_nodes_forest. Setup spill cost. + (print_loop_title): Use pressure classes. + (color_allocnso): Ditto. + (do_coloring): Remove allocation and freeing splay_tree_node_pool + and allocnos_for_spilling. + (ira_sort_regnos_for_alter_reg): Don't setup members + {first,next}_coalesced_allocno. + (color): Remove allocating and freeing removed_splay_allocno_vec. + (fast_allocation): Use ira_prohibited_class_mode_regs instead of + prohibited_class_mode_regs. + + * ira-lives.c: Remove mentioning cover classes from the file. Fix + formatting. + (update_allocno_pressure_excess_length): Use pressure classes. + (inc_register_pressure, dec_register_pressure): Check for pressure + class. + (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use + pressure class. Use ira_reg_class_nregs instead of + ira_reg_class_max_nregs. + (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto. + (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class. + (single_reg_class): Use ira_reg_class_nregs instead of + ira_reg_class_max_nregs. + (process_bb_node_lives): Use pressure classes. + + * ira-emit.c: Remove mentioning cover classes from the file. Use + ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting. + (change_loop): Use pressure classes. + (modify_move_list): Call ira_set_allocno_class instead of + ira_set_allocno_cover_class. + + * ira-build.c: Remove mentioning cover classes from the file. Use + ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of + ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use + ALLOCNO_UPDATED_CLASS_COST instead of + ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting. + (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS. + (ira_create_allocno): Remove initialization of + ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize + ALLOCNO_COLORABLE_P. + (ira_set_allocno_cover_class): Rename to ira_set_allocno_class. + Update conflict regs for the objects. + (create_cap_allocno): Remove assert. Don't propagate + ALLOCNO_AVAILABLE_REGS_NUM. + (ira_free_allocno_costs): New function. + (finish_allocno): Change a part of code into call of + ira_free_allocno_costs. + (low_pressure_loop_node_p): Use pressure classes. + (object_range_compare_func): Don't compare classes. + (setup_min_max_conflict_allocno_ids): Ditto. + + * loop-invariant.c: Remove mentioning cover classes from the file. + Use ira_pressure_classes and ira_pressure_classes_num instead of + ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting. + (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs. + Use ira_reg_class_max_nregs instead of ira_reg_class_nregs. + Use reg_allocno_class instead of reg_cover_class. + (get_inv_cost): Use instead ira_stack_reg_pressure_class of + STACK_REG_COVER_CLASS. + (get_regno_cover_class): Rename to get_regno_pressure_class. + (move_loop_invariants): Initialize and finalize regstat. + + * ira.c: Remove mentioning cover classes from the file. Add + comments about coloring without cover classes. Use ALLOCNO_CLASS + instead of ALLOCNO_COVER_CLASS. Fix formatting. + (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before + setup_class_subset_and_memory_move_costs. + (setup_stack_reg_pressure_class, setup_pressure_classes): New. + (setup_cover_and_important_classes): Rename to + setup_allocno_and_important_classes. + (setup_class_translate_array): New. + (setup_class_translate): Call it for allocno and pressure classes. + (cover_class_order): Rename to allocno_class_order. + (comp_reg_classes_func): Use ira_allocno_class_translate instead + of ira_class_translate. + (reorder_important_classes): Set up ira_important_class_nums. + (setup_reg_class_relations): Set up ira_reg_class_superunion. + (print_class_cover): Rename to print_classes. Add parameter. + (ira_debug_class_cover): Rename to ira_debug_allocno_classes. + Print pressure classes too. + (find_reg_class_closure): Rename to find_reg_classes. Don't call + setup_reg_subclasses. + (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class. + (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs. + (setup_prohibited_class_mode_regs): Use + ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs. + (clarify_prohibited_class_mode_regs): New function. + (ira_init_register_move_cost): Set up ira_max_register_move_cost, + ira_max_may_move_in_cost, and ira_max_may_move_out_cost. + (ira_init_once): Initialize them. + (free_register_move_costs): Process them. + (ira_init): Move calls of find_reg_classes and + setup_hard_regno_aclass after setup_prohibited_class_mode_regs. + Call clarify_prohibited_class_mode_regs. + (ira_no_alloc_reg): Remove. + (too_high_register_pressure_p): Use pressure classes. + + * sched-deps.c: Remove mentioning cover classes from the file. + Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use + ira_pressure_classes and ira_pressure_classes_num instead of + ira_reg_class_cover_size and ira_reg_class_cover. + (mark_insn_hard_regno_birth, mark_hard_regno_death): Use + sched_regno_pressure_class instead of sched_regno_cover_class. + (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use + ira_reg_class_max_nregs instead of ira_reg_class_nregs. + + * ira.h: Add 2010 to Copyright. + (ira_no_alloc_reg): Remove external. + (struct target_ira): Rename x_ira_hard_regno_cover_class, + x_ira_reg_class_cover_size, x_ira_reg_class_cover, and + x_ira_class_translate to x_ira_hard_regno_allocno_class, + x_ira_allocno_classes_num, x_ira_allocno_classes, and + x_ira_allocno_class_translate. Add x_ira_pressure_classes_num, + x_ira_pressure_classes, x_ira_pressure_class_translate, and + x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to + x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and + x_ira_no_alloc_regs. + (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class. + (ira_reg_class_cover_size, ira_reg_class_cover): Rename to + ira_allocno_classes_num and ira_allocno_classes. + (ira_class_translate): Rename to ira_allocno_class_translate. + (ira_pressure_classes_num, ira_pressure_classes): New definitions. + (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto. + (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs. + (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New + (ira_no_alloc_regs): New. + + * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover + classes from the file. Use ALLOCNO_CLASS instead of + ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of + ALLOCNO_COVER_CLASS_COST. + (regno_cover_class): Rename to regno_aclass. + (record_reg_classes): Use ira_reg_class_subunion instead of + ira_reg_class_union. + (record_address_regs): Check overflow. + (scan_one_insn): Ditto. + (print_allocno_costs): Print total mem cost fore regional allocation. + (print_pseudo_costs): Use REG_N_REFS. + (find_costs_and_classes): Use classes intersected with them on the + 1st pass. Check overflow. Use ira_reg_class_subunion instead of + ira_reg_class_union. Use ira_allocno_class_translate and + regno_aclass instead of ira_class_translate and regno_cover_class. + Modify code for finding regno_aclass. Setup preferred classes for + the next pass. + (setup_allocno_cover_class_and_costs): Rename to + setup_allocno_class_and_costs. Use regno_aclass instead of + regno_cover_class. Use ira_set_allocno_class instead of + ira_set_allocno_cover_class. + (init_costs, finish_costs): Use regno_aclass instead of + regno_cover_class. + (ira_costs): Use setup_allocno_class_and_costs instead of + setup_allocno_cover_class_and_costs. + (ira_tune_allocno_costs_and_cover_classes): Rename to + ira_tune_allocno_costs. Check overflow. Skip conflict hard regs + by processing objects. Use ira_reg_class_max_nregs instead of + ira_reg_class_nregs. + + * rtl.h (reg_cover_class): Rename to reg_allocno_class. + + * sched-int.h: Remove mentioning cover classes from the file. + (sched_regno_cover_class): Rename to sched_regno_pressure_class. + + * reginfo.c: Add 2010 to Copyright. Remove mentioning cover + classes from the file. + (struct reg_pref): Rename coverclass into allocnoclass. + (reg_cover_class): Rename to reg_allocno_class. + + * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies. + + * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove. + + * config/arm/arm.h (IRA_COVER_CLASSES): Ditto. + + * config/avr/avr.h (IRA_COVER_CLASSES): Ditto. + + * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto. + + * config/cris/cris.h (IRA_COVER_CLASSES): Ditto. + + * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto. + + * config/frv/frv.h (IRA_COVER_CLASSES): Ditto. + + * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto. + + * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto. + + * config/i386/i386.c (TARGET_IRA_COVER_CLASSES) + (i386_ira_cover_classes): Ditto. + + * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto. + + * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto. + + * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto. + + * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto. + + * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto. + + * config/mep/mep.h (IRA_COVER_CLASSES): Ditto. + + * config/mips/mips.c (TARGET_IRA_COVER_CLASSES) + (mips_ira_cover_classes): Ditto. + + * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto. + + * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto. + + * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto. + + * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto. + + * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto. + + * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX) + (IRA_COVER_CLASSES_VSX): Ditto. + + * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES) + (rs6000_ira_cover_classes): Ditto. + + * config/rx/rx.h (IRA_COVER_CLASSES): Ditto. + + * config/s390/s390.h (IRA_COVER_CLASSES): Ditto. + + * config/score/score.h (IRA_COVER_CLASSES): Ditto. + + * config/sh/sh.h (IRA_COVER_CLASSES): Ditto. + + * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto. + + * config/spu/spu.h (IRA_COVER_CLASSES): Ditto. + + * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto. + + * config/v850/v850.h (IRA_COVER_CLASSES): Ditto. + + * config/vax/vax.h (IRA_COVER_CLASSES): Ditto. + + * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto. + +2011-03-29 Jakub Jelinek + + PR debug/48253 + * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label, + dw_fde_hot_section_end_label, dw_fde_unlikely_section_label, + dw_fde_unlikely_section_end_label, cold_in_std_section, + dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields. + Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section + fields. + (output_fde): Use dw_fde_second_{begin,end} if second is + true, otherwise dw_fde_{begin,end}. + (output_call_frame_info): Test dw_fde_second_begin != NULL + instead of dw_fde_switched_sections. + (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct + fields, initialize new fields. Initialize in_std_section + unconditionally from the first partition. + (dwarf2out_end_epilogue): Don't override dw_fde_end when + dw_fde_second_begin is non-NULL. + (dwarf2out_switch_text_section): Stop initializing removed + dw_fde_struct fields, initialize new fields, initialize + also dw_fde_end here. Set dw_fde_switch_cfi even when + dwarf2out_do_cfi_asm (). Call var_location_switch_text_section. + (struct var_loc_list_def): Add last_before_switch field. + (arange_table, arange_table_allocated, arange_table_in_use, + ARANGE_TABLE_INCREMENT, add_arange): Removed. + (size_of_aranges): Count !in_std_section and !second_in_std_section + hunks in fdes, instead of looking at arange_table_in_use. + (output_aranges): Add aranges_length argument, don't call + size_of_aranges here. Instead of using aranges_table* + emit ranges for fdes when !in_std_section resp. + !second_in_std_section. + (dw_loc_list): Break ranges crossing section switch. + (convert_cfa_to_fb_loc_list): Likewise. If switched sections, + use dw_fde_second_end instead of dw_fde_end as end of last range. + (gen_subprogram_die): Don't call add_arange. Use + dw_fde_{begin,end} for first partition and if switched + section dw_fde_second_{begin,end} for the second. + (var_location_switch_text_section_1, + var_location_switch_text_section): New functions. + (dwarf2out_begin_function): Initialize cold_text_section even + when function_section () isn't text_section. + (prune_unused_types): Don't walk arange_table. + (dwarf2out_finish): Don't needlessly test + flag_reorder_blocks_and_partition when testing cold_text_section_used. + If info_section_emitted, call size_of_aranges and if it indicates + non-empty .debug_aranges, call output_aranges with the computed + size. Stop using removed dw_fde_struct fields, use + dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end} + for second. + + PR debug/48203 + * cfgexpand.c (expand_debug_expr) : Only + create ENTRY_VALUE if incoming or address of incoming's MEM + is a hard REG. + * dwarf2out.c (mem_loc_descriptor): Don't emit + DW_OP_GNU_entry_value of DW_OP_fbreg. + * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup + on ENTRY_VALUE is able to find the canonical parameter VALUE. + * cselib.c (rtx_equal_for_cselib_1) : Use + rtx_equal_p instead of rtx_equal_for_cselib_1 to compare + ENTRY_VALUE_EXPs. + (cselib_hash_rtx) : If ENTRY_VALUE_EXP + is a REG_P or MEM_P with REG_P address, compute hash directly + instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP. + (preserve_only_constants): Don't clear VALUES forwaring + ENTRY_VALUE to some other VALUE. + +2011-03-28 Richard Sandiford + + * builtins.c (expand_builtin_memset_args): Use gen_int_mode + instead of GEN_INT. + +2011-03-28 Eric Botcazou + + * cfgexpand.c (expand_gimple_cond): Always set the source location and + block before expanding the statement. + (expand_gimple_stmt_1): Likewise. Set them here... + (expand_gimple_stmt): ...and not here. Tidy. + * cfglayout.c (curr_insn_locator): Return 0 if the current location is + unknown. + +2011-03-28 Steven Bosscher + + * Makefile.in: New rule for cprop.o. + * gcse.c: Move constant/copy propagation to cprop.c. + (compute_local_properties): Only handle expression tables. + (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise. + (one_pre_gcse_pass, one_code_hoisting_pass): Likewise. + (hash_set, insert_set_in_table, gcse_constant_p, lookup_set, + next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set, + mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem, + compute_cprop_data, find_used_regs, try_replace_reg, + find_avail_set, cprop_jump, constprop_register, cprop_insn, + local_cprop_find_used_regs, do_local_cprop, local_cprop_pass, + fis_get_condition, implicit_set_cond_p, find_implicit_sets, + find_bypass_set, reg_killed_on_edge, bypass_block, + bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop, + execute_rtl_cprop, pass_rtl_cprop): Move to... + * cprop.c: ...here. New file, constant/copy propagation for RTL + moved from gcse.c to here with minor cleanups in duplicated code. + +2011-03-28 H.J. Lu + + * config/i386/i386.c (flag_opts): Fix a typo in + -mavx256-split-unaligned-store. + +2011-03-28 Anatoly Sokolov + + * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE, + LIBCALL_VALUE): Remove macros. + * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + (h8300_function_value, h8300_libcall_value, + h8300_function_value_regno_p): New functions. + +2011-03-28 Anatoly Sokolov + + * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro. + +2011-03-28 Jeff Law + + * tree-ssa-threadupdate.c (redirect_edges): Call + create_edge_and_update_destination_phis as needed. + (create_edge_and_update_destination_phis): Accept new BB argument. + All callers updated. + (thread_block): Do not update the profile when threading around + intermediate blocks. + (thread_single_edge): Likewise. + (determine_bb_domination_status): If BB is not a successor of the + loop header, return NONDOMINATING. + (register_jump_thread): Note when we register a jump thread around + an intermediate block. + * tree-ssa-threadedge.c (thread_around_empty_block): New function. + (thread_across_edge): Use it. + +2011-03-28 Tristan Gingold + + * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion + when for_return is 2. + +2011-03-28 Jeff Law + + * var-tracking.c (canonicalize_values_mark): Delete unused + lhs assignment. + (canonicalize_values_star, set_variable_part): Likewise. + (clobber_variable_part, delete_variable_part): Likewise. + +2011-03-28 Steven Bosscher + + * gcse.c (free_gcse_mem): Free reg_set_bitmap. + +2011-03-28 Martin Jambor + + * tree-inline.c (expand_call_inline): Do not check that destination + node is analyzed. + (optimize_inline_calls): Assert that destination node is analyzed. + * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do + not call tree_lowering_passes. + * cgraph.h (cgraph_analyze_function): Declare. + * cgraphunit.c (cgraph_analyze_function): Make public. + +2011-03-28 Joseph Myers + + * config/sparc/sparc-opts.h: New. + * config/sparc/sparc.c (sparc_handle_option, sparc_select, + sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove. + (sparc_option_override): Store processor_type enumeration rather + than string in cpu_default. Remove name and enumeration from + cpu_table. Directly default -mcpu then default -mtune from -mcpu + without using sparc_select. Use target_flags_explicit instead of + fpu_option_set. + * config/sparc/sparc.h (enum processor_type): Move to + sparc-opts.h. + (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove. + * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New + HeaderInclude entry. + (mcpu=, mtune=): Use Var and Enum. + (sparc_processor_type): New Enum and EnumValue entries. + +2011-03-28 Rainer Orth + Iain Sandoe + + PR target/48245 + * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC. + +2011-03-28 Eric Botcazou + + * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype. + * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter. + Insert new statements at it in lieu of STMT. + (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr. + * tree-vect-stmts.c (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + +2011-03-28 Uros Bizjak + + * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode. + (divtf3): Ditto. + (multf3): Ditto. + (subtf3): Ditto. + +2011-03-27 H.J. Lu + + * config/i386/sse.md (*avx_mov_internal): Don't assert + unaligned 256bit load/store. + (*avx_movu): Likewise. + (*avx_movdqu): Likewise. + +2011-03-27 John David Anglin + + PR target/48288 + * config/pa/predicates.md (reg_or_ior_operand): New predicate. + * config/pa/pa.md (iordi3): Use new predicate in expander. + (iorsi3): Likewise. + +2011-03-27 Anatoly Sokolov + + * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE, + FUNCTION_VALUE_REGNO_P): Remove macros. + * config/mips/mips-protos.h (mips_function_value): Remove. + * config/mips/mips.c (mips_function_value): Rename to... + (mips_function_value_1): ... this. Make static. Handle receiving + the function type in 'fn_decl_or_type' argument. + (mips_function_value, mips_libcall_value, + mips_function_value_regno_p): New function. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + +2011-03-27 H.J. Lu + + * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load + and -mavx256-split-unaligned-store. + (ix86_option_override_internal): Split 32-byte AVX unaligned + load/store by default. + (ix86_avx256_split_vector_move_misalign): New. + (ix86_expand_vector_move_misalign): Use it. + + * config/i386/i386.opt: Add -mavx256-split-unaligned-load and + -mavx256-split-unaligned-store. + + * config/i386/sse.md (*avx_mov_internal): Verify unaligned + 256bit load/store. Generate unaligned store on misaligned memory + operand. + (*avx_movu): Verify unaligned + 256bit load/store. + (*avx_movdqu): Likewise. + + * doc/invoke.texi: Document -mavx256-split-unaligned-load and + -mavx256-split-unaligned-store. + +2011-03-27 Richard Sandiford + + PR target/38598 + * config/mips/mips.md (extendsidi2): Add an "l" alternative. + Update commentary. + +2011-03-27 Richard Sandiford + + * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and + opno arguments with an expand_operand. Use create_input_operand. + (mips_prepare_builtin_target): Delete. + (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New + functions. + (mips_expand_builtin_direct): Use create_output_operand and + mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg. + (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison. + (mips_expand_builtin_compare): Use mips_expand_fp_comparison. + +2011-03-27 Ira Rosen + + * config/arm/arm.c (arm_autovectorize_vector_sizes): New + function. + (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define. + +2011-03-26 Eric Botcazou + + * basic-block.h (fixup_abnormal_edges): Adjust prototype. + * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover + basic blocks and call commit_edge_insertions directly. + (fixup_abnormal_edges): Move from here to... + * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions + on the edges and return whether some have actually been inserted. + * reg-stack.c (convert_regs): Fix up abnormal edges before inserting + compensation code. + +2011-03-26 Andrey Belevantsev + + PR rtl-optimization/48144 + * sel-sched-ir.c (merge_history_vect): Factor out from ... + (merge_expr_data): ... here. + (av_set_intersect): Rename to av_set_code_motion_filter. + Update all callers. Call merge_history_vect when an expression + is found in both sets. + * sel-sched-ir.h (av_set_code_motion_filter): Add prototype. + +2011-03-26 Alan Modra + + * config/rs6000/predicates.md (word_offset_memref_op): Handle + cmodel medium addresses. + * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned + 64-bit gpr loads and stores. + (rs6000_secondary_reload_ppc64): New function. + * config/rs6000/rs6000-protos.h: Declare it. + * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New. + +2011-03-26 Alan Modra + + PR target/47487 + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support + GNU Go in traceback table. + +2011-03-25 Richard Henderson + + * expr.c (emit_block_move_via_movmem): Only use 6 operand variant + if there are exactly 6 operands. + (set_storage_via_setmem): Similarly. + +2011-03-25 Kai Tietz + + * collect2.c (write_c_file_stat): Handle backslash + as right-hand directory separator. + (resolve_lib_name): Use IS_DIR_SEPARATOR instead of + checking just for slash. + * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH + instead of checking for trailing slash. + * gcc.c (record_temp_file): Use filename_cmp instead + of strcmp. + (do_spec_1): Likewise. + (replace_outfile_spec_function): Likewise. + (is_directory): Use filename_ncmp instead of strncmp. + (print_multilib_info): Likewise. + * gcov.c (find_source): Use filename_cmp instead + instead of strcmp. + (make_gcov_file_name): Fix order of slash/backslash + checks. + * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp. + (add_standard_paths): Likewise. + * mips-tfile.c (saber_stop): Handle backslash. + * prefix.c (update_path): Use filename_ncmp instead of + strncmp. + * profile.c (output_location): Use filename_cmp instead + of strcmp. + * read-md.c (handle_toplevel_file): Handle backslash. + * tlink.c (frob_extension): Likewise. + * tree-cfg.c (same_line_p): Use filename_cmp instead of + strcmp. + * tree-dump.c (dequeue_and_dump): Handle backslash. + * tree.c (get_file_function_name): Likewise. + * gengtype.c (read_input_list): Likewise. + (get_file_realbasename): Likewise. + (get_output_file_with_visibility): Use filename_cmp + instead of strcmp. + +2011-03-25 Richard Sandiford + + * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS + case to VFPv1. + +2011-03-25 Nathan Froyd + + * fold-const.c (expr_location_or): New function. + (fold_truth_not_expr): Call it. + +2011-03-25 Jeff Law + + * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing + va_end. + * c-family/c-common.c (def_fn_type): Likewise. + * emit-rtl.c (gen_rtvec): Likewise. + * lto/lto-lang.c (def_fn_type): Likewise. + +2011-03-25 Richard Guenther + + * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants + also generate copies. + (fini_copy_prop): Handle constant values properly. + +2011-03-25 Jakub Jelinek + + * dwarf2out.c (mem_loc_descriptor) : Compare + mode size instead of bitsize with DWARF2_ADDR_SIZE. + (hash_loc_operands, compare_loc_operands): Handle + DW_OP_GNU_entry_value. + +2011-03-25 Kai Tietz + + * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment. + (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI. + * config/i386/i386.c (ix86_conditional_register_usage): Adjust + comment and use macro TARGET_64BIT_MS_ABI instead. + (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case + and change default behavior for 32-bit MS_ABI. + (ix86_reg_parm_stack_space): Check additionally for bit-ness. + (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for + 32-bit, too. + (ix86_cfun_abi): Likewise. + (ix86_maybe_switch_abi): Adjust comment. + (init_cumulative_args): Check for bit-ness in MS_ABI case. + (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI + instead of checking for SYSV_ABI. + (ix86_nsaved_sseregs): Likewise. + (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment + to 16 bytes. + (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro. + * config/i386.h (TARGET_32BIT_MS_ABI): New macro. + (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI. + (OUTGOING_REG_PARM_STACK_SPACE): Likewise. + * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI. + +2011-03-25 Richard Guenther + + * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. + (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. + (verify_gimple): Remove. + * tree-cfg.c (verify_gimple_call): Merge verification + from verify_stmts. + (verify_gimple_phi): Merge verification from verify_stmts. + (verify_gimple_label): New function. + (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2. + (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. + (verify_stmt): Merge into verify_gimple_in_cfg and callees. + (verify_stmts): Rename to verify_gimple_in_cfg. + (verify_gimple_in_cfg): New function. + * passes.c (execute_function_todo): Call verify_gimple_in_cfg. + * tree-ssa.c (verify_ssa): Likewise. + * gimplify.c (gimplify_body): Call verify_gimple_in_seq. + +2011-03-25 Richard Guenther + + * passes.c (init_optimization_passes): Add FRE pass after + early SRA. + +2011-03-25 Bernd Schmidt + Andrew Stubbs + + * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning + for Cortex-A8. + (arm_movdi_vfp_cortexa8): New pattern. + * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon, + iordi3_neon, xordi3_neon): Add alternatives to discourage Neon + instructions when tuning for Cortex-A8. Set attribute "arch". + * config/arm/arm.md: Move include arm-tune.md up a bit. + (define_attr "arch"): Add "onlya8" and "nota8" values. + (define_attr "arch_enabled"): Handle "onlya8" and "nota8". + +2011-03-25 Nathan Froyd + + PR bootstrap/48282 + Revert: + 2011-03-24 Nathan Froyd + + * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and + FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. + (pass_instantiate_virtual_regs): Require PROP_cfglayout. + * passes.c (init_optimization_passes): Move + pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. + +2011-03-25 Kai Tietz + + * c-typeck.c (comptypes_internal): Replace target + hook call of comp_type_attributes by version in tree.c file. + * gimple.c (gimple_types_compatible_p_1): Likewise. + * tree-ssa.c (useless_type_conversion_p): Likewise. + * tree.c (build_type_attribute_qual_variant): Likewise. + (attribute_value_equal): New static helper function. + (comp_type_attributes): New function. + (merge_attributes): Use attribute_value_equal for comparison. + (attribute_list_contained): Likewise. + * tree.h (comp_type_attributes): New prototype. + +2011-03-25 Richard Guenther + + * tree-cfg.c (verify_gimple_assign_unary): Drop special casing + of complex types at -O0. + (verify_gimple_assign_binary): Likewise. + (verify_gimple_assign_ternary): Likewise. + +2011-03-24 Mark Wielaard + + * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8. + (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8. + +2011-03-24 Mark Wielaard + + PR debug/48041 + * dwarf2out.c (output_abbrev_section): Only write table when + abbrev_die_table_in_use > 1. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql. + (alpha_expand_unaligned_store): Use mskwl, mskll, mskql. + (alpha_expand_unaligned_load_words): Use extql. + (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql. + (emit_insxl): Handle all modes for consistency. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN. + (alpha_expand_unaligned_load): Likewise. + (alpha_expand_unaligned_store): Likewise. + (alpha_expand_unaligned_load_words): Likewise. + (alpha_expand_unaligned_store_words): Likewise. + (emit_insxl, alpha_split_compare_and_swap_12): Likewise. + (alpha_split_lock_test_and_set_12): Likewise. + (print_operand, alpha_fold_builtin_extxx): Likewise. + (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise. + * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise. + (builtin_extwh, builtin_extlh, builtin_extql): Likewise. + (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove. + (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove. + (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove. + (unaligned_loadqi_be, unaligned_loadhi_be): Remove. + (unaligned_storeqi_be, unaligned_storehi_be): Remove. + (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN. + (extwl, extll, extql): Similarly. + (inswh, inslh, insqh): Similarly. + (mskbl, mskwl, mskll, mskql): Similarly. + (mskwh, msklh, mskqh): Similarly. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (attribute isa): Add er, ner. + (attribute enabled): Handle them. + (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (attribute isa): Add vms. + (attribute enabled): Handle it. + (*movsf): Merge *movsf_{nofix,fix,nofp}. + (*movdf): Merge *movdf_{nofix,fix,nofp}. + (*movtf): Rename from *movtf_internal for consistency. + (*movsi): Merge with *movsi_nt_vms. + (*movhi): Merge *movhi_nobwx, *movhi_bwx. + (*movqi): Merge *movqi_nobwx, *movqi_bwx. + (*mov): Merge *mov_fix, *mov_nofix. + * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (extendqihi2): Implement for BWX only. + (extendqisi2, extendhisi2): Likewise. + (extendqidi2): Simplify BWX/non-BWX expansions. + (extendhidi2): Similarly. + +2011-02-24 Richard Henderson + + * config/alpha/alpha.md (attribute isa): New. + (attribute enabled): New. + (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}. + (zero_extendqisi2, zero_extendqidi2): Similarly. + (zero_extendhisi2, zero_extendhidi2): Similarly. + * config/alpha/predicates.md (reg_or_bwx_memory_operand): New. + +2011-02-24 Richard Henderson + + * config/alpha/predicates.md (input_operand): Revert last change; + update comment to mention 32-bit VMS rather than Windows. + +2011-03-24 Nathan Froyd + + * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and + FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. + (pass_instantiate_virtual_regs): Require PROP_cfglayout. + * passes.c (init_optimization_passes): Move + pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. + +2011-03-24 Eric Botcazou + + * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases. + +2011-03-24 Uros Bizjak + + * config/i386/i386.md (ix86_print_operand): Output DFmode const_double + correctly. + +2011-03-24 Jakub Jelinek + + PR debug/48204 + * simplify-rtx.c (simplify_const_unary_operation): Call + real_convert when changing mode class with FLOAT_EXTEND. + +2011-03-24 Nick Clifton + + * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define. + (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. + * config/rx/rx.c (rx_option_override): Set align_jumps, + align_loops and align_labels if not set by the user. + (rx_align_for_label): New function. + (rx_max_skip_for_label): New function. + (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define. + (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. + * config/rx/rx-protos.h (rx_align_for_label): Add prototype. + +2011-03-24 Richard Sandiford + + PR rtl-optimization/48263 + * optabs.c (expand_binop_directly): Reinstate convert_modes code + and original commutative_p handling. Use maybe_gen_insn. + +2011-03-24 Andreas Krebbel + + * reload.c (find_reloads_subreg_address): Add address_reloaded + parameter and return true there if the full address has been + reloaded. + (find_reloads_toplev): Pass address_reloaded flag. + (find_reloads_address_1): Don't use address_reloaded parameter. + +2011-03-24 Jeff Law + + * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but + unused variable "ann". + (remove_unused_locals): Likewise. + + * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless + statement. + + * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL + after it is freed. + +2011-03-24 Andreas Krebbel + + * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS + for invalid symbolic addresses. + (s390_secondary_reload): Don't use s390_check_symref_alignment for + larl operands. + +2011-03-24 Eric Botcazou + + * fold-const.c (fold_ternary_loc): Preserve the location (if any) of + the argument in calls to fold_truth_not_expr. + +2011-03-24 Nathan Froyd + + * tree.c (record_node_allocation_statistics): New function. + (make_node_stat, copy_node_stat, build_string): Call it. + (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise. + (build1_stat, build_omp_clause): Likewise. + +2011-03-24 Richard Sandiford + + * builtins.c (expand_movstr): Fix endp == 1 adjustment after + last commit. + +2011-03-24 Richard Guenther + + PR tree-optimization/48271 + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup + blocks that still exist. + +2011-03-24 Richard Guenther + + PR tree-optimization/48270 + * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do + not free datarefs before ddrs. + +2011-03-24 Eric Botcazou + + * tree-sra.c (build_ref_for_offset): Strip useless type conversions + from the address built for a reference with variable offset. + +2011-03-24 Uros Bizjak + + PR target/48237 + * config/i386/i386.md (*movdf_internal_rex64): Do not split + alternatives that can be handled with movq or movabsq insn. + (*movdf_internal): Disable for !TARGET_64BIT. + (*movdf_internal_nointeger): Ditto. + * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates. + +2011-03-24 Nathan Froyd + + * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. + (FUNCTION_ARG_ADVANCE): Likewise. + * tm.texi.in: Change references to them to hook references. + * tm.texi: Regenerate. + * targhooks.c (default_function_arg): Eliminate check for target macro. + (default_function_incoming_arg): Likewise. + (default_function_arg_advance): Likewise. + * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. + (function_arg_advance): Likewise. + * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. + +2011-03-24 Richard Guenther + + PR middle-end/48269 + * tree-object-size.c (addr_object_size): Do not double-account + for MEM_REF offsets. + +2011-03-24 Diego Novillo + + * lto-opts.c (input_data_block): Move to lto-streamer-in.c. + * lto-streamer-in.c (input_string_internal): Add clarifying comments. + (lto_input_data_block): Move from lto-opts.c. Make extern. + Update all users. + (lto_input_string): Rename from input_string. Make extern. + Update all users. + * lto-streamer-out.c (lto_output_string_with_length): Rename from + output_string_with_length. + Output 0 to indicate a non-NULL string. Update all callers to + not emit 0. + (lto_output_string): Rename from output_string. Make extern. + Update all users. + (lto_output_decl_state_streams): Make extern. + (lto_output_decl_state_refs): Make extern. + * lto-streamer.h (lto_input_string): Declare. + (lto_input_data_block): Declare. + (lto_output_string): Declare. + (lto_output_string_with_length): Declare. + (lto_output_decl_state_streams): Declare. + (lto_output_decl_state_refs): Declare. + +2011-03-24 Richard Guenther + + PR tree-optimization/46562 + * tree.c (build_invariant_address): New function. + * tree.h (build_invariant_address): Declare. + * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around + a renamed function moved ... + * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here. + Take valueization callback parameter. + * tree-flow.h (gimple_fold_stmt_to_constant): Declare. + * gimple-fold.h: New file. + * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1. + (ccp_fold, fold_const_aggregate_ref, + fold_ctor_reference, fold_nonarray_ctor_reference, + fold_array_ctor_reference, fold_string_cst_ctor_reference, + get_base_constructor): Move ... + * gimple-fold.c: ... here. + (gimple_fold_stmt_to_constant_1): New function + split out from ccp_fold. Take a valueization callback parameter. + Valueize all operands. + (gimple_fold_stmt_to_constant): New wrapper function. + (fold_const_aggregate_ref_1): New function split out from + fold_const_aggregate_ref. Take a valueization callback parameter. + (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1. + * tree-ssa-sccvn.c (simplify_binary_expression): Simplify + invariant POINTER_PLUS_EXPRs to invariant form. + (vn_valueize): New function. + (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant. + * tree-vrp.c (vrp_valueize): New function. + (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant + to fold statements to constants. + * tree-ssa-pre.c (eliminate): Properly guard propagation of + function declarations. + * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o, + tree-ssa-ccp.o): Add gimple-fold.h dependencies. + +2011-03-24 Richard Sandiford + + * config/h8300/predicates.md (jump_address_operand): Fix register + mode check. + +2011-03-24 Ira Rosen + + * doc/invoke.texi (max-stores-to-sink): Document. + * params.h (MAX_STORES_TO_SINK): Define. + * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0 + if either vectorization or if-conversion is disabled. + * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from + tree-vect-data-refs.c vect_equal_offsets. + (dr_equal_offsets_p): New function. + (find_data_references_in_bb): Remove static. + * tree-data-ref.h (find_data_references_in_bb): Declare. + (dr_equal_offsets_p): Likewise. + * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c. + (vect_drs_dependent_in_basic_block): Update calls to + vect_equal_offsets. + (vect_check_interleaving): Likewise. + * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h. + (cond_if_else_store_replacement): Rename to... + (cond_if_else_store_replacement_1): ... this. Change arguments and + documentation. + (cond_if_else_store_replacement): New function. + * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies. + * params.def (PARAM_MAX_STORES_TO_SINK): Define. + +2011-03-23 Chung-Lin Tang + + PR target/46934 + * config/arm/arm.md (casesi): Use the gen_int_mode() function + to subtract lower bound instead of GEN_INT(). + +2011-03-23 Jonathan Wakely + + PR other/48179 + PR other/48221 + PR other/48234 + * doc/extend.texi (Alignment): Move section to match order in TOC. + * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. + (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. + +2011-03-23 Jeff Law + + * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map + before removing the edge. + + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after + it may have been freed by redirect_branch_edge or + redirect_edge_succ_nodup. + +2011-03-23 Richard Guenther + + * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF. + (check_va_list_escapes): Likewise. + (check_all_va_list_escapes): Likewise. + +2011-03-23 Richard Guenther + + * Makefile.in (IPA_TYPE_ESCAPE_H): Remove. + (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o. + (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H. + (alias.o): Likewise. + (ipa-type-escape.o): Remove. + (ipa-struct-reorg.o): Likewise. + (GTFILES): Remove ipa-struct-reorg.c. + * alias.c: Do not include ipa-type-escape.h. + * tree-ssa-alias.c: Likewise. + * common.opt (fipa-struct-reorg): Preserve for backward compatibility. + * opts.c (finish_options): Do not reset flag_ipa_struct_reorg. + * passes.c (init_optimization_passes): Remove ipa-struct-reorg + and ipa-type-escape passes. + * tree-pass.h (pass_ipa_type_escape): Remove. + (pass_ipa_struct_reorg): Likewise. + * ipa-struct-reorg.h: Remove. + * ipa-struct-reorg.c: Likewise. + * ipa-type-escape.h: Likewise. + * ipa-type-escape.c: Likewise. + * doc/invoke.texi (-fipa-struct-reorg): Remove. + (--param struct-reorg-cold-struct-ratio): Likewise. + * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. + * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. + * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise. + +2011-03-23 Andreas Krebbel + + * config/s390/2084.md: Enable all insn reservations also for z9_ec + cpu attribute value. + * config/s390/s390-opts.h (enum s390_arch_option): Remove. + (enum processor_type): Add PROCESSOR_2094_Z9_EC. + * config/s390/s390.c (processor_flags_table): New constant array. + (s390_handle_arch_option): Remove. + (s390_handle_option): Remove s390_handle_arch_option invocations + and OPT_mwarn_framesize_ handling. + (s390_option_override): Remove s390_handle_arch_option invocation. + (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in + warnings. + * config/s390/s390.md (cpu attribute): Add z9_ec value. + * config/s390/s390.opt (s390_tune, s390_arch) + (march=): Replace s390_arch_option enum and values with + processor_type. Set variable name to s390_arch. Set + initialization value. + (mtune=): Replace s390_arch_option with processor_type. Set + variable name to s390_tune. Set initialization value. + +2011-03-23 Julian Brown + + * expr.c (expand_expr_real_1): Only use BLKmode for volatile + accesses which are not naturally aligned. + +2011-03-23 Richard Sandiford + + PR target/47553 + * config/arm/predicates.md (neon_lane_number): Accept 0..15. + +2011-03-23 Richard Sandiford + + * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code + parameter from "int" to "enum insn_code". + (expand_operand_type): New enum. + (expand_operand): New structure. + (create_expand_operand): New function. + (create_fixed_operand, create_output_operand): Likewise + (create_input_operand, create_convert_operand_to): Likewise. + (create_convert_operand_from, create_address_operand): Likewise. + (create_integer_operand): Likewise. + (create_convert_operand_from_type, maybe_legitimize_operands): Declare. + (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. + (expand_insn, expand_jump_insn): Likewise. + * builtins.c (expand_builtin_prefetch): Use the new interfaces. + (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise. + (expand_movstr, expand_builtin___clear_cache): Likewise. + (expand_builtin_lock_release): Likewise. + * explow.c (allocate_dynamic_stack_space): Likewise. + (probe_stack_range): Likewise. Allow check_stack to FAIL, + and use the default handling in that case. + * expmed.c (check_predicate_volatile_ok): Delete. + (store_bit_field_1, extract_bit_field_1): Use the new interfaces. + (emit_cstore): Likewise. + * expr.c (emit_block_move_via_movmem): Likewise. + (set_storage_via_setmem, expand_assignment): Likewise. + (emit_storent_insn, try_casesi): Likewise. + (emit_single_push_insn): Likewise. Allow the expansion to fail. + * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise. + (expand_vec_shift_expr, expand_binop_directly): Likewise. + (expand_twoval_unop, expand_twoval_binop): Likewise. + (expand_unop_direct, emit_indirect_jump): Likewise. + (emit_conditional_move, vector_compare_rtx): Likewise. + (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise. + (expand_sync_operation, expand_sync_fetch_operation): Likewise. + (expand_sync_lock_test_and_set): Likewise. + (maybe_emit_unop_insn): Likewise. Change icode to an insn_code. + (emit_unop_insn): Likewise. + (expand_copysign_absneg): Change icode to an insn_code. + (create_convert_operand_from_type): New function. + (maybe_legitimize_operand, maybe_legitimize_operands): Likewise. + (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. + (expand_insn, expand_jump_insn): Likewise. + * config/i386/i386.md (setmem): Use nonmemory_operand rather + than const_int_operand for operand 2. + +2011-03-23 Andreas Krebbel + + * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name + if possible. + +2011-03-22 Nathan Froyd + + * emit-rtl.c (emit_pattern_before_noloc): New function. + (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it. + (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise. + (emit_pattern_after_noloc): New function. + (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it. + (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise. + +2011-03-22 Nathan Froyd + + * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE. + (__ffsDI2): Likewise. + +2011-03-22 Richard Henderson + + * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead + of !TARGET_ABI_OPEN_VMS. + (alpha_trampoline_init, alpha_start_function): Likewise. + (alpha_expand_epilogue, alpha_file_start): Likewise. + * config/alpha/alpha.md (divsi3, modsi3): Likewise. + (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise. + (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise. + (*divmodsi_internal, *divmoddi_internal_er): Likewise. + (*divmoddi_internal_er_1, *divmoddi_internal): Likewise. + +2011-03-22 Joseph Myers + + * config/s390/s390-opts.h: New. + * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch, + s390_arch_flags, s390_warn_framesize, s390_stack_size, + s390_stack_guard): Remove. + (s390_handle_arch_option): Return void. Take enum + s390_arch_option value instead of string and searching array. + (s390_handle_option): Don't assert that global structures are in + use. Access variables via opts pointer. Use error_at. Don't use + sscanf for -mstack-guard= or -mstack-size=. Update call to + s390_handle_arch_option. + (s390_option_override): Update call to s390_handle_arch_option. + (s390_emit_prologue): Use %d format for s390_stack_size in + diagnostic. Use %wd for HOST_WIDE_INT. + * config/s390/s390.h (enum processor_type): Move to s390-opts.h. + (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove. + * config/s390/s390.opt (config/s390/s390-opts.h): New + HeaderInclude entry. + (s390_arch_string, s390_tune, s390_tune_flags, s390_arch, + s390_arch_flags, s390_warn_framesize): New Variable entries. + (s390_arch_option): New Enum and EnumValue entries. + (march=): Use Enum instead of Var. + (mstack-guard=, mstack-size=): Use UInteger and Var. + (mtune=): Use Enum. + +2011-03-22 Joseph Myers + + * config/score/score.c (score_handle_option): Don't assert that + global structures are in use. Access target_flags via opts + pointer. Use value of -march= option to determine target_flags + settings. + * config/score/score.opt (march=): Use Enum. + (score_arch): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/mep/mep.c (option_mtiny_specified): Remove. + (mep_option_override): Move register handling for -mivc2 from + mep_handle_option. Use global_options_set.x_mep_tiny_cutoff + instead of option_mtiny_specified. + (mep_handle_option): Access target_flags via opts pointer. Don't + assert that global structures are in use. Defer part of -mivc2 + handling and move it to mep_option_override. + * config/mep/mep.opt (IVC2): New Mask entry. + (mivc2): Use Var and Defer instead of Mask. + +2011-03-22 Joseph Myers + + * config/v850/v850-opts.h: New. + * config/v850/v850.c (small_memory): Replace with + small_memory_physical_max array. Make that array static const. + (v850_handle_memory_option): Take integer value of argument. Take + gcc_options pointer, option text and location. Return void. + Update for changes to small memory structures. + (v850_handle_option): Access target_flags via opts pointer. Don't + assert that global structures are in use. Update calls to + v850_handle_memory_option. + (v850_encode_data_area): Update references to small memory settings. + * config/v850/v850.h (struct small_memory_info, small_memory): Remove. + (enum small_memory_type): Move to v850-opts.h. + * config/v850/v850.opt (config/v850/v850-opts.h): New + HeaderInclude entry. + (small_memory_max): New Variable entry. + (msda): Replace by pair of options msda= and msda-. Use UInteger. + (mtda, mzda): Likewise. + +2011-03-22 Joseph Myers + + * config/sh/sh.c (sh_handle_option): Access target_flags via opts + pointer. Don't assert that global structures are in use. + +2011-03-22 Joseph Myers + + * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags + via opts pointer. Don't assert that global structures are in use. + +2011-03-22 Joseph Myers + + * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry. + (munix=93): Use Var. + * config/pa/pa-hpux1010.opt (munix=95): Use Var. + * config/pa/pa-hpux1111.opt (munix=98): Use Var. + * config/pa/pa-opts.h: New. + * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove. + (pa_handle_option): Don't assert that global structures are in + use. Access target_flags via opts pointer. Don't handle + OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or + OPT_munix_98 here. + (pa_option_override): Handle deferred OPT_mfixed_range_. + +2011-03-22 Joseph Myers + + * config/mn10300/mn10300-opts.h: New. + * config/mn10300/mn10300.c (mn10300_processor, + mn10300_tune_string): Remove. + (mn10300_handle_option): Don't assert that global structures are + in use. Access mn10300_processor via opts pointer. Don't handle + OPT_mtune_ here. + * config/mn10300/mn10300.h (enum processor_type): Move to + mn10300-opts.h. + (mn10300_processor): Remove. + * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New + HeaderInclude entry. + (mn10300_processor): New Variable entry. + (mtune=): Use Var. + +2011-03-22 Joseph Myers + + * config/microblaze/microblaze.c: Don't include opts.h. + (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove. + * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn. + (mno-clearbss): Use Var and Warn. + +2011-03-22 Joseph Myers + + * config/m32r/m32r-opts.h: New. + * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove. + (m32r_handle_option): Don't assert that global structures are in + use. Access target_flags and m32r_cache_flush_func via opts + pointer. Don't handle OPT_mmodel_, OPT_msdata_ or + OPT_mno_flush_trap here. + * config/m32r/m32r.h (Code Models, Small Data Area): Replace by + include of m32r-opts.h. + * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New + HeaderInclude entry. + (m32r_model_selected, m32r_sdata_selected): New Variable entries. + (mmodel=): Use Enum and Var. + (m32r_model): New Enum and EnumValue entries. + (mno-flush-trap): Use Var. + (msdata=): Use Enum and Var. + (m32r_sdata): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/m32c/m32c.c: Don't include opts.h. + (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION, + m32c_handle_option): Remove. + (m32c_option_override): Check global_options_set.x_target_memregs + instead of target_memregs_set. + * config/m32c/m32c.h (target_memregs): Remove. + * config/m32c/m32c.opt (memregs=): Use UInteger with integer + variable. + +2011-03-22 Joseph Myers + + * config/iq2000/iq2000-opts.h: New. + * config/iq2000/iq2000.c: Don't include opts.h. + (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove. + * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove. + * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New + HeaderInclude entry. + (iq2000_tune): New Variable entry. + (march=): Add comment. Use Enum. + (iq2000_arch): New Enum and EnumValue entries. + (mcpu=): Use Enum and Var. + (iq2000_tune): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/ia64/ia64-opts.h: New. + * config/ia64/ia64.c (ia64_tune): Remove. + (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_ + here. Use error_at. + (ia64_option_override): Handle deferred OPT_mfixed_range_. + * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove. + * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New + HeaderInclude entry. + (ia64_tune): New Variable entry. + (mfixed-range=): Use Defer and Var. + (mtune=): Use Enum and Var. + (ia64_tune): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/frv/frv-opts.h: New. + * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to + frv-opts.h. + (frv_cpu_type): Remove. + * config/frv/frv.c: Don't include opts.h. + (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove. + * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry. + (frv_cpu_type): New Variable entry. + (frv_cpu): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers + + * config/cris/cris.c (cris_handle_option): Access target_flags via + opts pointer. Don't assert that global structures are in use. + Don't call CRIS_SUBTARGET_HANDLE_OPTION. + * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define. + +2011-03-22 Joseph Myers + + * config/bfin/bfin-opts.h: New. + * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type, + bfin_si_revision, bfin_workarounds): Remove. + (bfin_cpus): Make static const. + (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id + not bfin_lib_id_given. + (bfin_handle_option): Don't set bfin_lib_id_given. Access + bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts + pointer. Use error_at. Don't assert that global structures are in use. + * config/bfin/bfin.h: Include bfin-opts.h. + (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h. + (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove. + * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry. + (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable + entries. + +2011-03-22 Joseph Myers + + * config/arm/arm.opt (mhard-float, msoft-float): Use Alias. + * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float + or -msoft-float here. + * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not + -msoft-float and -mhard-float. + (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float. + * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not + msoft-float. + * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and + -msoft-float. + (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float. + * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard, + not mhard-float. + (LIBGCC_SPEC): Don't handle -msoft-float. + * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle + -mhard-float. + * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not + msoft-float. + * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle + -mfloat-abi=*, not -msoft-float and -mhard-float. + * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and + -msoft-float. + * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): + Use mfloat-abi=hard and mfloat-abi=soft in comments, not + mhard-float and msoft-float. + * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and + mfloat-abi=soft in comments, not mhard-float and msoft-float. + * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use + mfloat-abi=soft and mfloat-abi=hard, not msoft-float and + mhard-float. + * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use + mfloat-abi=hard and mfloat-abi=soft, not mhard-float and + msoft-float. + * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard, + not mhard-float. + * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, + not msoft-float. + +2011-03-22 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_prologue): Don't test + TARGET_ABI_WINDOWS_NT. + (alpha_output_function_end_prologue): Likewise. + * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise. + (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + * config/alpha/alpha.md (call, call_value, tablejump): Likewise. + (trap, *movsi_nt_vms): Likewise. + (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove. + (*tablejump_osf_nt_internal): Remove. + * config/alpha/predicates.md (input_operand): Only test Pmode. + +2011-03-22 Joseph Myers + + * config/alpha/alpha.c (alpha_handle_option): Access target_flags + via opts pointer. Use error_at. Don't assert that global + structures are in use. + +2011-03-22 Joseph Myers + + * config/i386/i386.c (ix86_isa_flags_explicit): Remove. + (ix86_handle_option): Access ix86_isa_flags and + ix86_isa_flags_explicit via opts pointer. Don't assert that + global structures are in use. + (ix86_function_specific_save, ix86_function_specific_restore): + Update ix86_isa_flags_explicit field name. + * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry. + (ix86_isa_flags_explicit): Rename TargetSave entry to + x_ix86_isa_flags_explicit. + +2011-03-22 Richard Henderson + + * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK. + (alpha_option_override, direct_return): Likewise. + (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise. + (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise. + (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise. + (alpha_start_function, alpha_output_function_end_prologue): Likewise. + (alpha_expand_epilogue, alpha_end_function): Likewise. + (alpha_init_libfuncs): Likewise. + (struct machine_function): Remove unicosmk members. + (print_operand) ['t']: Remove. + (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset, + unicosmk_output_module_name, unicosmk_output_common, + current_section_align, unicosmk_output_text_section_asm_op, + unicosmk_output_data_section_asm_op, unicosmk_init_sections, + unicosmk_section_type_flags, unicosmk_unique_section, + unicosmk_asm_named_section, unicosmk_insert_attributes, + unicosmk_output_align, unicosmk_defer_case_vector, + unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors, + SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib, + unicosmk_output_ssib, unicosmk_add_call_info_word, + unicosmk_extern_head, unicosmk_output_default_externs, + unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list, + unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex, + unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK. + * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove. + (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove. + (mulsi3): Don't test TARGET_ABI_UNICOSMK. + (*mulsi_se, mulvsi3): Likewise. + (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise. + (*divmodsi_internal, call, call_value, realign): Likewise. + (moddi3, umoddi3): Likewise; remove duplicate expander. + (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove. + (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove. + (*movdi_nofix): Remove r/U alternative. + (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove. + * config/alpha/constraints.md ("U"): Remove. + * config/alpha/predicates.md (call_operand"): Don't test + TARGET_ABI_UNICOSMK. + +2011-03-22 Joseph Myers + + * target.def (handle_option): Take gcc_options and + cl_decoded_option pointers and location_t. + * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation. + * doc/tm.texi: Regenerate. + * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove. + * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare. + * lto-opts.c (lto_reissue_options): Generate option structure for + targetm.handle_option call. + * opts.c (target_handle_option): Update call to + targetm.handle_option. Remove assertions about values now passed + down to hook. + * targhooks.c (default_target_handle_option): New. + * targhooks.h (default_target_handle_option): Declare. + * config/alpha/alpha.c: Include opts.h. + (alpha_handle_option): Update to new hook interface. + * config/arm/arm.c: Include opts.h. + (arm_handle_option): Update to new hook interface. + * config/arm/t-arm (arm.o): Update dependencies. + * config/bfin/bfin.c: Include opts.h. + (bfin_handle_option): Update to new hook interface. + * config/cris/cris.c: Include opts.h. + (cris_handle_option): Update to new hook interface. + * config/frv/frv.c: Include opts.h. + (frv_handle_option): Update to new hook interface. + * config/i386/i386.c: Include opts.h. + (ix86_handle_option): Update to new hook interface. + (ix86_valid_target_attribute_inner_p): Generate option structure + for call to ix86_handle_option. + * config/i386/t-i386 (i386.o): Update dependencies. + * config/ia64/ia64.c: Include opts.h. + (ia64_handle_option): Update to new hook interface. + * config/ia64/t-ia64 (ia64.o): Update dependencies. + * config/iq2000/iq2000.c: Include opts.h. + (iq2000_handle_option): Update to new hook interface. + * config/m32c/m32c.c: Include opts.h. + (m32c_handle_option): Update to new hook interface. + * config/m32r/m32r.c: Include opts.h. + (m32r_handle_option): Update to new hook interface. + * config/m68k/m68k.c: Include opts.h. + (m68k_handle_option): Update to new hook interface. + * config/mep/mep.c: Include opts.h. + (mep_handle_option): Update to new hook interface. + * config/microblaze/microblaze.c: Include opts.h. + (microblaze_handle_option): Update to new hook interface. + * config/mips/mips.c: Include opts.h. + (mips_handle_option): Update to new hook interface. + * config/mn10300/mn10300.c: Include opts.h. + (mn10300_handle_option): Update to new hook interface. + * config/pa/pa.c: Include opts.h. + (pa_handle_option): Update to new hook interface. + * config/pdp11/pdp11.c: Include opts.h. + (pdp11_handle_option): Update to new hook interface. + * config/rs6000/rs6000.c: Include opts.h. + (rs6000_handle_option): Update to new hook interface. + * config/rs6000/t-rs6000 (rs6000.o): Update dependencies. + * config/rx/rx.c: Include opts.h. + (rx_handle_option): Update to new hook interface. + * config/s390/s390.c: Include opts.h. + (s390_handle_option): Update to new hook interface. + * config/score/score.c: Include opts.h. + (score_handle_option): Update to new hook interface. + * config/sh/sh.c: Include opts.h. + (sh_handle_option): Update to new hook interface. + * config/sparc/sparc.c: Include opts.h. + (sparc_handle_option): Update to new hook interface. + * config/v850/v850.c: Include opts.h. + (v850_handle_option): Update to new hook interface. + +2011-03-22 Joseph Myers + + * gcc.c (driver_unknown_option_callback): Only permit and save + unknown -Wno- options. + (driver_wrong_lang_callback): Save options directly instead of via + driver_unknown_option_callback. + +2011-03-22 Eric Botcazou + + * combine.c (simplify_set): Try harder to find the best CC mode when + simplifying a nested COMPARE on the RHS. + +2011-03-22 Joseph Myers + + * config/alpha/gnu.h: Remove. + * config/arc: Remove directory. + * config/arm/netbsd.h: Remove. + * config/arm/t-pe: Remove. + * config/crx: Remove directory. + * config/i386/netbsd.h: Remove. + * config/m68hc11: Remove directory. + * config/m68k/uclinux-oldabi.h: Remove. + * config/mcore/mcore-pe.h: Remove. + * config/mcore/t-mcore-pe: Remove. + * config/netbsd-aout.h: Remove. + * config/rs6000/gnu.h: Remove. + * config/sh/sh-symbian.h: Remove. + * config/sh/symbian-base.c: Remove. + * config/sh/symbian-c.c: Remove. + * config/sh/symbian-cxx.c: Remove. + * config/sh/symbian-post.h: Remove. + * config/sh/symbian-pre.h: Remove. + * config/sh/t-symbian: Remove. + * config/svr3.h: Remove. + * config/vax/netbsd.h: Remove. + * config.build: Don't handle i[34567]86-*-pe. + * config.gcc: Remove handling of deprecations for most deprecated + targets. + (m68k-*-uclinuxoldabi*): Add to second deprecated list. + (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf, + i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*, + m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*, + powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*, + sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*): + Remove cases. + * config.host: Don't handle i[34567]86-*-pe. + * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove. + (ASM_SPEC32): Don't handle -mcall-gnu. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle + -mcall-gnu. + (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC, + STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu. + (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC, + LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove. + (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs. + * config/sh/sh-protos.h, config/sh/sh.c: Remove all code + conditional on SYMBIAN. + * configure.ac: Don't handle powerpc*-*-gnu*. + * configure: Regenerate. + * doc/extend.texi (interrupt attribute): Don't mention CRX. + * doc/install-old.texi (m6811, m6812): Don't mention. + * doc/install.texi (arc-*-elf*): Don't document multilib option. + (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove. + (m68k-uclinuxoldabi): Don't mention. + * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options): + Remove. + (-mcall-gnu): Remove. + * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12 + families): Remove constraint documentation. + +2011-03-22 Marius Strobl + + * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with... + (FBSD_TARGET_CPU_CPP_BUILTINS): ...this. + (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. + +2011-03-21 Michael Meissner + + PR target/48226 + * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a + vector when peeking at the next token for vector, don't expand the + keywords. + +2011-03-21 Georg-Johann Lay + + * config/avr/avr-protos.h (expand_epilogue): Change prototype + * config/avr/avr.h (struct machine_function): Add field sibcall_fails. + * config/avr/avr.c (init_cumulative_args) + (avr_function_arg_advance): Use it. + * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle + sibcall epilogues. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to... + (avr_function_ok_for_sibcall): ...this new function. + (avr_lookup_function_attribute1): New static Function. + (avr_naked_function_p, interrupt_function_p) + (signal_function_p, avr_OS_task_function_p) + (avr_OS_main_function_p): Use it. + * config/avr/avr.md ("sibcall", "sibcall_value") + ("sibcall_epilogue"): New expander. + ("*call_insn", "*call_value_insn"): New insn. + ("call_insn", "call_value_insn"): Remove + ("call", "call_value", "epilogue"): Change expander to handle + sibling calls. + +2011-03-21 Nick Clifton + + * doc/invoke.texi (Overall Options): Move closing brace to end of + options list. + (Optimization Options): Add missing @gol. + (Directory Options): Likewise. + (i386 and x86-64 Options): Likewise. + (RS6000 and PowerPC Options): Likewise. + (i386 and x86-64 Windows Options): Likewise. + (V850 Options): Add text missing from descriptions. + +2011-03-22 Richard Henderson + + * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New. + (avr_incoming_return_addr_rtx): New. + (emit_push_byte): New. + (expand_prologue): Use it. Remove incorrect dwarf annotation for + SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf + annotation for __prologue_saves__. Fixup dwarf annotation for CFA. + (emit_pop_byte): New. + (expand_epilogue): Use it. Pop frame pointer by bytes. + * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove. + (INCOMING_RETURN_ADDR_RTX): New. + (INCOMING_FRAME_SP_OFFSET): New. + (ARG_POINTER_CFA_OFFSET): New. + * config/avr/avr.md (*pushqi): Fix mode of auto-inc. + (*pushhi, *pushsi, *pushsf, popqi): Likewise. + (pophi): Remove. + + * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec. + +2011-03-22 Nathan Froyd + + * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. + (FUNCTION_ARG_ADVANCE): Likewise. + * tm.texi.in: Change references to them to hook references. + * tm.texi: Regenerate. + * targhooks.c (default_function_arg): Eliminate check for target + macro. + (default_function_incoming_arg): Likewise. + (default_function_arg_advance): Likewise. + * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. + (function_arg_advance): Likewise. + * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. + +2011-03-22 Nathan Froyd + + * tree.c (build_call_1): New function. + (build_call_valist, build_call_array_loc, build_call_vec): Call it. + +2011-03-22 Richard Guenther + + PR tree-optimization/48228 + * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating + for single-arg PHIs. + +2011-03-22 Andrey Belevantsev + + PR rtl-optimization/48143 + * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute. + (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps, + sse2_cvtps2pd): Likewise. + +2011-03-22 Andreas Krebbel + + * recog.c (canonicalize_change_group): Use validate_unshare_change. + +2011-03-22 Richard Guenther + + * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not + a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary. + * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR + and REALIGN_LOAD_EXPR. + (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC, + DOT_PROD_EXPR or REALIGN_LOAD_EXPR. + * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and + DOT_PROD_EXPR case ... + (expand_expr_real_2): ... here. + * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR + and REALIGN_LOAD_EXPR. + * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs. + * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries. + (vect_create_epilog_for_reduction): Likewise. + (vectorizable_reduction): Likewise. + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust. + * tree-vect-stmts.c (vectorizable_load): Likewise. + +2011-03-22 Eric Botcazou + + * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions. + +2011-03-22 Andreas Krebbel + + * config/s390/s390.c (s390_delegitimize_address): Fix offset + handling for PLTOFF/GOTOFF. + +2011-03-22 Nick Clifton + + * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove + trailing backslash from the end of the macro definition. + +2011-03-22 Andreas Krebbel + + * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF + and PLT unspecs. + +2011-03-21 Richard Sandiford + + * expr.h (prepare_operand): Move to... + * optabs.h (prepare_operand): ...here and change the insn code + parameter from "int" to "enum insn_code". + (insn_operand_matches): Declare. + * expr.c (init_expr_target): Use insn_operand_matches. + (compress_float_constant): Likewise. + * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise. + * optabs.c (can_compare_p, prepare_cmp_insn): Likewise. + (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise. + (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn): + Likewise. + (gen_cond_trap): Likewise. + (prepare_operand): Likewise. Change icode to an insn_code. + (insn_operand_matches): New function. + * reload.c (find_reloads_address_1): Use insn_operand_matches. + * reload1.c (gen_reload): Likewise. + * targhooks.c (default_secondary_reload): Likewise. + +2011-03-21 Uros Bizjak + + * config/alpha/alpha.md (unspec): New define_c_enum. + (unspecv): Ditto. + +2011-03-21 Uros Bizjak + + PR debug/48214 + * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop + between a call and its CALL_ARG_LOCATION note. + +2011-03-21 Eric Botcazou + + * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag. + +2011-03-21 Jakub Jelinek + + PR c/42544 + PR c/48197 + * c-common.c (shorten_compare): If primopN is first sign-extended + to opN and then zero-extended to result type, set primopN to opN. + +2011-03-21 Daniel Jacobowitz + + * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test + for barrier handlers. + +2011-03-21 Michael Meissner + + * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all + UNSPEC constants to be in the unspec enumeration, and redefine + all UNSPECV constants to be in the unspecv enumeration, so that + dumps print which unspec/unspec_volatile this is. + * config/rs6000/vector.md (UNSPEC_*): Ditto. + * config/rs6000/paired.md (UNSPEC_*): Ditto. + * config/rs6000/vsx.md (UNSPEC_*): Ditto. + * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto. + * config/rs6000/dfp.md (UNSPEC_*): Ditto. + + * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename + UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and + UNSPECV_LWSYNC, since these are used as unspec_volatile. + * config/rs6000/sync.md (isync, lwsync): Ditto. + +2011-03-21 Richard Guenther + + * params.def (lto-min-partition): Fix typo. + +2011-03-21 Richard Guenther + + PR c/47939 + * c-decl.c (grokdeclarator): Drop to the main variant only + for array types. Drop flag_gen_aux_info check. + +2011-03-21 Richard Guenther + + PR translation/47911 + * params.def (lto-partitions): Fix typo. + (lto-min-partition): Fix wording. + +2011-03-21 Andreas Tobler + + * config/rs6000/t-freebsd: Remove duplication from file. + +2011-03-21 Richard Guenther + + PR middle-end/47661 + * gimple.c (is_gimple_condexpr): Use tree_could_throw_p. + +2011-03-21 Richard Guenther + + PR lto/48210 + * params.def (lto-partitions): Require at least 1 partition. + +2011-03-21 Rainer Orth + + * gthr-solaris.h: Remove. + * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove. + * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support. + (LIB_SPEC): Likewise. + * config/sol2.opt (threads): Remove. + * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support. + (sparc*-*-solaris2*): Likewise. + * configure.ac (enable_threads): Enable solaris support. + * configure: Regenerate. + * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads. + * doc/install.texi (Configuration, --enable-threads=lib): Remove + solaris. + +2011-03-21 Rainer Orth + + * config.gcc: Obsolete *-*-solaris2.8*. + * doc/install.texi (Specific, *-*-solaris2*): Document it. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * doc/install.texi (Prerequisites, Perl): Remove Glob.pm + reference. Solaris 8 perl works. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * doc/install.texi (Prerequisites): Move jar etc. up. + Explain support library version requirements. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * doc/install.texi (Prerequisites): Move Perl to build + requirements. Always necessary on Solaris 2 with Sun ld. + +2011-03-21 Rainer Orth + + * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for + binutils 2.21. + (Specific, i?86-*-solaris2.[89]): Likewise. + (Specific, i?86-*-solaris2.10): Likewise. + (Specific, mips-sgi-irix6): Likewise. + (Specific, *-*-solaris2*): Remove Sun Studio download URL. + Update for binutils 2.21. + +2011-03-21 Rainer Orth + + * configure.ac (gcc_cv_lto_plugin): Fix typo. + Allow -fuse-linker-plugin for non-default plugin linker. + * configure: Regenerate. + +2011-03-21 Nicola Pero + + PR bootstrap/48167 + * gengtype.c (files_rules): Added rule for cp/parser.h. + +2011-03-21 Jakub Jelinek + + PR target/48213 + * config/s390/s390.c (s390_delegitimize_address): Don't call + lowpart_subreg if orig_x has BLKmode. + +2011-03-21 Kai Tietz + + PR target/12171 + * doc/plugins.texi: Adjust documentation for plugin register_callback. + * tree.h (attribute_spec): Add new member affects_type_identity. + * attribs.c (empty_attribute_table): Adjust attribute_spec + initializers. + * config/alpha/alpha.c: Likewise. + * config/arc/arc.c: Likewise. + * config/arm/arm.c: Likewise. + * config/avr/avr.c: Likewise. + * config/bfin/bfin.c: Likewise. + * config/crx/crx.c: Likewise. + * config/darwin.h: Likewise. + * config/h8300/h8300.c: Likewise. + * config/i386/cygming.h: Likewise. + * config/i386/i386.c: Likewise. + * config/ia64/ia64.c: Likewise. + * config/m32c/m32c.c: Likewise. + * config/m32r/m32r.c: Likewise. + * config/m68hc11/m68hc11.c: Likewise. + * config/m68k/m68k.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mep/mep.c: Likewise. + * config/microblaze/microblaze.c: Likewise. + * config/mips/mips.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rx/rx.c: Likewise. + * config/sh/sh.c: Likewise. + * config/sol2.h: Likewise. + * config/sparc/sparc.c: Likewise. + * config/spu/spu.c: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/v850/v850.c: Likewise. + +2011-03-21 Chung-Lin Tang + + * simplify-rtx.c (simplify_binary_operation_1): Handle + (xor (and A B) C) case when B and C are both constants. + +2011-03-21 Mingjie Xing + + * tree-dfa.c (add_referenced_var): Fix typo in comment. + +2011-03-20 Eric Botcazou + + PR bootstrap/48168 + * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern. + +2011-03-20 Jakub Jelinek + + PR rtl-optimization/48156 + * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL, + assume df and df_lr are not NULL. + +2011-03-20 Ramana Radhakrishnan + + PR debug/48023 + * config/arm/arm.c (create_fix_barrier): Do not emit a minipool + between a call and its CALL_ARG_LOCATION note. + +2011-03-19 Kaz Kojima + + PR debug/48178 + * config/sh/sh.c (find_barrier): Don't emit a constant pool + between a call and its corresponding CALL_ARG_LOCATION note. + +2011-03-19 Anatoly Sokolov + + * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range + instead of loop. Use HARD_REGISTER_NUM_P predicate. + * haifa-sched.c (setup_ref_regs): Ditto. + * caller-save.c (add_used_regs_1): Ditto. + * dse.c (look_for_hardregs): Ditto. + * df-problems.c (df_simulate_one_insn_forwards): Ditto. + * sched-rgn.c (check_live_1): Ditto. + +2011-03-18 Joseph Myers + + * c-decl.c (diagnose_mismatched_decls): Give an error for + redefining a typedef with variably modified type. + +2011-03-18 Joseph Myers + + * c-decl.c (grokfield): Don't allow typedefs for structures or + unions with no tag by default. + * doc/extend.texi (Unnamed Fields): Update. + +2011-03-18 Uros Bizjak + + * config/i386/i386.md (float2): + Rewrite using indirect functions. + (lwp_slwpcb): Ditto. + * config/i386/sse.md (avx_vextractf128): Ditto. + (avx_vinsertf128): Ditto. + +2011-03-18 Andreas Krebbel + + * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF + unspecs. + +2011-03-18 Andreas Krebbel + + * config/s390/s390.c (s390_chunkify_start): Prevent literal pool + splitting between a call and its corresponding CALL_ARG_LOCATION note. + +2011-03-18 Maxim Kuvyrkov + + PR rtl-optimization/48170 + * gcse.c (hoist_code): Remove bogus asserts. + +2011-03-18 Georg-Johann Lay + + * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost + computation for prologue/epilogue. + +2011-03-18 Rainer Orth + + * Makefile.in (check-consistency): Remove. + +2011-03-18 Jakub Jelinek + + PR debug/48176 + * dwarf2out.c (dwarf2out_finish): Call output_aranges even when + arange_table_in_use is 0, but either text_section_used or + cold_text_section_used is true. Don't call it if + !info_section_emitted. + +2011-03-18 Anatoly Sokolov + + * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE, + FUNCTION_VALUE_REGNO_P): Remove. + * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value): + Remove. + * config/avr/avr.c (avr_ret_register): Make static inline. + (avr_function_value_regno_p): New function. + (avr_libcall_value): Make static. Add 'func' argument. + (avr_function_value): Make static. Rename 'func' argument to + 'fn_decl_or_type', forward it to avr_libcall_value. Call + avr_ret_register function instead of RET_REGISTER macro. + (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. + +2011-03-18 Jason Merrill + + PR c++/23372 + * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR. + +2011-03-18 Richard Guenther + + * doc/install.texi (--enable-gold): Remove. + (--with-plugin-ld): Document. + * doc/invoke.texi (-fuse-linker-plugin): Clarify. + +2011-03-18 Andrew Pinski + + PR middle-end/47790 + * expr.c (optimize_bitfield_assignment_op): Revamp to work + again after expansion changes. + +2011-03-18 Chung-Lin Tang + + * combine.c (try_combine): Do simplification only call of + subst() on i2 even when i1 is present. Update comments. + +2011-03-18 Kaz Kojima + + * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF + and UNSPEC_PCREL_SYMOFF. + +2011-03-18 Andreas Krebbel + + * config/s390/s390.md: Use define_c_enum for the unspec constant + definitions. + +2011-03-18 Richard Henderson + Jakub Jelinek + + PR bootstrap/48161 + * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary + instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER. + +2011-03-17 Anatoly Sokolov + + * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove. + * config/v850/v850.c (v850_output_addr_const_extra): Make static. + Change return type to bool. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + +2011-03-17 Jakub Jelinek + + PR debug/48163 + * var-tracking.c (prepare_call_arguments): If CALL target + is a non-SYMBOL_REF CONSTANT_P, just add that into the list as + pc instead of looking it up using cselib_lookup and use + Pmode for it if x has VOIDmode. + * dwarf2out.c (gen_subprogram_die): If also both first and + second CONCAT arguments are VOIDmode, use mode of CONCAT itself. + + PR debug/48163 + * function.c (assign_parms): For data.passed_pointer parms + use MEM of data.entry_parm instead of data.entry_parm itself + as DECL_INCOMING_RTL. + * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL + also when passed and declared mode is the same, DECL_RTL + is a MEM with pseudo as address and DECL_INCOMING_RTL is + a MEM too. + +2011-03-16 Jeff Law + + PR rtl-optimization/37273 + * ira-costs.c (scan_one_insn): Detect constants living in memory and + handle them like argument loads from stack slots. Do not double + count memory for memory constants and argument loads from stack slots. + +2011-03-17 H.J. Lu + + PR debug/48160 + * var-tracking.c (prepare_call_arguments): Check SUBREG. + +2011-03-17 H.J. Lu + + PR target/48171 + * config/i386/i386.opt: Add Save to -mavx and -mfma. + +2011-03-17 Jakub Jelinek + + PR bootstrap/48153 + * dwarf2out.c (mem_loc_descriptor) : Return NULL + if dwarf_strict. + (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict. + Clear call_arg_locations and call_arg_loc_last always. + + PR middle-end/48152 + * var-tracking.c (prepare_call_arguments): If argument needs to be + passed by reference, adjust argtype and mode. + +2011-03-17 Richard Guenther + + PR middle-end/48134 + * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated + a value make sure to fold the statement. + +2011-03-17 Chung-Lin Tang + + PR target/43872 + * config/arm/arm.c (arm_get_frame_offsets): Adjust early + return condition with !cfun->calls_alloca. + +2011-03-17 Richard Guenther + + PR bootstrap/48148 + * lto-cgraph.c (input_overwrite_node): Clear the abstract + origin for decls in other ltrans units. + (input_varpool_node): Likewise. + +2011-03-17 Richard Guenther + + PR middle-end/48165 + * tree-object-size.c (compute_object_offset): Properly return + the offset operand of MEM_REFs as sizetype. + +2011-03-17 Jakub Jelinek + + PR rtl-optimization/48141 + * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New. + * dse.c: Include params.h. + (active_local_stores_len): New variable. + (add_wild_read, dse_step1): Clear it when setting active_local_stores + to NULL. + (record_store, check_mem_read_rtx): Decrease it when removing + from the chain. + (scan_insn): Likewise. Increase it when adding to chain, if it + reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and + set active_local_stores to NULL before the addition. + * Makefile.in (dse.o): Depend on $(PARAMS_H). + + PR rtl-optimization/48141 + * dse.c (record_store): If no positions are needed in an insn + that cannot be deleted, at least unchain it from active_local_stores. + +2011-03-16 Dodji Seketeli + + PR debug/47510 + * dwarf2out.c (strip_naming_typedef): Factorize out of ... + (lookup_type_die_strip_naming_typedef): ... here. + (get_context_die): Use it. + (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to + the anonymous struct named by the naming typedef. + +2011-03-16 H.J. Lu + + PR target/48154 + * config/i386/i386.c (ix86_builtin_vectorized_function): Check + TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins. + +2011-03-16 Jeff Law + + * tree-vrp.c (identify_jump_threads): Slightly simplify type + check for operands of conditional. Allow type to be a pointer. + +2011-03-16 Richard Guenther + + PR tree-optimization/48149 + * fold-const.c (fold_binary_loc): Fold + COMPLEX_EXPR , IMAGPART_EXPR >. + +2011-03-16 Richard Guenther + + PR tree-optimization/26134 + * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting + complex part accesses to REALPART_EXPR and IMAGPART_EXPR. + (non_rewritable_mem_ref_base): Handle complex type component + accesses, constrain offsets for vector and complex extracts + more properly. + +2011-03-16 Richard Guenther + + PR tree-optimization/48146 + * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual + operands avoiding the need for renaming. + +2011-03-16 Richard Guenther + + * gimple-fold.c (maybe_fold_reference): Open-code relevant + constant folding. Move MEM_REF canonicalization first. + Rely on fold_const_aggregate_ref for initializer folding. + * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts. + +2011-03-16 Jakub Jelinek + + PR middle-end/48136 + * fold-const.c (fold_binary_loc) : Make sure + arg0/arg1 or their arguments are always fold converted to matching + types. + + * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED + to nargs. + +2011-03-16 Rainer Orth + + PR lto/46944 + * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor): + Handle in-tree gold. + (ld_vers): Extract binutils version for gold. + (gcc_cv_ld_hidden): Handle gold here. + (gcc_cv_lto_plugin): Determine level of linker plugin support. + * configure: Regenerate. + * config.in: Regenerate. + * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject + -fuse-linker-plugin otherwise. + (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC. + (LINK_COMMAND_SPEC): Use it. + (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0. + +2011-03-16 Jakub Jelinek + + * emit-rtl.c (try_split): Don't call copy_call_info debug hook. + * calls.c: Remove debug.h include. + (emit_call_1): Don't call virtual_call_token debug hook. + * dwarf2out.c (debug_dcall_section, debug_vcall_section, + dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn, + vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION, + size_of_dcall_table, output_dcall_table, size_of_vcall_table, + output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash, + vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn, + dwarf2out_virtual_call_token, dwarf2out_copy_call_info, + dwarf2out_virtual_call): Remove. + (dwarf2_debug_hooks): Remove direct_call, virtual_call_token, + copy_call_info and virtual_call hooks. + (dwarf2out_init): Don't initialize vcall_insn_table, + debug_dcall_section and debug_vcall_section. + (prune_unused_types): Don't mark nodes from dcall_table. + (dwarf2out_finish): Don't output dcall or vcall tables. + * final.c (final_scan_insn): Don't call direct_call or + virtual_call debug hooks. + * debug.h (struct gcc_debug_hooks): Remove direct_call, + virtual_call_token, copy_call_info and virtual_call hooks. + (debug_nothing_uid): Remove prototype. + * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token, + copy_call_info and virtual_call hooks. + * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. + * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. + * debug.c (do_nothing_debug_hooks): Likewise. + (debug_nothing_uid): Remove. + * doc/invoke.texi (-fenable-icf-debug): Remove. + * common.opt (-fenable-icf-debug): Likewise. + + * calls.c (emit_call_1): Set MEM_EXPR on call's MEM. + * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on + call's MEM. Handle functions returning aggregate through a hidden + first pointer. For virtual calls add clobbered pc to call arguments + chain. + * dwarf2out.c (gen_subprogram_die): Emit + DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target + can't be emitted. + + PR debug/45882 + * rtl.def (ENTRY_VALUE): Change format from "e" to "0". + * rtl.h (ENTRY_VALUE_EXP): Define. + * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE. + * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise. + * print-rtl.c (print_rtx): Likewise. + * gengtype.c (adjust_field_rtx_def): Likewise. + * var-tracking.c (vt_add_function_parameter): Adjust + gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro. + * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro. + * cfgexpand.c (expand_debug_expr): If a SSA_NAME without + partition is a default definition of a PARM_DECL, use ENTRY_VALUE + of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set. + + * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. + Call var_location debug hook even on CALL_INSNs. + (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION. + * rtl.def (ENTRY_VALUE): New. + * dwarf2out.c: Include cfglayout.h. + (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, + output_loc_operands_raw): Handle DW_OP_GNU_entry_value. + (struct call_arg_loc_node): New type. + (call_arg_locations, call_arg_loc_last, block_map, call_site_count, + tail_call_site_count): New variables. + (dwarf_tag_name): Handle DW_TAG_GNU_call_site and + DW_TAG_GNU_call_site_parameter. + (dwarf_attr_name): Handle DW_AT_GNU_call_site_value, + DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, + DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, + DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites + and DW_AT_GNU_all_source_call_sites. + (mem_loc_descriptor): Handle ENTRY_VALUE. + (add_src_coords_attributes): Don't add enything if + DECL_SOURCE_LOCATION is UNKNOWN_LOCATION. + (dwarf2out_abstract_function): Save and clear call_arg_location, + call_site_count and tail_call_site_count around dwarf2out_decl call. + (gen_call_site_die): New function. + (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites. + (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map. + (dwarf2out_function_decl): Clear call_arg_locations, + call_arg_loc_last, set call_site_count and tail_call_site_count + to -1 and free block_map. + (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and + CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not + followed by any real instructions. + (dwarf2out_begin_function): Set call_site_count and + tail_call_site_count to 0. + (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site + is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL + attempt to force a DIE for it and worst case remove the attribute. + (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs + check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of + the decl itself. + * var-tracking.c: Include tm_p.h. + (vt_stack_adjustments): For calls call note_register_arguments. + (argument_reg_set): New variable. + (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set + ensure the VALUE is resolved. + (call_arguments): New variable. + (prepare_call_arguments): New function. + (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it. + (struct expand_loc_callback_data): Add ignore_cur_loc field. + (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and + always use the best expression. + (vt_expand_loc): Add ignore_cur_loc argument. + (vt_expand_loc_dummy): Clear ignore_cur_loc field. + (emit_note_insn_var_location): Adjust vt_expand_loc callers. + (emit_notes_in_bb) : Add NOTE_INSN_CALL_ARG_LOCATION + note for all calls. + (vt_add_function_parameter): Use cselib_lookup_from_insn. + If dv is a VALUE, enter into hash table also ENTRY_VALUE for the + argument. Don't call cselib_preserve_only_values and + cselib_reset_table. + (note_register_arguments): New function. + (vt_initialize): Compute argument_reg_set. Call + vt_add_function_parameters before processing basic blocks instead of + afterwards. For calls call prepare_call_arguments before calling + cselib_process_insn. + * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION. + * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H). + (var-tracking.o): Depend on $(TM_P_H). + * cfglayout.h (insn_scope): New prototype. + * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION. + * cfglayout.c (insn_scope): No longer static. + * insn-notes.def (CALL_ARG_LOCATION): New. + * calls.c (expand_call, emit_library_call_value_1): Put USEs for + MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally. + * integrate.c (set_block_origin_self, set_block_abstract_flags): Do + nothing for DECL_EXTERNAL BLOCK_VARS. + +2011-03-16 Alan Modra + + PR target/45844 + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't + create invalid offset address for vsx splat insn. + * config/rs6000/predicates.md (splat_input_operand): New. + * config/rs6000/vsx.md (vsx_splat_*): Use it. + +2011-03-15 Xinliang David Li + + PR c/47837 + * tree-ssa-uninit.c (pred_chain_length_cmp): New function. + (normalize_preds): New function. + (is_use_properly_guarded): Normalize def predicates. + +2011-03-15 Ramana Radhakrishnan + + PR target/46788 + * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c' + in the output template. + +2011-03-15 Richard Guenther + + PR middle-end/47650 + * tree-pretty-print.c (dump_function_declaration): Properly + dump unprototyped and varargs function types. + +2011-03-15 Richard Guenther + + PR tree-optimization/13954 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy + and friends. + +2011-03-15 Richard Guenther + + PR tree-optimization/48037 + * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector + selects into BIT_FIELD_REFs. + (non_rewritable_mem_ref_base): Check if a MEM_REF is a + vector select. + +2011-03-15 Jakub Jelinek + + PR tree-optimization/48129 + * builtins.c (fold_builtin_snprintf): Convert to type of + built_in_decls[BUILT_IN_SNPRINTF] retval instead of + implicit_built_in_decls[BUILT_IN_SNPRINTF] retval. + +2011-03-15 Richard Guenther + + PR tree-optimization/41490 + * tree-ssa-dce.c (propagate_necessity): Handle returns without + value but with VUSE. + * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all + return statements. + * tree-ssa-sink.c (statement_sink_location): Fix store sinking. + * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs. + * tree-tailcall.c (find_tail_calls): Ignore returns. + +2011-03-15 Richard Guenther + + PR middle-end/48031 + * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized + or variable-indexed array accesses when in gimple form. + +2011-03-15 Richard Guenther + + * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently. + +2011-03-15 Alan Modra + + PR target/48032 + * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not + presume symbol_refs without a symbol_ref_decl are suitably + aligned, nor other trees we may see here. Handle anchor symbols. + (legitimate_constant_pool_address_p): Comment. Add mode param. + Check cmodel=medium addresses. Adjust all calls. + (rs6000_emit_move): Don't call offsettable_ok_by_alignment on + creating cmodel=medium optimized access to locals. + * config/rs6000/constraints.md (R): Pass QImode to + legitimate_constant_pool_address_p. + * config/rs6000/predicates.md (input_operand): Pass mode to + legitimate_constant_pool_address_p. + * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p): + Update prototype. + +2011-03-14 Michael Meissner + + PR target/48053 + * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up + 64-bit constants being loaded into registers other than GPRs such + as loading 0 into a VSX register. + +2011-03-14 Rainer Orth + + * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs. + +2011-03-14 Jakub Jelinek + + PR middle-end/47917 + * builtins.c (fold_builtin_snprintf): New function. + (fold_builtin_3): Call it for BUILT_IN_SNPRINTF. + (fold_builtin_4): Likewise. + + PR middle-end/38878 + * fold-const.c (fold_binary_loc) : Add + STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X + and C - X == X also strip nops from +/-/p+ operand. + When optimizing -X == C, fold C to arg0's type. + + PR debug/47946 + * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative, + emit it as add_AT_int instead of add_AT_unsigned. + +2011-03-14 Tom Tromey + + * unwind-dw2.c: Include sys/sdt.h if it exists. + (_Unwind_DebugHook): Use STAP_PROBE2. + * config.in, configure: Rebuild. + * configure.ac: Check for sys/sdt.h. + +2011-03-14 Uros Bizjak + + * config/i386/i386.md (ROUND_FLOOR): New constant. + (ROUND_CEIL): Ditto. + (ROUND_TRUNC): Ditto. + (ROUND_MXCSR): Ditto. + (ROUND_NO_EXC): Ditto. + (rint2): Use new defines instead of numerical constants. + (floor2): Ditto. + (ceil2): Ditto. + (btrunc2): Ditto. + * config/i386/i386-builtin-types.def: Define ROUND function type + aliases. + * config/i386/i386.c (enum ix86_builtins): Add + IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines. + (struct builtin_description): Add + __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions. + (ix86_expand_sse_round): New static function. + (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND + function types. + (ix86_builtin_vectorized_function): Handle + BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins. + +2011-03-14 Tom Tromey + + * c-parser.c (c_parser_asm_string_literal): Clear + warn_overlength_strings. + +2011-03-14 Tom Tromey + + * c-parser.c (disable_extension_diagnostics): Save + warn_overlength_strings. + (restore_extension_diagnostics): Restore warn_overlength_strings. + +2011-03-14 Jakub Jelinek + + * BASE-VER: Change to 4.7.0. + +2011-03-14 Richard Guenther + + PR middle-end/48098 + * tree.c (build_vector_from_val): Adjust assert to requirements + and reality. + +2011-03-14 Jakub Jelinek + + PR bootstrap/48102 + * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter. + +2011-03-14 Andreas Tobler + + * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in + terms of target_flags_explicit. Adjust copyright year. + + * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits. + * config/rs6000/t-freebsd: New file. Add override for + LIB2FUNCS_EXTRA. + +2011-03-13 Chris Demetriou + + * doc/invoke.texi (-fdiagnostics-show-option): Replace with... + (-fno-diagnostics-show-option): this, to reflect current default. + (-Werror=): Update text about -fno-diagnostics-show-option. + +2011-03-12 Peter Bergner + + PR target/48053 + * config/rs6000/predicates.md (easy_vector_constant_add_self, + easy_vector_constant_msb): Do not handle V2DImode and V2DFmode. + * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that + mode is not V2DImode or V2DFmode. + (vspltis_constant): Do not handle V2DImode and V2DFmode. + (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg. + * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX + registers to 0. + (movdi_internal64): Likewise. + +2011-03-12 Sebastian Pop + + PR tree-optimization/47127 + * graphite-clast-to-gimple.c (build_cloog_prog): Removed state + parameter. + (set_cloog_options): Same. + (scop_to_clast): Same. + (print_clast_stmt): Do not call cloog_state_malloc and + cloog_state_free. + (print_generated_program): Same. + (gloog): Same. + * graphite-clast-to-gimple.h (cloog_state): Declared. + (scop_to_clast): Adjust declaration. + * graphite.c (cloog_state): Defined here. + (graphite_initialize): Call cloog_state_malloc. + (graphite_finalize): Call cloog_state_free. + +2011-03-11 Jason Merrill + + * attribs.c (lookup_attribute_spec): Take const_tree. + * tree.h: Adjust. + +2011-03-11 Joseph Myers + + * config/sparc/sparc.c (sparc_option_override): Use + PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2". + +2011-03-11 Richard Guenther + + PR tree-optimization/48067 + * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the + multiplication result will be only used once on the target + stmt. + +2011-03-11 Richard Guenther + + * doc/invoke.texi (max-inline-insns-single): Adjust default value. + +2011-03-11 Richard Guenther + + PR lto/48073 + * tree.c (find_decls_types_r): Do not walk types only reachable + from IDENTIFIER_NODEs. + +2011-03-11 Jakub Jelinek + + PR middle-end/48044 + * ipa.c (cgraph_remove_unreachable_nodes): Enqueue + all vnode->force_output nodes as needed. + +2011-03-11 Jason Merrill + + PR c++/48069 + * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not + COMPLETE_OR_UNBOUND_ARRAY_TYPE_P. + +2011-03-11 Martin Jambor + + * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of + cgraph_node. + +2011-03-11 Jakub Jelinek + + PR tree-optimization/48063 + * ipa-inline.c (cgraph_decide_inlining): Don't try to + inline functions called once if !tree_can_inline_p (node->callers). + +2011-03-11 Chen Liqin + + * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and + extra_objs. + * config/score/score3.c: Delete. + * config/score/score3.h: Delete. + * config/score/mul-div.S: Delete. + * config/score/sfp-machine.h: Add new file. + * config/score/constraints.md: Add new file. + * config/score/t-score-softfp: Add new file. + * config/score/t-score-elf: Remove score3.o, do not generate multilib. + * config/score/score7.c (score7_const_ok_for_letter_p): Delete. + (score7_extra_constraint): Delete. + (score7_option_override): Remove unused code. + * config/score/score.c: Remove score3 and score5 define and code. + * config/score/score.h: Remove score3 and score5 define and code. + * config/score/score.md: Remove score3 template and unusual insn. + * config/score/score.opt: Remove score3 and score5 options. + +2011-03-10 John David Anglin + + * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT + when _HPUX_SOURCE is defined. + (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified. + +2011-03-10 Jason Merrill + + PR c++/48029 + * stor-layout.c (layout_type): Don't set structural equality + on arrays of incomplete type. + * tree.c (type_hash_eq): Handle comparing them properly. + +2011-03-10 Jakub Jelinek + + PR debug/48043 + * config/s390/s390.c (s390_delegitimize_address): Make sure the + result mode matches original rtl mode. + +2011-03-10 Nick Clifton + + * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings. + (andsi3, andsi3_flags): Fix timings for three operand alternative. + +2011-03-09 Jakub Jelinek + + PR rtl-optimization/47866 + * expr.c (store_field): If MEM_SCALAR_P (target), don't use + MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx) + if target wasn't scalar. + * function.c (assign_stack_temp_for_type): Assert that neither + MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either + MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P + macro. + * rtl.h (MEM_SET_IN_STRUCT_P): Removed. + +2011-03-09 Andreas Krebbel + + * config/s390/s390-protos.h (s390_label_align): New prototype. + * config/s390/s390.c (s390_label_align): New function. + * config/s390/s390.h (LABEL_ALIGN): New target macro definition. + +2011-03-08 Michael Meissner + + PR target/47755 + * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle + V2DI/V2DF constants. Only all 0's or all 1's are easy. + (output_vec_const_move): Ditto. + +2011-03-08 Anatoly Sokolov + + * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro. + * config/mips/mips-protos.h (mips_preferred_reload_class): Remove. + * config/mips/mips.c (mips_preferred_reload_class): Make static. + Change 'rclass' argument and result type to reg_class_t. + (TARGET_PREFERRED_RELOAD_CLASS): Define. + +2011-03-08 Georg-Johann Lay + + * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/avr/avr.c (TARGET_REGISTER_MOVE_COST) + (TARGET_MEMORY_MOVE_COST): Define. + (avr_register_move_cost, avr_memory_move_cost): New Functions. + +2011-03-08 Jakub Jelinek + + PR debug/47881 + * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns + removed anything. + + PR tree-optimization/48022 + * fold-const.c (fold_comparison): Don't call fold_overflow_warning + for EQ/NE_EXPR. + +2011-03-07 Jakub Jelinek + + PR debug/47991 + * var-tracking.c (find_use_val): Return NULL for + cui->sets && cui->store_p BLKmode MEMs. + +2011-03-07 Anatoly Sokolov + + * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): + Remove. + * config/stormy16/stormy16-protos.h (xstormy16_print_operand, + xstormy16_print_operand_address): Remove. + * config/stormy16/stormy16.c (xstormy16_print_operand, + xstormy16_print_operand_address): Make static. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. + +2011-03-07 Pat Haugen + + PR target/47862 + * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define. + * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine + before definition. + +2011-03-07 Zdenek Dvorak + + PR bootstrap/48000 + * cfgloopmanip.c (fix_bb_placements): Return immediately + if FROM is BASE_LOOP's header. + +2011-03-07 Paul Wögerer + + * gimplify.c (gimplify_function_tree): Fix building calls + to __builtin_return_address. + +2011-03-07 Alan Modra + + * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define. + * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define. + * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define. + * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and + return_mode args. + * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes". + (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode. + (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode. + (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE. + * config/rs6000/rs6000.c + (rs6000_elf_end_indicate_exec_stack): Rename to.. + (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack + for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from.. + (rs6000_file_start): ..here. + (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New + file scope variables. + (call_ABI_of_interest): New function. + (init_cumulative_args): Set above vars when function return value + is a float, vector, or small struct. + (rs6000_function_arg_advance_1): Likewise for function args. + (rs6000_va_start): Set rs6000_passes_float if variable arg function + references float args. + +2011-03-07 Mingjie Xing + + * doc/cfg.texi: Remove "See" before @ref. + * doc/invoke.texi: Likewise. + +2011-03-05 Jason Merrill + + * doc/invoke.texi (C++ Dialect Options): Document ABI v5. + +2011-03-05 Anthony Green + + * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile. + +2011-03-05 Zdenek Dvorak + + PR rtl-optimization/47899 + * cfgloopmanip.c (fix_bb_placements): Fix first argument + to flow_loop_nested_p when moving the loop upward. + +2011-03-05 Richard Earnshaw + + PR target/47719 + * arm.md (movhi_insn_arch4): Accept any immediate constant. + +2011-03-05 Jakub Jelinek + + PR tree-optimization/47967 + * ipa-cp.c (build_const_val): Return NULL instead of creating + VIEW_CONVERT_EXPR for mismatching sizes. + (ipcp_create_replace_map): Return NULL if build_const_val failed. + (ipcp_insert_stage): If ipcp_create_replace_map returns NULL, + give up on versioning. + +2011-03-05 Alan Modra + + PR target/47986 + * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle + full cmodel medium/large lo_sum + high addresses. + +2011-03-04 Andreas Krebbel + + * config/s390/s390.c (s390_decompose_address): Reject non-literal + pool references in UNSPEC_LTREL_OFFSET. + +2011-03-04 Jan Hubicka + + PR lto/47497 + * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias. + (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here. + * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): + Add node pointers. + * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias, + cgraph_add_thunk): Add node pointers. + * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are + associated to right node. + (input_node): Update use of cgraph_same_body_alias + and cgraph_add_thunk. + +2011-03-04 Changpeng Fang + + * config/i386/i386.opt (mprefer-avx128): New flag. + * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX + modes when the flag -mprefer-avx128 is on. + +2011-03-04 Richard Sandiford + + * dwarf2out.c (compare_loc_operands): Fix address handling. + +2011-03-04 Alan Modra + + * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment. + +2011-03-04 Richard Guenther + + PR middle-end/47968 + * expmed.c (extract_bit_field_1): Prefer vector modes that + vec_extract patterns can handle. + +2011-03-04 Richard Guenther + + PR middle-end/47975 + * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P. + +2011-03-04 Richard Henderson + + * explow.c (emit_stack_save): Remove 'after' parameter. + (emit_stack_restore): Likewise. + * expr.h: Update to match. + * builtins.c, calls.c, stmt.c: Likewise. + * config/alpha/alpha.md, config/avr/avr.md: Likewise. + * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise. + * function.c (expand_function_end): Insert the emit_stack_save + sequence before parm_birth_insn instead of after. + +2011-03-03 Uros Bizjak + + * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX. + (ssse3_pmaddubsw128): Ditto. + (ssse3_pmaddubsw): Ditto. + +2011-03-03 Steve Ellcey + + * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH + +2011-03-03 Jakub Jelinek + + PR c/47963 + * gimplify.c (omp_add_variable): Only call omp_notice_variable + on TYPE_SIZE_UNIT if it is a DECL. + + PR debug/47283 + * cfgexpand.c (expand_debug_expr) : If MEM_REF + first operand is not is_gimple_mem_ref_addr, try to fold it. + If the operand still isn't is_gimple_mem_ref_addr, clear + MEM_EXPR on op0. + +2011-03-03 Richard Guenther + + PR middle-end/47283 + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code + match comment. + (refs_may_alias_p_1): For release branches return true if + we are confused by our input. + +2011-03-03 Andreas Krebbel + + * config/s390/s390.c (s390_function_value): Rename to ... + (s390_function_and_libcall_value): ... this. + (s390_function_value): New function. + (s390_libcall_value): New function. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks. + * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove + target macro definitions. + * config/s390/s390-protos.h (s390_function_value): Remove prototype. + +2011-03-02 Joseph Myers + + * config/i386/freebsd64.h (CC1_SPEC): Define. + * config/i386/linux64.h (CC1_SPEC): Define. + * config/i386/x86-64.h (CC1_SPEC): Don't define. + +2011-03-02 Anatoly Sokolov + + * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): + Remove. + * config/stormy16/stormy16.c: Include reload.h. + (xstormy16_memory_move_cost): New function. + (TARGET_MEMORY_MOVE_COST): Define. + +2011-03-02 Richard Sandiford + + PR rtl-optimization/47925 + * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions + with side effects. Remove the more-specific check for volatile asms. + +2011-03-02 Alan Modra + + PR target/47935 + * config/rs6000/predicates.md (lwa_operand): Check cmodel medium + toc relative addresses for valid offsets. + +2011-03-01 Richard Guenther + + PR tree-optimization/47890 + * tree-vect-loop.c (get_initial_def_for_induction): Set + related stmt properly. + +2011-03-01 Richard Guenther + + PR lto/47924 + * lto-streamer.c (lto_record_common_node): Also register + the canonical type. + +2011-03-01 Richard Guenther + + PR lto/46911 + * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): + Do not stream DECL_ABSTRACT_ORIGIN. + (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, + BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. + * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): + Do not stream DECL_ABSTRACT_ORIGIN. + (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, + BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. + +2011-02-28 Anatoly Sokolov + + * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE, + FUNCTION_VALUE_REGNO_P): Remove. + * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove. + * config/stormy16/stormy16.c (xstormy16_function_value): Make static. + Add 'outgoing' argument. + (xstormy16_libcall_value, xstormy16_function_value_regno_p): New + function. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + +2011-02-28 Kai Tietz + + PR debug/28047 + * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp. + (lookup_filename): Likewise. + * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp. + +2011-02-28 Bernd Schmidt + Jakub Jelinek + + PR middle-end/47893 + * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define. + (assign_stack_local_1): Change last argument type to int. + * function.c (assign_stack_local_1): Replace reduce_alignment_ok + argument with kind. If bit ASLK_RECORD_PAD is not set in it, + don't record padding space into frame_space_list nor use those areas. + (assign_stack_local): Adjust caller. + (assign_stack_temp_for_type): Call assign_stack_local_1 instead + of assign_stack_local, pass 0 as last argument. + * caller-save.c (setup_save_areas): Adjust assign_stack_local_1 + callers. + +2011-02-28 Jakub Jelinek + + PR debug/47283 + * cfgexpand.c (convert_debug_memory_address): Add AS parameter. + Use target address_mode and pointer_mode hooks instead of hardcoded + Pmode and ptr_mode. Handle some simple cases of extending if + POINTERS_EXTEND_UNSIGNED < 0. + (expand_debug_expr) : + Call convert_debug_memory_address. + (expand_debug_expr) : Pass as to + convert_debug_memory_address. + + PR middle-end/46790 + * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test. + * configure: Regenerated. + * config.in: Regenerated. + * varasm.c (default_function_section): Return NULL + if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name. + +2011-02-28 Martin Jambor + + * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix + the description to match the printed values. + +2011-02-28 Richard Guenther + + * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT + of the copied scope tree. + +2011-02-28 Ralf Wildenhues + + * doc/extend.texi (Function Attributes): Avoid deeply (and + wrongly) nested tables. + +2011-02-27 Jakub Jelinek + + PR middle-end/47903 + * real.c (real_arithmetic) : Clear padding bits in *r first if + r isn't op0 nor op1. + +2011-02-23 Georg-Johann Lay + + * config/avr/avr.md: Remove magic comment for emacs. + +2011-02-23 Georg-Johann Lay + + PR target/45261 + * config/avr/avr.c (avr_option_override): Use error on bad options. + (avr_help): New function. + (TARGET_HELP): Define. + +2011-02-22 Georg-Johann Lay + + PR target/42240 + * config/avr/avr.c (avr_cannot_modify_jumps_p): New function. + (TARGET_CANNOT_MODIFY_JUMPS_P): Define. + +2011-02-26 Gerald Pfeifer + + * doc/invoke.texi (ARC Options): Use CPU instead of cpu. + (ARM Options): Ditto. + (i386 and x86-64 Options): Ditto. + (RX Options): Ditto. + (SPARC Options): Ditto. + +2011-02-26 Tijl Coosemans + + * config.gcc (i386-*-freebsd*): Make i486 the default arch on + FreeBSD 6 and later. Generally use cpu generic. + +2011-02-25 Gerald Pfeifer + + * doc/cpp.texi: Update copyright years. + +2011-02-25 Sebastien Bourdeauducq + + PR target/46898 + * config/lm32/lm32.md (ashrsi3): Added needed variable. + +2011-02-25 Jon Beniston + + PR target/46898 + * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New. + * config/lm32/lm32.md (ashlsi3): Remove unused variable. + * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New. + (lm32_block_move_inline): Add type cast to remove warning. + (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out. + (gen_int_relational): Move declarations to start of function. + +2011-02-25 Eric Botcazou + + PR tree-optimization/45470 + * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement + can throw internally only. + * tree-vect-stmts.c (vectorizable_call): Likewise. + +2011-02-24 Anatoly Sokolov + + * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS, + PREFERRED_OUTPUT_RELOAD_CLASS): Remove. + * config/stormy16/stormy16-protos.h + (xstormy16_preferred_reload_class): Remove. + * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make + static. Change 'rclass' argument and return type to reg_class_t. + (TARGET_PREFERRED_RELOAD_CLASS, + TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. + +2011-02-24 Richard Guenther + + * lto-streamer-in.c (input_bb): Do not find referenced vars + in debug statements. + +2011-02-23 Jason Merrill + + * common.opt (fabi-version): Document v5 and v6. + +2011-02-23 Richard Guenther + + PR tree-optimization/47849 + * tree-if-conv.c (main_tree_if_conversion): Free postdom info. + +2011-02-23 Jie Zhang + + * opts-common.c (decode_cmdline_option): Print empty string + argument as "" in decoded->orig_option_with_args_text. + * gcc.c (execute): Print empty string argument as "" + in the verbose output. + (do_spec_1): Keep empty string argument. + +2011-02-23 Nathan Froyd + + * config.gcc: Declare score-* and crx-* obsolete. + +2011-02-23 Jie Zhang + + PR rtl-optimization/47763 + * web.c (web_main): Ignore naked clobber when replacing register. + +2011-02-22 Anatoly Sokolov + + * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): + Remove. + +2011-02-22 Sebastian Pop + + PR doc/47848 + * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes. + +2011-02-22 Mike Stump + + * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin + assembler. + * configure: Regenerate. + +2011-02-21 Chung-Lin Tang + + PR rtl-optimization/46002 + * ira-color.c (update_copy_costs): Change class intersection + test to reg_class_contents[] test of 'hard_regno'. + +2011-02-21 Joseph Myers + + * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather + than Driver option. + * config/hpux11.opt (mt): Likewise. + * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise. + * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise. + * config/vax/elf.opt (mno-asm-pic): Likewise. + * config/vms/vms.opt (map, mvms-return-codes): Likewise. + +2011-02-21 Mike Stump + + PR target/47822 + * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a + tree so we can get save the type. + * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot + for CFString instead of trying to use past the end of the builtins. + * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise. + * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise. + * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise. + * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING): + Rename to darwin_builtin_cfstring. + (darwin_init_cfstring_builtins): Return the built type. + +2011-02-21 Uros Bizjak + + PR target/47840 + * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32. + (_mm256_insert_epi64): Use _mm_insert_epi64. + +2011-02-21 Anatoly Sokolov + + * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/stormy16/stormy16-protos.h + (xstormy16_mode_dependent_address_p): Remove. + * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): + Make static. Change return type to bool. Change argument type to + const_rtx. Remove dead code. + (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + +2011-02-21 Richard Guenther + + PR lto/47820 + * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): + Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. + (lto_input_ts_block_tree_pointers): Hook a BLOCK into the + TUs context. + * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): + Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. + +2011-02-20 Richard Guenther + + PR lto/47822 + * tree.c (free_lang_data_in_decl): Clean builtins from + the TU decl BLOCK_VARS. + +2011-02-19 Alexandre Oliva + + PR debug/47620 + PR debug/47630 + * haifa-sched.c (fix_tick_ready): Skip tick computation + for debug insns. + +2011-02-19 Richard Guenther + + PR lto/47647 + * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers): + Remove lazy BLOCK_VARS streaming. + (lto_input_ts_block_tree_pointers): Likewise. + * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise. + +2011-02-19 Joseph Myers + + * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h. + +2011-02-19 Joseph Myers + + * config/i386/biarch32.h, config/i386/mach.h, + config/rs6000/aix.opt, config/sh/superh64.h: Remove. + +2011-02-19 Jakub Jelinek + + PR target/47800 + * config/i386/i386.md (peephole2 for shift and plus): Use + operands[1] original mode in the first insn. + +2011-02-18 Mike Stump + + * config/t-darwin (TM_H): Add dependency on darwin-sections.def. + +2011-02-18 Jan Hubicka + + PR middle-end/47788 + * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits + to zero when the function is not inlinable at all. + +2011-02-18 John David Anglin + + * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts. + * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, + pthread_mutex_unlock, pthread_once): Reinstate pthread stubs. + * config/pa/t-pa-hpux11: Add rules to build pthread stubs. + * config/pa/t-pa64: Likewise. + * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + +2011-02-18 Jakub Jelinek + + PR driver/47787 + * gcc.c (default_compilers): Clear combinable field for "@cpp-output". + +2011-02-18 John David Anglin + + PR target/47792 + * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name. + +2011-02-18 Anatoly Sokolov + + * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, + RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P, + LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P, + GO_IF_LEGITIMATE_ADDRESS): Remove macros. + * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define. + (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p, + m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p, + m32r_load_postinc_p, m32r_store_preinc_predec_p, + m32r_legitimate_address_p): New functions. + * config/m32r/constraints.md (constraint "S"): Don't use + STORE_PREINC_PREDEC_P. + (constraint "U"): Don't use LOAD_POSTINC_P. + +2011-02-18 Chung-Lin Tang + + PR rtl-optimization/46178 + * ira.c (setup_hard_regno_class): Use ira_class_translate[] to + compute ira_hard_regno_cover_class[]. + +2011-02-18 Richard Guenther + + PR lto/47798 + * lto-streamer.h (lto_global_var_decls): Declare. + * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register + statics for global var processing. + +2011-02-18 Richard Guenther + + PR tree-optimization/47737 + * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix + edge dominance check. + +2011-02-18 Jakub Jelinek + + PR debug/47780 + * cfgexpand.c (expand_debug_expr) : Call copy_rtx to + avoid invalid rtx sharing. + +2011-02-18 Gerald Pfeifer + + * doc/cpp.texi (Obsolete Features): Add background on the + origin of assertions. + +2011-02-17 Iain Sandoe + + * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for + objc_abi == 2. + * config/darwin.c (output_objc_section_asm_op): Added support for + ABI v1 and v2. + (is_objc_metadata): New. + (darwin_objc2_section): New. + (darwin_objc1_section): New. + (machopic_select_section): Added support for ABI v1 and v2. + (darwin_emit_objc_zeroed): New. + (darwin_output_aligned_bss): Detect objc metadata and treat it + appropriately. + (darwin_asm_output_aligned_decl_common): Same. + (darwin_asm_output_aligned_decl_local): Same. + * config/darwin-sections.def: Updated for ABI v1 and v2. + * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When + compiling Objective-C code for the NeXT runtime, default to using + ABI version 0 for 32-bit, and version 2 for 64-bit. + +2011-02-17 Joseph Myers + + * common.opt (optimize_fast): New Variable. + * opts.c (default_options_optimization): Use opts->x_optimize_fast + instead of local variable ofast. + +2011-02-17 Nicola Pero + + * doc/invoke.texi (fobjc-abi-version): Documented. + (fobjc-nilcheck): Documented. + (fno-nil-receiver): Updated documentation to refer to the NeXT ABI + version. + +2011-02-17 Joseph Myers + + PR driver/47390 + * common.opt (export-dynamic): New Driver option. + * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}. + +2011-02-17 Joseph Myers + + * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*. + +2011-02-17 Alexandre Oliva + Jan Hubicka + + PR debug/47106 + PR debug/47402 + * cfgexpand.c (account_used_vars_for_block): Remove. + (estimated_stack_frame_size): Use referenced vars. + * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced + that were referenced in the original function. Test src_fn + rather than cfun. Drop redundant get_var_ann. + (setup_one_parameter): Drop redundant get_var_ann. + (declare_return_variable): Likewise. + (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn. + (copy_arguments_for_versioning): Drop redundant get_var_ann. + * ipa-inline.c (compute_inline_parameters): Do not compute + disregard_inline_limits here. + (compute_inlinable_for_current, pass_inlinable): New. + (pass_inline_parameters): Require PROP_referenced_vars. + * cgraphunit.c (cgraph_process_new_functions): Don't run + compute_inline_parameters explicitly unless function is in SSA form. + (cgraph_analyze_function): Set .disregard_inline_limits. + * tree-sra.c (convert_callers): Compute inliner parameters + only for functions already in SSA form. + +2011-02-17 Joseph Myers + + * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle + -mlittle-endian-data. + +2011-02-17 Joseph Myers + + * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and + -mno-fpu, not -fpu and -no-fpu. + * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise. + * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise. + +2011-02-17 Uros Bizjak + + PR target/43653 + * config/i386/i386.c (ix86_secondary_reload): Handle SSE + input reload with PLUS RTX. + +2011-02-16 Joseph Myers + + * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead + of InverseVar(MDMX). + +2011-02-16 Joseph Myers + + * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of + --m4-340. + +2011-02-16 Joseph Myers + + * config/mn10300/mn10300.opt (mno-crt0): New. + +2011-02-16 Joseph Myers + + * config/m68k/uclinux.opt (static-libc): New Driver option. + +2011-02-16 Joseph Myers + + * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*. + +2011-02-16 Joseph Myers + + * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of + %{muser-extend-enabled}. + +2011-02-16 Richard Guenther + + PR tree-optimization/47738 + * tree-ssa-loop.c (run_tree_predictive_commoning): Return + the TODO from tree_predictive_commoning. + +2011-02-15 Jeff Law + + Revert + 2011-01-25 Jeff Law + + PR rtl-optimization/37273 + * ira-costs.c (scan_one_insn): Detect constants living in memory and + handle them like argument loads from stack slots. Do not double + count memory for memory constants and argument loads from stack slots. + +2011-02-15 Michael Meissner + + PR target/47755 + * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI + mode for vector constants. Remove code that checks for TImode. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * cgraph.h (compute_inline_parameters): Return void. + * ipa-inline.c (compute_inline_parameters): Adjust. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-inline.h (estimated_stack_frame_size): Take cgraph node + rather than decl. + * cfgexpand.c (estimated_stack_frame_size): Likewise. + * ipa-inline.c (compute_inline_parameters): Adjust. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument. + Adjust all users. Pass FN to... + * tree-flow-inline.h (first_referenced_var): ... this. Add + fn argument. + * ipa-struct-reorg.c: Adjust. + * tree-dfa.c: Adjust. + * tree-into-ssa.c: Adjust. + * tree-sra.c: Adjust. + * tree-ssa-alias.c: Adjust. + * tree-ssa-live.c: Adjust. + * tree-ssa.c: Adjust. + * tree-ssanames.c: Adjust. + * tree-tailcall.c: Adjust. + +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-flow.h (referenced_var_lookup): Add fn parameter. + Adjust all callers. + * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun. + * tree-flow-inline.h: Adjust. + * gimple-pretty-print.c: Adjust. + * tree-into-ssa.c: Adjust. + * tree-ssa.c: Adjust. + * cfgexpand.c: Adjust. + +2011-02-15 Nathan Froyd + + * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + * config/iq2000/constraints.md: New file. + * config/iq2000/iq2000.md: Include it. + (define_insn ""): Delete. + (movsi_internal2, movhi_internal2, movqi_internal2): Delete + unsupported constraint letters from patterns. + (call_value, call_value_internal1): Likewise. + (call_value_multiple_internal1): Likewise. + +2011-02-15 Nick Clifton + + * config/mn10300/mn10300.c: Include tm-constrs.h. + (struct liw_data): New data structure describing an LIW candidate + instruction. + (extract_bundle): Use struct liw_data. Allow small integer + operands for some instructions. + (check_liw_constraints): Use struct liw_data. Remove swapped + parameter. Add comments describing the checks. Fix bug when + assigning the source of liw1 to the source of liw2. + (liw_candidate): Delete. Code moved into extract_bundle. + (mn10300_bundle_liw): Use struct liw_data. Check constraints + before swapping. + * config/mn10300/predicates.md (liw_operand): New predicate. + Allows registers and small integer constants. + * config/mn10300/constraints.md (O): New constraint. Accetps + integers in the range -8 to +7 inclusive. + * config/mn10300/mn10300.md (movesi_internal): Add an alternative + for moving a small integer into a register. Give this alternative + LIW attributes. + (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise. + (ashlsi3): Likewise, plus give LIW attributes to the alternatives + using the J,K,L and M constraints, + (liw): Remove SI mode on second operands to allow for HI and QI + mode values. + (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the + instruction. + +2011-02-15 Richard Guenther + + PR tree-optimization/47743 + * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number + for a non-type-compatible VN lookup bail out. + +2011-02-15 Nathan Froyd + + * config/fr30/constraints.md: New file. + * config/fr30/fr30.md: Include it. + * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + +2011-02-15 Nathan Froyd + + * config/frv/constraints.md: New file. + * config/frv/predicates.md: Include it. + * config/frv/frv.c (reg_class_from_letter): Delete. + (frv_option_override): Don't initialize it. + * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete. + (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete. + (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete. + (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete. + (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete. + (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete. + (REG_CLASS_FROM_CONSTRAINT): Delete. + +2011-02-15 Jakub Jelinek + + PR middle-end/47581 + * config/i386/i386.c (ix86_compute_frame_size): Don't align offset + if frame size is 0 in a leaf function. + +2011-02-15 Rainer Orth + + PR pch/14940 + * config/alpha/host-osf.c: New file. + * config/alpha/x-osf: New file. + * config.host (alpha*-dec-osf*): Use it. + +2011-02-14 Anatoly Sokolov + + * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove. + * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to... + (rx_mode_dependent_address_p): ...this. Make static. Change argument + type to const_rtx. + (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + +2011-02-14 Nathan Froyd + + * config/stormy16/constraints.md: New file. + * config/stormy16/predicates.md (nonimmediate_nonstack_operand): + Use satisfies_constraint_Q and satisfies_constraint_R. + * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p): + Delete. + (xstormy16_legitiamte_address_p): Declare. + * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): + Un-staticize. + (xstormy16_extra_constraint_p): Delete. + +2011-02-14 Eric Botcazou + + PR tree-optimization/46494 + * loop-unroll.c (split_edge_and_insert): Adjust comment. + * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info. + (pass_rtl_loop_done): Add TODO_verify_flow. + * fwprop.c (pass_rtl_fwprop): Likewise. + * modulo-sched.c (pass_sms): Likewise. + * tree-ssa-dom.c (pass_dominator): Likewise. + * tree-ssa-loop-ch.c (pass_ch): Likewise. + * tree-ssa-loop.c (pass_complete_unrolli): Likewise. + (pass_tree_loop_done): Likewise. + * tree-ssa-pre.c (execute_pre): Likewise. + * tree-ssa-reassoc.c (pass_reassoc): Likewise. + * tree-ssa-sink.c (pass_sink_code): Likewise. + * tree-vrp.c (pass_vrp): Likewise. + +2011-02-14 Nathan Froyd + + * config/v850/constraints.md: New file. + * config/v850/v850.md: Include it. + * config/v850/predicates.md (reg_or_0_operand): Use + satisfies_constraint_G. + (special_symbolref_operand): Use satisfies_constraint_K. + * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p. + (GO_IF_LEGITIMATE_ADDRESS): Likewise. + (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete. + (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint. + (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise. + (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise. + +2011-02-14 Anatoly Sokolov + + PR target/47696 + * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device + description. + +2011-02-14 Nathan Froyd + + * config/mcore/constraints.md: New file. + * config/mcore/mcore.md: Include it. + * config/mcore/mcore.c (reg_class_from_letter): Delete. + * config/mcore/mcore.h (reg_class_from_letter): Delete. + (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use + insn_const_int_ok_for_constraint. + (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise. + (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + +2011-02-14 Rainer Orth + + PR ada/41929 + * config/sparc/sol2-unwind.h: Include , + (IS_SIGHANDLER): Define. + (sparc64_is_sighandler): New function, split off from + sparc64_fallback_frame_state. + (sparc_is_sighandler): New function, split off from + sparc_fallback_frame_state. + (sparc64_fallback_frame_state): Merge with ... + (sparc_fallback_frame_state): ... this into ... + (MD_FALLBACK_FRAME_STATE_FOR): ... this. + Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save. + Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk + stack instead of hardcoded offsets. + +2011-02-14 Andriy Gapon + + PR target/45808 + * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case. + +2011-02-13 Ralf Wildenhues + + * configure: Regenerate. + +2011-02-12 Joseph Myers + + PR driver/45731 + * gcc.c (asm_options): Correct spec matching --target-help. + +2011-02-12 Martin Jambor + + * tree-cfg.c (verify_gimple_call): Return true upon invalid argument + to gimple call error. + +2011-02-12 Mike Stump + + * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize + comments in backslash regions. + +2011-02-12 Mike Stump + Jakub Jelinek + Iain Sandoe + + PR target/47324 + * dwarf2out.c (output_cfa_loc): When required, apply the + DWARF2_FRAME_REG_OUT macro to adjust register numbers. + (output_loc_sequence): Likewise. + (output_loc_operands_raw): Likewise. + (output_loc_sequence_raw): Likewise. + (output_cfa_loc): Likewise. + (output_loc_list): Suppress register number adjustment when + calling output_loc_sequence() + (output_die): Likewise. + +2011-02-12 Anatoly Sokolov + + * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): + Remove macros. + * config/xtensa/xtensa.c (xtensa_register_move_cost, + xtensa_memory_move_cost): New functions. + (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define. + +2011-02-12 Alexandre Oliva + + PR lto/47225 + * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la + in the current directory. + * configure: Rebuilt. + +2011-02-12 Iain Sandoe + + * config/darwin.c (darwin_override_options): Add a hunk missed + from the commit of r168571. Trim comment line lengths and + correct indents of the preceding block. + +2011-02-12 Iain Sandoe + + * gcc.c (driver_handle_option): Concatenate the argument to -F with + the switch. + +2011-02-11 Joseph Myers + + * common.opt (nostartfiles): New Driver option. + +2011-02-11 Xinliang David Li + + PR tree-optimization/47707 + * tree-chrec.c (convert_affine_scev): Keep type precision. + +2011-02-11 Eric Botcazou + + PR tree-optimization/47420 + * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX. + +2011-02-11 Pat Haugen + + PR rtl-optimization/47614 + * rtl.h (check_for_inc_dec): Declare. + * dse.c (check_for_inc_dec): Externalize... + * postreload.c (reload_cse_simplify): ...use it before deleting stmt. + (reload_cse_simplify_operands): Don't simplify opnds with side effects. + +2011-02-11 Joseph Myers + + PR driver/47678 + * gcc.c (main): Do not compile inputs if there were errors in + option handling. + * opts-common.c (read_cmdline_option): Check for wrong language + after other error checks. + +2011-02-11 Nathan Froyd + + * cgraph.c: Fix comment typos. + * cgraph.h: Likewise. + * cgraphunit.c: Likewise. + * ipa-cp.c: Likewise. + * ipa-inline.c: Likewise. + * ipa-prop.c: Likewise. + * ipa-pure-const.c: Likewise. + * ipa-ref.c: Likewise. + * ipa-reference.c: Likewise. + +2011-02-11 Jakub Jelinek + + PR debug/47684 + * tree-predcom.c (single_nonlooparound_use): Ignore debug uses. + +2011-02-11 Rainer Orth + + PR testsuite/47400 + * doc/sourcebuild.texi (Require Support): Document + dg-require-ascii-locale. + +2011-02-11 Mingjie Xing + + * doc/lto.texi (Write summary): Fix missing parentheses. + +2011-02-10 DJ Delorie + + * config/m32c/m32c.c (m32c_option_override): Disable + -fcombine-stack-adjustments until flag value tracking and compare + optimization can be rewritten. + +2011-02-10 Peter Bergner + + * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to + PROCESSOR_POWER7. + (PROCESSOR_DEFAULT64): Likewise. + +2011-02-10 Richard Henderson + + * config/rx/predicates.md (rx_zs_comparison_operator): Revert + change from 2011-02-03. + * config/rx/rx.c (flags_from_code): Likewise. + (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag + is valid, n/pz otherwise. + (rx_select_cc_mode): Return CCmode if Y is not zero. + +2011-02-10 Richard Guenther + + * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8. + +2011-02-10 Richard Guenther + + PR tree-optimization/47677 + * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps. + +2011-02-10 Jakub Jelinek + + PR target/47665 + * combine.c (make_compound_operation): Only change shifts into + multiplication for SCALAR_INT_MODE_P. + +2011-02-10 Jie Zhang + + PR testsuite/47622 + Revert + 2011-02-05 Jie Zhang + PR debug/42631 + * web.c (entry_register): Don't clobber the number of the + first uninitialized reference in used[]. + +2011-02-09 Richard Guenther + + PR tree-optimization/47664 + * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit + all edges again. + +2011-02-09 David Edelsohn + + PR target/46481 + PR target/47032 + * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to + PROCESSOR_POWER7. + (PROCESSOR_DEFAULT64): Same. + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete. + +2011-02-09 Rainer Orth + + * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define. + +2011-02-09 Martin Jambor + + PR middle-end/45505 + * tree-sra.c (struct access): New flags grp_scalar_read and + grp_scalar_write. Changed description of assignment read and write + flags. + (dump_access): Dump new flags, reorder all of them. + (sort_and_splice_var_accesses): Set the new flag accordingly, use them + to detect multiple scalar reads. + (analyze_access_subtree): Use the new scalar read write flags instead + of the old flags. Adjusted comments. + +2011-02-08 DJ Delorie + + PR target/47548 + * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim + patterns. + +2011-02-08 Joseph Myers + + * config/m68k/uclinux.opt: New. + * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt. + +2011-02-08 Joseph Myers + + * config/cris/elf.opt (sim): New Driver option. + +2011-02-08 Joseph Myers + + * config/xtensa/elf.opt: New. + * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt. + +2011-02-08 Joseph Myers + + * config/vax/elf.opt: New. + * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt. + +2011-02-08 Joseph Myers + + * config/rs6000/aix64.opt (posix, pthread): New Driver options. + +2011-02-08 Joseph Myers + + * config/gnu-user.opt: New. + * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | + *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu, + *-*-uclinux*): Use gnu-user.opt. + +2011-02-08 Thomas Schwinge + + * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option. + * config/i386/gnu.h (CPP_SPEC): Likewise. + +2011-02-08 Ian Lance Taylor + + * common.opt (fcx-limited-range): Add SetByCombined flag. + (ffinite-math-only, fmath-errno, frounding-math): Likewise. + (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise. + (fassociative-math, freciprocal-math): Likewise. + (funsafe-math-optimizations): Likewise. + * opth-gen.awk: Handle SetByCombined. + * optc-gen.awk: Likewise. + * opts.c (set_fast_math_flags): Don't override flag if set by frontend. + (set_unsafe_math_optimizations_flags): Likewise. + * doc/options.texi (Option properties): Document SetByCombined. + +2011-02-08 Joseph Myers + + * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*, + i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe, + m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*, + m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*, + sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete. + +2011-02-08 Sebastian Pop + + PR tree-optimization/46834 + PR tree-optimization/46994 + PR tree-optimization/46995 + * graphite-sese-to-poly.c (used_outside_reduction): New. + (detect_commutative_reduction): Call used_outside_reduction. + (rewrite_commutative_reductions_out_of_ssa_close_phi): Call + translate_scalar_reduction_to_array only when at least one + loop-phi/close-phi tuple has been detected. + +2011-02-08 Richard Guenther + + PR middle-end/47639 + * tree-vect-generic.c (expand_vector_operations_1): Update + stmts here ... + (expand_vector_operations): ... not here. Cleanup EH info + and the CFG if required. + +2011-02-08 Richard Guenther + + PR tree-optimization/47641 + * tree-ssa.c (execute_update_addresses_taken): For asm outputs + require type compatibility. + +2011-02-08 Andreas Krebbel + + * gimple-low.c (lower_function_body): Don't remove the location of + the return statement here. + (lower_gimple_return): Do it here instead but only if the return + statement is actually used twice. + +2011-02-08 Richard Guenther + + PR tree-optimization/47632 + * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove + unused up_to_stmt parameter, return whether cfg-cleanup is + necessary, remove EH info properly. + (forward_propagate_into_gimple_cond): Adjust caller. + (forward_propagate_into_cond): Likewise. + (forward_propagate_comparison): Likewise. + (tree_ssa_forward_propagate_single_use_vars): Make + forward_propagate_comparison case similar to the two others. + +2011-02-08 Nick Clifton + + * config/mn10300/mn10300.opt (mliw): New command line option. + * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec. + (liw_bundling): New automaton. + (liw): New attribute. + (liw_op): New attribute. + (liw_op1, liw_op2, liw_both, liw_either): New reservations. + (movsi_internal): Add LIW attributes. + (andsi3): Likewise. + (iorsi3): Likewise. + (xorsi3): Likewise. + (addsi3): Separate register and immediate alternatives. + Add LIW attributes. + (subsi3): Likewise. + (cmpsi): Likewise. + (aslsi3): Likewise. + (lshrsi3): Likewise. + (ashrsi3): Likewise. + (liw): New pattern. + * config/mn10300/mn10300.c (liw_op_names): New + (mn10300_print_operand): Handle 'W' operand descriptor. + (extract_bundle): New function. + (check_liw_constraints): New function. + (liw_candidate): New function. + (mn10300_bundle_liw): New function. + (mn10300_reorg): New function. + (TARGET_MACHINE_DEPENDENT_REORG): Define. + (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW. + * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define + __LIW__ or __NO_LIW__. + * doc/invoke.texi: Describe the -mliw command line option. + +2011-02-07 John David Anglin + + * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts. + * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, + pthread_mutex_unlock): Remove. + * config/pa/t-pa-hpux11: Remove rules to build pthread stubs. + * config/pa/t-pa64: Likewise. + * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against + shared libc if not linking against libpthread. + * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. + +2011-02-07 Iain Sandoe + + PR target/47558 + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first + on 10.6 and later to ensure that we always use the unwinder from + the system. Only add -no_compact_unwind when tarteting darwin + 10.6 or later. + +2011-02-07 Steve Ellcey + + PR target/46997 + * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN. + (vec_interleave_lowv2sf): Ditto. + (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check. + (vec_extract_oddv2sf): Ditto. + +2011-02-07 Mike Stump + + PR target/42333 + Add __ieee_divdc3 entry point. + * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3 + entry point. + (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins. + * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise. + * config/darwin.c (darwin_rename_builtins): Add. + * config/darwin-protos.h (darwin_rename_builtins): Add. + +2011-02-07 Michael Meissner + + PR target/47636 + * config/rs6000/rs6000.md (rsqrt2): Use the correct macro + for the condition. + +2011-02-07 Mike Stump + + * config/darwin.opt (mmacosx-version-min): Update default OS version. + +2011-02-07 Denis Chertykov + + PR target/47534 + * config/avr/libgcc.S (exit): Move .endfunc + +2011-02-07 Richard Guenther + + PR tree-optimization/47615 + * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument. + * tree-ssa-sccvn.c (default_vn_walk_kind): New global. + (run_scc_vn): Initialize it. + (visit_reference_op_load): Use it. + * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE. + +2011-02-07 Ulrich Weigand + + * config/spu/spu.c (spu_init_libfuncs): Install SImode and + DImode trapping arithmetic libfuncs. + +2011-02-07 Richard Guenther + + PR tree-optimization/47621 + * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from + two duplicates ... + (execute_update_addresses_taken): ... here. Make it more + conservative in what we accept. + +2011-02-06 Joseph Myers + + * config/sparc/freebsd.h (ASM_SPEC): Define. + * config/sparc/vxworks.h (ASM_SPEC): Define. + +2011-02-06 Joseph Myers + + * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}. + +2011-02-06 Steven Bosscher + + * doc/invoke.texi: Remove reference to compiler internals from + user documentation. + + * reg-notes.def: Remove REG_VALUE_PROFILE. + * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE. + +2011-02-05 Jakub Jelinek + + PR middle-end/47610 + * varasm.c (default_section_type_flags): If decl is NULL, + and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit. + +2011-02-05 Jie Zhang + + PR debug/42631 + * web.c (entry_register): Don't clobber the number of the + first uninitialized reference in used[]. + +2011-02-04 Sebastian Pop + + PR tree-optimization/46194 + * tree-data-ref.c (analyze_miv_subscript): Remove comment. + (build_classic_dist_vector_1): Do not represent classic distance + vectors when the access functions are variating in different loops. + +2011-02-04 Joseph Myers + + * config/mips/iris6.opt: New. + * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt. + +2011-02-04 Richard Henderson + Steve Ellcey + + PR target/46997 + * config/ia64/predicates.md (mux1_brcst_element): New. + * config/ia64/ia64-protos.h (ia64_unpack_assemble): New. + * config/ia64/ia64.c (ia64_unpack_assemble): New. + (ia64_unpack_sign): New. + (ia64_expand_unpack): Rewrite using new routines. + (ia64_expand_widen_sum): Ditto. + (ia64_expand_dot_prod_v8qi): Ditto. + * config/ia64/vect.md (mulv8qi3): Rewrite to use new + routines, add endian check. + (pmpy2_even): Rename from pmpy2_r, add endian check. + (pmpy2_odd): Rename from pmpy2_l, add endian check. + (vec_widen_smult_lo_v4hi): Rewrite using new routines. + (vec_widen_smult_hi_v4hi): Ditto. + (vec_widen_umult_lo_v4hi): Ditto. + (vec_widen_umult_hi_v4hi): Ditto. + (mulv2si3): Change endian checks. + (sdot_prodv4hi): Rewrite with new calls. + (udot_prodv4hi): New. + (vec_pack_ssat_v4hi): Add endian check. + (vec_pack_usat_v4hi): Ditto. + (vec_pack_ssat_v2si): Ditto. + (max1_even): Rename from max1_r, add endian check. + (max1_odd): Rename from max1_l, add endian check. + (*mux1_rev): Format change. + (*mux1_mix): Ditto. + (*mux1_shuf): Ditto. + (*mux1_alt): Ditto. + (*mux1_brcst_v8qi): Use new predicate. + (vec_extract_evenv8qi): Remove endian check. + (vec_extract_oddv8qi): Ditto. + (vec_interleave_lowv4hi): Format change. + (vec_interleave_highv4hi): Ditto. + (mix2_even): Rename from mix2_r, add endian check. + (mix2_odd): Rename from mux2_l, add endian check. + (*mux2): Fix mask setting for TARGET_BIG_ENDIAN. + (vec_extract_evenodd_helper): Format change. + (vec_extract_evenv4hi): Remove endian check. + (vec_extract_oddv4hi): Remove endian check. + (vec_interleave_lowv2si): Format change. + (vec_interleave_highv2si): Format change. + (vec_initv2si): Remove endian check. + (vecinit_v2si): Add endian check. + (reduc_splus_v2sf): Add endian check. + (reduc_smax_v2sf): Ditto. + (reduc_smin_v2sf): Ditto. + (vec_initv2sf): Remove endian check. + (fpack): Add endian check. + (fswap): Add endian check. + (vec_interleave_highv2sf): Add endian check. + (vec_interleave_lowv2sf): Add endian check. + (fmix_lr): Add endian check. + (vec_setv2sf): Format change. + (*vec_extractv2sf_0_be): Use shift to extract operand. + (*vec_extractv2sf_1_be): New. + (vec_pack_trunc_v4hi): Add endian check. + (vec_pack_trunc_v2si): Format change. + +2011-02-04 Jakub Jelinek + + PR inline-asm/23200 + * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't + do bb, locus and block comparison and disallow loads if it is not set. + (stmt_is_replaceable_p): New function. + (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p + callers. + * expr.c (expand_expr_real_1) : If + get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use + SSA_NAME_DEF_STMT. + * tree-flow.h (stmt_is_replaceable_p): New prototype. + +2011-02-04 Joseph Myers + + * config/rs6000/xilinx.opt: New. + * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt. + +2011-02-04 Joseph Myers + + * config/mips/mips.opt (EB, EL, noasmopt): New Driver options. + +2011-02-03 Anatoly Sokolov + + * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS, + PREFERRED_OUTPUT_RELOAD_CLASS): Remove. + * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class, + secondary_reload_info, xtensa_secondary_reload): Remove. + * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS, + TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. + (xtensa_preferred_reload_class): Make static. Change return and + 'rclass' argument type to reg_class_t. Remove 'isoutput' argument. + Use CONST_DOUBLE_P predicate. + (xtensa_preferred_output_reload_class): New function. + (xtensa_secondary_reload): Make static. + +2011-02-03 Joseph Myers + + * config/microblaze/microblaze.opt (Zxl-mode-bootstrap, + Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel, + Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options. + +2011-02-03 Jakub Jelinek + + PR middle-end/31490 + * output.h (SECTION_RELRO): Define. + (SECTION_MACH_DEP): Adjust. + (get_variable_section): New prototype. + * varpool.c (varpool_finalize_named_section_flags): New function. + (varpool_assemble_pending_decls): Call it. + * cgraph.h (varpool_finalize_named_section_flags): New prototype. + * cgraphunit.c (cgraph_output_in_order): Call + varpool_finalize_named_section_flags. + * varasm.c (get_section): Allow section flags conflicts between + relro and read-only sections if the section hasn't been declared yet. + Set SECTION_OVERRIDE after diagnosing section type conflict. + (get_variable_section): No longer static. + (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for + readonly sections that need relocations. + (decl_readonly_section_1): New function. + (decl_readonly_section): Use it. + + Revert: + 2010-11-17 Dinar Temirbulatov + Steve Ellcey + + PR middle-end/31490 + * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask + if section attribute used. + +2011-02-03 Jakub Jelinek + + * config/darwin.h (SECTION_NO_ANCHOR): Remove. + * config/darwin.c (SECTION_NO_ANCHOR): Define. + (darwin_init_sections): Remove assertion. + +2011-02-03 Nick Clifton + + * config/rx/predicates.md (rx_zs_comparison_operator): Remove + lt and ge. + * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode. + * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes + instead of "n" and "pz". + (flags_from_code): LT and GE tests need CC_FLAG_O as well as + CC_FLAG_S. + +2011-02-03 Jakub Jelinek + + PR target/47312 + * expr.c (expand_expr_real_2) : If target doesn't expand + fma, expand FMA_EXPR as fma{,f,l} call. + + PR lto/47274 + * lto-streamer-out.c (write_symbol): When writing kind and visibility, + copy them into a unsigned char variable and pass address of it to + lto_output_data_stream. + + PR target/47564 + * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx + around backend_init_target and lang_dependent_init_target calls. + * cgraphunit.c (cgraph_debug_gimple_stmt): New function. + (verify_cgraph_node): Don't call set_cfun here. Use + cgraph_debug_gimple_stmt instead of debug_gimple_stmt. + Set error_found for incorrectly represented calls to thunks. + +2011-02-03 Alexandre Oliva + + PR debug/43092 + PR rtl-optimization/43494 + * rtl.h (for_each_inc_dec_fn): New type. + (for_each_inc_dec): Declare. + * rtlanal.c (struct for_each_inc_dec_ops): New type. + (for_each_inc_dec_find_inc_dec): New fn. + (for_each_inc_dec_find_mem): New fn. + (for_each_inc_dec): New fn. + * dse.c (struct insn_size): Remove. + (replace_inc_dec, replace_inc_dec_mem): Remove. + (emit_inc_dec_insn_before): New fn. + (check_for_inc_dec): Use it, along with for_each_inc_dec. + (canon_address): Pass mem modes to cselib_lookup. + * cselib.h (cselib_lookup): Add memmode argument. Adjust callers. + (cselib_lookup_from_insn): Likewise. + (cselib_subst_to_values): Likewise. + * cselib.c (find_slot_memmode): New var. + (cselib_find_slot): New fn. Use it instead of + htab_find_slot_with_hash everywhere. + (entry_and_rtx_equal_p): Use find_slot_memmode. + (autoinc_split): New fn. + (rtx_equal_for_cselib_p): Rename and implement in terms of... + (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on. + Deal with autoinc. Special-case recursion into MEMs. + (cselib_hash_rtx): Likewise. + (cselib_lookup_mem): Infer pmode from address mode. Distinguish + address and MEM modes. + (cselib_subst_to_values): Add memmode, pass it on. + Deal with autoinc. + (cselib_lookup): Add memmode argument, pass it on. + (cselib_lookup_from_insn): Add memmode. + (cselib_invalidate_rtx): Discard obsolete push_operand handling. + (struct cselib_record_autoinc_data): New. + (cselib_record_autoinc_cb): New fn. + (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM + mode to cselib_lookup. Reset autoinced REGs here instead of... + (cselib_process_insn): ... here. + * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode + to cselib_lookup. + (add_uses): Likewise, also to cselib_subst_to_values. + (add_stores): Likewise. + * sched-deps.c (add_insn_mem_dependence): Pass mode to + cselib_subst_to_values. + (sched_analyze_1, sched_analyze_2): Likewise. Adjusted. + * gcse.c (do_local_cprop): Adjusted. + * postreload.c (reload_cse_simplify_set): Adjusted. + (reload_cse_simplify_operands): Adjusted. + * sel-sched-dump (debug_mem_addr_value): Pass mode. + +2011-02-03 Alexandre Oliva + + PR tree-optimization/45122 + * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make + unsafe assumptions when there's more than one loop exit. + +2011-02-02 Michael Meissner + + PR target/47272 + * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): + Document using vector double with the load/store builtins, and + that the load/store builtins always use Altivec instructions. + + * config/rs6000/vector.md (vector_altivec_load_): New insns + to use altivec memory instructions, even on VSX. + (vector_altivec_store_): Ditto. + + * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New + function. + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add + V2DF, V2DI support to load/store overloaded builtins. + + * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add + altivec load/store builtins for V2DF/V2DI types. + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't + set avoid indexed addresses on power6 if -maltivec. + (altivec_expand_ld_builtin): Add V2DF, V2DI support, use + vector_altivec_load/vector_altivec_store builtins. + (altivec_expand_st_builtin): Ditto. + (altivec_expand_builtin): Add VSX memory builtins. + (rs6000_init_builtins): Add V2DI types to internal types. + (altivec_init_builtins): Add support for V2DF/V2DI altivec + load/store builtins. + (rs6000_address_for_altivec): Insure memory address is appropriate + for Altivec. + + * config/rs6000/vsx.md (vsx_load_): New expanders for + vec_vsx_ld and vec_vsx_st. + (vsx_store_): Ditto. + + * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type + variables to hold long long types for VSX vector memory builtins. + (RS6000_BTI_unsigned_long_long): Ditto. + (long_long_integer_type_internal_node): Ditti. + (long_long_unsigned_type_internal_node): Ditti. + + * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC. + (altivec_lvx_): Make altivec_lvx use a mode iterator. + (altivec_stvx_): Make altivec_stvx use a mode iterator. + + * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin + short cuts. + (vec_vsx_st): Ditto. + +2011-02-02 Joseph Myers + + * config/pa/pa-hpux10.opt: New. + * config/hpux11.opt (pthread): New Driver option. + * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options. + * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt. + +2011-02-02 Joseph Myers + + * config/ia64/vms.opt: New. + * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt. + +2011-02-01 Michael Meissner + + PR target/47580 + * config/rs6000/vsx.md (vsx_float2): Use + gpc_reg_operand instead of vsx_register_operand to match rs6000.md + generator functions. + (vsx_floatuns2): Ditto. + (vsx_fix_trunc2): Ditto. + (vsx_fixuns_trunc2): Ditto. + +2011-02-02 Joseph Myers + + * config/i386/djgpp.opt (posix): New Driver option. + +2011-02-02 Gerald Pfeifer + + * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*): + Move to the unsupported targets list. + +2011-02-02 Peter Bergner + + PR rtl-optimization/47525 + * df-scan.c: Update copyright years. + (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE + and non-clobber DF_REF_REG_DEF for calls to const and pure functions. + +2011-02-02 Rainer Orth + + * config/i386/sysv4.h (TARGET_VERSION): Remove. + (SUBTARGET_RETURN_IN_MEMORY): Remove. + (ASM_OUTPUT_ASCII): Remove. + * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef. + +2011-02-02 Jeff Law + + PR middle-end/47543 + * reload.c (find_reloads_address): Handle reg+d address where both + components are invalid by reloading the entire address. + +2011-02-02 Sebastian Pop + Richard Guenther + + PR tree-optimization/40979 + PR bootstrap/47044 + * passes.c (init_optimization_passes): After LIM call copy_prop + and DCE to clean up. + * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func. + +2011-02-02 Sebastian Pop + + PR tree-optimization/47576 + PR tree-optimization/47555 + * doc/invoke.texi (scev-max-expr-complexity): Documented. + * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. + (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared. + * tree-scalar-evolution.c (follow_ssa_edge): Use + PARAM_SCEV_MAX_EXPR_COMPLEXITY. + +2011-02-02 Richard Guenther + + PR tree-optimization/47566 + * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs. + +2011-02-02 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-inline.c (declare_return_variable): Remove unused caller + variable. + + PR debug/47106 + PR debug/47402 + * tree-flow-inline.h (clear_is_used, is_used_p): New. + * cfgexpand.c (account_used_vars_for_block): Use them. + * tree-nrv.c (tree_nrv): Likewise. + * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. + (dump_scope_block): Likewise. + (remove_unused_locals): Likewise. + + PR debug/47106 + PR debug/47402 + * tree-inline.c (declare_return_variable): Add result decl to + local decls only once. + * gimple-low.c (record_vars_into): Mark newly-created variables + as referenced. + +2011-02-02 Alexandre Oliva + + PR debug/47498 + PR debug/47501 + PR debug/45136 + PR debug/45130 + * haifa-sched.c (get_ebb_head_tail): Move notes across boundary + debug insns. + (no_real_insns_p, schedule_block, set_priorities): Drop special + treatment of boundary debug insns. + * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. + * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns. + * sched-int.h (DEBUG_INSN_SCHED_P): Remove. + (BOUNDARY_DEBUG_INSN_P): Likewise. + (SCHEDULE_DEBUG_INSN_P): Likewise. + * sched-rgn.c (init_ready_list): Drop special treatment of + boundary debug insns. + * final.c (rest_of_clean_state): Clear notes' BB. + +2011-02-01 Joseph Myers + + * config/openbsd.opt (assert=): New Driver option. + +2011-02-01 Joseph Myers + + * config/i386/nto.opt: New. + * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt. + +2011-02-01 Joseph Myers + + * config/i386/netware.opt: New. + * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt. + +2011-02-01 Joseph Myers + + * config/interix.opt (posix): New Driver option. + +2011-02-01 DJ Delorie + + * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition. + + * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg + class for A0/A1. + +2011-02-01 Sebastian Pop + + PR tree-optimization/47561 + * toplev.c (process_options): Print the Graphite flags. Add + flag_loop_flatten to the list of options requiring Graphite. + +2011-02-01 Joseph Myers + + * config/i386/cygming.opt (posix): New Driver option. + +2011-02-01 Joseph Myers + + * config/arm/vxworks.opt: New. + * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt. + +2011-02-01 Joseph Myers + + * config/alpha/elf.opt: New. + * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*, + alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt. + +2011-02-01 Richard Guenther + + PR tree-optimization/47559 + * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform + store-motion on references that can throw. + +2011-02-01 Bernd Schmidt + + * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB. + * tree-pass.h (TDF_CSELIB): New macro. + * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1, + cselib_lookup): Check for it rather than for TDF_DETAILS. + +2011-02-01 H.J. Lu + + PR driver/47547 + * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output + is HOST_BIT_BUCKET. + + * opts.c (finish_options): Don't add x_aux_base_name if it is + HOST_BIT_BUCKET. + +2011-02-01 Richard Guenther + + PR tree-optimization/47555 + Revert + 2010-07-15 Sebastian Pop + + * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. + +2011-02-01 Sebastien Bourdeauducq + + PR gcc/46692 + * config/lm32/t-lm32: Add multilib for all CPU options. + +2011-02-01 Richard Guenther + + PR tree-optimization/47541 + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make + sure to have a field at offset zero. + +2011-01-31 Joseph Myers + + * config/arc/arc.opt (EB, EL): New Driver options. + +2011-01-31 Joseph Myers + + * config/alpha/osf5.opt: New. + * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt. + +2011-01-31 Joseph Myers + + * config/vms/vms.opt (map, mvms-return-codes): New Driver options. + +2011-01-31 Sebastian Pop + + * common.opt (ftree-loop-linear): Use Alias to make it an alias of + -floop-interchange. + * invoke.texi (-ftree-loop-linear): Make it clear that this flag + is an alias of -floop-interchange and that it requires the + Graphite infrastructure. + * tree-ssa-loop.c (gate_graphite_transforms): Do not set + flag_loop_interchange based on the value of flag_tree_loop_linear. + +2011-01-31 Jakub Jelinek + Richard Guenther + + PR tree-optimization/47538 + * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use + type instead of r1type, except for comparisons. For right + shifts and comparisons punt if there are mismatches in + sizetype vs. non-sizetype types. + +2011-01-31 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords): Document + avx_runtime. + +2011-01-31 Rainer Orth + + * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld + version number. + * configure: Regenerate. + +2011-01-31 Rainer Orth + + * configure.ac (gcc_cv_ld_static_option): Define. + (gcc_cv_ld_dynamic_option): Define. + (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive + instead. + (HAVE_LD_STATIC_DYNAMIC): Update message. + (LD_STATIC_OPTION): Define. + (LD_DYNAMIC_OPTION): Define. + * configure: Regenerate. + * config.in: Regenerate. + * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS && + HAVE_LD_STATIC_DYNAMIC]: Use them. + +2011-01-31 Nick Clifton + + * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered + registers inside interrupt handlers if the handler is not a leaf + function. + +2011-01-31 Nick Clifton + + * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for + reg_renumber returning an INVALID_REGNUM. + +2011-01-31 Alexandre Oliva + + PR libgcj/44341 + * doc/install.texi: Document host options discarded when cross + configuring target libraries. + +2011-01-31 Alexandre Oliva + + Reverted: + 2011-01-25 Alexandre Oliva + PR debug/45136 + PR debug/45130 + * haifa-sched.c (get_ebb_head_tail): Move notes across boundary + debug insns. + (no_real_insns_p, schedule_block, set_priorities): Drop special + treatment of boundary debug insns. + * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. + * sched-ebb.c (schedule_ebbs): Don't skip debug insns. + * sched-int.h (DEBUG_INSN_SCHED_P): Remove. + (BOUNDARY_DEBUG_INSN_P): Likewise. + (SCHEDULE_DEBUG_INSN_P): Likewise. + * sched-rgn.c (init_ready_list): Drop special treatment of + boundary debug insns. + * final.c (rest_of_clean-state): Clear notes' BB. + +2011-01-31 Alan Modra + + * config/rs6000/rs6000.c (print_operand): Rearrange addends in + toc relative expressions as we do in print_operand_address. + +2011-01-30 Kazu Hirata + + * doc/extend.texi: Follow spelling conventions. + * doc/invoke.texi: Fix a typo. + +2011-01-30 Joseph Myers + + * config/hpux11.opt: New. + * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*, + ia64*-*-hpux*): Use hpux11.opt. + +2011-01-30 Jonathan Yong + + * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules + to tmake_file. + +2011-01-30 Gerald Pfeifer + + * doc/install.texi (hppa-hp-hpux10): Remove references to HP + support sites. + +2011-01-30 Gerald Pfeifer + + * doc/install.texi (Binaries): Remove outdated reference for + Motorola 68HC11/68HC12 downloads. + +2011-01-30 Gerald Pfeifer + + * doc/extend.texi (Thread-Local): Adjust reference to Ulrich + Drepper's paper. + +2011-01-29 Jonathan Wakely + + PR bootstrap/47147 + * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as + used by NetBSD. + +2011-01-28 Ahmad Sharif + + * value-prof.c (check_counter): Corrected error message. + +2011-01-29 Jie Zhang + + * config/arm/arm.c (arm_legitimize_reload_address): New. + * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use + arm_legitimize_reload_address. + * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare. + +2011-01-28 Ian Lance Taylor + + * godump.c (go_define): Ignore macros whose definitions include + two adjacent operands. + +2011-01-28 Jakub Jelinek + + PR target/42894 + * varasm.c (force_const_mem): Store copy of x in desc->constant + instead of x itself. + * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst + itself into REG_EQUAL note. + +2011-01-28 Joseph Myers + + * config/freebsd.opt (posix, rdynamic): New Driver options. + +2011-01-28 Rainer Orth + + * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports + -Bstatic/-Bdynamic. + * configure: Regenerate. + +2011-01-27 Joseph Myers + + * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile. + * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile. + +2011-01-27 Anatoly Sokolov + + * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove. + * config/s390/s390-protos.h (s390_preferred_reload_class): Remove. + * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define. + (s390_preferred_reload_class): Make static. Change return and + 'rclass' argument type to reg_class_t. + +2011-01-27 Jan Hubicka + + PR middle-end/46949 + * cgraphunit.c (process_common_attributes): Fix use of remove_attribute. + (process_function_and_variable_attributes): Check defined weakrefs. + +2011-01-27 Martin Jambor + + PR tree-optimization/47228 + * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of + build_ref_for_offset. + +2011-01-27 Ulrich Weigand + + * config/spu/spu-elf.h (ASM_SPEC): Remove. + +2011-01-26 Mikael Pettersson + + PR rtl-optimization/46856 + * postreload.c (reload_combine_recognize_const_pattern): Do not + separate cc0 setter and user on cc0 targets. + +2011-01-26 Nicola Pero + + PR c/43082 + * c-typeck.c (c_objc_common_truthvalue_conversion): If we are + passed a VOID_TYPE expression, immediately emit an error and + return error_mark_node. + +2011-01-26 Jeff Law + + PR rtl-optimization/47464 + * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p + rather than may_trap_p as needed. + +2011-01-26 DJ Delorie + + PR rtl-optimization/46878 + * combine.c (insn_a_feeds_b): Check for the implicit cc0 + setter/user dependency as well. + +2011-01-26 Eric Botcazou + + PR rtl-optimization/44469 + * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too + after removing trivially dead basic blocks. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}. + * config/frv/frv.h (LINK_SPEC): Likewise. + * config/i386/netware.h (LINK_SPEC): Likewise. + * config/m68k/linux.h (ASM_SPEC): Likewise. + * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise. + * config/rs6000/sysv4.h (LINK_SPEC): Likewise. + * config/rs6000/vxworks.h (ASM_SPEC): Likewise. + * config/sparc/linux.h (ASM_SPEC): Likewise. + * config/sparc/linux64.h (ASM_SPEC): Likewise. + * config/sparc/sp-elf.h (ASM_SPEC): Likewise. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}. + * config/frv/frv.h (ASM_SPEC): Likewise. + * config/m68k/linux.h (ASM_SPEC): Likewise. + * config/pa/pa-linux.h (ASM_SPEC): Likewise. + * config/rs6000/linux64.h (ASM_SPEC): Likewise. + * config/rs6000/vxworks.h (ASM_SPEC): Likewise. + * config/sparc/linux.h (ASM_SPEC): Likewise. + * config/sparc/linux64.h (ASM_SPEC): Likewise. + * config/sparc/sp-elf.h (ASM_SPEC): Likewise. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}. + * config/frv/frv.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_SPEC): Likewise. + +2011-01-26 Joseph Myers + + * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}. + * config/frv/frv.h (ASM_SPEC): Likewise. + * config/i386/sol2-10.h (ASM_SPEC): Likewise. + * config/m68k/linux.h (ASM_SPEC): Likewise. + * config/pa/pa-linux.h (ASM_SPEC): Likewise. + * config/rs6000/linux64.h (ASM_SPEC32): Likewise. + * config/rs6000/vxworks.h (ASM_SPEC): Likewise. + * config/sol2.h (ASM_SPEC): Remove comment about -Yd,. + * config/sparc/linux.h (ASM_SPEC): Likewise. + * config/sparc/linux64.h (ASM_SPEC): Likewise. + * config/sparc/sp-elf.h (ASM_SPEC): Likewise. + * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}. + +2011-01-26 Steve Ellcey + + PR target/46997 + * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN. + (*mux2): Ditto. + (vec_extract_evenodd_help): Ditto. + (vec_extract_evenv4hi): Ditto. + (vec_extract_oddv4hi): Ditto. + (vec_interleave_lowv2si): Ditto. + (vec_interleave_highv2si): Ditto. + (vec_extract_evenv2si): Ditto. + (vec_extract_oddv2si: Ditto. + (vec_pack_trunc_v2si): Ditto. + +2011-01-22 Jan Hubicka + + PR target/47237 + * cgraph.h (cgraph_local_info): New field can_change_signature. + * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee + signature can change. + (ipcp_estimate_growth): Call sequence simplify only if calle signature + can change. + (ipcp_insert_stage): Only compute args_to_skip if signature can change. + (cgraph_function_versioning): We can not change signature of functions + that don't allow that. + * lto-cgraph.c (lto_output_node): Stream local.can_change_signature. + (lto_input_node): Likewise. + * ipa-inline.c (compute_inline_parameters): Compute + local.can_change_signature. + * ipa-split.c (visit_bb): Never split away APPLY_ARGS. + * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on + functions that can not change signature. + * i386.c (ix86_function_regparm, ix86_function_sseregparm, + init_cumulative_args): Do not use local calling conventions + for functions that can not change signature. + +2011-01-22 Jan Hubicka + + * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk. + +2011-01-26 Richard Guenther + + PR tree-optimization/47190 + * cgraphunit.c (process_common_attributes): New function. + (process_function_and_variable_attributes): Use it. + +2011-01-26 Richard Guenther + + PR lto/47423 + * cgraphbuild.c (record_eh_tables): Record reference to personality + function. + +2011-01-26 Alexandre Oliva + + PR debug/45454 + * sel-sched.c (moveup_expr): Don't let debug insns prevent + non-debug insns from moving up. + +2011-01-26 Dave Korn + + PR target/40125 + * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable + t-dlldir{,-x} fragment for build and add it to tmake_file. + (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. + * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc. + * config/i386/t-dlldir: New file. + (SHLIB_DLLDIR): Define. + * config/i386/t-dlldir-x: New file. + (SHLIB_DLLDIR): Define. + * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set. + (SHLIB_INSTALL): Use it. + +2011-01-26 Chung-Lin Tang + + PR target/47246 + * config/arm/arm.c (thumb2_legitimate_index_p): Change the + lower bound of the allowed Thumb-2 coprocessor load/store + index range to -256. Add explaining comment. + +2011-01-25 Ian Lance Taylor + + * godump.c (go_define): Improve lexing of macro expansion to only + accept expressions which match Go spec. + +2011-01-26 Dave Korn + + PR c++/43601 + * tree.c (handle_dll_attribute): Handle it. + * doc/extend.texi (@item dllexport): Mention it. + * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it. + +2011-01-25 Ian Lance Taylor + + PR tree-optimization/26854 + * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl. + (decl_jump_unsafe): Move higher in file, with no other change. + (bind): Set has_jump_unsafe_decl if appropriate. + (update_label_decls): Test has_jump_unsafe_decl to avoid loop. + (check_earlier_gotos): Likewise. + (c_check_switch_jump_warnings): Likewise. + +2011-01-25 Jonathan Wakely + + * doc/invoke.texi (Warning Options): Add missing hyphen. + (-fprofile-dir): Minor grammatical fixes. + (-fbranch-probabilities): Likewise. + +2011-01-25 Alexandre Oliva + + PR debug/45136 + PR debug/45130 + * haifa-sched.c (get_ebb_head_tail): Move notes across boundary + debug insns. + (no_real_insns_p, schedule_block, set_priorities): Drop special + treatment of boundary debug insns. + * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. + * sched-ebb.c (schedule_ebbs): Don't skip debug insns. + * sched-int.h (DEBUG_INSN_SCHED_P): Remove. + (BOUNDARY_DEBUG_INSN_P): Likewise. + (SCHEDULE_DEBUG_INSN_P): Likewise. + * sched-rgn.c (init_ready_list): Drop special treatment of + boundary debug insns. + * final.c (rest_of_clean-state): Clear notes' BB. + +2011-01-25 Sebastian Pop + + * Makefile.in (LAMBDA_H): Removed. + (TREE_DATA_REF_H): Remove dependence on LAMBDA_H. + (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o, + lambda-trans.o, and tree-loop-linear.o. + (lto-symtab.o): Remove dependence on LAMBDA_H. + (tree-loop-linear.o): Remove rule. + (lambda-mat.o): Same. + (lambda-trans.o): Same. + (lambda-code.o): Same. + (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H. + (tree-vect-slp.o): Same. + * hwint.h (gcd): Moved here. + (least_common_multiple): Same. + * lambda-code.c: Removed. + * lambda-mat.c: Removed. + * lambda-trans.c: Removed. + * lambda.h: Removed. + * tree-loop-linear.c: Removed. + * lto-symtab.c: Do not include lambda.h. + * omega.c (gcd): Removed. + * passes.c (init_optimization_passes): Remove pass_linear_transform. + * tree-data-ref.c (print_lambda_vector): Moved here. + (lambda_vector_copy): Same. + (lambda_matrix_copy): Same. + (lambda_matrix_id): Same. + (lambda_vector_first_nz): Same. + (lambda_matrix_row_add): Same. + (lambda_matrix_row_exchange): Same. + (lambda_vector_mult_const): Same. + (lambda_vector_negate): Same. + (lambda_matrix_row_negate): Same. + (lambda_vector_equal): Same. + (lambda_matrix_right_hermite): Same. + * tree-data-ref.h: Do not include lambda.h. + (lambda_vector): Moved here. + (lambda_matrix): Same. + (dependence_level): Same. + (lambda_transform_legal_p): Removed declaration. + (lambda_collect_parameters): Same. + (lambda_compute_access_matrices): Same. + (lambda_vector_gcd): Same. + (lambda_vector_new): Same. + (lambda_vector_clear): Same. + (lambda_vector_lexico_pos): Same. + (lambda_vector_zerop): Same. + (lambda_matrix_new): Same. + * tree-flow.h (least_common_multiple): Removed declaration. + * tree-parloops.c (lambda_trans_matrix): Moved here. + (LTM_MATRIX): Same. + (LTM_ROWSIZE): Same. + (LTM_COLSIZE): Same. + (LTM_DENOMINATOR): Same. + (lambda_trans_matrix_new): Same. + (lambda_matrix_vector_mult): Same. + (lambda_transform_legal_p): Same. + * tree-pass.h (pass_linear_transform): Removed declaration. + * tree-ssa-loop.c (tree_linear_transform): Removed. + (gate_tree_linear_transform): Removed. + (pass_linear_transform): Removed. + (gate_graphite_transforms): Make flag_tree_loop_linear an alias of + flag_loop_interchange. + +2011-01-25 Jakub Jelinek + + PR tree-optimization/47265 + PR tree-optimization/47443 + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false + if name still has some uses. + +2011-01-25 Martin Jambor + + PR tree-optimization/47382 + * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed. + (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call. + +2011-01-25 Joel Sherrill + + * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to + sjlj_except_unwind_info. + +2011-01-25 Richard Guenther + + PR tree-optimization/47426 + * tree-ssa-structalias.c (ipa_pta_execute): Make externally + visible functions results escape. + +2011-01-25 Jakub Jelinek + + PR target/45701 + * config/arm/arm.c (any_sibcall_uses_r3): New function. + (arm_get_frame_offsets): Use it. + +2011-01-25 Sebastian Pop + Jakub Jelinek + + PR tree-optimization/47271 + * tree-if-conv.c (bb_postdominates_preds): New. + (if_convertible_bb_p): Call bb_postdominates_preds. + (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS. + (predicate_scalar_phi): Call bb_postdominates_preds. + +2011-01-25 Nick Clifton + + * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types. + * config/rx/rx.c (rx_function_value): Likewise. + (rx_promote_function_mode): Likewise. + (gen_safe_add): Place an outsized immediate value inside an UNSPEC + in order to make it legitimate. + * config/rx/rx.md (adddi3_internal): If the second operand is a MEM + make sure that the first operand is the same as the result register. + (addsi3_unspec): Delete. + (subdi3): Do not accept immediate operands. + (subdi3_internal): Likewise. + +2011-01-25 Jeff Law + + PR rtl-optimization/37273 + * ira-costs.c (scan_one_insn): Detect constants living in memory and + handle them like argument loads from stack slots. Do not double + count memory for memory constants and argument loads from stack slots. + +2011-01-25 Jakub Jelinek + + PR tree-optimization/47427 + PR tree-optimization/47428 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't + coalesce if the new root var would be TREE_READONLY. + +2011-01-25 Richard Guenther + + PR middle-end/47414 + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the + correct type for TBAA. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New. + (close_phi_written_to_memory): Call for_each_index with + dr_indices_valid_in_loop. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN + when it is initialized. + +2011-01-25 Sebastian Pop + + * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update + call to graphite_find_data_references_in_stmt. + * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New. + (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update + call to graphite_find_data_references_in_stmt. + (analyze_drs_in_stmts): Same. + * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop + in which the scalar analysis of indices is performed. + (create_data_ref): Same. Update call to dr_analyze_indices. + (find_data_references_in_stmt): Update call to create_data_ref. + (graphite_find_data_references_in_stmt): Same. + * tree-data-ref.h (graphite_find_data_references_in_stmt): Update + declaration. + (create_data_ref): Same. + * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update + call to create_data_ref. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (build_poly_scop): Move + rewrite_commutative_reductions_out_of_ssa before find_scop_parameters. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow + VAR_DECL, PARM_DECL, and RESULT_DECL. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (reduction_dr_1): Allow several reductions + in a reduction PBB. + * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs + that have already been marked as PBB_IS_REDUCTION. + +2011-01-25 Sebastian Pop + + * graphite-scop-detection.c (same_close_phi_node): New. + (remove_duplicate_close_phi): New. + (make_close_phi_nodes_unique): New. + (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (new_poly_ddr): Call same_pdr_p. + * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE + of both data references to be the same. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (build_lexicographical_constraint): Remove + the gdim parameter. + (build_lexicographical_constraint): Adjust call to + ppl_powerset_is_empty. + (dependence_polyhedron): Same. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params + parameter. + * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. + +2011-01-25 Sebastian Pop + + * graphite-sese-to-poly.c + (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr. + (close_phi_written_to_memory): New. + (translate_scalar_reduction_to_array): Call close_phi_written_to_memory + and unshare_expr. + +2011-01-25 Sebastian Pop + + * doc/install.texi: Update the expected version number of PPL to 0.11. + * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under + #if PPL_VERSION_MINOR < 11. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c: Include graphite-cloog-util.h. + (new_poly_ddr): Inlined into dependence_polyhedron. + (free_poly_ddr): Moved close by new_poly_ddr. + (dependence_polyhedron_1): Renamed dependence_polyhedron. + Early return NULL when ppl_powerset_is_empty returns true. + (dependence_polyhedron): Renamed new_poly_ddr. Call only once + poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty. + (graphite_legal_transform_dr): Call new_poly_ddr. + (graphite_carried_dependence_level_k): Same. + (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr. + (dot_transformed_deps_stmt_1): Removed. + (dot_deps_stmt_1): Call dot_deps_stmt_2. + (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr. + (dot_deps_1): Call dot_deps_2. + * Makefile.in (graphite-dependences.o): Add missing dependence on + graphite-cloog-util.h. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty. + (build_lexicographical_constraint): Same. + (dependence_polyhedron_1): Same. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-ppl.c (ppl_powerset_is_empty): New. + * graphite-ppl.h (ppl_powerset_is_empty): Declared. + * tree-data-ref.c (dump_data_reference): Print the basic block index. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (build_pairwise_scheduling): Correctly compute + the "a followed by b" relation and document it. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (build_lexicographical_constraint): Stop the + iteration when the bag of constraints is empty. + +2011-01-25 Sebastian Pop + + * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. + +2011-01-25 Sebastian Pop + + * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop + nest and two loop depths as parameters. + (lst_try_interchange_loops): Call lst_interchange_profitable_p after + lst_perfect_nestify. + +2011-01-25 Sebastian Pop + + * graphite-dependences.c (print_pddr): Call + ppl_io_fprint_Pointset_Powerset_C_Polyhedron. + +2011-01-25 Sebastian Pop + + * graphite-ppl.c (debug_gmp_value): New. + * graphite-ppl.h (debug_gmp_value): Declared. + +2011-01-25 Tobias Grosser + + * doc/install.texi: Document availability of cloog-0.16. + +2011-01-25 Vladimir Kargov + + * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free + invalid postdominance info. + +2011-01-24 Jan Hubicka + + PR c/21659 + * doc/extend.texi (weak pragma): Drop claim that it must + appear before definition. + * varasm.c (merge_weak, declare_weak): Only sanity check + that DECL is not output at a time it is declared weak. + +2011-01-24 Kenneth Zadeck + + * machmode.def: Fixed comments. + +2011-01-24 Kai Tietz + + * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t. + +2011-01-24 Paul Koning + + * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN != + WORDS_BIG_ENDIAN. + +2011-01-24 H.J. Lu + + PR target/46519 + * config/i386/i386.c: Include sbitmap.h and fibheap.h. + (block_info): Add scanned and prev. + (move_or_delete_vzeroupper_2): Return if the basic block + has been scanned and the upper 128bit state is unchanged + from the last scan. + (move_or_delete_vzeroupper_1): Return true if the exit + state is changed. + (move_or_delete_vzeroupper): Visit basic blocks using the + work-list based algorithm based on vt_find_locations in + var-tracking.c. + + * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H). + +2011-01-24 Nick Clifton + + * config/v850/v850.opt (mv850es): New option - alias for -mv850e1. + * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass + -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified + then define __v850e1__. + * doc/invoke.texi: Document -mv850es. + +2011-01-24 Richard Henderson + + * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept + compound unordered comparisons. + * config/rx/rx.c (rx_split_fp_compare): Remove. + * config/rx/rx-protos.h: Update. + * config/rx/rx.md (gcc_conds, rx_conds): Remove. + (cbranchsf4): Don't call rx_split_fp_compare. + (*cbranchsf4): Use rx_split_cbranch. + (*cmpsf): Don't accept "i" constraint. + (*conditional_branch): Only valid after reload. + (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare. + +2011-01-24 Michael Meissner + + PR target/47385 + * config/rs6000/altivec.md (vector constant splitters): Add + support for creating vector single precision constants if -mvsx is + used and we would create the constant using Altivec primitives. + +2011-01-23 Bernd Schmidt + Richard Sandiford + + PR rtl-optimization/47166 + * reload1.c (emit_reload_insns): Disable the spill_reg_store + mechanism for PRE_MODIFY and POST_MODIFY. + (inc_for_reload): For PRE_MODIFY, return the insn that sets the + reloadreg. + +2011-01-23 Andreas Schwab + + * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers. + +2011-01-22 Jan Hubicka + + PR lto/47333 + * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto. + +2011-01-22 Jan Hubicka + + PR tree-optimization/43884 + PR lto/44334 + * predict.c (maybe_hot_frequency_p): Use entry block frequency as base. + * doc/invoke.texi (hot-bb-frequency-fraction): Update docs. + +2011-01-22 Anatoly Sokolov + + * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. + * config/s390/s390.c (s390_register_move_cost, + s390_memory_move_cost): New. + (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. + +2011-01-22 Ulrich Weigand + + PR middle-end/47401 + * except.c (sjlj_assign_call_site_values): Move setting the + crtl->uses_eh_lsda flag to ... + (sjlj_mark_call_sites): ... here. + (sjlj_emit_function_enter): Support NULL dispatch label. + (sjlj_build_landing_pads): In a function with no landing pads + that still has must-not-throw regions, generate code to register + a personality function with empty LSDA. + +2011-01-21 Richard Henderson + + * config/rx/rx.c (TARGET_FLAGS_REGNUM): New. + + * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New. + + * compare-elim.c: New file. + * Makefile.in (OBJS-common): Add it. + (compare-elim.o): New. + * common.opt (fcompare-elim): New. + * opts.c (default_options_table): Add OPT_fcompare_elim. + * tree-pass.h (pass_compare_elim_after_reload): New. + * passes.c (init_optimization_passes): Add it. + * recog.h: Protect against re-inclusion. + * target.def (TARGET_FLAGS_REGNUM): New POD hook. + * doc/invoke.texi (-fcompare-elim): Document it. + * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it. + * doc/tm.texi: Rebuild. + +2011-01-22 Nick Clifton + + * config/rx/rx.md (cstoresf4): Pass comparison operator to + rx_split_fp_compare. + +2011-01-22 Nick Clifton + + * config/rx/rx.md (UNSPEC_CONST): New. + (deallocate_and_return): Wrap the amount popped off the stack in + an UNSPEC_CONST in order to stop it being rejected by + -mmax-constant-size. + (pop_and_return): Add a "(return)" rtx. + (call): Drop the immediate operand. + (call_internal): Likewise. + (call_value): Likewise. + (call_value_internal): Likewise. + (sibcall_internal): Likewise. + (sibcall_value_internal): Likewise. + (sibcall): Likewise. Generate an explicit call using + sibcall_internal. + (sibcall_value): Likewise. + (mov<>): FAIL if a constant operand is not legitimate. + (addsi3_unpsec): New pattern. + + * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs. + (ok_for_max_constant): New function. + (gen_safe_add): New function. + (rx_expand_prologue): Use gen_safe_add. + (rx_expand_epilogue): Likewise. + (rx_is_legitimate_constant): Use ok_for_max_constant. Handle + UNSPEC CONSTs. + +2011-01-21 Jeff Law + + PR tree-optimization/47053 + * tree-ssa-dse.c (need_eh_cleanup): New bitmap. + (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when + statements are deleted. + (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP + is nonempty, then purge dead edges and cleanup the CFG. + +2011-01-21 Alexandre Oliva + + PR debug/47402 + Temporarily revert: + 2011-01-21 Alexandre Oliva + PR debug/47106 + * tree-dfa.c (create_var_ann): Mark variable as used. + +2011-01-21 Jakub Jelinek + + PR middle-end/45566 + * except.c (convert_to_eh_region_ranges): Emit queued no-region + notes from other section in hot/cold partitioning even if + last_action is -3. Increment call_site_base. + + PR rtl-optimization/47366 + * fwprop.c (forward_propagate_into): Return bool. If + any changes are made, -fnon-call-exceptions is used and + REG_EH_REGION note is present, call purge_dead_edges + and return true if it purged anything. + (fwprop_addr): Adjust callers, call cleanup_cfg (0) if + any EH edges were purged. + +2011-01-21 Jeff Law + + PR rtl-optimization/41619 + * caller-save.c (setup_save_areas): Break out code to determine + which hard regs are live across calls by examining the reload chains + so that it is always used. + Eliminate code which checked REG_N_CALLS_CROSSED. + +2011-01-21 Jakub Jelinek + + PR tree-optimization/47355 + * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if + NOP has non-debug uses beyond PHIs in new_bb. + +2011-01-21 Alexandre Oliva + + PR debug/47106 + * cfgexpand.c (account_used_vars_for_block): Only account vars + that are annotated as used. + (estimated_stack_frame_size): Don't set TREE_USED. + * tree-dfa.c (create_var_ann): Mark variable as used. + +2011-01-21 Richard Guenther + + PR middle-end/47395 + * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name. + +2011-01-21 Richard Guenther + + PR tree-optimization/47365 + * tree-ssa-sccvn.h (vn_lookup_kind): Declare. + (vn_reference_lookup_pieces): Adjust. + (vn_reference_lookup): Likewise. + * tree-ssa-sccvn.c (vn_walk_kind): New static global. + (vn_reference_lookup_3): Only look through kills if in + VN_WALKREWRITE mode. + (vn_reference_lookup_pieces): Adjust. + (vn_reference_lookup): Likewise. + (visit_reference_op_load): Likewise. + (visit_reference_op_store): Likewise. + * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode. + (compute_avail): Likewise. + (eliminate): Likewise. + +2011-01-21 Jakub Jelinek + + * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove + DECL_IGNORED_P non-reg vars if they are used. + + PR tree-optimization/47391 + * varpool.c (const_value_known_p): Return false if + decl is volatile. + +2011-01-21 Kai Tietz + + PR bootstrap/47215 + * config/i386/i386.c (ix86_local_alignment): Handle + case for va_list_type_node is nil. + (ix86_canonical_va_list_type): Likewise. + +2011-01-21 Alan Modra + + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add + builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__. + +2011-01-20 Ramana Radhakrishnan + + * config/arm/arm.md (define_attr type): Rename f_load + and f_store to f_fpa_load and f_fpa_store. Update. + (write_conflict): Deal with rename fallout. + (*push_fp_multi): Likewise. + * config/arm/fpa.md (f_load): Use f_fpa_load. + (f_store): Use f_fpa_store. + (*movsf_fpa): Likewise. + (*movdf_fpa): Likewise. + (*movxf_fpa): Likewise. + (*thumb2_movsf_fpa): Likewise. + (*thumb2_movdf_fpa): Likewise. + (*thumb2_movxf_fpa): Likewise. + * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to + f_loadd and f_stored. + (*thumb2_movdi_vfp): Likewise. + (*thumb2_movsf_vfp): Fix attribute to f_loads. + (*thumb2_movsi_vfp): Likewise. + * config/arm/cortex-m4-fpu.md (cortex_m4_f_load): + Use f_loads instead of f_load. + * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load. + +2011-01-20 Anatoly Sokolov + + * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove. + * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + (xtensa_mode_dependent_address_p): New function. + (constantpool_address_p): Make static. Change return type to bool. + Change argument type to const_rtx. Use CONST_INT_P predicate. + +2011-01-20 Alexandre Oliva + + PR debug/46583 + * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls. + +2011-01-20 Jakub Jelinek + + PR debug/47283 + * cfgexpand.c (expand_debug_expr): Instead of generating + (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF + etc. handling. + +2011-01-20 Richard Guenther + + PR middle-end/47370 + * tree-inline.c (remap_gimple_op_r): Recurse manually for + the pointer operand of MEM_REFs. + +2011-01-20 Jakub Jelinek + + PR tree-optimization/46130 + * ipa-split.c (consider_split): If return_bb contains non-virtual + PHIs other than for retval or if split_function would not adjust it, + refuse to split. + +2011-01-20 Richard Guenther + + PR tree-optimization/47167 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Revert previous change, only avoid enumeral type changes. + +2011-01-19 Mike Stump + + * doc/tm.texi.in (BRANCH_COST): Englishify. + * doc/tm.texi (BRANCH_COST): Likewise. + +2011-01-19 Dodji Seketeli + + PR c++/47291 + * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen) + (gen_scheduled_generic_parms_dies): New functions. + (gen_struct_or_union_type_die): Schedule template parameters DIEs + generation for the end of CU compilation. + (dwarf2out_finish): Generate template parameters DIEs here. + +2011-01-19 Alexandre Oliva + + PR debug/46240 + * tree-into-ssa.c (maybe_register_def): Do not attempt to add + debug bind stmt on merge edges. + +2011-01-19 Alexandre Oliva + + PR debug/47079 + PR debug/46724 + * function.c (instantiate_expr): Instantiate incoming rtl of + implicit arguments, and recurse on VALUE_EXPRs. + (instantiate_decls): Instantiate rtl and VALUE_EXPR of result. + * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx. + +2011-01-19 Alexandre Oliva + + * c-parser.c (c_parser_for_statement): Initialize + collection_expression. + +2011-01-19 Joseph Myers + + * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}. + +2011-01-19 Joseph Myers + + * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove. + (LINK_SHLIB_SPEC): Don't use %(link_path). + (SUBTARGET_EXTRA_SPECS): Remove link_path. + +2011-01-19 Joseph Myers + + * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional. + (NO_SHARED_LIB_SUPPORT): Remove. + (LINK_SHLIB_SPEC): Remove one conditional definition. + +2011-01-19 Joseph Myers + + * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared} + %{call_shared}. + * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}. + * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}. + * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared} + %{call_shared} and conditionals on these options not being passed. + * config/mips/sde.h (LINK_SPEC): Remove %{non_shared} + %{call_shared}. + +2011-01-19 Jakub Jelinek + + * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge, + simplify. + + * ipa-split.c: Spelling fixes. + +2011-01-19 Richard Henderson + + * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand. + (*mulsi3): Likewise. + + * longlong.h [__mn10300__] (count_leading_zeros): New. + [__mn10300__] (umul_ppmm, smul_ppmm): New. + [__mn10300__] (add_ssaaaa, subddmmss): New. + [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New. + [__mn10300__] (UMUL_TIME, UDIV_TIME): New. + +2011-01-19 Ulrich Weigand + + * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case. + +2011-01-19 Richard Henderson + + * config/mn10300/mn10300.md (addsi3_flags): New. + (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New. + (subsi3_flags, subc_internal, subdi3): New. + (subdi3_internal, *subdi3_degenerate): New. + * config/mn10300/predicates.md (reg_or_am33_const_operand): New. + + * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New. + (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn. + (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn. + (return_ret): Likewise. Rename from return_internal_regs. + (return_internal): Remove. + + * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove. + (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL. + (mn10300_legitimate_constant_p): Likewise. + (mn10300_can_use_return_insn): Use mn10300_initial_offset. + (mn10300_frame_size): New. + (mn10300_expand_prologue): Use it. + (mn10300_expand_epilogue): Likewise. + (mn10300_initial_offset): Likewise. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove. + * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove. + (prologue, epilogue, return_internal): Tidy output code. + (mn10300_store_multiple_operation, return): Likewise. + (int_label, pop_pic_reg, GOTaddr2picreg): Remove. + (am33_loadPC, mn10300_loadPC, call_next_insn): Remove. + (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove. + (load_pic, am33_load_pic): New. + (mn10300_load_pic0, mn10300_load_pic1): New. + + * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes. + * config/mn10300/mn10300.c (CC_FLAG_Z): New. + (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New. + (cc_flags_for_mode, cc_flags_for_code): New. + (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the + overflow flag is not valid. Validate that the flags we need + for the comparison are valid. + (mn10300_output_cmp): Remove. + (mn10300_output_add): New. + (mn10300_select_cc_mode): Use cc_flags_for_code. + (mn10300_split_cbranch): New. + (mn10300_match_ccmode): New. + (mn10300_split_and_operand_count): New. + * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments + to the function. + * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge... + (addsi3): ... here. Use mn10300_output_add. + (*addsi3_flags): New. + (*am33_subsi3, *mn10300_subsi3): Merge... + (subsi3): ... here. Use attribute isa. + (*subsi3_flags): New. + (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC + when possible. + (*am33_andsi3, *mn10300_andsi3): Merge... + (andsi3): ... here. + (*andsi3_flags): New. + (andsi3 splitters): New. + (*am33_iorsi3, *mn10300_iorsi3): Merge... + (iorsi3): ... here. + (*iorsi3_flags): New. + (*am33_xorsi3, *mn10300_xorsi3): Merge... + (xorsi3): ... here. + (*xorsi3_flags): New. + (*am33_cmpsi2, *mn10300_cmplsi2): Merge... + (one_cmplsi2): ... here. + (*one_cmplsi2_flags): New. + (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r" + instead of "dax" in constraints. Use mn10300_split_cbranch. + (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not + use matching constraints to eliminate a self-comparison. + (*integer_conditional_branch): Rename from integer_conditional_branch. + Use int_mode_flags to match CC_REG. + (*cbranchsi4_btst, *btstsi): New. + (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use + mn10300_split_cbranch. + (*am33_cmpsf): Rename from am33_cmpsf. + (*float_conditional_branch): Rename from float_conditional_branch. + (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge... + (zero_extendqisi2): ... here. + (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge... + (zero_extendhisi2): ... here. + (*extendqisi2_am33, *extendqisi2_mn10300): Merge... + (extendqisi2): ... here. + (*extendhisi2_am33, *extendhisi2_mn10300): Merge... + (extendhisi2): ... here. + (*am33_ashlsi3, *mn10300_ashlsi3): Merge... + (ashlsi3): ... here. + (*am33_lshrsi3, *mn10300_lshrsi3): Merge... + (lshrsi3): ... here. + (*am33_ashrisi3, *mn10300_ashrsi3): Merge... + (ashrsi3): ... here. + (consecutive add peephole): Remove. + * config/mn10300/predicates.md (label_ref_operand): New. + (int_mode_flags): New. + (CCZN_comparison_operator): New. + + * config/mn10300/mn10300.md (UNSPEC_EXT): New. + (throughput_42_latency_43): New reservation. + (mulsidi3, umulsidi3): New expanders. + (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose + the MDR register to allocation; separately allocate the low and + high parts of the DImode result. + (umulsidi3_internal): Similarly. + (*am33_mulsi3, *mn10300_mulsi3): Merge into ... + (*mulsi3): ... here. Clobber MDR as a scratch as necessary. + (udivsi3, umodsi3): Remove. + (udivmodsi4, divmodsi4): New expanders. + (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly. + (*divmodsi4): Simiarly. + (ext_internal): New. + + * config/mn10300/constraints.md ("z"): New constraint. + * config/mn10300/mn10300.h (MDR_REGNUM): Remove. + (FIXED_REGISTERS): Don't fix MDR. + (CALL_USED_REGSITERS): Reformat nicely. + (REG_ALLOC_ORDER): Add MDR. + (enum regclass): Add MDR_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match. + (IRA_COVER_CLASSES): Add MDR_REGS. + (REGNO_REG_CLASS): Handle MDR_REG. + * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS. + (mn10300_register_move_cost): Likewise. + * config/mn10300/mn10300.md (MDR_REG): New. + (*movsi_internal): Handle moves to/from MDR_REGS. + + * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle + POST_MODIFY. + (mn10300_secondary_reload): Tidy combination reload classes. + (mn10300_legitimate_address_p): Allow post-modify and reg+reg + addresses for AM33. Allow symbolic offsets for reg+imm. + (mn10300_regno_in_class_p): New. + (mn10300_legitimize_reload_address): New. + * config/mn10300/mn10300.h (enum reg_class): Remove + DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS, + SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add + SP_OR_GENERAL_REGS. + (REG_CLASS_NAMES): Update to match. + (REG_CLASS_CONTENTS): Likewise. + (INDEX_REG_CLASS): Use GENERAL_REGS for AM33. + (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33. + (REGNO_IN_RANGE_P): Remove. + (REGNO_DATA_P): Use mn10300_regno_in_class_p. + (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise. + (REGNO_STRICT_OK_FOR_BASE_P): Likewise. + (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise. + (REGNO_STRICT_OK_FOR_INDEX_P): Likewise. + (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove. + (REGNO_GENERAL_P): New. + (HAVE_POST_MODIFY_DISP): New. + (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New. + (LEGITIMIZE_RELOAD_ADDRESS): New. + * config/mn10300/mn10300-protos.h: Update. + + * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow + DATA_REGS for AM33 stack-pointer destination. + (mn10300_preferred_output_reload_class): Likewise. + (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class + into a form appropriate for ... + (TARGET_SECONDARY_RELOAD): New. + * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from + reload_insi; use the "A" constraint for the scratch; handle AM33 + moves of sp to non-address registers. + + * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into + (*movqi_internal): ... here. + (*am33_movhi, *mn10300_movhi): Merge into... + (*movhi_internal): ... here. + (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A" + as the source/destination of moves from/to SP. + (movsf): Only allow for AM33-2. + (*movsf_internal): Use "r" instead of "dax"; use "F" instead of + any integer constant constraint. Only allow for AM33-2. Tidy + all of the alternative outputs. + (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove. + (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow + for MN103. + (udivsi3, umodsi3): New patterns for MN103 only. + +2011-01-19 Joern Rennecke + + * doc/tm.texi.in: Spell out that a lack of register class unions + can lead to ICEs. + * doc/tm.texi: Regenerate. + +2011-01-19 Jakub Jelinek + + PR rtl-optimization/47337 + * dce.c (check_argument_store): New function. + (find_call_stack_args): Ignore debug insns. Use check_argument_store. + + PR tree-optimization/47290 + * tree-eh.c (infinite_empty_loop_p): New function. + (cleanup_empty_eh): Use it. + +2011-01-18 Steve Ellcey + + PR target/46997 + * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN. + (a64_expand_widen_sum): Ditto. + * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN. + (vec_extract_evenodd_help): Ditto. + (vec_extract_evenv4hi): Ditto. + (vec_extract_oddv4hi): Ditto. + (vec_extract_evenv2si): Ditto. + (vec_extract_oddv2si): Ditto. + (vec_extract_evenv2sf): Ditto. + (vec_extract_oddv2sf): Ditto. + (vec_pack_trunc_v4hi: Ditto. + (vec_pack_trunc_v2si): Ditto. + (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN. + (vec_interleave_highv8qi): Ditto. + (mix1_r): Ditto. + (vec_extract_oddv8qi): Ditto. + (vec_interleave_lowv4hi): Ditto. + (vec_interleave_highv4hi): Ditto. + (vec_interleave_lowv2si): Ditto. + (vec_interleave_highv2si): Ditto. + +2011-01-18 John David Anglin + + * doc/extend.texi: Mention __float128 support on hppa HP-UX. + * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1. + * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h". + (pa_c_mode_for_suffix): New. + (TARGET_EXPAND_BUILTIN): Define. + (TARGET_C_MODE_FOR_SUFFIX): Define. + (pa_builtins): Define. + (pa_init_builtins): Register __float128 type and init new support + builtins. + * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined. + * config/pa/quadlib.c (_U_Qfcopysign): New. + +2011-01-18 Eric Botcazou + + PR middle-end/46894 + * explow.c (allocate_dynamic_stack_space): Do not assume more than + BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET + are defined. + +2011-01-18 Ulrich Weigand + + PR tree-optimization/47179 + * config/spu/spu.c (spu_ref_may_alias_errno): New function. + (TARGET_REF_MAY_ALIAS_ERRNO): Define. + +2011-01-18 Richard Guenther + + PR rtl-optimization/47216 + * emit-rtl.c: Include tree-flow.h. + (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead + of replicating it with different semantics. + * Makefile.in (emit-rtl.o): Adjust. + +2011-01-18 Ramana Radhakrishnan + + * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include. + (cortex_a9_dp): Handle neon types correctly. + +2011-01-18 Jakub Jelinek + + PR rtl-optimization/47299 + * expr.c (expand_expr_real_2) : Don't use + subtarget. Use normal multiplication if both operands are constants. + * expmed.c (expand_widening_mult): Don't try to optimize constant + multiplication if op0 has VOIDmode. Convert op1 constant to mode + before using it. + +2011-01-17 Ralf Wildenhues + + * doc/lto.texi (LTO): Ensure two spaces after period. Fix + spacing after 'e.g.', typos, comma, hyphenation. + +2011-01-17 Richard Henderson + + * config/rx/predicates.md (rx_constshift_operand): Use match_test. + (rx_restricted_mem_operand): New. + (rx_shift_operand): Use register_operand. + (rx_source_operand, rx_compare_operand): Likewise. + * config/rx/rx.md (addsi3_flags): New expander. + (adddi3): Rewrite as expander. + (adc_internal, *adc_flags, adddi3_internal): New patterns. + (subsi3_flags): New expander. + (subdi3): Rewrite as expander. + (sbb_internal, *sbb_flags, subdi3_internal): New patterns. + + * config/rx/rx.c (RX_BUILTIN_SAT): Remove. + (rx_init_builtins): Remove sat builtin. + (rx_expand_builtin): Likewise. + * config/rx/rx.md (ssaddsi3): New. + (*sat): Rename from sat. Represent the CC_REG input. + + * config/rx/predicates.md (rshift_operator): New. + * config/rx/rx.c (rx_expand_insv): Remove. + * config/rx/rx-protos.h: Update. + * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift + operand to the canonical position. + (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly. + (*bitclr, *bitclr_in_memory): Similarly. + (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New. + (insv): Retain the zero_extract in the expansion. + + * config/rx/rx.md (bswapsi2): Use = not + for output reload. + (bswaphi2, bitinvert, revw): Likewise. + + * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET. + (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. + * config/rx/rx.md (pop_and_return): Use VOIDmode for SET. + (stack_push, stack_pushm, stack_pop, stack_popm): Likewise. + (bitset, bitset_in_memory): Likewise. + (bitinvert, bitinvert_in_memory): Likewise. + (bitclr, bitclr_in_memory): Likewise. + (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise. + (rx_strend, rx_cmpstrn): Likewise. + (rx_setmem): Likewise. Make the source BLKmode to match the dest. + (bitop peep2 patterns): Remove. + + * config/rx/rx.c (rx_match_ccmode): New. + * config/rx/rx-protos.h: Update. + * config/rx/rx.md (abssi2): Clobber, don't set flags. + (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise. + (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise. + (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise. + (fix_truncsfsi2, floatsisf2): Likewise. + (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New. + (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New. + (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New. + (*subsi3_flags, *xorsi3_flags): New. + + * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns. + + * config/rx/rx.c (rx_print_operand): Remove workaround for + unsplit comparison operations. + + * config/rx/rx.md (movsicc): Split after reload. + (*movsicc): Merge *movsieq and *movsine via match_operator. + (*stcc): New pattern. + + * config/rx/rx.c (rx_float_compare_mode): Remove. + * config/rx/rx.h (rx_float_compare_mode): Remove. + * config/rx/rx.md (cstoresi4): Split after reload. + (*sccc): New pattern. + + * config/rx/predicates.md (label_ref_operand): New. + (rx_z_comparison_operator): New. + (rx_zs_comparison_operator): New. + (rx_fp_comparison_operator): New. + * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes. + Validate that the flags are set properly for the comparison. + (rx_gen_cond_branch_template): Remove. + (rx_cc_modes_compatible): Remove. + (mode_from_flags): New. + (flags_from_code): Rename from flags_needed_for_conditional. + (rx_cc_modes_compatible): Re-write in terms of flags_from_mode. + (rx_select_cc_mode): Likewise. + (rx_split_fp_compare): New. + (rx_split_cbranch): New. + * config/rx/rx.md (most_cond, zs_cond): Remove iterators. + (*cbranchsi4): Use match_operator and rx_split_cbranch. + (*cbranchsf4): Similarly. + (*cbranchsi4_tst): Rename from *tstbranchsi4_. Use + match_operator and rx_split_cbranch. + (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and + tstbranchsi4m_ne. Use match_operator and rx_split_cbranch. + (*cmpsi): Rename from cmpsi. + (*tstsi): Rename from tstsi. + (*cmpsf): Rename from cmpsf; use CC_Fmode. + (*conditional_branch): Rename from conditional_branch. + (*reveresed_conditional_branch): Remove. + (b): Remove expander. + * config/rx/rx-protos.h: Update. + + * config/rx/rx.c (rx_compare_redundant): Remove. + * config/rx/rx.md (cmpsi): Don't use it. + * config/rx/rx-protos.h: Update. + + * config/rx/rx-modes.def (CC_F): New mode. + * config/rx/rx.c (rx_select_cc_mode): New. + * config/rx/rx.h (SELECT_CC_MODE): Use it. + * config/rx/rx-protos.h: Update. + +2011-01-17 Richard Henderson + + * except.c (dump_eh_tree): Fix stray ; after for statement. + +2011-01-17 Richard Guenther + + PR tree-optimization/47313 + * tree-inline.c (tree_function_versioning): Move DECL_RESULT + handling before copying the body. Properly deal with + by-reference result in SSA form. + +2011-01-17 Ian Lance Taylor + + PR target/47219 + * config/sparc/sparc.c (sparc_sr_alias_set): Don't define. + (struct_value_alias_set): Don't define. + (sparc_option_override): Don't set sparc_sr_alias_set and + struct_value_alias_set. + (save_or_restore_regs): Use gen_frame_mem rather than calling + set_mem_alias_set. + (sparc_struct_value_rtx): Likewise. + +2011-01-17 H.J. Lu + + PR target/47318 + * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i. + (_mm_maskstore_pd): Likewise. + (_mm_maskload_ps): Likewise. + (_mm_maskstore_ps): Likewise. + (_mm256_maskload_pd): Change mask to __m256i. + (_mm256_maskstore_pd): Likewise. + (_mm256_maskload_ps): Likewise. + (_mm256_maskstore_ps): Likewise. + + * config/i386/i386-builtin-types.def: Updated. + (ix86_expand_special_args_builtin): Likewise. + + * config/i386/i386.c (bdesc_special_args): Update + __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps, + __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256, + __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps, + __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256. + + * config/i386/sse.md (avx_maskload): + Use on mask register. + (avx_maskstore): Likewise. + +2011-01-17 Olivier Hainque + Michael Haubenwallner + Eric Botcazou + + PR target/46655 + * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only + if <= USHRT_MAX in 32-bit mode. + +2011-01-17 Ralf Wildenhues + + * doc/install.texi (Configuration, Specific): Wrap long + lines in examples. Allow line wrapping in long options + and URLs where beneficial for PDF output. + +2011-01-16 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol): Don't return + SYMBOL_PC_RELATIVE for nonlocal labels. + +2011-01-15 Eric Botcazou + + * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo. + +2011-01-15 Jan Hubicka + + PR tree-optimization/47276 + * ipa.c (function_and_variable_visibility): Do not try to mark alias + declarations as needed. + +2011-01-15 Martin Jambor + + * common.opt (fdevirtualize): New flag. + * doc/invoke.texi (Option Summary): Document it. + * opts.c (default_options_table): Add devirtualize flag. + * ipa-prop.c (detect_type_change): Return immediately if + devirtualize flag is not set. + (detect_type_change_ssa): Likewise. + (compute_known_type_jump_func): Likewise. + (ipa_analyze_virtual_call_uses): Likewise. + +2011-01-14 Martin Jambor + + PR tree-optimization/45934 + PR tree-optimization/46302 + * ipa-prop.c (type_change_info): New type. + (stmt_may_be_vtbl_ptr_store): New function. + (check_stmt_for_type_change): Likewise. + (detect_type_change): Likewise. + (detect_type_change_ssa): Likewise. + (compute_complex_assign_jump_func): Check for dynamic type change. + (compute_complex_ancestor_jump_func): Likewise. + (compute_known_type_jump_func): Likewise. + (compute_scalar_jump_functions): Likewise. + (ipa_analyze_virtual_call_uses): Likewise. + (ipa_analyze_node): Push and pop cfun, set current_function_decl. + +2011-01-14 Joseph Myers + + * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5. + * config/i386/i386.opt (msse5): New Alias. + +2011-01-14 Joseph Myers + + * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}. + * config/sparc/linux64.h (CC1_SPEC): Likewise. + * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. + * config/sparc/sparc.h (CC1_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of + -mcpu options. + * config/sparc/linux64.h (CC1_SPEC): Likewise. + * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. + * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise. + * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC): + Likewise. + * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8. + +2011-01-14 Joseph Myers + + * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi. + +2011-01-14 Mike Stump + + * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set. + * config/fr30/fr30.md: Likweise + (movsi_push): Likewise. + (movsi_pop): Likewise. + (enter_func): Likewise. + * config/moxie/moxie.md (movsi_push): Likewise. + (movsi_pop): Likewise. + +2011-01-14 Joseph Myers + + * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum} + %{no_archive} %{exact_version}. + * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}. + * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum} + %{no_archive} %{exact_version}. + * config/mips/openbsd.h (LINK_SPEC): Likewise. + * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}. + * config/mips/vxworks.h: Likewise. + +2011-01-14 Joseph Myers + + * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}. + +2011-01-14 Joseph Myers + + * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC, + ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove. + +2011-01-14 Joseph Myers + + * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not + -nodefaultlib. + +2011-01-14 Joseph Myers + + * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check + for mcpu not cpu. + * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC, + CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu + not cpu. + (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options. + Don't handle -shlib. + +2011-01-14 Joseph Myers + + * config/avr/avr.h (CPP_SPEC): Don't handle -posix. + (CC1_SPEC): Don't handle -profile. + +2011-01-14 Joseph Myers + + * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec. + * config/mips/mips.h (CC1_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }. + * config/mips/mips.h (CC1_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional. + * config/m32r/linux.h (LINK_SPEC): Likewise. + * config/mips/linux.h (LINK_SPEC): Likewise. + * config/mips/linux64.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, + LINK_SPEC): Likewise. + * config/xtensa/linux.h (LINK_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove + %{version:-v}. + * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}. + * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. + +2011-01-14 Joseph Myers + + * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}. + +2011-01-14 Rainer Orth + + * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always + supports -Bstatic/-Bdynamic. + * configure: Regenerate. + +2011-01-14 Jan Hubicka + Jack Howarth + + PR target/46037 + * config/darwin.c (darwin_override_options): Honor flag_gtoggle + when checking debug_info_level. Test write_symbols instead of + debug_hooks->var_location when setting flag_var_tracking_uninit. + +2011-01-14 Richard Guenther + + PR tree-optimization/47179 + * target.def (ref_may_alias_errno): New target hook. + * targhooks.h (default_ref_may_alias_errno): Declare. + * targhooks.c: Include tree-ssa-alias.h and tree-flow.h. + (default_ref_may_alias_errno): New function. + * target.h (struct ao_ref_s): Declare. + * tree-ssa-alias.c: Include target.h. + (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook. + * Makefile.in (tree-ssa-alias.o): Adjust dependencies. + (targhooks.o): Likewise. + * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document. + * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation. + +2011-01-14 Richard Guenther + + * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER. + +2011-01-14 Richard Guenther + + PR tree-optimization/47280 + * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and + return CFG changes. + (tree_ssa_forward_propagate_single_use_vars): Deal with + CFG changes from associate_plusminus. + +2011-01-14 Richard Guenther + + PR middle-end/47281 + Revert + 2011-01-11 Richard Guenther + + PR tree-optimization/46076 + * tree-ssa.c (useless_type_conversion_p): Conversions from + unprototyped to empty argument list function types are useless. + +2011-01-14 Richard Guenther + + PR tree-optimization/47286 + * tree-ssa-structalias.c (new_var_info): Register variables are global. + +2011-01-14 Martin Jambor + + PR middle-end/46823 + * tree-inline.c (expand_call_inline): Get fndecl from call graph edge. + +2011-01-13 Anatoly Sokolov + + * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE, + LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. + * config/xtensa/xtensa.c (xtensa_libcall_value, + xtensa_function_value_regno_p): New functions. + (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. + +2011-01-13 Kai Tietz + + PR c++/47213 + * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY): + PE specific hook. + * config/i386/i386-protos.h (i386_pe_assemble_visibility): + New function prototype. + * config/i386/winnt.c (i386_pe_assemble_visibility): + Warn only if attribute was specified by user. + +2011-01-13 Michael Meissner + + PR target/47251 + * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware + floating point. + (floatunsdidf2_fcfidu): Ditto. + +2011-01-13 Andreas Krebbel + + * config/s390/s390.c (print_operand_address): Replace 'error' with + 'output_operand_lossage'. + (print_operand): Likewise. + +2011-01-13 Jeff Law + + PR rtl-optimization/39077 + * doc/invoke.texi (max-gcse-insertion-ratio): Document. + * params.h (MAX_GCSE_INSERTION_RATIO): Define. + * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define. + * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps. + * gcse.c (prune_insertions_deletions): New function. + (compute_pre_data): Use it. + +2011-01-13 Dodji Seketeli + + PR debug/PR46973 + * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New + static function. + (prune_unused_types_mark): Use it. + +2011-01-13 Andrey Belevantsev + + PR rtl-optimization/45352 + * sel-sched.c: Update copyright years. + (reset_sched_cycles_in_current_ebb): Also recheck the DFA state + in the advancing loop when we have issued issue_rate insns. + +2011-01-12 Richard Henderson + + * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New. + (TARGET_MD_ASM_CLOBBERS): New. + + * config/mn10300/mn10300.c (mn10300_delegitimize_address): New. + (TARGET_DELEGITIMIZE_ADDRESS): New. + + * config/mn10300/mn10300.md (UNSPEC_BSCH): New. + (clzsi2, *bsch): New patterns. + + * config/mn10300/mn10300.md (INT): New mode iterator. + (*mov_clr): New pattern, and peep2 to generate it. + + * config/mn10300/mn10300.c (mn10300_option_override): Force enable + flag_split_wide_types. + + * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove. + (mn10300_trampoline_init): Rewrite without a template, an immediate + load and a direct branch. + * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16. + +2011-01-12 Anatoly Sokolov + + * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove. + * config/s390/s390.c (s390_output_addr_const_extra): Make static. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + +2011-01-12 Kai Tietz + + PR debug/47209 + * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT + of type. + +2011-01-12 Jan Hubicka + + PR driver/47244 + * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used. + (PLUGIN_COND_CLOSE): New macro. + (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE. + +2011-01-12 Richard Guenther + + PR lto/47259 + * lto-streamer-out.c (output_gimple_stmt): Do not wrap + register variables in a MEM_REF. + +2011-01-12 Joseph Myers + + * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*, + crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*, + hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* | + i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | + i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, + x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu, + ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*, + m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*, + mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*, + s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*, + sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*, + am33_2.0-*-linux*): Use gnu-user.h before linux.h. + * config/gnu-user.h: New. Copied from linux.h. + (LINUX_TARGET_STARTFILE_SPEC): Rename to + GNU_USER_TARGET_STARTFILE_SPEC. + (LINUX_TARGET_ENDFILE_SPEC): Rename to + GNU_USER_TARGET_ENDFILE_SPEC. + (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC. + (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC. + (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, + LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1, + CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, + BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32, + BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64, + TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove. + * config/arm/linux-eabi.h (CC1_SPEC): Use + GNU_USER_TARGET_CC1_SPEC. + (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC. + (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC. + (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC + * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF, + LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC, + LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC, + CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC, + LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove. + +2011-01-12 Richard Guenther + + PR other/46946 + * doc/invoke.texi (ffast-math): Document it is turned on + with -Ofast. + +2011-01-12 Jan Hubicka + + PR tree-optimization/47233 + * opts.c (common_handle_option): Disable ipa-reference with profile + feedback. + +2011-01-12 Nicola Pero + + * c-parser.c (c_parser_objc_at_property_declaration): Improved + error message. + +2011-01-12 Nicola Pero + + * c-parser.c (c_lex_one_token): Updated and reindented some + comments. No changes in code. + +2011-01-11 Ian Lance Taylor + + * godump.c (go_output_var): Don't output the variable if there is + already a type with the same name. + +2011-01-11 Ian Lance Taylor + + * godump.c (go_format_type): Don't generate float80. + +2011-01-11 Richard Henderson + + * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward + declaration. Rewrite for both speed and size. + (mn10300_address_cost_1): Remove. + (mn10300_register_move_cost): New. + (mn10300_memory_move_cost): New. + (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle + ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare, + extensions, shifts, BSWAP, CLZ. + (mn10300_wide_const_load_uses_clr): Remove. + (TARGET_REGISTER_MOVE_COST): New. + (TARGET_MEMORY_MOVE_COST): New. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove. + + * config/mn10300/constraints.md ("R", "T"): Remove constraints. + * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.md (movsi_internal): Don't use "R". + (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove. + (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove. + (*test_int_bitfield, *test_byte_bitfield): Remove. + (*bit_test, *subreg_bit_test): Remove. + * config/mn10300/predicates.md (const_8bit_operand): Remove. + + * config/mn10300/constraints.md ("c"): Rename from "A". + ("A", "D"): New constraint letters. + * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint. + (fmssf4, fnmasf4, fnmssf4): Likewise. + + * config/mn10300/mn10300.md (isa): New attribute. + (enabled): New attribute. + + * config/mn10300/mn10300.md (absdf2, negdf2): Remove. + (abssf2, negsf2): Define only for hardware fp. + (sqrtsf2): Reformat. + (addsf3, subsf3, mulsf3): Merge expander and insn. + + * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New. + (DEBUGGER_AUTO_OFFSET): Remove. + (DEBUGGER_ARG_OFFSET): Remove. + + * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static. + Emit register stores with the same offsets as the hardware. + (mn10300_store_multiple_operation): Don't check that the register + save offsets are monotonic. + * config/mn10300/mn10300-protos.h: Update. + + * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete. + + * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define + in terms of the value on the stack, not the MDR register. + +2011-01-11 Jan Hubicka + + PR lto/45721 + PR lto/45375 + * tree.h (symbol_alias_set_t): Move typedef here from varasm.c + (symbol_alias_set_destroy, symbol_alias_set_contains, + propagate_aliases_backward): Declare. + * lto-streamer-out.c (struct sets): New sturcture. + (trivally_defined_alias): New function. + (output_alias_pair_p): Rewrite. + (output_unreferenced_globals): Fix output of alias pairs. + (produce_symtab): Likewise. + * ipa.c (function_and_variable_visibility): Set weak alias destination + as needed in lto. + * varasm.c (symbol_alias_set_t): Remove. + (symbol_alias_set_destroy): Export. + (propagate_aliases_forward, propagate_aliases_backward): New functions + based on ... + (compute_visible_aliases): ... this one; remove. + (trivially_visible_alias): New + (trivially_defined_alias): New. + (remove_unreachable_alias_pairs): Rewrite. + (finish_aliases_1): Reorganize code checking if alias is defined. + * passes.c (rest_of_decl_compilation): Do not call assemble_alias when + in LTO mode. + +2011-01-11 Richard Guenther + + PR tree-optimization/46076 + * tree-ssa.c (useless_type_conversion_p): Conversions from + unprototyped to empty argument list function types are useless. + +2011-01-11 Richard Guenther + + PR middle-end/45235 + * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark + volatile MEMs as MEM_READONLY_P. + +2011-01-11 Richard Guenther + + PR tree-optimization/47239 + * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs. + +2011-01-11 Jeff Law + + PR tree-optimization/47086 + * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record + IVs from statements that might throw. + +2011-01-10 Jan Hubicka + + PR lto/45375 + * lto-cgraph.c (input_profile_summary): Remove overactive sanity check. + +2011-01-10 Jan Hubicka + + PR lto/45375 + * profile.c (read_profile_edge_counts): Ignore profile inconistency + when correcting profile. + +2011-01-10 Jan Hubicka + + PR lto/46083 + * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store + DECL_FINI_PRIORITY. + * lto-streamer-in.c (unpack_ts_function_decl_value_fields): + Restore DECL_FINI_PRIORITY. + +2011-01-10 Ralf Wildenhues + + * doc/gimple.texi: Fix quoting of multi-word return values in + @deftypefn statements. Ensure presence of return value. Wrap + overlong @deftypefn lines. + (is_gimple_operand, is_gimple_min_invariant_address): Remove + descriptions of removed functions. + * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting + of multi-word return value in @deftypefn statement. + +2011-01-10 Ralf Wildenhues + + * doc/gimple.texi (Temporaries, Operands, Compound Lvalues) + (Conditional Expressions, Logical Operators) + (Statement and operand traversals): Do not indent smallexample + code. Fix duplicate function argument in example. + +2011-01-10 Jeff Law + + PR tree-optimization/47141 + * ipa-split.c (split_function): Handle case where we are + returning a value and the return block has a virtual operand phi. + +2011-01-10 Jan Hubicka + + PR tree-optimization/47234 + * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO. + (pass_feedback_split_functions): Declare. + * passes.c (init_optimization_passes): Add ipa-split as subpass of + tree-profile. + * ipa-split.c (gate_split_functions): Update comments; disable + split-functions for profile_arc_flag and branch_probabilities. + (gate_feedback_split_functions): New function. + (execute_feedback_split_functions): New function. + (pass_feedback_split_functions): New global var. + +2011-01-10 H.J. Lu + + PR lto/46760 + * tree-inline.c (tree_can_inline_p): Check e->call_stmt before + calling gimple_call_set_cannot_inline. + +2011-01-10 Iain Sandoe + + * config/darwin-sections.def: Remove unused section. + +2011-01-10 Dave Korn + + PR c++/47218 + * cgraphunit.c (assemble_thunk): Call resolve_unique_section. + +2011-01-09 Nicola Pero + + PR objc/47232 + * c-parser.c (c_parser_declaration_or_fndef): Improved + error message. + +2011-01-09 Kai Tietz + + * config/i386/winnt.c (i386_pe_start_function): Make sure + to switch back to function's section. + +2011-01-09 Iain Sandoe + + PR gcc/46902 + PR testsuite/46912 + * plugin.c: Move include of dlfcn.h from here... + * system.h: ... to here. + +2011-01-09 Ralf Wildenhues + + * doc/cpp.texi (C++ Named Operators): Fix markup for header + file name. + * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid + two extra empty pages in PDF output. + +2011-01-08 Nicola Pero + + PR objc/47078 + * c-parser.c (c_parser_objc_type_name): If the type is unknown, + for error recovery purposes behave as if it was not specified so + that the default type is usd. + +2011-01-07 Jan Hubicka + + PR tree-optmization/46469 + * ipa.c (function_and_variable_visibility): Clear needed flags on + nodes with external decls; handle weakrefs merging correctly. + +2011-01-07 Joseph Myers + + * opts.c (finish_options): Set opts->x_flag_opts_finished to true, + not false. + +2011-01-07 Jan Hubicka + + * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults + and no longer claim that gold is required for linker plugin. + * configure: Regenerate. + * gcc.c (PLUGIN_COND): New macro. + (LINK_COMMAND_SPEC): Use it. + (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set. + * config.in (HAVE_LTO_PLUGIN): New. + * configure.ac (--with-lto-plugin): New parameter; autodetect + HAVE_LTO_PLUGIN. + +2011-01-07 Jan Hubicka + + PR tree-optimization/46367 + * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only + when we can update original. + (cgraph_mark_inline_edge): Sanity check. + * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check. + +2011-01-07 Ulrich Weigand + + * config/spu/spu.h (ASM_COMMENT_START): Define. + +2011-01-07 H.J. Lu + + PR driver/42445 + * gcc.c (%>S): New. + (SWITCH_KEEP_FOR_GCC): Likewise. + (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC. + (do_spec_1): Handle "%>". + + * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>". + +2011-01-07 Jakub Jelinek + + PR target/47201 + * config/i386/i386.c (ix86_delegitimize_address): If + simplify_gen_subreg fails, return orig_x. + + PR bootstrap/47187 + * value-prof.c (gimple_stringop_fixed_value): Handle + lhs of the call properly. + +2011-01-07 Jan Hubicka + + PR lto/45375 + * lto-opt.c (lto_reissue_options): Set flag_shlib. + +2011-01-07 Iain Sandoe + + * target.def (function_switched_text_sections): New hook. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. + * final.c (default_function_switched_text_sections): New. + (final_scan_insn): Call function_switched_text_sections when a + mid-function section change occurs. + * output.h (default_function_switched_text_sections): Declare. + * config/darwin-protos.h (darwin_function_switched_text_sections): + Likewise. + * config/darwin.c (darwin_function_switched_text_sections): New. + * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. + +2011-01-07 Iain Sandoe + + * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for + DWARF >= 3. Add pubnames for the primary section and a reduced DIE for + the secondary code fragment when outputting for DWARF == 2. + +2011-01-07 Anatoly Sokolov + + * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove. + * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra): + Remove. + * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + +2011-01-06 Eric Botcazou + + PR debug/46704 + * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only + when it is not empty. + +2011-01-06 Changpeng Fang + + Bobcat Enablement + * config.gcc (i[34567]86-*-linux* | ...): Add btver1. + (case ${target}): Add btver1. + * config/i386/driver-i386.c (host_detect_local_cpu): Let + -march=native recognize btver1 processors. + * config/i386/i386-c.c (ix86_target_macros_internal): Add + btver1 def_and_undef + * config/i386/i386.c (struct processor_costs btver1_cost): New + btver1 cost table. + (m_BTVER1): New definition. + (m_AMD_MULTIPLE): Includes m_BTVER1. + (initial_ix86_tune_features): Add btver1 tune. + (processor_target_table): Add btver1 entry. + (static const char *const cpu_names): Add btver1 entry. + (software_prefetching_beneficial_p): Add btver1. + (ix86_option_override_internal): Add btver1 instruction sets. + (ix86_issue_rate): Add btver1. + (ix86_adjust_cost): Add btver1. + * config/i386/i386.h (TARGET_BTVER1): New definition. + (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1. + (enum processor_type): Add PROCESSOR_BTVER1. + * config/i386/i386.md (define_attr "cpu"): Add btver1. + +2011-01-06 Rainer Orth + + PR target/43309 + * config/i386/i386.c (legitimize_tls_address) + : Handle TARGET_64BIT && TARGET_SUN_TLS. + * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare. + (tls_initial_exec_64_sun): New pattern. + +2011-01-06 Gerald Pfeifer + + * doc/invoke.texi (Overall Options): Improve wording and markup + of the description of -wrapper. + +2011-01-06 Joseph Myers + + * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads, + rdynamic, threads): New Driver options. + +2011-01-06 Rainer Orth + + PR target/38118 + * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss + if coming from .tdata. + * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + +2011-01-06 Jan Hubicka + + PR lto/47188 + * collect2.c (main): Do not enable LTOmode when plugin is active. + +2011-01-06 Rainer Orth + + PR other/45915 + * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd + --version output if supported. + * configure: Regenerate. + +2011-01-06 Joseph Myers + + * config/linux-android.opt (tno-android-cc, tno-android-ld): New + Driver options. + +2011-01-06 Jakub Jelinek + + PR c/47150 + * c-convert.c (convert): When converting a complex expression + other than COMPLEX_EXPR to a different complex type, ensure + c_save_expr is called instead of save_expr, unless in_late_binary_op. + * c-typeck.c (convert_for_assignment): Set in_late_binary_op also + when converting COMPLEX_TYPE. + +2011-01-06 Ira Rosen + + PR tree-optimization/47139 + * tree-vect-loop.c (vect_is_simple_reduction_1): Check that + only the last reduction value is used outside the loop. Update + documentation. + +2011-01-05 Joseph Myers + + * config/rtems.opt: New. + * config.gcc (*-*-rtems*): Use rtems.opt. + +2011-01-05 Changpeng Fang + + * config/i386/i386.c (ix86_option_override_internal): Bulldozer + processors do not support 3DNow instructions. + +2011-01-05 Ulrich Weigand + + * config/spu/spu.c (spu_option_override): Set parameter + PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1. + +2011-01-05 Jan Hubicka + + * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified + at the command line. + +2011-01-05 Martin Jambor + + PR lto/47162 + * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk + deltas on streamed outgoing edges. + (output_node_opt_summary): Output info for outgoing edges only when + the node is in new parameter set. + (output_cgraph_opt_summary): New parameter set, passed to the two + aforementioned functions. Update its forward declaration and its + callee too. + +2011-01-05 Tom Tromey + + * c-parser.c (c_parser_omp_atomic): Pass location of assignment + operator to c_finish_omp_atomic. + * c-typeck.c (lvalue_or_else): Add 'loc' argument. + (build_unary_op): Update. + (build_modify_expr): Update. + (build_asm_expr): Update. + +2011-01-05 Ulrich Weigand + + * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for + newly inserted insns. + (pad_bb): Likewise. + (spu_emit_branch_hint): Likewise. + (insert_hbrp_for_ilb_runout): Likewise. + (spu_machine_dependent_reorg): Call df_finish_pass after + schedule_insns returns. + +2011-01-05 Ulrich Weigand + + * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage. + +2011-01-05 Eric Botcazou + + PR tree-optimization/47005 + * tree-sra.c (struct access): Add 'non_addressable' bit. + (create_access): Set it for a DECL_NONADDRESSABLE_P field. + (decide_one_param_reduction): Return 0 if the parameter is passed by + reference and one of the accesses in the group is non_addressable. + +2011-01-04 Eric Botcazou + + PR tree-optimization/47056 + * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers. + (mark_load): Likewise. Handle FUNCTION_DECL specially. + (mark_store): Likewise. Pass STMT to ipa_record_reference. + +2011-01-04 Eric Botcazou + + * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the + initializer. Skip view conversions from aggregate types. + +2011-01-04 Kai Tietz + + PR bootstrap/47055 + * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC. + +2011-01-04 Philipp Thomas + + * config/microblaze/microbalse.opt (mxl-float-convert): Fix + obvious typo. + +2011-01-04 Ulrich Weigand + + * function.c (thread_prologue_and_epilogue_insns): Do not crash + on empty epilogue sequences. + +2011-01-04 Joseph Myers + + * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now, + non-static): New Driver options. + +2011-01-04 Jie Zhang + + PR driver/47137 + * gcc.c (default_compilers[]): Set combinable field to 0 + for all assembly languages. + +2011-01-04 Mingjie Xing + + * config/mips/loongson3a.md: New file. + * config/mips/mips.md: Include loongson3a.md. + * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when + TUNE_LOONGSON_3A. + +2011-01-03 Eric Botcazou + + PR middle-end/47017 + * expr.c (expand_expr_real_1) : Call memory_address_addr_space + instead of convert_memory_address_addr_space on the base expression. + +2011-01-03 Ulrich Weigand + + * config/spu/spu.c (spu_option_override): Update error text + for bad -march= / -mtune= values. + +2011-01-03 Ulrich Weigand + + * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking + if branch-hint optimization will be performed. + +2011-01-03 Jakub Jelinek + + PR tree-optimization/47148 + * ipa-split.c (split_function): Convert arguments to + DECL_ARG_TYPE if possible. + + PR tree-optimization/47155 + * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type + when computing uns. + + PR rtl-optimization/47157 + * combine.c (try_combine): If undobuf.other_insn becomes + (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it + and set *new_direct_jump_p too. + +2011-01-03 Sebastian Pop + + PR tree-optimization/47021 + * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR. + +2011-01-03 Jakub Jelinek + + * gcc.c (process_command): Update copyright notice dates. + * gcov.c (print_version): Likewise. + * gcov-dump.c (print_version): Likewise. + * mips-tfile.c (main): Likewise. + * mips-tdump.c (main): Likewise. + +2011-01-03 Martin Jambor + + PR tree-optimization/46801 + * tree-sra.c (type_internals_preclude_sra_p): Check whether + aggregate fields start at byte boundary instead of the bit-field flag. + +2011-01-03 H.J. Lu + + PR driver/47137 + * gcc.c (main): Revert revision 168407. + +2011-01-03 Martin Jambor + + * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type. + +2011-01-03 Ulrich Weigand + + * tree-vect-generic.c (expand_vector_operations_1): When using vector/ + vector optab to expand vector/scalar shift, update gimple to vector. + +2011-01-03 Martin Jambor + + * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to + a thunk. + +2011-01-03 Martin Jambor + + PR tree-optimization/46984 + * cgraph.h (cgraph_indirect_call_info): make field thunk_delta + HOST_WIDE_INT. + (cgraph_create_indirect_edge): Fixed line length. + (cgraph_indirect_call_info): Declare. + (cgraph_make_edge_direct) Update declaration. + * cgraph.c (cgraph_allocate_init_indirect_info): New function. + (cgraph_create_indirect_edge): Use it. + (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all + callees. + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for + the new thunk_delta representation. + * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to + HOST_WIDE_INT. + (ipa_write_indirect_edge_info): Remove streaming of thunk_delta. + (ipa_read_indirect_edge_info): Likewise. + * lto-cgraph.c (output_edge_opt_summary): New function. + (output_node_opt_summary): Call it on all outgoing edges. + (input_edge_opt_summary): New function. + (input_node_opt_summary): Call it on all outgoing edges. + +2011-01-02 H.J. Lu + + PR driver/47137 + * gcc.c (main): Don't check have_o when settting combine_inputs. + +2011-01-02 Eric Botcazou + + * regrename.c: Add general comment describing the pass. + (struct du_head): Remove 'length' field. + (get_element, merge_sort_comparison, merge, sort_du_head): Remove. + (regrename_optimize): Do not sort chains. Rework comments, add others. + Force renaming to the preferred class (if any) in the first pass and do + not consider registers that belong to it in the second pass. + (create_new_chain): Do not set 'length' field. + (scan_rtx_reg): Likewise. + +2011-01-02 Jakub Jelinek + + PR tree-optimization/47140 + * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use + TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument + to bit_value_binop. + + PR rtl-optimization/47028 + * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after + parm_birth_insn instead of at the beginning of first bb. + +2011-01-02 Mingjie Xing + + * doc/generic.texi: Remove duplicated "@subsubsection Statements". + Remove the word "see" before "@pxref". + * doc/rtl.texi: Remove the word "see" before "@pxref". + +2011-01-01 Jan Hubicka + + * tree-loop-distribution.c (tree_loop_distribution): Do not use freed + memory. + +2011-01-01 Kai Tietz + + PR target/38662 + * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too. + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6790572..f97fcc4 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -40,18456 +40,8 @@ 2012-01-02 Eric Botcazou * gnatvsn.ads (Current_Year): Bump to 2012. - -2011-12-23 Pascal Obry - - * prj.ads (For_Every_Project_Imported): Add In_Aggregate_Lib - parameter to generic formal procedure. - * prj.adb (For_Every_Project_Imported): Update accordingly. - (Recursive_Check): Likewise. Do not parse imported project for - aggregate library. This is needed as the imported projects are - there just to handle dependencies. - (Look_For_Sources): Likewise. - (Recursive_Add): Likewise. - * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: - Add In_Aggregate_Lib parameter to routines used with - For_Every_Project_Imported generic procedure. - * prj-nmsc.adb (Tree_Processing_Data): Add In_Aggregate_Lib field. - (Check): Move where it is used. Fix implementation - to not check libraries that are inside aggregate libraries. - (Recursive_Check): Add In_Aggregate_Lib parameter. - -2011-12-23 Ed Schonberg - - * sem_ch7.adb (Analyze_Package_Body, Has_Referencer): A generic - package is a referencer regardless of whether there is a - subsequent subprogram with an Inline pragma. - -2011-12-23 Geert Bosch - - * sem_ch3.adb (Can_Derive_From): Check matching Float_Rep on VMS. - -2011-12-23 Pascal Obry - - * gnatcmd.adb, prj.adb, prj-nmsc.adb: Minor reformatting. - -2011-12-22 Hristian Kirtchev - - * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Create the objects - associated with exception handling unconditionally. - (Build_Adjust_Statements): Create the objects associated with - exception handling unconditionally. - (Build_Components): Create the objects associated with exception - handling unconditionally. - (Build_Finalize_Statements): Create the objects associated with - exception handling unconditionally. - (Build_Initialize_Statements): Create the objects associated with - exception handling unconditionally. - (Build_Object_Declarations): Set the proper location of the data - record when exception propagation is forbidden. - -2011-12-22 Gary Dismukes - - * a-tienio.adb (Put): Test validity of Item parameters before - applying Image, and raise Constraint_Error for invalid values. - -2011-12-22 Bob Duff - - * a-stwima.ads (Initialize,Adjust,Finalize): Add overriding indicators. - * a-ststio.ads (AFCB_Allocate,AFCB_Close,AFCB_Free,Read,Write): Add - overriding indicators. - -2011-12-22 Arnaud Charlet - - * s-osinte-hpux-dce.ads: Update header to GPLv3 - -2011-12-22 Ed Schonberg - - * a-cohase.ads, a-cohase.adb: Update to latest RM version. Add - aspect Constant_Reference to set type, and corresponding - functions. - * a-cihama.ads, a-cihama.adb: Update to latest RM version. Add - function Reference to provide a proper element iterator construct - over indefinite maps. - -2011-12-22 Ed Schonberg - - * exp_attr.adb (Expand_N_Attribute, case 'Access): Do not insert - implicit conversion on prefix of Unrestricted_Access when prefix - is an explicit dereference. - -2011-12-22 Vincent Pucci - - * sem_dim.adb: Addressed all ??? comments. Replacement of warnings by - errors using continuation marks. - (Error_Dim_Msg_For_?): Renaming of Error_Dim_For_?. - -2011-12-22 Robert Dewar - - * sem_ch3.adb, sem_ch3.ads, sem_prag.adb: Minor code clean up. - -2011-12-21 Rainer Orth - - * s-oscons-tmplt.c [__alpha__ && __osf__] (_XOPEN_SOURCE): Define. - -2011-12-21 Javier Miranda - - * sem_ch3.ads, sem_ch3.adb (Check_CPP_Type): New subprogram. - (Process_Full_View): Invoke Check_CPP_Type if processing the - full-view of a CPP type. - * sem_prag.adb (Process_Import_Or_Interface): Add missing support - for importing a CPP type that has an incomplete declaration. Move - to new routine Check_CPP_Type the code that verifies that - components of imported CPP types do not have default expressions. - -2011-12-21 Vincent Celier - - * prj-nmsc.adb (Report_No_Sources): Remove argument Lang. Report - no sources even for languages that are not allowed. - (Add_Source): Get the source even when the language is not allowed. - -2011-12-21 Robert Dewar - - * sem_ch6.adb (Process_Formals): Add defensive code. - -2011-12-21 Ed Schonberg - - * sem_ch7.adb, sem_ch13.adb (Analyze_Package_Specification): Build the - invariant procedure of a type declaration that is a completion and has - aspect specifications. - (Build_Invariant_Procedure): If the procedure is built for a - type declaration that is a completion, analyze body expliitly - because all private declarations have been already analyzed. - -2011-12-21 Claire Dross - - * a-cfdlli.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb, - a-cofove.adb: Minor reformating on formal containers - -2011-12-21 Vincent Celier - - * makeutl.adb (Mains.Complete_Mains.Do_Complete): Remove - any main that is not in the list of restricted languages. - (Insert_Project_Sources.Do_Insert): Only add sources of languages - in the list of restricted languages. - -2011-12-21 Ed Schonberg - - * sem_res.adb (Valid_Conversion): A type conversion is valid when - the target type is an anonymous access type and the operand is a - rewriting of an allocator. The conversion is typically inserted - when the designated type is an interface. - -2011-12-21 Ed Schonberg - - * exp_ch9.adb (Establish_Task_Master): If the enclosing block - has no declarations, create new declarative list for it. - -2011-12-21 Matthew Heaney - - * a-rbtgbk.adb (Generic_Conditional_Insert): Fixed incorrect comment. - -2011-12-21 Yannick Moy - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not - ignore representation attributes in Alfa mode, since formal - verification backend does not depend on actual physical - representation, but code may still refer to attribute values. - -2011-12-21 Yannick Moy - - * par-ch13.adb (P_Aspect_Specifications): Recognize the cases - where a comma between two aspects is missing, or erroneously - replaced by a semicolon, issue an error and proceed with next - aspect. - * par.adb, sinfo.ads: Fix typos. - -2011-12-21 Ed Schonberg - - * sem_util.adb (Mark_Coextensions): A coextension for an - object that is part of the expression in a return statement, - or part of the return object in an extended return statement, - must be allocated dynamically. - -2011-12-21 Matthew Heaney - - * a-crbtgk.adb (Generic_Conditional_Insert): Fixed incorrect comment. - -2011-12-21 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): If the name - of an element iterator is not an entity name we introduce a - local renaming declaration for it. To prevent spurious warnings - on parameterless function calls that return a container, when - expansion is disabled (either explicitly or because of a previous - errors) the name must be marked as not coming from source. - -2011-12-21 Arnaud Charlet - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Separate - handling in CodePeer mode and only ignore Component_Size - attribute. - -2011-12-21 Robert Dewar - - * sem_ch6.adb (Process_Formals): Set proper mechanism for - formals whose types have conventions Ada_Pass_By_Copy or - Ada_Pass_By_Reference. - -2011-12-21 Arnaud Charlet - - * gnat1drv.adb (Gnat1Drv): Always delete old scil files in - CodePeer mode. - -2011-12-21 Robert Dewar - - * comperr.adb: Minor reformatting. - -2011-12-21 Ed Schonberg - - * aspects.ads: New table Base_Aspect, to indicate that an aspect - is defined on a base type. - * aspects.adb (Find_Aspect): If the aspect is a Base_Aspect, - examine the representation items of the base type. - -2011-12-21 Pascal Obry - - * gnat_ugn.texi, prj.ads, prj-nmsc.adb, prj-attr.adb, projects.texi, - snames.ads-tmpl: Use Encapsulated instead of Fully Standalone library. - -2011-12-21 Pascal Obry - - * adaint.c (__gnat_is_executable_file_attr) [_WIN32]: Add parentheses - to kill warning. - -2011-12-21 Arnaud Charlet - - * comperr.adb (Delete_SCIL_Files): Also delete .scilx files. - Fix implementation for child packages and package specs. - (Delete_SCIL_Files.Decode_Name_Buffer): New function. - -2011-12-21 Robert Dewar - - * err_vars.ads, a-cdlili.adb, a-cfdlli.ads, prj.adb, prj-nmsc.adb, - a-cbdlli.adb, a-cbdlli.ads, a-cfdlli.adb: Minor reformatting. - -2011-12-21 Vincent Pucci - - * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads, - s-llflex.ads: Fix header. - -2011-12-21 Thomas Quinot - - * thread.c, s-oscons-tmplt.c, init.c (pthread_condattr_setclock): For - AIX 5.2, define as a dummy weak symbol in init.c. - (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC on all versions of AIX. - -2011-12-21 Thomas Quinot - - * snames.ads-tmpl, sem_ch8.adb: Minor reformatting. - * sem_prag.adb: Minor comment clarification. - -2011-12-21 Vincent Celier - - * prj-nmsc.adb (Report_No_Sources): New argument Lang for the - language name as a Name_Id. Do not report no sources if language - is not allowed. - (Add_Source): Do not add source if language is not allowed. - * prj.adb (Add_Restricted_Language): New procedure - (Is_Allowed_Language): New function - * prj.ads (Add_Restricted_Language): New procedure - (Is_Allowed_Language): New function - -2011-12-21 Robert Dewar - - * exp_ch5.adb, sem_dim.adb, sem_dim.ads, sem_ch12.adb, prj-conf.adb: - Minor reformatting. - -2011-12-21 Claire Dross - - * a-cfdlli.ads (Constant_Indexing, Default_Iterator, - Iterator_Element): Added to type List. - (Not_No_Element, List_Iterator_Interfaces, Iterate, - Constant_Reference_Type, Constant_Reference): New. - * a-cfdlli.adb (type Iterator, Finalize, First, Last, Next, - Previous, Iterate, Not_No_Element, Constant_Reference): New. - -2011-12-21 Gary Dismukes - - * gnat_ugn.texi: Minor reformatting. - -2011-12-21 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): The cursor operation - Has_Element is the formal of Iterator_Interfaces, and within - the instantion of this package it is a renaming of some local - function with an unrelated name. Retrieve the operation from - the instance itself, not from the container package. - -2011-12-21 Vincent Pucci - - * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String - replaced by Expand_Put_Call_With_Dimension_Symbol - * sem_ch12.adb (Analyze_Package_Instantiation): New check for - System.Dim_Float_IO and System.Dim_Integer_IO instantiation. - * sem_ch3.adb (Analyze_Declarations): Removed - Remove_Dimension_In_Declaration call. - * sem_dim.adb: Update comments. Redefine the - representation of a Rational. Propagate all changes involving - data structures and types throughout the pakage. Output the - dimension aggregates for each error messages. - ("/"): Rational constructor "/" removed for Whole operands. - ("/"): New rational operation "/" for Rational operands. - ("*"): Operation "*" between Rational and Int removed. - ("abs"): New unary operator "abs" for Rational. - (Analyze_Aspect_Dimension_System): Reorganized. - (Analyze_Dimension_Identifier): Removed. - (Copy_Dimensions): Removed. - (Create_Rational_From_Expr): New Boolean parameter. - (Dimensions_Msg_Of): New routine. Return - a string with the dimensions of the parameter. - (From_Dimension_To_String_Of_Symbols): Renaming of - From_Dimension_To_String_Id. - * sem_dim.ads: Update comments. - (Is_Dim_IO_Package_Instantiation): New routine. - (Remove_Dimension_In_Declaration): Removed. - * sem_res.adb (Resolve_Op_Expon): Reorganized calls of - Eval_Op_Expon_For_Dimensioned_Type and Eval_Op_Expon. - * s-diflio.ads, s-diinio.ads: Update comments. - -2011-12-21 Pascal Obry - - * prj-attr.adb, snames.ads-tmpl: Add Library_Standalone, - Library_Fully_Standalone_Options and - Library_Fully_Standalone_Supported attributes. - * prj-nmsc.adb (Check_Library): Update check to take into - account fully standalone libraries. Such shared libraries can - only depend on static libraries. - (Check_Stand_Alone_Library): Add support for fully standalone libraries. - (Process_Project_Level_Simple_Attributes): Store value for - configuration attribute Library_Fully_Standalone_Supported. - * prj.ads, makeutl.adb (Standalone): New enumeration type. - (Project_Data): Standalone_Library now of type Standlone. - (Project_Configuration): Add Lib_Fully_Standalone_Supported - field. - (Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported - field. - * clean.adb (Clean_Project): Adjust to new type for Standalone. - * make.adb (Library_Phase): Adjust to new type for Standalone. - (Gnatmake): Likewise. - * mlib-prj.adb (Build_Library): Adjust to new type for - Standalone. - -2011-12-21 Thomas Quinot - - * gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then - Set_Standard_Output just before producing normal (non-diagnostic) - output. - * gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization - (and again after parsing project files). - -2011-12-21 Vincent Celier - - * prj-conf.adb (Do_Autoconf): When the object directory does - not exist, create auto.cgpr in the directory where temporary - files are created. - -2011-12-20 Ed Schonberg - - * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Further - refinements on the placement of a freeze node for a package - instantiation, when the generic appears within a previous - instantiation in the same unit.If the current instance is within - the one that contains the generic, the freeze node for the - current one must appear in the current declarative part. Ditto - if the current instance is within another package instance. In - these cases the freeze node of the previous instance is is not - relevant. New predicate Enclosing_Body simplifies the process. - (Freeze_Subprogram_Body): Rename Enclosing_Body to - Enclosing_Package_Body, to prevent confusion with subprogram of - same name elsewhere. - (Install_Body): Recognize enclosing subprogram bodies to determine - whether freeze_node belongs in current declarative list. - -2011-12-20 Robert Dewar - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Allow - attribute definition clause for renaming if generated internally - and generate duplicate clause to apply to renamed object. - (Rep_Item_Too_Late): Only diagnose source level entities - * prj-nmsc.adb: Minor reformatting. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-12-20 Bob Duff - - * opt.ads (List_Inherited_Aspects): Default to False - (i.e. -gnatw.L is the default). - * usage.adb: Document new default for -gnatw.L. - * gnat_ugn.texi: Document -gnatw.l and -gnatw.L switches. - * warnsw.adb (Set_Warning_Switch): Do not include - List_Inherited_Aspects in -gnatwa. - -2011-12-20 Ed Schonberg - - * checks.adb (Apply_Type_Conversion_Checks): For a discrete type - with predicates, indicate unconditionally that a range check - is needed. - * exp_ch4.adb (Expand_N_In): When the membership test is rewritten - to incorporate a call to a predicate function, analyze expression - with checks suppressed, to prevent infinite recursion. - -2011-12-20 Hristian Kirtchev - - * exp_ch11.adb (Find_Local_Handler): Guard the - search over individual exception choices in case the list of - handlers contains other (possibly illegal) constructs. - -2011-12-20 Gary Dismukes - - * sem_ch8.adb (Find_Type): Test taggedness - of the Available_Type when checking for an illegal use of an - incomplete type, when the incomplete view is a limited view of - a type. Remove redundant Is_Tagged test. - -2011-12-20 Hristian Kirtchev - - * exp_util.adb: Add with and use clause for Aspects. - (Is_Finalizable_Transient): Objects which denote Ada containers - in the context of iterators are not considered transients. Such - object must live for as long as the loop is around. - (Is_Iterated_Container): New routine. - -2011-12-20 Hristian Kirtchev - - * exp_imgv.adb (Expand_Width_Attribute): Add a - type conversion from the enumeration subtype to its base subtype. - -2011-12-20 Hristian Kirtchev - - * sem_ch4.adb (Operator_Check): Update the call to - Is_Dimensioned_Type. - * sem_dim.adb: Remove with and use clause for Namet.Sp. Reorganize - all type declarations and datastructures involved. Propagate - all changes involving data structures and types throughout - the pakage. Alphabetize all subprograms. Add ??? comments. - (AD_Hash): Removed. - (Analyze_Aspect_Dimension): Rewritten. This - routine now does all its checks in one pass rather than - two. Refactor code. The error message are now in a more GNAT-ish style. - (Create_Rational_From_Expr): This is now a function. - (Get_Dimensions): Removed. - (Get_Dimensions_String_Id): Removed. - (Dimensions_Of): New rouitne. - (Exists): New routines. - (Is_Invalid): New routine. - (Permits_Dimensions): Removed. - (Present): Removed. - (Set_Symbol): New routine. - (System_Of): New routine. - * sem_dim.ads: Rewrite the top level description of the - package. Alphabetize subprograms. Add various comments on - subprogram usage. Add ??? comments. - (Is_Dimensioned_Type): - Renamed to Has_Dimension_System. - * sem_res.adb (Resolve_Op_Expon): Update the call to Is_Dimensioned_Type - -2011-12-20 Ed Schonberg - - * sem_ch13.adb (Check_Indexing_Functions): The return type of an - indexing function can be the default element type, and does not - need to be a reference type. - * sem_ch4.adb (Try_Container_Indexing): Ditto. - -2011-12-20 Robert Dewar - - * a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting. - -2011-12-20 Bob Duff - - * s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced. - -2011-12-20 Vincent Pucci - - * impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT - Defined Additions to System. - * Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added. - * s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files. - -2011-12-20 Gary Dismukes - - * sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when - within an instance, even if the homonym is marked Is_Hidden at - this point. - -2011-12-20 Robert Dewar - - * sem_ch3.adb, sem_ch5.adb, s-diinio.adb, s-diinio.ads, sem_dim.adb, - sem_dim.ads, sem_res.adb, s-stposu.adb, s-stposu.ads, sem_ch4.adb, - s-diflio.adb, s-diflio.ads, exp_disp.adb, s-llflex.ads: Minor - reformatting. - * aspects.ads: Dimension[_Aspects] are GNAT defined. - -2011-12-20 Robert Dewar - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check - renaming case. - -2011-12-20 Thomas Quinot - - * sem_cat.adb, sem_ch10.adb (Analyze_With_Clause): For a WITH clause on - a child unit that is an illegal instantiation, mark the WITH clause in - error. - (Install_Siblings, Validate_Categorization_Dependency): Guard - against WITH clause marked as in error. - -2011-12-20 Hristian Kirtchev - - * sem_res.adb (Resolve_Allocator): Warning on allocation - of tasks on a subpool and rewrite the allocator into a raise - Program_Error statement. - * s-stposu.ads, s-stposu.adb: Code reformatting. - (Create_Subpool): Remove formal parameter Storage_Size. - (Default_Subpool_For_Pool): Add the default implementation of this - routine. - (Set_Pool_Of_Subpool): Rename formal parameter Pool to To. Update - all the uses of the parameter. - -2011-12-20 Rainer Orth - - * gcc-interface/Makefile.in (%86 linux%): - (LIBGNAT_TARGET_PAIRS_32): Split off from LIBGNAT_TARGET_PAIRS. - (LIBGNAT_TARGET_PAIRS_64): New. - (LIBGNAT_TARGET_PAIRS): Add either depending on multilib. - -2011-12-18 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_param): Add comment about double - reference and DECL_POINTS_TO_READONLY_P. - * gcc-interface/trans.c (Identifier_to_gnu) : Always set the - TREE_READONLY flag on the first dereference of a double dereference. - -2011-12-15 Arnaud Charlet - - * a-numaux-vms.ads, s-asthan-vms-ia64.adb, s-auxdec-vms-ia64.adb, - s-memory-vms_64.adb, s-memory-vms_64.ads, s-osinte-vms-ia64.adb, - s-osinte-vms-ia64.ads, s-tasdeb-vms.adb: New files. - -2011-12-15 Vincent Pucci - - * aspects.adb, aspects.ads Aspect_Dimension and - Aspect_Dimension_System added - * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String - case added - * gcc-interface/Make-lang.in: s-llflex, sem_dim added. - * impunit.adb :s-diflio and s-diinio defined as GNAT Defined - Additions to System. - * Makefile.rtl: s-diflio, s-diinio and s-llflex added - * par-prag.adb, sem_prag.adb: Pragma_Dimension removed - * rtsfind.ads: Expon_LLF added - * sem_aggr.adb (Resolve_Aggregate): handles aggregate for - Aspect_Dimension case - * sem_attr.adb (Resolve_Attribute): analyze dimension for - attribute - * sem_ch10.adb (Analyze_With_Clause): Avoid the warning messages - due to the use of a GNAT library for Dimension packages - * sem_ch13.adb (Analyze_Aspect_Specifications): - Aspect_Dimension and Aspect_Dimension_System cases added - (Check_Aspect_At_Freeze_Point): Aspect_Dimension and - Aspect_Dimension_System cases added - * sem_ch2.adb (Analyze_Identifier): analyze dimension for - identifier - * sem_ch3.adb (Analyze_Component_Declaration): analyze dimension - for component declaration (Analyze_Object_Declaration): analyze - dimension for object declaration (Analyze_Subtype_Declaration): - analyze dimension for subtype declaration - * sem_ch4.adb (Operator_Check): checks exponent is a rational - for dimensioned operand for a N_Op_Expon - * sem_ch5.adb (Analyze_Assignment): analyze dimension for - assignment (Analyze_Statements): removal of dimensions in all - statements - * sem_ch6.adb (Analyze_Return_Statement): analyze dimension for - return statement - * sem_ch8.adb (Analyze_Object_Renaming): analyze dimension for - object renaming - * sem_dim.adb, sem_dim.ads (Analyze_Aspect_Dimension): - analyze the expression for aspect dimension and store the - values in a Htable. - (Analyze_Aspect_Dimension_System): analyze - the expression for aspect dimension system and store the new - system in a Table. - (Analyze_Dimension): propagates dimension - (Expand_Put_Call_With_Dimension_String): add the dimension - string as a suffix of the numeric value in the output - (Has_Dimension): return True if the node has a dimension - (Remove_Dimension_In_Declaration): removal of dimension in the - expression of the declaration. - (Remove_Dimension_In_Statement): removal of dimension in statement - * sem_res.adb (Resolve): analyze dimension if the node - has already been analyzed. - (Resolve_Arithmetic_Op): analyze - dimension for arithmetic op. - (Resolve_Call): analyze dimension for function call. - (Resolve_Comparison_Op): analyze dimension for comparison op. - (Resolve_Equality_Op): analyze dimension for equality op. - (Resolve_Indexed_Component): analyze dimension for indexed component. - (Resolve_Op_Expon): analyze dimension for op expon. - (Resolve_Selected_Component): analyze dimension - for selected component. - (Resolve_Slice): analyze dimension for slice. - (Resolve_Unary_Op): analyze dimension for unary op - (Resolve_Type_Conversion): analyze dimension for type conversion - (Resolve_Unchecked_Type_Conversion): analyze dimension for - unchecked type conversion - * snames.ads-tmpl Name_Dimension, Name_Dimension_System, - Name_Dim_Float_IO, Name_Dim_Integer_IO, - Name_Generic_Elementary_Functions, Name_Sqrt added. - Pragma_Dimension removed - * s-diflio.adb, s-diflio.ads New GNAT library generic package - for dimensioned float type IO - * s-diinio.adb, s-diinio.ads New GNAT library generic package - for dimensioned integer type IO - * s-llflex.ads (Expon_LLF): exponentiation routine for long long - floats operand and exponent - -2011-12-15 Robert Dewar - - * sem_aggr.adb: Minor comment addition. - -2011-12-15 Bob Duff - - * s-tasren.adb (Task_Count): Do not call Yield; E'Count is not a - task dispatching point. - * s-taprop-mingw.adb (Yield): Do not yield if Do_Yield is False. - -2011-12-15 Robert Dewar - - * sigtramp-ppcvxw.c, sigtramp.h: Fix header. - -2011-12-15 Javier Miranda - - * exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment - applied to a class-wide type under VM targets generate code which - invokes the function Get_Alignment to retrieve the value of the - alignment from the TSD. - * rtsfind.ads (RE_Get_Alignment): New entity. - -2011-12-15 Robert Dewar - - * g-comlin.adb: Fix header. - -2011-12-15 Tristan Gingold - - * gnatls.adb: Fix typo. - -2011-12-15 Ed Falis - - * s-tpopsp-vxworks.adb: Update comment. - -2011-12-15 Ed Schonberg - - * sem_aggr.adb (Resolve_Array_Aggregate, Resolve_Aggr_Expr); If - the component type has predicates, generate corresponding check. - (Resolve_Record_Aggregate, Resolve_Aggr_Expr): Ditto. - -2011-12-13 Cesar Strauss - Eric Botcazou - - PR ada/49084 - * types.h (Byte): Change typedef to 'unsigned char'. - * atree.h (struct Flag_Word): Use Byte for 'convention' field. - -2011-12-12 Robert Dewar - - * s-taprop-mingw.adb: Minor reformatting. - -2011-12-12 Nicolas Roche - - * gcc-interface/Make-lang.in: Update dependencies. - Add gnattools4 target when building tools in canadian mode - -2011-12-12 Javier Miranda - - * exp_disp.adb (Make_VM_TSD): Complete previous patch. - -2011-12-12 Bob Duff - - * s-tpobop.adb: Use named notation. - * g-bytswa.ads, s-taprop.ads: Minor comment fix. - -2011-12-12 Arnaud Charlet - - * make.adb: Minor comment update. - -2011-12-12 Robert Dewar - - * freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minor - reformatting. - -2011-12-12 Robert Dewar - - * sem_ch6.adb, gnatls.adb: Minor reformatting. - -2011-12-12 Ed Schonberg - - * freeze.adb (Freeze_Entity): If a type declared in a generic - context has predicates, generate a freeze node for it. - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression - has not been analyzed yet, entity has not been frozen, so analyze - it now. - -2011-12-12 Javier Miranda - - * exp_disp.adb (Make_VM_TSD): Generate code to store the value of - 'alignment in the TSD. - -2011-12-12 Bob Duff - - * s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D - mode. - -2011-12-12 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Allocator): Update the master of an - anonymous access-to-controlled type to utilize the heterogeneous - master associated with the current unit. - -2011-12-12 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): If the function - is not a completion, pre-analyze the expression now to prevent - spurious visibility on later entities. The body is inserted at - the end of the current declaration list or package to prevent - early freezing, but the visibility is established at the point - of definition. - -2011-12-12 Bob Duff - - * sem.adb, sem.ads: Add debugging routines. - -2011-12-12 Tristan Gingold - - * gnatls.adb: (gnatls): Also add the objects dir in search list. - -2011-12-12 Robert Dewar - - * exp_atag.adb, exp_atag.ads, exp_util.adb, exp_attr.adb, - sem_ch13.adb: Minor reformatting. - -2011-12-12 Gary Dismukes - - * sem_ch7.adb (Uninstall_Declarations): Don't - apply check for incomplete types used as a result type for an - access-to-function type when compiling for Ada 2012 or later. - * sem_ch6.adb (Analyze_Subprogram_Declaration): - Specialize error message for interface subprograms that are - not declared abstract nor null (functions can't be declared as - null). Also, remove "(Ada 2005)" from message. - -2011-12-12 Robert Dewar - - * sem_prag.adb (GNAT_Pragma): Check comes from source. - -2011-12-12 Robert Dewar - - * gnatls.adb: Minor reformatting. - -2011-12-12 Javier Miranda - - * a-tags.ads (Alignment): New TSD field. - (Max_Predef_Prims): Value lowered to 15 (or 9 in case of - configurable runtime) Update documentation of predefined - primitives since Alignment has been removed. - * exp_disp.ads Update documentation of slots of dispatching - primitives. - * exp_disp.adb (Default_Prim_Op_Position): Update slot - values since alignment is no longer a predefined primitive. - (Is_Predefined_Dispatch_Operation): Remove _alignment. - (Is_Predefined_Internal_Operation): Remove _alignment. - (Make_DT): Update static test on the value stored in a-tags.ads - for Max_Predef_Prims; store the value of 'alignment in the TSD. - * exp_atag.ads, exp_atag.adb (Build_Get_Alignment): New subprogram - that retrieves the alignment from the TSD - * exp_util.adb (Build_Allocated_Deallocate_Proc): For deallocation - of class-wide types obtain the value of alignment from the TSD. - * exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment - applied to a class-wide type invoke Build_Get_Alignment to - generate code which retrieves the value of the alignment from - the TSD. - * rtsfind.ads (RE_Alignment): New Ada.Tags entity - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): For tagged - types if the value of the alignment is bigger than the Maximum - alignment then set the value of the alignment to the Maximum - alignment and report a warning. - * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate - spec of _alignment. - (Predefined_Primitive_Bodies): Do not generate body of _alignment. - -2011-12-12 Gary Dismukes - - * freeze.adb (Freeze_Expression): Allow freezing of static - scalar subtypes that are prefixes of an attribute, even if not - yet marked static. Such attributes will get marked as static - later in Eval_Attribute (as called from Resolve_Attribute). - * sem_attr.adb (Eval_Attribute): Remove wrong code that does an - early return for attribute prefixes that are unfrozen source-level - types. This code was incorrectly bypassing folding of unfrozen - static subtype attributes in default expressions (the executable - example in the now-deleted comment was in fact illegal). - -2011-12-12 Robert Dewar - - * a-coinve.adb, sem_res.adb, prj-nmsc.adb, a-cobove.adb, a-convec.adb, - gnatls.adb, sem_ch13.adb, prj-env.adb, prj-env.ads: Minor reformatting. - -2011-12-12 Tristan Gingold - - * gsocket.h: Adjust previous patch. - -2011-12-12 Thomas Quinot - - * exp_disp.adb: Minor reformatting. - -2011-12-12 Tristan Gingold - - * gnatls.adb (Search_RTS): New procedure. - (Scan_Ls_Arg): Move code that search the RTS. - (Gnatls): search the RTS later. - * prj-env.ads, prj-env.adb (Get_Runtime_Path): New function. - -2011-12-12 Ed Falis - - * sysdep.c: Fix treatment of VxWorks task options so that run-times - built with __SPE__ get option VX_SPE_TASK while others get VX_FP_TASK. - -2011-12-12 Bob Duff - - * sem_type.adb, sem_type.ads, sem_ch4.adb, treepr.adb, treepr.ads: - Minor cleanup and fiddling with debug printouts. - -2011-12-12 Vincent Celier - - * prj-nmsc.adb (Get_Directories): For a non extending project, - always get a declared object and/or exec directory if it already - exists, even when there are no sources, but do not create them. - -2011-12-12 Bob Duff - - * sem_res.adb (Resolve): Deal with the case where an abstract - operator is called with operands of type universal_integer. - -2011-12-12 Thomas Quinot - - * par_sco.adb: Minor fix to dominance marker referencing WHILE - decision. - -2011-12-12 Tristan Gingold - - * mlib-tgt-specific-xi.adb: (Get_Target_Prefix): Simplify code. - -2011-12-12 Thomas Quinot - - * par_sco.adb: Adjust dominant marker for branches of CASE - statements. - -2011-12-12 Thomas Quinot - - * gsocket.h, s-oscons-tmplt.c: Ensure we do not include any system - header file prior to redefining FD_SETSIZE. - -2011-12-12 Ed Schonberg - - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In - a generic context the aspect expressions may not have been - preanalyzed if there was no previous freeze point, so the - expressions must be preanalyzed now, and there is no conformance - to check for visibility changes. - -2011-12-12 Matthew Heaney - - * a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Use - subtype Index_Type'Base for Index component (Finalize): Remove - unnecessary access check (First, Last): Cursor return value - depends on iterator index value (Iterate): Use start position as - iterator index value (Next, Previous): Forward to corresponding - cursor-based operation. - * a-cborma.adb (Iterate): Properly initialize iterator object (with 0 - as node index). - -2011-12-12 Robert Dewar - - * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting. - -2011-12-12 Steve Baird - - * sem_ch3.adb (Check_Completion): Improve a comment. - -2011-12-12 Tristan Gingold - - * cstand.adb: Minor comment fix. - -2011-12-11 Eric Botcazou - - * gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC - flag of elements to compute that of the constructor. - -2011-12-11 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier - on references built for parameters which aren't specifically by-ref. - -2011-12-11 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If there is an - alignment set on a renaming, assert that the renamed object is aligned - enough as to make it possible to honor it. - -2011-12-11 Eric Botcazou - - * gcc-interface/trans.c (gigi): Initialize the linemap earlier. - -2011-12-06 Dave Korn - - * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS [windows targets]): - Correctly detect cygwin, which no longer has the '32' suffix, and use - appropriate implementations of the sockets and memory packages. - * sysdep.c (WIN_SETMODE): New define to choose the correct spelling of - setmode/_setmode for MinGW and Cygwin, respectively. - (__gnat_set_binary_mode [windows targets]): Use the above, and enable - the windows version for Cygwin as well as MinGW. - (__gnat_set_text_mode [windows targets]): Likewise. - (__gnat_ttyname [windows targets]): Provide a Cygwin implementation - in addition to the MinGW version. - (__gnat_is_windows_xp): Make available to Cygwin as well as MinGW. - (__gnat_get_stack_bounds): Likewise. - -2011-12-05 Bob Duff - - * sem_ch4.adb: Minor comment fix. - -2011-12-05 Robert Dewar - - * gnat_ugn.texi: Add documentation for -gnatw.e. - -2011-12-05 Bob Duff - - * treepr.adb (pn): Print something useful for - Elmt_Ids. Add Write_Eol to 'when others' case, so the output - will be seen immediately in gdb. - -2011-12-05 Ed Schonberg - - * lib-writ.adb (Output_Main_Program_Line): A generic subprogram - is never a main program. - -2011-12-05 Thomas Quinot - - * par_sco.adb: Various minor adjustments to dominance markers - generation. - -2011-12-05 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): If the function is - a completion, generate a body reference for its defining entity, - before rewriting the node as a body. - * sem_util.adb (Defining_Entity): Add entry for expression - function. - -2011-12-05 Bob Duff - - * sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias - to the Comes_From_Source check, to deal properly with the case - of indirect inheritance of "=". - -2011-12-05 Thomas Quinot - - PR ada/51307 - * s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal, - not a macro. - -2011-12-05 Thomas Quinot - - * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance - information in SCOs. - -2011-12-02 Eric Botcazou - Thomas Quinot - - * gcc-interface/Makefile.in (INCLUDES): Remove $(srcdir)/config. - (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) except for VxWorks. - Add thread.c to LIBGNAT_SRCS so that a symlink is created in ada/rts, - which allows the file to be installed in adainclude. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-12-02 Javier Miranda - - * sem_ch3.adb (Constrain_Access): Undo previous - patch for this routine. Required since the RM rule 3.7.1(7/3) - applies to all access types. - -2011-12-02 Bob Duff - - * sem_ch6.adb: Minor comment fix. - -2011-12-02 Joel Sherrill - - * s-tpopsp-rtems.adb: Use ATCB_Key rather than RTEMS_Ada_Self variable - for consistency with other ports. - * s-osinte-rtems.adb: Add body for dummy implementation of - pthread_rwlockattr_setkind_np(). - * s-osinte-rtems.ads: Add missing clock and rwlock bindings. - * terminals.c: Add __rtems__ conditionals to account for differences - in termios implementation. - -2011-12-02 Robert Dewar - - * sem_ch3.adb, sem_attr.adb, a-comutr.adb, a-cbmutr.adb, - a-cbmutr.ads: Minor reformatting. - -2011-12-02 Hristian Kirtchev - - * exp_dbug.adb: Comment reformatting. - (Get_External_Name): Use Reset_Buffers to reset the contents of - Name_Buffer and Homonym_Numbers. - (Qualify_All_Entity_Names): Reset the contents of Name_Buffer and - Homonym_Numbers before creating a new qualified name for a particular - entity. - (Reset_Buffers): New routine. - -2011-12-02 Matthew Heaney - - * a-cbmutr.ads (No_Node): Moved declaration from body to spec - * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Derives - from Root_Iterator. - (Child_Iterator): Derives from Root_Iterator. - (Finalize): Implemented as an override operation for Root_Iterator. - (First): Return value depends on Subtree component. - (Last): Component was renamed from Parent to Subtree. - (Next): Checks parameter value, and uses simplified loop. - (Iterate): Forwards to Iterate_Subtree. - (Iterate_Children): Component was renamed from Parent to Subtree. - (Iterate_Subtree): Checks parameter value - -2011-12-02 Robert Dewar - - * usage.adb: Add lines for -gnatw.n and -gnatw.N - (atomic sync info msgs). - -2011-12-02 Steve Baird - - * sem_ch3.adb (Check_Completion): An Ada 2012 - generic formal type doesn't require a completion. - -2011-12-02 Eric Botcazou - - * sem_util.adb (Set_Debug_Info_Needed): Also set the flag on the - packed array type if it is to be set on the array type used to - represent it. - -2011-12-02 Robert Dewar - - * gnat_rm.texi: Eliminate confusing use of type name. - -2011-12-02 Thomas Quinot - - * sem_ch10.adb (Analyze_Compilation_Unit): For a library subprogram - body that acts as spec, do not create a shallow copy of the context - clause for the synthetized spec (instead, use the same list as - in the body). - -2011-12-02 Bob Duff - - * gnat_ugn.texi: Clarify usage of -p binder switch. - -2011-12-02 Javier Miranda - - * sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb - (Effectively_Has_Constrained_Partial_View): Moved to sem_aux - (In_Generic_Body): Moved to sem_aux. - (Unit_Declaration_Node): Moved to sem_aux. - * einfo.ads (Effectively_Has_Constrained_Partial_View): Complete - documentation. - * exp_attr.adb, live.adb, sem_ch10.adb, checks.adb, sem.adb, - rtsfind.adb, sem_attr.adb, sem_elab.adb, exp_ch4.adb, sem_ch4.adb, - exp_ch13.adb: Add with-clause on Sem_Aux. - -2011-12-02 Yannick Moy - - * sem_util.adb (Unique_Name): Reach through Unique_Entity to - get the name of the entity. - (Unique_Entity): Correct case for subprogram stubs. - -2011-12-02 Yannick Moy - - * sem_ch3.adb (Check_Initialization): Do not emit warning on - initialization of limited type object in Alfa mode. - -2011-12-02 Robert Dewar - - * sinfo.ads: Minor reformatting. - * gnat_ugn.texi: Fix confusion in use of term "type name". - -2011-12-02 Robert Dewar - - * sem_ch6.adb: Minor change in error message. - -2011-12-02 Robert Dewar - - * sem_ch9.adb, prj-part.adb, vms_data.ads, sem_ch8.adb: Minor - reformatting. - -2011-12-02 Javier Miranda - - * sem_ch3.adb (Constrain_Access): Enable on Ada 2005 mode the - static check of the rule of general access types whose designated - type has discriminants. - * sem_util.ads, sem_util.adb - (Effectively_Has_Constrained_Partial_View): New subprogram. - (In_Generic_Body): New subprogram. - * einfo.ads (Has_Constrained_Partial_View): Adding documentation. - * sem_prag.adb (Inside_Generic_Body): Removed. Replaced by new - subprogram In_Generic_Body. - * exp_attr.adb, checks.adb, sem_attr.adb, exp_ch4.adb, - sem_ch4.adb: In addition, this patch replaces the occurrences of - Has_Constrained_Partial_View by - Effectively_Has_Constrained_Partial_View. - -2011-12-02 Matthew Heaney - - * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Rename - Position component. - (Finalize): Remove unnecessary access check. - (First): Forward to First_Child. - (Last): Forward to Last_Child. - (Iterate): Check preconditions for parent node parameter. - (Next): Forward to Next_Sibling. - (Previous): Forward to Previous_Sibling. - -2011-12-02 Robert Dewar - - * a-coinve.adb, a-coorma.adb, freeze.adb, a-coorse.adb, a-comutr.adb, - a-coormu.adb, a-convec.adb: Minor reformatting. - -2011-12-02 Matthew Heaney - - * a-coormu.ads, a-ciormu.ads: Declare iterator factory function. - * a-ciormu.adb, a-ciormu.adb (Iterator): Declare concrete - Iterator type. - (Finalize): Decrement busy counter. - (First, Last): Cursor return value depends on iterator node value. - (Iterate): Use start position as iterator node value. - (Next, Previous): Forward to corresponding cursor-based operation. - -2011-12-02 Robert Dewar - - * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb, - a-cbhase.adb, a-cdlili.adb, a-cihama.adb, a-ciorse.adb, a-cidlli.adb, - a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-cborse.adb, - a-ciorma.adb, a-cobove.adb: Minor reformatting. - -2011-12-01 Jakub Jelinek - - PR bootstrap/51201 - * gcc-interface/Make-lang.in: Initialize RTS_DIR with = instead of :=. - -2011-11-24 Rainer Orth - - * s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access. - -2011-11-23 Thomas Quinot - - * thread.c, s-oscons-tmplt.c: Generate __gnat_pthread_condattr_setup - only on platforms where this is required, as determined by - s-oscons.h. - -2011-11-23 Ed Schonberg - - * sem_ch9.adb: No check on entry index if error on index. - -2011-11-23 Gary Dismukes - - * sem_ch6.adb (Analyze_Return_Statement): Improve error messages for - return statements nested inside an extended_return_statement. - * gcc-interface/Make-lang.in: Update dependencies. - * gcc-interface/Makefile.in (MISCLIB): Add -lutil for BSD targets. - -2011-11-23 Ed Schonberg - - * freeze.adb (Freeze_All_Ent): An incomplete type is not - frozen by a subprogram body that does not come from source. - -2011-11-23 Pascal Obry - - * s-oscons-tmplt.c: Add PTY_Library constant. It contains - the library for pseudo terminal support. - * g-exptty.ads: Add pseudo-terminal library into a Linker_Options - pragma. - -2011-11-23 Ed Schonberg - - * sem_ch9.adb: No check on entry family index if generic. - -2011-11-23 Thomas Quinot - - * sem_ch9.adb, s-taprop.ads, s-taprop-hpux-dce.adb, s-taprop-irix.adb, - s-taprop-posix.adb, s-taprop-rtx.adb, s-taprop-solaris.adb, - s-taprop-tru64.adb, s-taprop-vxworks.adb: Move dependency on - System.OS_Constants from shared spec of - System.Tasking.Primitive_Operations to the specific body variants - that really require this dependency. - -2011-11-23 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming_Declaration): - If the declaration has aspects, analyze them so they can be - properly rejected. - -2011-11-23 Hristian Kirtchev - - * a-comutr.adb, a-coorma.adb, a-coorse.adb, a-convec.adb, a-cihase.adb, - a-cimutr.adb, a-coinve.adb, a-ciorma.adb, a-ciorse.adb, a-cobove.adb, - a-cohama.adb, a-cihama.adb, a-cidlli.adb, a-cdlili.adb, a-cbhama.adb, - a-cbhase.adb, a-cbmutr.adb, a-cborma.adb, a-cborse.adb, a-cbdlli.adb: - Add with and use clause for Ada.Finalization. Type - Iterator and Child_Iterator are now derived from Limited_Controlled. - (Finalize): New routine. - (Iterate): Add a renaming of counter Busy and - increment it. Update the return aggregate. - (Iterate_Children): Add a renaming of - counter Busy and increment it. Update the return aggregate. - (Iterate_Subtree): Add a renaming of counter Busy and increment - it. Update the return aggregate. - * a-cdlili.ads, a-cidlli.ads: Type List_Access is now a general access - type. - * a-cihama.ads: Type Map_Access is now a general access type. - * a-comutr.ads, a-cimutr.ads: Use type Natural for the two locks - associated with the tree. - * a-cohama.ads: Type Map_Access is now a general access type. - * a-coinve.ads, a-convec.ads: Type Vector_Access is now a general - access type. - * exp_ch5.adb (Expand_Iterator_Loop): Do not create a block - to wrap the loop as this is done at an earlier step, during - analysis. The declarations of the iterator and the cursor use - the usual Insert_Action mechanism when added into the tree. - * sem_ch5.adb (Analyze_Loop_Statement): Remove local constant - Loop_Statement and replace all respective uses by N. Add local - constant Loc. Preanalyze the loop iterator to discover whether - it is a container iterator and if it is, wrap the loop in a - block. This ensures that any controlled temporaries produced - by the iteration scheme share the same lifetime of the loop. - (Is_Container_Iterator): New routine. - (Is_Wrapped_In_Block): New routine. - (Pre_Analyze_Range): Move spec and body to the library level. - -2011-11-23 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Add documentation for new gnatpp option - that controls casing of type and subtype names. - -2011-11-23 Yannick Moy - - * sem_ch3.adb: Minor addition of comments. - -2011-11-23 Thomas Quinot - - * prj-part.adb (Extension_Withs): New global variable, - contains the head of the list of WITH clauses from the EXTENDS - ALL projects for which virtual packages are being created. - (Look_For_Virtual_Projects_For): When recursing through - an EXTENDS ALL, add the WITH clauses of the extending - project to Extension_Withs. When adding a project to the - Virtual_Hash, record the associated Extension_Withs list. - (Create_Virtual_Extending_Project): Add a copy of the appropriate - Extension_Withs to the virtual project. - -2011-11-23 Thomas Quinot - - * mlib-tgt-specific-vxworks.adb: Minor reformatting. - -2011-11-23 Thomas Quinot - - * Make-generated.in (Sdefault.Target_Name): Set to - $(target_noncanonical) instead of $(target) for consistency. - -2011-11-23 Matthew Heaney - - * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Iterator): Declared - Iterator type as limited (First, Last): Cursor return value - depends on iterator node value (Iterate): Use start position as - iterator node value (Next, Previous): Forward to corresponding - cursor-based operation. - -2011-11-23 Matthew Heaney - - * a-coorse.ads, a-ciorse.ads, a-cborse.ads (Set_Iterator_Interfaces): - Renamed from Ordered_Set_Iterator_Interfaces. - * a-coorse.adb, a-ciorse.adb, a-cborse.adb (Iterator): Declared - Iterator type as limited (First, Last): Cursor return value - depends on iterator node value (Iterate): Use start position as - iterator node value (Next, Previous): Forward to corresponding - cursor-based operation. - * a-cohase.ads, a-cohase.adb: Implemented forward iterator. - * a-cihase.adb, a-cbhase.adb (Iterator): Removed unnecessary - node component (First, Next): Forward call to corresponding - cursor-based operation (Iterate): Representation of iterator no - longer has node component - -2011-11-23 Hristian Kirtchev - - * exp_intr.adb (Expand_Unc_Deallocation): Ensure that the - dereference has a proper type before the side effect removal - mechanism kicks in. - * sem_ch3.adb (Analyze_Subtype_Declaration): Handle a rare case - where the base type of the subtype is a private itype created - to act as the partial view of a constrained record type. This - scenario manifests with equivalent class-wide types for records - with unknown discriminants. - -2011-11-23 Jerome Guitton - - * s-osprim-vxworks.adb (Clock): Use Clock_RT_Ada. - -2011-11-23 Thomas Quinot - - * s-oscons-tmplt.c: Fix unbalanced preprocessor directives Minor - reformatting/reorganization. - -2011-11-23 Thomas Quinot - - * g-htable.ads: Remove old comments. - -2011-11-23 Thomas Quinot - - * exp_imgv.adb: Minor reformatting. - -2011-11-23 Robert Dewar - - * sem_ch9.adb (Analyze_Entry_Declaration): Check for entry - family bounds out of range. - -2011-11-23 Matthew Heaney - - * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Iterator): Declare - type as limited, and remove node component. - (First, Next): Forward call to corresponding cursor-based operation. - (Iterate): Representation of iterator no longer has node component. - -2011-11-23 Yannick Moy - - * exp_util.adb: Revert previous change to remove side-effects in Alfa - mode, which is not the correct thing to do for renamings. - -2011-11-23 Thomas Quinot - - * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taprop-tru64.adb, - s-osinte-vxworks.ads, s-osinte-aix.ads, s-osinte-lynxos.ads, - s-osinte-solaris-posix.ads, s-taprop-solaris.adb, a-exetim-posix.adb, - s-osinte-irix.ads, s-osinte-solaris.ads, s-oscons-tmplt.c, - s-taprop-irix.adb, s-osinte-hpux-dce.ads, Makefile.rtl, - s-osinte-tru64.ads, s-osinte-darwin.ads, s-taprop.ads, - s-osinte-freebsd.ads, s-osinte-lynxos-3.ads, s-taprop-hpux-dce.adb, - s-taprop-posix.adb: Remove hard-coded clock ids; - instead, generate them in System.OS_Constants. - (System.OS_Constants.CLOCK_RT_Ada): New constant denoting the - id of the clock providing Ada.Real_Time.Monotonic_Clock. - * thread.c: New file. - (__gnat_pthread_condattr_setup): New function. For platforms where - CLOCK_RT_Ada is not CLOCK_REALTIME, set appropriate condition - variable attribute. - -2011-11-23 Yannick Moy - - * sem_ch3.adb: Restore the use of Expander_Active instead of - Full_Expander_Active, so that the evaluation is forced in Alfa - mode too. Otherwise, we end up with an unexpected insertion in a - place where it is not supposed to happen, on default parameters - of a call. - -2011-11-23 Thomas Quinot - - * prj-pp.adb, prj-pp.ads: Minor new addition: wrapper procedure "wpr" - for Pretty_Print, for use from within gdb. - -2011-11-23 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): Wrap the expanded loop - and the cursor declarations in a block, so that the loop variable - is local to the construct. - -2011-11-23 Matthew Heaney - - * a-coorma.ads, a-ciorma.ads, a-cborma.ads (Iterate): Returns - type Reversible_Iterator'Class. - * a-coorma.adb, a-ciorma.adb, a-cborma.adb (Iterator): - Declare type as limited. - (First, Last): Return value depends on iterator's start node value. - (Next, Previous): Call corresponding Cursor-based operation. - (Iterate): Indicate whether complete or partial iteration - -2011-11-23 Robert Dewar - - * errout.adb: Minor reformattin (Finalize): Take templates into - account for warning suppression. - * errout.ads (Set_Specific_Warning_Off): Add Used parameter. - * erroutc.adb: Minor reformatting (Finalize): Take generic - templates into account for warning suppress. - * erroutc.ads (Set_Specific_Warning_Off): Add Used parameter. - * sem_prag.adb: Minor reformatting (Analyze_Pragma, - case Warnings): Provide Used parameter in call to - Set_Specific_Warnings_Off (to deal with generic template case). - -2011-11-23 Pascal Obry - - * sem_prag.adb (Process_Convention): Better error message for - stdcall convention on dispatching calls. - -2011-11-23 Gary Dismukes - - * sem_ch4.adb, sem_ch13.adb: Minor reformatting. - -2011-11-23 Javier Miranda - - * exp_ch6.adb (Expand_Simple_Function_Return): Add missing - implicit type conversion when the returned object is allocated - in the secondary stack and the type of the returned object is - an interface. Done to force generation of displacement of the - "this" pointer. - -2011-11-23 Pascal Obry - - * impunit.adb: Add g-exptty and g-tty units. - -2011-11-23 Robert Dewar - - * exp_imgv.adb: Minor code reorganization (use Make_Temporary). - -2011-11-23 Robert Dewar - - * exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minor - reformatting. - -2011-11-23 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications): Place error on - line of precondition/ postcondition/invariant. - -2011-11-23 Pascal Obry - - * g-exptty.ads, g-exptty.adb, g-tty.ads, g-tty.adb, - terminals.c: New files. - Makefile.rtl: Add these new files. - * gnat_rm.texi: Add documentation for GNAT.Expect.TTY. - * gcc-interface/Makefile.in: Add g-exptty, g-tty, terminals.o - * gcc-interface/Make-lang.in: Update dependencies. - -2011-11-21 Robert Dewar - - * exp_imgv.adb (Expand_Width_Attribute): Handle case of Discard_Names. - * sem_attr.adb (Eval_Attribute, case Width): Ditto. - -2011-11-21 Thomas Quinot - - * sinfo.ads: Minor reformatting. - -2011-11-21 Yannick Moy - - * exp_util.adb: Minor reformatting. Update comments. - -2011-11-21 Robert Dewar - - * exp_prag.adb, exp_util.adb, sinfo.ads, sem_res.adb, s-stposu.adb, - sem_attr.adb, s-stposu.ads, s-taprop-solaris.adb, s-taprop-irix.adb, - sem_ch6.adb: Minor reformatting. - -2011-11-21 Arnaud Charlet - - * s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): Use - Unrestricted_Access to deal with fact that we properly detect the - error if Access is used. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-11-21 Yannick Moy - - * exp_prag.adb (Expand_Pragma_Check): Place error on first character - of expression. - * sem_res.adb (Resolve_Short_Circuit): Place error on first - character of expression. - -2011-11-21 Yannick Moy - - * exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode. - -2011-11-21 Hristian Kirtchev - - * exp_attr.adb (Expand_N_Attribute_Reference, case - Max_Size_In_Storage_Elements): Account for the size of the - hidden list header which precedes controlled objects allocated - on the heap. - * rtsfind.ads: Add RE_Header_Size_With_Padding to the runtime - tables. - * sinfo.adb (Header_Size_Added): New routine. - (Set_Header_Size_Added): New routine. - * sinfo.ads: Add flag Controlled_Header_Added along with - associated comment. - (Header_Size_Added): New inlined routine. - (Set_Header_Size_Added): New inlined routine. - * s-stposu.adb (Allocate_Any_Controlled): Use - Header_Size_With_Padding to calculate the proper - size of the header. - (Deallocate_Any_Controlled): Use - Header_Size_With_Padding to calculate the proper size - of the header. (Header_Size_With_Padding): New routine. - (Nearest_Multiple_Rounded_Up): Removed along with its uses. - * s-stposu.ads (Header_Size_With_Padding): New routine. - -2011-11-21 Ed Schonberg - - * aspects.adb: Aspect specifications are allowed on renaming - declarations - * par-ch6.adb (P_Subprogram): Parse aspect specifications in a - subprogram renaming declaration - -2011-11-21 Tristan Gingold - - * env.c: Remove unused declaration. - -2011-11-21 Pascal Obry - - * s-os_lib.ads: Minor style fix. - -2011-11-21 Pascal Obry - - * adaint.c (__gnat_dup2): When fd are stdout, stdin or stderr and - identical, do nothing on Windows XP. - -2011-11-21 Yannick Moy - - * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl): - Use Full_Expander_Active instead of Expander_Active to control - the forced evaluation of expressions for the sake of generating - checks. - -2011-11-21 Thomas Quinot - - * init.c: On FreeBSD, stack checking failures may raise SIGBUS. - -2011-11-21 Tristan Gingold - - * sysdep.c (mode_read_text, mode_write_text, mode_append_text, - mode_read_binary, mode_write_binary, mode_append_binary, - mode_read_text_plus, mode_write_text_plus, mode_append_text_plus, - mode_read_binary_plus, mode_write_binary_plus, - mode_append_binary_plus): Remove unused declarations. - -2011-11-21 Yannick Moy - - * gnat_rm.texi: Minor rewording. - -2011-11-21 Hristian Kirtchev - - * exp_imgv.adb (Expand_Width_Attribute): Emit - an error message rather than a warning when pragma Discard_Names - prevents the computation of 'Width. Do not emit an error through - the use of RE_Null. - -2011-11-21 Javier Miranda - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add - implicit type conversion when the type of the allocator is an - interface. Done to force generation of displacement of the "this" - pointer when required. - -2011-11-21 Ed Schonberg - - * sinfo.ads, sinfo.adb: Corresponding_Spec applies to expression - functions, and is set when the expression is a completion of a - previous declaration. - * sem_ch6.adb (Analyze_Expression_Function): To determine properly - whether an expression function completes a previous declaration, - use Find_Corresponding_Spec, as when analyzing a subprogram body. - -2011-11-21 Steve Baird - - * sem_util.adb (Deepest_Type_Access_Level): Improve comment. - (Type_Access_Level): Improve comment. - -2011-11-21 Eric Botcazou - - * gcc-interface/Makefile.in (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) by - means of -iquote unconditionally. - -2011-11-21 Robert Dewar - - * sem_ch3.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor - reformatting. - -2011-11-21 Arnaud Charlet - - * s-taprop-posix.adb (Create_Task): Use Unrestricted_Access - to deal with fact that we properly detect the error if Access - is used. - -2011-11-21 Steve Baird - - * sem_util.ads: Update comment describing function - Deepest_Access_Level. - * sem_util.adb (Deepest_Type_Access_Level): Return Int'Last for a - generic formal type. - (Type_Access_Level): Return library level - for a generic formal type. - * sem_attr.adb (Resolve_Attribute): Replace two Type_Access_Level - calls with calls to Deepest_Type_Access_Level. - * sem_ch3.adb (Analyze_Component_Declaration): replace a - Type_Access_Level call with a call to Deepest_Type_Access_Level. - * sem_res.adb (Resolve_Allocator.Check_Allocator_Discrim_Accessibility): - Replace three Type_Access_Level calls with calls to - Deepest_Type_Access_Level. - (Resolve_Allocator): Replace a Type_Access_Level call with a call to - Deepest_Type_Access_Level. - (Valid_Conversion.Valid_Array_Conversion): Replace a - Type_Access_Level call with a call to Deepest_Type_Access_Level. - -2011-11-21 Robert Dewar - - * sem_ch3.adb, s-taprop-vms.adb, opt.ads: Minor reformatting. - -2011-11-21 Robert Dewar - - * sinput.ads: Minor comment fix. - -2011-11-21 Robert Dewar - - * exp_attr.adb (Expand_N_Attribute_Reference, case First_Bit, - Last_Bit, Position): Handle 2005 case. - -2011-11-21 Robert Dewar - - * s-atocou-builtin.adb (Decrement): Use Unrestricted_Access - to deal with fact that we properly detect the error if Access - is used. - (Increment): Same fix. - * s-taprop-linux.adb (Create_Task): Use Unrestricted_Access - to deal with fact that we properly detect the error if Access - is used. - * sem_util.adb (Is_Volatile_Object): Properly record that A.B is - volatile if the B component is volatile. This affects the check - for passing such a by reference volatile actual to a non-volatile - formal (which should be illegal) - -2011-11-21 Robert Dewar - - * freeze.adb (Freeze_Enumeration_Type): Make sure to set both - size and alignment for foreign convention enumeration types. - * layout.adb (Set_Elem_Alignment): Redo setting of alignment - when size is set. - -2011-11-21 Yannick Moy - - * checks.adb (Apply_Access_Check, Apply_Arithmetic_Overflow_Check, - Apply_Discriminant_Check, Apply_Divide_Check, - Apply_Selected_Length_Checks, Apply_Selected_Range_Checks, - Build_Discriminant_Checks, Insert_Range_Checks, Selected_Length_Checks, - Selected_Range_Checks): Replace reference to Expander_Active - with reference to Full_Expander_Active, so that expansion of - checks is not performed in Alfa mode - -2011-11-21 Tristan Gingold - - * s-taprop-vms.adb (Create_Task): Use Unrestricted_Access to deal with - fact that we properly detect the error if Access is used. - -2011-11-21 Hristian Kirtchev - - * par-ch4.adb (P_Quantified_Expression): Add an Ada 2012 check. - -2011-11-21 Hristian Kirtchev - - * exp_imgv.adb: Add with and use clause for Errout. - (Expand_Width_Attribute): Emit a warning when in - configurable run-time mode to provide a better diagnostic message. - -2011-11-21 Hristian Kirtchev - - * s-finmas.adb (Finalize): Add comment concerning double finalization. - -2011-11-21 Ed Schonberg - - * sem_ch3.adb (Access_Definition): If the access definition - is itself the return type of an access to function definition - which is ultimately the return type of an access to subprogram - declaration, its scope is the enclosing scope of the ultimate - access to subprogram. - -2011-11-21 Steve Baird - - * sem_res.adb (Valid_Conversion): If a conversion was legal - in the body of a generic, then the corresponding conversion is - legal in the expanded body of an instance of the generic. - -2011-11-21 Robert Dewar - - * sem_ch3.adb: Minor reformatting. - -2011-11-21 Robert Dewar - - * s-utf_32.adb (Is_UTF_32_Line_Terminator): Recognize NEL as - line terminator. - * sinput.ads: Add section on Handling of Source Line Terminators. - * types.ads (Line_Terminator): Adjust comments. - -2011-11-21 Robert Dewar - - * frontend.adb (Frontend): Capture restrictions from config files - * lib-load.adb (Load_Unit): Save/set/restore restriction pragma - information - * lib-xref.adb (Generate_Reference): Fix handling of obsolescent - references. This was noticed during debugging, but it is not - known if it causes real bugs. - * restrict.ads, restrict.adb: New routines to save/set/restore - non-partition-wide restrictions. - * s-rident.ads: Comment changes for new handling of - No_Elaboration_Code - * sem.adb (Sem): Save/Set/Restore non-partition-wide restrictions - * sem_ch10.adb (Analyze_Compilation_Unit): Remove incomplete - attempt to save/restore non-partition-wide restrictions (now - this work is all done in Sem). - * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): - Special handling for restriction No_Elaboration_Code. - -2011-11-21 Robert Dewar - - * gnat_ugn.texi: Document new handling of restrictions pragmas. - -2011-11-21 Pascal Obry - - * s-taprop-linux.adb (Initialize_Lock): Do not allocate a cond - attribute as not needed. - -2011-11-21 Robert Dewar - - * sem_prag.adb: Minor reformatting. - -2011-11-21 Pascal Obry - - * gnat_rm.texi: Document restriction for stdcall convention on - dispatching calls. - -2011-11-21 Pascal Obry - - * sem_prag.adb (Process_Convention): A dispatching call cannot - have a stdcall calling convention. - -2011-11-21 Pascal Obry - - * s-taprop-linux.adb (Initialize_Lock): Do not allocate a - mutex attribute as not needed. - (Initialize_TCB): Likewise. - (Initialize): Likewise. - -2011-11-21 Robert Dewar - - * sem_ch6.adb (Is_Public_Subprogram_For): New procedure - (Process_PPCs): Invariants only apply to public subprograms. - -2011-11-21 Robert Dewar - - * sem_util.adb, sem_util.ads, sem_attr.adb, restrict.adb, - restrict.ads: Fix for No_Implicit_Aliasing in the renames case. - -2011-11-21 Robert Dewar - - * a-finali.ads: Use pragma Pure_12 for this unit - * aspects.adb: Add aspect Pure_12 - * aspects.ads: Add aspect Pure_12 - * opt.ads: Add note on Pure_12 - * par-prag.adb: Add dummy entry for Pure_12 - * sem_prag.adb: Implement Pure_12 pragma - * snames.ads-tmpl: Add Entry for Pure_12 - -2011-11-21 Sergey Rybin - - * vms_data.ads: Add qualifiers for new gnatpp options - '--call_threshold' and '--par_threshold". - * gnat_ugn.texi: Add description for new gnatpp options - '--call_threshold' and '--par_threshold". - -2011-11-21 Robert Dewar - - * lib.ads: Minor reformatting. - -2011-11-21 Robert Dewar - - * lib-load.ads: Add comment. - -2011-11-21 Gary Dismukes - - * sem_elab.adb: Minor reformatting - -2011-11-21 Robert Dewar - - * exp_ch6.adb: Minor reformatting. - -2011-11-21 Ed Schonberg - - * sem_ch12.adb (Check_Formal_Package_Instance): If a formal - subprogram of the formal package is covered by an others - association with a box initialization, no check is needed - against the actual in the instantiation of the formal package. - -2011-11-21 Robert Dewar - - * sem_elab.adb (Check_Internal_Call_Continue): Suppress junk - elab warning from within precondition/postcondition etc. - -2011-11-21 Ed Schonberg - - * exp_ch6.adb (Expand_Actuals): In Ada 2012, a function call - with out parameters may generate assignments to force constraint - checks. These checks must be properly placed in the code after the - declaration or statement that contains the call. - -2011-11-21 Fedor Rybin - - * gnat_ugn.texi: Adding info on current gnattest limitations an - support of -X option. - -2011-11-21 Robert Dewar - - * a-cfdlli.adb, a-cbdlli.adb: Minor reformatting. - -2011-11-20 Robert Dewar - - * exp_ch6.adb, exp_util.adb: Minor reformatting - -2011-11-20 Eric Botcazou - - * sinfo.ads (Reference): Document that it is OK to set - Is_Known_Non_Null on a temporary initialized to a N_Reference - node. - -2011-11-20 Matthew Heaney - - * a-cbdlli.adb, a-cfdlli.adb (Move): Set Last component to 0 - for Source list. - -2011-11-20 Eric Botcazou - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment): - Declare NEW_EXPR local variable and attach the - temporary to it. Set Is_Known_Non_Null on the temporary. - (Make_Build_In_Place_Call_In_Object_Declaration): Likewise. - * exp_util.adb (Remove_Side_Effects): Set Is_Known_Non_Null on - the temporary created to hold the 'Reference of the expression, - if any. - * checks.adb (Install_Null_Excluding_Check): Bail out for the - Get_Current_Excep.all.all idiom generated by the expander. - -2011-11-20 Eric Botcazou - - * gcc-interface/trans.c (struct language_function): Add GNAT_RET. - (f_gnat_ret): New macro. - (struct nrv_data): Add GNAT_RET. - (finalize_nrv_unc_r): New helper function. - (finalize_nrv): Add GNAT_RET parameter. Copy it into DATA. If the - function returns unconstrained, use finalize_nrv_unc_r as callback. - (return_value_ok_for_nrv_p): Test the alignment of RET_OBJ only if - RET_OBJ is non-null. - (Subprogram_Body_to_gnu): Pass GNAT_RET to finalize_nrv. - (gnat_to_gnu) : In the return-unconstrained case, - if optimization is enabled, record candidates for the Named Return - Value optimization. - -2011-11-20 Eric Botcazou - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment. - (gnat_to_gnu) : Add 'else' to avoid doing a useless - test. Tweak default case. - : Use better formatting. - * gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of - MODIFY_EXPR to initialize the storage. - (build_allocator): Likewise. - -2011-11-20 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Adjust - call to components_to_record. - (components_to_record): Add FIRST_FREE_POS parameter. For the variant - part, reuse enclosing union even if there is a representation clause - on the Unchecked_Union. If there is a variant part, compute the new - first free position, if any. Adjust call to self. Use a single field - directly only if it hasn't got a representation clause or is placed at - offset zero. Create the variant part at offset 0 if all the fields - down to this level have a rep clause. Do not chain the variant part - immediately and adjust downstream. - Do not test ALL_REP before moving the fields without rep clause to the - previous level. Call create_rep_part to create the REP part and force - a minimum size on it if necessary. Do not chain it immediately. - Create a fake REP part if there are fields without rep clause that need - to be laid out starting from FIRST_FREE_POS. - At the end, chain the REP part and then the variant part. - (create_rep_part): New function. - (get_rep_part): Minor tweak. - * gcc-interface/utils.c (tree_code_for_record_type): Minor tweak. - -2011-11-18 Iain Sandoe - - PR target/50678 - * init.c (__gnat_error_handler) [Darwin]: Move workaround to the - bug filed as radar #10302855 from __gnat_error_handler to... - (__gnat_adjust_context_for_raise) [Darwin]: ...here. New function. - (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE) [Darwin]: Define. - -2011-11-18 Tristan Gingold - Iain Sandoe - - PR target/49992 - * mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove. - * gcc-interface/Makefile.in (darwin): Remove ranlib special-casing. - -2011-11-12 Iain Sandoe - - * gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link - s-oscons.ads. - (OSCONS_CPP, OSCONS_EXTRACT): New. - (./bldtools/oscons/xoscons): New target. - ($(RTSDIR)/s-oscons.ads): Likewise. - (gnatlib): Depend on $(RTSDIR)/s-oscons.ads. - * gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency. - * Make-generated.in: Remove machinery to generate xoscons and - ada/s-oscons.ads. - -2011-11-10 Eric Botcazou - - * fe.h (Serious_Errors_Detected): New macro. - * gcc-interface/gigi.h (build_atomic_load): Declare. - (build_atomic_store): Likewise. - * gcc-interface/trans.c (atomic_sync_required_p): New predicate. - (call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable. - Build an atomic load for an In or In Out parameter if needed. - Build an atomic store for the assignment of an Out parameter if needed. - Build an atomic store to the target if ATOMIC_SYNC is true. - (present_in_lhs_or_actual_p): New predicate. - (gnat_to_gnu) : Build an atomic load if needed. - : Likewise. - : Likewise. - : Likewise. - : Adjust call to call_to_gnu. - Build an atomic store to the LHS if needed. - : Adjust call to call_to_gnu. - * gcc-interface/utils2.c: Include toplev.h. - (resolve_atomic_size): New static function. - (build_atomic_load): New function. - (build_atomic_store): Likewise. - * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h. - -2011-11-07 Olivier Hainque - - * sigtramp-ppcvxw.c: Add general comments. - (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add - rules for r2 to r13, plus CTR and XER. - (CFA_REG): New, register number used to hold the local CFA. - (CFI_DEF_CFA, SIGTRAMP_BODY): Use it. - Make that 15, not 14, with documentation. - (TCR): Undef before definition, preventing conflict with reg number in - VxWorks headers. - -2011-11-07 Robert Dewar - - * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb, - aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-11-07 Ed Schonberg - - * exp_ch6.adb: A tagged type is a legal actual for an aliased - formal. - -2011-11-07 Pascal Obry - - * g-socket.adb, g-socket.ads: Minor reformatting. - -2011-11-07 Robert Dewar - - * sem_res.adb (Resolve_Actuals): Minor error message improvement. - -2011-11-07 Robert Dewar - - * gnat_ugn.texi: Add discussion of default mode handling of - source representation with no -gnatW option given, in particular - noting that NEL (next line) is not recognized in this context. - -2011-11-07 Yannick Moy - - * sem_util.adb (Note_Possible_Modification): In Alfa mode, - generate a reference for a modification even when the modification - does not come from source. - -2011-11-07 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form, - use the indexing attributes rather than the Element function, - to obtain variable references. - * sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use - Find_Aspect rather than iterating over representation - items. Improve error message. - * a-cohama.adb, a-cohama.ads Update to latest RM, with two versions - of Reference functions. - -2011-11-07 Yannick Moy - - * sem_util.adb (Unique_Entity): For a parameter on a subprogram - body that has a corresponding parameter on the subprogram - declaration, define the unique entity as being the declaration - one. - -2011-11-07 Ed Schonberg - - * sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the - return type of a function is the class-wide type of an incomplete - type T, T can be a Taft-amendment type and does not have to be - completed in the current private part. - -2011-11-07 Ed Schonberg - - * aspects.ads (Inherited_Aspect): Map that indicates type aspects - that are inherited by default, and apply to the class-wide type - as well. - * aspects.adb (Find_Aspect): If the entity is class-wide and the - aspect is inherited, use the aspect of the specific type. - -2011-11-07 Hristian Kirtchev - - * exp_alfa.adb: Remove with and use clause for - Exp_Ch8. Add with and use clause for Exp_Util. - Remove local constant Disable_Processing_Of_Renamings. - (Expand_Alfa_N_Object_Renaming_Declaration): The expansion of - object renamings has been reenabled. - (Expand_Possible_Renaming): - The expansion of identifier and expanded names has been - reenabled. Perform the substitutions only for entities that - denote an object. - * exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util. - * exp_util.adb (Evaluate_Name): Moved from Exp_Ch8. - (Remove_Side_Effects): Alphabetize local variables. Add a guard - to avoid the infinite expansion of an expression in Alfa mode. Add - processing for function calls in Alfa mode. - * exp_util.ads (Evaliate_Name): Moved from Exp_Ch8. - -2011-11-07 Ed Schonberg - - * freeze.adb (Freeze_Entity): If the entity is an access to - subprogram whose designated type is itself a subprogram type, - its own return type must be decorated with size information. - -2011-11-04 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - -2011-11-04 Robert Dewar - - * sprint.adb (Sprint_Node_Actual, case Qualified_Expression): - Avoid junk semicolon after argument of machine code Asm operand. - -2011-11-04 Robert Dewar - - * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in - CodePeer mode or if restriction No_Exception_Handlers is present. - * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop - nodes in CodePeer mode or if restriction No_Exception_Handlers - is present. - -2011-11-04 Robert Dewar - - * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting. - -2011-11-04 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Specification): The - specification is legal if it is a function that returns an - abstract type, if it comes from an attribute renaming of a stream - attribute of an abstract type. - -2011-11-04 Gary Dismukes - - * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed - components, check whether recursively check whether the prefix - denotes an unaligned object. - -2011-11-04 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Debug): The argument of - the pragma is legal if it is an expanded name that denotes a - procedure that be can called without parameters. - -2011-11-04 Eric Botcazou - - * gnat_ugn.texi (Performance Considerations) : New sub-section. : - Minor tweak. - -2011-11-04 Robert Dewar - - * gnat_rm.texi: Minor reformatting. - -2011-11-04 Matthew Heaney - - * a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PE - when Target and Source denote same non-empty object - * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto - -2011-11-04 Robert Dewar - - * exp_attr.adb: Minor reformatting. - -2011-11-04 Ed Schonberg - - * exp_ch5.adb (Expand_Assign_Record): Do not generate a - discriminant assignment within an initialization proc if the - record is an unchecked union, as it can only come from the - initialization of an unchecked union component. - -2011-11-04 Robert Dewar - - * gnat_ugn.texi: Minor reformatting. - -2011-11-04 Robert Dewar - - * par-labl.adb (Rewrite_As_Loop): Generate info msg rather than - warning message. - -2011-11-04 Robert Dewar - - * exp_ch4.adb: Minor code reorganization (remove junk obsolete - var Save_Space). - -2011-11-04 Hristian Kirtchev - - * exp_alfa.adb: Add local constant - Disable_Processing_Of_Renamings; - (Expand_Alfa_N_Object_Renaming_Declaration): Disable - the name evaluation of object renamings for now. - (Expand_Potential_Renaming): Do not perform the substitution - for now. - * exp_util.adb (Remove_Side_Effects): Remove processing for - functions with side effects in Alfa mode. - -2011-11-04 Gary Dismukes - - * bindgen.adb (Gen_Elab_Calls): In the case - of the AAMP target, set elaboration entities to 1 rather than - incrementing. - -2011-11-04 Ed Schonberg - - * sem_ch10.adb (Install_Limited_With_Unit): To establish the - proper entities on the ancestors of a child unit that appear - in a limited_with clause, follow the unit links because the - units are not analyzed and scope information is incomplete. - -2011-11-04 Eric Botcazou - - * exp_ch4.adb (Expand_N_Selected_Component): Refine code - setting the Atomic_Sync_Required flag to detect one more case. - * exp_util.adb (Activate_Atomic_Synchronization): Refine code - setting the Atomic_Sync_Required flag to exclude more cases, - depending on the parent of the node to be examined. - -2011-11-04 Bob Duff - - * g-excact.adb: Minor: use named notation. - -2011-11-04 Ed Schonberg - - * sem_ch5.adb: Improve error messages for illegal iterators. - -2011-11-04 Hristian Kirtchev - - * exp_alfa.adb: Add with and use clauses for Exp_Ch8 and - Sem_Util. - (Expand_Alfa): Alphabetize cases on first choice. Add - processing for object renaming declarations, identifiers and - expanded names. - (Expand_Alfa_N_In): Remove useless return. - (Expand_Alfa_N_Object_Renaming_Declaration): New routine. - (Expand_Potential_Renaming): New routine. - * exp_ch8.adb (Evaluate_Name): Moved to the top level. - (Expand_N_Object_Declaration): Alphabetize local variables. Move - Evaluate_Name out to the top level. - * exp_ch8.ads (Evaluate_Name): Moved from body to package spec. - * exp_util.adb (Remove_Side_Effects): Add processing for - functions with side effects in Alfa mode. - -2011-11-04 Hristian Kirtchev - - * gnat_rm.texi: Add entries for - restrictions No_Relative_Delay, No_Requeue_Statements and - No_Stream_Optimizations. - -2011-11-04 Ed Schonberg - - * sem_ch4.adb: Set type of entity in prefixed call, for - completeness in a generic context. - -2011-11-04 Yannick Moy - - * sem_prag.adb: Minor refactoring (renaming of a parameter). - -2011-11-04 Robert Dewar - - * atree.ads: Minor reformatting. - -2011-11-04 Robert Dewar - - * checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d - and -gnatd.e here - * exp_ch2.adb (Expand_Entity_Reference): Use - Activate_Atomic_Synchronization - * exp_ch4.adb (Expand_N_Explicit_Dereference): Use - Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent): - Activate_Atomic_Synchronization (Expand_N_Selected_Component): - Use Activate_Atomic_Synchronization - * exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New - procedure. - * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to - N_Selected_Component node - -2011-11-04 Robert Dewar - - * sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting. - -2011-11-04 Yannick Moy - - * atree.adb, atree.ads (Set_Original_Node): New set procedure. - * sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects): - In ASIS mode, no splitting of aspects between conjuncts. - (Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma - expressions refer to the original aspect expressions through - the Original_Node link. This is used in semantic analysis for - ASIS mode, so that the original expression also gets analyzed. - * sem_prag.adb (Preanalyze_TC_Args, - Check_Precondition_Postcondition, - Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma - generated from a source aspect, also analyze the original aspect - expression. - (Check_Expr_Is_Static_Expression): New procedure - similar to existing procedure Check_Arg_Is_Static_Expression, - except called on expression inside pragma. - -2011-11-04 Tristan Gingold - - * prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from - Find_Project.Try_Path_Name. - (Find_Project): Use Find_Name_In_Path to implement Try_Path_Name. - -2011-11-04 Eric Botcazou - - * s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile. - -2011-11-04 Pascal Obry - - * projects.texi: Add short description for qualifiers aggregate - and aggregate library. - -2011-11-04 Matthew Heaney - - * Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb] - * a-cgaaso.adb: Replaced implementation with instantiation - of Generic_Sort. - * a-cogeso.ad[sb] This is the new Ada 2012 unit - Ada.Containers.Generic_Sort - -2011-11-04 Robert Dewar - - * exp_ch2.adb (Expand_Entity_Reference): Do not set - Atomic_Sync_Required for the case of a prefix of an attribute. - * exp_ch4.adb (Expand_N_Explicit_Dereference): May require - atomic synchronization - (Expand_N_Indexed_Component): Ditto. - (Expand_B_Selected_Component): Ditto. - * sem_prag.adb (Process_Suppress_Unsuppress): - Disable/Enable_Atomic_Synchronization can now occur for array - types with pragma Atomic_Components. - * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on - N_Explicit_Dereference nodes and on N_Indexed_Component nodes. - -2011-11-04 Gary Dismukes - - * gnat_ugn.texi: Editorial corrections for gnattest section. - -2011-11-04 Robert Dewar - - * sem_prag.adb: Minor reformatting. - * gnat_rm.texi: Update documentation for pragma Warnings (Off, - "***") usage. - * exp_ch2.adb (Expand_Entity_Reference): Only set - Atomic_Sync_Required on entities that are variables. Doesn't - make any sense on anything else. - -2011-11-04 Robert Dewar - - * exp_ch2.adb (Expand_Entity_Reference): Extend handling of - atomic sync to type case. - * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can - apply to types. - -2011-11-04 Robert Dewar - - * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test - for call vs assign. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-11-04 Robert Dewar - - * sem_prag.adb: Detect more cases of Long_Float inconsistencies at - compile time. - -2011-11-04 Matthew Heaney - - * Makefile.rtl, impunit.adb: Added a-sfecin.ads, - * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb], - a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb] - * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], - a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], - a-sulcin.ad[sb]: New files. - -2011-11-04 Geert Bosch - - * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads, - s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads, - i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads, - s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK. - * gcc-interface/Makefile.in: Remove libgnala and related objects. - -2011-11-04 Matthew Heaney - - * a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb], - a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb], - a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb], - a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operations - added to package. - -2011-11-04 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not assert - that the type of the parameters isn't dummy in type_annotate_only mode. - -2011-11-04 Robert Dewar - - * sem_ch12.adb: Minor reformatting - -2011-11-04 Gary Dismukes - - * bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target, - initialize elaboration entities to zero when specs are processed. - -2011-10-28 Iain Sandoe - Eric Botcazou - - PR target/50678 - * init.c (__gnat_error_handler) [Darwin]: Apply a work-around to the - bug filed as radar #10302855 (inconsistent unwind data for sigtramp). - -2011-10-28 Eric Botcazou - - PR ada/50842 - * gcc-interface/Makefile.in (SYMDEPS): Delete. - (LIBICONV): New variable. - (LIBICONV_DEP): Likewise. - (LIBS): Add $(LIBICONV). - (LIBDEPS): Add $(LIBICONV_DEP). - (EXTRA_GNATTOOLS_OBJS): Merge into... - (TOOLS_LIBS): ...this. Add $(LIBICONV). - -2011-10-26 Eric Botcazou - - * gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local - variable. Always create the elaboration variable, if any, as constant. - -2011-10-26 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Try to - make a packable type for fields of union types as well. - : Use RECORD_OR_UNION_TYPE_P predicate. - (gnat_to_gnu_component_type): Try to make a packable type for fields - of union types as well. - (make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate. - (maybe_pad_type): Try to make a packable type for fields of union types - as well. - (gnat_to_gnu_field): Likewise. - (is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate. - (set_rm_size): Likewise. - (rm_size): Likewise. - * gcc-interface/misc.c (gnat_type_max_size): Likewise. - * gcc-interface/trans.c (add_decl_expr): Likewise. - * gcc-interface/utils.c (finish_record_type): Likewise. - * gcc-interface/utils2.c (build_simple_component_ref): Likewise. - -2011-10-26 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_field): Always check components - declared as atomic. Move around conditionally executed code. - -2011-10-24 Robert Dewar - - * sem.adb (Initialize): Fix bug that blew up if called a second time. - -2011-10-24 Robert Dewar - - * tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c, - tb-ivms.c, tb-gcc.c: Update headers to GPL 3. - -2011-10-24 Robert Dewar - - * sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma - name in error msg. - -2011-10-24 Hristian Kirtchev - - * gnat_rm.texi: Add an entry for restriction No_Finalization. - -2011-10-24 Ed Schonberg - - * sem_ch12.adb (Insert_Freeze_Node_For_Instance): If the - current instance is within the one that contains the generic, - the freeze node for the current one must appear in the current - declarative part. Ditto if the current instance is within another - package instance. In both of these cases the freeze node of the - previous instance is not relevant. - -2011-10-24 Gary Dismukes - - * switch-m.adb (Normalize_Compiler_Switches): Add recognition - of AAMP-specific switches -univ and -aamp_target. - -2011-10-24 Robert Dewar - - * a-tienau.adb (Put): Deal properly with limited line length. - -2011-10-24 Robert Dewar - - * sem_warn.adb, sem_ch12.adb: Minor reformatting. - -2011-10-24 Tristan Gingold - - * gcc-interface/Makefile.in: Use GNU ld switches to generate map files - on AIX. - -2011-10-24 Ed Schonberg - - * sem_ch12.adb (Earlier): make available globally. If both - nodes have the same sloc, the freeze node that does not come - from source is the later one. - (True_Parent): Make available globally. - (Previous_Instance): Subsidiary of - Insert_Freeze_Node_For_Instance, to check whether the generic - parent of the current instance is declared within a previous - instance in the same unit or declarative part, in which case the - freeze nodes of both instances must appear in order to prevent - elaboration problems in gigi. - * sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a - freeze point, and the freeze node of a preceding instantiation - must be inserted before it. - -2011-10-24 Robert Dewar - - * checks.ads, checks.adb: Add handling of Synchronization_Check - * debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable - atomic sync). - * exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required - flag Minor code reorganization. - * opt.ads (Warn_On_Atomic_Synchronization): New switch. - * par-prag.adb: Add dummy entries for pragma - Disable/Enable_Atomic_Synchronization. - * sem_prag.adb (Process_Suppress_Unsuppress): Handle - case of Atomic_Synchronization specially (not suppressed - by All_Checks, cannot be set from Source). - (Pragma Disable/Enable_Atomic_Synchronization): Add processing. - * sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag - * snames.ads-tmpl: Add entry for Atomic_Synchronization Add - entry for pragma Disable/Enable_Atomic_Synchronization - * switch-c.adb: The -gnatp switch does not disable - Atomic_Synchronization Add -gnatep switch to disable - Atomic_Synchronization. - * types.ads: Add entry for Synchronization_Check - * usage.adb: Add line for -gnated switch - * warnsw.adb: Settings for Warn_On_Atomic_Synchronization - -2011-10-24 Geert Bosch - - * s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds start - at Integer'First. - -2011-10-24 Robert Dewar - - * sem_ch12.adb, s-gearop.adb: Minor reformatting. - -2011-10-24 Robert Dewar - - * warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings. - * warnsw.ads: Add comments to Set_GNAT_Mode_Warnings. - -2011-10-24 Emmanuel Briot - - * prj-proc.adb (Process_Expression_Variable_Decl): No special - handling for Project_Path unless it is an attribute. - -2011-10-24 Javier Miranda - - * sem_ch12.adb (Check_Hidden_Primitives): New subprogram. - (Install_Hidden_Primitives): New subprogram. - (Restore_Hidden_Primitives): New subprogram. - (Analyze_Formal_Package_Declaration, - Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): - Invoke Check_Hidden_Primitives after every call to - Analyze_Associations, and invoke Restore_Hidden_Primitives to - restore their visibility after processing the instantiation. - (Instantiate_Package_Body): Install visible primitives before - analyzing the instantiation and uninstall them to restore their - visibility when the instantiation has been analyzed. - * sem_util.ads, sem_util.adb (Add_Suffix): New subprogram - (Remove_Suffix): New subprogram - * sem_ch3.adb (Derive_Subprogram): When handling - a derived subprogram for the instantiation of a formal derived - tagged type, inherit the dispatching attributes from the actual - subprogram (not from the parent type). - -2011-10-24 Vasiliy Fofanov - - * gnat_ugn.texi: Document explicit use of XDECGNAT library. - -2011-10-24 Hristian Kirtchev - - * exp_ch3.adb (Build_Assignment): Add local constant N_Loc and - update its uses. - (Build_Discriminant_Assignments): Add local variable D_Loc and update - its uses. - (Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and - Var_Loc and update their uses. - (Build_Record_Init_Proc): Code reformatting. - (Increment_Counter): Add formal parameter Loc. - (Make_Counter): Add formal parameter Loc. - -2011-10-24 Eric Botcazou - - * sem_disp.adb (Covers_Some_Interface): Fix typo. - -2011-10-24 Matthew Heaney - - * a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix sense - of predicate. - -2011-10-24 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case): - Translate arguments in positional notation into pragma argument - association arguments for the generated pragma. - -2011-10-24 Arnaud Charlet - - * exp_ch5.adb: Fix minor typo. - -2011-10-24 Ed Schonberg - - * sem_ch3.adb (Is_Visible_Component): Refine predicate for - the case of a component reference in an instance body, when the - enclosing type is private. - -2011-10-24 Sergey Rybin - - * gnat_ugn.texi: For gnatelim, move the note about using the GNAT - driver for getting the project support into gnatelim section. - -2011-10-24 Robert Dewar - - * gnat_rm.texi: Minor correction to documentation on address clause. - -2011-10-24 Hristian Kirtchev - - * s-finmas.adb (Attach): Synchronize and call the unprotected version. - (Attach_Unprotected): New routine. - (Delete_Finalize_Address): Removed. - (Delete_Finalize_Address_Unprotected): New routine. - (Detach): Synchronize and call the unprotected version. - (Detach_Unprotected): Remove locking. - (Finalize): Add various comment on synchronization. Lock the critical - region and call the unprotected versions of routines. - (Finalize_Address): Removed. - (Finalize_Address_Unprotected): New routine. - (Set_Finalize_Address): Synchronize and call - the unprotected version. - (Set_Finalize_Address_Unprotected): New routine. - (Set_Heterogeneous_Finalize_Address): Removed. - (Set_Heterogeneous_Finalize_Address_Unprotected): New routine. - (Set_Is_Heterogeneous): Add comment on synchronization and - locking. - * s-finmas.ads: Flag Finalization_Started is no longer atomic - because synchronization uses task locking / unlocking. - (Attach): Add comment on usage. - (Attach_Unprotected): New routine. - (Delete_Finalize_Address): Renamed to - Delete_Finalize_Address_Unprotected. - (Detach): Add comment on usage. - (Detach_Unprotected): New routine. - (Finalize_Address): Renamed to Finalize_Address_Unprotected. - (Set_Finalize_Address): Add comment on usage. - (Set_Finalize_Address_Unprotected): New routine. - (Set_Heterogeneous_Finalize_Address): Renamed to - Set_Heterogeneous_Finalize_Address_Unprotected. - * s-stposu.adb (Allocate_Any_Controlled): Add local variable - Allocation_Locked. Add various comments on synchronization. Lock - the critical region and call the unprotected version of - routines. - (Deallocate_Any_Controlled): Add various comments on - synchronization. Lock the critical region and call the unprotected - version of routines. - -2011-10-24 Ed Schonberg - - * sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type - are universal and must carry the corresponding type. - * sem_eval.adb (Check_Non_Static_Context): If the type of the - expression is universal real, as may be the case for a fixed point - expression with constant operands in the context of a conversion, - there is nothing to check. - * s-finmas.adb: Minor reformatting - -2011-10-23 Eric Botcazou - - * gcc-interface/decl.c (create_concat_name): Add explicit cast. - -2011-10-20 Eric Botcazou - - * gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND, - TRACE): Reintroduce. - (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o, - ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules. - -2011-10-20 Eric Botcazou - - * gcc-interface/trans.c (lhs_or_actual_p): New predicate. - (unchecked_conversion_nop): Use it. - (gnat_to_gnu): Likewise. - -2011-10-20 Eric Botcazou - - * back_end.adb (Call_Back_End): Pass the maximum logical line number - instead of the maximum physical line number to gigi. - * gcc-interface/trans.c (Sloc_to_locus): Cope with line zero. - -2011-10-16 Tom Tromey - Dodji Seketeli - - * gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the new - public ordinary map interface. - -2011-10-16 Tristan Gingold - - * link.c (_AIX): Add support for GNU ld. - -2011-10-16 Fedor Rybin - - * gnat_ugn.texi: Fixing gnattest example names in the doc. - Adding explanation to additional tests usage. - -2011-10-16 Robert Dewar - - * exp_ch6.adb, sem_ch6.adb: Minor reformatting. - -2011-10-16 Eric Botcazou - - * a-convec.adb: Fix minor inconsistencies. - -2011-10-16 Matthew Heaney - - * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package - Implementation): Specify pragma Implementation_Defined. - -2011-10-15 Nicolas Roche - - * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using - either rtp-smp or ravenscar-cert-rtp runtimes. - -2011-10-15 Bob Duff - - * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): - Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr - is available. - (Expand_N_Extended_Return_Statement): Do not create a renaming of the - build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is - available. - (Make_Build_In_Place_Call_In_Allocator): Add the user-defined - pool only if RE_Root_Storage_Pool_Ptr is available. - (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a - pool actual unless RE_Root_Storage_Pool_Ptr is available. - * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool - formal only if RE_Root_Storage_Pool_Ptr is available. - -2011-10-15 Matthew Heaney - - * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue - type): Specify Priority aspect for protected type. - -2011-10-14 Ed Schonberg - - * exp_disp.adb (Check_Premature_Freezing): If an untagged type - is a generic actual, it is a subtype of a type that was frozen - by the instantiation, and even if not marked frozen it does not - affect the construction of the dispatch table. - -2011-10-14 Robert Dewar - - * make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code - reformatting. - * s-rident.ads: Add missing Compiler_Unit pragma. - -2011-10-14 Gary Dismukes - - * sem_res.adb: Minor reformatting. - -2011-10-14 Hristian Kirtchev - - * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): - Code and comment reformatting. Use BIP_Task_Master - when creating a _master. - (BIP_Formal_Suffix): Code reformatting. Correct the case for - BIP_Task_Master. - (Make_Build_In_Place_Call_In_Object_Declaration): Use - BIP_Task_Master when creating a reference to the enclosing - function's _master formal. - (Move_Activation_Chain): Use BIP_Task_Master when creating a reference - to the _master. - * exp_ch6.ads: Change BIP_Master to BIP_Task_Master. - (Needs_BIP_Finalization_Master): Alphabetized. - * sem_ch6.adb (Create_Extra_Formals): Update the usage of - BIP_Task_Master. - -2011-10-14 Ed Schonberg - - * par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode, - reject an aliased keyword on the object declaration of an extended - return statement. In older versions of the language indicate - that this is illegal in the standard. - -2011-10-14 Pascal Obry - - * sem_util.adb, sem_ch4.adb: Minor reformatting. - -2011-10-14 Ed Schonberg - - * sem_ch13.adb: Recognize properly procedure calls that are - transformed into code statements. - -2011-10-14 Vincent Celier - - * projects.texi: Minor fix in project example. - -2011-10-14 Ed Schonberg - - * sem_util.adb: Return objects are aliased if their type is - immutably limited as per AI05-0053. - -2011-10-14 Gary Dismukes - - * exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or - expansion code (moved to sem_res) (Expand_N_Op_Or): Remove - Short_Circuit_And_Or expansion code (moved to sem_res). - * sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean - "and" and "or" operators as short-circuit "and then" and "or - else", when pragma Short_Circuit_And_Or is active. - -2011-10-13 Robert Dewar - - * sem_ch9.adb, sem_util.adb, sem_util.ads, exp_ch6.adb, sem_ch4.adb, - sem_ch6.adb, exp_ch3.adb: Minor reformatting. - -2011-10-13 Arnaud Charlet - - * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o. - -2011-10-13 Jerome Guitton - - * sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads - -2011-10-13 Eric Botcazou - - * a-convec.ads (Cursor): Minor reformatting. - * a-convec.adb (Next): Fix minor inconsistencies. - (Previous): Likewise. - -2011-10-13 Ed Schonberg - - * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component): - New predicate to determine whether some operations on an array - type are available when the full view of its component may differ - from the view of the point of the array declaration. - * sem_ch4.adb (Find_Equality_Types): Use - Available_Full_View_Of_Component. - * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto - -2011-10-13 Ed Schonberg - - * sem_ch9.adb: Analyze aspects while discriminants of protected - type are visible. - -2011-10-13 Geert Bosch - - * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add - a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no - longer depend on an external library. - * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove - a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o. - Update dependencies. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-10-13 Cyrille Comar - - * gnat_ugn.texi: Minor editing. - -2011-10-13 Vincent Celier - - * projects.texi: Add documentation on packages and attributes - that are inherited from a project being extended into the - extended project. - -2011-10-13 Hristian Kirtchev - - * exp_ch3.adb (Build_Master): Rewritten. - (Expand_N_Full_Type_Declaration): Reformat the declarative - region. Update the call to Build_Master_Renaming. - (Expand_Previous_Access_Type): Rewritten. - * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): - Add local constant Result_Subt and update related usage. - (Expand_N_Extended_Return_Statement): Add local constant - Result_Subt and update related usage. - * exp_ch9.adb (Build_Activation_Chain): Rewritten to use the - new context detection mechanism. - (Build_Class_Wide_Master): - Use Insert_Action to add the renaming into the tree. - (Build_Master_Entity): Rewritten to use the new context detection - mechanism. - (Build_Master_Renaming): Add formal parameter Ins_Nod - and related usage. Use Insert_Action to add the renaming into the - tree. - (Find_Enclosing_Context): New subsidiary routine. Rather - than relying on enclosing scopes, this routine looks at the - tree structure to figure out the proper context for a _master - or a _chain. This approach eliminates the issues with transient - scopes which have not been converted into blocks. - * exp_ch9.ads (Build_Master_Entity): Change parameter profile - to better reflect the new usage. Update the related comment. - (Build_Master_Renaming): Add formal parameter Ins_Nod. Update - the comment on usage. - * sem_ch3.adb (Access_Definition): Update the calls to - Build_Master_Entity and Build_Master_Renaming. - * sem_ch6.adb (Create_Extra_Formals): Add local variable - Full_Subt. Code reformatting. - * sem_util.adb (Is_Iterator): Alphabetized. - (Is_LHS): Alphabetized. - (Is_Limited_Class_Wide_Type): New routine. - * sem_util.ads (Is_Limited_Class_Wide_Type): New routine. - -2011-10-13 Geert Bosch - - * a-ngrear.adb (Solve): Make generic and move to - System.Generic_Array_Operations. - * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution): - New generic solvers to compute a vector resp. matrix Y such - that A * Y = X, approximately. - * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution): - Implement using Forward_Eliminate and Back_Substitute - * a-ngcoar.adb: Reimplement in pure Ada to remove dependencies - on BLAS and LAPACK. - * a-ngcoar.ads ("abs"): Fix return type to be real. - -2011-10-13 Eric Botcazou - - PR ada/50589 - * s-linux-alpha.ads: Do not "with" Interfaces.C. - * s-linux-sparc.ads: Likewise. - -2011-10-13 Geert Bosch - - * s-gearop.ads (Forward_Eliminate): Add "abs" formal function - returning a Real. - * s-gearop.adb (Forward_Eliminate): Remove local "abs" function - and use formal. - * a-ngrear.adb (Forward_Eliminate): Adjust instantiation for - new profile. - -2011-10-13 Geert Bosch - - * a-ngrear.adb, s-gearop.adb, s-gearop.ads (Sqrt): Make generic and - move to System.Generic_Array_Operations. - -2011-10-13 Geert Bosch - - * a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic - * s-gearop.ads (L2_Norm): Change profile to be suitable for - Complex_Vector - * s-gearop.adb (L2_Norm): Reimplement using direct definition, - not inner product - -2011-10-13 Robert Dewar - - * exp_ch5.adb, sem_ch3.adb, impunit.adb, impunit.ads, sem_type.adb, - prj-proc.adb, exp_ch9.adb, s-regpat.adb, sem_ch10.adb, sem_prag.adb, - sem_ch12.adb, freeze.adb, sem_attr.adb, sem_attr.ads, gnatlink.adb, - par-ch6.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, - par-util.adb, sem_ch13.adb, lib-xref.adb, g-trasym.adb, g-trasym.ads, - exp_aggr.adb, s-taprop-posix.adb: Minor reformatting. - -2011-10-13 Geert Bosch - - * s-gearop.adb: Minor comment additions. - -2011-10-13 Fedor Rybin - - * gnat_ugn.texi: Add gnattest section. - -2011-10-13 Ed Schonberg - - * freeze.adb: Do not create body of renaming if declaration has - errors. - -2011-10-13 Olivier Hainque - - * init.c (__gnat_error_handler - vxworks case): Restrict sigtramp calls - further, to the ppc+kernel case only. - -2011-10-13 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Allocator): Comment reformatting. - * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): - Do not create a pool formal on .NET/JVM. - (Expand_N_Extended_Return_Statement): Alphabetize local - variables. Do not create a renaming of the build-in-place pool - parameter on .NET/JVM. (Make_Build_In_Place_Call_In_Allocator): - Add the user-defined pool only on non-VM targets. - (Make_Build_In_Place_Call_In_Object_Declaration): Alphabetize - local variables. Do not add a pool actual on .NET/JVM. - * sem_ch6.adb: Add with and use clause for Targparm. - (Create_Extra_Formals): Add build-in-place pool formal only on - non-VM targets. - * rtsfind.ads: Alphabetize entries. - -2011-10-13 Sergey Rybin - - * gnat_ugn.texi: Minor correction. - -2011-10-13 Ed Schonberg - - * sem_ch8.adb: Minor error message improvement. - -2011-10-13 Robert Dewar - - * a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting. - -2011-10-13 Gary Dismukes - - * exp_ch5.adb (Expand_N_Loop_Statement): For the transformation - of a for loop for an enumeration type with an enumeration rep - clause, which involves moving the original loop parameter into - a nested block, the loop parameter's entity must be removed from - the entity list of the loop scope. - -2011-10-13 Bob Duff - - * exp_ch6.ads (BIP_Storage_Pool): New "extra implicit parameter" - that gets passed in the same cases where BIP_Alloc_Form is passed - (caller-unknown-size results). BIP_Storage_Pool is used when - BIP_Alloc_Form = User_Storage_Pool. In that case, a pointer - to the user-defined storage pool is passed at the call site, - and this pool is used in callee to allocate the result. - * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): New - version of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passes - the additional BIP_Storage_Pool actual. - (Expand_N_Extended_Return_Statement): Allocate the function - result using the user-defined storage pool, if BIP_Alloc_Form = - User_Storage_Pool. - * sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool. - * exp_ch4.adb: Don't overwrite storage pool set by - Expand_N_Extended_Return_Statement. - * s-stopoo.ads, rtsfind.ads (Root_Storage_Pool_Ptr): New type, - for use in build-in-place function calls within allocators - where the access type has a user-defined storage pool. - -2011-10-13 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Add an option to control enumeration - literal casing. - -2011-10-13 Nicolas Roche - - * gnatlink.adb: Ensure that -mrtp is passed when runtime name ends - with 'rtp'. - -2011-10-13 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take into - account that an unchecked union type can be limited. - -2011-10-13 Olivier Hainque - - * init.c (__gnat_error_handler) : Add comments on - the use of the signal trampoline for PPC in the sjlj case as well. - Add legitimate casts, preventing compile time warnings on the - (sighandler *) profile. - -2011-10-13 Yannick Moy - - * sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysis - in Alfa mode. - -2011-10-13 Ed Schonberg - - * sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and case - expressions are legal limited return values if each one of their - dependent expressions are legal. - -2011-10-13 Ed Schonberg - - * sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode, - if the prefix of the call is a qualified expression, rewrite as - a code statement. - * sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, the - code statement is legal if it is a rewriting of a procedure call. - -2011-10-13 Ed Schonberg - - * exp_aggr.adb (Flatten): If a component association has a box, - assume that aggregate is not static. - (Safe_Aggregate): If a component association in a non-limited - aggregate has a box, assume that it cannot be expanded in place. - -2011-10-13 Vincent Celier - - * prj-conf.adb (Get_Or_Create_Configuration_File): Call - Process_Project_Tree_Phase_1 with Packages_To_Check. - (Process_Project_And_Apply_Config): Ditto - * prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse): - Remove default for argument Packages_To_Check. - * prj-proc.adb (Recursive_Process): New argument - Packages_To_Check. - (Process): Ditto. - (Process_Project_Tree_Phase_1): Ditto. - (Recursive_Project.Process_Aggregated_Projects): Call - Prj.Part.Parse and Process_Project_Tree_Phase_1 with - Packages_To_Check. - * prj-proc.ads (Process): New argument Packages_To_Check - (Process_Project_Tree_Phase_1): Ditto - -2011-10-13 Arnaud Charlet - - * gcc-interface/Makefile.in: Fix typo. - -2011-10-13 Ed Schonberg - - * sem_ch12.adb (Analyze_Formal_{Floating_Type, - Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}): - Use sloc of defining identifier of farmal type declaration, - as sloc of generated internal entity, to prevent misplaced - references in ali. - -2011-10-13 Ed Schonberg - - * sem_intr.adb (Check_Intrinsic_Operator): Check that type - is fully defined before checking that it is a numeric type. - -2011-10-13 Ed Schonberg - - * sem_aggr.adb (Resolve_Record_Aggregate): If a component - association for component X has a box, then X is covered in the - aggregate even if there is not default value for X in the type - declaration, and X has to be default-initialized. - -2011-10-13 Ed Schonberg - - * sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark - literals as referenced only if reference is in current source unit. - -2011-10-13 Matthew Heaney - - * a-csquin.ads (Enque, Dequeue): Mark interface operations as entries. - -2011-10-13 Olivier Hainque - - * sigtramp.h: New file. Prototype and spec of the signal - trampoline to be called by an established handler to provide - dwarf call frame info before the real signal processing code. - * sigtramp-ppcvxw.c: New file. Implementation of the signal - trampoline for ppc-vxworks. - * init.c (vxworks section): Use it for ppc. - -2011-10-13 Thomas Quinot - - * par-ch2.adb, par.adb, par-util.adb, par-ch3.adb - (Check_Future_Identifier): New subprogram, - factors duplicated code from Par.Ch2.P_Identifier and - Par.Ch3.P_Defining_Identifier. - -2011-10-13 Thomas Quinot - - * s-taprop-posix.adb (Initialize): Always raise Storage_Error - if we fail to initialize CV attributes or CV. - -2011-10-13 Thomas Quinot - - * s-tasren.adb (Timed_Selective_Wait, case - Accept_Alternative_Selected): Use Defer_Abort_Nestable, since - we know abortion is already deferred. - -2011-10-13 Hristian Kirtchev - - * exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9. - (Build_Master_Renaming (function)): Removed. - (Build_Master_Renaming (procedure)): Moved to exp_ch9. - (Expand_Full_Type_Declaration): Alphabetize - variables. Reformatting of code and comments. Rewrite the - section on processing of anonymous access-to-task types in - record components. - * exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9. - (Build_Master_Renaming): Moved to exp_ch9. - * exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3. - (Build_Master_Entity): Add formal parameter - Use_Current. Reformatting of code and comments. - (Build_Master_Renaming): Moved from exp_ch3. - * exp_ch9.ads (Build_Class_Wide_Master): Moved from - exp_ch3. Update comment on usage. - (Build_Master_Entity): - Add formal parameter Use_Current. Update comment on usage. - (Build_Master_Renaming): Moved from exp_ch3. - * sem_ch3.adb (Access_Definition): Remove redundant code to - create a _master and a renaming. - -2011-10-13 Ed Schonberg - - * lib-xref.adb: Do no emit reference to overridden operation, - if it is internally generated. - -2011-10-13 Vincent Celier - - * bindgen.adb: Remove any processing related to g-trasym - * Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS - * mlib-prj.adb: Remove any processing related to g-trasym. - -2011-10-12 Eric Botcazou - - * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning. - * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New. - (ALL_ADAFLAGS): Include WARN_ADAFLAGS. - (ADA_FLAGS_TO_PASS): Likewise. - (COMMON_FLAGS_TO_PASS): New. - (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular - native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS. - (gnatlib): Use COMMON_FLAGS_TO_PASS. - (ada.install-common): Likewise. - (install-gnatlib): Likewise. - (install-gnatlib-obj): Likewise. - (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well. - (gnat-cross): Delete. - (gnatboot): Likewise. - (gnatboot2): Likewise. - (gnatboot3): Likewise. - (gnatstage1): Likewise. - (gnatstage2): Likewise. - * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise. - (MOST_ADAFLAGS): Likewise. - (LOOSE_CFLAGS): Likewise. - (gnat-cross): Likewise. - (GNATLIBFLAGS): Add -W -Wall. - (GNATLIBCFLAGS_FOR_C): Likewise. - * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines. - * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases. - -2011-10-12 Eric Botcazou - - * gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions. - (push_range_check_info): Likewise. - (gnat_to_gnu) : Likewise. - * gcc-interface/utils2.c (build_unary_op) : Likewise. - (gnat_invariant_expr): Likewise. - * gcc-interface/utils.c (compute_related_constant): Likewise. - (max_size): Fix handling of SAVE_EXPR. - (remove_conversions): Fix formatting. - -2011-10-12 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag. - (DECL_INDUCTION_VAR): New macro. - (SET_DECL_INDUCTION_VAR): Likewise. - * gcc-interface/gigi.h (convert_to_index_type): Declare. - (gnat_invariant_expr): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : If this is a loop - parameter, set DECL_LOOP_PARM_P on it. - * gcc-interface/misc.c (gnat_print_decl) : If DECL_LOOP_PARM_P - is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT. - * gcc-interface/trans.c (gnu_loop_label_stack): Delete. - (struct range_check_info_d): New type. - (struct loop_info_d): Likewise. - (gnu_loop_stack): New stack. - (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference - built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P - is set, do not test DECL_RENAMED_OBJECT. - (push_range_check_info): New function. - (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just - the label. Reference the label and the iteration variable from it. - Build the special induction variable in the unsigned version of the - size type, if it is larger than the base type. And attach it to the - iteration variable if the latter isn't by-ref. In the iteration scheme - case, initialize the invariant conditions in front of the loop if - deemed profitable. Use gnu_loop_stack. - (gnat_to_gnu) : Use gnu_loop_stack. - : Always process the reason. In the range - check and related cases, and if loop unswitching is enabled, compute - invariant conditions and push this information onto the stack. - Do not translate again the condition if it has been already translated. - * gcc-interface/utils.c (record_global_renaming_pointer): Assert that - DECL_LOOP_PARM_P isn't set. - (convert_to_index_type): New function. - * gcc-interface/utils2.c (build_binary_op) : Use it in order - to convert the index from the base index type to sizetype. - (gnat_invariant_expr): New function. - -2011-10-11 Michael Meissner - - * gcc-interface/utils.c (def_builtin_1): Delete old interface with - two parallel arrays to hold standard builtin declarations, and - replace it with a function based interface that can support - creating builtins on the fly in the future. - * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Ditto. - (gnat_to_gnu): Ditto. - -2011-10-07 Eric Botcazou - - PR lto/50492 - * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment. - * gcc-interface/utils.c (global_context): New variable. - (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs - that are either public external or at top level. Use "No" macro. - (end_subprog_body): Call decl_function_context. - (rest_of_subprog_body_compilation): Likewise. - -2011-10-07 Eric Botcazou - - * gcc-interface/gigi.h (gnat_useless_type_conversion): Declare. - (rest_of_subprog_body_compilation): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : For renaming, - test for useless conversions by means of gnat_useless_type_conversion. - * gcc-interface/trans.c: Include bitmap.h and cgraph.h. - (language_function): Add named_ret_val and other_ret_val. - (f_named_ret_val): New macro. - (f_other_ret_val): Likewise. - (gigi): Call rest_of_subprog_body_compilation. - (struct nrv_data): New structure. - (is_nrv_p): New predicate. - (prune_nrv_r): New helper function. - (prune_nrv_in_block): New function. - (finalize_nrv_r): New helper function. - (finalize_nrv): New function. - (return_value_ok_for_nrv_p): New predicate. - (build_return_expr): If optimization is enabled, record candidates for - the Named Return Value optimization. - (build_function_stub): Call rest_of_subprog_body_compilation. - (Subprogram_Body_to_gnu): If optimization is enabled and there are - candidates, finalize the Named Return Value optimization. - Call rest_of_subprog_body_compilation. - (call_to_gnu): At the end, if a return value is needed, simplify the - result before wrapping it up in a COMPOUND_EXPR. - * gcc-interface/utils.c (end_subprog_body): Split into... - (rest_of_subprog_body_compilation): ...this. New function. - (gnat_useless_type_conversion): Likewise. - -2011-10-06 Thomas Quinot - - * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, - exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb, - g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb, - par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb, - sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, - sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb, - s-regpat.adb, s-tpopde-vms.ads: Minor reformatting. - * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD. - -2011-10-06 Ed Schonberg - - * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container - references. - -2011-10-06 Matthew Heaney - - * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb - (Dequeue_Only_High_Priority): Protected procedure now implemented. - -2011-10-06 Vincent Celier - - * g-trasym.adb: Replace old implementation with the default - implementation that returns list of addresses as "0x...". - * g-trasym.ads: Update the list of platforms with the full - capability. Indicate that there is a default implementation - for other platforms. - * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove. - * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there - is now a default implementation for all platforms without the full - capability. - -2011-10-06 Robert Dewar - - * a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb, - a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb, - a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code - reorganization (use conditional expressions). - -2011-10-06 Robert Dewar - - * sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for - floating divide by zero. - -2011-10-06 Ed Schonberg - - * sem_ch6.adb: Limited interfaces that are not immutably limited - are OK in return statements. - -2011-09-30 Iain Sandoe - - * gcc-interface/Makefile.in (Darwin): Partial reversion of previous - change to powerpc section. - -2011-09-29 Iain Sandoe - - * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS - across the port. - -2011-09-27 Ed Schonberg - - * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads, - a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads, - a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and - indefinite sets. - * a-coorma.ads: Minor reformmating. - * einfo.ads: Improve the comment describing the - Directly_Designated_Type function. - * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite - ordered maps. - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update - dependencies. - -2011-09-27 Robert Dewar - - * a-comutr.ads: Minor reformatting. - -2011-09-27 Ed Schonberg - - * a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children - iterators to multiway trees. - -2011-09-27 Yannick Moy - - * debug.adb (d.D): New option for strict Alfa mode. - * opt.ads (Strict_Alfa_Mode): New flag to interpret compiler - permissions as strictly as possible. - * sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict - Alfa mode, now, interpret ranges of base types like GNAT does; in - strict mode, simply change the range of the implicit base Itype. - * gnat1drv.adb: Update comments. Set Strict_Alfa_Mode. - -2011-09-27 Robert Dewar - - * exp_ch9.adb: Minor comment fixes. - -2011-09-27 Ed Schonberg - - * a-comutr.adb, a-comutr.ads: Add children iterators on multiway - trees. - -2011-09-27 Eric Botcazou - - * checks.adb (Apply_Scalar_Range_Check): Use Designated_Type - instead of Directly_Designated_Type in the indirect array case. - -2011-09-27 Robert Dewar - - * exp_util.adb, exp_aggr.adb: Minor reformatting. - -2011-09-27 Ed Schonberg - - * sinfo.ads, par-ch3.adb: Minor comment update: aspect specification - on subtype declarations. - * exp_aggr.adb: Minor comment update. - -2011-09-27 Eric Botcazou - - * exp_util.adb (Safe_Prefixed_Reference): Remove always-false - test in the N_Explicit_Dereference case. Fold double logical - negation in the special loop case and conditionalize it on - Variable_Ref being true. - -2011-09-27 Ed Schonberg - - * sem_ch4.adb (Analyze_Selected_Component): If the prefix is a - single protected object and the selector is a discriminant or an - entry family, this is a non-overloaded candidate interpretation, - and possible primitive operations of the type must not be - examined. - -2011-09-27 Arnaud Charlet - - * s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased. - -2011-09-27 Pascal Obry - - * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads, - s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads: - Add dummy definitions for pthread_rwlock_t - and pthread_rwlockattr_t on all POSIX platforms. - * s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock - reference. - (Finalize_Lock): Likewise. - (Write_Lock): Likewise. - (Unlock): Likewise. - -2011-09-27 Tristan Gingold - - * s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for - windows 64. - -2011-09-27 Pascal Obry - - * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads, - s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads, - s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads, - s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads, - s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads, - s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads, - s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads, - s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb, - s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb, - s-taprop-posix.adb: Revert previous changes. - (Lock): Now a record containing the two possible lock - (mutex and read/write) defined in OS_Interface. - * s-taprop-linux.adb (Finalize_Protection): Use r/w lock for - 'R' locking policy. - (Initialize_Protection): Likewise. - (Lock): Likewise. - (Lock_Read_Only): Likewise. - (Unlock): Likewise. - -2011-09-27 Pascal Obry - - * s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as - OS_Interface.pthread_rwlock_t. - -2011-09-27 Robert Dewar - - * exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb, - a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads, - sem_ch5.adb, sem_util.adb: Minor reformatting. - -2011-09-27 Pascal Obry - - * s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock. - (Finalize_Lock)[RW_Lock]: Likewise. - (Write_Lock)[RW_Lock]: Likewise. - (Unlock)[RW_Lock]: Likewise. - (Read_Lock): Define L as RW_Lock (instead of Lock). - * s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New - routine for r/w lock. - (Finalize_Lock)[RW_Lock]: Likewise. - (Write_Lock)[RW_Lock]: Likewise. - (Unlock)[RW_Lock]: Likewise. - (Read_Lock): Define L as RW_Lock (instead of Lock). - - * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, - s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb, - s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb - (Initialize_Lock)[RW_Lock]: Same implementation as corresponding - routine for standard lock. - (Finalize_Lock)[RW_Lock]: Likewise. - (Write_Lock)[RW_Lock]: Likewise. - (Unlock)[RW_Lock]: Likewise. - (Read_Lock): Define L as RW_Lock (instead of Lock). - * s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock) - in the record definition. - * s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w - lock for 'R' locking policy. - (Initialize_Protection): Likewise. - (Lock): Likewise. - (Lock_Read_Only): Likewise. - (Unlock): Likewise. - * s-taspri-posix.ads (RW_Lock): New type defined as - OS_Interface.pthread_rwlock_t. - - * s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads, - s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads, - s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads, - s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock. - -2011-09-27 Pascal Obry - - * exp_ch9.adb, s-taspri-posix.ads: Minor reformatting. - -2011-09-27 Pascal Obry - - * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads, - s-osinte-hpux.ads, s-osinte-irix.ads, - s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of - pthread_mutex_t. - (pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t. - * s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t, - pthread_rwlockattr_init, pthread_rwlockattr_destroy, - pthread_rwlockattr_setkind_np, pthread_rwlock_init, - pthread_rwlock_destroy, pthread_rwlock_rdlock, - pthread_rwlock_wrlock, pthread_rwlock_unlock): New. - -2011-09-27 Pascal Obry - - * rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry. - (RE_Id): Add RE_Lock_Read_Only. - (RE_Unit_Table): Likewise. - * sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy - to lift restriction on first character. Handle now the - Name_Concurrent_Readers_Locking where policy character is set to - 'R'. - * snames.ads-tmpl (Name_Concurrent_Readers_Locking): New - constant. - * exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a - read only lock for function in protected object. - * s-taprob.ads (Lock_Read_Only): Remove obsolete comment as - this routine is now used. - -2011-09-26 Rainer Orth - - * s-atocou-x86.adb (Decrement): Use %;. - (Increment): Likewise. - -2011-09-26 Eric Botcazou - - * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the - dereference of the pointer to the storage area. Remove useless type - conversions and factor out common code. - -2011-09-26 Eric Botcazou - - * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local - variable and use it throughout. - : Add 'break' at the end. - : Do not unconditionally convert to the unpadded type as a - first step. Also convert to the unpadded type as a last step. - -2011-09-26 Eric Botcazou - - * gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with - DECL_CHAIN in comment. - * gcc-interface/trans.c (gigi): Likewise. - (Attribute_to_gnu): Likewise. - (build_function_stub): Likewise. - (gnat_to_gnu): Likewise. - * gcc-interface/utils.c (create_subprog_decl): Likewise. - (convert_vms_descriptor64): Likewise. - (convert_vms_descriptor32): Likewise. - -2011-09-26 Eric Botcazou - - * gcc-interface/trans.c (assoc_to_constructor): Minor tweaks. - * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting - issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if - the type of the record is TYPE_READONLY. - -2011-09-26 Eric Botcazou - Robert Dewar - - * sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN - OUT formal parameter which is of an null-exclusion access subtype. - -2011-09-26 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set the flag. - (gnat_to_gnu_param): Likewise. - * gcc-interface/utils.c (convert) : Invoke - maybe_unconstrained_array instead of doing the work manually. - (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag. - * gcc-interface/utils2.c (build_unary_op) : If operand - is a DECL with the flag, set TREE_THIS_NOTRAP on the reference. - (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag. - (gnat_stabilize_reference): Likewise. - -2011-09-26 Eric Botcazou - - * gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro. - (SET_TYPE_NULL_BOUNDS): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set again - TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template. - * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat - pointer types. - * gcc-interface/utils.c (create_var_decl_1): If the object is external, - check that the initializer is a valid constant expression for use in - initializing a static variable. Add missing guard. - (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set. - (convert_to_fat_pointer): In the null fat pointer case, build a valid - pointer for the bounds. - * gcc-interface/utils2.c (compare_fat_pointers): New function. - (build_binary_op) : Call it to compare fat pointers. - -2011-09-25 Eric Botcazou - - * gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine. - * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in - the by-ref case. Do not set TREE_READONLY on a renamed object. Set - TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes. - (Attribute_to_gnu) : Expand the use of the parameter cache - to the indirect case. - * gcc-interface/utils.c (convert) : Preserve - the TREE_THIS_NOTRAP flag. - -2011-09-25 Eric Botcazou - - * gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an - iteration scheme, always generate the do-while form if optimization - is enabled. Use more straightforward test at the end. - -2011-09-25 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Use - XNEW instead of xmalloc. Do not build useless pointer type. - : Use XNEW instead of xmalloc. - * gcc-interface/trans.c (gnat_to_gnu) : Tidy. - * gcc-interface/utils2.c (build_unary_op): Remove local variable. - -2011-09-25 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not promote - the alignment if this doesn't prevent BLKmode access to the object. - -2011-09-24 Iain Sandoe - - * gcc-interface/Makefile.in (darwin): Do not issue the - '-flat_namespace' linker flag during Ada build. - * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the - default shared library options. - -2011-09-19 Alexandre Oliva - - * gcc-interface/decl.c (annotate_value): Look up expression for - insertion in the cache at the end. - -2011-09-19 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - -2011-09-19 Steve Baird - - * snames.ads-tmpl: Move declaration of Name_Annotate into range of - configuration pragma names so that Is_Configuration_Pragma_Name - will return True for Name_Annotate. Make corresponding change in - Pragma_Id enumeration type. This is needed to allow an Annotate - pragma to occur in a configuration pragma file (typically, - a gnat.adc file). - * gnat_ugn.texi: Add Annotate to the list of configuration pragmas. - * gnat_rm.texi: Note that pragma Annotate may be used as a - configuration pragma. - -2011-09-19 Ed Schonberg - - * a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads, - a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees. - -2011-09-19 Yannick Moy - - * exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function - for expansion of set membership. - (Expand_Alfa): Call expansion for N_In and N_Not_In nodes. - * exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure - visible for use in Alfa expansion. - * sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop - variable in Alfa mode. - -2011-09-19 Thomas Quinot - - * s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT. - -2011-09-19 Thomas Quinot - - * exp_ch9.adb: Minor reformatting. - -2011-09-19 Hristian Kirtchev - - * freeze.adb (Build_Renamed_Body): Generic subprograms - instantiations cannot be poperly inlined by the compiler, do - not set the Body_To_Inline attribute in such cases. - * sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all - inlining-related flags from the generic subprogram declaration. - -2011-09-19 Thomas Quinot - - * exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads - (Build_Stub_Type): Remove, instead copy components from - System.Partition_Interface.RACW_Stub_Type. - (RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine. - (Copy_Component_List): New subprogram. - -2011-09-19 Yannick Moy - - * lib-xref.adb (Generate_Reference): Ignore references to - constants in Standard. - -2011-09-19 Robert Dewar - - * err_vars.ads, errout.ads: Minor reformatting. - -2011-09-19 Robert Dewar - - * aspects.ads (Impl_Defined_Aspects): New array - * lib-writ.adb (No_Dependences): New name for No_Dependence - * restrict.adb (No_Dependences): New name for No_Dependence - (Check_Restriction_No_Specification_Of_Aspect): New - procedure. - (Set_Restriction_No_Specification_Of_Aspect): New procedure - (Restricted_Profile_Result): New variable - (No_Specification_Of_Aspects): New variable - (No_Specification_Of_Aspect_Warning): New variable - * restrict.ads (No_Dependences): New name for No_Dependence - (Check_Restriction_No_Specification_Of_Aspect): New procedure - (Set_Restriction_No_Specification_Of_Aspect): New procedure - * s-rident.ads: Add restriction - No_Implementation_Aspect_Specifications, this is also added to - the No_Implementation_Extensions profile. - * sem_ch13.adb (Analyze_Aspect_Specifications): Check - No_Implementation_Defined_Aspects - (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect - * sem_prag.adb (Analyze_Aspect_Specifications): Check - No_Implementation_Aspects - (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect - * snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name - -2011-09-19 Yannick Moy - - * lib-xref.adb (Generate_Reference): Take into account multiple - renamings for Alfa refs. - -2011-09-19 Thomas Quinot - - * g-socthi-mingw.adb: Minor reformatting. - -2011-09-19 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): Set tagged type - expansion to False in mode Alfa - -2011-09-19 Pascal Obry - - * mingw32.h: Remove obsolete code needed for old versions - of MingW. - -2011-09-19 Robert Dewar - - * errout.ads: Minor reformatting. - -2011-09-19 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): When the expression - function is transformed into a declaration and a body, insert - body at the end of the declarative part, to prevent premature - freeze actions, and preserve original specification in the - subprogram declaration. - -2011-09-19 Vincent Celier - - * projects.texi: Minor editing. - -2011-09-19 Robert Dewar - - * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb, - exp_aggr.adb: Minor reformatting. - -2011-09-19 Yannick Moy - - * lib-xref.adb (Generate_Reference): Change entity referenced - to underlying object if any, or else reference to the HEAP. - -2011-09-15 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - -2011-09-15 Robert Dewar - - * tree_io.ads: Minor reformatting. - * a-intnam.ads: Fix bad header. - -2011-09-15 Thomas Quinot - - * a-exexpr-gcc.adb: Minor reformatting. - -2011-09-15 Yannick Moy - - * sem_ch6.adb: Propagate information that an expression function comes - from source (otherwise references to this entity are not stored). - -2011-09-15 Robert Dewar - - * a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb, - a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb, - a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting. - -2011-09-15 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): Code cleanup: - if the expression function is not a completion, create a - new specification for the generated declaration, and keep the - original specification in the generated body. Shorter code also - ensures that proper warnings are generated for unused formals - in all cases. - -2011-09-15 Sergey Rybin - - * tree_io.ads: Update ASIS_Version_Number because of the changes - in the tree structures for expression functions. - -2011-09-15 Arnaud Charlet - - * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads, - s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads, - s-taprop-posix.adb (CLOCK_MONOTONIC): New constant. - (CLOCK_REALTIME): Fix wrong value on some OSes. - * s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC. - -2011-09-11 Eric Botcazou - - * gcc-interface/utils.c (maybe_unconstrained_array): In the reference - to unconstrained array case, deal with each branch of a COND_EXPR. - * gcc-interface/utils2.c (build_allocator): Deal with each branch of - a COND_EXPR in the initializer, if present. - -2011-09-11 Eric Botcazou - - * gcc-interface/decl.c (maybe_pad_type): Do not try to change the form - of an addressable type. - * gcc-interface/trans.c (gnat_gimplify_expr) : New. - Deal with those cases for which creating a temporary is mandatory. - -2011-09-11 Eric Botcazou - - * gcc-interface/trans.c (call_to_gnu): Use local variable. Make sure - this is a real formal parameter before testing whether it is by ref. - -2011-09-11 Eric Botcazou - - * gcc-interface/gigi.h (build_call_0_expr): Delete. - (build_call_1_expr): Likewise. - (build_call_2_expr): Likewise. - (build_call_n_expr): New prototype. - * gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr. - * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto. - (Handled_Sequence_Of_Statements_to_gnu): Likewise. - (Exception_Handler_to_gnu_zcx): Likewise. - (gnat_to_gnu): Likewise. - (build_binary_op_trapv): Likewise. - * gcc-interface/utils2.c (build_call_0_expr): Delete. - (build_call_1_expr): Likewise. - (build_call_2_expr): Likewise. - (build_call_n_expr): New function. - (build_call_raise): Use build_call_n_expr. - (build_call_raise_range): Likewise. - (build_call_raise_column): Likewise. - (build_call_alloc_dealloc_proc): Likewise. - (maybe_wrap_malloc): Likewise. - (maybe_wrap_free): Likewise. - -2011-09-11 Eric Botcazou - - * gcc-interface/trans.c (build_return_expr): Use void_type_node for - MODIFY_EXPR. - * gcc-interface/utils2.c (build_binary_op) : Assert that - the result type is null if ENABLE_CHECKING. Set operation_type at the - end unconditionally if not set in the previous cases. - Use build2 and void_type_node for MODIFY_EXPR. - (build_allocator): Use NULL_TREE for MODIFY_EXPR. - -2011-09-08 Eric Botcazou - - * gcc-interface/utils.c (unchecked_convert): Use a field of the right - precision when converting to or from an integral type whose precision - is not equal to its size. - -2011-09-08 Iain Sandoe - - * traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8. - -2011-09-07 Iain Sandoe - - * gcc-interface/Makefile.in (darwin): Provide powerpc64 system - implementation. - * system-darwin-ppc64.ads: New file. - -2011-09-06 Iain Sandoe - - * gcc-interface/Makefile.in (gnatlib-shared-darwin): Remove - reference to "-lm". - -2011-09-06 Iain Sandoe - - * gcc-interface/Makefile.in (darwin, SO_OPTS): Provide architecture - size switches to the link phase for shared libs. - -2011-09-06 Iain Sandoe - - * gcc-interface/Makefile.in (x86_64 darwin arch): Adjust - LIBGNAT_TARGET_PAIRS for x86 and x86_64 variants. - -2011-09-06 Arnaud Charlet - - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in - (gnattools, regnattools, cross-gnattools, canadian-gnattools, - gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools): - New targets. - (TOOLS_FLAGS_TO_PASS): New. - (../stamp-tools): Reintroduce, to avoid merge conflicts. - -2011-09-06 Robert Dewar - - * sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): New - name for Is_RM_Defined_Unit. Also several fixes to this unit. - -2011-09-06 Robert Dewar - - * impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function. - * s-rident.ads: New restriction No_Implementation_Units - (this restriction is also part of the profile - No_Implementation_Extensions) - * sem_ch10.adb (Analyze_With_Clause): Add check for - No_Implementation_Units restriction. - -2011-09-06 Jerome Guitton - - * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK - on vThreads. - -2011-09-06 Thomas Quinot - - * s-solita.adb: Minor reformatting. - -2011-09-06 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that - is a rewriting of an expression function does not freeze previous - entities. - -2011-09-06 Robert Dewar - - * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case - -2011-09-06 Tristan Gingold - - * gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like - powerpc-wrs-vxworksae. - -2011-09-06 Thomas Quinot - - * s-os_lib.ads (Spawn): Minor documentation clarification, - Success is True for a zero exit status. - -2011-09-06 Ed Schonberg - - * sem_ch5.adb: Add message for common iterator error. - -2011-09-06 Ed Schonberg - - * exp_ch3.adb (Build_Initialization_Call): If the target is a - selected component discriminated by a current instance, replace - the constraint with a reference to the target object, regardless - of whether the context is an init_proc. - -2011-09-06 Robert Dewar - - * exp_attr.adb: Descriptor_Size is never static. - -2011-09-06 Robert Dewar - - * gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric - -2011-09-06 Hristian Kirtchev - - * gnat_rm.texi: Clarify that attribute Descriptor_Size is - non-static. - -2011-09-06 Ed Schonberg - - * sem_res.adb (Resolve): An expression that is the body of an - expression function does not freeze. - -2011-09-06 Matthew Heaney - - * a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb, - a-cuprqu.adb: Changed copyright notice to indicate current - year only. - -2011-09-06 Vincent Celier - - * prj.adb: Minor spelling error fix in comment - * sem_res.adb: Minor reformatting - -2011-09-06 Pascal Obry - - * sysdep.c (winflush_nt): Removed as not needed anymore. - (winflush_95): Likewise. - (winflush_init): Likewise. - (winflush_function): Likewise. - (getc_immediate_common): Remove call to winflush_function. - -2011-09-06 Hristian Kirtchev - - * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the - processing for Descriptor_Size. - * gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size - to account for its broader usage. - * sem_attr.adb (Analyze_Attribute): Change the error detection - circuitry for Descriptor_Size as the attribute is now applicable - to all types. - -2011-09-06 Robert Dewar - - * sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting. - -2011-09-06 Ed Schonberg - - * lib-xref.adb (OK_To_Set_Referenced): A reference to a formal - in a parameter association must not set the Referenced flag on - the formal. - * prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal - -2011-09-06 Hristian Kirtchev - - * gnat_rm.texi: Add a section on attribute Descriptor_Size - -2011-09-06 Arnaud Charlet - - * gcc-interface/Makefile.in (common-tools, gnatmake-re, - gnatlink-re): Speed up by using -j0. - -2011-09-06 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications): Call - Set_Corresponding_Aspect when creating pragma from aspect. - (Add_Predicates): Use new field Corresponding_Aspect. - * sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect - name when present, for the purpose of issuing error messages; - remove local procedure Error_Pragma_Arg_Alternate_Name. - * sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in - N_Pragma node. - (From_Dynamic_Predicate, From_Static_Predicate): Remove fields from - N_Pragma node. - -2011-09-06 Robert Dewar - - * checks.adb, s-except.ads, g-socket.adb: Minor reformatting. - -2011-09-06 Hristian Kirtchev - - * exp_ch6.adb (Build_Heap_Allocator): Add new - local variable Desig_Typ. Code and comment reformatting. Add - machinery to ensure that the allocation uses a fat pointer when - the type of the return object is a constrained array and the - function return type is an unconstrained array. - -2011-09-06 Vincent Celier - - * make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal - parameters in subprograms. - -2011-09-06 Arnaud Charlet - - * s-taprop-mingw.adb (Finalize_TCB): Fix typo. - -2011-09-06 Thomas Quinot - - * s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb - (System.Tasking.Primitive_Operations.Specific.Delete): Remove - subprogram. - (System.Tasking.Primitive_Operations.Specific.Set): If argument - is null, destroy task specific data, to make API consistent with - other platforms, and thus compatible with the shared version - of s-tpoaal.adb. - (System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB): - Document the above assumption. - -2011-09-06 Ed Schonberg - - * exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized - variable for type of return value when return type is - unconstrained and context is an assignment. - -2011-09-06 Ed Schonberg - - * sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of - class-wide operation if expansion is not enabled. - -2011-09-06 Eric Botcazou - - * checks.adb (Apply_Scalar_Range_Check): Deal with access - type prefix. - -2011-09-06 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications, case - Aspect_Invariant): Do not issue error at this point on illegal - pragma placement, as this is checked later on when analyzing - the corresponding pragma. - * sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure - similar to Error_Pragma_Arg, except the source name of the - aspect/pragma to use in warnings may be equal to parameter - Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error - message to distinguish source name of pragma/aspect, and whether - the illegality resides in the type being public, or being private - without a public declaration - -2011-09-06 Thomas Quinot - - * g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap - size check (fd_set is implemented differently on that platform). - -2011-09-06 Thomas Quinot - - * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, - s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb, - s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads, - s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb - (ATCB_Allocation): New subpackage of - System.Tasking.Primitive_Operations, shared across all targets - with full tasking runtime. - (ATCB_Allocation.New_ATCB): Moved there (from target specific - s-taprop bodies). - (ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB, - taking care of establishing a local temporary ATCB if the one - being deallocated is Self, to avoid a reference to the freed - ATCB in Abort_Undefer. - -2011-09-06 Thomas Quinot - - * s-tassta.adb, s-taskin.ads (Free_Task): If the task is not - terminated, mark it for deallocation upon termination. - (Terminate_Task): Call Free_Task again if the task is marked - for automatic deallocation upon termination. - -2011-09-06 Robert Dewar - - * a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads, - a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads, - a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads, - a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads, - a-intnam-solaris.ads, a-intnam-tru64.ads, - a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads, - cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined - * einfo.ads, einfo.adb (Is_Implementation_Defined): New flag - * par-prag.adb: Add dummy entry for pragma Implementation_Defined - * s-rident.ads: Add new restriction No_Implementation_Identifiers - Add new profile No_Implementation_Extensions - * sem_prag.adb: Implement pragma Implementation_Defined Implement - profile No_Implementation_Extensions - * sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check): - Check violation of restriction No_Implementation_Identifiers - * snames.ads-tmpl: Add entries for pragma Implementation_Defined - Add entry for Name_No_Implementation_Extensions - -2011-09-06 Robert Dewar - - * impunit.ads: Minor reformatting. - -2011-09-06 Robert Dewar - - * ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting. - -2011-09-06 Pascal Obry - - * s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_t - types. - -2011-09-06 Robert Dewar - - * g-socket.adb: Minor reformatting - -2011-09-06 Javier Miranda - - * ali.adb (Scan_ALI): Add missing support to load references of - entities imported from other languages. - * ali.ads (Xref_Record): Adding new fields to store the language and - name of an imported entity. - * lib-xref.adb (Output_Import_Export_Info): Fix typo - in comment. - -2011-09-06 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant - is allowed on a full type declaration if it is the completion of - a private declarations. - * sem_ch13.adb (Analyze_Aspect_Specifications): An invariant - aspect is allowed on a full type declaration in the private part - of a package. - -2011-09-06 Robert Dewar - - * sem_ch8.ads: Minor reformatting - -2011-09-06 Thomas Quinot - - * s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set): - Guard against socket values that are not in [0;FD_SETSIZE[ - -2011-09-06 Robert Dewar - - * s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minor - reformatting. - -2011-09-06 Arnaud Charlet - - * s-linux-alpha.ads: Minor reformatting - * s-oscons-tmplt.c: Fix generated comments in s-oscons template. - Use sizeof instead of corresponding C defines in s-oscons template. - -2011-09-06 Vadim Godunko - - * a-convec.ads, a-iteint.ads: Minor reformatting. - -2011-09-06 Vincent Celier - - * projects.texi: Add menus and @node lines. - -2011-09-06 Ed Schonberg - - * exp_ch6.adb (Expand_Inlined_Call): Handle properly the case - where the return type is an unconstrained array and the context - is an assignment. Optimize the case when the target of the - assignment is a selected component. - -2011-09-06 Arnaud Charlet - - * s-solita.adb: Update comments. - -2011-09-06 Pascal Obry - - * s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads, - s-linux-sparc.ads: Remove hard coded and now wrong definitions. - * s-oscons-tmplt.c: Add support for generating pthread related - types size on GNU/Linux as done for Darwin. - * s-osinte-linux.ads: Use s-oscons to define the pthread types. - -2011-09-06 Robert Dewar - - * exp_ch6.adb: Fix minor typo. - -2011-09-06 Hristian Kirtchev - - * exp_ch7.adb: Remove with and use clauses for Get_Targ. - (Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up. - (Double_Size_Of): Alphabetized. Update the comment on usage. - (Make_Finalize_Address_Stmts): Update comments and reformat code. - (Nearest_Multiple_Rounded_Up): New routine. - (Size_Of): Update comment on usage. The generated expression now - accounts for alignment gaps by rounding the size of the type to the - nearest multiple rounded up of the type's alignment. - -2011-09-06 Robert Dewar - - * exp_ch7.adb, g-comlin.adb: Minor reformatting. - -2011-09-06 Steve Baird - - * exp_ch4.adb (Expand_Allocator_Expression): Look through - derived subprograms in checking for presence of an - Extra_Accessibility_Of_Result formal parameter. - * exp_ch6.adb (Expand_Call): Look through derived subprograms in - checking for presence of an Extra_Accessibility_Of_Result formal - parameter. - (Expand_Call.Add_Actual_Parameter): Fix a bug in the - case where the Parameter_Associatiations attribute is already set, - but set to an empty list. - (Needs_Result_Accessibility_Level): - Unconditionally return False. This is a temporary - change, disabling the Extra_Accessibility_Of_Result - mechanism. - (Expand_Simple_Function_Return): Check for - Extra_Accessibility_Of_Result parameter's presence instead of - testing Ada_Version when generating a runtime accessibility - check which makes use of the parameter. - -2011-09-06 Ed Schonberg - - * exp_ch4.adb (Expand_N_Case_Expression): Actions created for the - expression in a given case alternative must be attached to the - statement list of the ccrresponding case statement alternative - They cannot be propagated ahead of the case statement, because - the validity of the expression that generated the action may - hold only for that alternative. - -2011-09-06 Hristian Kirtchev - - * exp_ch7.adb: Remove with and use clauses for Get_Targ. - (Alignment_Of): Remove the code for strict alignment targets. - (Double_Alignment_Of): Removed. - (Double_Size_Of): New routine. - (Make_Finalize_Address_Stmts): Change the - calculation of the dope's size. Update relevant comments. - (Size_Of): New routine. - -2011-09-06 Steve Baird - - * einfo.ads (Extra_Accessibility): Update associated comment to use - the term "present" correctly ("present" just means that it is not - an error to query the value of the attribute - it does not imply - that the value must be non-null). - (Extra_Constrained): Ditto. - (Is_Visible_Formal): Ditto. - (Extra_Accessibility_Of_Result) Ditto; also add Inline pragma. - (Set_Extra_Accessibility_Of_Result): Add Inline pragma. - * exp_ch4.adb (Expand_Allocator_Expression): Improve a comment. - * exp_ch6.adb (Expand_Call): The callee may require an - Extra_Accessibility_Of_Result actual parameter even if Ada_Version - < Ada_2012. This can occur if the callee is exported from a Gnat - runtimes unit. Also improve a comment. - -2011-09-06 Hristian Kirtchev - - * exp_ch7.adb: Add with and use clauses for Get_Targ. - (Alignment_Of): Rename formal parameter Some_Typ - to Typ, update related comment. Use the allocator alignment on - strict alignment targets such as SPARC. - (Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, update - related comment. - -2011-09-06 Gary Dismukes - - * sem_ch9.adb (Check_Interfaces): Test - Is_Limited_Type rather than Is_Limited_Record when checking that - the partial view of a synchronized full view must be limited. - -2011-09-06 Emmanuel Briot - - * g-comlin.adb (Free): Fix memory leak. - -2011-09-06 Robert Dewar - - * sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization. - -2011-09-06 Steve Baird - - * einfo.ads (Extra_Accessibility_Of_Result): New function; in the - (Ada2012) cases described in AI05-0234 where the accessibility - level of a function result is "determined by the point of - call", an implicit parameter representing that accessibility - level is passed in. Extra_Accessibilty_Of_Result yields this - additional formal parameter. Extra_Accessibility_Of_Result - is analogous to the existing Extra_Accessibility - function used in the implementation of access parameters. - (Set_Extra_Accessibility_Of_Result): New procedure; sets - Extra_Accessibility_Of_Result attribute. - * einfo.adb (Extra_Accessibility_Of_Result): New function. - (Set_Extra_Accessibility_Of_Result): New procedure. - (Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute. - * sem_util.adb (Dynamic_Accessibility_Level): Set Etype of - an accessibility level literal to Natural; introduce a nested - function, Make_Level_Literal, to do this. - * exp_ch6.ads (Needs_Result_Accessibility_Level): New function; - determines whether a given function (or access-to-function - type) needs to have an implicitly-declared accessibility-level - parameter added to its profile. - (Add_Extra_Actual_To_Call): Export an existing procedure which was - previously declared in the body of Exp_Ch6. - * exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving - it to exp_ch6.ads. - (Has_Unconstrained_Access_Discriminants): New Function; a - predicate on subtype entities which returns True if the given - subtype is unconstrained and has one or more access discriminants. - (Expand_Call): When expanding a call to a function which takes an - Extra_Accessibility_Of_Result parameter, pass in the appropriate - actual parameter value. In the case of a function call which is - used to initialize an allocator, this may not be possible because - the Etype of the allocator may not have been set yet. In this - case, we defer passing in the parameter and handle it later in - Expand_Allocator_Expression. - (Expand_Simple_Function_Return): When returning from a function which - returns an unconstrained subtype having at least one access - discriminant, generate the accessibility check needed to ensure that - the function result will not outlive any objects designated by its - discriminants. - (Needs_Result_Accessibility_Level): New function; see exp_ch6.ads - description. - * exp_ch4.adb (Expand_Allocator_Expression): When a function call - is used to initialize an allocator, we may need to pass in "the - accessibility level determined by the point of call" (AI05-0234) - to the function. Expand_Call, where such actual parameters are - usually generated, is too early in this case because the Etype of - the allocator (which is used in determining the level to be passed - in) may not have been set yet when Expand_Call executes. Instead, - we generate code to pass in the appropriate actual parameter - in Expand_Allocator_Expression. - * sem_ch6.adb (Create_Extra_Formals): Create - the new Extra_Accessibility_Of_Result formal if - Needs_Result_Accessibility_Level returns True. This includes the - introduction of a nested procedure, Check_Against_Result_Level. - -2011-09-06 Arnaud Charlet - - * gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicate - declaration. - -2011-09-05 Hristian Kirtchev - - * s-finmas.adb (Set_Finalize_Address): Explain the reason - for the synchronization. Move the test for null from - s-stposu.Allocate_Any_Controlled to this routine since the check - needs to be protected too. - (Set_Heterogeneous_Finalize_Address): Explain the reason for the - synchronization code. - * s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment - explaining the context in which this routine is used. - * s-stposu.adb (Allocate_Any_Controlled): Move the test for null - to s-finmas.Set_Finalize_Address. - -2011-09-05 Ed Schonberg - - * einfo.ads: Document that itypes have no parent field. - -2011-09-05 Robert Dewar - - * rtsfind.adb (Check_CRT): Check for overloaded entity - * rtsfind.ads: Document that entities to be found by rtsfind - cannot be overloaded - * s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb - (Lock_Entries_With_Status): New name for Lock_Entries with two - arguments (changed to meet rtsfind no overloading rule). - -2011-09-05 Hristian Kirtchev - - * s-finmas.adb (Set_Finalize_Address (Address, - Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address. - (Set_Finalize_Address (in out Finalization_Master, - Finalize_Address_Ptr): Add synchronization code. - * s-finmas.ads (Set_Finalize_Address (Address, - Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address. - * s-stposu.adb (Allocate_Any_Controlled): Update the call to - Set_Finalize_Address for the heterogeneous case. - -2011-09-05 Ed Schonberg - - * sem_ch3.adb: Undo previous change, not suitable after all. - -2011-09-05 Robert Dewar - - * einfo.ads: Minor comment clarification. - -2011-09-05 Hristian Kirtchev - - * exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine - no longer needs to search through the entities of the return - statement scope to find the _chain. - * sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6. - (Analyze_Block_Statement): Add local variable - Is_BIP_Return_Statement. Add machinery to install all entities - produced by the expansion of the return object declaration. - (Install_Return_Entities): New routine. - * sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec. - -2011-09-05 Ed Schonberg - - * sem_ch10.adb (Analyze_Context): Apply simple fixup if context - of subunit is incomplete. - (Analyze_Proper_Body): If parent spec is not available, do not - attempt analysis. - -2011-09-05 Ed Schonberg - - * sem_disp.adb (Find_Controlling_Arg): Add checks for - interface type conversions, that are expanded into dereferences. - -2011-09-05 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): - Examine the parameter and return profile of a subprogram and swap - any incomplete types coming from a limited context with their - corresponding non-limited views. - (Exchange_Limited_Views): New routine. - -2011-09-05 Ed Schonberg - - * sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parent - of internal entity to the subtype declaration, so that when - entities are subsequently exchanged in a package body, the tree - remains properly formatted for ASIS. - -2011-09-05 Johannes Kanig - - * g-comlin.adb (Set_Usage): Additional optional argument to set help - message. - (Display_Help): display the user given help message, if available. - -2011-09-05 Ed Schonberg - - * sem_ch3.adb (OK_For_Limited_Init_In_05): The expression - is legal if the original node is an identifier that is a - parameterless function call. - -2011-09-05 Pascal Obry - - * prj-nmsc.adb: Minor reformatting. - Add support for standalone aggregate library. - (Check_Stand_Alone_Library): Handle standalone aggregate library. - * projects.texi: Fix documentation for aggregate library projects. - -2011-09-05 Robert Dewar - - * sem_ch6.adb: Minor reformatting. - -2011-09-05 Matthew Gingell - - * s-tassta.adb (Task_Wrapper): Ensure that we don't try to write the - stack guard page on PPC Linux. This patch ensures the 64K guard page at - the bottom of the stack is not overwritten. - -2011-09-05 Thomas Quinot - - * exp_intr.adb, s-tasini.adb: Minor reformatting. - -2011-09-05 Ed Schonberg - - * sem_ch3.adb (Access_Definition): If an access type declaration - appears in a child unit, the scope of whatever anonymous type - may be generated is the child unit itself. - -2011-09-05 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): Do not set - Comes_From_Source on rewritten body. - (Analyze_Subprogram_Body_Helper): Check that the original node for - the body comes from source, when determining whether expansion - of a protected operation is needed. - -2011-09-05 Ed Schonberg - - * exp_aggr.adb (Replace_Type): If the target of the assignment is - a selected component and the right-hand side is a self-referential - access, the proper prefix of the rewritten attribute is a copy - of the left-hand side, not of its prefix. - -2011-09-05 Robert Dewar - - * sem_ch5.adb: Minor reformatting. - * sem_ch3.adb: Minor code clean up. - -2011-09-05 Jose Ruiz - - * exp_ch9.adb (Make_Initialize_Protection): The fact that - restriction No_Dynamic_Attachment is in effect or not should - not influence the default priority associated to a protected - object. With this change, when the restriction is in effect (as - is the case for the Ravenscar profile) the default priority of - a protected object with an interrupt handler is in the range of - interrupt priorities (Default_Interrupt_Priority) as required - by D.3(10). - -2011-09-05 Arnaud Charlet - - * a-iteint.ads: Fix header. - -2011-09-05 Vincent Celier - - * prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always ends - with a directory separator to avoid output such as: - "/path/to/objauto.cgpr" has been deleted. - -2011-09-05 Robert Dewar - - * sem_ch3.adb: Minor reformatting. - -2011-09-05 Ed Schonberg - - * sem_ch5.adb: Better error message. - -2011-09-05 Hristian Kirtchev - - * exp_aggr.adb: Add with and use clause for Exp_Ch6. - (Expand_Array_Aggregate): Detect a special case of an aggregate - which contains tasks in the context of an unexpanded return - statement of a build-in-place function. - * exp_ch6.adb: Add with and use clause for Exp_Aggr. - (Expand_N_Extended_Return_Statement): Detect a delayed aggregate - which contains tasks and expand it now that the original simple - return statement has been rewritten. - * exp_ch9.adb (Build_Activation_Chain_Entity): Code - reformatting. Do not create a chain for an extended return - statement if one is already available. - (Has_Activation_Chain): New routine. - -2011-09-05 Marc Sango - - * sem_ch3.adb (Analyze_Object_Declaration): Remove - the wrong test and add the correct test to detect the violation - of illegal use of unconstrained string type in SPARK mode. - -2011-09-05 Ed Schonberg - - * sem_ch5.adb (Analyze_Iteration_Specification): Improve error - message on an iterator over an array. - -2011-09-05 Robert Dewar - - * lib-xref-alfa.adb: Minor reformatting. - -2011-09-05 Robert Dewar - - * sem_ch3.adb, sem_res.adb, par.adb, par-ch6.adb, g-comlin.adb, - exp_ch6.adb, lib-xref-alfa.adb: Minor reformatting. - -2011-09-05 Gary Dismukes - - * exp_ch7.adb, exp_ch6.adb: Minor reformatting. - -2011-09-05 Johannes Kanig - - * lib-xref-alfa.adb: Update comments. - -2011-09-05 Thomas Quinot - - * sem_res.adb: Minor reformatting - -2011-09-05 Ed Schonberg - - * exp_ch6.adb (Build_In_Place_Formal): If extra formals are not - present, create them now. Needed in case the return type was - a limited view in the function declaration. - (Make_Build_In_Place_Call_In_Allocator): If return type contains - tasks, build the activation chain for it. Pass a reference to - the Master_Id in call to Add_Task_Actuals_To_Build_In_Place call. - * exp_ch7.adb (Make_Set_Finalize_Address_Call): Clean up interface - with build_in_place calls. - * sem_ch9.adb (Analyze_Task_Type_Declaration): If partial view was - incomplete, inatialize its Corresponding_Record_Type component. - * sem_ch10.adb (Build_Chain): Initialize Private_Dependents field - of limited views. - -2011-09-05 Johannes Kanig - - * lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effect - information. - -2011-09-05 Ed Schonberg - - * par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogram - appears within a package specification and the token after "IS" - is not a parenthesis, assume that this is an unparenthesized - expression function, even if the token appears in a line by - itself. - * par.adb: Clarify use of Labl field of scope stack in error - recovery. - -2011-09-05 Bob Duff - - * sem_res.adb (Resolve_Intrinsic_Operator): Use unchecked - conversions instead of normal type conversions in all cases where a - type conversion would be illegal. In particular, use unchecked - conversions when the operand types are private. - -2011-09-05 Johannes Kanig - - * lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects on - objects of task type or protected type. - -2011-09-05 Ed Schonberg - - * sem_ch6.adb (Analyze_Expression_Function): If the expression - function comes from source, indicate that so does its rewriting, - so it is compatible with any subsequent expansion of the - subprogram body (e.g. when it is a protected operation). - * sem_ch4.adb: minor reformatting - -2011-09-05 Hristian Kirtchev - - * lib.adb (Check_Same_Extended_Unit): Comment rewriting. Use - Get_Source_Unit rather than Get_Code_Unit as instantiation unfolding - may lead to wrong ancestor package in the case of instantiated subunit - bodies. If a subunit is instantiated, follow the chain of instantiations - rather than the stub structure. - -2011-09-02 Robert Dewar - - * sem_ch4.adb, sem_ch6.adb: Minor reformatting. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-09-02 Marc Sango - - * sem_ch3.adb (Analyze_Object_Declaration): Change - comment and add additional check to differentiate constant of - type string from others unconstrained type. - -2011-09-02 Ed Schonberg - - * sinfo.ads, sinfo.adb: New semantic attribute Premature_Use, - present in incomplete type declarations to refine the error - message the full declaration is in the same unit. - * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of - an incomplete type, set the Premature_Use for additional message. - * sem_ch3.adb (Find_Type_Name): If partial view is incomplete - and Premature_Use is set, place additional information at the - point of premature use. - -2011-09-02 Bob Duff - - * sem_ch6.adb: (Check_Post_State): Suppress warning - "postcondition refers only to pre-state" when the expression has not - yet been analyzed, because it causes false alarms. This can happen when - the postcondition contains a quantified expression, because those are - analyzed later. This is a temporary/partial fix. - (Process_Post_Conditions): Minor: change wording of warning. - -2011-09-02 Marc Sango - - * sem_ch3.adb (Analyze_Object_Declaration): Detect the violation of - illegal use of unconstrained string type in SPARK mode. - * sem_res.adb (Analyze_Operator_Symbol): Set the - right place where the string operand of concatenation should be - violate in SPARK mode. - -2011-09-02 Robert Dewar - - * sem_prag.adb, sem_util.adb, sem_ch6.adb, prj-nmsc.adb, - exp_ch3.adb: Minor reformatting. - -2011-09-02 Vincent Celier - - * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Declare "gcc" - as the compiler driver so Is_Compilable returns True for sources. - * prj-nmsc.adb (Override_Kind): When Kind is Sep, set the source - for the body. - -2011-09-02 Ed Schonberg - - * sem_prag.adb (Analyze_PPC_In_Decl_Part): for a class-wide - condition, a reference to a controlling formal must be interpreted - as having the class-wide type (or an access to such) so that the - inherited condition can be properly applied to any overriding - operation (see ARM12 6.6.1 (7)). - -2011-09-02 Tristan Gingold - - * init.c (__gnat_is_vms_v7): Fix case and add prototype - for LIB$GETSYI. - -2011-09-02 Javier Miranda - - * exp_ch3.adb (Expand_N_Object_Declaration): Do not copy the - initializing expression of a class-wide interface object declaration - if its type is limited. - -2011-09-02 Johannes Kanig - - * sem_util.adb (Unique_Name): To obtain a unique name for enumeration - literals, take into account the type name; the type is *not* - the scope for an enumeration literal. - -2011-09-02 Ed Schonberg - - * sem_ch6.adb (Check_Overriding_Indicator): add special check - to reject an overriding indicator on a user-defined Adjust - subprogram for a limited controlled type. - -2011-09-02 Ed Schonberg - - * sem_res.adb (Resolve_Actuals): add missing call to Resolve - for an actual that is a function call returning an unconstrained - limited controlled type. - -2011-09-02 Tristan Gingold - - * g-socthi-vms.adb (c_sendmsg, c_recvmsg): Use unpacked msg if on vms 7 - -2011-09-02 Johannes Kanig - - * alfa.ads (Name_Of_Heap_Variable): Change value of the HEAP variable - from "HEAP" to __HEAP Change comment that refers to that variable - * put_alfa.adb: Change comment that refers to that variable - -2011-09-02 Robert Dewar - - * exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting. - -2011-09-02 Hristian Kirtchev - - * exp_util.adb (Extract_Renamed_Object): Renamed to - Find_Renamed_Object. This routine has been reimplemented and now uses - tree traversal to locate a renamed object. - (Is_Aliased): Replace call to Extract_Renamed_Object with - Find_Renamed_Object. - -2011-09-02 Tristan Gingold - - * init.c: (__gnat_is_vms_v7): New function. - -2011-09-02 Olivier Hainque - - * tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on frames - that have a misaligned backchain, necessarily bogus. - -2011-09-02 Hristian Kirtchev - - * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not create - TSS routine Finalize_Address when compiling in Alfa mode. - (Expand_Freeze_Record_Type): Do not create TSS routine - Finalize_Address when compiling in Alfa mode. - * exp_ch4.adb (Expand_Allocator_Expression): Do not produce a - call to Set_Finalize_Address in Alfa mode because Finalize_Address is - not built. - (Expand_N_Allocator): Do not produce a call to - Set_Finalize_Address in Alfa mode because Finalize_Address is not built. - * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do not - produce a call to primitive Set_Finalize_Address in Alfa mode because - Finalize_Address is not built. - * exp_ch7.adb (Build_Finalization_Master): Do not create - finalization masters in Afa mode since they are not needed. - (Build_Finalizer): Do not create scope and library-level - finalizers in Alfa mode since they are not needed. - * exp_util.adb (Build_Allocate_Deallocate_Proc): Do not expand - "new" and "free" when applied to controlled objects in Alfa mode since - this is not needed. - -2011-09-02 Vincent Celier - - * prj-nmsc.db: (Check_Stand_Alone_Library): For SALs, allow - only library names with the syntax of Ada identifiers, to avoid errors - when compiling the binder generated files. - * projects.texi: Document restriction on SAL library names - -2011-09-02 Thomas Quinot - - * a-chtgbo.adb: Minor comment fix. - -2011-09-02 Robert Dewar - - * lib-xref.adb: Minor reformatting - -2011-09-02 Vincent Celier - - * bindusg.adb, clean.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb, - gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, makeusg.adb: Add - --version and --help in usage. - * switch.ads, switch.adb (Display_Usage_Version_And_Help): New procedure - -2011-09-02 Bob Duff - - * lib-xref.adb: (Hash): Avoid use of 'Mod attribute, because old - compilers don't understand it. - -2011-09-02 Gary Dismukes - - * exp_attr.adb (Expand_N_Attribute_Reference): Pass the - underlying subtype rather than its base type on the call to - Build_Record_Or_Elementary_Input_Function, so that any - constraints on a discriminated subtype will be available for - doing the check required by AI05-0192. - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): - If the prefix subtype of the 'Input attribute is a constrained - discriminated subtype, then check each constrained discriminant value - against the corresponding value read from the stream. - -2011-09-02 Yannick Moy - - * usage.adb, warnsw.adb, sem_ch6.adb, opt.ads: Disable by default - warnings on suspicious contracts, and enable them with -gnatwa. - -2011-09-02 Robert Dewar - - * exp_util.adb, exp_ch9.adb, sem_attr.adb, sem_ch6.adb: Minor - reformatting. - -2011-09-02 Hristian Kirtchev - - * exp_ch9.adb (Install_Private_Data_Declarations): Add guards - which ensure that restriction No_Dynamic_Attachment has not been - violated. - (Make_Initialize_Protection): Protected types with attach or - interrupt handlers must not violate restriction No_Dynamic_Attachment. - * exp_util.adb (Corresponding_Runtime_Package): Add a guard - which ensures that restriction No_Dynamic_Attachment has not been - violated. - * sem_attr.adb: (Eval_Attribute): Transform - VAX_Float_Type'First and 'Last into references to - the temporaries which store the corresponding bounds. The - transformation is needed since the back end cannot evaluate - 'First and 'Last on VAX. - (Is_VAX_Float): New routine. - -2011-09-02 Ed Schonberg - - * sem_ch12.adb (Analyze_Subprogram_Instantiation): If the - generic unit is not intrinsic and has an explicit convention, - the instance inherits it. - -2011-09-02 Robert Dewar - - * prj-dect.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, prj-tree.adb, - prj.adb, prj.ads, sem_ch5.adb: Minor reformatting. - -2011-09-02 Thomas Quinot - - * sem_attr.adb (Analyze_Attribute, case Unrestriced_Access): - Guard against a prefix that is an N_Has_Entity but has no - associated entity. - -2011-09-02 Yannick Moy - - * lib-xref-alfa.adb (Is_Alfa_Reference): Ignore IN parameters in Alfa - references. - -2011-09-02 Yannick Moy - - * opt.ads (Warn_On_Suspicious_Contract): New warning flag. - * sem_ch3.adb (Analyze_Declarations): Call checker for suspicious - contracts. - * sem_ch6.adb, sem_ch6.ads (Check_Subprogram_Contract): New - procedure looking for suspicious postconditions. - * usage.adb (Usage): New options -gnatw.t and -gnatw.T. - * warnsw.adb (Set_Dot_Warning_Switch): Take into account new - options -gnatw.t and -gnatw.T. - -2011-09-02 Pascal Obry - - * prj.adb: Minor code refactoring. Move check for null project in - Project_Changed. - * projects.texi: Fix minor typos. - -2011-09-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): If the domain - of iteration is an expression, its value must be captured in a - renaming declaration, so that modification of the elements is - propagated to the original container. - -2011-09-02 Pascal Obry - - * prj-proc.adb, prj.adb, makeutl.adb, makeutl.ads, prj-dect.adb, - prj-nmsc.adb, prj-util.adb, prj-conf.adb, prj-env.adb, - prj-tree.adb: Minor reformatting and style fixes. - -2011-09-02 Robert Dewar - - * s-rident.ads: Add new restriction No_Implicit_Aliasing - * sem_attr.adb: (Analyze_Access_Attribute): Deal with - No_Implicit_Aliasing - (Analyze_Attribute, case Address): ditto - (Analyze_Attribute, case Unrestricted_Access): ditto - * sem_util.ads, sem_util.adb: (Is_Aliased_View): Handle - No_Implicit_Aliasing restriction. - * gnat_rm.texi: Add documentation for No_Implicit_Aliasing - -2011-09-02 Ed Schonberg - - * exp_util.adb: (Possible_Bit_Aligned_Object): If the object - is an unchecked conversion, apply test to its expression. - -2011-09-02 Javier Miranda - - * sem_ch3.adb (Check_Abstract_Overriding): When - traversing the chain of aliased subprograms avoid reporting a - redundant error on the current entity. - -2011-09-02 Sergey Rybin - - * gnat_ugn.texi: Minor clean up. - -2011-09-02 Bob Duff - - * s-htable.adb (Set_If_Not_Present): Use renaming - instead of ":=", because the type Key is limited in the generic (even - if not in the instances). - -2011-09-02 Robert Dewar - - * exp_util.adb, sem_ch10.adb, sem_attr.adb, s-htable.adb, - g-comlin.adb, g-comlin.ads, lib-xref-alfa.adb, lib-xref.adb: Minor - reformatting. - -2011-09-02 Hristian Kirtchev - - * sem_ch3.adb: (Set_Anonymous_Type): Associate the itype of an - inherited component with the enclosing derived type. Code reformatting. - -2011-09-02 Gary Dismukes - - * checks.adb: (Determine_Range): Add test of OK1 to prevent the early - return done when overflow checks are enabled, since comparisons against - Lor and Hir should not be done when OK1 is False. - -2011-09-02 Gary Dismukes - - * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): - Add new formal Master_Exp. When present, add that expression to the - call as an extra actual. - (Make_Build_In_Place_Call_In_Object_Declaration): Add variable - Fmaster_Actual and in the case of a BIP call initializing a return - object of an enclosing BIP function set it to a - new reference to the implicit finalization master - formal of the enclosing function. Fmaster_Actual is - then passed to the new formal Master_Exp on the call to - Add_Finalization_Master_Actual_To_Build_ In_Place_Call. Move - initializations of Enclosing_Func to its declaration. - -2011-09-02 Thomas Quinot - - * csets.ads: Minor reformatting - -2011-09-02 Hristian Kirtchev - - * exp_aggr.adb: (Get_Constraint_Association): Add code to retrieve - the full view of a private type coming from an instantiation. - * exp_ch4.adb: (Current_Anonymous_Master): Reimplement the search - loop to iterate over the declarations rather than use the - First_Entity / Next_Entity scheme. - -2011-09-02 Ed Schonberg - - * sem_attr.adb: (Analyze_Attribute, case 'Range): when expanding - X'range (N) into X'First (N) .. X'Last (N), do not share the - dimension indicator N, if present. Even though it is a static - constant, its source location may be modified when printing - expanded code under -gnatDL, and node sharing will lead to chaos - in Sprint on large files, by generating a sloc value that does - not correspond to any source file. - -2011-09-02 Bob Duff - - * einfo.adb: (Has_Xref_Entry): Do not call - Implementation_Base_Type. Lib.Xref has been - rewritten to avoid the need for it, and it was costly. - * s-htable.ads,s-htable.adb: (Present,Set_If_Not_Present): New - functions in support of efficient xref. - * lib-xref-alfa.adb: Misc changes related to Key component of - type Xref_Entry. - * lib-xref.adb: (Add_Entry,etc): Speed improvement. - (New_Entry): Call Implementation_Base_Type, because Has_Xref_Entry - no longer does. This is the one place where it is needed. - -2011-09-02 Johannes Kanig - - * g-comlin.adb (Getopt): New optional argument Concatenate to have - similar interface as the other Getopt function. - -2011-09-02 Hristian Kirtchev - - * exp_ch4.adb: (Expand_Allocator_Expression): Do not generate - a call to Set_Finalize_Address if there is no allocator available. - * exp_util.adb: (Build_Allocate_Deallocate_Proc): Account for - a case of allocator expansion where the allocator is not expanded but - needs a custom allocate routine. Code reformatting. - (Is_Finalizable_Transient): Remove local variables Has_Rens and - Ren_Obj. Code reformatting. - (Is_Renamed): Renamed to Is_Aliased. Add code to detect aliasing - through the use of 'reference. - * sem_ch4.adb: (Analyze_Allocator): Detect allocators generated - as part of build-in-place expansion. They are intentionally marked as - coming from source, but their parents are not. - -2011-09-02 Ed Schonberg - - * sem_ch10.adb (Analyze_With_Clause): If the library unit - is the generated subprogram declaration for a child unit body - that acts as spec, use the original body in the with_clause, - to prevent binding errors. - -2011-09-02 Vincent Celier - - * gnat_ugn.texi: Adapt documentation of -gnateInnn to new VMS - qualifier /MULTI_UNIT_INDEX= - -2011-09-02 Johannes Kanig - - * g-comlin.adb (Getopt): Return when switch is dealt with automatically, - instead of calling the callback function - -2011-09-02 Robert Dewar - - * prj-proc.adb, prj.ads, sem_util.adb, s-taprop-linux.adb, - prj-nmsc.adb, prj-util.ads, prj-env.adb: Minor reformatting. - -2011-09-02 Vincent Celier - - * prj-nmsc.adb: (Find_Sources): When the list of sources is - explicitly declared in an extending project, do not warn if a source - for an inherited naming exception is not found. - -2011-09-02 Gary Dismukes - - * exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False if - expansion is inactive. - -2011-09-02 Ed Schonberg - - * sem_util.adb (Note_Possible_Modification): If the entity - being modified is the renaming generated for an Ada2012 iterator - element, the enclosing container or array is modified as well. - -2011-09-02 Jose Ruiz - - * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB, - Initialize): Define and initialize the - mutex attributes and condition variable attributes locally. - -2011-09-02 Vincent Celier - - * prj-nmsc.adb (Check_File): Mark as Locally_Removed a naming - exception replaced in an extending project. - (Check_Object): No error when the other source is locally removed. - -2011-09-02 Yannick Moy - - * exp_ch6.adb (Is_Build_In_Place_Function_Call): in Alfa mode, allow - unresolved calls. - -2011-08-31 Arnaud Charlet - - * gcc-interface/Makefile.in: Clean up handling of x86 and x86-64 - run-time files. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-09-01 Robert Dewar - - * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting. - -2011-09-01 Jose Ruiz - - * adaint.h (__gnat_cpu_free): Fix the name of this profile. - * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free, - __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms - specific for systems where their glibc version does not define the - routines to handle dynamically allocated CPU sets. - -2011-09-01 Vincent Celier - - * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads, - prj-env.adb: Implement inheritance of naming exceptions in extending - projects. - -2011-09-01 Romain Berrendonner - - * gnatls.adb: Display simple message instead of content of - gnatlic.adl. - -2011-09-01 Hristian Kirtchev - - * sem_ch3.adb: (Build_Derived_Record_Type) Remove the kludgy update of - access discriminant and anonymous access component scopes. - (Inherit_Component): Reuse the itype of an access discriminant - or anonymous access component by copying it in order to set the proper - scope. This is done only when the parent and the derived type - are in different scopes. - (Set_Anonymous_Etype): New routine. - -2011-09-01 Robert Dewar - - * a-convec.adb: Minor reformatting throughout. - -2011-09-01 Jose Ruiz - - * adaint.c, adaint.h (__gnat_cpu_alloc, __gnat_cpu_alloc_size, - __gnat_cpu_set_free): Create these wrappers around the CPU_ALLOC, - CPU_ALLOC_SIZE and CPU_FREE linux macros. - (__gnat_cpu_zero, __gnat_cpu_set): Use the CPU_ZERO_S and - CPU_SET_S respectively because we are now using dynamically allocated - CPU sets which are more portable across different glibc versions. - * s-osinte-linux.ads (cpu_set_t_ptr, CPU_ALLOC, CPU_ALLOC_SIZE, - CPU_FREE): Add this type and subprograms to be able to create cpu_set_t - masks dynamically according to the number of processors in the target - platform. - (CPU_ZERO, CPU_SET): They are now mapped to the CPU_ZERO_S and CPU_SET_S - respectively, so we need to pass the size of the masks as - parameters. - * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use dynamically - created cpu_set_t masks - with the number of processors available in the target platform, - instead of static bit arrays. It enhances portability because - it uses the information from the target platform. - * sem_ch8.adb: (Attribute_Renaming): When checking whether we - are using a restricted run-time library, use the flag - Configurable_Run_Time_Mode instead of Restricted_Profile. - -2011-09-01 Vincent Celier - - * ug_words: Add /MULTI_UNIT_INDEX= -> -gnateI - * vms_data.ads: Add new VMS qualifier equivalent for -gnateInnn - -2011-09-01 Nicolas Roche - - * adaint.c (__gnat_tmp_name): Don't use tmpnam function from the system - on VxWorks in kernel mode. - -2011-09-01 Jose Ruiz - - * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use the linux - macros for handling CPU sets (CPU_ZERO, CPU_SET) instead of modifying - directly the bit array. - * s-osinte-linux.ads (CPU_ZERO, CPU_SET): Import these wrappers around - the linux macros with the same name. - * adaint.h, adaint.c (__gnat_cpu_zero, __gnat_cpu_set): Create these - wrappers around the CPU_ZERO and CPU_SET linux macros. - -2011-09-01 Hristian Kirtchev - - * exp_ch7.adb (Find_Insertion_List): Removed. - (Process_Transient_Objects): Insert the declarations of the hook - access type and the hook object before the associated transient object. - -2011-09-01 Jose Ruiz - - * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading - package System.Aux_Dec when using restricted run-time libraries which - do not have this package. - -2011-09-01 Tristan Gingold - - * s-vaflop-vms-alpha.adb: Remove pragma optimize, useless. - -2011-09-01 Bob Duff - - * sem_attr.adb (Analyze_Access_Attribute): Do not call - Kill_Current_Values for P'Unrestricted_Access, where P is library level - -2011-09-01 Thomas Quinot - - * exp_ch5.adb: Minor reformatting - * gnat_ugn.texi: Fix minor typos. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-09-01 Robert Dewar - - * inline.adb, sem_aggr.adb: Minor reformatting. - -2011-09-01 Ed Schonberg - - * a-convec.adb: Proper handling of cursors for Ada2012 iterators. - -2011-09-01 Robert Dewar - - * prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting. - -2011-09-01 Bob Duff - - * sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance - body" the same as "in inlined body", because visibility shouldn't - apply there. - -2011-09-01 Eric Botcazou - - * inline.adb (Add_Inlined_Body): Refine previous change. - -2011-09-01 Gary Dismukes - - * exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function. - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): - Test for case where call - initializes an object of a return statement before testing for - a constrained call, to ensure that all such cases get handled - by simply passing on the caller's parameters. Also, in that - case call Needs_BIP_Alloc_Form to determine whether to pass on - the BIP_Alloc_Form parameter of the enclosing function rather - than testing Is_Constrained. Add similar tests for the return - of a BIP call to later processing to ensure consistent handling. - (Needs_BIP_Alloc_Form): New utility function. - * sem_ch6.adb: (Create_Extra_Formals): Replace test for adding - a BIP_Alloc_Form formal with call to new utility function - Needs_BIP_Alloc_Form. - -2011-09-01 Pascal Obry - - * prj-part.adb: Minor reformatting. - -2011-09-01 Vincent Celier - - * prj-env.adb (Create_Mapping_File.Process): Encode the upper - half character in the unit name. - -2011-09-01 Hristian Kirtchev - - * exp_ch4.adb: Minor code and comment reformatting. - -2011-09-01 Thomas Quinot - - * exp_ch6.adb (Expand_Inlined_Call): Remove redundant tests - for Is_Limited_Type and Is_Tagged_Type in condition checking - for by-reference type. - * inline.adb (Add_Inlined_Body): Only exclude init_procs. Other - subprograms may have a completion because of a previous - Inline_Always clause, but the enclosing package must be marked - inlined for the subprogram body to become visible to the backend. - -2011-09-01 Thomas Quinot - - * sem_aux.adb, exp_ch4.adb: Minor reformatting - -2011-09-01 Pascal Obry - - * prj-proc.adb, prj.ads, sinput-p.adb: Minor reformatting. - -2011-09-01 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate references to - the formals of a subprogram stub that acts as a spec. - -2011-09-01 Ed Schonberg - - * exp_ch6.adb (Expand_Inlined_Call): If an actual is a by_reference - type, declare a renaming for it, not an object declaration. - -2011-09-01 Yannick Moy - - * ali-util.adb, ali-util.ads (Read_Withed_ALIs): Add parameter - Ignore_Errors to ignore failures to read ALI files when True. - -2011-09-01 Javier Miranda - - * exp_ch3.adb (Expand_N_Object_Declaration): Handle non-default - constructor calls associated with non-tagged record types. - -2011-09-01 Robert Dewar - - * g-socthi-vms.adb: Minor reformatting. - -2011-09-01 Nicolas Roche - - * sysdep.c: Don't use macro functions for stdio functions on VxWorks - in order to avoid impact of imcompatible changes. - * cstreams.c: Likewise - * cio.c: Likewise - * aux-io.c: Likewise - -2011-09-01 Yannick Moy - - * lib-writ.adb (Write_With_Lines): Always output complete information - on "with" line in Alfa mode, as this is required by formal verification - back-end. - -2011-09-01 Tristan Gingold - - * g-socthi-vms.adb: Add comments. - -2011-09-01 Pascal Obry - - * prj.ads: Minor reformatting. - -2011-09-01 Vincent Celier - - * prj-env.adb (Create_Config_Pragmas_File.Check): Put all naming - exceptions in the config pragmas file. - -2011-09-01 Tristan Gingold - - * gnat_ugn.texi: Document GNAT_STACK_SIZE on IVMS. - -2011-09-01 Hristian Kirtchev - - * exp_ch7.adb (Find_Insertion_List): New routine. - (Process_Transient_Objects): Add code to handle the abnormal - finalization of a controlled transient associated with a subprogram - call. Since transients are cleaned up right after the associated - context, an exception raised during a subprogram call may bypass the - finalization code. - -2011-09-01 Robert Dewar - - * exp_ch6.adb (Expand_Call): Check actual for aliased parameter is - aliased. - -2011-09-01 Robert Dewar - - * exp_ch4.adb, a-exexda.adb: Minor reformatting. - -2011-09-01 Robert Dewar - - * s-taskin.ads, s-tassta.adb, sem_ch13.adb: Minor reformatting. - -2011-09-01 Thomas Quinot - - * Makefile.rtl: Move s-oscons.o from GNATRTL_TASKING_OBJS to - GNATRTL_NONTASKING_OBJS. - -2011-09-01 Robert Dewar - - * einfo.ads (Is_Aliased): Fix existing documentation and add note on - possibility of this flag being set for formals in Ada 2012 mode. - * par-ch6.adb (P_Formal_Part): Handle aliased for parameters for Ada - 2012. - * sem_ch6.adb (Process_Formals): Handle aliased parameters in Ada 2012 - mode. - * sinfo.adb (Aliased_Present): Allowed in N_Parameter_Specification for - Ada 2012. - * sinfo.ads (Aliased_Present): Allowed in N_Parameter_Specification for - Ada 2012. - -2011-09-01 Hristian Kirtchev - - * exp_ch4.adb (Find_Insertion_Node): New routine. Determines the proper - insertion node in a tree of nested Expression_With_Actions nodes. - (Process_Transient_Object): In the case where a complex if statement - has been converted into nested Expression_With_Actions nodes, the - "hook" object and the associated access type must be inserted before - the top most Expression_With_Actions. - -2011-09-01 Robert Dewar - - * a-cbprqu.adb, a-cbprqu.ads, a-cuprqu.adb, a-cuprqu.ads, - a-cbsyqu.adb, a-cbsyqu.ads: Minor reformatting. - -2011-09-01 Ed Schonberg - - * sem_attr.adb: Conditionalize aliasing predicates to Ada2012. - -2011-09-01 Jose Ruiz - - * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the CPU - aspect. - * aspects.adb (Canonical_Aspect): Add entry for the CPU aspect. - * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the CPU aspect - in a similar way as we do for the Priority or Dispatching_Domain aspect. - * s-mudido-affinity.adb (Dispatching_Domain_Tasks, - Dispatching_Domains_Frozen): Move this local data to package - System.Tasking because with the CPU aspect we need to have access - to this data when creating the task in System.Tasking.Stages.Create_Task - * s-taskin.ads (Dispatching_Domain_Tasks, Dispatching_Domains_Frozen): - Move these variables from the body of - System.Multiprocessors.Dispatching_Domains because with the CPU aspect - we need to have access to this data when creating the task in - System.Tasking.Stages.Create_Task. - * s-taskin.adb (Initialize): Signal the allocation of the environment - task to a CPU, if any, so that we know whether the CPU can be - transferred to a different dispatching domain. - * s-tassta.adb (Create_Task): Check whether the CPU to which this task - is being allocated belongs to the dispatching domain where the task - lives. Signal the allocation of the task to a CPU, if any, so that we - know whether the CPU can be transferred to a different dispatching - domain. - -2011-09-01 Ed Schonberg - - * exp_attr.adb, sem_attr.adb, snames.ads-tmpl: Implementation of - attributes Same_Storage and Overlaps_Storage. - -2011-09-01 Hristian Kirtchev - - * exp_strm.adb: Remove with and use clause for Opt. - (Build_Array_Input_Function): Remove the version-dependent generation - of the return statement. The Ada 2005 tree is now the default. - -2011-09-01 Yannick Moy - - * put_alfa.adb: Unconditionnally write files in Alfa section, so that - it is never empty when compiling in Alfa mode. - -2011-09-01 Robert Dewar - - * sem_aggr.adb, sem_ch3.adb, a-direct.adb, s-taprop-vxworks.adb, - comperr.adb, exp_ch9.adb, exp_pakd.adb, sem_ch12.adb, freeze.adb, - s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb, - gnat1drv.adb, a-rbtgbo.adb, exp_dist.adb: Minor reformatting - -2011-09-01 Matthew Heaney - - * Makefile.rtl, impunit.adb: Add a-csquin.ads, a-cusyqu.ad[sb], - a-cuprqu.ad[sb], a-cbsyqu.ad[sb], a-cbprqu.ad[sb] - * a-csquin.ads: New Ada 2012 unit that specifies the queue interface - * a-cusyqu.ads, a-cusyqu.adb: New Ada 2012 unit that specifies the - unbounded queue container. - * a-cbsyqu.ads, a-cbsyqu.adb: New Ada 2012 unit that specifies the - bounded queue container. - * a-cuprqu.ads, a-cuprqu.adb: New Ada 2012 unit that specifies the - unbounded priority queue container. - * a-cbprqu.ads, a-cbprqu.adb: New Ada 2012 unit that specifies the - bounded priority queue container. - -2011-08-31 Pascal Obry - - * a-direct.adb: Do not try to create an UNC path on Windows. - (Create_Path): Skip leading computer name in UNC path if any. - -2011-08-31 Hristian Kirtchev - - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Remove the - version-dependent generation of the return statement. The Ada 2005 tree - is now the default. - -2011-08-31 Thomas Quinot - - * rtsfind.ads, exp_dist.adb (Find_Numeric_Representation): Predefined - types Stream_Element_Offset and Storage_Offset have a different native - type depending on whether the platform is 32 or 64 bits. When - exchanging them, always convert to 64 bits. - -2011-08-31 Yannick Moy - - * debug.adb: Reserve debug option -gnatd.E for passing gnatprove option - --force-alfa to gnat2why. - -2011-08-31 Ed Schonberg - - * sem_ch12.adb (Save_References): If the node has aspects, save - references within the corresponding expressions in a separate step, - because the aspects are not directly in the tree for the declaration - to which they belong. - -2011-08-31 Arnaud Charlet - - * freeze.adb (Freeze_Record_Type): Omit test on variable size component - in CodePeer mode, since representation clauses are partially ignored. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-31 Jose Ruiz - - * s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-linux.adb, - s-taprop-solaris.adb (Create_Task): Not_A_Specific_CPU can be assigned - to any dispatching domain. - -2011-08-31 Thomas Quinot - - * exp_ch4.adb: Minor reformatting. - -2011-08-31 Bob Duff - - * sem_ch6.adb (Get_Generic_Parent_Type): Don't query Subtype_Indication - on nodes for which it is not defined. - (Is_Non_Overriding_Operation): Exit the loop when we find a generic - parent type. - -2011-08-31 Bob Duff - - * sem_ch3.adb (Process_Full_View): Disable legality check if - In_Instance, to avoid spurious errors. - * sem_ch12.adb (Validate_Derived_Type_Instance): Disable legality check - if In_Instance, to avoid spurious errors. - -2011-08-31 Pascal Obry - - * a-direct.adb: Use Dir_Seps everywhere to properly handle all - directory speparators. - (Compose): Use Dir_Seps to handle both forms. - (Create_Path): Use Dir_Seps instead of explicit check, no semantic - changes. - (Extension): Use Dir_Seps to handle both forms. - -2011-08-31 Pascal Obry - - * prj-conf.adb: Minor reformatting. - -2011-08-31 Jose Ruiz - - * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the - dispatching domain aspect. - * aspects.adb (Canonical_Aspect): Add entry for the dispatching domain - aspect. - * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the - Dispatching_Domain aspect in a similar way as we do for the Priority - aspect. - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add the - Dispatching_Domain component if a Dispatching_Domain pragma or aspect - is present. - (Make_Task_Create_Call): Add the Dispatching_Domain when creating a task - * par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma. - * sem_prag.adb (Analyze_Pragma): Check the correctness of a pragma - Dispatching_Domain and add it to the task definition. - (Sig_Flags): Add Pragma_Dispatching_Domain. - * rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add the - support to find the types Dispatching_Domain and - Dispatching_Domain_Access. - * sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain, - Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set and - query the availability of a pragma Dispatching_Domain. - * snames.ads-tmpl (Name_uDispatching_Domain): Add this name required by - the expander to pass the Dispatching_Domain when creating a task. - (Name_Dispatching_Domain): Add this new name for a pragma. - (Pragma_Id): Add the new Pragma_Dispatching_Domain. - * s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which the - task has been allocated at creation time. - * s-tarest.adb (Create_Restricted_Task): The dispatching domain using - Ravenscar is always null. - * s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to which - the task has been allocated at creation time. - * s-tporft.adb (Register_Foreign_Thread): A foreign task will not have - a specific dispatching domain. - * s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb, - s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domain - and CPU are specified for the task, and the CPU value is not contained - within the range of processors for the domain. - -2011-08-31 Vincent Celier - - * make.adb (Original_Gcc) : New constant String_Access. - (Gnatmake): For VM targets, do not use VM version of the compiler if - --GCC= has been specified. - -2011-08-31 Thomas Quinot - - * sem_ch5.adb: Minor reformatting. - -2011-08-31 Ed Schonberg - - * exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, do - not reanalyze it. - -2011-08-31 Bob Duff - - * exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in case - the access type is private; we don't care about privacy in expansion. - -2011-08-31 Ed Schonberg - - * sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregate - subcomponents tnat may be limited, because they originate in view - conflicts. If the original aggregate is legal and the actuals are - legal, the aggregate itself is legal. - -2011-08-31 Matthew Heaney - - * a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lock - status. - -2011-08-31 Ed Schonberg - - * sem_ch5.adb: Set kind of loop parameter properly, to preserve all - errors in B tests. - -2011-08-31 Jose Ruiz - - * sem_ch13.adb (Analyze_Aspect_Specifications): For the Priority and - Interrupt_Priority aspects, force the analysis of the aspect expression - (when building the equivalent pragma). Otherwise, its analysis is done - too late, after the task or protected object has been created. - * sem_ch9.adb (Analyze_Single_Protected_Declaration, - Analyze_Single_Task_Declaration): Remove the code to move the aspects - to the object declaration because they are needed in the type - declaration. - -2011-08-31 Robert Dewar - - * exp_ch5.adb, exp_ch7.ads, sem_ch5.adb, put_scos.adb, s-rannum.adb, - a-rbtgbo.adb, exp_intr.adb, a-cbdlli.adb, a-cbdlli.ads: Minor - reformatting. - -2011-08-31 Hristian Kirtchev - - * exp_util.adb (Find_Protection_Type): Do not look for fields _object - if the corresponding type is malformed due to restriction violations. - -2011-08-31 Robert Dewar - - * s-ransee.ads, s-ransee.adb: Minor reformatting. - -2011-08-31 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Allocator): Correct faulty condition which - would cause the generation of Set_Finalize_Address if the target is a - VM and the designated type is not derived from [Limited_]Controlled. - -2011-08-31 Arnaud Charlet - - * comperr.adb, comperr.ads, gnat1drv.adb (Delete_SCIL_Files): New - subprogram. - (Compiler_Abort, Gnat1drv): Call Delete_SCIL_Files in codepeer mode in - case of a compilation error. - -2011-08-31 Hristian Kirtchev - - * init.c (__gnat_error_handler): Standardize the stack overflow or - erroneous memory access message. - * seh_init.c (__gnat_SEH_error_handler): Standardize the stack overflow - or erroneous memory access message. - -2011-08-31 Robert Dewar - - * sem_ch4.adb: Minor reformatting. - * sem_ch6.adb: Minor code reorganization (use Ekind_In). - -2011-08-31 Thomas Quinot - - * scos.ads: Minor documentation clarification. - * put_scos.adb: Do not generate SCO unit header line for a unit that - has no SCO lines. - -2011-08-31 Robert Dewar - - * a-rbtgbo.adb, alfa_test.adb: Minor reformatting. - -2011-08-31 Tristan Gingold - - * exp_ch7.ads, exp_ch7.adb (Finalization_Exception_Data): New type to - hold variables between these following subprograms. - (Build_Exception_Handler, Build_Object_Declarations, - Build_Raise_Statement): Use the above type as parameter. - Make the above adjustments. - * exp_intr.adb (Expand_Unc_Deallocation): Adjust. - -2011-08-31 Pascal Obry - - * projects.texi: Minor reformatting. - -2011-08-31 Tristan Gingold - - * s-ransee.ads, s-ransee.adb: Add system.random_seed unit. - * s-rannum.adb (Reset): Use Get_Seed from s-ransee. - -2011-08-31 Ed Schonberg - - * exp_ch5.adb: Minor code cleanup. - * sem_ch5.adb (Analyze_Iteration_Scheme): Set ekind of loop variable to - prevent cascaded errors. - (Analyze_Loop_Statement): In semantics-only mode, introduce loop - variable of an iterator specification in current scope. - * sem_ch6.adb (Analyze_Return_Statement, Find_what_It_Apples_To): Skip - postconditions on the stack, as they contain no return statements. - -2011-08-31 Yannick Moy - - * exp_alfa.adb (Expand_Alfa_N_Package_Declaration, - Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simply - call Qualify_Entity_Names. - (Expand_Alfa): call Qualify_Entity_Names in more cases - * lib-xref-alfa.adb: Take into account system package. - * sem_prag.adb Take into account restrictions in Alfa mode, contrary to - CodePeer mode in which we are interested in finding bugs even if - compiler cannot compile source. - * sem_util.adb, sem_util.ads (Unique_Entity): Take into account case of - deferred constant. - -2011-08-31 Gary Dismukes - - * sem_ch3.adb (Constrain_Concurrent): Retrieve Base_Type of the subtype - denoted by the subtype mark to ensure getting the concurrent type in - the case where the subtype mark denotes a private subtype of a - concurrent type (needed when using -gnatc). - (Process_Subtype): For the processing specific to type kinds, case on - the Base_Type kind of the Subtype_Mark_Id, to handle cases where the - subtype denotes a private subtype whose base type is nonprivate (needed - for subtypes of private fulfilled by task types when compiling with - -gnatc). - -2011-08-31 Gary Dismukes - - * sem_disp.adb (Check_Dispatching_Operation): Bypass registration of - late primitives that override interface operations when the full - expander is not active, to avoid blowups in Register_Primitive when - types don't have associated secondary dispatch tables. - -2011-08-31 Yannick Moy - - * alfa_test.adb: Code clean up. - -2011-08-31 Marc Sango - - * restrict.adb (Check_SPARK_Restriction): Change Comes_From_Source (N) - by Comes_From_Source (Original_Node (N)) in order to treat also the - nodes which have been rewritten. - * sem_ch4.adb (Analyze_Explicit_Dereference, Analyze_Slice): Guard the - explicit dereference and slice violation in spark mode on the nodes - coming only from the source code. - -2011-08-31 Robert Dewar - - * exp_ch5.adb, exp_alfa.ads, prj.ads, sem_attr.adb, - lib-xref-alfa.adb: Minor reformatting. - -2011-08-31 Matthew Heaney - - * a-crbltr.ads (Tree_Type): Default-initialize the Nodes component. - -2011-08-31 Javier Miranda - - * sem_ch4.adb (Try_Object_Operation): Addition of one formal to search - only for class-wide subprograms conflicting with entities of concurrent - tagged types. - -2011-08-31 Matthew Heaney - - * a-rbtgbo.adb (Generic_Allocate): Initialize pointer components of - node to null value. - -2011-08-31 Hristian Kirtchev - - * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Provide a more - general description of the routine. - -2011-08-31 Ed Schonberg - - * a-cbdlli.adb, a-cbdlli.ads: Add iterator machinery to bounded - doubly-linked lists. - -2011-08-31 Gary Dismukes - - * exp_ch5.adb (Expand_N_Assignment_Statement): When a discriminant - check is needed for a left-hand side that is a dereference, and the - base type is private without discriminants (whereas the full type does - have discriminants), an extra retrieval of the underlying type may be - needed in the case where the subtype is a record subtype whose base - type is private. Update comments. - -2011-08-31 Javier Miranda - - * sem_ch4.adb (Try_Object_Operation): When a dispatching primitive is - found check if there is a class-wide subprogram covering the primitive. - -2011-08-31 Yannick Moy - - * sem_res.adb: Further cases where full expansion test is needed, - rather than expansion test. - -2011-08-31 Pascal Obry - - * prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list) - -2011-08-31 Ed Schonberg - - * exp_ch5.adb: Handle iterators over derived container types. - -2011-08-31 Hristian Kirtchev - - * einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master. - (Has_Anonymous_Master): New routine. - (Set_Has_Anonymous_Master): New routine. - (Write_Entity_Flags): Add an entry for Has_Anonymous_Master. - * exp_ch4.adb: Add with and use clause for Sem_Ch8. - (Current_Anonymous_Master): New routine. - (Current_Unit_First_Declaration): Removed. - (Current_Unit_Scope): Removed. - (Expand_N_Allocator): Anonymous access-to-controlled types now chain - their objects on a per-unit heterogeneous finalization master. - -2011-08-31 Matthew Heaney - - * a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length buckets - array. - -2011-08-31 Jose Ruiz - - * s-taprop-linux.adb (Create_Task): Avoid changing the affinity mask - when not needed. - -2011-08-31 Gary Dismukes - - * sem_disp.adb (Propagate_Tag): Return without propagating in the case - where the actual is an unexpanded call to 'Input. - -2011-08-31 Yannick Moy - - * sem_ch4.adb: Code clean up. - -2011-08-31 Yannick Moy - - * exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice. - -2011-08-31 Hristian Kirtchev - - * exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalize - and TSS primitive Finalize_Address if finalization is suppressed. - (Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSS - primitive Finalize_Address if finalization is suppressed. - -2011-08-31 Jose Ruiz - - * s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb, - s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Make - sure that the underlying task has already been created before trying - to change its affinity. - (Set_CPU): Use the term processor instead of CPU, as we do in - Assign_Task. - -2011-08-31 Vincent Celier - - * prj-attr.adb: New Compiler attribute Source_File_Switches. - * prj-nmsc.adb (Process_Compiler): Process attribute - Source_File_Switches. - * prj.ads (Language_Config): New name list component - Name_Source_File_Switches. - * snames.ads-tmpl (Name_Source_File_Switches): New standard name. - -2011-08-31 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be a - discriminated component of an actual, expand at once to prevent - ouf-of-order references with generated subtypes. - -2011-08-31 Yannick Moy - - * lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account read - reference to operator in Alfa xrefs. - -2011-08-31 Hristian Kirtchev - - * sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the case - where the parent instance was frozen before the current instance due to - the presence of a source body. Update calls to Insert_After_Last_Decl. - (Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance. - Update the comment which illustrates the purpose of the routine. - Package instances are now frozen by source bodies which appear after - the instance. This ensures that entities coming from within the - instance are available for use in the said bodies. - (Install_Body): Add code to handle the case where the parent instance - was frozen before the current instance due to the presence of a source - body. Update calls to Insert_After_Last_Decl. - -2011-08-31 Jose Ruiz - - * s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymous - access types. - * affinity.c (__gnat_set_affinity_mask): Declare index variable. - -2011-08-31 Yannick Moy - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test in - full-expander test. - * alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb, - errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb, - freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb, - lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb, - opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb, - sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, - sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renaming - ALFA in Alfa (we dropped acronym). - * einfo.adb (Primitive_Operations): Correctly return list of primitive - operations in a case where it returned previously No_Elist. - -2011-08-31 Robert Dewar - - * s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb, - s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads, - sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb, - s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb, - s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads, - s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minor - reformatting. - -2011-08-31 Hristian Kirtchev - - * sem_ch12 (Check_Private_View): Revert previous change. - * sem_res.adb (Conversion_Check): Do not emit the error message if the - conversion is in a generic instance. - -2011-08-31 Matthew Heaney - - * a-cbhase.adb (Symmetric_Difference): Dereference correct node array. - * a-chtgbo.adb (Free): Allow 0 as index value. - -2011-08-31 Matthew Heaney - - * a-cborma.adb (Insert): Add comment to explain why no element - assignment. - -2011-08-31 Gary Dismukes - - * sem_util.adb (Find_Body_Discriminal): Test whether the scope of the - spec discriminant is already a concurrent type, in which case just use - it, otherwise fetch the Corresponding_Concurrent_Type as before. - -2011-08-30 Eric Botcazou - - * system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads, - system-linux-mips.ads, system-linux-mipsel.ads, - system-linux-mips64el.ads, system-linux-ppc64.ads, - system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support. - -2011-08-30 Eric Botcazou - - * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check. - * gcc-interface/utils2.c (build_binary_op): Tighten condition. - (build_unary_op): Likewise. - -2011-08-30 Eric Botcazou - - * raise-gcc.c: Do not include coretypes.h and tm.h. - (setup_to_install): Remove test for compiler macro. - * targext.c: Document use for the library. - * gcc-interface/Makefile.in: Fix comment on the use of IN_GCC. - -2011-08-30 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not convert - the expression to the nominal type if the latter is a record type with - a variant part and the type of the former is a record type without one. - -2011-08-30 Yannick Moy - - * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during - expansion in Alfa mode. - * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public - * exp_alfa.adb, exp_alfa.ads: New package defining light expansion for - Alfa mode. - * gnat1drv.adb (Adjust_Global_Switches): Update Comment. - * sem_res.adb: Ditto. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-30 Thomas Quinot - - * g-socket.ads: Minor documentation adjustment. - -2011-08-30 Robert Dewar - - * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting. - -2011-08-30 Yannick Moy - - * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb, - exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads, - exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb, - gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb: - Revert change which introduced files for "light" - expansion, to be replaced by a single file for Alfa expansion. - -2011-08-30 Robert Dewar - - * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment. - Minor code reorg/reformatting. - -2011-08-30 Yannick Moy - - * opt.adb, opt.ads (Full_Expander_Active): New function defines a - common shorthand for (Expander_Active and not ALFA_Mode) that can be - used for testing full expansion, that is active expansion not in the - reduced mode for Alfa - * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb, - sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead - of the verbose (Expander_Active and not ALFA_Mode) - -2011-08-30 Tristan Gingold - - * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb, - s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb, - s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads: - Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage - -2011-08-30 Gary Dismukes - - * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous - access conversions to check that the conversion is a rewritten node, - rather than just having Comes_From_Source set to False, which wasn't - sufficient. - -2011-08-30 Robert Dewar - - * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb, - g-socket.ads: Minor reformatting. - -2011-08-30 Thomas Quinot - - * sem_util.adb: Minor reformatting. - -2011-08-30 Tristan Gingold - - * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set, - to be compliant with the ABI. - -2011-08-30 Hristian Kirtchev - - * sem_ch12.adb (Check_Private_View): Exchange the private and full view - of a designated type when the related access type is an actual in an - instance. This ensures that the full view of designated type is - available when inside the body of the instance. - -2011-08-30 Ed Schonberg - - * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be - in a position to be modified, a slice is treated like an indexed - component. - -2011-08-30 Thomas Quinot - - * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for - field tv_sec in struct timeval. - -2011-08-30 Yannick Moy - - * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several - blocks of code doing full expansion, previously only guarded by - Expander_Active, by anding the test that ALFA_Mode is not set - -2011-08-30 Ed Schonberg - - * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete, - add the function to the list of private dependents, for subsequent - legality check on Taft amendment types. - * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize - Private_Dependents, as for other incomplete types. - * sem_util.adb (Wrong_Type): Avoid cascaded errors when a - Taft-amendment type is used as the return type of a function. - -2011-08-30 Javier Miranda - - * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code - which emits an error by a call to a new routine which report the error. - * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the - entity does not cover an existing interface. - * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize - code. - * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of - protected procedures or entries whose mode is not conformant. - (Check_Synchronized_Overriding): Code cleanup: replace code which emits - an error by a call to a new routine which report the error. - -2011-08-30 Robert Dewar - - * gnat_rm.texi: Minor change. - * exp_attr_light.adb: Minor reformatting. - -2011-08-30 Ed Schonberg - - * sem_ch3.adb: Patch inheritance of aspects in - Complete_Private_Subtype, to avoid infinite loop. - -2011-08-30 Javier Miranda - - * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have - been reported and a subprogram covering an interface primitive is not - found then skip generating the internal entity. Done to avoid crashing - the frontend. - (Check_Abstract_Overriding): Change text of error of wrong formal of - protected subprogram or entry. Done for consistency to emit exactly the - same error reported by Check_Synchronized_Overriding. In addition, the - error is restricted to protected types (bug found working on AI05-0090) - -2011-08-30 Yannick Moy - - * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during - expansion in Alfa mode. - * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public. - * exp_light.adb, exp_light.ads: New package defining light expansion. - * expander.adb (Expand): Call light expansion in Alfa mode - * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6 - constructs. - * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7 - constructs. - * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes - * gnat1drv.adb (Adjust_Global_Switches): Comment - -2011-08-30 Yannick Moy - - * lib-xref-alfa.adb: Minor refactoring. - -2011-08-30 Yannick Moy - - * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa - mode. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform - expansion in Alfa mode. - * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa - mode. - -2011-08-30 Robert Dewar - - * debug_a.adb: Update comment. - -2011-08-30 Robert Dewar - - * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb, - sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb, - exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb, - sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting - -2011-08-30 Robert Dewar - - * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma - volatile. - -2011-08-30 Hristian Kirtchev - - * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to - Build_Finalization_Master by supplying an insertion node and enclosing - scope. In its old version, the call did not generate a finalization - master. - (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to - recognize anonymous access-to-controlled components. Rewrite the - machinery which creates finalization masters to service anonymous - access-to-controlled components of a record type. In its current state, - only one heterogeneous master is necessary to handle multiple anonymous - components. - (Freeze_Type): Comment reformatting. - * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and - RE_Unit_Table. - * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which - associates TSS primitive Finalize_Address with either the master itself - or with the internal hash table depending on the mode of operation of - the master. - -2011-08-30 Javier Miranda - - * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an - interface type then do not generate code to compare this component. - Required since they have no components and their equality operator is - abstract. - -2011-08-30 Steve Baird - - * sem_util.ads (Deepest_Type_Access_Level): New function; for the type - of a saooaaat (i.e, a stand-alone object of an anonymous access type), - returns the (static) accessibility level of the object. Otherwise, the - same as Type_Access_Level. - (Dynamic_Accessibility_Level): New function; given an expression which - could occur as the rhs of an assignment to a saooaaat (i.e., an - expression of an access-to-object type), return the new value for the - saooaaat's associated Extra_Accessibility object. - (Effective_Extra_Accessibility): New function; same as - Einfo.Extra_Accessibility except that object renames are looked through. - * sem_util.adb - (Deepest_Type_Access_Level): New function; see sem_util.ads description. - (Dynamic_Accessibility_Level): New function; see sem_util.ads - description. - (Effective_Extra_Accessibility): New function; see sem_util.ads - description. - * einfo.ads (Is_Local_Anonymous_Access): Update comments. - (Extra_Accessibility): Update comments. - (Init_Object_Size_Align): New procedure; same as Init_Size_Align - except RM_Size field (which is only for types) is unaffected. - * einfo.adb - (Extra_Accessibility): Expand domain to allow objects, not just formals. - (Set_Extra_Accessibility): Expand domain to allow objects, not just - formals. - (Init_Size): Add assertion that we are not trashing the - Extra_Accessibility attribute of an object. - (Init_Size_Align): Add assertion that we are not trashing the - Extra_Accessibility attribute of an object. - (Init_Object_Size_Align): New procedure; see einfo.ads description. - * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access - differently for the type of a (non-library-level) saooaaat depending - whether Ada_Version < Ada_2012. This is the only point where Ada_Version - is queried in this set of changes - everything else (in particular, - setting of the Extra_Accessibility attribute in exp_ch3.adb) is - driven off of the setting of the Is_Local_Anonymous_Access attribute. - The special treatment of library-level saooaaats is an optimization, - not required for correctnesss. This is based on the observation that the - Ada2012 rules (static and dynamic) for saooaaats turn out to be - equivalent to the Ada2005 rules in the case of a library-level saooaaat. - * exp_ch3.adb - (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is - false for the type of a saooaaat, declare and initialize its - accessibility level object and set the Extra_Accessibility attribute - of the saooaaat to refer to this object. - * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support. - * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with - calls to Effective_Extra_Accessibility in order to support - renames of saooaaats. - (Expand_N_Type_Conversion): Add new local function, - Has_Extra_Accessibility, and call it when determining whether an - accessibility check is needed. - It returns True iff Present (Effective_Extra_Accessibility (Id)) would - evaluate to True (without raising an exception). - * exp_ch5.adb - (Expand_N_Assignment_Statement): When assigning to an Ada2012 - saooaaat, update its associated Extra_Accessibility object (if - it has one). This includes an accessibility check. - * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates - a saooaaat, update its Extra_Accessibility object too (if it - has one). - (Expand_Call): Replace a couple of calls to Type_Access_Level - with calls to Dynamic_Access_Level to handle cases where - passing a literal (any literal) is incorrect. - * sem_attr.adb (Resolve_Attribute): Handle the static accessibility - checks associated with "Saooaat := Some_Object'Access;"; this must - be rejected if Some_Object is declared in a more nested scope - than Saooaat. - * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an - assignment to a saooaaat even if Is_Local_Anonymous_Access - returns False for its type (indicating a 2012-style saooaaat). - * sem_ch8.adb - (Analyze_Object_Renaming): Replace a call to Init_Size_Align - (which is only appropriate for objects, not types) with a call - of Init_Object_Size_Align in order to avoid trashing the - Extra_Accessibility attribute of a rename (the two attributes - share storage). - * sem_res.adb - (Valid_Conversion) Replace six calls to Type_Access_Level with - calls to Deepest_Type_Access_Level. This is a bit tricky. For an - Ada2012 non-library-level saooaaat, the former returns library level - while the latter returns the (static) accessibility level of the - saooaaat. A type conversion to the anonymous type of a saooaaat - can only occur as part of an assignment to the saooaaat, so we - know that such a conversion must be in a lhs context, so Deepest - yields the result that we need. If such a conversion could occur, - say, as the operand of an equality operator, then this might not - be right. Also add a test so that static accessibilty checks are - performed for converting to a saooaaat's type even if - Is_Local_Anonymous_Access yields False for the type. - -2011-08-30 Javier Miranda - - * sem_disp.adb (Check_Dispatching_Operation): Complete condition that - controls generation of a warning associated with late declaration of - dispatching functions. Required to avoid generating spurious - warnings. - -2011-08-30 Gary Dismukes - - * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the - return object has an anonymous access type and the function's type is - a named access type. - * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming - conversions on implicit conversions, since such conversions can occur - for anonymous access cases due to expansion. Issue error for attempt - to rename an anonymous expression as an object of a named access type. - * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs, - to indicate whether this function should report errors on invalid - conversions. - * sem_res.adb (Resolve): For Ada 2012, in the case where the type of - the expression is of an anonymous access type and the expected type is - a named general access type, rewrite the expression as a type - conversion, unless this is an expression of a membership test. - (Valid_Conversion.Error_Msg_N): New procedure that conditions the - calling of Error_Msg_N on new formal Report_Errs. - (Valid_Conversion.Error_Msg_NE): New procedure that conditions the - calling of Error_Msg_NE on new formal Report_Errs. - (Valid_Conversion): Move declaration of this function to the package - spec, to allow calls from membership test processing. For Ada 2012, - enforce legality restrictions on implicit conversions of anonymous - access values to general access types, disallowing such conversions in - cases where the expression has a dynamic accessibility level (access - parameters, stand-alone anonymous access objects, or a component of a - dereference of one of the first two cases). - * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type - in the context of a named general access expected type. - * exp_ch4.adb Add with and use of Exp_Ch2. - (Expand_N_In): Add processing for membership tests applied to - expressions of an anonymous access type. First, Valid_Conversion is - called to check whether the test is statically False, and then the - conversion is expanded to test that the expression's accessibility - level is no deeper than that of the tested type. In the case of - anonymous access-to-tagged types, a tagged membership test is applied - as well. - (Tagged_Membership): Extend to handle access type cases, applying the - test to the designated types. - * exp_ch6.adb (Expand_Call): When creating an extra actual for an - accessibility level, and the actual is a 'Access applied to a current - instance, pass the accessibility level of the type of the current - instance rather than applying Object_Access_Level to the prefix. Add a - ??? comment, since this level isn't quite right either (will eventually - need to pass an implicit level parameter to init procs). - -2011-08-30 Bob Duff - - * s-taskin.ads: Minor comment fix. - -2011-08-30 Ed Schonberg - - * sem_res.adb (Check_Parameterless_Call): If the node is a selected - component and the selector is a dispatching operation, check if it is - a prefixed call before rewriting as a parameterless function call. - -2011-08-29 Jakub Jelinek - - * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy - tsystem.h into $(RTSDIR) instead of rts. - -2011-08-29 Robert Dewar - - * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor - reformatting. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-29 Yannick Moy - - * alfa.ads (Name_Of_Heap_Variable): New constant name. - * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global - table to hold dereferences. - (Add_ALFA_Xrefs): Take into account dereferences as special - reads/writes to the variable "HEAP". - (Enclosing_Subprogram_Or_Package): Move subprogram here. - (Generate_Dereference): New procedure to store a read/write dereferencew - in the table Drefs. - * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for - the special "HEAP" var. - * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference - in ALFA mode. - * sem_util.adb (Note_Possible_Modification): Store write dereference - in ALFA mode. - -2011-08-29 Hristian Kirtchev - - * exp_ch3.adb (Freeze_Type): Generate an accessibility check which - ensures that the level of the subpool access type is not deeper than - that of the pool object. - * sem_util.adb (Object_Access_Level): Expand to handle defining - identifiers. - * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the - subpool handle name of a rewritten allocator. - -2011-08-29 Robert Dewar - - * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting. - -2011-08-29 Thomas Quinot - - * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple - values, we generate multiple triples of parameters in the TypeCode. - Bump Choice_Index for each such triple so that a subsequent default - choice is associated with the correct index in the typecode. - -2011-08-29 Ed Schonberg - - * a-cdlili.adb (Iterate): Initialize properly an iterator over a null - container. - (First, Last): Handle properly an iterator over a null container. - -2011-08-29 Bob Duff - - * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon - processing if we run across a node with no Scope. This can happen if - we're with-ing an library-level instance, and that instance got errors - that caused "instantiation abandoned". - * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising - an exception instead of using Assert, so it won't go into an infinite - loop, even when assertions are turned off. - -2011-08-29 Ed Schonberg - - * a-coorse.adb: Proper handling of empty ordered sets. - -2011-08-29 Johannes Kanig - - * debug.adb: Add comments. - -2011-08-29 Thomas Quinot - - * a-except.adb, a-except-2005.adb: Minor comment rewording and - reformatting. - -2011-08-29 Yannick Moy - - * sem_ch3.adb (Array_Type_Declaration): Remove insertion of - declaration for Itypes in Alfa mode. - -2011-08-29 Robert Dewar - - * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb, - a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads, - a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor - reformatting. - -2011-08-29 Tristan Gingold - - * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to - package spec. - * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler. - * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts - while raising PE. - -2011-08-29 Robert Dewar - - * a-cbhama.adb, a-cbhama.ads: Minor reformatting. - -2011-08-29 Javier Miranda - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for - renamings of formal subprograms when the actual for a formal type is - class-wide. - -2011-08-29 Matthew Heaney - - * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment - to Target. - -2011-08-29 Matthew Heaney - - * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all - components of record type. - * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw - to Target. - -2011-08-29 Ed Schonberg - - * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb, - a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to - container packages. - -2011-08-29 Robert Dewar - - * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor - reformatting. - -2011-08-29 Matthew Heaney - - * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all - components of record type. - -2011-08-29 Bob Duff - - * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated - by the termination handler. - -2011-08-29 Yannick Moy - - * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes - created in Alfa mode, instead of inserting artificial declarations of - non-Itypes in the tree. - * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to - know if an Itype has a corresponding declaration, as defined in - itypes.ads. - -2011-08-29 Yannick Moy - - * gnat1drv.adb: Minor rewrite. - -2011-08-29 Bob Duff - - * s-tasuti.adb (Make_Passive): Work around race condition in - Make_Independent, which can cause Wait_Count to be zero. So instead of - asserting that Wait_Count > 0, and then decrementing it, decrement it - only if Wait_Count > 0. - * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these - should be nonnegative, so declare them Natural instead of Integer. - -2011-08-29 Robert Dewar - - * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb, - sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb, - a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb, - a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb, - exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting. - -2011-08-29 Tristan Gingold - - * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels. - -2011-08-29 Vadim Godunko - - * s-parint.ads: Minor comment clarification. - -2011-08-29 Vincent Celier - - * prj.adb (Initialize): Make sure that new reserved words after Ada 95 - may be used as identifiers. - -2011-08-29 Ed Schonberg - - * a-coinho.ads: Minor reformating. - -2011-08-29 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a - container of a derived type. - -2011-08-29 Ed Schonberg - - * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads, - a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers. - -2011-08-29 Pascal Obry - - * exp_disp.adb: Minor comment fix. - (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters - to avoid warnings when compiling with -Wall. - (Make_Disp_Conditional_Select_Body): Likewise. - (Make_Disp_Timed_Select_Body): Likewise. - -2011-08-29 Ed Schonberg - - * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is - an entity name, generate reference for it. - -2011-08-29 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S" - iterator form. - * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for - the class-wide type. - * sem_ch5.adb: Move some rewriting to the expander, where it belongs. - -2011-08-29 Ed Schonberg - - * sem_ch8.adb (Check_Constrained_Object): Do not create an actual - subtype for an object whose type is an unconstrained union. - -2011-08-29 Ed Schonberg - - * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased" - is allowed in a component definition, by AI95-406. - -2011-08-29 Matthew Heaney - - * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next. - -2011-08-29 Hristian Kirtchev - - * a-except-2005.adb: Alphabetize all routines. - (Triggered_By_Abort): New routine. - * a-except-2005.ads (Triggered_By_Abort): New routine. - * a-except.adb Alphabetize all routines. - (Triggered_By_Abort): New routine. - * a-except.ads (Triggered_By_Abort): New routine. - * exp_ch7.adb: Update all comments involving the detection of aborts in - finalization code. - (Build_Object_Declarations): Do not generate code to detect the - presence of an abort at the start of finalization code, use a runtime - routine istead. - * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and - RE_Unit_Table. - * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to - allocate a task on a subpool. - * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use. - The flag disables all actions related to the maintenance of - Finalize_Address_Table when subpools are not in use. - (Allocate_Any_Controlled): Signal the machinery that subpools are in - use. - (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which - performs costly task locking when subpools are not in use. - -2011-08-29 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged - types and dispatching calls in Alfa mode. - * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of - correspondance between body and spec scopes, to reuse utility functions - (Traverse_Declarations_Or_Statements): Protect access to body for stub - by testing the presence of the library unit for the body - * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa - mode the expansion of accept statements is skipped - * sem_util.adb, sem_util.ads (Unique_Entity): New function returning - the unique entity corresponding to the one returned by - Unique_Defining_Entity applied to the enclosing declaration of the - argument. - -2011-08-29 Bob Duff - - * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in - gdb when x is not a node (it can be a node list, name_id, etc). pp is - an alias for pn. ppp is an alias for pt. - -2011-08-29 Javier Miranda - - * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing - aggregate to take a consistent decision on the need to convert into - assignments aggregates that initialize constant objects. - -2011-08-29 Hristian Kirtchev - - * exp_ch4.adb (Expand_Allocator_Expression): Add a call to - Build_Allocate_Deallocate_Proc in order to handle allocation of - non-controlled objects on subpools. - * impunit.adb: Remove s-finmas and s-spsufi since they were never meant - to be end-user visible. - * s-finmas.adb: Add with and use clause for System.HTable. - Add an instantiation of Simple_HTable which provides a mapping between - the address of a controlled object and the corresponding - Finalize_Address used to clean up the object. The table is used when a - master is operating in heterogeneous mode. - (Attach): Explain why the input node is not verified on being already - attached. - (Delete_Finalize_Address): New routine. - (Detach): Add pragma Assert which ensures that a node is already - attached. - (Finalize): Add local variable Cleanup. Rewrite the iteration scheme - since nodes are no longer removed on traversal. Explain why node - detachment is undesirable in this case. - (Get_Finalize_Address): New routine. - (Hash): New routine. - (Is_Empty_List): Removed. - (pm): Renamed to Print_Master. Add output for discriminant - Is_Homogeneous. - Comment reformatting. - (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine. - * s-finmas.ads: Various comments additions / improvements. - Type Finalization_Master has a discriminant which determines the mode of - operation. - (Delete_Finalize_Address): New routine. - (Get_Finalize_Address): New routine. - (pm): Renamed to Print_Master. - (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine. - * s-stposu.adb: Add with clause for System.Address_Image; Add with and - use clause for System.IO. - (Allocate_Any_Controlled): Add machinery to set TSS primitive - Finalize_Address depending on the mode of allocation and the mode of - the master. - (Deallocate_Any_Controlled): Remove the relation pair object - - Finalize_Address regardless of the master mode. Add comment explaining - the reason. - (Detach): Ensure that fields Prev and Next are null after detachment. - (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration - scheme to check whether the list of subpools is empty. There is no - longer need to store the next subpool or advance the current pointer. - (Is_Empty_List): New routine. - (Print_Pool): New routine. - (Print_Subpool): New routine. - * s-stposu.ads: Various comments additions / improvements. - Field Master of type Root_Subpool is now a heterogeneous collection. - (Print_Pool): New routine. - (Print_Subpool): New routine. - -2011-08-29 Ed Schonberg - - * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator - forms, using aspects of container types. - * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and - Has_Implicit_Dereference flags, that may be set on the partial view. - * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a - container type with an indexing aspect. - (Analyze_Quantified_Expression): Analyze construct with expansion - disabled, because it will be rewritten as a loop during expansion. - (Try_Container_Indexing): The prefix itself may be a container type - with an indexing aspect, as with a vector of vectors. - * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze - the original doamin of iteration, for name capture. - (Analyze_Iterator_Specification): If the domain is an expression that - needs finalization, create a separate declaration for it. - For an iterator with "of" retrieve default iterator info from aspect of - container type. For "in" iterator, retrieve type of Iterate function. - * sem_ch13.adb (Check_Iterator_Function): Fix typo. - (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before - analysis, to prevent spurious errors about late attributes. - * sprint.adb: Handle quantified expression with either loop or iterator - specification. - * a-convec.ads, a-convec.adb: Iterate function returns a reversible - iterator. - -2011-08-29 Vincent Celier - - * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler, - Binder or Linker of the main project file. - -2011-08-29 Ed Schonberg - - * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic - unit. - -2011-08-29 Yannick Moy - - * exp_ch9.adb: Partial revert of previous change for Alfa mode - -2011-08-29 Yannick Moy - - * exp_ch11.adb: Minor expansion of comment. - -2011-08-29 Yannick Moy - - * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities. - -2011-08-29 Ed Schonberg - - * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal - interpretation, set the type before resolving the operands, because - legality checks on an exponention operand need to know the type of the - context. - -2011-08-29 Ed Schonberg - - * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed - cleanups on a master if the instance is within a generic unit. - Complement to the corresponding fix to inline.adb for K520-030. - -2011-08-29 Tristan Gingold - - * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current - occurrence. - * exp_intr.adb: Minor comment fix. - -2011-08-29 Bob Duff - - * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where - Delay_Required was used as an uninitialized variable. - -2011-08-29 Robert Dewar - - * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads, - sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, - a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting. - -2011-08-29 Thomas Quinot - - * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True. - Remove unused variables. - -2011-08-29 Ed Schonberg - - * sem_res.adb: Remove Build_Explicit_Dereference. - * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here - from sem_res.adb, used in analysis of additional constructs. - (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012 - expansion of iterators. - (Is_Object_Reference): Recognize variables rewritten as explicit - dereferences in Ada2012. - * snames.ads-tmpl: Add Has_Element, Forward_Iterator, - Reversible_Iterator names, for expansion of Ada2012 iterators. - * aspects.ads, aspects.adb (Find_Aspect): Utility. - * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly - linked list container. - * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers. - * a-coorse.ads, a-coorse.adb: Ditto for ordered sets. - -2011-08-29 Ed Schonberg - - * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map - containers. - -2011-08-29 Vincent Celier - - * make.adb (Gnatmake): Get the maximum number of simultaneous - compilation processes after the Builder switches has been scanned, as - there may include -jnn. - -2011-08-29 Matthew Heaney - - * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next. - -2011-08-29 Tristan Gingold - - * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of - GNAT_DRIVER_COMMAND_LINE to 255. - -2011-08-29 Pascal Obry - - * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor - reformatting and style fix (class attribute casing). - -2011-08-29 Yannick Moy - - * exp_ch11.adb: Yet another case where expansion should be common - between CodePeer and Alfa. - -2011-08-29 Yannick Moy - - * exp_ch9.adb: Partial revert of previous change for Alfa mode. - -2011-08-29 Ed Schonberg - - * sem_ch6.adb (Matches_Limited_With_View): The limited views of an - incomplete type and its completion match. - -2011-08-29 Yannick Moy - - * exp_ch13.adb: Adjust previous change. - -2011-08-29 Robert Dewar - - * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb, - exp_ch4.adb, sem_ch8.adb: Minor code reorganization - Minor reformatting. - -2011-08-29 Emmanuel Briot - - * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also - initialize aggregated projects. - -2011-08-29 Ed Schonberg - - * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope - depth of candidates to resolve a potentially spurious ambiguity between - two visible subprograms. - -2011-08-29 Yannick Moy - - * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without - Requires/Ensures. - * sem_util.adb (Get_Ensures_From_Test_Case_Pragma, - Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without - Requires/Ensures. - -2011-08-29 Arnaud Charlet - - * gnat1drv.adb (Adjust_Global_Switches): Improve previous change. - Add comment. - -2011-08-29 Thomas Quinot - - * sem_res.adb: Minor reformatting. - -2011-08-29 Johannes Kanig - - * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA - mode. - * gnat1drv.adb (Adjust_Global_Switches): Set - Use_Expressions_With_Actions to False in ALFA mode. - * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in - ALFA mode. - -2011-08-29 Yannick Moy - - * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode. - * exp_ch9.adb: Do not expand tasking constructs in Alfa mode. - * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of - tagged types and dispatching calls in Alfa mode. - -2011-08-29 Javier Miranda - - * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that - we do not report an error on an Empty node. - -2011-08-29 Geert Bosch - - * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o, - a-nlrear.o and a-nurear.o. - -2011-08-29 Robert Dewar - - * freeze.adb: Minor code reorganization. - Minor reformatting. - * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb, - sem_ch6.adb: Minor reformatting - -2011-08-29 Tristan Gingold - - * s-except.ads, s-except.adb: Provide dummy body. - -2011-08-29 Yannick Moy - - * sem_warn.adb (Within_Postcondition): Take into account the case of - an Ensures component in a Test_Case. - -2011-08-29 Tristan Gingold - - * s-excdeb.ads, s-excdeb.adb: New files, created from s-except. - * rtsfind.ads (RTU_Id): Replaces System_Exceptions by - System_Exceptions_Debug - (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug - * a-except.adb: With and use System.Exceptions_Debug instead of - System.Exceptions. - * a-except-2005.adb: Likewise. - * s-assert.adb: Likewise. - * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb. - * Makefile.rtl: Add s-excdeb. Adjust compilation rule. - * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add - s-excdeb. Update dependencies. - (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o - as these no longer need external libraries. - -2011-08-29 Ed Schonberg - - * sem_res.adb (Resolve_Op_Expon): Additional check to reject an - exponentiation operator on universal values in a context that requires - a fixed-point type. - -2011-08-29 Tristan Gingold - - * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence - before calling notify_handled_exception. - * a-exextr.adb: Fix comment. - -2011-08-29 Hristian Kirtchev - - * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute - Finalize_Address of the access type's finalization master. - (Expand_N_Allocator): Add code to set attribute Finalize_Address of the - access type's finalization master. Add a guard to prevent - Associated_Storage_Pool from being set on .NET/JVM. - * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set - attribute Finalize_Address of the access type's finalization master. - * exp_ch7.adb (Make_Finalize_Address_Call): New routine. - * exp_ch7.ads (Make_Finalize_Address_Call): New routine. - * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and - RE_Unit_Table. - * s-finmas.adb: Add with clause for System.Address_Image. Add with and - use clause for System.IO - (Detach): Relax the assertion, to be reinstated later. - (Finalize): Rewrite the iteration loop to avoid pointer comparison. - Relax the assertion on Finalize_Address, to be reinstated later. - (Is_Empty_List): New routine. - (pm): New debug routine. - (Set_Finalize_Address): New routine. - * s-finmas.ads (pm): New debug routine. - (Set_Finalize_Address): New routine. - * s-stposu.adb (Allocate_Any_Controlled): Code reformatting. - -2011-08-29 Tristan Gingold - - * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access): - Remove convention C. - -2011-08-29 Tristan Gingold - - * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove. - (Initialize_TCB): Remove Exc_Stack_Ptr initialization. - (Finalize_TCB): Remove its finalization. - (Initialize): Remove assignment of GET_Exc_Stack_Addr - * s-soflin.adb (NT_Exc_Stack): Remove - (Get_Exc_Stack_Addr_NT): Likewise. - (Get_Exc_Stack_Addr_Soft): Likewise. - * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove. - (Get_Exc_Stack_Addr): Likewise. - (Get_Exc_Stack_Addr_Soft): Likewise - * s-taspri-vms.ads (Exc_Stack_T): Remove. - (Exc_Stack_Ptr_T): Likewise. - (Private_Data): Remove Exc_Stack_Ptr component. - -2011-08-29 Tristan Gingold - - * raise-gcc.c (get_ip_from_context): New function. Factorize code. - -2011-08-29 Tristan Gingold - - * gnat_ugn.texi: Fix aix and x86-solaris info for run-time. - -2011-08-29 Geert Bosch - - * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate, - L2_Norm, Swap_Column): New generic subprograms - * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate, - L2_Norm, Swap_Column): Implement new subprograms in order to - eliminate dependency on BLAS and LAPACK libraries in - Ada.Numerics.Generic_Real_Arrays and eventually also the complex - version. Forward_Eliminate/Back_Substitute can be used to put a - matrix in row echelon or reduced row echelon form using partial - pivoting. - * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate, - Swap_Column): Instantiate from System.Generic_Array_Operations. - ("*", "abs"): Implement by instantiation from Generic_Array_Operations. - (Sqrt): Local function for simple computation of square root without - adding dependencies on Generic_Elementary_Functions. - (Swap): New subprogram to exchange floating point numbers. - (Inverse): Reimplement using Jordan-Gauss elimination. - (Jacobi): New procedure implementing Jacobi's method for computation - of eigensystems, based on Rutishauser's implementation. - (L2_Norm): Implement directly using the inner product. - (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of - decreasing eigenvalue as required by the Ada RM. - (Swap_Column): New helper procedure for Sort_Eigensystem. - Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK. - Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for - Sort_Eigensystems. - -2011-08-29 Thomas Quinot - - * put_scos.adb (Put_SCOs): Do not emit a newline for an empty - statements line. - -2011-08-29 Hristian Kirtchev - - * s-finmas.adb (Finalize): Check Finalize_Address of the master rather - than the current node. - * s-finmas.ads: Move field Finalize_Address from type FM_Node to - Finalization_Master. The list headers have two fields instead of three. - This should fix alignment issue but subpool allocations are now - unusable. Alphabetize subprograms. - * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than - the size of the header when converting the beginning of the object to - a FM_Node. Set the master's Finalize_Address attribute if not already - set. - (Deallocate_Any_Controlled): Use the offset rather than the size of the - header when converting the beginning of the object to a FM_Node. - -2011-08-29 Gary Dismukes - - * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of - reraise when compiling for CodePeer. - -2011-08-29 Arnaud Charlet - - * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads, - now needed by a-convec.adb. Fix warning. - -2011-08-29 Hristian Kirtchev - - * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the - processing of TSS routine Finalize_Address when compiling in - CodePeer_Mode. - -2011-08-29 Thomas Quinot - - * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb, - sem_warn.adb: Minor reformatting. - -2011-08-29 Emmanuel Briot - - * prj-conf.adb (Get_Config_Switches): Also collect the list of - languages from aggregated projects. - -2011-08-29 Yannick Moy - - * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements, - Traverse_Handled_Statement_Sequence, Traverse_Package_Body, - Traverse_Package_Declaration, Traverse_Subprogram_Body, - Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies - for stubs are traversed too when parameter is set - (Traverse_All_Compilation_Units): Traverse without going inside stubs - (Traverse_Declarations_Or_Statements): Do the special traversing for - stubs when required. - * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to - return subprogram or package body from stub. - (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect - stubs without prior subprogram decl. - -2011-08-29 Vasiliy Fofanov - - * gnat_ugn.texi: Fix typo. - -2011-08-29 Hristian Kirtchev - - * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism - which accounts for size vs alignment issues and calculates the size of - the list header. - (Deallocate_Any_Controlled): Ditto. - (Nearest_Multiple_Rounded_Up): New routine. - -2011-08-29 Tristan Gingold - - * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag. - * a-exexda.adb (Set_Exception_C_Msg): Ditto. - (Set_Exception_Msg): Ditto. - * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set - Private_Data. - * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove. - Use Save_Occurrence instead of Save_Occurrence_No_Private. - (Raise_With_Msg): Remove Cleanup_Flag. - * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove - Clean_Flag and Private_Data components. - -2011-08-29 Yannick Moy - - * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like - in CodePeer mode. - * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation - of an explicitly declared type, so that the base types of the original - type and this generated type are the same, and a "type" (not a subtype - like previously). - * errout.adb (Special_Msg_Delete): Do not issue messages "Size too - small" in Alfa mode, like in CodePeer mode. - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep - clauses in Alfa mode. - -2011-08-29 Javier Miranda - - * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this - function to the package spec. - * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For - internally generated bodies of null procedures locate the internally - generated spec enforcing mode conformance. - (Is_Interface_Conformant): Ensure that the controlling formal of the - primitives match. - -2011-08-29 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not - reject the pragma if it appears to apply to a formal subprogram. - -2011-08-29 Ed Schonberg - - * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for - inner expression, to prevent double evaluation. - -2011-08-29 Tristan Gingold - - * a-exexpr.adb (Propagate_Exception): Remove all the parameters as - they were unused. - * a-exexpr-gcc.adb (Propagate_Exception): Ditto. - * a-except-2005.adb (Propagate_Exception): Adjust spec. - (Raise_Current_Excep): Adjust call. - (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep. - -2011-08-29 Thomas Quinot - - * exp_disp.adb: Minor reformatting. - -2011-08-29 Tristan Gingold - - * a-exexpr.adb (Setup_Exception): Removed. - * a-exexpr-gcc.adb (Setup_Exception): Removed. - * a-except.adb (Exception_Propagation): Removed. - * a-except-2005.adb (Setup_Exception): Removed. - (Reraise): Remove call to Setup_Exception. - (Reraise_Occurrence): Ditto. - (Reraise_Occurrence_Always): Ditto. - (Reraise_Occurrence_No_Defer): Ditto. - (Transfer_Occurrence): Ditto. - * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception. - (Set_Exception_Msg): Ditto. - -2011-08-29 Robert Dewar - - * a-convec.adb, exp_disp.adb: Minor reformatting. - -2011-08-29 Tristan Gingold - - * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C. - -2011-08-29 Gary Dismukes - - * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set - Exception_Handlers to No_List instead of Empty_List in the case where - there are no handlers. - -2011-08-29 Tristan Gingold - - * gcc-interface/gigi.h (enum standard_datatypes): Add - ADT_reraise_zcx_decl - (reraise_zcx_decl): New macro. - * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable. - (gigi): Set reraise_zcx_decl. - (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr. - (gnat_to_gnu): Handle N_Raise_Statement. - -2011-08-29 Robert Dewar - - * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads, - a-undesu.adb: Minor reformatting. - -2011-08-29 Ed Schonberg - - * exp_disp.adb (Check_Premature_Freezing): When building a dispatch - table, accept an unfrozen untagged component if it is an actual for a - formal incomplete type. - * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to - provide new iterator forms over vectors. - Introduce type Iterator in package body to implement operations of - Reversible_Iterator interface. - * a-iteint.ads: Make package pure so it is usable with new container - packages, that are categorized Remote_Types. - -2011-08-29 Robert Dewar - - * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting. - -2011-08-29 Bob Duff - - * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case - of <>, because this is the routine that checks for dimensionality - errors (for example, for a two-dimensional array, (others => <>) should - be (others => (others => <>)). - -2011-08-29 Hristian Kirtchev - - * impunit.adb: Add new run-time units. - * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb, - s-stposu.ads, s-stposu.adb: Code clean up. - Handle protected class-wide or task class-wide types - Handle C/C++/CIL/Java types. - * s-spsufi.adb, s-spsufi.ads: New files. - -2011-08-29 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on - library-level subprogram. - * sem_prag.adb (Check_Test_Case): Stricter rules for test-case - placement. - (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case - component. - * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case - component. - * gnat_rm.texi: Update doc for Test_Case pragma. - -2011-08-29 Tristan Gingold - - * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it - convention C. - (GCC_Exception_Access): New type. - (Unwind_DeleteException): New imported procedure - (Foreign_Exception): Import it. - (GNAT_GCC_Exception): Simply have the occurrence inside. - (To_GCC_Exception): New function. - (To_GNAT_GCC_Exception): New function. - (GNAT_GCC_Exception_Cleanup): New procedure.. - (Propagate_GCC_Exception): New procedure. - (Reraise_GCC_Exception): New procedure. - (Setup_Current_Excep): New procedure. - (CleanupUnwind_Handler): Change type of UW_Exception parameter. - (Unwind_RaiseException): Ditto. - (Unwind_ForcedUnwind): Ditto. - (Remove): Removed. - (Begin_Handler): Change type of parameter. - (End_Handler): Ditto. Now delete the exception if still present. - (Setup_Key): Removed. - (Is_Setup_And_Not_Propagated): Removed. - (Set_Setup_And_Not_Propagated): Ditto. - (Clear_Setup_And_Not_Propagated): Ditto. - (Save_Occurrence_And_Private): Ditto. - (EID_For): Add 'not null' constraint on parameter. - (Setup_Exception): Does nothing. - (Propagate_Exception): Simplified. - * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model, - re-raise is not expanded anymore. - * s-except.ads (Foreign_Exception): New exception - placeholder for - non Ada exceptions. - * raise-gcc.c (__gnat_setup_current_excep): Declare - (CXX_EXCEPTION_CLASS): Define (not yet used) - (GNAT_EXCEPTION_CLASS): Define. - (is_handled_by): Handle foreign exceptions. - (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep. - -2011-08-29 Jose Ruiz - - * a-synbar.adb (Synchronous_Barrier): Some additional clarification. - -2011-08-29 Thomas Quinot - - * a-synbar-posix.adb: Minor reformatting. - -2011-08-29 Jose Ruiz - - * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads, - a-exetim-default.ads (Interrupt_Clocks_Supported, - Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these - definitions to be compliant with AI-0171. The target systems do not - support separate account for the execution time of interrupt handlers. - -2011-08-29 Jose Ruiz - - * a-synbar.adb (Wait): Change the order of evaluation of the conditions - in the barrier to put first the easiest to evaluate (and the one which - will be True more often). More efficient. - -2011-08-29 Eric Botcazou - - * s-atocou-x86.adb: Fix constraint in machine code insertion. - -2011-08-29 Bob Duff - - * aspects.ads, aspects.adb: Add new aspects for various pragmas and - attributes that are now aspects, as specified by AI05-0229-1. - * sem_ch13.adb (Analyze_Aspect_Specifications, - Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into - pragmas or attribute references, as appropriate. - -2011-08-29 Robert Dewar - - * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb, - a-synbar-posix.ads: Minor reformatting. - -2011-08-29 Yannick Moy - - * snames.ads-tmpl: Add name Force. - -2011-08-29 Pascal Obry - - * prj-nmsc.adb: Minor reformatting. - -2011-08-29 Jose Ruiz - - * a-exetim.ads (Interrupt_Clocks_Supported, - Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these - definitions to be compliant with AI-0171. - -2011-08-29 Robert Dewar - - * a-ngelfu.adb: Add comments. - -2011-08-29 Geert Bosch - - * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is - the closest machine number to Pi / 2.0. - -2011-08-29 Jose Ruiz - - * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012 - package Ada.Synchronous_Barriers. - * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb: - Add new specs and bodies for Ada.Synchronous_Barriers. There is a - default implementation using protected objects and another one - a-synbar-posix using POSIX barriers as the underlying support. - * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86, - x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of - Ada.Synchronous_Barriers which uses POSIX barriers (more efficient). - Clean up dependencies. - * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o - -2011-08-29 Robert Dewar - - * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb, - exp_dist.adb: Minor code reorganization. - Minor reformatting. - -2011-08-29 Thomas Quinot - - * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW - primitive operation must support external streaming if it is not a - controlling access result. - -2011-08-29 Thomas Quinot - - * sinfo.ads, sem_ch7.adb: Minor reformatting. - -2011-08-29 Bob Duff - - * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization - restriction on allocators, as required by AI05-0013-1. - * restrict.ads: Minor comment fix. - -2011-08-29 Tristan Gingold - - * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb - (To_Jmpbuf_Address): Ditto - (builtin_longjmp): Ditto - -2011-08-29 Thomas Quinot - - * sem_res.adb: Minor reformatting. - -2011-08-29 Vincent Celier - - * make.adb (Gnatmake): Move special processing for VM targets after the - call to Get_Target_Parameters. - -2011-08-29 Thomas Quinot - - * sem_ch12.adb, par-ch12.adb: Minor reformatting. - -2011-08-29 Hristian Kirtchev - - * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases - where an anonymous access discriminant of a limited designated type - appears in a non-immutably limited discriminated type and issue an - error message. Add local variable Desig_T and replace all occurrences - of Designated_Type. - -2011-08-29 Jose Ruiz - - * a-rttiev.adb (Set_Handler): Update comment to indicate that our - implementation is compliant to RM D.15(15/2) after the modification - imposed by AI05-0094-1 (binding interpretation). - -2011-08-29 Robert Dewar - - * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb, - s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting. - -2011-08-29 Thomas Quinot - - * par-endh.adb (Check_End): For an END where it is mandatory to repeat - the scope name, do not report a missing label as a style violation (it - will be diagnosed as an illegality). - * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of - variant records: Get_Enum_Lit_From_Pos already returns a usage - occurrence of the literal, no need to use New_Occurrence_Of. Set Etype - on Expr in Integer_Literal case so that it can be used by - Build_To_Any_Call. - -2011-08-29 Tristan Gingold - - * exp_sel.ads (Build_Abort_BLock_Handler): New function spec. - Adjust comment. - * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler. - (Build_Abort_Block_Handler): New function to build an Abort_Signal - exception handler. - * exp_ch9.adb (Expand_N_Asynchronous_Select): Call - Build_Abort_Block_Handler to build the exception handler. Do not - undefer aborts for the Abort_Signal exception handler if back-end - exception mechanism. - * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if - back_end exceptions for all others and abort_signal. - * s-except.ads (ZCX_By_Default): New constant. - * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX. - (Raise_Exception_Always): Ditto. - (Raise_From_Signal_Handler): Ditto. - (Raise_With_Location_And_Msg): Ditto. - (Raise_With_Msg): Ditto. - (Reraise): Ditto. - (Reraise_Occurence): Ditto. - (Reraise_Occurrence_Always): Ditto. - * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX. - * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX. - -2011-08-29 Thomas Quinot - - * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation. - -2011-08-29 Robert Dewar - - * snames.adb-tmpl, sem_ch13.adb: Minor reformatting - Minor code reorganization. - -2011-08-29 Bob Duff - - * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada - 2012, not just Ada 2005. - -2011-08-29 Vincent Celier - - * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake - with a project file or with gprbuid, if -gnatep= is specified, the - builder may need to be invoked with -x. - -2011-08-29 Tristan Gingold - - * a-exexpr-gcc.adb: Minor comment fix. - -2011-08-29 Robert Dewar - - * sem_ch8.adb: Minor reformatting. - -2011-08-29 Bob Duff - - * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012. - * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for - treating "some" as unreserved in earlier Ada versions. This is now - handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some, - rather than Name_Some, since Tok_Some is now recognized as reserved. - * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other - reserved word. - * scans.ads: Minor comment fixes. - * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as - for other language versions. - * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for - treating "some" as unreserved in earlier Ada versions. This is now - handled in Snames.Is_Keyword_Name. - * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in - Ada 2012. - (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as - unreserved in earlier Ada versions. This is now handled in - Snames.Is_Keyword_Name. - * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved - words as for other language versions. - * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to - Ada 2012, not just Ada 2005. - -2011-08-29 Ed Schonberg - - * sem_ch13.adb: Additional semantic checks for aspects involved in - iterators. - -2011-08-29 Matthew Heaney - - * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb, - a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous - Container parameter. - (Ancestor_Find): ditto. - -2011-08-29 Thomas Quinot - - * par-endh.adb: Minor reformatting. - -2011-08-29 Tristan Gingold - - * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants. - (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component. - (Adjust_N_CLeanups_For): Remove. - (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of - stack is reached. - (Propgate_Exception): Adjust. - * raise-gcc.c: Add a few static/const. - (Adjust_N_Cleanups_For): Remove declaration. - (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger. - -2011-08-29 Ed Schonberg - - * sem_ch8.adb: Use type of function return when rewriting as object - declaration. - -2011-08-29 Gary Dismukes - - * sem_type.adb: Minor reformatting. - -2011-08-29 Robert Dewar - - * makeutl.adb: Minor reformatting. - -2011-08-29 Ed Schonberg - - * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a - function call of a limited type, the expansion of the renaming is - complicated by the presence of various temporaries and subtypes that - capture constraints of the renamed object. - Rewrite node as an object declaration, whose expansion is simpler. - Given that the object is limited there is no copy involved and no - performance hit. - -2011-08-29 Robert Dewar - - * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb, - freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting. - -2011-08-29 Tristan Gingold - - * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads, - system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads, - system-linux-hppa.ads, system-linux-s390.ads, - system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads, - system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads, - system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads, - system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads, - system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads, - system-solaris-sparc.ads, system-lynxos-x86.ads, - system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads, - system-solaris-x86_64.ads, system-mingw-x86_64.ads, - system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads, - system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads, - system-vxworks-x86.ads: Remove GCC_ZCX_Support. - * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb, - s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto. - * opt.ads: Adjust comment. - * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target. - * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target. - * system.ads: Move GCC_ZCX_Support to obsolete entries. - -2011-08-29 Emmanuel Briot - - * makeutl.adb (Do_Complete): Resolve symbolic links when a relative - file name is specified on the gnatmake or gprbuild command line, and - before we search for that file in the project. - -2011-08-29 Ed Schonberg - - * sem_type.adb (Within_Instance): New predicate in Collect_Interps, - used to determine whether a possible interpretation for an overloadable - entity is declared within the current instantiation and should be - included in the candidate set. - -2011-08-29 Vasiliy Fofanov - - * gnat_rm.texi, gnat_ugn.texi: Clean ups. - -2011-08-29 Ed Schonberg - - * sem_res.adb (Resolve_Actuals): Use base type to determine whether an - access subtype is access_to_subprogram, when applying checks for - RM 3.10.2 (27). - -2011-08-29 Matthew Heaney - - * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check - for sibling when common parent. - -2011-08-29 Thomas Quinot - - * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with - "pragma_". - -2011-08-29 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions - for the return type when in ASIS mode. - -2011-08-29 Vincent Celier - - * make.adb (Gnatmake): Get the default search dirs, then the target - parameters after getting the Builder switches, as the Builder switches - may include --RTS= and that could change the default search dirs. - -2011-08-29 Hristian Kirtchev - - * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of - Make_Final_Call. Move the processing for class-wide types before the - processing for derivations from [Limited_]Controlled. - (Make_Final_Call): Move the processing for class-wide types before the - processing for derivations from [Limited_]Controlled. - * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check. - Add code to account for alignments larger than the list header. Add a - comment illustrating the structure of the allocated object + padding + - header. - (Deallocate_Any_Controlled): Add code to account for alignments larger - than the list header. - -2011-08-29 Ed Schonberg - - * sinfo.ads, sinfo.adb: New node kind - N_Formal_Incomplete_Type_Definition, related flags. - par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition): - Parse formal incomplete types. - * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in - sem_ch12. - * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body): - Formal incomplete types do not need completion. - * sem_ch12.adb (Analyze_Formal_Incomplete_Type, - Validate_Incomplete_Type_Instance): New procedures to handle formal - incomplete types. - * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual - that corresponds to a formal incomplete type. - * sprint.adb: Handle formal incomplete type declarations. - * exp_util.adb (Insert_Actions): An incomplete_type_definition is not - an insertion point. - -2011-08-29 Hristian Kirtchev - - * a-fihema.ads, a-fihema.adb: Unit removed. - * a-undesu.ads, a-undesu.adb: New unit implementing - Ada.Unchecked_Deallocate_Subpool. - * einfo.adb: Remove Associated_Collection from the node usage. - Add Finalization_Master to the node usage. - (Associated_Collection): Removed. - (Finalization_Master): New routine. - (Set_Associated_Collection): Removed. - (Set_Finalization_Master): New routine. - (Write_Field23_Name): Remove Associated_Collection from the output. Add - Finalization_Master to the output. - * einfo.ads: Remove attribute Associated_Collection and its uses in - entities. - Add new attribute Finalization_Master along with its uses in entitites. - (Associated_Collection): Removed along with its pragma import. - (Finalization_Master): New routine along with a pragma import. - (Set_Associated_Collection): Removed along with its pragma import. - (Set_Finalization_Master): New routine along with a pragma import. - * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to - Build_Finalization_Collection with Build_Finalization_Master. - (Expand_Freeze_Record_Type): Move the generation of Finalize_Address - before the bodies of the predefined routines. Add comment explaining - this. Replace call to Build_Finalization_Collection with - Build_Finalization_Master. - (Freeze_Type): Replace call to Build_Finalization_Collection with - Build_Finalization_Master. - (Make_Finalize_Address_Body): Comment reformatting. - (Make_Predefined_Primitive_Specs): Code reformatting. - (Stream_Operation_OK): Update comment mentioning finalization - collections. Replace RE_Finalization_Collection with - RE_Finalization_Master. - * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to - Associated_Collection with Finalization_Master. Replace call to - Build_Finalization_Collection with Build_Finalization_Master. - (Expand_Allocator_Expression): Replace call to Associated_Collection - with Finalization_Master. Replace call to Set_Associated_Collection with - Set_Finalization_Master. Remove the generation of - Set_Finalize_Address_Ptr. - (Expand_N_Allocator): Replace call to Associated_Collection with - Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr. - * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to - Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the - comment on usage. Replace call to Needs_BIP_Collection with - Needs_BIP_Finalization_Master Remplace BIP_Collection with - BIP_Finalization_Master. Update all comments which mention finalization - collections. Replace Associated_Collection with - Finalization_Master. Replace Build_Finalization_Collection with - Build_Finalization_Master. - (BIP_Formal_Suffix): Update BIP_Collection's case. - (Build_Heap_Allocator): Update the related comment. Rename local - variable Collect to Fin_Mas_Id and update its occurrences. Update - comments which mention finalization collections. Replace - Set_Associated_Collection with Set_Finalization_Master. - (Expand_Call): Update the code which detects a special piece of library - code for .NET/JVM. - (Make_Build_In_Place_Call_In_Allocator): Replace the call to - Add_Collection_Actual_To_Build_In_Place_Call with - Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code - which generates a call to Make_Set_Finalize_Address_Ptr_Call. - (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to - Add_Collection_Actual_To_Build_In_Place_Call with - Add_Finalization_Master_Actual_To_Build_In_Place_Call. - (Make_Build_In_Place_Call_In_Assignment): Replace call to - Add_Collection_Actual_To_Build_In_Place_Call with - Add_Finalization_Master_Actual_To_Build_In_Place_Call. - (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master. - * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master. - (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master. - * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage. - Rename local variable Collect to Fin_Mas_Id and update its occurrences. - Replace call to Set_Associated_Collection with Set_Finalization_Master. - (Build_Finalization_Collection): Renamed to Build_Finalization_Master. - Replace the call to Associated_Collection with Finalization_Master. - Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences. - Update the way finalization master names are generated. Update the - retrieval of the correct access type which will carry the pool and - master attributes. - (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved. - (Make_Finalize_Address_Body): Abstract types do not need - Finalize_Address. Code reformatting. - (Make_Finalize_Address_Stmts): Update comment on usage. - (Make_Set_Finalize_Address_Ptr_Call): Removed. - (Process_Declarations): Update comments. - * exp_ch7.ads (Build_Finalization_Collection): Renamed to - Build_Finalization_Master. Update associated comment. - (Make_Set_Finalize_Address_Ptr_Call): Removed. - * exp_ch13.adb: Update comments which mention finalization collections. - (Expand_N_Free_Statement): Replace the call to Associated_Collection - with Finalization_Master. - * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to - create calls to routines Allocate_Any_Controlled and - Deallocate_Any_Controlled. - (Find_Finalize_Address): New routine. - (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the - comparison. - (Requires_Cleanup_Actions): Update the comment on freeze node - inspection. - * exp_util.ads: Remove comment on generated code for - Build_Allocate_Deallocate_Proc. The code is now quite complex and it - is better to simply look in the body. - * freeze.adb (Freeze_All): Update the comment of finalization - collections. Replace the call to Associated_Collection with - Finalization_Master. Replace the call to Build_Finalization_Collection - with Build_Finalization_Master. - * impunit.adb: Add a-undesu and s-stposu to the list of units. - * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file - a-fihema. - * rtsfind.adb (Get_Unit_Name): Remove the processing for children of - Ada.Finalization. Add processing for children of System.Storage_Pools. - * rtsfind.ads: Remove the naming of second level children of - Ada.Finalization. - Remove Ada_Finalization_Heap_Management from the list of units. - Remove subtype Ada_Finalization_Child. - Remove the following subprogram entities: - - RE_Allocate - RE_Deallocate - RE_Finalization_Collection - RE_Finalization_Collection_Ptr - RE_Set_Finalize_Address_Ptr - - Add the naming of second level children of System.Storage_Pools. - Add System_Finalization_Masters and System_Storage_Pools_Subpools to - the list of units. - Add subtype System_Storage_Pools_Child. - Add the following subprogram entities to System.Finalization_Masters: - - RE_Finalization_Master - RE_Finalization_Master_Ptr - - Add the following subprogram entities to System.Storage_Pools.Subpools: - - RE_Allocate_Any_Controlled - RE_Deallocate_Any_Controlled - RE_Root_Storage_Pool_With_Subpools - RE_Root_Subpool - RE_Subpool_Handle - - Move the following subprogram entities from - Ada.Finalization.Heap_Management to System.Finalization_Masters: - - RE_Add_Offset_To_Address - RE_Attach - RE_Base_Pool - RE_Detach - - * sem_ch3.adb (Access_Type_Declaration): Replace the call to - Set_Associated_Collection with Set_Finalization_Master. - * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal - BIP_Finalization_Master is created. - * s-finmas.adb: New unit System.Finalization_Masters. - * s-finmas.ads: New unit System.Finalization_Masters. - * s-stopoo.ads, s-stopoo.adb: Minor code reformatting. - * s-stposu.ads, s-stposu.adb: New unit implementing - System.Storage_Pools.Subpools. - -2011-08-29 Bob Duff - - * tbuild.adb: Add assertion. - -2011-08-29 Thomas Quinot - - * s-pooglo.adb: Minor reformatting. - -2011-08-29 Ed Schonberg - - * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is - an indexed component of a packed array whose element type is a record - with a representation clause different from that of the right-hand - side, generate a temporary to minimuze the number of bit-field - operations generated. - -2011-08-29 Ed Schonberg - - * exp_util.adb (Insert_Actions): Use clauses can be part of lists of - declarations, and thus are likely insertion points for actions. - -2011-08-29 Bob Duff - - * einfo.ads: Minor comment fix. - -2011-08-29 Robert Dewar - - * frontend.adb, gnat1drv.adb: Minor reformatting. - -2011-08-29 Tristan Gingold - - * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment. - * a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add padding - space in front of the header. - -2011-08-29 Johannes Kanig - - * frontend.adb (Frontend): Exit after creating Standard package when - -gnatd.H is present. - * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is - present. - -2011-08-29 Robert Dewar - - * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb, - makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl, - snames.ads-tmpl: Minor reformatting. - -2011-08-29 Philippe Gil - - * prj.adb (Reset_Units_In_Table): New procedure. - Reset units to avoid access to freed memory. - -2011-08-29 Thomas Quinot - - * get_scos.adb: When reading a P statement SCO without a pragma name - (from an older ALI file), ensure that the Pragma_Name component is set - to Unknown_Pragma (not left uninitialized). - -2011-08-29 Vincent Celier - - * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and - modified to compute correctly the object path of a SAL project that is - extending another library project. - (Write_Path_File): New procedure. - * makeutl.ads (Directories): New table moved from Buildgpr - (Get_Directories): New procedure moved from Buildgpr - (Write_Path_File): New procedure - * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the - paths before binding SALs, instead of Set_Ada_Paths. - * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package - Prj. - * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env - (Current_Source_Path_File_Of): New function - (Set_Current_Object_Path_File_Of): New procedure - (Current_Source_Object_File_Of): New function - (Set_Current_Object_Path_File_Of): New procedure - * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env - (Current_Source_Path_File_Of): New function - (Set_Current_Object_Path_File_Of): New procedure - (Current_Source_Object_File_Of): New function - (Set_Current_Object_Path_File_Of): New procedure - -2011-08-29 Ed Schonberg - - * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a - packed entity, use a bit-field assignment only if there is no change of - representation. - -2011-08-29 Thomas Quinot - - * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use - Is_RTU instead of using Chars comparisons. - -2011-08-29 Thomas Quinot - - * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a - temporary object if the actual is constrained, and the discriminants - read from the stream don't match. - -2011-08-29 Tristan Gingold - - * sem_attr.adb, exp_attr.adb: Add handling of - Attribute_System_Allocator_Alignment - * snames.ads-tmpl: Add Name_System_Allocator_Alignment and - Attribute_System_Allocator_Alignment. - * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment. - * gcc-interface/targtyps.c, gcc-interface/utils2.c, - gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to - get_target_system_allocator_alignment. - -2011-08-29 Arnaud Charlet - - * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update - dependencies. - -2011-08-29 Arnaud Charlet - - * exp_ch3.adb (In_Runtime): Fix typo. - -2011-08-29 Bob Duff - - * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification. - -2011-08-29 Ed Schonberg - - * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged - and a separate tag assignment is generated, ensure that the tag - assignment is analyzed. - -2011-08-29 Ed Schonberg - - * atree.ads, atree.adb (Copy_Separate_List): New function that applies - Copy_Separate_Tree to a list of nodes. Used to create disjoint copies - of statement lists that may contain local declarations. - * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to - duplicate the triggering statements needed for the expansion of this - construct, when the trigger is a dispatching call to a synchronized - primitive. - -2011-08-29 Arnaud Charlet - - * gnat_rm.texi: Add doc for 'Elab_Subp_Body. - * bindgen.adb: Add comments. - * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body - in CodePeer mode. - -2011-08-29 Robert Dewar - - * exp_attr.adb: Minor reformatting. - Minor code reorganization and commenting. - * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor - reformatting. - -2011-08-29 Thomas Quinot - - * get_scos.adb: Ignore chaining indicators not currently supported - by Ada. - -2011-08-29 Arnaud Charlet - - * system.ads: Minor editing. - -2011-08-29 Arnaud Charlet - - * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in - CodePeer mode. - * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of - Attribute_Elab_Subp_Body. - * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New. - * sem_util.adb: Update comments. - -2011-08-29 Thomas Quinot - - * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record - pragma name for each SCO statement corresponding to a pragma. - -2011-08-29 Arnaud Charlet - - * opt.ads: Minor editing. - -2011-08-29 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode - that only made sense for CodePeer mode. - -2011-08-29 Jose Ruiz - - * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag - which is no longer used. - * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the - handling of the 64-bit division check. - * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit - division available. - * system*.ads (Support_64_Bit_Divides): Remove this flag which is no - longer used. - -2011-08-29 Thomas Quinot - - * get_scos.adb: Minor reformatting. - -2011-08-29 Hristian Kirtchev - - * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a - statement list is wrapped in a block, the block is explicitly analyzed - in order to properly redecorate the entities and create a servicing - finalizer. - -2011-08-29 Tristan Gingold - - * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove. - (Set_Zero_Cost_Handling): Remove. - -2011-08-29 Thomas Quinot - - * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting - -2011-08-29 Geert Bosch - - * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation - instruction, as the latter may produce -0.0, which is not a valid VAX - F float number. - (Neg_G): Likewise for VAX F float. - -2011-08-29 Robert Dewar - - * exp_util.adb: Minor reformatting. - -2011-08-29 Yannick Moy - - * sem_ch3.adb: Minor comment update. - -2011-08-29 Thomas Quinot - - * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of - the operand type. - -2011-08-29 Thomas Quinot - - * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush - current statement sequence on a generic instantiation or a subprogram - declaration. - -2011-08-29 Robert Dewar - - * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb: - Minor reformatting. - -2011-08-29 Hristian Kirtchev - - * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)): - Correct the check which involves the freeze node of a controlled or - access-to-controlled type. - -2011-08-29 Geert Bosch - - * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm - statements. - * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from - Asm statements. - -2011-08-29 Yannick Moy - - * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration - for every index type and component type that is not a subtype_mark. - (Process_Subtype): Set Etype of subtype. - -2011-08-29 Robert Dewar - - * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code - reorganization. Minor reformatting. - -2011-08-29 Steve Baird - - * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion - for CodePeer and ALFA modes. - -2011-08-29 Ed Schonberg - - * sem_type.adb (Collect_Interps): Within an instance, collect a homonym - that comes from an enclosing scope if it is not the renaming of an - actual, to handle properly a spurious ambiguity in an instance. - -2011-08-29 Eric Botcazou - - * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to... - (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and - use it instead of the Esize of the first parameter. - (Analyze_Attribute_Definition_Clause) : Adjust call to - above change. - : Likewise. Call it for composite types on the RM size. - -2011-08-29 Yannick Moy - - * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array. - * sem_util.adb (Unique_Name): Correct behaviour for names of - compilation units. - -2011-08-29 Yannick Moy - - * sem_prag.adb (Check_Precondition_Postcondition): In formal - verification mode, analyze pragma expression for correctness, for - pre/post on library-level subprogram, as it is not expanded later. - -2011-08-29 Yannick Moy - - * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates - in formal verification. - -2011-08-29 Thomas Quinot - - * sem_util.adb: Minor reformatting. - * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute, - there's no pragma. - * par_sco.ads, par_sco.adb: Update comments. - -2011-08-29 Yannick Moy - - * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and - associated getter/setter. - * sem_ch6.adb: Remove reference to Is_Postcondition_Proc. - -2011-08-29 Vincent Celier - - * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind - * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler - with declarations for Language_Kind and Dependency_Kind for Ada. - * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name - (Process_Compiler): Take into account the new attributes Dependency_Kind - and Language_Kind. - (Check_Configuration): Check if language kind is unit based, not if the - language name is Ada. - (Process_Exceptions_Unit_Based): Ditto - (Add_Language): Remove default additions of language and dependency kind - * prj.ads: Minor comment change - * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind - -2011-08-29 Johannes Kanig - - * debug.adb: Update comments. - -2011-08-24 Joseph Myers - - * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o) - (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o) - (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New. - (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o) - (ada/initialize.o, ada/raise.o): Remove explicit compilation rules. - -2011-08-22 Rainer Orth - - * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New. - (GNATLIBCFLAGS_FOR_C): Replace - TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET. - (gnatlib-shared-default, gnatlib-shared-dual-win32) - (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared) - (gnatlib-sjlj, gnatlib-zcx): Likewise. - -2011-08-07 Eric Botcazou - - * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change. - - * gcc-interface/gigi.h (enumerate_modes): Fix formatting. - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change. - -2011-08-05 Nicolas Roche - - * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared - libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with - canadian cross. - * gcc-interface/Make-lang.in: Add support for canadian cross setting. - -2011-08-05 Matthew Heaney - - * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth): - subprogram bodies declared out-of-order. - -2011-08-05 Yannick Moy - - * sem_util.adb (Unique_Name): only prefix with "standard" the names of - entities directly in package Standard, otherwise skip the standard - prefix. - -2011-08-05 Robert Dewar - - * a-cbmutr.adb: Minor reformatting - (Allocate_Node): refactor node allocation algorithm - -2011-08-05 Robert Dewar - - * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch. - * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable - mode. - (Analyze_Pragma, case Check_Policy): Ditto. - * sem_prag.ads (Check_Disabled): New function - * snames.ads-tmpl: Add Name_Disable. - -2011-08-05 Robert Dewar - - * gnat_rm.texi: Document implementation-defined policy DISABLE for - pragmas Assertion_Policy, Check_Policy, Debug_Policy. - -2011-08-05 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma - that appears in a generic formal part and applies to a formal - subprogram. - -2011-08-05 Robert Dewar - - * a-cbmutr.ads: Minor reformatting. - -2011-08-05 Matthew Heaney - - * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid - to check count, check sign of value instead. - * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty - (Copy_Subtree): allocate copy of source element - (Equal_Subtree): compare elements, not access objects - -2011-08-05 Vincent Celier - - * gnat_ugn.texi: Fix VMS alternative. - -2011-08-05 Thomas Quinot - - * sem_ch11.adb: Add comment. - -2011-08-05 Robert Dewar - - * exp_util.adb: Minor comment fix. - -2011-08-05 Robert Dewar - - * scng.adb (Error_Unterminated_String): Improve flag position when - comma present. - -2011-08-05 Matthew Heaney - - * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway - tree containers). - * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded - multiway tree containers. - -2011-08-05 Robert Dewar - - * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2 - * stylesw.adb: Implement -gnatyC to control comment spacing - * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by - -gnatyc/C). - * usage.adb: Add line for -gnatyC. - -2011-08-05 Robert Dewar - - * gnat_ugn.texi: Document -gnatyC. - * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a - synonym for COMMENTS2). - -2011-08-05 Robert Dewar - - * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb, - a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb, - sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb, - a-comutr.ads, lib-xref.adb: Minor reformatting. - -2011-08-05 Robert Dewar - - * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal - warning if there is an exception handler present. - -2011-08-05 Pascal Obry - - * a-iteint.ads: Fix copyright year. - -2011-08-05 Thomas Quinot - - * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a - statement SCO for a USE clause or a representation clause. - -2011-08-05 Yannick Moy - - * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation - between body and spec for stub. - (Detect_And_Add_ALFA_Scope): take into account subprogram stub - * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a - pragma precondition or postcondition, for which the enclosing - subprogram or package in the AST is not the desired one, return empty. - -2011-08-05 Thomas Quinot - - * g-expect.adb: Minor reformatting. - -2011-08-05 Bob Duff - - * a-fihema.adb: Comment out OS_Lib. - -2011-08-05 Matthew Heaney - - * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb] - (unbounded multiway tree containers) and a-iteint.ads. - * a-comutr.ads, a-comutr.adb: - This is the new Ada 2012 unit for unbounded multiway tree containers - * a-cimutr.ads, a-cimutr.adb - This is the new Ada 2012 unit for indefinite multiway tree containers - * a-iteint.ads: New file. - -2011-08-05 Rainer Orth - - * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc. - -2011-08-05 Bob Duff - - * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for - subpools. - * par-ch4.adb (P_Allocator): Parse new subpool specification syntax. - -2011-08-05 Ed Schonberg - - * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the - general indexing aspects of Ada2012. Called when analyzing indexed - components when other interpretations fail. - * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only - in an expression context where overloading is meaningful. This excludes - the occurrence in an aspect specification (efficiency only). - * sem_attr.adb (Analyze_Attribute): indicate that the attributes - related to iterators can be set by an attribute specification, but - cannot be queried. - * sem_ch13.adb (Analyze_Aspect_Specifications): handle - Constant_Indexing and Variable_Indexing. - (Check_Indexing_Functions): New procedure to perform legality checks. - Additional semantic checks at end of declarations. - -2011-08-05 Sergey Rybin - - * tree_io.ads: Update ASIS_Version_Number because of the change of the - order of calling Tree_Write/Tree_Read routines made for aspects. - -2011-08-05 Bob Duff - - * a-fihema.adb (Finalize): Fix race condition. - -2011-08-05 Yannick Moy - - * sem_ch12.adb (Analyze_Package_Instantiation, - Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA - mode. - -2011-08-05 Ed Schonberg - - * sem_type.adb (Specific_Type): in an instance, the type-specific - operand of an equality check that involves null may have a private - type. Use full view to determine legality of construct. - -2011-08-05 Vincent Celier - - * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to - delete or close the file when the call to gnatmake was successful. - -2011-08-05 Yannick Moy - - * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set - Global_Discard_Names. - -2011-08-05 Ed Schonberg - - * sinfo.ads: comments on use of entity field for aspect specifications. - -2011-08-05 Ed Schonberg - - * sem_ch12.adb (Reset_Entity): If the entity field of the associated - node is not itself an entity but a selected component, it is a - rewritten parameterless call to an en enclosing synchronized operation, - and this expansion will be performed again in the instance, so there is - no global information to preserve. - -2011-08-05 Javier Miranda - - * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support - for renamings of predefined primitives. - (In_Predef_Prims_DT): New subprogram. - -2011-08-05 Ed Schonberg - - * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a - possible interpretation of name is a reference type, add an - interpretation that is the designated type of the reference - discriminant of that type. - * sem_res.adb (resolve): If the interpretation imposed by context is an - implicit dereference, rewrite the node as the deference of the - reference discriminant. - * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type, - Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from - parent type or base type. - * sem_ch4.adb (Process_Indexed_Component, - Process_Overloaded_Indexed_Component, Indicate_Name_And_Type, - Analyze_Overloaded_Selected_Component, Analyze_Selected_Component): - Check for implicit dereference. - (List_Operand_Interps): Indicate when an implicit dereference is - ambiguous. - * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference. - -2011-08-05 Thomas Quinot - - * scos.ads: Update documentation of SCO table. Pragma statements can now - be marked as disabled (using 'p' instead of 'P' as the statement kind). - * par_sco.ads, par_sco.adb: Implement the above change. - (Process_Decisions_Defer): Generate a P decision for the first parameter - of a dyadic pragma Debug. - * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if - necessary. - * put_scos.adb: Code simplification based on above change. - -2011-08-05 Robert Dewar - - * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb, - bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb, - a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads, - prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting - -2011-08-05 Bob Duff - - * a-stunau.ads, g-spipat.adb: Update comments. - -2011-08-05 Bob Duff - - * a-fihema.ads: Minor comment fix. - * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is - correct. - (Attach, Detach): Remove some unnecessary code. - (Finalize): Remove Node_Ptr_To_Address, replace with a constant. - -2011-08-05 Bob Duff - - * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap - allocation for Objects component. This simplifies the code somewhat. It - is also a little more efficient in the not-so-unusual case where there - are no controlled objects allocated. - Make Finalization_Started flag atomic. - (Finalize): Avoid unnecessary detachment of items from the list. - (pcol): Minor cleanup. - -2011-08-05 Ed Schonberg - - * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal - package whose name is the same as that of the generic unit, or its - ultimate prefix. - -2011-08-05 Bob Duff - - * a-fihema.adb, a-fihema.ads: Minor comment improvements. - * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb: - Minor comment fixes. - -2011-08-05 Arnaud Charlet - - * make.adb (Linking_Phase): No longer need to set source search path - before calling gnatlink in CodePeer mode. - * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to - gcc in CodePeer mode, since the binder generated file no longer has a - 'with Main'. - * switch.ads, switch.adb (Is_Language_Switch): Removed. - * switch-c.adb: Update comment. - -2011-08-05 Thomas Quinot - - * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting. - -2011-08-05 Nicolas Roche - - * gnat_ugn.texi: Fix minor syntax error issue. - -2011-08-05 Vincent Celier - - * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to - delete or close the file when the call to gnatmake returns a non - successful return code. - -2011-08-05 Ed Schonberg - - * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate - check, indicate that the copy of the original node does not come from - source, to prevent an infinite recursion of the expansion. - -2011-08-05 Johannes Kanig - - * debug.adb: document switch -gnatd.G for gnat2why, which deactivates - VC generation for subprogram bodies. - -2011-08-05 Yannick Moy - - * einfo.ads: Typo. - * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define - the base type with the smallest allowed base type. - -2011-08-05 Sergey Rybin - - * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for - aspects. - -2011-08-05 Ed Schonberg - - * sem_ch12.ads: minor comment updates. - -2011-08-05 Ed Schonberg - - * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an - instantiation and a formal package the compiler generates a package - renaming declaration so that the generic name within the declaration - is interpreted as a renaming of the instance. At the end of a formal - package declaration, this renaming must become invisible. - -2011-08-05 Hristian Kirtchev - - * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character - comparison and rely on concrete entities instead. - -2011-08-05 Ed Schonberg - - * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types - and discriminants, to indicate that the type has an access discriminant - that supports implicit dereference. - * snames.ads-tmpl: Add names of aspects and attributes related to - Ada2012 iterators: constant_indexing, default_iterator, - iterator_element, implicit_dereference, variable_indexing. - * aspects.ads, aspects.adb: entries for iterator-related aspects. - * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for - iterator-related aspects. - * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects. - -2011-08-05 Sergey Rybin - - * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling - metrics in gnatmetric to cover new kinds of coupling mentrics. - -2011-08-05 Steve Baird - - * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead - of calling the user-defined main subprogram. - (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode - is set) Call_Main_Subprogram ahead of, as opposed to - inside of, Main. - (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional - generation of a "with" of the user-defined main subprogram. - Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper - (which is now called from Gen_Main instead). - -2011-08-05 Emmanuel Briot - - * projects.texi: Added reference to the Makefile package. - -2011-08-05 Thomas Quinot - - * exp_ch7.adb: Minor comment rewording. - -2011-08-05 Ed Falis - - * env.c: Fix comment. - -2011-08-05 Hristian Kirtchev - - * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid - character comparison and rely on concrete entities instead. - -2011-08-05 Ed Schonberg - - * sem_ch3.adb: (Check_Private_Overriding): better error message, - suggested by AI95-0068. - -2011-08-05 Hristian Kirtchev - - * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve - the two potential initialization calls. This accounts for any - access-before-elaboration checks which may precede the initialization - calls. - (Next_Suitable_Statement): New routine. Returns the next real statement - after the input node while skipping generated checks. - * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along - with comment on usage. - Do not generate Elaborate_All when the trigger is a finalization call - coming from a type init proc. - (Check_Elab_Call): Propagate the initialization procedure context to - subsequent calls to Check_A_Call. - (Check_Internal_Call_Continue): Propagate the initialization procedure - context to subsequent calls to Check_Elab_Call. - (Is_Finalization_Procedure): New routine. Returns True if the input - entity denotes a [Deep_]Finalize routine. - * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc - along with comment on usage. - -2011-08-05 Vadim Godunko - - * s-atocou.ads: Add list of supported platforms. - -2011-08-05 Yannick Moy - - * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables - - * opt.ads (Disable_ALI_File): new Boolean flag - * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing - -2011-08-05 Ed Falis - - * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that - environ is properly defined. - -2011-08-05 Vincent Celier - - * make.adb (Compilation_Phase): Exit immediately when all objects have - been found up to date, to avoid multiple exit messages. - * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the - same project for languages with no compiler. - * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch - -eI. -2011-08-05 Robert Dewar - - * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb, - sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb, - prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb, - s-atocou-builtin.adb: Minor reformatting. - -2011-08-05 Yannick Moy - - * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode, - if the node to wrap is a pragma check, this node and enclosed - expression are not expanded, so do not apply any transformations here. - * exp_prag.adb (Expand_Pragma_Check): document the need to avoid - introducing transient scopes. - -2011-08-05 Jose Ruiz - - * adaint.c (__gnat_set_writable, __gnat_set_readable, - __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable, - __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod - routine is available, so we use the default implementation of these - functions. - * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is - support for copying attributes on VxWorks 6. - -2011-08-05 Yannick Moy - - * debug.adb: Remove use of -gnatd.D. - * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode - * opt.ads: Simplify variables for ALFA mode, to keep one only - * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode - to ALFA mode. - -2011-08-05 Vincent Celier - - * prj-conf.adb (Do_Autoconf): Look also for --RTS in - Builder'Default_Switches. - -2011-08-05 Vincent Celier - - * makeusg.adb: Add lines for --create-map-file switches. - -2011-08-05 Ed Schonberg - - * freeze.adb (Freeze_Entity): For a subprogram, if a type in the - profile is incomplete and the full view is available, replace it with - the full view. - * sem_ch6.adb (Possible_Freeze): if a type in the profile is - incomplete, freezing the subprogram is delayed until the full view is - frozen. - * sem_type.adb (Disambiguate): an ambiguity between a user-defined - fixed-point multiplication operator and the predefined operator is - resolved in favor of the user-defined one. - -2011-08-05 Rainer Orth - - * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use - CONST_CAST. - -2011-08-04 Ed Schonberg - - * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine - whether a type lacks user-defined Read or Write operations, or has a - component that lacks them. - * sem_attr.adb (Check_Stream_Attribute): if restriction - No_Default_Stream_Attributes is active, verify that all subcomponent - types of the target have user-defined stream operations, and report - error otherwise. - * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation. - * exp_strm.adb: Build_Elementary_Input_Call, - Build_Elementary_Write_Call): remove checks for restriction - No_Default_Stream_Attributes, now checked in semantics. - -2011-08-04 Vincent Celier - - * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS - switches on the command line, look for all valid --RTS switches in the - Builder switches and for each language use the first runtime name found - to invoke gprconfig. - (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the - command line and there is no auto-configuration. - (Runtime_Name_Set_For): New function. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Build_Object_Declarations): Do not generate the - elaborate initialization expression for variable Abort when processing - a package body or a declaration. - (Create_Finalizer): Propagate the package context when creating the - exception-related variables. - * exp_ch7.ads (Build_Object_Declarations): New formal parameter - For_Package along with usage comment. - -2011-08-04 Arnaud Charlet - - * gcc-interface/Makefile.in: Clean up targets. - Enable new package for atomic counters and copy-on-write implementation - of unbounded strings on x86 platforms. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-04 Robert Dewar - - * exp_ch7.adb: Minor reformatting. - -2011-08-04 Robert Dewar - - * exp_strm.adb: Minor reformatting. - -2011-08-04 Vadim Godunko - - * s-atocou.adb: Replace by dummy version and use on targets where atomic - operations are not supported. - * s-atocou-builtin.adb: Renamed from s-atocou.adb. - * s-atocou-x86.adb: New file. - * Makefile.rtl: Add s-atocou.o file - -2011-08-04 Arnaud Charlet - - * make.adb (Compile): Move setting of CodePeer_Mode to ... - (Compilation_Phase): ... here. - (Scan_Make_Arg): Now bind and link by default in CodePeer mode. - -2011-08-04 Thomas Quinot - - * Make-generated.in: Fix minor typo in comment. - -2011-08-04 Thomas Quinot - - * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve - the project path. - -2011-08-04 Robert Dewar - - * a-coinho.adb: Minor reformatting. - -2011-08-04 Robert Dewar - - * a-coinho.ads: Minor reformatting. - -2011-08-04 Vadim Godunko - - * s-atocou.ads, s-atocou.adb: New files. - * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads, - a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove - direct use of GCC's atomic builtins and replace them by use of new - atomic counter package. - -2011-08-04 Ed Schonberg - - * exp_strm.adb: better error message for No_Default_Stream_Attributes. - -2011-08-04 Hristian Kirtchev - - * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic - with a call to Get_External_Tag. - * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on - subprogram usage. Remove the guard against package declarations and - bodies since Build_Cleanup_Statements is no longer invoked in that - context. - (Build_Components): Initialize Tagged_Type_Stmts when the context - contains at least one library-level tagged type. - (Build_Finalizer): New local variables Has_Tagged_Types and - Tagged_Type_Stmts along with associated comments on usage. Update the - logic to include tagged type processing. - (Create_Finalizer): Insert all library-level tagged type unregistration - code before the jump block circuitry. - (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements. - (Expand_N_Package_Declaration): Remove the call to - Build_Cleanup_Statements. - (Process_Tagged_Type_Declaration): New routine. Generate a call to - unregister the external tag of a tagged type. - (Processing_Actions): Reimplemented to handle tagged types. - (Process_Declarations): Detect the declaration of a library-level - tagged type and carry out the appropriate actions. - (Unregister_Tagged_Types): Removed. The machinery has been directly - merged with Build_Finalizer. - -2011-08-04 Robert Dewar - - * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb, - gnatls.adb, exp_ch3.adb: Minor reformatting. - -2011-08-04 Marc Sango - - * sem_attr.adb (Analyze_Attribute): Replace the message - "invisible attribute of}" of the spark restriction violation in - attribute reference by the simple message "invisible attribute of type". - Indeed, the node value Error_Msg_Node_1 used is in conflit with the - two insertion characters: '&' and '}'. - -2011-08-04 Vadim Godunko - - * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho". - * a-coinho.ads, a-coinho.adb: New file. - * Makefile.rtl: Add Ada.Containers.Indefinite_Holders. - -2011-08-04 Nicolas Roche - - * alfa_test.adb: Not all ali files are containing alfa information even - if compiled with -gnatd.F. So suppress warning about missing ALFA - information. - -2011-08-04 Yannick Moy - - * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for - scope. - * put_alfa.adb: Check that scope name is not empty. - -2011-08-04 Ed Schonberg - - * exp_ch3.adb (Stream_Operation_Ok): new predicate - Needs_Elementary_Stream_Operation, to determine whether user-defined - Read and Write attributes are available for the elementary components - of the given type. If only the predefined attributes are available, - then when restriction No_Default_Stream_Attributes is active the - predefined stream attributes for the composite type cannot be created. - -2011-08-04 Robert Dewar - - * bindgen.adb: Fix obsolete comments and names from Ada/C days. - Put routines in alpha order - -2011-08-04 Jose Ruiz - - * gcc-interface/Makefile.in: Remove xenomai specific versions of system. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-04 Arnaud Charlet - - * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada. - * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls - gnat1why). - -2011-08-04 Robert Dewar - - * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb, - lib-xref-alfa.adb: Minor reformatting. - -2011-08-04 Marc Sango - - * sem_ch12.adb (Analyze_Generic_Package_Declaration, - Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation, - Analyze_Subprogram_Instantiation): Check absence of generic in SPARK - mode. - -2011-08-04 Tristan Gingold - - * bindgen.adb (Gen_Adainit_C): Remove. - (Gen_Adafinal_C): Ditto. - (Gen_Elab_Externals_C): Ditto. - (Gen_Elab_Calls_C): Ditto. - (Gen_Elab_Order_C): Ditto. - (Gen_Elab_Defs_C): Ditto. - (Gen_Finalize_Library_C): Ditto. - (Gen_Finalize_Library_Defs_C): Ditto. - (Gen_Main_C): Ditto. - (Gen_Output_File_C): Ditto. - (Gen_Restrictions_C): Ditto. - (Gen_Versions_C): Ditto. - (Write_Info_Ada_C): Ditto. - (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C - (Gen_Output_File): Do not force Ada_Bind_File anymore. - Always call Gen_Output_File_Ada. - * gnatlink.adb (Begin_Info): Now a constant. - (End_Info): Ditto. - (Ada_Bind_File): Remove - (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases. - * switch-b.adb (Scan_Binder_Switches): Do not handle -C. - * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases. - * opt.ads (Ada_Bind_File): Remove. - -2011-08-04 Thomas Quinot - - * projects.texi: Document target-specific directory in default project - path for gnatmake. - -2011-08-04 Thomas Quinot - - * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project - path in all cases . - -2011-08-04 Yannick Moy - - * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb, - opt.ads, lib-xref.ads: Code clean up. - -2011-08-04 Yannick Moy - - * gnat_rm.texi: Update description of Test_Case - * gnat_ugn.texi: Typo. - -2011-08-04 Ed Falis - - * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin. - -2011-08-04 Hristian Kirtchev - - * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when - it is of type Root_Controlled. This action eliminates fields Prev and - Next from type equality. - -2011-08-04 Yannick Moy - - * lib-xref-alfa.adb: Correct typo. - -2011-08-04 Matthew Heaney - - * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes - component. - -2011-08-04 Yannick Moy - - * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure - (Analyze_Pragma): allow static string expression for name of Test_Case, - instead of simply string literals. - * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string - expressions. - -2011-08-04 Vincent Celier - - * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical - case suffixes to find truncated main sources. - -2011-08-04 Tristan Gingold - - * impunit.adb (Non_Imp_File_Names_95): Add g-tastus. - s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put. - (Compute_Current_Task): Ditto. - -2011-08-04 Tristan Gingold - - * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage. - -2011-08-04 Yannick Moy - - * lib-xref-alfa.adb (Is_Global_Constant): new function that detects - library-level constant. - (Add_ALFA_Xrefs): ignore global constants in ALFA xref. - * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal - used as selector of parameter association, in ALFA mode. - -2011-08-04 Robert Dewar - - * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb, - s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor - reformatting. - -2011-08-04 Arnaud Charlet - - * make.adb (Linking_Phase): Set source search path before calling - gnatlink in CodePeer mode. - -2011-08-04 Javier Miranda - - * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration): - Remove code which takes care of building TSDs. - * rtsfind.ads (RE_Check_Interface_Conversion): New entity. - * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating - the accessibility check in VM targets. - * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads - (Building_Static_DT): Now returns false for VM targets. - (Build_VM_TSDs): Removed. - (Expand_Interface_Conversion): Generate missing runtime check for - conversions to interface types whose target type is unknown at compile - time. - (Make_VM_TSD): Add missing code to disable the generation of calls to - Check_TSD if the tagged type is not defined at library level, or not - has a representation clause specifying its external tag, or -gnatdQ is - active. - * exp_disp.ads (Build_VM_TSDs): Removed. - (Make_VM_TSDs): Spec relocated from exp_disp.adb - * sem_disp.adb (Check_Dispatching_Operation): No code required to - register primitives in the dispatch tables in VM targets. - * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of - initialization of class-wide interface objects in VM targets. - (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead - of Make_DT). - -2011-08-04 Jerome Lambourg - - * gnatlink.adb (Gnatlink): Correct missleading error message displayed - when dotnet-ld cannot be found. - -2011-08-04 Arnaud Charlet - - * bindgen.adb: Simplify significantly generation of binder body file in - CodePeer mode. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure - when compiling binder generated file in CodePeer mode (xxx'Elab_Spec - not expanded). - -2011-08-04 Yannick Moy - - * sem_prag.adb, sem.ads: Code cleanup. - -2011-08-04 Tristan Gingold - - * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part. - * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate - results if possible. - * s-stusta.adb (Print): Adjust after changes in s-stausa. - * gnat_ugn.texi: Update dynamic stack usage section. - -2011-08-04 Steve Baird - - * bindgen.adb (Gen_CodePeer_Wrapper): new procedure. - Generate (if CodePeer_Mode is set) a "wrapper" subprogram which - contains only a call to the user-defined main subprogram. - (Gen_Main_Ada) - If CodePeer_Mode is set, then - call the "wrapper" subprogram instead of directly - calling the user-defined main subprogram. - -2011-08-04 Hristian Kirtchev - - * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all - alternatives of a case statement for controlled objects. Rename local - variable A to Dead_Alt. - (Expand_N_If_Statement): Check the then and else statements of an if - statement for controlled objects. Check the then statements of all - elsif parts of an if statement for controlled objects. - (Expand_N_Loop_Statement): Check the statements of a loop for controlled - objects. - * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which - detects a loop associated with the expansion of an array object. - Augment the processing of the loop statements to account for a possible - wrap done by Process_Statements_For_Controlled_Objects. - * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering - statements and abortable part of an asynchronous select for controlled - objects. - (Expand_N_Conditional_Entry_Call): Check the else statements of a - conditional entry call for controlled objects. - (Expand_N_Selective_Accept): Check the alternatives of a selective - accept for controlled objects. - (Expand_N_Timed_Entry_Call): Check the entry call and delay - alternatives of a timed entry call for controlled objects. - * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an - exception handler for controlled objects. - * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)): - Add formal parameter Nested_Constructs along with its associated - comment. - (Requires_Cleanup_Actions (Node_Id)): Update all calls to - Requires_Cleanup_Actions. - (Process_Statements_For_Controlled_Objects): New routine. - * exp_util.ads (Process_Statements_For_Controlled_Objects): New - routine. Inspect a node which contains a non-handled sequence of - statements for controlled objects. If such an object is found, the - statements are wrapped in a block. - -2011-08-04 Bob Duff - - * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we - need to compare with Class_Wide_Type (T2), in order to get at the - original class-wide type node. - * sem_type.ads (Covers): Improve the comment. - * einfo.ads (Class_Wide_Type): Improve the comment. - * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of - the type of the Deref. - -2011-08-04 Yannick Moy - - * gnat_rm.texi: Document that Test_Case pragma can only appear on - separate declarations. - * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to - check identifier of pragma argument. - (Chain_TC): check that no other test case associated to the same entity - share the same name. - (Check_Test_Case): disallow test case inside subprogram body - (Analyze_Pragma): correct call to check identifier and not argument - * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new - function gets name from test case pragma. - -2011-08-04 Yannick Moy - - * gnat_rm.texi: Document new pragma and aspect. - * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case - (No_Duplicates_Allowed): new constant array defining whether duplicates - aspects of each kind can appear on the same declaration. - * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract - field, which points to a node holding the previous Spec_PPC_List. - * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List - through the indirection with Contract. - * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node - * par-prag.adb (Prag): do nothing on Test_Case pragma - * sem.adb (Analyze): abort on N_Contract, on which Analyze should not - be called directly. - * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in - component Ensures of Test_Case. - * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb - (Analyze_Generic_Subprogram_Declaration, - Analyze_Subprogram_Instantiation, - Analyze_Abstract_Subprogram_Declaration, - Analyze_Subprogram_Body_Helper, - Analyze_Subprogram_Specification, Analyze_Entry_Declaration): - insert contract in subprogram node at point of definition - * sem_ch13.adb - (Aspect_Loop): do not raise error on duplicate Test_Case aspect - (Analyze_Aspect_Specifications): analyze Test_Case aspect and create - corresponding pragma - (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect - * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases, - similar to the analysis of pre/post - (Derive_Subprogram): insert contract in subprogram node at point of - derivation. - * sem_prag.adb, sem_prag.ads - (Check_Arg_Is_String_Literal, Check_Identifier): - new checking procedures to be called in treatment of pragmas - (Check_Test_Case): new procedure to check that a Test_Case aspect or - pragma is well-formed. This does not check currently that 'Result is - used only in the Ensures component of a Test_Case. - (Analyze_Pragma): add case for Test_Case - (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures - components of a Test_Case. - (Preanalyze_TC_Args): new procedure to preanalyze the boolean - expressions in the 3rd (and 4th if present) arguments of a Test_Case - pragma, treated as spec expressions. - (Sig_Flags): add value -1 for Test_Case. - * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma, - Get_Requires_From_Test_Case_Pragma): getters for both expression - components of a Test_Case. - * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as - indirection between an entry or [generic] subprogram entity and its - pre/post + test-cases. - (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List): - get/set for fields of an N_Contract node. - * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode, - Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new - names and pragma for Test_Case. - * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node - -2011-08-04 Vincent Celier - - * gnat_ugn.texi: Improve documentation of gnatmake switch - --source-info-file=. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion - type). Initialize Atyp to the appropriate type which is later checked - for completion. Rewrite the assertion associated with private type - completion. - -2011-08-04 Ed Falis - - * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to - initialize the number of CPUs. - -2011-08-04 Ed Schonberg - - * sem_type.adb (Disambiguate): New subsidiary routine - In_Same_Declaration_List, to implement AI05-0020: a user-defined - equality on an anonymous access type whose designated type is private - does not lead to an ambiguity with the universal access equality - operator in the body or child units of the defining package. The same - is true for a multiplication operator on a private type completed with - a fixed-point-type. - -2011-08-04 Javier Miranda - - * opt.ads (Init_Or_Norm_Scalars_Config): Removed. - (Normalize_Scalars_Config): Removed. - * opt.adb - (Register_Opt_Config_Switches): Remove registering config values of - Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config. - (Restore_Opt_Config_Switches): Remove code which restores the values of - Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of - Init_Or_Norm_Scalars. - (Save_Opt_Config_Switches): Remove code which saves values of - Init_Or_Norm_Scalars and Normalize_Scalars. - (Set_Opt_Config_Switches): Remove code which restores config values of - Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of - Init_Or_Norm_Scalars. - -2011-08-04 Yannick Moy - - * frontend.adb (Frontend): remove previous patch to avoid full - qualification in ALFA mode. - * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables. - * sem_util.adb, sem_util.ads (Unique_Name): new function to define a - unique name for an entity, which could be used to identify the entity - across compilation units. - -2011-08-04 Thomas Quinot - - * prj-env.adb - (Initialize_Default_Project_Path): Add target specific directory - ($prefix/$target/lib/gnat) in front of project path in all cases - (making gnatmake's behaviour consistent with gprbuild). - * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: - Pass target name from Sdefault to project subsystem. - * gnatls.adb: Show new target specific default project directory. - -2011-08-04 Johannes Kanig - - * cstand.adb: Add Information to Identifier in Standard - (Identifer_For): Set Entity to the corresponding entity - -2011-08-04 Sergey Rybin - - * gnat_ugn.texi: Update doc on gnatcheck. - -2011-08-04 Yannick Moy - - * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of - xrefs in a scope. - -2011-08-04 Yannick Moy - - * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without - performing expansion. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper, - Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that - it is not called in ALFA mode. - -2011-08-04 Emmanuel Briot - - * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used - after all, so removed. - -2011-08-04 Sergey Rybin - - * vms_data.ads: Add missing VMS qualifiers. - -2011-08-04 Emmanuel Briot - - * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild - the list of files on the command line after processing it through - Complete_Mains. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Build_Raise_Statement): Remove the specialized - processing for .NET/JVM. These targets can now benefit from - Raise_From_Controlled_Operation and they share the same processing with - standard targets. - (Establish_Transient_Scope): Remove the restriction for .NET/JVM. - These targets need transient scopes in order to properly finalize short - lived controlled objects. - (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for - NET/JVM. These targets can now benefit from - Raise_From_Controlled_Operation and they share the same processing with - standard targets. - -2011-08-04 Geert Bosch - - * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack - -2011-08-04 Ed Schonberg - - * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to - Expand_Record_Aggregate, to determine whether aggregate must be - expanded into assignments. This is the case if the ancestor part is - private, regarless of the setting of the flag Has_Private_Ancestor. - -2011-08-04 Ed Falis - - * vxaddr2line.adb: Add support for e500v2 and for Linux hosts - -2011-08-04 Bob Duff - - * sinfo.ads: Fix comment. - -2011-08-04 Steve Baird - - * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then - choose a package name in much the same way as is - done for JGNAT when VM_Target /= No_VM, except that - a slightly more distinctive prefix string is used. - -2011-08-04 Emmanuel Briot - - * makeutl.adb (Complete_Mains): no longer accept unit names on the - gnatmake command line. - This behavior was never documented (and was supported only because of - an early bug in the code). This case might lead to ambiguous cases - (between unit names and truncated base names without suffixes). - -2011-08-04 Hristian Kirtchev - - * a-tags.ads, a-tags.adb (Unregister_Tag): New routine. - Remove the external tag of a tagged type from the internal hash table. - * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the - expanded usage of the routine. Strenghten the check for Is_Master. Add - processing for tagged types. - (Build_Finalizer): Create all the necessary lists used in finalizer - creation when the processed context is a package that may contain - tagged types. - (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to - Requires_Cleanup_Actions. - (Expand_N_Package_Body): Package bodies may need clean up code - depending on whether they contain tagged types. - (Expand_N_Package_Declaration): Package declarations may need clean up - code depending on whether they contain tagged types. - (Unregister_Tagged_Types): New routine. Search through a list of - declarations or statements, looking for non-abstract Ada tagged types. - For each such type, generate code to unregister the external tag. - * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to - Requires_Cleanup_Actions. - (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search - through a list of declarations or statements looking for non-abstract - Ada tagged types or controlled objects. - * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to - Requires_Cleanup_Actions. - (Has_Controlled_Objects (List_Id, Boolean)): Removed. - * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and - RE_Unit_Table. - -2011-08-04 Vincent Celier - - * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj - has Ada sources, not project Project, because if the root project - Project has no sources of its own, all projects will be deemed without - sources. - -2011-08-04 Gary Dismukes - - * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration - of the No_Param_Proc acc-to-subp type used for initialization of - __gnat_finalize_library_objects so that it's declared at library level - rather than nested inside of the adainit routine. - -2011-08-04 Javier Miranda - - * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY - if the tagged type has a representation clause which specifies its - external tag. - -2011-08-04 Ed Schonberg - - * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types. - Remove previous procedure with that name. - * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor - when appropriate. - * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a - subtype mark, the ancestor cannot have unknown discriminants. - (Resolve_Record_Aggregate): if the type has invisible components - because of a private ancestor, the aggregate is illegal. - -2011-08-04 Vincent Celier - - * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into - account switches -gnat2005, -gnat12 and -gnat2012. - -2011-08-04 Bob Duff - - * s-tasdeb.ads: Minor comment fix. - -2011-08-04 Arnaud Charlet - - * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in - CodePeer mode. - * switch.ads, switch.adb (Is_Language_Switch): New function. - -2011-08-04 Vincent Celier - - * switch-c.adb: Minor comment addition. - -2011-08-04 Vincent Celier - - * vms_conv.adb (Process_Argument): Fail graciously when qualifier - ending with '=' is followed by a space (missing file name). - -2011-08-04 Pascal Obry - - * g-regist.ads: Fix size of HKEY on x86_64-windows. - -2011-08-04 Ed Schonberg - - * sem_ch12.adb (Analyze_Associations): New routine - Check_Overloaded_Formal_Subprogram to reject a formal package when - there is a named association or a box initialisation for an overloaded - formal subprogram of the corresponding generic. - -2011-08-04 Yannick Moy - - * alfa.ads (ALFA_Xref_Record): add component for type of entity - * get_alfa.adb, put_alfa.adb: Read and write new component of - cross-reference. - * lib-xref-alfa.adb (Collect_ALFA): generate new component. - -2011-08-04 Pascal Obry - - * urealp.adb: Minor reformatting. - -2011-08-04 Tristan Gingold - - * exp_ch7.adb (build_finalizer.process_declarations.processing_actions): - Handle the case when Cleanup_Protected_Object returns Empty. - -2011-08-04 Yannick Moy - - * frontend.adb (Frontend): only qualify names in non-ALFA mode - -2011-08-04 Ed Schonberg - - * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure - call, ignore functions. - -2011-08-04 Geert Bosch - - * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating - point. - -2011-08-04 Emmanuel Briot - - * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name - as an index for Builder'Switches. This conforms to the documentation. - * make.adb (Insert_Project_Sources): avoid duplicate code - -2011-08-04 Emmanuel Briot - - * makeutl.adb (Complete_Mains): if the user has passed a relative file - name on the command line (for instance "../dummy"), never assume it can - be a unit name. - -2011-08-04 Tristan Gingold - - * bindgen.adb: Remove code the reference or create the - Break_Start/__gnat_break_start procedure. - * s-stalib.adb (Break_Start): Removed. - -2011-08-04 Emmanuel Briot - - * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now - shared with gprbuild. - -2011-08-04 Yannick Moy - - * par-ch4.adb (P_Primary): preferentially issue an error message about - a missing parenthesis arount a conditional or case expression in Ada - 2012 mode, if we detect that the alignment is not correct for a - statement. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Process_Declarations): Do not consider the result of a - tag-to-class-wide conversion as needing finalization actions. - * exp_util.adb (Has_Controlled_Objects): Do not consider the result of - a tag-to-class-wide conversion as needing finalization actions. - (Is_Finalizable_Transient): The result of a tag-to-class-wide - conversion does not need finalization actions. - (Is_Tag_To_CW_Conversion): New routine. - * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines - whether an object is the result of a tag-to-class-wide conversion. - -2011-08-04 Yannick Moy - - * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which - the left-hand-side and right-hand-side of a conjunct are inserted when - translating a pre- or postcondition - * sem_ch6.adb: Correct typo in comment - -2011-08-04 Ed Schonberg - - * gnat_rm.texi: Ravenscar does not prohibit dependence on - Unchecked_Conversion and Unchecked_Deallocation. - -2011-08-04 Thomas Quinot - - * make.adb: Minor reformatting. - -2011-08-04 Emmanuel Briot - - * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the - sources in the project and its imported projects, but not in the whole - tree. - -2011-08-04 Emmanuel Briot - - * make.adb: Remove debug trace. - -2011-08-04 Vincent Celier - - * makeutl.adb (Do_Complete): Get the absolute path name of a relative - path in canonical form, to be able to compare path names on platforms - such as Windows or Darwin. - -2011-08-04 Thomas Quinot - - * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry): - For a pragma (statement with C1 = 'P'), record the sloc of the pragma. - * scos.ads: Update documentation accordingly. - * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled - pragmas. - -2011-08-04 Ed Schonberg - - * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of - attribute only if prefix type is scalar. - -2011-08-04 Emmanuel Briot - - * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support - in gnatmake for specifying mains on the command line that do not belong - to the main project. These mains must currently all belong to the same - project, though. - (Ultimate_Extension_Of): removed, since duplicated - Ultimate_Extending_Project. - -2011-08-04 Arnaud Charlet - - * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode - instead. - (CodePeer_Mode_String): New. - (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in - CodePeer mode. - (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode. - * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer - mode, since no useful elaboration subprogram is needed by CodePeer. - * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode). - In this mode, compile binder file with -gnatC and do stop after this - step. - -2011-08-04 Vincent Celier - - * exp_ch7.adb: Minor comment fix. - -2011-08-04 Robert Dewar - - * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb, - exp_ch4.adb, makeutl.adb: Minor reformatting. - -2011-08-04 Emmanuel Briot - - * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring. - Create several new subprograms to move code out of Make. This makes the - code more readable, removes code duplication, and is a preparation work - for adding support for aggregate projects. - -2011-08-04 Tristan Gingold - - * s-po32gl.ads, s-po32gl.adb: New files. - * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function. - * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function. - (Build_Finalization_Collection): Use it. - * exp_ch4.adb (Complete_Controlled_Allocation): Ditto. - * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New - literals. - * gcc-interface/Makefile.in: Use s-po32gl.o on VMS. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-04 Emmanuel Briot - - * makeutl.adb (Complete_Mains): add support for specs with no suffix on - the command line. - -2011-08-04 Emmanuel Briot - - * make.adb, makeutl.adb (Complete_Mains): if a main specified on the - command line is not a file name, also check whether it could be a unit - name. - -2011-08-04 Eric Botcazou - - * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate - the header of the finalization routine. - If the unit has no finalizer but is a body whose spec has one, then - generate the decrement of the elaboration entity only. - If the unit has a finalizer and is a spec, then do not generate the - decrement of the elaboration entity. - (Gen_Finalize_Library_C): Likewise. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Alignment_Of): New subsidiary routine. - (Bounds_Size_Expression): Removed. - (Double_Alignment_Of): New subsidiary routine. - (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account - for a hole in the dope vector of unconstrained arrays due to different - index and element alignments. - -2011-08-04 Ed Schonberg - - * sem_res.adb (Resolve_Allocator): diagnose task allocator that will - raise program_error because body has not been seen yet. - -2011-08-04 Ed Schonberg - - * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with - an unresolved name. - -2011-08-04 Vincent Celier - - * makeutl.adb (Do_Complete): Check absolute paths in canonical forms - -2011-08-04 Yannick Moy - - * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here - * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here - -2011-08-04 Thomas Quinot - - * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for - instantiation in RCI. - -2011-08-04 Emmanuel Briot - - * make.adb: Share more code with gprbuild - -2011-08-04 Emmanuel Briot - - * projects.texi: Added documentation for the IDE'Gnat project file - attribute. - -2011-08-04 Nicolas Roche - - * gnat_rm.texi: Minor editing. - -2011-08-04 Javier Miranda - - * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case - and the library case for VM targets. - (Gen_Adainit_Ada): Likewise. - -2011-08-04 Robert Dewar - - * g-altive.ads: Minor comment updates. - * prj-nmsc.adb: Minor reformatting. - -2011-08-04 Javier Miranda - - * opt.ads - (Normalize_Scalars_Config): Value of the configuration switch set by - pragma Normalize_Scalars when it appears in the gnat.adc file. - (Normalize_Scalars): New field for record Config_Switches_Type. Used - to save and restore settings of this pragma. - * opt.adb - (Register_Opt_Config_Switches, Save_Opt_Config_Switches, - Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars. - -2011-08-04 Vincent Celier - - * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile - -2011-08-04 Arnaud Charlet - - * makeutl.adb: Minor reformatting. - -2011-08-04 Olivier Hainque - - * g-altive.ads: Update comments to reflect that only the soft - binding is available today. - -2011-08-04 Robert Dewar - - * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb, - makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-04 Arnaud Charlet - - * prj-env.adb: Remove local debug traces. - -2011-08-04 Yannick Moy - - * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK - was used instead of Hi_OK, which could cause a read of an uninitialized - value later on. Detected while working on the new warning. - * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment - to local variable. - * sem_ch5.adb (Analyze_Assignment): set the last assignment component - in more cases, in order to detect more unreferenced values. - * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing - object for expression, if any. - -2011-08-04 Eric Botcazou - - * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of - the operand types instead of the Esize. - -2011-08-04 Steve Baird - - * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to - enable CodePeer_Mode. - * bindusg.adb (Display): Add help message describing -P binder switch. - * gnat_ugn.texi: Document -P binder switch. - * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the - user-defined main program directly. - (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the - user-defined main program in the context clause of the package body. - -2011-08-04 Yannick Moy - - * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial - duplicate of Defining_Entity - (Get_Unique_Entity_For_Decl): rename function into - Unique_Defining_Entity - * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags - (Formal_Proof_On): remove synthesized flag - * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, - sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb, - sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA - * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma - Annotate (Formal_Proof) - -2011-08-04 Emmanuel Briot - - * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit - source files with non-standard naming schemes, in imported projects - -2011-08-04 Emmanuel Briot - - * makeutl.adb (Complete_Mains): when a multi-unit source file is - specified on the gprbuild command line, we need to compile all units - within that file, not just the first one we find - Fix error message for mains that are not found. - -2011-08-04 Thomas Quinot - - * sem_ch6.adb: Update comment. - * sem_ch12.adb: Minor reformatting. - -2011-08-04 Bob Duff - - * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading - Acceptor.Terminate_Alternative without locking Acceptor, which causes a - race condition whose symptom is to fail to lock Parent. That, in turn, - causes Parent.Awake_Count to be accessed without locking Parent, which - causes another race condition whose symptom is that Parent.Awake_Count - can be off by 1 (either too high or too low). The solution is to lock - Parent unconditionally, and then lock Acceptor, before reading - Acceptor.Terminate_Alternative. - -2011-08-04 Arnaud Charlet - - * debug.adb: Update comment. - -2011-08-04 Robert Dewar - - * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb, - sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads, - exp_ch6.adb: Minor reformatting. - -2011-08-04 Gary Dismukes - - * gnat_ugn.texi: Add sentence about the case of compile-time-detected - checks for -gnateE. - -2011-08-04 Ed Schonberg - - * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM. - -2011-08-04 Thomas Quinot - - * sinfo.ads: Minor reformatting. - -2011-08-04 Emmanuel Briot - - * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error - even if there is no location. - -2011-08-04 Ed Schonberg - - * sem_res.adb, sem_ch4.adb: move check for restriction - No_Task_Hierarchy to resolve_allocator. - -2011-08-04 Thomas Quinot - - * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled): - This flag of N_Pragma nodes is not used, remove it as well as all of - the associated circuitry. - -2011-08-04 Javier Miranda - - * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the - runtime check on duplicated externa tags - * debug.adb Document switch -gnatdQ. - -2011-08-04 Gary Dismukes - - * a-fihema.ads: Minor typo fix. - -2011-08-04 Yannick Moy - - * sem_ch10.adb: Minor comment update. - -2011-08-04 Hristian Kirtchev - - * einfo.adb: Update the node field usage to reflect the renaming of - Return_Flag to Return_ Flag_Or_Transient_Decl. - (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. - (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. - (Write_Field15_Name): Change Return_Flag to - Return_Flag_Or_Transient_Decl. - * einfo.ads: Rename node field Return_Flag to - Return_Flag_Or_Transient_Decl. Update the associated comment and all - occurrences in entities. - (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update - associated Inline pragma. - (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update - associated Inline pragma. - * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New - routine. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to - Return_Flag and Set_Return_Flag. - * exp_ch7.adb (Process_Declarations): Add code to recognize hook - objects generated for controlled transients declared inside an - Exception_With_Actions. Update the calls to Return_Flag. - (Process_Object_Declaration): Add code to add a null guard for hook - objects generated for controlled transients declared inside an - Exception_With_Actions. Update related comment. - * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook - objects generated for controlled transients declared inside an - Exception_With_Actions. Update the calls to Return_Flag. - * expander.adb (Expand): Add new case for N_Expression_With_Actions. - -2011-08-04 Ed Schonberg - - * sem_util.adb:(Wrong_Type): Improve error message on a one-element - positional aggregate. - -2011-08-04 Vincent Celier - - * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma - SLOC only for pragmas. - -2011-08-04 Emmanuel Briot - - * projects.texi: Minor typo fix. - -2011-08-04 Emmanuel Briot - - * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging - on case-sensitive file systems. - -2011-08-04 Thomas Quinot - - * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision - nested in a disabled pragma. - * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of - enclosing pragma, if any, for X decisions. - -2011-08-04 Thomas Quinot - - * sem_prag.adb: Minor reformatting. - -2011-08-04 Vincent Celier - - * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not - allowed in no run time mode. - -2011-08-04 Vincent Celier - - * make.adb (Check): When -gnatc is used, check for the source file - inside the ALI file with a canonical case file name. - -2011-08-04 Emmanuel Briot - - * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for - overriding the separator. - -2011-08-04 Robert Dewar - - * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb, - prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting. - -2011-08-04 Robert Dewar - - * gnat_rm.texi: Minor documentation fix for pragma Annotate. - -2011-08-04 Yannick Moy - - * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that - 'Result only appears in postcondition of function. - -2011-08-04 Thomas Quinot - - * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated - external tag, include the value of the external tag in the exception - message. - -2011-08-04 Yannick Moy - - * sem_attr.adb (Result): modify error message for misplaced 'Result - -2011-08-04 Sergey Rybin - - * gnat_rm.texi (pragma Annotate): Fix syntax description to make it - clear that the second argument must be an identifier. - -2011-08-04 Thomas Quinot - - * exp_ch9.adb (Build_Barrier_Function): When compiling with - -fpreserve-control-flow, insert an IF statement on the barrier - condition to ensure that a conditional branch instruction is generated. - -2011-08-04 Emmanuel Briot - - * prj-part.adb, prj.adb, prj.ads, prj-tree.ads - (Processing_Flags.Ignore_Missing_With): new flag. - -2011-08-04 Emmanuel Briot - - * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of - Source_List_File on case-insensitive systems where the file is actually - on a case-sensitive file system (NFS,...). - -2011-08-04 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Function_Return): In a rare case where a - function return contains a controlled [extension] aggregate and the - return statement is not part of a handled sequence of statements, wrap - the return in a block. This ensures that all controlled temporaries - generated during aggregate resolution will be picked up by the - finalization machinery. - -2011-08-04 Ed Schonberg - - * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized - components, freeze type before resolution, to ensure that default - initializations are present for all components. - * sem_res.adb (Resolve_Actuals): the designated object of an - accces-to-constant type is a legal actual in a call to an - initialization procedure. - -2011-08-04 Hristian Kirtchev - - * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and - N_Unchecked_Type_Conversion to the possible containers of a renamed - transient variable. - -2011-08-04 Yannick Moy - - * par-ch13.adb (Aspect_Specifications_Present): recognize - "with Identifier'Class =>" as an aspect, so that a meaningful warning - is issued in Strict mode. - * par.adb: Fix typos in comments. - -2011-08-04 Yannick Moy - - * sem_attr.adb (Result): modify error message to take into account Post - aspect when compiling Ada 2012 (or newer) code. - -2011-08-04 Nicolas Roche - - * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to - remove need for GCC exceptions. - -2011-08-04 Vincent Celier - - * makeutl.adb (Do_Complete): Call Debug_Output with the name of the - project, not the source file name. - * prj.adb (Find_Sources.Look_For_Sources): If the source has been - excluded, continue looking. This excluded source will only be returned - if there is no other source with the same base name that is not locally - removed. - -2011-08-04 Ed Schonberg - - * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is - private and one of the operands is a real literal, use a qualified - expression rather than a conversion which is not meaningful to the - back-end. - -2011-08-04 Yannick Moy - - * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise - corresponding aspect X'Class are allowed, proceed with analysis of the - aspect instead of skipping it. - -2011-08-04 Tristan Gingold - - * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads - This will allow to have an Ada implementation for the subprogram. - -2011-08-04 Ed Schonberg - - * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a - completion and aspects are present, apply them to the entity for the - type which is currently the partial view, but which is the one that - will be frozen. - * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate - applies to a partial view, indicate that the full view has predicates - and delayed aspects. - (Replace_Type_Reference): Handle properly predicates that apply to the - full view of a private completion. - -2011-08-04 Eric Botcazou - - * layout.adb (Layout_Type): For composite types, do not set Esize. - * freeze.adb (Set_Small_Size): Remove test on alignment and do not - set Esize. - (Size_Known): Look at the RM size of components instead of the Esize. - (Freeze_Record_Type): Look at the RM size instead of the Esize to - issue warning and activate Implicit_Packing. - (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic - if the Esize is not known. - * sem_ch13.adb (Analyze_Attribute_Definition_Clause) : Set Esize - for elementary types only. - (Analyze_Record_Representation_Clause): Look at the RM size instead - of the Esize to issue errors. - * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it - is not known. - : Look at the RM size instead of the Esize. Remove - obsolete block. - Look at the RM size instead of the Esize for types if the latter is - not known. - (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize. - -2011-08-04 Ed Schonberg - - * sem_type.adb: proper handling of equality not involving anonymous - access types. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and - Vis_Decls. When creating a library-level finalizer for a package spec, - both the declaration and body of the finalizer are inserted either in - the visible or private declarations of the package spec. - -2011-08-04 Javier Miranda - - * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the - use of the full-view of a type when invoking Is_Ancestor. - * sem_type.adb (Is_Ancestor): For consistency, when the traversal of - the full-view of private parents is requested, then use also the - full-view of the parent of the first derivation. - -2011-08-04 Tristan Gingold - - * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset - instead of the locally imported procedure. - * s-taprop-mingw.adb (Enter_Task): Ditto. - * s-valrea.adb (Scan_Real): Ditto. - * s-imgrea.adb (Set_Image_Real): Ditto. - * s-flocon.ads: Make the package pure. - -2011-08-04 Thomas Quinot - - * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove. - * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly. - * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement): - New subprogram, moved here from... - * par.adb, par-ch5.adb (P_Statement_Name): ... here. - * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any - rewriting of the last argument into a procedure call statement here... - * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there - instead. - -2011-08-04 Thomas Quinot - - * par_sco.adb: Minor reformatting. - -2011-08-04 Robert Dewar - - * erroutc.adb: Minor reformatting. - -2011-08-04 Thomas Quinot - - * par_sco.adb: Comment update. - -2011-08-04 Tristan Gingold - - * s-flocon.ads: New file. - * g-flocon.ads: Now a renaming of s-flocon. - * Makefile.rtl: Add s-flocon.o - -2011-08-04 Javier Miranda - - * exp_strm.adb (Build_Array_Input_Function): if the array type is - constrained, do not attempt to build a subtype of it. - -2011-08-04 Yannick Moy - - * errout.ads Change comments: remove 'R'M as an example where quotes - are needed; add ALFA as another case where quotes are not needed - * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another - case where quotes are not needed. - * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, - sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb: - Remove all occurrences of 'A'L'F'A - -2011-08-04 Ed Schonberg - - * sem_ch13.adb: check legality of invariant pragma. - -2011-08-04 Eric Botcazou - - * bindgen.adb: Add comments. - -2011-08-04 Yannick Moy - - * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a - synthesized flag. - * sem_prag.adb (Analyze_Pragma): record the pragma Annotate - (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram. - -2011-08-04 Robert Dewar - - * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb, - osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb, - sem_ch13.adb, s-pooloc.adb: Minor reformatting. - -2011-08-04 Thomas Quinot - - * s-pooloc.ads, s-pooglo.ads: Minor reformatting - -2011-08-04 Thomas Quinot - - PR ada/47880 - * s-pooloc.adb (Deallocate): Fix the case of deallocating the only - allocated object. - -2011-08-04 Robert Dewar - - * einfo.ads, exp_ch4.adb: Minor reformatting. - -2011-08-04 Jerome Lambourg - - * back_end.ads (Gen_Or_Update_Object_File): Add more comments. - -2011-08-04 Ed Schonberg - - * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component - type in all cases to compute list of primitive operations, because full - view may be an itype that is not attached to the list of declarations. - -2011-08-04 Eric Botcazou - - * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the - library has already been finalized. - (Gen_Adafinal_C): Likewise. - (Gen_Adainit_Ada): Generate an early return if the library has - already been elaborated. - (Gen_Adainit_C): Likewise. - (Gen_Output_File_Ada): Generate an elaboration flag. - (Gen_Output_File_C): Likewise. - -2011-08-04 Hristian Kirtchev - - * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of - Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not - built in the first place. - (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr - for CodePeer because Finalize_Address was not built to begin with. - * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto. - -2011-08-04 Pascal Obry - - * adaint.c (__gnat_tmp_name): Use current process id to create temp - filenames, this ensures unicity of filenames across processes. - -2011-08-04 Hristian Kirtchev - - * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine - Raise_Controlled to Raise_From_Controlled_Operation. Update the - signature of Raise_From_Controlled_Operation by adding flag From_Abort. - Add False as the actual to From_Abort in the generated call to - Raise_From_Controlled_Operation. - -2011-08-04 Jerome Lambourg - - * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration - so that the ali file name can be retrieved from outside of this package. - * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method - doing nothing in the general case, but used to update the object file - timestamp if directly generated by the backend. - * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set - to a later time than the ali file one. - -2011-08-04 Yannick Moy - - * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram - entities whose body contains an Annotate pragma which forces formal - proof on this body. - * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, - sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to - Mark_Non_ALFA_Subprogram to pass in a message and node. - * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate - (Forma_Proof, On) which sets the flag Formal_Proof_On in the - surrounding subprogram. - * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram, - Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked - as not in ALFA is annotated with Formal_Proof being On, then an error - is issued based on the additional parameters for message and node. - * snames.ads-tmpl (Name_Formal_Proof): new name for annotation. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-04 Hristian Kirtchev - - * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate - Finalize_Address when CodePeer is enabled. - -2011-08-04 Pascal Obry - - * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as - the latter returns a pointer to a static buffer which is deallocated - at the end of the routine. - -2011-08-04 Yannick Moy - - * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA - after index creation; mark unconstrained base array type generated as - being in/not in ALFA as well - (Make_Index): mark subtype created as in/not in ALFA - * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating - over a loop as in/not in ALFA, depending on its type and form of loop - iteration. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort - directly to False on .NET and JVM. - -2011-08-04 Yannick Moy - - * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove - constraint that subtype must come from source code to be in ALFA, so - that anonymous subtypes can be in ALFA too. - -2011-08-04 Yannick Moy - - * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of - reference for ALFA mode. - * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make - procedure public so as to use it from formal verification back-end. - -2011-08-04 Jerome Lambourg - - * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the - invalid checks of the Parameter, making Remove_Switch not working - correctly. - -2011-08-04 Arnaud Charlet - - * targparm.ads: Update header: no run-time exception is needed on this - file. - -2011-08-04 Vincent Celier - - * a-fihema.adb: Use System.IO instead of GNAT.IO - -2011-08-04 Thomas Quinot - - * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types - are forbidden in Compiler_Unit mode. - -2011-08-04 Robert Dewar - - * sem_util.adb: Minor reformatting. - -2011-08-04 Hristian Kirtchev - - * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for - library-level finalizers. - (Gen_Finalize_Library_C): Update the import string for library-level - finalizers. - (Gen_Finalize_Library_Defs_C): Update the definition name of a - library-level finalizer. - * exp_ch7.adb: Remove with and use clauses for Stringt. - (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl, - Spec_Decl. Add local variable Body_Id. The names of library-level - finalizers are now manually fully qualified and are no longer external. - A single name is now capable of servicing .NET, JVM and non-VM targets. - Pragma Export is no longer required to provide visibility for the name. - (Create_Finalizer_String): Removed. - (New_Finalizer_Name): New routine which mimics New_..._Name. - -2011-08-04 Eric Botcazou - - * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the - elaboration counter to Standard_Short_Integer. - * sem_util.adb (Build_Elaboration_Entity): Likewise. - * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change. - (Gen_Elab_Externals_C): Likewise. - -2011-08-04 Ed Falis - - * system-vxworks-arm.ads, system-vxworks-sparcv9.ads, - system-vxworks-ppc.ads, system-vxworks-m68k.ads, - system-vxworks-mips.ads, system-vxworks-x86.ads - (Always_Compatible_Rep): set to False for all VxWorks targets. - -2011-08-04 Robert Dewar - - * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads, - makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb, - exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb, - exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb, - exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb, - sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb, - sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb: - Minor reformatting and code reorganization. - -2011-08-04 Emmanuel Briot - - * projects.texi: Added doc for aggregate projects. - -2011-08-04 Emmanuel Briot - - * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items): - Add support for overriding the Project_Path in aggregate projects. - -2011-08-04 Robert Dewar - - * a-cofove.ads: Minor reformatting. - -2011-08-04 Hristian Kirtchev - - * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment - on the generated code. - (Build_Finalize_Statements): Update the comment on the generated code. - (Build_Initialize_Statements): Update the comment on the generated code. - (Build_Object_Declarations): Add local variable Result. The object - declarations are now built in sequence. - * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and - RE_Unit_Table. - -2011-08-04 Robert Dewar - - * checks.adb, alfa.adb, alfa.ads: Minor reformatting. - -2011-08-04 Eric Botcazou - - * einfo.ads (Elaboration_Entity): Document new definition and use. - (Elaboration_Entity_Required): Adjust to above change. - * exp_attr.adb (Expand_N_Attribute_Reference): Likewise. - * exp_ch12.adb: And with and use for Snames. - (Expand_N_Generic_Instantiation): Test 'Elaborated attribute. - * exp_util.adb (Set_Elaboration_Flag): Likewise. - * sem_attr.adb (Analyze_Attribute) : Delete. - : Deal with N_Expanded_Name. - : Extend to all unit names. - * sem_elab.adb: And with and use for Uintp. - (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change. - * sem_util.ads (Build_Elaboration_Entity): Adjust comment. - * sem_util.adb (Build_Elaboration_Entity): Change type to Integer. - * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken - from Gen_Adainit_Ada. - (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C. - (Gen_Adafinal_Ada): Remove redundant test. In the non-main program - case, do not call System.Standard_Library.Adafinal; instead call - finalize_library if needed. - (Gen_Adafinal_C): Likewise. - (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the - non-main program case. - (Gen_Adainit_C): Generate a couple of external declarations here. - In the main program case, set SSL.Finalize_Library_Objects. - (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change. - (Gen_Elab_Calls_C): Likewise. - (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units. - (Gen_Finalize_Library_C): Likewise. Generate a full function. - (Gen_Main_C): Put back call to Ada_Final and don't finalize library - objects here. - (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final - if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to - Gen_Adafinal_Ada. - (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final - if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple - of external declarations. Call Gen_Finalize_Library_C. - -2011-08-04 Emmanuel Briot - - * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains, - Compute_Compilation_Phases): new subprogram. - (Builder_Data, Builder_Project_Tree_Data): new subprogram and type - The number of mains as well as the various compilation phases that - need to be run are now project tree specific, since various - aggregated trees might have different requirements. In particular, - they do not all require bind or link phases. - -2011-08-04 Emmanuel Briot - - * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb - (Project_Tree_Appdata): New type. - It is now possible to associate application-specific data to a project - tree. In particular, this is used in the gprbuild builder to avoid a - number of global tables and htables, especially now that there can be - several project trees loaded at once because of aggregate projects. - (Debug_Name): new procedure. - * projects.texi: Clarify syntax of "**" for Source_Dirs - -2011-08-03 Emmanuel Briot - - * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts - the "roots" for a main. - (Fill_From_Project): add support for aggregate projects. Main units - in aggregated projects are now automatically added in the list of - files to build (although this fails later on in gprbuild, because - these files are not using the root proejct tree, so this needs - further cleanup) - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-03 Yannick Moy - - * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean - conditional expression in ALFA. - * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean - expressions as not in ALFA. - -2011-08-03 Robert Dewar - - * a-cofove.adb: Minor reformatting. - -2011-08-03 Emmanuel Briot - - * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads - (Insert_Project_Sources, Insert_withed_Sources_For): moved from the - gprbuild sources. - These packages are more logically placed in the Queue package, since - they manipulate the queue. It is also likely that they can be adapted - for gnatmake, thus sharing more code. - (Finish_Program, Fail_Program): moved from the gprbuild sources, so - that we could move the above. - -2011-08-03 Emmanuel Briot - - * errutil.adb (Finalize): clean up the list of error messages on exit. - Calling this subprogram multiple times will no longer show duplicate - error messages on stderr. - -2011-08-03 Emmanuel Briot - - * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter - Getopt_Switches when we have already define a command line - configuration. - -2011-08-03 Yannick Moy - - * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not - in ALFA. Instead, they are considered as assertions to prove. - * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such - nodes as not in ALFA. Instead, include conditional expressions in ALFA - if they have no ELSE part, or if they occur in pre- and postconditions, - where the Condition cannot have side-effects in ALFA - (Analyze_Membership_Op): do not mark such nodes as not in ALFA - (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA. - Instead, include type conversion between scalar types in ALFA. - * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA - if-and-only-if its type is in ALFA. - -2011-08-03 Thomas Quinot - - * scos.adb, get_scos.adb, put_scos.adb - New code letter for decisions: G (entry guard) - * par_sco.adb - (Traverse_Subprogram_Body): Rename to... - (Traverse_Subprogram_Or_Task_Body): New subrpogram. - (Traverse_Protected_Body): New subprogram - (Traverse_Declarations_Or_Statements): Add traversal of task bodies, - protected bodies and entry bodies. - -2011-08-03 Yannick Moy - - * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure - entities with get/set subprograms, which is set on procedure entities - generated by the compiler for a postcondition. - * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures - * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the - entity for a declaration - (Get_Unique_Entity_For_Decl): new function returning an entity which - represents a declaration, so that matching spec and body have the same - entity. - -2011-08-03 Robert Dewar - - * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads, - a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting - -2011-08-03 Yannick Moy - - * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram - library-level because retriction No_Implicit_Dynamic_Code in the - front-end prevents its definition as a local subprogram - (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File, - for reuse in other contexts - (Traverse_Declarations_Or_Statements, - Traverse_Handled_Statement_Sequence, Traverse_Package_Body, - Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these - procedures take a callback parameter to be called on all declarations - * lib-xref.ads - (Traverse_All_Compilation_Units): new generic function to traverse a - compilation unit and call a callback parameter on all declarations - -2011-08-03 Javier Miranda - - * sem_prag.adb (Process_Interface_Name): Allow duplicated export names - in Java since they are always enclosed in a namespace that - differentiates them, and overloaded entities are supported by the VM. - -2011-08-03 Ed Schonberg - - * checks.adb (Determine_Range): If a computed bound of an operation is - outside the range of the base type of the expression, and overflow - checks are enabled, the result is unknown and cannot be used for any - subsequent constant folding. - * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are - unknown, so is the result of the comparison. - -2011-08-03 Hristian Kirtchev - - * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal - From_Abort. When finalization was triggered by an abort, propagate - Standard'Abort_Signal rather than Program_Error. - * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal - From_Abort. - * a-except.adb (Raise_From_Controlled_Operation): Add new formal - From_Abort. When finalization was triggered by an abort, propagate - Standard'Abort_Signal rather than Program_Error. - * a-except.ads:(Raise_From_Controlled_Operation): Add new formal - From_Abort. - * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable - Abort_Id. Update the calls to Build_Object_Declarations and - Build_Raise_Statement to include Abort_Id. - (Build_Adjust_Statements): New local variable Abort_Id. Update the - calls to Build_Object_Declarations and Build_Raise_Statement to include - Abort_Id. - (Build_Finalize_Statements): New local variable Abort_Id. Update the - calls to Build_Object_Declarations and Build_Raise_Statement to include - Abort_Id. - (Build_Components): Create an entity for Abort_Id when exceptions are - allowed on the target. - (Build_Finalizer): New local variable Abort_Id. - (Build_Initialize_Statements): New local variable Abort_Id. Update the - calls to Build_Object_Declarations and Build_Raise_Statement to include - Abort_Id. - (Build_Object_Declarations): Add new formal Abort_Id. Create the - declaration of flag Abort_Id to preserve the original abort status - before finalization code is executed. - (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to - runtime routine Raise_From_Controlled_Operation. - (Create_Finalizer): Update the call to Build_Raise_Statement to include - Abort_Id. Update the call to Build_Object_Declarations to include - Abort_Id. Update the layout of the finalizer body. - (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort. - (Process_Transient_Objects): New local variable Abort_Id. Remove the - clunky code to create all flags and objects related to - exception propagation and replace it with a call to - Build_Object_Declarations. Update the call to Build_Raise_Statement to - include Abort_Id. - * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec. - Add new formal Abort_Id and associated comment on its use. - (Build_Raise_Statement): Add new formal Abort_Id and associated comment - on its use. - * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id. - Remove the clunky code to create all flags and objects related to - exception propagation and replace it with a call to - Build_Object_Declarations. Update the call to Build_Raise_Statement. - -2011-08-03 Eric Botcazou - - * s-tassta.adb: Fix minor typos. - -2011-08-03 Robert Dewar - - * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb, - lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting. - -2011-08-03 Hristian Kirtchev - - * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion - to packages. This ensures that the finalizer body will not end up - inside the freeze node. - (Process_Declarations): Add code to detect whether a freeze node has a - nested finalization collection. - -2011-08-03 Pascal Obry - - * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005. - (Current_Session): Return a not null access to Session_Type. - (Default_Session): Likewise. - -2011-08-03 Robert Dewar - - * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb, - exp_ch3.adb, exp_ch3.ads: Minor reformatting. - -2011-08-03 Pascal Obry - - * g-awk.ads: Minor comment fix. - -2011-08-03 Sergey Rybin - - * tree_io.ads (ASIS_Version_Number): Update because of the changes in - the tree structure related to discriminant constraints. - Original_Discriminant cannot be used any more for computing the - defining name for the reference to a discriminant. - -2011-08-03 Ed Schonberg - - * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the - function is not visibly tagged, this is not a dispatching call and - therfore is not Tag_Indeterminate, even if the function is marked as - dispatching on result. - -2011-08-03 Hristian Kirtchev - - * exp_ch13.adb: Add with and use clauses for Restrict and Rident. - (Expand_N_Free_Statement): Add a guard to protect against run-times - which do not support controlled types. - * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect - against run-times which do not support controlled types. - * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect - against run-times which do not support controlled types. - * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect - against run-times which do not support controlled types. - * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to - protect against run-times which do not support controlled types. - -2011-08-03 Eric Botcazou - - * exp_intr.adb: Put back with and use clauses for Exp_Ch11. - (Expand_Unc_Deallocation): Expand the AT_END handler at the very end. - -2011-08-03 Ed Schonberg - - * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is - modified in the source, to prevent spurious warnings when compiling - with -gnatg. - -2011-08-03 Thomas Quinot - - * a-except-2005.adb: Minor reformatting. - -2011-08-03 Ed Schonberg - - * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit - is a renaming declaration in the private part of a package, do not emit - a warning that the with_clause could be moved because the renaming may - be used in the body or in a child unit. - -2011-08-03 Hristian Kirtchev - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): - Propagate the Comes_From_Source attribute from the original return - object to the renaming. - -2011-08-03 Jose Ruiz - - * exp_ch7.adb (Build_Raise_Statement): Do not call - Raise_From_Controlled_Operation when this routine is not present in - the run-time library. - (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time - libraries (Ravenscar), tasks are non-terminating, and protected objects - and tasks can only appear at library level, so we do not want - finalization of protected objects nor tasks. - * exp_intr.adb: Minor clarification in comment. - bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada, - Gen_Output_File_C): Remove references to finalization of library-level - objects when using restricted run-time libraries. - -2011-08-03 Ed Schonberg - - * sem_ch3.adb (Build_Discriminant_Constraints): Set - Original_Discriminant only if the parent type is a generic formal. - -2011-08-03 Hristian Kirtchev - - * exp_ch13.adb: Add with and use clause for Targparm; - (Expand_N_Free_Statement): Prevent the generation of a custom - Deallocate on .NET/JVM targets since this requires pools and address - arithmetic. - * exp_ch4.adb (Expand_Allocator_Expression): When compiling for - .NET/JVM targets, attach the newly allocated object to the access - type's finalization collection. Do not generate a call to - Set_Finalize_Address_Ptr on .NET/JVM because this routine does not - exist in the runtime. - (Expand_N_Allocator): When compiling for .NET/JVM targets, do not - create a custom Allocate for object that do not require initialization. - Attach a newly allocated object to the access type's finalization - collection on .NET/JVM. - * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for - assignment of controlled types on .NET/JVM. The two hidden pointers - Prev and Next and stored and later restored after the assignment takes - place. - * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized - kludge for .NET/JVM to recognize a particular piece of code coming from - Heap_Management and change the call to Finalize into Deep_Finalize. - * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of - finalization collections on .NET/JVM only for types derived from - Controlled. Separate the association of storage pools with a collection - and only allow it on non-.NET/JVM targets. - (Make_Attach_Call): New routine. - (Make_Detach_Call): New routine. - (Process_Object_Declarations): Suppress the generation of - build-in-place return object clean up code on .NET/JVM since it uses - pools. - * exp_ch7.ads (Make_Attach_Call): New routine. - (Make_Detach_Call): New routine. - * exp_intr.adb Add with and use clause for Targparm. - (Expand_Unc_Deallocation): Detach a controlled object from a collection - on .NET/JVM targets. - * rtsfind.ads: Add entries RE_Attach, RE_Detach and - RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table. - * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special - names used in finalization. - -2011-08-03 Hristian Kirtchev - - * a-fihema.adb: Add with and use clauses for System.Soft_Links. - (Attach, Detach): Lock the current task when chaining an object onto a - collection. - -2011-08-03 Hristian Kirtchev - - * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation): - Rewritten to create the message strings when the exception is not - raised by an abort during finalization. - * a-except.ads, a-except-2005.ads: Add pragma Export for procedure - Raise_From_Controlled_Operation and update its associated comment. - * a-fihema.ads, a-fihema.adb: New GNAT unit. - Ada.Finalization.Heap_Management provides key functionality - associated with controlled objects on the heap, their creation, - finalization and reclamation. Type Finalization_Collection is - effectively a wrapper which sits ontop of a storage pool and performs - all necessary bookkeeping for all the objects it contains. Each - access-to-controlled or access-to-class-wide type receives a collection - as part of its expansion. The compiler generates buffer code and - invokes Allocate / Deallocate to create and destroy allocated - controlled objects. - * a-finali.adb ("="): Removed. - * a-finali.ads ("="): Removed. Controlled types no longer carry hidden - fields Prev and Next. - * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer. - A library unit with at least one controlled object on the library level - has a special finalizer which is invoked by the binder. To signal this, - ali files carry field PF. - * ali.ads: New field in type Unit_Record called Has_Finalizer. Add - associated comment on field usage. - * a-tags.adb (Get_RC_Offset): Removed. - (Needs_Finalization): New routine. - * a-tags.ads: Update the structure of the GNAT dispatch tables. - Dispatch tables now carry field Needs_Finalization which provides - runtime indication whether a type is controlled or has controlled - components or both. Remove field RC_Offset. - (Get_RC_Offset): Removed along with its associated pragma Export. - Since tagged types with controlled components no longer carry hidden - field _controller, the special mechanism to retrieve its location is no - longer needed. - (Needs_Finalization): New routine. - * atree.ads, atree.adb (Elist24): New routine. - (Set_Elist24): New routine. - * atree.h: Add a define clause for Elist24. - * bindgen.adb New library-level variable Lib_Final_Built. - (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the - presence of a VM target, the routine generates calls to the proper - library finalization routine. - (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM - targets. Set the correct library finalization routine depending on - whether the library has controlled objects or this is a VM compilation. - (Gen_Finalize_Library_Ada): New routine. This procedure generates calls - to library-level finalizers of compiled units in reverse order of - elaboration. It also produces exception management code and reraises a - potential exception after all units have been finalized. - (Gen_Finalize_Library_C): New routine. This procedure generates calls to - library-level finalizers of compiled units in reverse order of - elaboration. - (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the - definitions of all library-level finalizers available to the compilation - (Gen_Main_Ada): Directly call Adafinal which now contails all target - dependent code. - (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call - System.Standard_Library.Adafinal directly. If the library needs - finalization actions, create the sequence of finalization calls. - (Gen_Output_File_Ada): Alphabetize local variables and constants. - Generate a with clause for System.Soft_Links when compiling for a VM. - Remove the code which imports System.Standard_Library.Adafinal as - Do_Finalize. Generate the library finalization routine. - (Gen_Output_File_C): Add new local constant Needs_Library_Finalization. - If the library needs finalization actions, create all the definitions - of library- level finalizers. - (Has_Finalizer): New routine. Determines whether at least one compiled - unit has a library-level finalizer. - Add type Qualification_Mode. - (Set_Unit_Name): Add a formal which controls the replacement of a dot. - * einfo.adb: New usage of field 15 as Return_Flag. - Remove Finalization_Chain_Entity from the usages of field 19. - Remove Associated_Final_Chain from the usages of field 23. - New usage of field 23 as Associated_Collection. - New usage of field 24 as Finalizer. - New usage of flag 252 as Is_Processed_Transient. - (Associated_Final_Chain): Removed. - (Associated_Collection): New routine. - (Finalization_Chain_Entity): Removed. - (Finalizer): New routine. - (Is_Finalizer): New routine. - (Is_Processed_Transient): New routine. - (Return_Flag): New routine. - (Set_Associated_Final_Chain): Removed. - (Set_Associated_Collection): New routine. - (Set_Finalization_Chain_Entity): Removed. - (Set_Finalizer): New routine. - (Set_Is_Processed_Transient): New routine. - (Set_Return_Flag): New routine. - (Write_Entity_Flags): Include Is_Processed_Transient to the list of - displayed flags. - (Write_Field8_Name): Alphabetize the output. - (Write_Field11_Name): Alphabetize the output. - (Write_Field12_Name): Alphabetize the output. - (Write_Field13_Name): Alphabetize the output. - (Write_Field14_Name): Alphabetize the output. - (Write_Field15_Name): Alphabetize the output. - (Write_Field16_Name): Alphabetize the output. - (Write_Field17_Name): Alphabetize the output. - (Write_Field18_Name): Alphabetize the output. - (Write_Field19_Name): Alphabetize the output. Remove the output of - Finalization_Chain_Entity. - (Write_Field20_Name): Alphabetize the output. - (Write_Field21_Name): Alphabetize the output. - (Write_Field22_Name): Alphabetize the output. - (Write_Field23_Name): Alphabetize the output. Remove the output of - Associated_Final_Chain. Add output for Associated_Collection. - (Write_Field24_Name): Alphabetize the output. - (Write_Field25_Name): Add output for Finalizer. - (Write_Field26_Name): Alphabetize the output. - (Write_Field27_Name): Alphabetize the output. - (Write_Field28_Name): Alphabetize the output. - * einfo.ads: Add new field description for Associated_Collection and - its uses in nodes. - Remove Associated_Final_Chain and its uses in nodes. - Remove Finalization_Chain_Entity and its uses in nodes. - Add new field description for Finalizer and its uses in nodes. - Add new synthesized attribute Is_Finalizer. - Add new flag description for Is_Processed_Transient and its uses in - nodes. - Add new field description for Return_Flag and its uses in nodes. - (Associated_Final_Chain): Removed along with its pragma Inline. - (Associated_Collection): New routine and pragma Inline. - (Finalization_Chain_Entity): Removed along with its pragma Inline. - (Finalizer): New routine and pragma Inline. - (Is_Finalizer): New routine and pragma Inline. - (Is_Processed_Transient): New routine and pragma Inline. - (Return_Flag): New routine and pragma Inline. - (Set_Associated_Final_Chain): Removed along with its pragma Inline. - (Set_Associated_Collection): New routine and pragma Inline. - (Set_Finalization_Chain_Entity): Removed along with its pragma Inline. - (Set_Finalizer): New routine and pragma Inline. - (Set_Is_Processed_Transient): New routine and pragma Inline. - (Set_Return_Flag): New routine and pragma Inline. - * exp_aggr.adb: Alphabetize subprograms. - (Build_Array_Aggr_Code): Remove formal Flist and its associated comment. - (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their - associated comments. Remove local variables External_Final_List and - Attach. - Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to - Ancestor. Remove the retrieval of finalization lists. Update the call to - Make_Adjust_Call. - (Convert_Aggr_In_Allocator): Remove the retrieval of finalization - lists. Update the call to Late_Expansion. - (Convert_Aggr_In_Assignment): Update the call to Late_Expansion. - (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion. - (Gen_Assign): Remove the retrieval of the finalization list used to - build the assignment. Update the calls to Make_Init_Call and - Make_Adjust_Call. - (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions. - Remove the mechanism to determine attachment levels and finalization - list retrieval. Remove the processing for coextensions. - (Init_Controller): Removed. Controllers no longer exist. - (Late_Expansion): Remove formals Flist and Obj along with their - associated comments. Update the calls to Build_Record_Aggr_Code and - Build_Array_Aggr_Code. - * exp_ch13.adb (Expand_N_Free_Statement): New routine. - (Expand_N_Freeze_Entity): Add special processing for finalizers which - appear in entry bodies, protected subprograms and task bodies. - * exp_ch13.ads (Expand_N_Free_Statement): New routine. - * exp_ch3.adb (Add_Final_Chain): Removed. - (Build_Array_Init_Proc): Alphabetize local variables. - (Build_Assignment): Alphabetize local variables. Update the call to - Maked_Adjust_Call. - (Build_Class_Wide_Master): Rename local variables to better reflect - their role. - (Build_Discriminant_Assignments): Code reformatting. - (Build_Init_Call_Thru): Code reformatting. - (Build_Init_Procedure): Code reformatting. Generate a special version - of Deep_Finalize which is capable of finalizing all initialized - components and ignore the rest. - (Build_Init_Statements): Rename local variables to better reflect their - role. - Reimplement the mechanism to include the creation and update of an index - variable called a "counter". It is used as a bookmark for tracing - initialized and non-initialized components. - (Build_Initialization_Call): Remove local variable Controller_Typ. - Alphabetize all local variables. Remove the initialization of the - record controller and update the call to Make_Init_Call. - (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent. - New local variable Counter. - (Constrain_Array): Alphabetize. - (Expand_Freeze_Array_Type): Create a collection instead of a - finalization list. - (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive - Finalize_Address which is used in conjunction with allocated controlled - objects. - (Expand_N_Object_Declaration): Remove the creation of a finalization - list for anonymous access types. Update the calls to Make_Init_Call and - Make_Adjust_Call. - (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the - retrieval of finalization lists. Remove the expansion of the record - controller. Create TSS primitive Finalize_Address used in conjunction - with controlled objects on the heap. Create finalization collections - for access-to-controlled record components. - (Expand_Record_Controller): Removed. - (Freeze_Type): Remove the freezing of record controllers. Freezing of - class-wide types now requires additional processing. Create - finalization collections for access-to-controlled types. - (Increment_Counter): New routine. - (Make_Counter): New routine. - (Make_Eq_If): Remove the mention of Name_uController. - (Make_Predefined_Primitive_Specs): There is no longer need to skip - types coming from System.Finalization_Root. - (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles. - (Predefined_Primitive_Bodies): There is no longer need to skip types - coming from System.Finalization_Root. - (Stream_Operation_OK): Do not generate stream routines for - type Ada.Finalization.Heap_Management.Finalization_Collection. - * exp_ch3.ads: Alphabetize subprograms. - * exp_ch4.adb: Remove with and use clause for Sem_Ch8. - Add with and use clause for Lib. - (Complete_Coextension_Finalization): Removed. - (Complete_Controlled_Allocation): New routine. Create a finalization - collection for anonymous access-to-controlled types. Create a custom - Allocate which interfaces with the back end and the machinery in - Heap_Management. - (Expand_Allocator_Expression): Add necessary calls to - Complete_Controlled_Allocation. Remove the retrieval of finalization - lists. Update the calls to Make_Adjust_Call. Generate a call to - Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate - the associated collection. - (Expand_N_Allocator): Remove the processing for dynamic coextensions. - Code clean up. Remove the retrieval of finalization lists and - attachment levels. - Update the call to Make_Init_Call. Generate a call to - Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate - the associated collection. - (Get_Allocator_Final_List): Removed. Finalization lists are not - available. - (Suitable_Element): Remove the mention of Name_uController. - * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp. - (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of - the left hand side, carry out the assignment and adjust the left hand - side. - * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed. - (Add_Collection_Actual_To_Build_In_Place_Call): New routine. - (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to - BIP_Collection and BIPcollection. - (Build_Heap_Allocator): New routine used to allocate the return object - of a build-in-place function onto a collection. - (Expand_Ctrl_Function_Call): Moved from Exp_Ch7. - (Expand_Call): Do not replace direct calls to Deep routines with their - aliases. - (Expand_N_Extended_Return_Statement): Give all variables shorter names - and update their occurrences. Add a special return flag to monitor the - [ab]normal execution of the function. The flag is set right before the - return statement. - Rewrite the mechanism used to allocate a build-in-place return object - on the heap or on a storage pool. - (Is_Direct_Deep_Call): New routine. - (Make_Build_In_Place_Call_In_Allocator): Add a collection to a - build-in-place function call instead of a final list. Build a call to - Set_Finalize_Address_Ptr to decorate the associated collection. - (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in - order to name the build-in-place function call's result for later - finalization. Add a collection to a build-in-place function call - instead of a final list. - (Make_Build_In_Place_Call_In_Assignment): Add a collection to a - build-in-place function call instead of a final list. Remove the code - which moves one final list and transforms it into the actual in a - nested build-in-place call. - (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a - build-in-place function call instead of a final list. - (Move_Final_List): Removed. - (Needs_BIP_Collection): New routine. - (Needs_BIP_Final_List): Removed. - * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in - enumeration type BIP_Formal_Kind. - Update the related comment. - (Needs_BIP_Collection): New routine. - (Needs_BIP_Final_List): Removed. - * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt - and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the - majority of subprograms in this unit. Add Name_Finalize_Address to - array Name_Of and TSS_Finalize_Address to array Deep_Name_Of. - (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization - statements for an array type. - (Build_Adjust_Statements): Create the adjust statements for a record - type. - (Build_Cleanup_Statements): New routine. A procedure which given any - construct containing asynchronous calls, references to _master, or is a - task body, a task allocation or a protected body produces the necessary - runtime calls to clean up these constructs. - (Build_Exception_Handler): New routine. - (Build_Final_List): Removed. - (Build_Finalization_Collection): New routine. A core procedure which - creates a collection to service heap allocated controlled objects - associated with an access-to-controlled type. - (Build_Finalize_Statements): Create the finalization statements for a - record types. - (Build_Finalizer): New routine. A core procedure which given any - construct with declarations and/or statements detects all objects which - need any type of clean up (controlled objects, protected objects) and - generates all necessary code to clean up the said objects in the proper - order. - (Build_Finalizer_Call): New routine. - (Build_Initialize_Statements): Create the initialization statements for - an array type. The generated routine contains code to finalize partially - initialized arrays. - (Build_Object_Declarations): New routine. - (Build_Raise_Statement): New routine. - (Clean_Simple_Protected_Objects): Removed. - (Controller_Component): Removed. - (Enclosing_Function): New routine. - (Expand_Cleanup_Actions): Create a finalizer for a construct which has - either declarations or statements or both. - (Expand_N_Package_Body): Create a finalizer for a non-generic package. - (Expand_N_Package_Declaration): Create a finalizer for a non-generic - package. - (Find_Final_List): Removed. - (Global_Flist_Ref): Removed. - (In_Finalization_Root): Removed. - (Insert_Actions_In_Scope_Around): Determine the range of the transient - scope in terms of tree nodes. Process all transient variables within - that range. - (Make_Adjust_Call): Rewritten. There is no longer an attach call - generated after the adjust. - (Make_Attach_Call): Removed. - (Make_Call): New routine. - (Make_Clean): Removed. - (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate - build routines. - (Make_Deep_Proc): Rewritten to generate the new profile signature used - in Deep routines. - (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate - build routines. - (Make_Final_Call): Modified to simply create a call to either - Deep_Finalize or Finalize. - (Make_Finalize_Address_Body): New routine. - (Make_Finalize_Address_Stmts): New routine. A function which produces - TSS primitive Finalize_Address used in conjunction with heap allocated - controlled objects. - (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM. - (Make_Init_Call): Rewritten. There is no longer an attach call - generated after initialization. - (Make_Local_Deep_Finalize): New routine. - (Make_Set_Finalize_Address_Ptr_Call): New routine. - (Make_Transient_Block): Remove the finalization list retrieval and - manipulation. - (Needs_Finalization): Moved to Exp_Util. - (Parent_Field_Type): New routine. - (Preprocess_Components): New routine. - (Process_Transient_Objects): New routine. - (Wrap_HSS_In_Block): New routine. - (Wrap_Transient_Declaration): Remove finalization list management and - controller insertion. - (Wrap_Transient_Expression): Code reformatting. - (Wrap_Transient_Statement): Code reformatting. - * exp_ch7.ads (Build_Final_List): Removed. - (Build_Finalization_Collection): New routine. - (Build_Raise_Statement): New routine. - (Controller_Component): Removed. - (Expand_Ctrl_Function_Call): Moved to Exp_Ch6. - (Find_Final_List): Removed. - (In_Finalization_Root): Removed. - (Is_Simple_Protected_Type): Update related comment. - (Make_Adjust_Call): New parameter profile and associated comments. - (Make_Attach_Call): Removed. - (Make_Final_Call): New parameter profile and associated comments. - (Make_Finalize_Address_Body): New routine. - (Make_Init_Call): New parameter profile and associated comments. - (Make_Local_Deep_Finalize): New routine. - (Make_Set_Finalize_Address_Ptr_Call): New routine. - (Needs_Finalization): Moved to Exp_Util. - * exp_ch9.adb (Add_Object_Pointer): Code reformatting. - (Expand_N_Protected_Body): Remove the handling of finalization lists. - (Find_Protection_Type): Moved to Exp_Util. - * exp_disp.adb: Remove with and use clauses for Exp_Ch7. - (Make_DT): Update sequence of dispatch table initialization. Remove the - initialization of field RC_Offset. Add initialization of field Needs_ - Finalization. - * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting. - Reimplement how an object is first finalized, then deallocated. - * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): - Code reformatting. - * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address. - Register TSS_Finalize_Address with type TSS_Names. - * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core - procedure provides the interface between an allocation / deallocation - and the support machinery in Ada.Finalization.Heap_Management. - (Find_Init_Call): Code reformatting. - (Find_Init_Call_In_List): Code reformatting. - (Find_Protection_Type): Moved from Exp_Ch9. - (Find_Prim_Op): Reimplement to add preference of recovered primitive. - (Has_Controlled_Coextensions): Removed. - (Has_Controlled_Objects): New routine. - (In_Library_Level_Package_Body): New routine. - (Insert_Action_After): New routine. - (Is_Finalizable_Transient): New routine. This predicate determines - whether an object declaration is one of the many variants of controlled - transients. - (Is_Null_Access_BIP_Func_Call): New routine. - (Is_Non_BIP_Func_Call): New routine. - (Is_Related_To_Func_Return): New routine. - (Needs_Finalization): Moved from Exp_Ch7. - * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine. - (Find_Protection_Type): Moved from Exp_Ch9. - (Has_Controlled_Coextensions): Removed. - (Has_Controlled_Objects): New routine. - (In_Library_Level_Package_Body): New routine. - (Insert_Action_After): New routine. - (Is_Finalizable_Transient): New routine. - (Is_Null_Access_BIP_Func_Call): New routine. - (Is_Non_BIP_Func_Call): New routine. - (Is_Related_To_Func_Return): New routine. - (Needs_Finalization): Moved from Exp_ch7. - * expander.adb (Expand): Add a case for N_Free_Statement. - * freeze.adb (Freeze_All): Replace the generation of a finalization - list with a collection for access-to-controlled types. - (Freeze_Entity): Code reformatting. - (Freeze_Record_Type): Remove the freezing of a record controller - component. - (Freeze_Subprogram): Code reformatting. - * inline.adb (Cleanup_Scopes): Remove the reset of the scope - finalization list. - * lib-writ.adb (Write_Unit_Information): Output "PF" when a package - has a library-level finalizer. - * lib-writ.ads: Add "PF" to the sequence of unit attributes. - * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed. - * Makefile.rtl: Remove a-filico and s-finimp from the list of object - files. Add a-fihema to the list of object files. - * par-ch4.adb: - Alphabetize the associations in type Is_Parameterless_Attribute. - * rtsfind.ads: Ada.Finalization_List.Controller and - System.Finalization_Implementation are no longer a GNAT unit. - Update the range of type Ada_Finalization_Child. Remove the following - recoverable entities: - - RE_Attach_To_Final_List - RE_Deep_Tag_Attach - RE_Finalize_List - RE_Finalize_One - RE_Finalizable_Ptr_Ptr - RE_Global_Final_List - RE_Limited_Record_Controller - RE_List_Controller - RE_Move_Final_List - RE_Record_Controller - RE_Simple_List_Controller - - Add the following recoverable entities: - - RE_Add_Offset_To_Address - RE_Allocate - RE_Base_Pool - RE_Deallocate - RE_Exception_Identity - RE_Finalization_Collection - RE_Finalization_Collection_Ptr - RE_Needs_Finalization - RE_Save_Library_Occurrence - RE_Set_Finalize_Address_Ptr - RE_Set_Storage_Pool_Ptr - RE_Storage_Count - * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of - Name_uController. - * sem_aux.adb (First_Discriminant): Remove mention of Name_uController. - (First_Stored_Discriminant): Remove the mention of Name_uController. - * sem_aux.ads: Comment reformatting. - * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery - to redecorate an already existing class-wide type. - (Decorate_Tagged_Type): New parameter profile and associated comment. - Create a "shadow class-wide type" for a shadow entity. - * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting - of the final chain along with the associated comment. - * sem_ch3.adb (Access_Type_Declaration): Add new local variable - Full_Desig and set it to the full view of the designated type. - Initialize the finalization collection to empty. - (Build_Derived_Record_Type): Alphabetize local variables. Code - reformatting. - (Collect_Fixed_Components): Remove the mention of Name_uController. - (Create_Constrained_Components): Remove the mention of Name_uController. - (Make_Class_Wide_Type): Add specialized code to redecorate an existing - class-wide type of a shadow entity. - (Process_Full_View): Update the machinery which marks type - Limited_Controlled's entity as limited. - * sem_ch4.adb (Analyze_One_Call): Code reformatting. - * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization - list, instead make a collection build-in-place formal. - * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of - a designated type in order to establish a match between the renaming - and the renamed entity. - (Find_Selected_Component): Add guard to prevent spurious exceptions - from being raised on .NET/JVM. - * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address - to the list of primitive that need special processing. Update arrays - C_Names and D_Names. - (Replace_Types): Handle class-wide types. - * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a - different parameter profile, look at the first formal. - * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and - use clauses for Exp_Util. - * sem_res.adb: Remove with and use clauses for Elists. - (Propagate_Coextensions): Removed. - (Resolve_Allocator): Do not propagate the list of coextensions from one - allocator to another. - * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable - Deaccessed_T to Desig_Typ. - (Enter_Name): Remove the mention of Name_uController. - (Gather_Components): Remove the mention of Name_uController. - (Incomplete_Or_Private_View): New routine. - (Is_Coextension_Root): Removed. - (Is_Fully_Initialized_Type): Remove the mention of Name_uController. - * sem_util.ads (Incomplete_Or_Private_View): New routine. - (Is_Coextension_Root): Removed. - * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion. - Controlled types are now derived from a null tagged record. Remove - types Finalizable_Ptr, Finalizable and Empty_Root_Controlled. - * sinfo.adb (Coextensions): Removed. - (Set_Coextensions): Removed. - * sinfo.ads: Remove Coextensions from the explanation of node fields - and its uses in nodes. - Update the field usage of N_Allocator. - (Coextensions): Removed along with its pragma Inline. - (Set_Coextensions): Removed along with its pragma Inline. - * snames.ads-tmpl: Remove names - - Name_uClean - Name_uController - Name_uFinal_List - Name_uLocal_Final_List - Name_Finalization_Root - Name_Next - Name_Prev - - Add names - - Name_uFinalizer - Name_Finalize_Address - * s-pooglo.adb (Allocate): Add overriding indicator. - (Deallocate): Add overriding indicator. - (Storage_Size): Add overriding indicator. - * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather - than Finalize_Global_List. - (Null_Finalize_Global_List): Removed. - (Save_Library_Occurrence): New routine. - * s-soflin.ads: Remove variable Finalize_Global_List along with its - initialization. Add variable Finalize_Library_Objects along with its - pragma Export. Add variables Library_Exception and - Library_Exception_Set along with their pragma Export. - (Null_Finalize_Global_List): Removed. - (Save_Library_Occurrence): New routine. - * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects - rather than Finalize_Global_List. - * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field - of the constructed node. - -2011-08-03 Rainer Orth - - * link.c: Include "auto-host.h" before system headers. - -2011-08-03 Vincent Celier - - * make.adb (Gnatmake): Add to table Library_Projs only library projects - that are not extended. Do not check if a library project that is - extended should be regenerated. Do not add to table Library_Paths the - libraries that are in extended projects. Link only with libraries that - are in libray projects that are not extended. - * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library - for a library project that is extended. - -2011-08-03 Gary Dismukes - - * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip - conforming subprogram renamings that appear to be completions if they - are not fully conformant. - Such renamings are homographs but not completions. - * sem_type.adb (Disambiguate): Handle disambiguation of overloaded - names in a subprogram renaming that appears in an instance. - -2011-08-03 Ed Schonberg - - * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but - not immutably limited, build actual subtype from expression to provide - proper bounds to caller. - -2011-08-03 Gary Dismukes - - * sem_ch8.adb: Minor comment correction. - -2011-08-03 Thomas Quinot - - * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when - returning a limited array, use an extended return statement. - -2011-08-03 Vincent Celier - - * make.adb (Initialize): If --subdirs= is used, but no project file is - specified, attempt to create the specify subdir if it does not already - exist and use it as the object directory as if -D had been specified. - -2011-08-03 Arnaud Charlet - - * s-tpopsp-vms.adb: New file. - * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS. - * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS. - -2011-08-03 Emmanuel Briot - - * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new - package. - -2011-08-03 Yannick Moy - - * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type - * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA - * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to - detect that an array has static bounds. - -2011-08-03 Thomas Quinot - - * exp_dist.adb: Minor reformatting. - -2011-08-03 Arnaud Charlet - - * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb - (ATCB_Key): Removed, not always used. - -2011-08-03 Emmanuel Briot - - * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads, - clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove - most remaining global variables. - -2011-08-03 Robert Dewar - - * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads, - prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor - reformatting. - -2011-08-03 Javier Miranda - - * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals - that must be passed by copy in VM targets. - -2011-08-03 Emmanuel Briot - - * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which - duplicates a similar htable now in the project tree. - -2011-08-03 Claire Dross - - * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb, - a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element, - Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend, - Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap, - Splice, First, First_Element, Last, Last_Element, Next, Previous, Find, - Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity, - Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure - update. - -2011-08-03 Arnaud Charlet - - * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb - (ATCB_Key): Removed, not always used. - * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from - s-taprop-posix.adb. - * s-tpopsp-tls.adb: New file. - * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on - x86/x64/ia64/powerpc/sparc Linux. - -2011-08-03 Arnaud Charlet - - * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True. - * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports. - -2011-08-03 Thomas Quinot - - * rtsfind.ads, exp_dist.adb, exp_dist.ads - (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call): - Fix type selection for mapping integer types to PolyORB types. - -2011-08-03 Bob Duff - - * sem_ch7.adb: Minor comment clarification. - -2011-08-03 Bob Duff - - * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get - an error analyzing a choice, skip further processing. Further - processing could cause a crash or cascade errors. - -2011-08-03 Emmanuel Briot - - * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb, - prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb, - prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb, - prj-env.ads (Shared_Project_Tree_Data): new type - An aggregate project and its aggregated trees need to share the common - data structures used for lists of strings, packages,... This makes the - code simpler since otherwise we have to pass the root tree (also used - for the configuration file data) in addition to the current project - tree. This also avoids ambiguities as to which tree should be used. - And finally this saves a bit of memory. - (For_Every_Project_Imported): new parameter Tree. - Since aggregated projects are using a different tree, we need to let - the caller know which tree to use to manipulate the returned project. - -2011-08-03 Robert Dewar - - * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb, - prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads, - lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb, - prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting. - -2011-08-03 Javier Miranda - - * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads: - Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util. - -2011-08-03 Bob Duff - - * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on - the Base_Type. - -2011-08-03 Joel Brobecker - - * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads, - g-sehash.ads: Fix typo. Update header. - -2011-08-03 Thomas Quinot - - * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place - expansion. - -2011-08-03 Gary Dismukes - - * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider - prefixes of private types along with records, since the selector may be - a discriminant. - * sem_res.adb (Resolve_Selected_Component): Consider prefixes of - private types along with records, since the selector may be a - discriminant. - -2011-08-03 Emmanuel Briot - - * prj-pp.adb (Pretty_Print): Remove trailing blank line. - -2011-08-03 Javier Miranda - - * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of - Tagged_Type_Expansion. - -2011-08-03 Yannick Moy - - * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK - violation when the argument of concatenation is the name of a - constant. - -2011-08-03 Emmanuel Briot - - * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads, - prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms - (Process_Declarative_Items): new parameter Child_Env. - -2011-08-03 Yannick Moy - - * alfa.ads: Update format of ALFA section in ALI file in order to - add a mapping from bodies to specs when both are present. - (ALFA_Scope_Record): Add components for spec file/scope. - * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when - present. - * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been - collected, fill in the spec information when relevant. - * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when - present. - -2011-08-03 Eric Botcazou - - * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing - code unit to decide whether to add internally generated subprograms. - -2011-08-03 Javier Miranda - - * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram. - * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must - be handled by copy in VM targets. - -2011-08-03 Emmanuel Briot - - * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share - code with Makeutl.Get_Switches. - * prj-tree.adb: Update comment. - -2011-08-03 Thomas Quinot - - * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote - subprogram with a limited formal that does not support external - streaming. - -2011-08-03 Yannick Moy - - * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of - continuation line - * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are - not from current unit in two phases, because it is not possible to - change the table while iterating over its content. - * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity - -2011-08-03 Sergey Rybin - - * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option - * gnat_ugn.texi: Update description of complexity metrics (gnatmetric) - -2011-08-03 Ed Schonberg - - * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate - and the component type is composite, this is ambiguous for predefined - concatenation, but if the node is not overloaded and the entity is a use - -defined function its profile can be used to resolve that aggregate. - -2011-08-03 Robert Dewar - - * exp_ch4.adb: Minor code cleanup. - -2011-08-03 Thomas Quinot - - * exp_dist.adb: Do not generate distribution stubs if serious errors - have been diagnosed. - -2011-08-03 Ed Schonberg - - * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of - the first formal of a primitive operation, go to the base type to - handle properly an access to a derived type with constrained - discriminants. - * sem_type.adb (Disambiguate): an immediately visible operator hides a - user-defined function that is only use-visible. - -2011-08-03 Robert Dewar - - * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb, - make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb, - fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb, - prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads, - sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb, - prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb, - prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads, - alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting - -2011-08-03 Robert Dewar - - * repinfo.adb (List_Mechanism): Add handling of - Convention_Ada_Pass_By_XXX. - * sem_mech.adb (Set_Mechanism): Ditto. - * sem_prag.adb (Process_Convention): Add entries for - Convention_Ada_Pass_By_XXX. - * snames.adb-tmpl, snames.ads-tmpl: Ditto. - -2011-08-03 Pascal Obry - - * makeutl.adb: Minor reformatting. - -2011-08-03 Vincent Celier - - * fname-uf.adb - (Get_File_Name) If the file cannot be found when there are no config - pragmas file and May_Fail is True, return No_File instead of the file - name, to be consistent. - -2011-08-03 Pascal Obry - - * adaint.c (__gnat_is_executable_file_attr): Avoid access - to null pointer. - -2011-08-03 Javier Miranda - - * sem_ch13.adb - (Same_Representation): In VM targets the representation of arrays with - aliased components differs from arrays with non-aliased components. - -2011-08-03 Emmanuel Briot - - * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do - not systematically lower case attribute indexes that contain no "." - Fix definition of several Naming attributes, which take - a unit name as index and therefore should be case insensitive. - Minor refactoring (reduce length of variable names). - -2011-08-03 Emmanuel Briot - - * makeutl.adb, makeutl.ads (Get_Switches): new subprogram. - -2011-08-03 Emmanuel Briot - - * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb, - prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb, - prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb, - prj-tree.ads (Prj.Tree.Environment): new type. - -2011-08-03 Emmanuel Briot - - * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb, - prj-tree.adb, prj-tree.ads (Environment): new type. - -2011-08-03 Emmanuel Briot - - * prj-tree.ads: Remove unused variable. - -2011-08-03 Yannick Moy - - * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for - issuing messages related to SPARK restriction violation. - -2011-08-03 Ed Schonberg - - * sem_ch6.adb: guard against error nodes in return statements. - -2011-08-03 Arnaud Charlet - - * errout.adb (Error_Msg_Internal): the main unit has not been read yet, - a warning can only appear on a configuration file, so emit warning - without further checks. - -2011-08-03 Arnaud Charlet - - * s-interr.ads: add overriding keyword. - -2011-08-03 Geert Bosch - - * exp_attr.adb: Fix minor typo. - -2011-08-03 Ed Schonberg - - * par-ch4.adb: improve error recovery. - -2011-08-03 Emmanuel Briot - - * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb, - prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize - to Errout_Handling. - -2011-08-03 Emmanuel Briot - - * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use - "external" as an attribute name in aggregate projects. - -2011-08-03 Jose Ruiz - - * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU - uses CPU numbers starting 1, while VxWorks uses CPU numbers starting - from 0, so we need to adjust. - -2011-08-03 Emmanuel Briot - - * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb, - prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type. - -2011-08-03 Yannick Moy - - * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK - restriction on overloaded entity if the entity is not an operator. - -2011-08-03 Yannick Moy - - * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb, - restrict.ads: Rename remaining Check_Formal_Restriction* into - Check_SPARK_Restriction*. - -2011-08-03 Emmanuel Briot - - * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, - prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its - qualifier. - (Project_Empty): removed - (Empty_Project): new parameter Qualifier - This is used to have fields specific to aggregate projects, cleaner - New field to store the list of aggregated projects. - (Check_Aggregate_Project): removed - (Process_Aggregated_Projects, Free): new subprograms. - -2011-08-03 Olivier Hainque - - * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well. - -2011-08-03 Ed Schonberg - - * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an - explicit dereference of an unconstrained type, create a constrained - subtype for it, as is done for function calls that return an - unconstrained type. - -2011-08-03 Thomas Quinot - - * g-pehage.adb (Finalize): Avoid possible double-free. - -2011-08-03 Steve Baird - - * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand - Elab_Spec/Body attrs in CodePeer_Mode. - -2011-08-03 Javier Miranda - - * exp_aggr.adb (Flatten): Convert to positional form aggregates whose - low bound is not known at compile time but they have no others choice. - Done because in this case the bounds can be obtained directly from the - aggregate. - -2011-08-03 Ed Falis - - * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs - on VxWorks SMP. Remove unusable constant ANY_CPU. - -2011-08-03 Emmanuel Briot - - * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb, - clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb, - prj-env.ads (Prj.Env.Initialize_Default_Project_Path, - Prj.Env.Initialize_Empty): new subprograms - (Get_Env, Find_Project): remove parameter Target_Name. - -2011-08-03 Gary Dismukes - - * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal - as a condition for the delayed call to Derived_Subprograms done for the - case of the rewriting of a derived type that constrains the - discriminants of its parent type. - Avoids redundant subprogram derivations for private subtype derivations. - -2011-08-03 Javier Miranda - - * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of - Build_Record_Aggr_Code. - (Build_Record_Aggr_Code): Add missing support to initialize hidden - discriminants in extension aggregates. - -2011-08-03 Emmanuel Briot - - * prj-pp.adb (Print): also output project qualifiers, since in - particular "aggregate" is mandatory in an aggregate project. - -2011-08-03 Emmanuel Briot - - * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb: - (Debug_Output): new function. - -2011-08-03 Eric Botcazou - - * gnat_ugn.texi: Document -Wstack-usage. - * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes. - -2011-08-03 Thomas Quinot - - * sem_prag.adb Issue an error (not a warning) when a C++ type does not - have keyword LIMITED. - -2011-08-03 Yannick Moy - - * alfa.adb, alfa.ads, alfa_test.adb: New files. - * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA) - (Scan_ALI): do not issue a fatal error if parsing known lines after Xref - section (does not happen in compiler, only if code directly calls - Scan_ALI). - * get_alfa.adb, get_alfa.ads: New files. - * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if - needed. - * lib-xref-alfa.adb: New file. - * lib-xref.adb, lib-xref.ads - (Xref_Entry): redefine information needed in cross-references for ALFA. - Push ALFA treatments in separated local package. - (Enclosing_Subpragram_Or_Package): treat specially subprogram - identifiers. Return entity of package body instead of spec. Return - Empty for a scope with no location. - (Generate_Reference): adapt to new components for ALFA information. - Remove the need for D references on definitions. - (Is_Local_Reference): moved to ALFA local package - (Output_References): extract subfunction as Extract_Source_Name - (Output_Local_References): remove procedure, replaced by filtering of - cross-references in package ALFA and printing in Put_ALFA. - (Write_Entity_Name): remove procedure - * lib.adb, lib.ads (Extract_Source_Name): extract here function to - print exact name of entity as it appears in source file - (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA - * put_alfa.adb, put_alfa.ads: New files. - * xref_lib.adb (Search_Xref): protect read of cross-references against - reading other sections of the ALI file, in gnatxref - (Search): protect read of cross-references against reading other - sections of the ALI file, in gnatfind. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-03 Thomas Quinot - - * sem_ch3.adb: Minor reformatting. - -2011-08-03 Jose Ruiz - - * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of - raising an exception. - -2011-08-03 Ed Schonberg - - * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer - type, always use 1 as the lower bound or string, even if lower bound of - context is not static, to handle properly null strings in a non-static - context. - -2011-08-03 Bob Duff - - * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is - always legal on the right-hand side of an assignment statement; there - is always an applicable index constraint in this case. Therefore, the - check for Pkind = N_Assignment_Statement is now unconditional -- it - doesn't depend on whether Is_Constrained (Typ). - -2011-08-03 Robert Dewar - - * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting. - -2011-08-03 Ed Schonberg - - * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference - for an itype created within a generic unit. - -2011-08-03 Eric Botcazou - - * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline - suppresses all inlining. - -2011-08-03 Robert Dewar - - * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb, - exp_aggr.adb: Minor reformatting. - -2011-08-03 Thomas Quinot - - * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of - tagged assignment when discriminant checks are suppressed. This is - useless and extremely costly in terms of static stack usage. - -2011-08-03 Bob Duff - - * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances - of generics, because this leads to the wrong entity in the wrong scope, - causing (e.g.) pragma Export_Procedure to get an error if the entity is - an instance. - (Process_Interface_Name): Follow Alias for instances of generics, to - correct for the above change. - -2011-08-03 Ed Schonberg - - * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value - is an integer literal it is always safe to replace the reference. In - addition, if the reference appears in the generated code for an object - declaration it is necessary to copy because otherwise the reference - might be to the uninitilized value of the discriminant of the object - itself. - -2011-08-03 Pascal Obry - - * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no - ACL used, in this case we want to check for ending .exe, not .exe - anywhere in the path. - -2011-08-03 Sergey Rybin - - * tree_io.ads (ASIS_Version_Number): Update because of the changes in - the tree structure (semantic decoration of references to record - discriminants). - -2011-08-03 Gary Dismukes - - * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete - choices of a named array aggregate, bail out when any choices are - marked as Errors_Posted. - -2011-08-03 Ed Schonberg - - * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope - in which entity is frozen, to handle properly loop variables in - iterators. - -2011-08-03 Ed Schonberg - - * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the - subtype is not static, compute the upper bound using attributes, to - handle properly index types that are not integer types. - -2011-08-03 Bob Duff - - * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs. - Update copyright notice. - -2011-08-03 Ed Schonberg - - * sem_ch3.adb (Build_Discriminant_Constraints): Only use - Original_Discriminant if within an instance. - * sem_ch4.adb (Analyze_Selected_Component): Ditto. - -2011-08-03 Thomas Quinot - - * einfo.ads: Minor reformatting. - -2011-08-03 Ed Schonberg - - * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a - composite type with an unfrozen subcomponent, in the profile of a - primitive operation. - -2011-08-03 Robert Dewar - - * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting. - -2011-08-03 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an - unconstrained type with discriminants is initialized with an aggregate, - use the constrained subtype of the aggregate as the type of the object, - because it is immutable, and this allows the back-end to generate no - code for the object declaration. - -2011-08-03 Robert Dewar - - * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where - comparison operand is variable, and turns out to be zero or negative. - -2011-08-03 Javier Miranda - - * exp_intr.adb - (Expand_Dispatching_Constructor_Call): Disable expansion of - code required for native targets. Done to avoid generating - references to unavailable runtime entities in VM targets. - * exp_ch3.adb - (Expand_N_Object_Declaration): Add missing support to handle - the explicit initialization of class-wide interface objects. - Fix documentation. - -2011-08-03 Matthew Heaney - - * a-cobove.adb (Merge): Move source onto target, instead of using - Assign. - -2011-08-03 Matthew Heaney - - * a-cbdlli.adb (Splice): Move source items from first to last. - -2011-08-03 Yannick Moy - - * sem_util.ads: Add comment. - -2011-08-03 Javier Miranda - - * exp_aggr.adb - (Expand_Record_Aggregate): In VM targets disable the expansion into - assignments of aggregates whose type is not known at compile time. - -2011-08-03 Ed Schonberg - - * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for - protected entries and task entries, to build the proper renaming - declaration for entry formals, used in debugging. - * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry - parameters in the same way. - -2011-08-02 Robert Dewar - - * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb, - sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or - code reorganization. - -2011-08-02 Robert Dewar - - * debug.adb: Debug flag d.P to suppress length comparison optimization - * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize - comparison of Length by comparing First/Last instead. - -2011-08-02 Matthew Heaney - - * a-cobove.ads: Code clean up. - -2011-08-02 Vincent Celier - - * adaint.c (file_names_case_sensitive_cache): New static int. - (__gnat_get_file_names_case_sensitive): Cache the return value in - file_names_case_sensitive_cache at the first invocation, to avoid - multiple calls to getenv. - -2011-08-02 Bob Duff - - * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1. - -2011-08-02 Yannick Moy - - * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads, - sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb, - sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to - indicate that we are in a precondition or postcondition. This is used in - Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to - decide whether to flag the spec or body of the current subprogram as - not in ALFA. - -2011-08-02 Fabien Chouteau - - * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package - list. - * a-extiin.ads: New file. - -2011-08-02 Bob Duff - - * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename - now raises Name_Error instead of Use_Error in certain cases. The other - parts of this AI were already implemented properly. - -2011-08-02 Vincent Celier - - * link.c: Only import "auto-host.h" when building the gnattools. - -2011-08-02 Yannick Moy - - * sem_util.adb: Inter-unit inlining does not work for a subprogram - which calls a local subprogram, so extract subprogram - from Mark_Non_ALFA_Subprogram_Body. - -2011-08-02 Javier Miranda - - * exp_ch9.adb - (Extract_Dispatching_Call): If the type of the dispatching object is an - access type then return an explicit dereference in the Object out-mode - parameter. - -2011-08-02 Gary Dismukes - - * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range - compatibility checks for all indexes of an array subtype, not just the - first. Reset Has_Dynamic_Range_Check on the subtype before each - potential check to ensure that Insert_Range_Checks will not elide any - of the dynamic checks. - -2011-08-02 Yannick Moy - - * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize - SPARK restriction at parsing time. - * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE - directive only if the SPARK restriction is set for this unit. - -2011-08-02 Yannick Moy - - * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads, - sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb, - sem_ch11.adb: Protect call to Current_Subprogram which might be costly - when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into - Mark_Non_ALFA_Subprogram_Body. - Split body of Mark_Non_ALFA_Subprogram_Body to get body small and - inlined. - -2011-08-02 Yannick Moy - - * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which - might be costly. - -2011-08-02 Robert Dewar - - * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads, - exp_ch3.adb: Minor reformatting. - -2011-08-02 Emmanuel Briot - - * adaint.c (__gnat_locate_exec_on_path): only returns executable - files, not any regular file. - (__gnat_locate_file_with_predicate): new subprogram. - -2011-08-02 Yannick Moy - - * sinfo.adb, sinfo.ads: Restrict the use of flags - Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression - nodes, plus N_Subtype_Declaration for the 2nd one. - -2011-08-02 Sergey Rybin - - * gnat_rm.texi: Ramification of pragma Eliminate documentation - - fix bugs in the description of Source_Trace; - - get rid of UNIT_NAME; - -2011-08-02 Javier Miranda - - * exp_ch9.adb - (Build_Dispatching_Requeue): Adding support for VM targets - since we cannot directly reference the Tag entity. - * exp_sel.adb (Build_K): Adding support for VM targets. - (Build_S_Assignment): Adding support for VM targets. - * exp_disp.adb - (Default_Prim_Op_Position): In VM targets do not restrict availability - of predefined interface primitives to compiling in Ada 2005 mode. - (Is_Predefined_Interface_Primitive): In VM targets this service is not - restricted to compiling in Ada 2005 mode. - (Make_VM_TSD): Generate code that declares and initializes the OSD - record. Needed to support dispatching calls through synchronized - interfaces. - * exp_ch3.adb - (Make_Predefined_Primitive_Specs): Enable generation of predefined - primitives associated with synchronized interfaces. - (Make_Predefined_Primitive_Bodies): Enable generation of predefined - primitives associated with synchronized interfaces. - -2011-08-02 Yannick Moy - - * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of - statements hidden in SPARK if preceded by the HIDE directive - (Parse_Exception_Handlers): mark each exception handler in a sequence of - exception handlers as hidden in SPARK if preceded by the HIDE directive - * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK - if starting with the HIDE directive - * par-ch7.adb (P_Package): mark a package body hidden in SPARK if - starting with the HIDE directive; mark the declarations in a private - part as hidden in SPARK if the private part starts with the HIDE - directive - * restrict.adb, restrict.ads - (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK - (Is_In_Hidden_Part_In_SPARK): new function which returns whether its - argument node belongs to a part which is hidden in SPARK - (Check_SPARK_Restriction): do not issue violations on nodes in hidden - parts in SPARK; protect the possibly costly call to - Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on - * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration - * scng.adb (Accumulate_Token_Checksum_GNAT_6_3, - Accumulate_Token_Checksum_GNAT_5_03): add case for new token - Tok_SPARK_Hide. - (Scan): recognize special comment starting with '#' and followed by - SPARK keyword "hide" as a HIDE directive. - -2011-08-02 Yannick Moy - - * types.ads, erroutc.ads: Minor reformatting. - -2011-08-02 Vincent Celier - - * link.c: Add response file support for cross platforms. - -2011-08-02 Ed Schonberg - - * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression - in an association, set parent field of copy before partial analysis. - * sem_res.adb (Resolve_Slice): create reference to itype only when - expansion is enabled. - -2011-08-02 Yannick Moy - - * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set - for new flag denoting which subprogram bodies are in ALFA - * restrict.adb, sem_ch7.adb: Update comment - * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, - sem_ch9.adb, sem_res.adb: Add calls to - Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs. - * sem_ch6.adb (Analyze_Function_Return): add calls to - Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the - middle of the body, and extended return. - (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument - False when missing return. - (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA - to True for subprograms whose spec is in ALFA. Remove later on the flag - on the entity used for a subprogram body when there exists a separate - declaration. - * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA): - if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to - False, otherwise do nothing. - -2011-08-02 Robert Dewar - - * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting. - -2011-08-02 Yannick Moy - - * sem_ch4.ads: minor formatting. - -2011-08-02 Yannick Moy - - * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, - debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb, - errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb, - restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, - opt.ads: cleanup of SPARK mode - -2011-08-02 Yannick Moy - - * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard - types. - * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities - (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA - * sem_ch3.adb - (Analyze_Object_Declaration): set Is_In_ALFA flag for objects - (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes - (Constrain_Integer): set Is_In_ALFA flag for integer subtypes - (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration - types. - (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with - non-static range. - * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for - functions whose return type is not in ALFA. - (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram - specifications. - (Process_Formals): unset Is_In_ALFA flag for subprograms if a - parameter's type is not in ALFA. - * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard - types are in ALFA. - -2011-08-02 Ed Schonberg - - * sem_ch6 (Analyze_Expression_Function): treat the function as - Inline_Always, and introduce a subprogram declaration for it when it is - not a completion. - * inline.adb (Add_Inlined_Body): recognize bodies that come from - expression functions, so that the back-end can determine whether they - can in fact be inlined. - * sem_util.adb (Is_Expression_Function): predicate to determine whether - a function body comes from an expression function. - -2011-08-02 Gary Dismukes - - * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming - null exclusions to test Can_Never_Be_Null on the anonymous access types - of the formals rather than testing the formals themselves. Exclude this - check in cases where the Old_Formal is marked as a controlling formal, - to avoid issuing spurious errors for bodies completing dispatching - operations (due to the flag not getting set on controlling access - formals in body specs). - (Find_Corresponding_Spec): When checking full and subtype conformance of - subprogram bodies in instances, pass Designated and E in that order, for - consistency with the expected order of the formals (New_Id followed by - Old_Id). - -2011-08-02 Robert Dewar - - * sem_ch8.adb: Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure - Check_Class_Wide_Actual, to implement AI05-0071, on defaulted - primitive operations of class-wide actuals. - -2011-08-02 Javier Miranda - - * exp_atag.ads, exp_atag.adb - (Build_Common_Dispatching_Select_Statements): Remove argument Loc - since its value is implicitly passed in argument Typ. - * exp_disp.adb (Make_Disp_Conditional_Select_Body, - Make_Disp_Timed_Select_Body): Remove Loc in calls to routine - Build_Common_Dispatching_Select_Statements. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads, - exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments. - Minor reformatting. - -2011-08-02 Robert Dewar - - * sem_res.adb: Minor reformatting. - * sem_prag.adb: Minor reformatting. - -2011-08-02 Javier Miranda - - * exp_atag.adb, exp_atags.ads - (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr - by the tagged type Entity. Required to use this routine in the VM - targets since we do not have available the Tag entity in the VM - platforms. - * exp_ch6.adb - (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package - Ada.Tags has not been previously loaded. - * exp_ch7.adb - (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke - Build_VM_TSDs if package Ada.Tags has not been previously loaded. - * sem_aux.adb - (Enclosing_Dynamic_Scope): Add missing support to handle the full - view of enclosing scopes. Required to handle enclosing scopes that - are synchronized types whose full view is a task type. - * exp_disp.adb - (Build_VM_TSDs): Minor code improvement to avoid generating and - analyzing lists with empty nodes. - (Make_Disp_Asynchronous_Select_Body): Add support for VM targets. - (Make_Disp_Conditional_Select_Body): Add support for VM targets. - (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets. - (Make_Disp_Timed_Select_Body): Add support for VM targets. - (Make_Select_Specific_Data_Table): Add support for VM targets. - (Make_VM_TSD): Generate code to initialize the SSD structure of - the TSD. - -2011-08-02 Yannick Moy - - * lib-writ.adb (Write_ALI): when ALFA mode is set, write local - cross-references section in ALI. - * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub - (enclosing subprogram), Slc (location of Sub) and Sun (unit number of - Sub). - (Enclosing_Subprogram_Or_Package): new function to return the enclosing - subprogram or package entity of a node - (Is_Local_Reference_Type): new function returns True for references - selected in local cross-references. - (Lt): function extracted from Lt in Output_References - (Write_Entity_Name): function extracted from Output_References - (Generate_Definition): generate reference with type 'D' for definition - of objects (object declaration and parameter specification), with - appropriate locations and units, for use in local cross-references. - (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created - references of type 'I' for initialization in object definition. - (Output_References): move part of function Lt and procedure - Write_Entity_Name outside of the body. Ignore references of types 'D' - and 'I' introduced for local cross-references. - (Output_Local_References): new procedure to output the local - cross-references sections. - (Lref_Entity_Status): new array defining whether an entity is a local - * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference - with 'I' type when initialization expression is present. - * get_scos.adb, get_scos.ads: Correct comments and typos - -2011-08-02 Javier Miranda - - * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in - the JVM target. - * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in - the JVM target. - * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no - TSD support. - -2011-08-02 Vincent Celier - - * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line - (No_Space_Img): New function - (Find_Excluded_Sources): When reading from a file, record the file name - and the line number for each excluded source. - (Mark_Excluded_Sources): When reporting an error, if the excluded - sources were read from a file, include file name and line number in - the error message. - -2011-08-02 Ed Schonberg - - * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2). - -2011-08-02 Robert Dewar - - * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting - -2011-08-02 Javier Miranda - - * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the - generation of TSDs to the DOTNET compiler. - * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the - generation of TSDs to the DOTNET compiler. - -2011-08-02 Javier Miranda - - * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data - record of all the tagged types declared inside library level package - declarations, library level package bodies or library level subprograms. - * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD - associated with a given tagged type. - (Build_VM_TSDs): New subprogram. - * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main - compilation units that are subprograms. - * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main - compilation units that are package bodies. - (Expand_N_Package_Declaration): Generate TSDs of the main compilation - units that are a package declaration or a package instantiation. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code - reorganization to improve the error generated by the frontend when the - function Ada.Tags.Secondary_Tag is not available. - * rtsfind.ads (RE_Register_TSD): New runtime entity. - * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup. - -2011-08-02 Javier Miranda - - * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode. - -2011-08-02 Robert Dewar - - * s-imenne.ads: Minor reformatting. - -2011-08-02 Robert Dewar - - * a-stunau.ads: Add pragma Suppress_Initialization for Big_String - * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed - * s-stalib.ads: Add pragma Suppress_Initialization for Big_String - -2011-08-02 Robert Dewar - - * einfo.ads (Materialize_Entity): Document this is only for renamings - * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate - required debug information in the case where we transform the object - declaration into a renaming declaration. - * exp_ch4.adb (Expand_Concatenate): Generate debug info for result - object - * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of - Materialize_Entity. - -2011-08-02 Robert Dewar - - * einfo.ads, einfo.adb (Suppress_Initialization): Replaces - Suppress_Init_Procs. - * exp_ch3.adb, exp_disp.adb, freeze.adb: Use - Suppress_Initialization/Initialization_Suppressed. - * gnat_rm.texi: New documentation for pragma Suppress_Initialization - * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function - * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed - * sem_prag.adb: New processing for pragma Suppress_Initialization. - -2011-08-02 Robert Dewar - - * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb: - Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can - only have inheritable classwide pre/postconditions. - -2011-08-02 Javier Miranda - - * a-tags.ads, a-tags.adb (Check_TSD): New subprogram. - * rtsfind.ads (RE_Check_TSD): New runtime entity. - * exp_disp.adb (Make_DT): Generate call to the new runtime routine that - checks if the external tag of a type is the same as the external tag - of some other declaration. - -2011-08-02 Thomas Quinot - - * s-taskin.ads: Minor reformatting. - -2011-08-02 Emmanuel Briot - - * g-comlin.adb (Display_Help): swap the order in which it prints the - short help and the general usage. - -2011-08-02 Ed Schonberg - - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly - the aspect declarations and attach them to the generic copy for - subsequent analysis. - (Analyze_Subprogram_Instantiation): copy explicitly the aspect - declarations of the generic tree to the new subprogram declarations. - * sem_attr.adb (Check_Precondition_Postcondition): recognize - conditions that apply to a subprogram instance. - -2011-08-02 Robert Dewar - - * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project]. - -2011-08-02 Ed Schonberg - - * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged - private type with a tagged full view is not derived in the immediate - scope of the partial view, (RM 7.3 (7)) use the scope of the base type. - -2011-08-02 Robert Dewar - - * exp_ch4.adb: Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an - Ada2012 iterator, the loop will be rewritten during expansion into a - while loop with a cursor and an element declaration. Do not analyze the - body in this case, because if the container is for indefinite types the - actual subtype of the elements will only be determined when the cursor - declaration is analyzed. - -2011-08-02 Arnaud Charlet - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore - size/alignment related attributes in CodePeer_Mode. - -2011-08-02 Gary Dismukes - - * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to - Prepend_Element, since this can result in the operation getting the - wrong slot in the full type's dispatch table if the full type has - inherited operations. The incomplete type's operation will get added - to the proper position in the full type's primitives - list later in Sem_Disp.Check_Operation_From_Incomplete_Type. - (Process_Incomplete_Dependents): Add Is_Primitive test when checking for - dispatching operations, since there are cases where nonprimitive - subprograms can get added to the list of incomplete dependents (such - as subprograms in nested packages). - * sem_ch6.adb (Process_Formals): First, remove test for being in a - private part when determining whether to add a primitive with a - parameter of a tagged incomplete type to the Private_Dependents list. - Such primitives can also occur in the visible part, and should not have - been excluded from being private dependents. - * sem_ch7.adb (Uninstall_Declarations): When checking the rule of - RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents - list of a Taft-amendment incomplete type is a primitive before issuing - an error that the full type must appear in the same unit. There are - cases where nonprimitives can be in the list (such as subprograms in - nested packages). - * sem_disp.adb (Derives_From): Use correct condition for checking that - a formal's type is derived from the type of the corresponding formal in - the parent subprogram (the condition was completely wrong). Add - checking that was missing for controlling result types being derived - from the result type of the parent operation. - -2011-08-02 Yannick Moy - - * errout.adb (First_Node): minor renaming - * restrict.adb (Check_Formal_Restriction): put restriction warning on - first node. - -2011-08-02 Yannick Moy - - * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator - before accessing operands. - * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to - decide whether an initialization expression respects SPARK rules, as - the plain node is the expanded one. This allows for more valid warnings - to be issued. - * gnat_rm.texi: Minor update. - -2011-08-02 Arnaud Charlet - - * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert - previous change. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, sem_ch4.adb: Minor reformatting. - -2011-08-02 Hristian Kirtchev - - * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original - loop statements and the element renaming declaration with a block when - the element type is controlled. - -2011-08-02 Yannick Moy - - * sinfo.ads: Minor formatting. - -2011-08-02 Ed Schonberg - - * sem_aggr.adb (Add_Association): if the association has a box and no - expression, use the Sloc of the aggregate itself for the new - association. - * errout.adb (First_Node): Exclude nodes with no Sloc, and always use - the Original_Node. - -2011-08-02 Hristian Kirtchev - - * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring. - When a container is provided via a function call, generate a renaming - of the function result. This avoids the creation of a transient scope - and the premature finalization of the container. - * exp_ch7.adb (Is_Container_Cursor): Removed. - (Wrap_Transient_Declaration): Remove the supression of the finalization - of the list controller when the declaration denotes a container cursor, - it is not needed. - -2011-08-02 Yannick Moy - - * restrict.adb (Check_Formal_Restriction): only issue a warning if the - node is from source, instead of the original node being from source. - * sem_aggr.adb - (Resolve_Array_Aggregate): refine the check for a static expression, to - recognize also static ranges - * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration, - Array_Type_Declaration): postpone the test for the type being a subtype - mark after the type has been resolved, so that component-selection and - expanded-name are discriminated. - (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm - to distinguish the case of an iteration scheme, so that an error is - issed on a non-static range in SPARK except in an iteration scheme. - * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with - In_Iter_Schm = True. - * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for - user-defined operators so that they are allowed in renaming - * sem_ch8.adb - (Find_Selected_Component): refine the check for prefixing of operators - so that they are allowed in renaming. Move the checks for restrictions - on selector name after analysis discriminated between - component-selection and expanded-name. - * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on - concatenation argument of string type if it is static. - * sem_util.adb, sem_util.ads - (Check_Later_Vs_Basic_Declarations): add a new function - Is_Later_Declarative_Item to decice which declarations are allowed as - later items, in the two different modes Ada 83 and SPARK. In the SPARK - mode, add that renamings are considered as later items. - (Enclosing_Package): new function to return the enclosing package - (Enter_Name): correct the rule for homonyms in SPARK - (Is_SPARK_Initialization_Expr): default to returning True on nodes not - from source (result of expansion) to avoid issuing wrong warnings. - -2011-08-02 Ed Schonberg - - * errout.adb: On anything but an expression First_Node returns its - argument. - -2011-08-02 Pascal Obry - - * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting. - -2011-08-02 Hristian Kirtchev - - * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization. - Set the associated loop as the related expression of internally - generated cursors. - * exp_ch7.adb (Is_Container_Cursor): New routine. - (Wrap_Transient_Declaration): Supress the finalization of the list - controller when the declaration denotes a container cursor. - -2011-08-02 Yannick Moy - - * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through - command line now. - * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the - expression is a simple expression. This check cannot be performed in - the semantics, so just drop it. - (P_Index_Or_Discriminant_Constraint): move check that the index or - discriminant is a subtype mark to Analyze_Subtype_Declaration in the - semantics. Other cases were previously checked in the semantics. - * par-ch4.adb (P_Name): move checks that a selector name is not - character literal or an operator symbol to Find_Selected_Component in - the semantics - * par-ch5.adb (Parse_Decls_Begin_End): move check that basic - declarations are not placed after later declarations in a separate - procedure in Sem_Util (possibly not the best choice?), to be used both - during parsing, for Ada 83 mode, and during semantic analysis, for - SPARK mode. - * par-endh.adb (Check_End): move check that end label is not missing - to Process_End_Label in the semantics - * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove - the special case for SPARK restriction - * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End - * restrict.adb, restrict.ads (Check_Formal_Restriction): add a - parameter Force to issue the error message even on internal node (used - for generated end label). Call Check_Restriction to check when an error - must be issued. In SPARK mode, issue an error message even if the - restriction is not set. - (Check_Restriction): new procedure with an additional out parameter to - inform the caller that a message has been issued - * sem_aggr.adb: Minor modification of message - * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction - instead of issuing an error message directly - * sem_ch3.adb (Analyze_Declarations): move here the check that basic - declarations are not placed after later declarations, by calling - Check_Later_Vs_Basic_Declarations - (Analyze_Subtype_Declaration): move here the check that an index or - discriminant constraint must be a subtype mark. Change the check that - a subtype of String must start at one so that it works on subtype marks. - * sem_ch4.adb (Analyze_Call): move here the check that a named - association cannot follow a positional one in a call - * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction - instead of issuing an error message directly - * sem_ch8.adb (Find_Selected_Component): move here the check that a - selector name is not a character literal or an operator symbol. Move - here the check that the prefix of an expanded name cannot be a - subprogram or a loop statement. - * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new - procedure called from parsing and semantics to check that basic - declarations are not placed after later declarations - (Process_End_Label): move here the check that end label is not missing - -2011-08-02 Arnaud Charlet - - * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum - representation clause in codepeer mode, since it confuses CodePeer and - does not bring useful info. - -2011-08-02 Ed Falis - - * init.c: initialize fp hw on MILS. - -2011-08-02 Ed Schonberg - - * errout.adb (First_Node): for bodies, return the node itself (small - optimization). For other nodes, do not check source_unit if the node - comes from Standard. - -2011-08-02 Robert Dewar - - * exp_ch3.adb: Minor comment additions. - * sem_ch13.adb: Minor reformatting. - -2011-08-02 Pascal Obry - - * make.adb, makeutl.adb: Removes some superfluous directory separator. - -2011-08-02 Robert Dewar - - * sem_attr.adb: Minor reformatting. - -2011-08-02 Robert Dewar - - * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value - (Has_Default_Component_Value): Removed - * einfo.ads Comment updates - (Has_Default_Aspect): Replaces Has_Default_Value - (Has_Default_Component_Value): Removed - * exp_ch13.adb - (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects - * exp_ch3.adb - (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects - (Get_Simple_Init_Val): Handle Default_Value aspect - (Needs_Simple_Initialization): Handle Default_Value aspect - * exp_ch3.ads: Needs_Simple_Initialization - * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect - * par-prag.adb (Pragma_Default[_Component]Value) Removed - * sem_ch13.adb - (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects - * sem_prag.adb (Pragma_Default[_Component]Value) Removed - * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate - package containing iteration primitives. - exp_ch5.adb (Expand_Iterator_Loop): ditto. - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with - "of", pre-analyze expression in case it is a function call with - finalization actions that must be placed ahead of the loop. - * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present - on an Ada2012 iterator, insert them ahead of the rewritten loop. - -2011-08-02 Geert Bosch - - * cstand.adb (Create_Float_Types): Only consider C's long double for - Long_Long_Float, in addition to double. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads, - sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads, - prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb: - Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_attr.adb: handle properly 'Result when it is a prefix of an - indexed component. - -2011-08-02 Javier Miranda - - * einfo.ads, einfo.adb - (Original_Access_Type): Move this attribute to Node26 since there was - an undocumented use of Node21 in E_Access_Subprogram_Type entities - which causes conflicts and breaks the generation of the .NET compiler. - (Interface_Name): Add missing documentation on JGNAT only uses of - this attribute. - -2011-08-02 Geert Bosch - - * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist - (Find_Back_End_Float_Type): Likewise - (Create_Back_End_Float_Types): Likewise - (Create_Float_Types): Likewise - (Register_Float_Type): Likewise - * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of - Nlist and split out type selection in new local Find_Base_Type function. - * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of - Nlist - * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist - -2011-08-02 Robert Dewar - - * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in - alpha order). - * opt.ads: Minor comment change. - * sem_ch12.adb: Minor code reorganization. - -2011-08-02 Gary Dismukes - - * sem_ch3.adb (Complete_Private_Subtype): Don't append the private - subtype's list of rep items to the list on the full subtype in the case - where the lists are the same. - -2011-08-02 Geert Bosch - - * switch-c.adb (Free): New deallocation procedure to avoid implicitly - using the one from System.Strings, which also deallocates all strings. - -2011-08-02 Geert Bosch - - * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New - function. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-02 Olivier Hainque - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function - end_locus. - -2011-08-02 Javier Miranda - - * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals - associated with anonymous access to subprograms. - -2011-08-02 Geert Bosch - - * opt.ads - (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions. - (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition. - * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads - (Add_Symbol_Definition): Move to switch-c.adb - (Process_Command_Line_Symbol_Definitions): Adjust references to above. - * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation. - (Add_Symbol_Definition): Move to switch-c.adb. - * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw. - * sem_warn.adb - (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): - Move to warnsw.adb. - * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size, - Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): - Move to warnsw.adb. - * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw. - (Add_Symbol_Definition): Moved from Prepcomp. - * switch-c.ads: Update copyright notice. Use String_List instead of - Argument_List, removing dependency on System.OS_Lib. - -2011-08-02 Yannick Moy - - * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal - mode on initialization expression which does not respect SPARK - restrictions. - * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines - if the tree referenced by its argument represents an initialization - expression in SPARK, suitable for initializing an object in an object - declaration. - -2011-08-02 Javier Miranda - - * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the - internally generated access to subprogram with its associated protected - subprogram type. - * einfo.ads, einfo.adb (Original_Access_Type): New attribute. - -2011-08-02 Geert Bosch - - * cstand.adb (Register_Float_Type): Print information about type to - register, if the Debug_Flag_Dot_B is set. - * debug.adb (Debug_Flag_Dot_B): Document d.b debug option. - * rtsfind.ads (RE_Max_Base_Digits): New run time entity. - * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations - with a requested precision of more than Max_Digits digits and no more - than Max_Base_Digits digits, if a range specification is present and the - Predefined_Float_Types list has a suitable type to derive from. - * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the - case of type completion with pragma Import - * sem_prag.adb - (Process_Import_Predefined_Type): Processing to complete a type - with pragma Import. Currently supports floating point types only. - (Set_Convention_From_Pragma): Do nothing without underlying type. - (Process_Convention): Guard against absence of underlying type, - which may happen when importing incomplete types. - (Process_Import_Or_Interface): Handle case of importing predefined - types. Tweak error message. - -2011-08-02 Eric Botcazou - - * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined - functions to previous change. Reorganize code slightly. - -2011-08-02 Geert Bosch - - * back_end.ads (Register_Type_Proc): New call back procedure type for - allowing the back end to provide information about available types. - (Register_Back_End_Types): New procedure to register back end types. - * back_end.adb (Register_Back_End_Types): Call the back end to enumerate - available types. - * cstand.adb (Back_End_Float_Types): New list for floating point types - supported by the back end. - (Build_Float_Type): Add extra parameter for Float_Rep_Kind. - (Copy_Float_Type): New procedure to make new copies of predefined types. - (Register_Float_Type): New call back procedure to populate the BEFT list - (Find_Back_End_Float_Type): New procedure to find a BEFT by name - (Create_Back_End_Float_Types): New procedure to populate the BEFT list. - (Create_Float_Types): New procedure to create entities for floating - point types predefined in Standard, and put these and any remaining - BEFTs on the Predefined_Float_Types list. - * stand.ads (Predefined_Float_Types): New list for predefined floating - point types that do not have declarations in package Standard. - -2011-08-02 Eric Botcazou - - * inline.adb (Get_Code_Unit_Entity): New local function. Returns the - entity node for the unit containing the parameter. - (Add_Inlined_Body): Use it to find the unit containing the subprogram. - (Add_Inlined_Subprogram): Likewise. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-02 Thomas Quinot - - * s-stusta.adb (Print): Make sure Pos is always initialized to a - suitable value. - -2011-08-02 Geert Bosch - - * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image. - -2011-08-02 Eric Botcazou - - * sem_type.adb (Covers): Move trivial case to the top and reuse the - computed value of Base_Type. - -2011-08-02 Yannick Moy - - * restrict.adb (Check_Restriction): issue an error for any use of - class-wide, even if the No_Dispatch restriction is not set. - * sem_aggr.adb: Correct typos in comments and messages in formal mode - * sem_ch3.adb (Process_Full_View): issue an error in formal mode is, - when completing a private extension, the type named in the private part - is not the same as that named in the visible part. - * sem_res.adb (Resolve_Call): issue an error in formal mode on the use - of an inherited primitive operations of a tagged type or type extension - that returns the tagged type. - * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new - function which returns True for an implicit operation inherited by the - derived type declaration for the argument type. - (Is_SPARK_Object_Reference): move to appropriate place in alphabetic - order. - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from - Process_Bounds, to perform analysis with expansion of a range or an - expression that is the iteration scheme for a loop. - (Analyze_Iterator_Specification): If domain of iteration is given by a - function call with a controlled result, as is the case if call returns - a predefined container, ensure that finalization actions are properly - generated. - * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range. - -2011-08-02 Javier Miranda - - * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-02 Javier Miranda - - * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to - determine if the analysis is performed using N or Original_Node (N). - * exp_util.adb (Side_Effect_Free): Code cleanup since the new - functionality of routine Is_Variable avoids code duplication. - * checks.adb (Determine_Range): Handle temporaries generated by - Remove_Side_Effects. - -2011-08-02 Javier Miranda - - * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and - expansion of the condition. Required since the previous analysis was - done with expansion disabled (see Resolve_Quantified_Expression) and - hence checks were not inserted and record comparisons have not been - expanded. - -2011-08-02 Ed Falis - - * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads: - Update header. - -2011-08-02 Bob Duff - - * opt.ads: Minor comment fix. - -2011-08-02 Bob Duff - - * sem_ch12.adb (Analyze_Package_Instantiation, - Analyze_Subprogram_Instantiation): Turn off style checking while - analyzing an instance. Whatever style checks that apply to the generic - unit should apply, so it makes no sense to apply them in an instance. - This was causing trouble when compiling an instance of a runtime - unit that violates the -gnatyO switch. - * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from - one of the two case statements, causing spurious errors. - -2011-08-02 Robert Dewar - - * uname.adb: Minor reformatting. - * gnatcmd.adb: Minor reformatting. - * exp_attr.adb: Minor reformatting. - -2011-08-02 Ed Schonberg - - * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction - No_Dispatching_Calls, do not look for the Assign primitive, because - predefined primitives are not created in this case. - -2011-08-02 Bob Duff - - * stylesw.ads: Minor comment fixes. - -2011-08-02 Robert Dewar - - * freeze.adb (Add_To_Result): New procedure. - -2011-08-02 Jose Ruiz - - * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run - time, if the specific run-time routines for handling streams of strings - are not available, use the default mechanism. - -2011-08-02 Arnaud Charlet - - * s-regpat.ads: Fix typo. - -2011-08-02 Vincent Celier - - * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is - not null, call it to create the in memory config project file without - parsing an existing default config project file. - -2011-08-02 Eric Botcazou - - * atree.adb (Allocate_Initialize_Node): Remove useless temporaries. - -2011-08-02 Ed Schonberg - - * sem_elim.adb: an abstract subprogram does not need an eliminate - pragma for its descendant to be eliminable. - -2011-08-02 Ed Falis - - * init.c: revert to handling before previous checkin for VxWorks - * s-intman-vxworks.adb: delete unnecessary declarations related to - using Ada interrupt facilities for handling signals. - Delete Initialize_Interrupts. Use __gnat_install_handler instead. - * s-intman-vxworks.ads: Import __gnat_install_handler as - Initialize_Interrupts. - * s-taprop-vxworks.adb: Delete Signal_Mask. - (Abort_Handler): change construction of mask to unblock exception - signals. - -2011-08-02 Jerome Guitton - - * a-except-2005.adb (Raise_From_Signal_Handler): Call - Debug_Raise_Exception before propagation starts. - -2011-08-02 Eric Botcazou - - * exp_ch6.adb (Expand_Call): Guard restriction checks with a call - to Restriction_Check_Required. - * sem_ch3.adb (Analyze_Object_Declaration): Likewise. - * sem_res.adb (Resolve_Call): Likewise. - * sem_attr.adb (Check_Stream_Attribute): Likewise. - -2011-08-02 Bob Duff - - * stylesw.ads: Update comment. - * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N. - * errout.ads: Remove obsolete comment. - -2011-08-02 Javier Miranda - - * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function. - (Set_Is_Safe_To_Reevaluate): new procedure. - * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no - assignment is allowed on safe-to-reevaluate variables. - (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the - temporary created to remove side effects in expressions that use - the secondary stack as safe-to-reevaluate. - * exp_util.adb (Side_Effect_Free): Add missing code to handle well - variables that are not true constants. - -2011-08-02 Robert Dewar - - * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads, - sem_res.adb, sem_ch6.adb: Minor reformatting. - -2011-08-02 Jerome Guitton - - * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code. - -2011-08-02 Ed Schonberg - - * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do - not set Overridden_Operation if subprogram is an initialization - procedure. - -2011-08-02 Yannick Moy - - * par-ch6.adb: Correct obsolete name in comments - * restrict.adb, restrict.ads (Check_Formal_Restriction): new function - which takes two message arguments (existing function takes one), with - second message used for continuation. - * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject - block statements that originate from a source block statement, not - generated block statements - * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for - symmetry with procedure case - * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new - function to issue an error in formal mode if a package specification - contains more than one tagged type or type extension. - * sem_res.adb (Resolve_Actuals): in formal mode, check that actual - parameters matching formals of tagged types are objects (or ancestor - type conversions of objects), not general expressions. Issue an error - on view conversions that are not involving ancestor conversion of an - extended type. - (Resolve_Type_Conversion): in formal mode, issue an error on the - operand of an ancestor type conversion which is not an object - * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the - procedure so that it works also for actuals of function calls - (Is_Actual_Tagged_Parameter): new function which determines if its - argument is an actual parameter of a formal of tagged type in a - subprogram call - (Is_SPARK_Object_Reference): new function which determines if the tree - referenced by its argument represents an object in SPARK - -2011-08-02 Robert Dewar - - * sem_ch3.adb: Minor reformatting - Minor comment addition - Minor error msg text change - -2011-08-02 Javier Miranda - - * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New - function. Used to be more precise when we generate a variable plus one - assignment to remove side effects in the evaluation of the Bound - expressions. - (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes - of the bound expression to force its re-analysis and thus expand the - associated transient scope (if required). Code cleanup replacing the - previous code that declared the constant entity by an invocation to - routine Force_Evaluation which centralizes this work in the frontend. - -2011-08-02 Robert Dewar - - * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table - (Base_Type): Now uses improved Is_Base_Type function - * einfo.ads (Base_Type): Inline this function - -2011-08-02 Robert Dewar - - * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion - (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas - -2011-08-02 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks - targets. - -2011-08-02 Yannick Moy - - * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on - non-simple expression used in delta constraint - (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on - index constraint which is not a subtype mark - * par.adb: With and use Restrict - * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal - mode on component type which is not a subtype mark and default - expression on component - (Analyze_Subtype_Declaration): issue an error in formal mode on subtype - of string which does not have a lower index bound equal to 1 - (Array_Type_Declaration): issue an error in formal mode on index or - component type which is not a subtype mark, and on aliased keyword on - component - (Derived_Type_Declaration): issue an error in formal mode on interface, - limited or abstract type - (Record_Type_Declaration): issue an error in formal mode on interface - (Record_Type_Definition): issue an error in formal mode on tagged types - and type extensions not declared in the specification of a library unit - package; on null non-tagged record; on variant part - -2011-08-02 Vincent Celier - - * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir - not declared for qualified library project when Library_Name is not - declared, but Library_Dir is. - -2011-08-02 Robert Dewar - - * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated - pragmas (affects aspects [Component_]Default_Value - (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use - component type for the resolution - -2011-08-02 Eric Botcazou - - * einfo.adb (Base_Type): Tune implementation for speed. - -2011-08-02 Robert Dewar - - * freeze.adb: Minor reformatting. - -2011-08-02 Thomas Quinot - - * scos.ads: Update comments. - -2011-08-02 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the - base type, because the parent may be a subtype of a private type whose - convention is established in a private part. - -2011-08-02 Hristian Kirtchev - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return - statement in a block when the expansion of the return expression has - created a finalization chain. - * freeze.adb (Freeze_Expression): Alphabetize all choices associated - with the parent node. - Add N_Extended_Return_Statement to handle the case where a transient - object declaration appears in the Return_Object_Declarations list of - an extended return statement. - -2011-08-02 Matthew Gingell - - * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly - unused parameter 'name'. - -2011-08-02 Ed Schonberg - - * sem_elim.adb (Set_Eliminated): If the overridden operation is an - inherited operation, check whether its alias, which is the source - operastion that it renames, has been marked eliminated. - -2011-08-02 Javier Miranda - - * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an - in-mode parameter whose type is an access type since it can be used to - modify its designated object. Enforce code that handles as safe an - access type that is not access-to-constant but it is the result of a - previous removal of side-effects. - (Remove_Side_Effects): Minor code reorganization of cases which require - no action. Done to incorporate documentation on new cases uncovered - working in this ticket: no action needed if this routine was invoked - too early and the nodes are not yet decorated. - * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls - to routine Remove_Side_Effects by calls to Force_Evaluation since they - were issued with actuals that are implicitly provided by - Force_Evaluation. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, sem_res.adb: Minor reformatting. - -2011-08-02 Yannick Moy - - * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure - to issue an error in formal mode on attribute not supported in this mode - (Analyze_Attribute): issue errors on standard attributes not supported - in formal mode. - * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of - comment, and issue error in formal mode on modulus which is not a power - of 2. - (Process_Range_Expr_In_Decl): issue error in formal mode on non-static - range. - * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in - subtype mark. - * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary - operator on modular type (except 'not'). - -2011-08-02 Robert Dewar - - * gnat_rm.texi: Minor reformatting. - -2011-08-02 Arnaud Charlet - - * s-osinte-linux.ads: Minor comment update and reformatting. - * i-cexten.ads: Make this unit pure, as for its parent. - Will allow its usage in more contexts if needed. - -2011-08-02 Robert Dewar - - * s-utf_32.ads: Minor comment fix. - -2011-08-02 Ed Schonberg - - * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive - operation of a tagged synchronized type, handle the case where the - controlling argument is overloaded. - -2011-08-02 Yannick Moy - - * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl: - Replace pragma SPARK_95 with pragma Restrictions (SPARK) - * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set - SPARK mode and formal verification mode on processing SPARK restriction - * s-rident.ads (Restriction_Id): add SPARK restriction in those not - requiring consistency checking. - -2011-08-02 Robert Dewar - - * sem_res.adb: Minor reformatting. - -2011-08-02 Robert Dewar - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads: Remove unneeded with of Ada.Containers - Remove commented out pragma Inline's - Move specifications of new subprograms to the actual specs - -2011-08-02 Yannick Moy - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads: Update comments. - -2011-08-02 Ed Schonberg - - * sem_attr.adb: add attribute name when 'Result has the wrong prefix. - -2011-08-02 Robert Dewar - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads, a-cofove.ads: Minor reformatting. - -2011-08-02 Claire Dross - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, - a-cofove.ads: Add comments. - -2011-08-02 Yannick Moy - - * gnat_rm.texi: Document formal containers. - -2011-08-02 Emmanuel Briot - - * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there - are empty sections. - -2011-08-02 Robert Dewar - - * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor - reformatting. - -2011-08-02 Robert Dewar - - * aspects.adb: New aspects Default_Value and Default_Component_Value - New format of Aspect_Names table checks for omitted entries - * aspects.ads: Remove mention of Aspect_Cancel and add documentation on - handling of boolean aspects for derived types. - New aspects Default_Value and Default_Component_Value - New format of Aspect_Names table checks for omitted entries - * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag - (Has_Default_Value): New flag - (Has_Default_Component_Value): New flag - (Has_Default_Value): New flag - * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names - table. - * par-prag.adb: New pragmas Default_Value and Default_Component_Value - * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects - Default_Value and Default_Component_Value - * sem_prag.adb: New pragmas Default_Value and Default_Component_Value - New aspects Default_Value and Default_Component_Value - * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value - * sprint.adb: Print N_Aspect_Specification node when called from gdb - -2011-08-02 Vincent Celier - - * prj-nmsc.adb (Check_Library_Attributes): For virtual library project, - inherit library kind. - -2011-08-02 Ed Schonberg - - * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds. - Minor reformatting. - -2011-08-02 Robert Dewar - - * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM - -2011-08-02 Yannick Moy - - * sem_aggr.adb (Resolve_Aggregate): Fix thinko. - -2011-08-02 Robert Dewar - - * impunit.adb: Add comment. - -2011-08-02 Yannick Moy - - * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks - qualification of aggregates in formal mode - (Is_Top_Level_Aggregate): returns True for an aggregate not contained in - another aggregate - (Resolve_Aggregate): complete the test that an aggregate is adequately - qualified in formal mode - -2011-08-02 Pascal Obry - - * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting. - * mlib-prj.adb: Supress warning when compiling binder generated file. - (Build_Library): Supress all warnings when compiling the binder - generated file. - -2011-08-02 Yannick Moy - - * errout.adb, errout.ads (Check_Formal_Restriction): move procedure - from here... - * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here - * sem_aggr.adb, sem_ch5.adb, sem_util.adb: - Add with/use clauses to make Check_Formal_Restriction visible - -2011-08-02 Ed Schonberg - - * sem_ch12.adb (Check_Generic_Actuals): handle properly actual - in-parameters when type of the generic formal is private in the generic - spec and non-private in the body. - -2011-08-02 Claire Dross - - * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb, - a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads, - a-cofove.adb, a-cofove.ads: New files implementing formal containers. - * impunit.adb, Makefile.rtl: Take new files into account. - -2011-08-02 Robert Dewar - - * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb, - sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting. - -2011-08-02 Yannick Moy - - * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in - formal mode - * sem_util.adb (Matching_Static_Array_Bounds): proper detection of - matching static array bounds, taking into account the special case of - string literals - * sem_ch3.adb: Typo in comment. - -2011-08-02 Yannick Moy - - * errout.adb, errout.ads (Check_Formal_Restriction): new procedure - which issues an error in formal mode if its argument node is originally - from source - * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type - has a discriminant specification so that it does not include the case - of derived types - (Derived_Type_Declaration): move here the test that a derived type has a - discriminant specification - * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the - first element of a component association before accessing its choices - (presence of component association is not enough) - * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram - declaration is a library item before accessing the next element in a - list, as library items are not member of lists - * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, - sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use - Check_Formal_Restriction whenever possible. - -2011-08-02 Ed Schonberg - - * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype - reference when needed. - -2011-08-02 Bob Duff - - * gnat_ugn.texi: Fix typo. - -2011-08-02 Vincent Celier - - * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of - archive file name. Do not use the full path name of archives for Open - VMS. - -2011-08-02 Robert Dewar - - * sem_ch12.adb, sem_ch11.adb: New calling sequence for - Analyze_Aspect_Specifications - * sem_ch13.adb - (Analyze_Aspect_Specifications): New handling for boolean aspects - * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence - * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling - sequence for Analyze_Aspect_Specifications - * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely - * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used - -2011-08-02 Robert Dewar - - * freeze.adb (Freeze_Entity): Remove handling of delayed boolean - aspects, since these no longer exist. - -2011-08-02 Robert Dewar - - * par-ch13.adb (Aspect_Specifications_Present): Always return false on - semicolon, do not try to see if there are aspects following it. - * par-ch3.adb (P_Declarative_Items): Better message for unexpected - aspect spec. - -2011-08-02 Robert Dewar - - * sem_ch8.adb, aspects.ads: Minor reformatting. - -2011-08-02 Eric Botcazou - - * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline. - * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure - extracted from... - (Analyze_Aspect_Specifications): ...here. Call above procedure. - -2011-08-02 Yannick Moy - - * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal - mode on subprogram declaration outside of package specification, unless - it is followed by a pragma Import - * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration, - Access_Type_Declaration): issue error in formal mode on access type - (Analyze_Incomplete_Type_Decl): issue error in formal mode on - incomplete type - (Analyze_Object_Declaration): issue error in formal mode on object - declaration which does not respect SPARK restrictions - (Analyze_Subtype_Declaration): issue error in formal mode on subtype - declaration which does not respect SPARK restrictions - (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue - error in formal mode on digits or delta constraint - (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on - decimal fixed point type - (Derived_Type_Declaration): issue error in formal mode on derived type - other than type extensions of tagged record types - * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant - with check on access definition - * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal - mode on protected definition. - (Analyze_Task_Definition): issue error in formal mode on task definition - -2011-08-02 Robert Dewar - - * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting. - -2011-08-02 Javier Miranda - - * sem_ch6.adb (Can_Override_Operator): New function. - (Verify_Overriding_Indicator): Add missing code to check overriding - indicator in operators. Fixes regression. - (Check_Overriding_Indicator): Minor reformating after replacing the - code that evaluates if the subprogram can override an operator by - invocations to the above new function. - * einfo.adb - (Write_Field26_Name): Add missing code to ensure that, following - the documentation in einfo.ads, this field is not shown as attribute - "Static_Initialization" on non-dispatching functions. - -2011-08-02 Jose Ruiz - - * sem_res.adb (Resolve_Call): A call to - Ada.Real_Time.Timing_Events.Set_Handler violates restriction - No_Relative_Delay (AI-0211) only when it sets a relative timing event, - i.e., when the second parameter is of type Time_Span. - -2011-08-02 Vincent Celier - - * make.adb (Gnatmake): use /lib.a to link - with an archive instead of -L -l. - -2011-08-02 Ed Schonberg - - * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed, - mark the base types In_Use in addition to making the operations - use_visible. - -2011-08-02 Ed Falis - - * init.c: add and setup __gnat_signal_mask for the exception signals - * s-inmaop-vxworks.adb: new file. - * s-intman-vxworks.adb: remove unnecessary initializations and - simplify remaining - * s-intman-vxworks.ads: remove unnecessary variable - * s-taprop-vxworks.adb: simplify signal initialization - -2011-08-02 Robert Dewar - - * sem_ch8.adb: Minor code reorganization, comment updates. - -2011-08-02 Robert Dewar - - * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util - * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved - here from Sem_Res. - (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression - (Matching_Static_Array_Bounds): Moved here from Sem_Res - -2011-08-02 Ed Schonberg - - * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5. - * par_ch8.adb (P_Use_Type): initialize Used_Operations for node. - * sinfo.ads, sinfo.adb (Used_Operations): new attribute of - use_type_clauses, to handle more efficiently use_type and use_all_type - constructs. - * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the - Ada2012 Use_All_Type clause. - (Use_Class_Wide_Operations): new procedure. - -2011-08-02 Robert Dewar - - * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb, - sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized - expression to expression function. - -2011-08-02 Ed Schonberg - - * sem_ch4.adb: transform simple Ada2012 membership into equality only - if types are compatible. - -2011-08-02 Yannick Moy - - * sem_res.adb (Matching_Static_Array_Bounds): new function which - returns True if its argument array types have same dimension and same - static bounds at each index. - (Resolve_Actuals): issue an error in formal mode on actuals passed as - OUT or IN OUT paramaters which are not view conversions in SPARK. - (Resolve_Arithmetic_Op): issue an error in formal mode on - multiplication or division with operands of fixed point types which are - not qualified or explicitly converted. - (Resolve_Comparison_Op): issue an error in formal mode on comparisons of - Boolean or array type (except String) operands. - (Resolve_Equality_Op): issue an error in formal mode on equality - operators for array types other than String with non-matching static - bounds. - (Resolve_Logical_Op): issue an error in formal mode on logical operators - for array types with non-matching static bounds. Factorize the code in - Matching_Static_Array_Bounds. - (Resolve_Qualified_Expression): issue an error in formal mode on - qualified expressions for array types with non-matching static bounds. - (Resolve_Type_Conversion): issue an error in formal mode on type - conversion for array types with non-matching static bounds - -2011-08-02 Robert Dewar - - * par-ch10.adb: Minor code reorganization (use Nkind_In). - -2011-08-02 Ed Schonberg - - * par-ch9.adb: save location of entry for proper error message. - -2011-08-02 Javier Miranda - - * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal - (Use_Full_View) which permits this routine to climb through the - ancestors using the full-view of private parents. - * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set - Use_Full_View to true in calls to Is_Ancestor. - * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to - true in call to Is_Ancestor. - * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set - Use_Full_View to true in call to Is_Ancestor. - * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in - call to Is_Ancestor. - * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set - Use_Full_View to true in calls to Is_Ancestor. - * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT, - Make_Select_Specific_Data_Table, Register_Primitive, - Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View - to true in call to Is_Ancestor. - * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set - Use_Full_View to true in calls to Is_Ancestor. - * exp_cg.adb - (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor. - (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor. - -2011-08-02 Robert Dewar - - * gnat_rm.texi: Minor reformatting. - * sem_prag.adb: Minor reformatting. - -2011-08-02 Tristan Gingold - - * vms_data.ads: Add VMS qualifier for -gnateP. - -2011-08-02 Robert Dewar - - * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty - * par-ch7.adb (P_Package): Proper placement of aspects for package - decl/instantiation. - * par-endh.adb (Check_End): Ad Is_Sloc parameter - (End_Statements): Add Is_Sloc parameterr - * par.adb (P_Aspect_Specification): New meaning of Decl = Empty - (Check_End): Ad Is_Sloc parameter - (End_Statements): Add Is_Sloc parameterr - -2011-08-02 Vincent Celier - - * ug_words: Add VMS qualifier equivalent to -gnateP: - /SYMBOL_PREPROCESSING. - -2011-08-02 Jose Ruiz - - * gnat-style.texi: For hexadecimal numeric literals the typical - grouping of digits is 4 to represent 2 bytes. - A procedure spec which is split into several lines is indented two - characters. - -2011-08-02 Yannick Moy - - * exp_aggr.adb (Is_Others_Aggregate): move function to other unit. - * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here - (Resolve_Aggregate): issue errors in formal modes when aggregate is not - properly qualified - (Resolve_Array_Aggregate): issue errors in formal modes on non-static - choice in array aggregate - (Resolve_Extension_Aggregate): issue errors in formal modes on subtype - mark as ancestor - (Resolve_Record_Aggregate): issue errors in formal modes on mixed - positional and named aggregate for record, or others in record - aggregate, or multiple choice in record aggregate - * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when - array operands to logical operations AND, OR and XOR do not have the - same static lower and higher bounds - * sem_ch5.adb, sinfo.ads: Correct typos in comments - -2011-08-01 Robert Dewar - - * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement): - Replaces Last_Source_Node_In_Sequence. - * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K - * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores - parens and blank in string (this was inconsistently implemented). - * errout.ads - (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and - blank in string (this was inconsistently implemented). - * gnat1drv.adb - (Set_Global_Switches): Set formal mode switches appropriately - * opt.ads, opt.adb: Formal mode is now global switches, more consistent - * par-prag.adb - (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and - call Set_Error_Msg_Lang to set "spark" as language name. - * par.adb: Remove unnecessary call to set formal language for errout - * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches - appropriately and call Set_Error_Msg_Lang to set "spark" as language - name. - * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and - calls to it, moved after resolution so that types are known - * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if - result of concatenation is not of type String - (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of - concatenation is not properly restricted - * gnat_rm.texi: Add doc on pragma Spark_95. - * gcc-interface/Makefile.in: Remove obsolete target pairs for - Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-01 Javier Miranda - - * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of - condition that detects if the overridden operation must replace an - existing entity. - -2011-08-01 Javier Miranda - - * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded - code declarations inserted by Insert_Actions in each alternative of the - N_Case_Expression node. - -2011-08-01 Robert Dewar - - * sem_ch6.adb: Minor code reorganization. - * sem_util.adb: Minor reformatting. - -2011-08-01 Pascal Obry - - * prj-env.adb: Remove /lib/gpr/ project search path. - * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource. - -2011-08-01 Yannick Moy - - * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character - literal or operator symbol which is prefixed - * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal - mode on access attributes. - * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check - that concatenation operands are properly restricted in formal mode - (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure - Analyze_Concatenation_Operand. Issue an error in formal mode if the - result of the concatenation has a type different from String. - (Analyze_Conditional_Expression, Analyze_Explicit_Dereference, - Analyze_Quantified_Expression, Analyze_Slice, - Analyze_Null): issue an error in formal mode on unsupported constructs - * sem_ch5.adb - (Analyze_Block_Statement): only issue error on source block statement - * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new - function which returns the last node in a list of nodes for which - Comes_From_Source returns True, if any - * sem_ch6.adb (Check_Missing_Return): minor refactoring to use - Last_Source_Node_In_Sequence - * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming, - Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal - mode on unsupported constructs - * sem_ch9.adb Do not return after issuing error in formal mode, as the - rest of the actions may be needed later on since the error is marked as - not serious. - * sinfo.ads: Typos in comments. - -2011-08-01 Pascal Obry - - * projects.texi: Minor editing. - -2011-08-01 Yannick Moy - - * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for - insertion character ~~ - * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures - (Set_Error_Msg_Lang): new procedure which fixes the language for use - with insertion character ~~ - (Set_Msg_Text): treat insertion character ~~ - * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb, - sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to - Formal_Error_Msg_... procedures by equivalent Error_Msg_... - procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make - errors related to the formal language restriction not serious - (insertion character |). - * par.adb (Par): set formal language for error messages if needed - * sem_ch6.adb (Check_Missing_Return): take into account possible - generated statements at the end of the function - * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and - enumeration value to define a new pragma SPARK_95 - * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default, - SPARK_Version): new type and variables to store the SPARK version - (none by default). - (SPARK_Mode): return True when SPARK_Version is set - * par-prag.adb: Correct indentation - (Prag): take Pragma_SPARK_95 into account - * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95 - into account. - -2011-08-01 Robert Dewar - - * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb, - sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb, - sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting - -2011-08-01 Pascal Obry - - * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass - Target_Name to Get_Path call. - (Parse_Single_Project): Likewise. - (Post_Parse_Context_Clause): Likewise. - * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter. - Call Initialise_Project_Path with the proper Target_Name. - (Initialize_Project_Path): Add //lib/gnat - search path. - (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path - with the proper Target_Name. - * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to - Part.Parse routine. - (Parse_Project_And_Apply_Config): Likewise. - * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine. - This is fine as this part of the code is supporting only native - compilation. - * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This - is fine as this part of the code is supporting only native compilation. - -2011-08-01 Yannick Moy - - * sem_util.adb (Enter_Name): issue error in formal mode on declaration - of homonym, unless the homonym is one of the cases allowed in SPARK - * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for - package declaration occurring after a body. - -2011-08-01 Robert Dewar - - * checks.adb, exp_ch4.adb: Minor reformatting. - -2011-08-01 Javier Miranda - - * einfo.ads (Access_Disp_Table): Fix documentation. - (Dispatch_Table_Wrappers): Fix documentation. - -2011-08-01 Pascal Obry - - * prj-env.adb, prj-env.ads: Minor reformatting. - -2011-08-01 Yannick Moy - - * sem_util.ads, sem_util.adb, par.adb, par_util.adb - (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move - procedures out of these packages. - * errout.ads, errout.adb - (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move - procedures in of this package - (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE - * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode - on misplaced later vs initial declarations, like in Ada 83 - * sem_attr.adb (Processing for Analyze_Attribute): issue error in - formal mode on attribute of private type whose full type declaration - is not visible - * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a - package declaration inside a package specification - (Analyze_Full_Type_Declaration): issue error in formal mode on - controlled type or discriminant type - * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on - user-defined operator means that it should come from the source - (New_Overloaded_Entity): issue error in formal mode on overloaded - entity. - * sem_ch6.ads, sem_ch13.ads: typos in comments. - -2011-08-01 Thomas Quinot - - * atree.adb: Minor reformatting. - * checks.adb: Minor reformatting. - -2011-08-01 Vincent Celier - - * s-parame-vms-ia64.ads: Fix typo in comment - Minor reformatting - * s-parame-vms-restrict.ads: Removed, unused. - -2011-08-01 Javier Miranda - - * exp_ch3.adb - (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound. - * sem_ch3.adb - (Constrain_Index): Remove side effects in the evaluation of the bounds. - * sem_ch3.ads, sem_ch3.adb - (Is_Constant_Bound): New extended version of the subprogram that was - previously located inside function Exp_Ch3.Is_Variable_Size_Array. - Moved here since it is shared by routines of sem_ch3 and exp_ch3. - * sem_aux.ads (Constant_Value): Fix typo in comment. - * checks.adb (Generate_Index_Checks): New implementation which, for - array objects with constant bounds, generates the runtime check - referencing the bounds of the array type. For other cases this routine - provides its previous behavior obtaining such values from the array - object. - * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its - parent type. - * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since - we cannot have semantic interpretations of the new node. - -2011-08-01 Ed Schonberg - - * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified - expressions. - -2011-08-01 Arnaud Charlet - - * sem_ch8.adb: Minor code editing. - * s-vxwext.adb: Remove trailing space. - * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for - consistency with other files. - -2011-08-01 Thomas Quinot - - * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting. - -2011-08-01 Ed Schonberg - - * par-ch10.adb: reject parameterized expressions as compilation unit. - * sem_ch4.adb: handle properly conditional expression with overloaded - then_clause and no else_clause. - -2011-08-01 Tristan Gingold - - * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address - like done by System.Aux_DEC. - * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table. - -2011-08-01 Yannick Moy - - * par-endh.adb (Check_End): issue a syntax error in SPARK mode for - missing label at end of declaration (subprogram or package) - * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing - of positional and named parameter association - * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on - Error_Msg_SP which adds a prefix to the error message giving the name - of the formal language analyzed - * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for - access result type in subprogram, unconstrained array as result type,. - (Analyze_Subprogram_Declaration): issue an error in formal mode for null - procedure - * sem_ch8.adb: Code clean up. - -2011-08-01 Javier Miranda - - * sem_ch7.adb (Uninstall_Declarations): Remove useless code. - * einfo.ads (Access_Disp_Table): Fix documentation. - (Dispatch_Table_Wrappers): Fix documentation. - * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers, - Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions - to enforce the documentation of this attribute. - (Set_Is_Interface): Cleanup the assertion. - * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate - the Underlying_Type entity before reading attribute Access_Disp_Table. - * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion): - Locate the Underlying_Type before reading attribute Access_Disp_Table. - * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate - the Underlying_Type entity before reading attribute Access_Disp_Table. - * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration): - Locate the Underlying_Type entity before reading attribute - Access_Disp_Table. - -2011-08-01 Ed Schonberg - - * s-poosiz.ads: Additional overriding indicators. - -2011-08-01 Yannick Moy - - * sem_ch5.adb (Analyze_Exit_Statement): add return after error in - formal mode. - (Analyze_Iteration_Scheme): issue error in formal mode when loop - parameter specification does not include a subtype mark. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in - formal mode on abstract subprogram. - (Analyze_Subprogram_Specification): issue error in formal mode on - user-defined operator. - (Process_Formals): issue error in formal mode on access parameter and - default expression. - * sem_ch9.adb (Analyze_Abort_Statement, - Analyze_Accept_Statement, Analyze_Asynchronous_Select, - Analyze_Conditional_Entry_Call, Analyze_Delay_Relative, - Analyze_Delay_Until, Analyze_Entry_Call_Alternative, - Analyze_Requeue, Analyze_Selective_Accept, - Analyze_Timed_Entry_Call): issue error in formal mode on such constructs - * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error): - issue error in formal mode on user-defined raise statement. - -2011-08-01 Thomas Quinot - - * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a - declaration being hidden when overriding an implicit inherited - subprogram. - * par-ch10.adb (P_Compilation_Unit): In syntax check only mode - (-gnats), do not complain about a source file that contains only a - pragma No_Body. - -2011-08-01 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop - variable if already set. - -2011-08-01 Arnaud Charlet - - * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads, - g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads, - s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads, - g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb, - g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads, - g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads, - g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads, - g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb, - g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb, - g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads, - g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads, - s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb, - g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads, - s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads, - g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb, - g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb, - g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb, - g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb, - g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb, - g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb, - s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads, - s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads, - a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb, - s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads, - s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb, - g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads, - g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb, - g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb, - g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads, - g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads, - g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads, - s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads, - s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb, - g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb, - g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads, - s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb, - s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads, - g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads, - g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb, - g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, - s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads, - g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads, - g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads, - g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb, - s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb, - g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb, - g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb, - g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb, - s-osinte-mingw.ads: Update to GPLv3 run-time license. - Use GNAT instead of GNARL. - -2011-08-01 Bob Duff - - * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads, - a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads, - a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor - reformatting. - -2011-08-01 Yannick Moy - - * debug.adb (d.D) reverve flag for the SPARK mode - (d.E) reverve flag for SPARK generation mode - (d.F) reverve flag for Why generation mode - * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode, - ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New - functions which return True when the corresponding modes are set - (Formal_Language): return "spark" or "alfa" when in formal verification - mode. - * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on - Error_Msg to prefix the error message with a tag giving the formal - language - (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error - message with a tag giving the formal language - * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on - block statement - (Analyze_Case_Statement): issue error in formal mode on case statement - with a single "others" case alternative - (Analyze_Exit_Statement): issue errors in formal mode on exit - statements which do not respect SPARK restrictions - (Analyze_Goto_Statement): issue error in formal mode on goto statement - (Check_Unreachable_Code): always issue an error (not a warning) in - formal mode on unreachable code (concerns both code after an infinite - loop and after an unconditional jump, both not allowed in SPARK) - * sem_ch6.adb (Analyze_Return_Statement): add call to - Set_Return_Present for a procedure containing a return statement - (already done for functions in Analyze_Function_Return) - (Analyze_Function_Return): issue error in formal mode on extended - return or if return is not last statement in function - (Check_Missing_Return): issue error in formal mode if function does - not end with return or if procedure contains a return - * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new - function to detect if there is an inner scope of its parameter S which - is a loop. - -2011-08-01 Thomas Quinot - - * sem_ch6.ads: Minor reformatting. - -2011-08-01 Javier Miranda - - * sem_util.adb (Abstract_Interface_List): Complete condition when - processing private type declarations to avoid reading unavailable - attribute. - (Is_Synchronized_Tagged_Type): Complete condition when processing - private extension declaration nodes to avoid reading unavailable - attribute. - -2011-08-01 Thomas Quinot - - * sem_ch3.adb: Minor reformatting. - -2011-08-01 Thomas Quinot - - * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads, - i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads, - s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads, - s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages - for VMS, instead parametrize the common implementation with - System.Parameters declarations. - -2011-08-01 Eric Botcazou - - * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing. - -2011-08-01 Tristan Gingold - - * seh_init.c: Fix SEH handler installation on win64. - -2011-08-01 Ed Schonberg - - * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent - double analysis of an anonymous access to subprogram, because it can - lead to improper sharing of profiles and a back-end crash. - -2011-08-01 Robert Dewar - - * make.adb, sem_ch4.adb: Minor reformatting. - * gcc-interface/Make-lang.in: Update dependencies. - * sem_util.adb, exp_ch5.adb: Minor reformatting. - -2011-08-01 Arnaud Charlet - - * gnat_rm.texi: Fix definition of Long_Integer. - -2011-08-01 Ed Schonberg - - * exp_aggr.adb: check limit size of static aggregate unconditionally, - to prevent storage exhaustion. - * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being - finalized is a function body, insert the cleanup code before the final - return statement, to prevent spurious warnings. - * s-pooglo.ads: add overriding indicator. - -2011-08-01 Ed Schonberg - - * sem_ch4.adb (Operator_Check): improve error message when both a - with_clause and a use_clause are needed to make operator usage legal. - * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to - determine whether a compilation unit is visible within an other, - either through a with_clause in the current unit, or a with_clause in - its library unit or one one of its parents. - -2011-08-01 Ed Schonberg - - * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator - over an arbitrary expression of an array or container type. - * lib-xref.adb: clarify comment. - -2011-08-01 Bob Duff - - * einfo.ads: Minor reformatting. - * debug.adb: Minor comment improvement. - -2011-08-01 Javier Miranda - - * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not - consider hidden subprograms as valid candidates. - -2011-08-01 Arnaud Charlet - - * make.adb (Compile): Strip -mxxx switches in CodePeer mode. - -2011-08-01 Vasiliy Fofanov - - * gnat_ugn.texi: Fix typo. - -2011-08-01 Robert Dewar - - * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb, - lib-xref.adb: Minor reformatting - -2011-08-01 Gary Dismukes - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of - when to generate a call to Move_Final_List. - (Has_Controlled_Parts): Remove this function. - -2011-08-01 Geert Bosch - - * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra - "," in choice list. - -2011-08-01 Thomas Quinot - - * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for - explicit raise of a predefined exception as Comes_From_Source if the - original N_Raise_Statement comes from source. - -2011-08-01 Robert Dewar - - * sinfo.ads: Add comment. - * sem_ch6.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * freeze.adb (Freeze_Entity): Refine check for bad component size - clause to avoid rejecting confirming clause when atomic/aliased present. - -2011-08-01 Ed Schonberg - - * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to - better determine whether an entity reference is a write. - * sem_util.adb (Is_LHS): refine predicate to handle assignment to a - subcomponent. - * lib-xref.adb (Output_References): Do no suppress a read reference at - the same location as an immediately preceeding modify-reference, to - handle properly in-out actuals. - -2011-08-01 Tristan Gingold - - * env.c (__gnat_setenv) [VMS]: Refine previous change. - -2011-08-01 Quentin Ochem - - * i-cstrin.adb (New_String): Changed implementation, now uses only the - heap to compute the result. - -2011-08-01 Robert Dewar - - * atree.ads: Minor reformatting. - -2011-08-01 Emmanuel Briot - - * g-expect.adb (Get_Command_Output): Fix memory leak. - -2011-08-01 Geert Bosch - - * cstand.adb (P_Float_Type): New procedure to print the definition of - predefined fpt types. - (P_Mixed_Name): New procedure to print a name using mixed case - (Print_Standard): Use P_Float_Type for printing floating point types - * einfo.adb (Machine_Emax_Value): Add preliminary support for quad - precision IEEE float. - -2011-08-01 Thomas Quinot - - * sem_ch3.adb: Minor reformatting. - -2011-08-01 Ed Schonberg - - * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is - the completion of a generic function, insert the new body rather than - rewriting the original. - -2011-08-01 Yannick Moy - - * sinfo.ads, errout.ads: Typos in comments. - -2011-08-01 Robert Dewar - - * par-endh.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add aspects for library unit pragmas - (Pre_Post_Aspects): New subtype. - * par-ch12.adb (P_Generic): New syntax for aspects in packages - * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter - * par-ch7.adb (P_Package): Remove Decl parameter - (P_Package): Handle new syntax for aspects (before IS) - * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle - new aspect syntax - (P_Task_Definition): Remove Decl parameter, handle new aspect syntax - * par.adb (P_Aspect_Specifications): Add Semicolon parameter - (P_Package): Remove Decl parameter - * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit - aspects - * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect - specs - * sem_util.ads, sem_util.adb (Static_Boolean): New function - * sinfo.ads: Document new syntax for aspects in packages etc. - * sprint.adb: Handle new syntax of aspects before IS in package - -2011-08-01 Thomas Quinot - - * atree.ads: Minor reformatting. - * sem_prag.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * exp_util.adb (Insert_Actions): Fix error in handling Actions for - case expr alternative. - -2011-08-01 Ed Schonberg - - * sem_ch12.adb: Fix typo. - -2011-08-01 Geert Bosch - - * sem_prag.adb (Check_No_Link_Name): New procedure. - (Process_Import_Or_Interface): Use Check_No_Link_Name. - * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float) - instead of Standard_Long_Long_Float_Size global. Preparation for - eventual removal of per type constants. - * exp_util.ads (Get_Stream_Size): New function returning the stream - size value of subtype E. - * exp_util.adb (Get_Stream_Size): Implement new function. - * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size - function. - * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size - * einfo.adb: - (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats - -2011-08-01 Geert Bosch - - * cstand.adb: Fix comments. - * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit - count of arguments. - -2011-08-01 Robert Dewar - - * exp_ch4.adb, sem_cat.adb: Minor reformatting. - -2011-08-01 Geert Bosch - - * atree.ads: Fix comment. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec. - * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name. - * par.adb: Add with for Namet.Sp. - * par-tchk.adb: Minor reformatting. - -2011-08-01 Vincent Celier - - * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb - (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name - of the init procedure of a SAL. - * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name): - New procedure. - -2011-08-01 Thomas Quinot - - * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor - reformatting. - -2011-08-01 Richard Kenner - - * adaint.c (__gnat_file_time_name_attr): Get rid of warning. - -2011-08-01 Thomas Quinot - - * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function - conformant with its spec (return True only for types that have - an overriding Initialize primitive operation that prevents them from - having preelaborable initialization). - * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable - initialization for controlled types in Ada 2005 or later mode. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition, - Postcondition. - (Same_Aspect): New function. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect - Type_Invariant, Precondition, Postcondition. - * snames.ads-tmpl: Add Name_Type_Invariant. - -2011-08-01 Robert Dewar - - * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point - here. - (Freeze_All_Ent): Fix error in handling inherited aspects. - * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is - already analyzed, but don't skip entire processing of a declaration, - that's wrong in some cases of declarations being rewritten. - (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects. - Don't delay for integer, string literals - Treat predicates in usual manner for delay, remove special case code, - not needed. - (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point - (Build_Predicate_Function): Update saved expression in aspect - (Build_Invariant_Procedure): Update saved expression in aspect - * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization - of replacement of discriminant references if the reference is simple. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate. - * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for - Static_Predicate and Dynamic_Predicate. - (Build_Predicate_Function): Add processing for Static_Predicate - and Dynamic_Predicate. - * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag - (From_Static_Predicate): New flag - * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate - -2011-08-01 Robert Dewar - - * usage.adb: Documentation cleanup for Ada version modes in usage. - * expander.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * atree.ads: Minor comment fix. - * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads, - a-witeio.ads, sem_prag.adb: Minor reformatting. - -2011-08-01 Doug Rupp - - * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure - pointers. Use descrip.h header file for convenience. Add some - comments. - -2011-08-01 Robert Dewar - - * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point - (Freeze_All): Call Check_Aspect_At_End_Of_Declarations - * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point): - New procedure. - (Check_Aspect_At_End_Of_Declarations): New procedure - (Analye_Aspect_Specification): Minor changes for above procedures - * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect - specification node as well. - -2011-08-01 Pascal Obry - - * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special - Windows files. Use GetFilesAttributes() in this case to check for file - existence instead of returning with an error code. - -2011-08-01 Vincent Celier - - * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when - High is above Source length. - -2011-08-01 Robert Dewar - - * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment. - -2011-08-01 Robert Dewar - - * aspects.ads (Boolean_Aspects): New subtype. - * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects - for derived types in cases where the parent type and derived type have - aspects. - * freeze.adb (Freeze_Entity): Fix problems in handling derived type - with aspects when parent type also has aspects. - (Freeze_Entity): Deal with delay of boolean aspects (must evaluate - boolean expression at this point). - * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in - accordance with final decision on the Ada 2012 feature. - * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag. - -2011-08-01 Matthew Heaney - - * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector. - -2011-08-01 Pascal Obry - - * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: - Fix Replace_Slice when High is above current string size. - (Replace_Slice): Fix DL computation when High is above current - string length. - -2011-08-01 Gary Dismukes - - * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired. - -2011-08-01 Matthew Heaney - - * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child - of node. - -2011-08-01 Pascal Obry - - * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor - reformatting. - -2011-08-01 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named - access to protected subprograms in generic bodies. - * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a - protected type, indicate that the convention of the subprogram is - Convention_Protected, because it may be used in subsequent declarations - within the protected declaration. - -2011-08-01 Vincent Celier - - * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init" - and "final" procedures when the name of the library is "ada", to avoid - duplicate symbols "adainit" and "adafinal" in executables. - -2011-08-01 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a - quantified expression that appears within a postcondition and uses the - Ada2012 'Result attribute. - -2011-07-28 Rainer Orth - - * init.c (__gnat_error_handler): Cast reason to int. - (__gnat_install_handler): Explain sa_sigaction use. - -2011-07-24 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If the - subprogram has copy-in copy-out parameters, try to promote the mode of - the return type if it is passed in registers. - -2011-07-24 Eric Botcazou - - * gcc-interface/utils2.c (build_binary_op) : Do not mark the - left operand as addressable. - -2011-07-24 Eric Botcazou - - * gcc-interface/gigi.h (build_function_stub): Remove. - (build_return_expr): Likewise. - (convert_vms_descriptor): Declare. - * gcc-interface/utils.c (convert_vms_descriptor): Make global. - (build_function_stub): Move to... - * gcc-interface/utils2.c (build_return_expr): Move to... - * gcc-interface/trans.c (build_function_stub): ...here. - (build_return_expr): ...here. - (Subprogram_Body_to_gnu): Add local variable for language_function. - Disconnect the parameter attributes cache, if any, once done with it. - Call end_subprog_body only after setting the end_locus. - Build the stub associated with the function, if any, at the very end. - (gnat_to_gnu) : Remove couple of useless local - variables and streamline control flow. - -2011-07-23 Arnaud Charlet - - PR ada/49819 - * gcc-interface/Makefile.in (powerpc-linux): Remove reference to - g-trasym-dwarf.adb. - -2011-07-22 Rainer Orth - - PR bootstrap/49794 - * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): - Assign to act.sa_sigaction. - * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast - current->return_address to char * before arithmetic. - -2011-07-22 Rainer Orth - - * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation. - Correct argument types. - Extract code from reason. - (__gnat_install_handler): Assign to act.sa_sigaction. - -2011-07-21 Eric Botcazou - - * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to... - (GNAT1_OBJS): ...here. - -2011-07-15 Eric Botcazou - - PR ada/48711 - * g-socthi-mingw.adb (Fill): Fix formatting. - - * gcc-interface/gigi.h: Move around comment. - -2011-07-14 John David Anglin - - PR ada/46350 - * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. - -2011-07-14 Florian Weimer - - PR ada/48711 - * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL. - -2011-07-13 Eric Botcazou - - * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit - range comparison if Pmode is SImode. - -2011-07-12 Laurent GUERBY - Eric Botcazou - - * adadecode.c: Wrap up in extern "C" block. - * adadecode.h: Likewise. - * adaint.c: Likewise. Remove 'const' keyword. - * adaint.h: Likewise. - * argv.c: Likewise. - * atree.h: Likewise. - * cio.c: Likewise. - * cstreams.c: Likewise. - * env.c: Likewise. - * exit.c: Likewise. - * fe.h: Likewise. - * final.c: Likewise. - * init.c: Likewise. - * initialize.c: Likewise. - * link.c: Likewise. - * namet.h: Likewise. - * nlists.h: Likewise. - * raise.c: Likewise. - * raise.h: Likewise. - * repinfo.h: Likewise. - * seh_init.c: Likewise. - * targext.c: Likewise. - * tracebak.c: Likewise. - * uintp.h: Likewise. - * urealp.h: Likewise. - * xeinfo.adb: Wrap up generated C code in extern "C" block. - * xsinfo.adb: Likewise. - * xsnamest.adb: Likewise. - * gcc-interface/gadaint.h: Wrap up in extern "C" block. - * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block. - * gcc-interface/misc.c: Likewise. - * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER. - (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and - ada/targext.o here... - (GNAT_ADA_OBJS): ...and not here. - (GNAT1_ADA_OBJS): Add ada/b_gnat1.o. - (GNATBIND_OBJS): Reorder. - -2011-07-07 Richard Henderson - - * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call - dwarf2out_frame_init. - -2011-07-07 Eric Botcazou - - * gcc-interface/misc.c (gnat_init): Tweak previous change. - -2011-07-07 Rainer Orth - - PR target/39150 - * gcc-interface/Makefile.in: Handle x86_64-solaris2. - -2011-07-06 Richard Guenther - - * gcc-interface/misc.c (gnat_init): Merge calls to - build_common_tree_nodes and build_common_tree_nodes_2. - Re-initialize boolean_false_node. - -2011-07-02 Eric Botcazou - Olivier Hainque - Nicolas Setton - - * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on - the type according to the ARTIFICIAL_P parameter. - (create_type_decl): Likewise. - (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1. - -2011-07-01 Eric Botcazou - - * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command. - (gnatbind): Likewise. - -2011-06-29 Rainer Orth - - * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL). - -2011-06-18 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE - local variable throughout. Remove useless call to Base_Type. - (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout. - Take it also into account for the volatileness of the field. Set the - TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings. - -2011-06-18 Eric Botcazou - - * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP - on a dereference built for a by-ref object if it has an address clause. - -2011-06-18 Eric Botcazou - - * einfo.ads (Address_Taken): Document use for the second argument of - Asm_Input and Asm_Output attributes. - * sem_attr.adb (Analyze_Attribute) : If the second - argument is an entity name, then set Address_Taken on it. - : Likewise. - * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the - Attr_Asm_Input and Attr_Asm_Output attributes explicitly. - (gnat_to_gnu) : If an operand is going to end up in - memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. - -2011-06-16 Joern Rennecke - - PR middle-end/46500 - * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args. - -2011-06-14 Joseph Myers - - * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o. - (ada/utils.o): Update dependencies. - * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add - ../../../libcpp/libcpp.a. - * gcc-interface/utils.c: Include common/common-target.h. - (process_attributes): Use targetm_common.have_named_sections. - -2011-06-07 Richard Guenther - - * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call - set_sizetype. - -2011-06-06 Eric Botcazou - - * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the - TREE_THIS_NOTRAP flag. - -2011-06-06 Eric Botcazou - - * gcc-interface/utils2.c (gnat_stabilize_reference) : - Fix thinko. - -2011-06-06 Eric Botcazou - - * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred - constants whose full view has discriminants specially. - -2011-06-06 Eric Botcazou - - * gcc-interface/utils.c: Include diagnostic.h. - (gnat_write_global_declarations): Output debug information for all - global type declarations before finalizing the compilation unit. - * gcc-interface/Make-lang.in (ada/utils.o): Add dependency. - -2011-05-25 Jakub Jelinek - - * gcc-interface/utils.c (def_fn_type): Remove extra va_end. - -2011-05-25 Kai Tietz - - * adaint.c (__gnat_to_canonical_file_list_next): Use array - initialization instead of const/none-const pointer assignment. - -2011-05-24 Joseph Myers - - * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include - $(EXTRA_GNAT1_OBJS). - (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). - (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. - (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. - * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use - libcommon-target.a instead of prefix.o. - -2011-05-21 Joseph Myers - - PR ada/49097 - * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS). - -2011-05-20 Joseph Myers - - * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o. - * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a - instead of version.o. - -2011-05-18 Kai Tietz - - * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use - boolean_false_node instead of integer_zero_node. - (convert_with_check): Likewise. - * gcc-interface/decl.c (choices_to_gnu): Likewise. - -2011-05-12 Eric Botcazou - - * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the - type of the parameter is an unconstrained array, convert the actual to - the type of the formal in the In Out and Out cases as well. - -2011-05-11 Nathan Froyd - - * gcc-interface/utils.c (def_fn_type): Don't call build_function_type; - call build_function_type_array or build_varargs_function_type_array - instead. - (create_subprog_type): Don't call build_function_type; call - build_function_type_vec instead. - -2011-05-11 Nathan Froyd - - * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL. - (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL. - (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL. - -2011-05-07 Eric Botcazou - - * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces. - - * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. - * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. - -2011-05-05 Nathan Froyd - - * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label. - -2011-05-05 Nathan Froyd - - * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators - instead of accessing TYPE_ARG_TYPES directly. - * gcc-interface/utils.c (handle_nonnull_attribute): Likewise. - -2011-05-05 Eric Botcazou - - PR ada/48844 - * gcc-interface/gigi.h (get_variant_part): Declare. - * gcc-interface/decl.c (get_variant_part): Make global. - * gcc-interface/utils2.c (find_common_type): Do not return T1 if the - types have the same constant size, are record types and T1 has a - variant part while T2 doesn't. - -2011-05-05 Eric Botcazou - - * gcc-interface/utils.c (begin_subprog_body): Do not call - get_pending_sizes. - (end_subprog_body): Likewise. - -2011-05-04 Richard Guenther - - * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to - int_const_binop. - (pos_to_constructor): Likewise. - -2011-05-03 Nathan Froyd - Eric Botcazou - - * gcc-interface/trans.c (gigi): Call build_function_type_list instead - of build_function_type. Adjust calls to... - (build_raise_check): ...this. Do not take a void_tree parameter. - Call build_function_type_list instead of build_function_type. - Fix head comment and swap couple of conditional blocks. - -2011-04-30 Eric Botcazou - - * gnatvsn.ads (Library_Version): Bump to 4.7. - (Current_Year): Bump to 2011. - -2011-04-29 Michael Matz - - * gcc-interface/misc.c (gnat_handle_option): Set - warn_maybe_uninitialized. - -2011-04-23 Gerald Pfeifer - - * gnat_ugn.texi (Complexity Metrics Control): Update link to - the Watson/McCabe paper. - -2011-04-23 Jim Meyering - - * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/ - -2011-04-22 Eric Botcazou - - * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE - onto the new type. - -2011-04-22 Eric Botcazou - - * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG - parameter. - * gcc-interface/utils.c (create_subprog_decl): Likewise. Set - DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Add - ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl. - : Do not set flags on the reused DECL node coming from an alias. - Set DECL_IGNORED_P on the DECL node built for subprograms if they - don't need debug info here... - * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here. - (gigi): Adjust calls to create_subprog_decl. - (build_raise_check): Likewise. - (establish_gnat_vms_condition_handler): Likewise. - (Compilation_Unit_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - -2011-04-21 Eric Botcazou - - * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define. - (NO_REORDER_ADAFLAGS): New variable. - (EXTRA_GNATTOOLS): Always define. - (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h. - Clean up and adjust list of files compiled with special options. - * gcc-interface/Make-lang.in: Likewise. - (ada/decl.o): Cosmetical change. - (ada/misc.o): Remove dependency on $(PLUGIN_H). - -2011-04-20 Jim Meyering - - * initialize.c (__gnat_initialize): Remove useless if-before-free. - -2011-04-17 Eric Botcazou - - * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with - $(CFLAGS) on the link line. - -2011-04-17 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare the - padded type built for the return type if it is unconstrained. - -2011-04-14 Nathan Froyd - - * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. - -2011-04-12 Nathan Froyd - - * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON - before calling TREE_CHAIN. - * gcc-interface/misc.c (gnat_init_ts): New function. - (LANG_HOOKS_INIT_TS): Define. - -2011-04-12 Martin Jambor - - * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node - instead of cgraph_node. - -2011-04-08 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum - alignment on fields of the RETURN type built for the Copy-In Copy-Out - mechanism. - -2011-04-08 Eric Botcazou - - * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers - of aggregate types that contain a placeholder. - -2011-04-08 Nathan Froyd - - * gcc-interface/utils.c (handle_sentinel_attribute): Don't use - TYPE_ARG_TYPES. - (handle_type_generic_attribute): Likewise. - -2011-04-04 Eric Botcazou - - PR ada/47163 - * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change. - -2011-04-04 Kai Tietz - - PR ada/47163 - * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets - to flag value. - -2011-04-02 Eric Botcazou - - * gcc-interface/utils2.c (build_allocator): In the unconstrained array - type case, do not strip a padding type around the array type. - -2011-04-02 Eric Botcazou - - * gcc-interface/utils.c (update_pointer_to): Finalize named pointer - types. - -2011-04-02 Eric Botcazou - - * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete. - * gcc-interface/misc.c (gnat_handle_option): Remove special handling - code for -feliminate-unused-debug-types. - (gnat_post_options): Likewise. - -2011-04-02 Eric Botcazou - - * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial - declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a - distinct copy. - -2011-04-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the - DECL_ARTIFICIAL flag on enumeration types. - -2011-04-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make - fat pointer types artificial unconditionally. - : Attach the base array type as a parallel type if it - isn't artificial. - -2011-04-02 Eric Botcazou - - * gcc-interface/gigi.h (get_dummy_type): Declare. - (build_dummy_unc_pointer_types): Likewise. - (finish_fat_pointer_type): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : If a dummy - fat pointer type has been built, complete it in place. - : Call build_dummy_unc_pointer_types to build dummy fat - and thin pointers. Remove useless variable. - (finish_fat_pointer_type): Make global and move to... - * gcc-interface/utils.c (finish_fat_pointer_type): ...here. - (get_dummy_type): New function. - (build_dummy_unc_pointer_types): Likewise. - (gnat_pushdecl): Propage the name to the anonymous variants only. - (update_pointer_to): Only adjust the pointer types in the unconstrained - array case. - -2011-04-02 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set it - if this is a Taft amendment type and the full declaration is available. - * gcc-interface/trans.c (process_type): Likewise. - If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P. - (process_freeze_entity): Likewise. - * gcc-interface/utils.c (dummy_global): New static variable. - (gnat_write_global_declarations): If there are types declared as used - at the global level, insert them in the global hash table. - -2011-04-02 Eric Botcazou - - * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param. - * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial - declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct - copy. - (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL - flag of the type accordingly. - * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type. - -2011-04-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer - finalizing types when updating the pointers to the designated type. - : Finalize the deferred types even if we didn't defer processing - of incomplete types in this invocation. - -2011-04-01 Olivier Hainque - Nicolas Setton - Eric Botcazou - - * gcc-interface/misc.c (gnat_descriptive_type): New function. - (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type. - -2011-03-28 Kai Tietz - - * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native - Windows targets. - (EH_MECHANISM): Use GCC exception mechanism for native Windows targets. - * system-mingw.ads (System): Change ZCX_By_Default default to True. - - * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype. - -2011-03-28 Tristan Gingold - - PR ada/44431 - * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c. - Use ada output of gnatbind. - (ada/b_gnatb.adb): Ditto. - (ada/b_gnat1.o, ada/b_gnatb.o): New rules. - (ada.mostlyclean, ada.stage1) - (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile) - (ada.stagefeedback): Adjust. - * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c. - Use ada output of gnatbind. - (b_gnatm.adb): Ditto. - (b_gnatl.o, b_gnatm.o): New rules. - -2011-03-26 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL - for the padded type built to support a specified size or alignment. - -2011-03-26 Eric Botcazou - - * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer - unconditionally to the end of the unit when the designated type is - limited_with'ed. - : Rename local variable. Attempt to un-defer types only and do it - for limited_with'ed types as well. - (finalize_from_with_types): Adjust comment. Rename variable and tidy. - * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT - consistently and remove redundant call to finalize_from_with_types. - -2011-03-26 Eric Botcazou - - * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to - subprograms without a previous spec declared in the same unit. - * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined - subprograms at the end of the unit instead of at the beginning. - * gcc-interface/utils.c (create_subprog_decl): Check that the entity - isn't public for the special handling of non-inline functions nested - inside inline external functions. - -2011-03-25 Jeff Law - - * gcc-interface/utils.c (def_fn_type): Add missing va_end. - -2011-03-24 Eric Botcazou - - * einfo.ads (Size_Depends_On_Discriminant): Adjust description. - * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure - to compute Set_Size_Depends_On_Discriminant. - (Layout_Type): Call it on array types in back-end layout mode. - * sem_util.adb (Requires_Transient_Scope): Return true for array - types only if the size depends on the value of discriminants. - * gcc-interface/utils2.c (build_binary_op) : Use the RHS - type if the RHS is a call to a function that returns an unconstrained - type with default discriminant. - -2011-03-24 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of - non-conversion to the nominal result type at the end. - -2011-03-23 Eric Botcazou - - * gcc-interface/trans.c (create_temporary): New function taken from... - (create_init_temporary): ...here. Call it. - (call_to_gnu): Create the temporary for the return value early, if any. - Create it for a function with copy-in/copy-out parameters if there is - no target; in other cases of copy-in/copy-out, use another temporary. - Push the new binding level lazily. Add and rename local variables. - -2011-03-23 Eric Botcazou - - * gcc-interface/decl.c (validate_size): Improve comments and tweak - error message. - (set_rm_size): Likewise. - -2011-03-23 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL - for the padded type built in order to support a specified alignment. - Fix incorrect formatting. - -2011-03-21 Eric Botcazou - - PR bootstrap/48216 - * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL. - -2011-03-21 Eric Botcazou - - * gcc-interface/decl.c (components_to_record): Add REORDER parameter, - rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter - to the end of the list. Adjust recursive call. Rename local variable. - If REORDER is true, reorder components of the record type. - (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to - components_to_record and adjust the parameter list. - -2011-03-21 Eric Botcazou - - * gcc-interface/decl.c (elaborate_expression_1): When optimization is - disabled, use the variable for bounds of loop iteration scheme. - -2011-03-21 Kai Tietz - - PR target/12171 - * gcc-interface/utils.c (gnat_internal_attribute_table): Add column. - -2011-03-17 Eric Botcazou - - * gcc-interface/decl.c (elaborate_expression_1): Try harder to find - out whether the expression is read-only. Short-circuit placeholder - case and rename a couple of local variables. - -2011-03-17 Eric Botcazou - - * gcc-interface/gigi.h (smaller_form_type_p): Declare. - * gcc-interface/trans.c (smaller_form_type_p): Make global and move... - * gcc-interface/utils.c (smaller_form_type_p): ...to here. - (convert): Deal with conversions from a smaller form type specially. - -2011-02-14 Eric Botcazou - - * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and - its argument, except for the special -I- switch. - -2011-02-12 Gerald Pfeifer - - * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to - "Ada Issues". - -2011-02-08 Eric Botcazou - - * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs. - -2011-02-03 Eric Botcazou - - * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of - GNAT_FORMAL. - * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to... - * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE - instead of GNAT_FORMAL. Protect the expression against multiple uses. - Do not generate the check directly, instead instantiate the template - check present in the descriptor. - (make_descriptor_field): Move around. - (build_vms_descriptor32): Build a template check in the POINTER field. - (build_vms_descriptor): Remove useless suffixes. - * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call. - -2011-01-26 Eric Botcazou - - PR bootstrap/47467 - * targext.c: Include target files if IN_RTS is defined. - -2011-01-26 Richard Guenther - - PR bootstrap/47467 - * targext.c: Include config.h. - * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H) - dependency. - -2011-01-04 Pascal Obry - Eric Botcazou - - * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. - -2011-01-04 Eric Botcazou - - * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the - end-of-case on the end label and its associated gotos, if any. - -2011-01-04 Eric Botcazou - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the - expressions of the parameter cache within the statement group of - the CICO mechanism. - -2011-01-04 Olivier Hainque - Eric Botcazou - - * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default. - (set_end_locus_from_node): New function. - (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we - make and the function end_locus. - (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus - for the elaboration subprogram. - (set_gnu_expr_location_from_node) : Use it to attempt to - set the end_locus of the expression as well. - -2011-01-04 Eric Botcazou - - PR ada/47131 - * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make - variables that are referenced in exception handlers volatile. - - - -Copyright (C) 2011 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - - * gnat_rm.texi: Ramification of pragma Eliminate documentation - - fix bugs in the description of Source_Trace; - - get rid of UNIT_NAME; - -2011-08-02 Javier Miranda - - * exp_ch9.adb - (Build_Dispatching_Requeue): Adding support for VM targets - since we cannot directly reference the Tag entity. - * exp_sel.adb (Build_K): Adding support for VM targets. - (Build_S_Assignment): Adding support for VM targets. - * exp_disp.adb - (Default_Prim_Op_Position): In VM targets do not restrict availability - of predefined interface primitives to compiling in Ada 2005 mode. - (Is_Predefined_Interface_Primitive): In VM targets this service is not - restricted to compiling in Ada 2005 mode. - (Make_VM_TSD): Generate code that declares and initializes the OSD - record. Needed to support dispatching calls through synchronized - interfaces. - * exp_ch3.adb - (Make_Predefined_Primitive_Specs): Enable generation of predefined - primitives associated with synchronized interfaces. - (Make_Predefined_Primitive_Bodies): Enable generation of predefined - primitives associated with synchronized interfaces. - -2011-08-02 Yannick Moy - - * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of - statements hidden in SPARK if preceded by the HIDE directive - (Parse_Exception_Handlers): mark each exception handler in a sequence of - exception handlers as hidden in SPARK if preceded by the HIDE directive - * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK - if starting with the HIDE directive - * par-ch7.adb (P_Package): mark a package body hidden in SPARK if - starting with the HIDE directive; mark the declarations in a private - part as hidden in SPARK if the private part starts with the HIDE - directive - * restrict.adb, restrict.ads - (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK - (Is_In_Hidden_Part_In_SPARK): new function which returns whether its - argument node belongs to a part which is hidden in SPARK - (Check_SPARK_Restriction): do not issue violations on nodes in hidden - parts in SPARK; protect the possibly costly call to - Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on - * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration - * scng.adb (Accumulate_Token_Checksum_GNAT_6_3, - Accumulate_Token_Checksum_GNAT_5_03): add case for new token - Tok_SPARK_Hide. - (Scan): recognize special comment starting with '#' and followed by - SPARK keyword "hide" as a HIDE directive. - -2011-08-02 Yannick Moy - - * types.ads, erroutc.ads: Minor reformatting. - -2011-08-02 Vincent Celier - - * link.c: Add response file support for cross platforms. - -2011-08-02 Ed Schonberg - - * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression - in an association, set parent field of copy before partial analysis. - * sem_res.adb (Resolve_Slice): create reference to itype only when - expansion is enabled. - -2011-08-02 Yannick Moy - - * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set - for new flag denoting which subprogram bodies are in ALFA - * restrict.adb, sem_ch7.adb: Update comment - * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, - sem_ch9.adb, sem_res.adb: Add calls to - Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs. - * sem_ch6.adb (Analyze_Function_Return): add calls to - Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the - middle of the body, and extended return. - (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument - False when missing return. - (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA - to True for subprograms whose spec is in ALFA. Remove later on the flag - on the entity used for a subprogram body when there exists a separate - declaration. - * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA): - if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to - False, otherwise do nothing. - -2011-08-02 Robert Dewar - - * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting. - -2011-08-02 Yannick Moy - - * sem_ch4.ads: minor formatting. - -2011-08-02 Yannick Moy - - * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, - debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb, - errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb, - restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, - opt.ads: cleanup of SPARK mode - -2011-08-02 Yannick Moy - - * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard - types. - * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities - (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA - * sem_ch3.adb - (Analyze_Object_Declaration): set Is_In_ALFA flag for objects - (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes - (Constrain_Integer): set Is_In_ALFA flag for integer subtypes - (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration - types. - (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with - non-static range. - * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for - functions whose return type is not in ALFA. - (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram - specifications. - (Process_Formals): unset Is_In_ALFA flag for subprograms if a - parameter's type is not in ALFA. - * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard - types are in ALFA. - -2011-08-02 Ed Schonberg - - * sem_ch6 (Analyze_Expression_Function): treat the function as - Inline_Always, and introduce a subprogram declaration for it when it is - not a completion. - * inline.adb (Add_Inlined_Body): recognize bodies that come from - expression functions, so that the back-end can determine whether they - can in fact be inlined. - * sem_util.adb (Is_Expression_Function): predicate to determine whether - a function body comes from an expression function. - -2011-08-02 Gary Dismukes - - * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming - null exclusions to test Can_Never_Be_Null on the anonymous access types - of the formals rather than testing the formals themselves. Exclude this - check in cases where the Old_Formal is marked as a controlling formal, - to avoid issuing spurious errors for bodies completing dispatching - operations (due to the flag not getting set on controlling access - formals in body specs). - (Find_Corresponding_Spec): When checking full and subtype conformance of - subprogram bodies in instances, pass Designated and E in that order, for - consistency with the expected order of the formals (New_Id followed by - Old_Id). - -2011-08-02 Robert Dewar - - * sem_ch8.adb: Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure - Check_Class_Wide_Actual, to implement AI05-0071, on defaulted - primitive operations of class-wide actuals. - -2011-08-02 Javier Miranda - - * exp_atag.ads, exp_atag.adb - (Build_Common_Dispatching_Select_Statements): Remove argument Loc - since its value is implicitly passed in argument Typ. - * exp_disp.adb (Make_Disp_Conditional_Select_Body, - Make_Disp_Timed_Select_Body): Remove Loc in calls to routine - Build_Common_Dispatching_Select_Statements. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads, - exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments. - Minor reformatting. - -2011-08-02 Robert Dewar - - * sem_res.adb: Minor reformatting. - * sem_prag.adb: Minor reformatting. - -2011-08-02 Javier Miranda - - * exp_atag.adb, exp_atags.ads - (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr - by the tagged type Entity. Required to use this routine in the VM - targets since we do not have available the Tag entity in the VM - platforms. - * exp_ch6.adb - (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package - Ada.Tags has not been previously loaded. - * exp_ch7.adb - (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke - Build_VM_TSDs if package Ada.Tags has not been previously loaded. - * sem_aux.adb - (Enclosing_Dynamic_Scope): Add missing support to handle the full - view of enclosing scopes. Required to handle enclosing scopes that - are synchronized types whose full view is a task type. - * exp_disp.adb - (Build_VM_TSDs): Minor code improvement to avoid generating and - analyzing lists with empty nodes. - (Make_Disp_Asynchronous_Select_Body): Add support for VM targets. - (Make_Disp_Conditional_Select_Body): Add support for VM targets. - (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets. - (Make_Disp_Timed_Select_Body): Add support for VM targets. - (Make_Select_Specific_Data_Table): Add support for VM targets. - (Make_VM_TSD): Generate code to initialize the SSD structure of - the TSD. - -2011-08-02 Yannick Moy - - * lib-writ.adb (Write_ALI): when ALFA mode is set, write local - cross-references section in ALI. - * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub - (enclosing subprogram), Slc (location of Sub) and Sun (unit number of - Sub). - (Enclosing_Subprogram_Or_Package): new function to return the enclosing - subprogram or package entity of a node - (Is_Local_Reference_Type): new function returns True for references - selected in local cross-references. - (Lt): function extracted from Lt in Output_References - (Write_Entity_Name): function extracted from Output_References - (Generate_Definition): generate reference with type 'D' for definition - of objects (object declaration and parameter specification), with - appropriate locations and units, for use in local cross-references. - (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created - references of type 'I' for initialization in object definition. - (Output_References): move part of function Lt and procedure - Write_Entity_Name outside of the body. Ignore references of types 'D' - and 'I' introduced for local cross-references. - (Output_Local_References): new procedure to output the local - cross-references sections. - (Lref_Entity_Status): new array defining whether an entity is a local - * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference - with 'I' type when initialization expression is present. - * get_scos.adb, get_scos.ads: Correct comments and typos - -2011-08-02 Javier Miranda - - * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in - the JVM target. - * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in - the JVM target. - * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no - TSD support. - -2011-08-02 Vincent Celier - - * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line - (No_Space_Img): New function - (Find_Excluded_Sources): When reading from a file, record the file name - and the line number for each excluded source. - (Mark_Excluded_Sources): When reporting an error, if the excluded - sources were read from a file, include file name and line number in - the error message. - -2011-08-02 Ed Schonberg - - * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2). - -2011-08-02 Robert Dewar - - * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting - -2011-08-02 Javier Miranda - - * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the - generation of TSDs to the DOTNET compiler. - * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the - generation of TSDs to the DOTNET compiler. - -2011-08-02 Javier Miranda - - * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data - record of all the tagged types declared inside library level package - declarations, library level package bodies or library level subprograms. - * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD - associated with a given tagged type. - (Build_VM_TSDs): New subprogram. - * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main - compilation units that are subprograms. - * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main - compilation units that are package bodies. - (Expand_N_Package_Declaration): Generate TSDs of the main compilation - units that are a package declaration or a package instantiation. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code - reorganization to improve the error generated by the frontend when the - function Ada.Tags.Secondary_Tag is not available. - * rtsfind.ads (RE_Register_TSD): New runtime entity. - * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup. - -2011-08-02 Javier Miranda - - * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode. - -2011-08-02 Robert Dewar - - * s-imenne.ads: Minor reformatting. - -2011-08-02 Robert Dewar - - * a-stunau.ads: Add pragma Suppress_Initialization for Big_String - * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed - * s-stalib.ads: Add pragma Suppress_Initialization for Big_String - -2011-08-02 Robert Dewar - - * einfo.ads (Materialize_Entity): Document this is only for renamings - * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate - required debug information in the case where we transform the object - declaration into a renaming declaration. - * exp_ch4.adb (Expand_Concatenate): Generate debug info for result - object - * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of - Materialize_Entity. - -2011-08-02 Robert Dewar - - * einfo.ads, einfo.adb (Suppress_Initialization): Replaces - Suppress_Init_Procs. - * exp_ch3.adb, exp_disp.adb, freeze.adb: Use - Suppress_Initialization/Initialization_Suppressed. - * gnat_rm.texi: New documentation for pragma Suppress_Initialization - * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function - * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed - * sem_prag.adb: New processing for pragma Suppress_Initialization. - -2011-08-02 Robert Dewar - - * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb: - Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can - only have inheritable classwide pre/postconditions. - -2011-08-02 Javier Miranda - - * a-tags.ads, a-tags.adb (Check_TSD): New subprogram. - * rtsfind.ads (RE_Check_TSD): New runtime entity. - * exp_disp.adb (Make_DT): Generate call to the new runtime routine that - checks if the external tag of a type is the same as the external tag - of some other declaration. - -2011-08-02 Thomas Quinot - - * s-taskin.ads: Minor reformatting. - -2011-08-02 Emmanuel Briot - - * g-comlin.adb (Display_Help): swap the order in which it prints the - short help and the general usage. - -2011-08-02 Ed Schonberg - - * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly - the aspect declarations and attach them to the generic copy for - subsequent analysis. - (Analyze_Subprogram_Instantiation): copy explicitly the aspect - declarations of the generic tree to the new subprogram declarations. - * sem_attr.adb (Check_Precondition_Postcondition): recognize - conditions that apply to a subprogram instance. - -2011-08-02 Robert Dewar - - * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project]. - -2011-08-02 Ed Schonberg - - * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged - private type with a tagged full view is not derived in the immediate - scope of the partial view, (RM 7.3 (7)) use the scope of the base type. - -2011-08-02 Robert Dewar - - * exp_ch4.adb: Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an - Ada2012 iterator, the loop will be rewritten during expansion into a - while loop with a cursor and an element declaration. Do not analyze the - body in this case, because if the container is for indefinite types the - actual subtype of the elements will only be determined when the cursor - declaration is analyzed. - -2011-08-02 Arnaud Charlet - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore - size/alignment related attributes in CodePeer_Mode. - -2011-08-02 Gary Dismukes - - * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to - Prepend_Element, since this can result in the operation getting the - wrong slot in the full type's dispatch table if the full type has - inherited operations. The incomplete type's operation will get added - to the proper position in the full type's primitives - list later in Sem_Disp.Check_Operation_From_Incomplete_Type. - (Process_Incomplete_Dependents): Add Is_Primitive test when checking for - dispatching operations, since there are cases where nonprimitive - subprograms can get added to the list of incomplete dependents (such - as subprograms in nested packages). - * sem_ch6.adb (Process_Formals): First, remove test for being in a - private part when determining whether to add a primitive with a - parameter of a tagged incomplete type to the Private_Dependents list. - Such primitives can also occur in the visible part, and should not have - been excluded from being private dependents. - * sem_ch7.adb (Uninstall_Declarations): When checking the rule of - RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents - list of a Taft-amendment incomplete type is a primitive before issuing - an error that the full type must appear in the same unit. There are - cases where nonprimitives can be in the list (such as subprograms in - nested packages). - * sem_disp.adb (Derives_From): Use correct condition for checking that - a formal's type is derived from the type of the corresponding formal in - the parent subprogram (the condition was completely wrong). Add - checking that was missing for controlling result types being derived - from the result type of the parent operation. - -2011-08-02 Yannick Moy - - * errout.adb (First_Node): minor renaming - * restrict.adb (Check_Formal_Restriction): put restriction warning on - first node. - -2011-08-02 Yannick Moy - - * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator - before accessing operands. - * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to - decide whether an initialization expression respects SPARK rules, as - the plain node is the expanded one. This allows for more valid warnings - to be issued. - * gnat_rm.texi: Minor update. - -2011-08-02 Arnaud Charlet - - * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert - previous change. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, sem_ch4.adb: Minor reformatting. - -2011-08-02 Hristian Kirtchev - - * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original - loop statements and the element renaming declaration with a block when - the element type is controlled. - -2011-08-02 Yannick Moy - - * sinfo.ads: Minor formatting. - -2011-08-02 Ed Schonberg - - * sem_aggr.adb (Add_Association): if the association has a box and no - expression, use the Sloc of the aggregate itself for the new - association. - * errout.adb (First_Node): Exclude nodes with no Sloc, and always use - the Original_Node. - -2011-08-02 Hristian Kirtchev - - * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring. - When a container is provided via a function call, generate a renaming - of the function result. This avoids the creation of a transient scope - and the premature finalization of the container. - * exp_ch7.adb (Is_Container_Cursor): Removed. - (Wrap_Transient_Declaration): Remove the supression of the finalization - of the list controller when the declaration denotes a container cursor, - it is not needed. - -2011-08-02 Yannick Moy - - * restrict.adb (Check_Formal_Restriction): only issue a warning if the - node is from source, instead of the original node being from source. - * sem_aggr.adb - (Resolve_Array_Aggregate): refine the check for a static expression, to - recognize also static ranges - * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration, - Array_Type_Declaration): postpone the test for the type being a subtype - mark after the type has been resolved, so that component-selection and - expanded-name are discriminated. - (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm - to distinguish the case of an iteration scheme, so that an error is - issed on a non-static range in SPARK except in an iteration scheme. - * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with - In_Iter_Schm = True. - * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for - user-defined operators so that they are allowed in renaming - * sem_ch8.adb - (Find_Selected_Component): refine the check for prefixing of operators - so that they are allowed in renaming. Move the checks for restrictions - on selector name after analysis discriminated between - component-selection and expanded-name. - * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on - concatenation argument of string type if it is static. - * sem_util.adb, sem_util.ads - (Check_Later_Vs_Basic_Declarations): add a new function - Is_Later_Declarative_Item to decice which declarations are allowed as - later items, in the two different modes Ada 83 and SPARK. In the SPARK - mode, add that renamings are considered as later items. - (Enclosing_Package): new function to return the enclosing package - (Enter_Name): correct the rule for homonyms in SPARK - (Is_SPARK_Initialization_Expr): default to returning True on nodes not - from source (result of expansion) to avoid issuing wrong warnings. - -2011-08-02 Ed Schonberg - - * errout.adb: On anything but an expression First_Node returns its - argument. - -2011-08-02 Pascal Obry - - * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting. - -2011-08-02 Hristian Kirtchev - - * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization. - Set the associated loop as the related expression of internally - generated cursors. - * exp_ch7.adb (Is_Container_Cursor): New routine. - (Wrap_Transient_Declaration): Supress the finalization of the list - controller when the declaration denotes a container cursor. - -2011-08-02 Yannick Moy - - * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through - command line now. - * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the - expression is a simple expression. This check cannot be performed in - the semantics, so just drop it. - (P_Index_Or_Discriminant_Constraint): move check that the index or - discriminant is a subtype mark to Analyze_Subtype_Declaration in the - semantics. Other cases were previously checked in the semantics. - * par-ch4.adb (P_Name): move checks that a selector name is not - character literal or an operator symbol to Find_Selected_Component in - the semantics - * par-ch5.adb (Parse_Decls_Begin_End): move check that basic - declarations are not placed after later declarations in a separate - procedure in Sem_Util (possibly not the best choice?), to be used both - during parsing, for Ada 83 mode, and during semantic analysis, for - SPARK mode. - * par-endh.adb (Check_End): move check that end label is not missing - to Process_End_Label in the semantics - * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove - the special case for SPARK restriction - * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End - * restrict.adb, restrict.ads (Check_Formal_Restriction): add a - parameter Force to issue the error message even on internal node (used - for generated end label). Call Check_Restriction to check when an error - must be issued. In SPARK mode, issue an error message even if the - restriction is not set. - (Check_Restriction): new procedure with an additional out parameter to - inform the caller that a message has been issued - * sem_aggr.adb: Minor modification of message - * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction - instead of issuing an error message directly - * sem_ch3.adb (Analyze_Declarations): move here the check that basic - declarations are not placed after later declarations, by calling - Check_Later_Vs_Basic_Declarations - (Analyze_Subtype_Declaration): move here the check that an index or - discriminant constraint must be a subtype mark. Change the check that - a subtype of String must start at one so that it works on subtype marks. - * sem_ch4.adb (Analyze_Call): move here the check that a named - association cannot follow a positional one in a call - * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction - instead of issuing an error message directly - * sem_ch8.adb (Find_Selected_Component): move here the check that a - selector name is not a character literal or an operator symbol. Move - here the check that the prefix of an expanded name cannot be a - subprogram or a loop statement. - * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new - procedure called from parsing and semantics to check that basic - declarations are not placed after later declarations - (Process_End_Label): move here the check that end label is not missing - -2011-08-02 Arnaud Charlet - - * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum - representation clause in codepeer mode, since it confuses CodePeer and - does not bring useful info. - -2011-08-02 Ed Falis - - * init.c: initialize fp hw on MILS. - -2011-08-02 Ed Schonberg - - * errout.adb (First_Node): for bodies, return the node itself (small - optimization). For other nodes, do not check source_unit if the node - comes from Standard. - -2011-08-02 Robert Dewar - - * exp_ch3.adb: Minor comment additions. - * sem_ch13.adb: Minor reformatting. - -2011-08-02 Pascal Obry - - * make.adb, makeutl.adb: Removes some superfluous directory separator. - -2011-08-02 Robert Dewar - - * sem_attr.adb: Minor reformatting. - -2011-08-02 Robert Dewar - - * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value - (Has_Default_Component_Value): Removed - * einfo.ads Comment updates - (Has_Default_Aspect): Replaces Has_Default_Value - (Has_Default_Component_Value): Removed - * exp_ch13.adb - (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects - * exp_ch3.adb - (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects - (Get_Simple_Init_Val): Handle Default_Value aspect - (Needs_Simple_Initialization): Handle Default_Value aspect - * exp_ch3.ads: Needs_Simple_Initialization - * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect - * par-prag.adb (Pragma_Default[_Component]Value) Removed - * sem_ch13.adb - (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects - * sem_prag.adb (Pragma_Default[_Component]Value) Removed - * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate - package containing iteration primitives. - exp_ch5.adb (Expand_Iterator_Loop): ditto. - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with - "of", pre-analyze expression in case it is a function call with - finalization actions that must be placed ahead of the loop. - * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present - on an Ada2012 iterator, insert them ahead of the rewritten loop. - -2011-08-02 Geert Bosch - - * cstand.adb (Create_Float_Types): Only consider C's long double for - Long_Long_Float, in addition to double. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads, - sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads, - prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb: - Minor reformatting. - -2011-08-02 Ed Schonberg - - * sem_attr.adb: handle properly 'Result when it is a prefix of an - indexed component. - -2011-08-02 Javier Miranda - - * einfo.ads, einfo.adb - (Original_Access_Type): Move this attribute to Node26 since there was - an undocumented use of Node21 in E_Access_Subprogram_Type entities - which causes conflicts and breaks the generation of the .NET compiler. - (Interface_Name): Add missing documentation on JGNAT only uses of - this attribute. - -2011-08-02 Geert Bosch - - * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist - (Find_Back_End_Float_Type): Likewise - (Create_Back_End_Float_Types): Likewise - (Create_Float_Types): Likewise - (Register_Float_Type): Likewise - * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of - Nlist and split out type selection in new local Find_Base_Type function. - * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of - Nlist - * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist - -2011-08-02 Robert Dewar - - * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in - alpha order). - * opt.ads: Minor comment change. - * sem_ch12.adb: Minor code reorganization. - -2011-08-02 Gary Dismukes - - * sem_ch3.adb (Complete_Private_Subtype): Don't append the private - subtype's list of rep items to the list on the full subtype in the case - where the lists are the same. - -2011-08-02 Geert Bosch - - * switch-c.adb (Free): New deallocation procedure to avoid implicitly - using the one from System.Strings, which also deallocates all strings. - -2011-08-02 Geert Bosch - - * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New - function. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-02 Olivier Hainque - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function - end_locus. - -2011-08-02 Javier Miranda - - * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals - associated with anonymous access to subprograms. - -2011-08-02 Geert Bosch - - * opt.ads - (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions. - (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition. - * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads - (Add_Symbol_Definition): Move to switch-c.adb - (Process_Command_Line_Symbol_Definitions): Adjust references to above. - * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation. - (Add_Symbol_Definition): Move to switch-c.adb. - * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw. - * sem_warn.adb - (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): - Move to warnsw.adb. - * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size, - Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): - Move to warnsw.adb. - * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw. - (Add_Symbol_Definition): Moved from Prepcomp. - * switch-c.ads: Update copyright notice. Use String_List instead of - Argument_List, removing dependency on System.OS_Lib. - -2011-08-02 Yannick Moy - - * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal - mode on initialization expression which does not respect SPARK - restrictions. - * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines - if the tree referenced by its argument represents an initialization - expression in SPARK, suitable for initializing an object in an object - declaration. - -2011-08-02 Javier Miranda - - * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the - internally generated access to subprogram with its associated protected - subprogram type. - * einfo.ads, einfo.adb (Original_Access_Type): New attribute. - -2011-08-02 Geert Bosch - - * cstand.adb (Register_Float_Type): Print information about type to - register, if the Debug_Flag_Dot_B is set. - * debug.adb (Debug_Flag_Dot_B): Document d.b debug option. - * rtsfind.ads (RE_Max_Base_Digits): New run time entity. - * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations - with a requested precision of more than Max_Digits digits and no more - than Max_Base_Digits digits, if a range specification is present and the - Predefined_Float_Types list has a suitable type to derive from. - * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the - case of type completion with pragma Import - * sem_prag.adb - (Process_Import_Predefined_Type): Processing to complete a type - with pragma Import. Currently supports floating point types only. - (Set_Convention_From_Pragma): Do nothing without underlying type. - (Process_Convention): Guard against absence of underlying type, - which may happen when importing incomplete types. - (Process_Import_Or_Interface): Handle case of importing predefined - types. Tweak error message. - -2011-08-02 Eric Botcazou - - * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined - functions to previous change. Reorganize code slightly. - -2011-08-02 Geert Bosch - - * back_end.ads (Register_Type_Proc): New call back procedure type for - allowing the back end to provide information about available types. - (Register_Back_End_Types): New procedure to register back end types. - * back_end.adb (Register_Back_End_Types): Call the back end to enumerate - available types. - * cstand.adb (Back_End_Float_Types): New list for floating point types - supported by the back end. - (Build_Float_Type): Add extra parameter for Float_Rep_Kind. - (Copy_Float_Type): New procedure to make new copies of predefined types. - (Register_Float_Type): New call back procedure to populate the BEFT list - (Find_Back_End_Float_Type): New procedure to find a BEFT by name - (Create_Back_End_Float_Types): New procedure to populate the BEFT list. - (Create_Float_Types): New procedure to create entities for floating - point types predefined in Standard, and put these and any remaining - BEFTs on the Predefined_Float_Types list. - * stand.ads (Predefined_Float_Types): New list for predefined floating - point types that do not have declarations in package Standard. - -2011-08-02 Eric Botcazou - - * inline.adb (Get_Code_Unit_Entity): New local function. Returns the - entity node for the unit containing the parameter. - (Add_Inlined_Body): Use it to find the unit containing the subprogram. - (Add_Inlined_Subprogram): Likewise. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-02 Thomas Quinot - - * s-stusta.adb (Print): Make sure Pos is always initialized to a - suitable value. - -2011-08-02 Geert Bosch - - * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image. - -2011-08-02 Eric Botcazou - - * sem_type.adb (Covers): Move trivial case to the top and reuse the - computed value of Base_Type. - -2011-08-02 Yannick Moy - - * restrict.adb (Check_Restriction): issue an error for any use of - class-wide, even if the No_Dispatch restriction is not set. - * sem_aggr.adb: Correct typos in comments and messages in formal mode - * sem_ch3.adb (Process_Full_View): issue an error in formal mode is, - when completing a private extension, the type named in the private part - is not the same as that named in the visible part. - * sem_res.adb (Resolve_Call): issue an error in formal mode on the use - of an inherited primitive operations of a tagged type or type extension - that returns the tagged type. - * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new - function which returns True for an implicit operation inherited by the - derived type declaration for the argument type. - (Is_SPARK_Object_Reference): move to appropriate place in alphabetic - order. - -2011-08-02 Ed Schonberg - - * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from - Process_Bounds, to perform analysis with expansion of a range or an - expression that is the iteration scheme for a loop. - (Analyze_Iterator_Specification): If domain of iteration is given by a - function call with a controlled result, as is the case if call returns - a predefined container, ensure that finalization actions are properly - generated. - * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range. - -2011-08-02 Javier Miranda - - * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-02 Javier Miranda - - * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to - determine if the analysis is performed using N or Original_Node (N). - * exp_util.adb (Side_Effect_Free): Code cleanup since the new - functionality of routine Is_Variable avoids code duplication. - * checks.adb (Determine_Range): Handle temporaries generated by - Remove_Side_Effects. - -2011-08-02 Javier Miranda - - * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and - expansion of the condition. Required since the previous analysis was - done with expansion disabled (see Resolve_Quantified_Expression) and - hence checks were not inserted and record comparisons have not been - expanded. - -2011-08-02 Ed Falis - - * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads: - Update header. - -2011-08-02 Bob Duff - - * opt.ads: Minor comment fix. - -2011-08-02 Bob Duff - - * sem_ch12.adb (Analyze_Package_Instantiation, - Analyze_Subprogram_Instantiation): Turn off style checking while - analyzing an instance. Whatever style checks that apply to the generic - unit should apply, so it makes no sense to apply them in an instance. - This was causing trouble when compiling an instance of a runtime - unit that violates the -gnatyO switch. - * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from - one of the two case statements, causing spurious errors. - -2011-08-02 Robert Dewar - - * uname.adb: Minor reformatting. - * gnatcmd.adb: Minor reformatting. - * exp_attr.adb: Minor reformatting. - -2011-08-02 Ed Schonberg - - * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction - No_Dispatching_Calls, do not look for the Assign primitive, because - predefined primitives are not created in this case. - -2011-08-02 Bob Duff - - * stylesw.ads: Minor comment fixes. - -2011-08-02 Robert Dewar - - * freeze.adb (Add_To_Result): New procedure. - -2011-08-02 Jose Ruiz - - * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run - time, if the specific run-time routines for handling streams of strings - are not available, use the default mechanism. - -2011-08-02 Arnaud Charlet - - * s-regpat.ads: Fix typo. - -2011-08-02 Vincent Celier - - * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is - not null, call it to create the in memory config project file without - parsing an existing default config project file. - -2011-08-02 Eric Botcazou - - * atree.adb (Allocate_Initialize_Node): Remove useless temporaries. - -2011-08-02 Ed Schonberg - - * sem_elim.adb: an abstract subprogram does not need an eliminate - pragma for its descendant to be eliminable. - -2011-08-02 Ed Falis - - * init.c: revert to handling before previous checkin for VxWorks - * s-intman-vxworks.adb: delete unnecessary declarations related to - using Ada interrupt facilities for handling signals. - Delete Initialize_Interrupts. Use __gnat_install_handler instead. - * s-intman-vxworks.ads: Import __gnat_install_handler as - Initialize_Interrupts. - * s-taprop-vxworks.adb: Delete Signal_Mask. - (Abort_Handler): change construction of mask to unblock exception - signals. - -2011-08-02 Jerome Guitton - - * a-except-2005.adb (Raise_From_Signal_Handler): Call - Debug_Raise_Exception before propagation starts. - -2011-08-02 Eric Botcazou - - * exp_ch6.adb (Expand_Call): Guard restriction checks with a call - to Restriction_Check_Required. - * sem_ch3.adb (Analyze_Object_Declaration): Likewise. - * sem_res.adb (Resolve_Call): Likewise. - * sem_attr.adb (Check_Stream_Attribute): Likewise. - -2011-08-02 Bob Duff - - * stylesw.ads: Update comment. - * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N. - * errout.ads: Remove obsolete comment. - -2011-08-02 Javier Miranda - - * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function. - (Set_Is_Safe_To_Reevaluate): new procedure. - * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no - assignment is allowed on safe-to-reevaluate variables. - (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the - temporary created to remove side effects in expressions that use - the secondary stack as safe-to-reevaluate. - * exp_util.adb (Side_Effect_Free): Add missing code to handle well - variables that are not true constants. - -2011-08-02 Robert Dewar - - * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads, - sem_res.adb, sem_ch6.adb: Minor reformatting. - -2011-08-02 Jerome Guitton - - * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code. - -2011-08-02 Ed Schonberg - - * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do - not set Overridden_Operation if subprogram is an initialization - procedure. - -2011-08-02 Yannick Moy - - * par-ch6.adb: Correct obsolete name in comments - * restrict.adb, restrict.ads (Check_Formal_Restriction): new function - which takes two message arguments (existing function takes one), with - second message used for continuation. - * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject - block statements that originate from a source block statement, not - generated block statements - * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for - symmetry with procedure case - * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new - function to issue an error in formal mode if a package specification - contains more than one tagged type or type extension. - * sem_res.adb (Resolve_Actuals): in formal mode, check that actual - parameters matching formals of tagged types are objects (or ancestor - type conversions of objects), not general expressions. Issue an error - on view conversions that are not involving ancestor conversion of an - extended type. - (Resolve_Type_Conversion): in formal mode, issue an error on the - operand of an ancestor type conversion which is not an object - * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the - procedure so that it works also for actuals of function calls - (Is_Actual_Tagged_Parameter): new function which determines if its - argument is an actual parameter of a formal of tagged type in a - subprogram call - (Is_SPARK_Object_Reference): new function which determines if the tree - referenced by its argument represents an object in SPARK - -2011-08-02 Robert Dewar - - * sem_ch3.adb: Minor reformatting - Minor comment addition - Minor error msg text change - -2011-08-02 Javier Miranda - - * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New - function. Used to be more precise when we generate a variable plus one - assignment to remove side effects in the evaluation of the Bound - expressions. - (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes - of the bound expression to force its re-analysis and thus expand the - associated transient scope (if required). Code cleanup replacing the - previous code that declared the constant entity by an invocation to - routine Force_Evaluation which centralizes this work in the frontend. - -2011-08-02 Robert Dewar - - * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table - (Base_Type): Now uses improved Is_Base_Type function - * einfo.ads (Base_Type): Inline this function - -2011-08-02 Robert Dewar - - * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion - (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas - -2011-08-02 Arnaud Charlet - - * gcc-interface/Make-lang.in: Update dependencies. - * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks - targets. - -2011-08-02 Yannick Moy - - * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on - non-simple expression used in delta constraint - (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on - index constraint which is not a subtype mark - * par.adb: With and use Restrict - * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal - mode on component type which is not a subtype mark and default - expression on component - (Analyze_Subtype_Declaration): issue an error in formal mode on subtype - of string which does not have a lower index bound equal to 1 - (Array_Type_Declaration): issue an error in formal mode on index or - component type which is not a subtype mark, and on aliased keyword on - component - (Derived_Type_Declaration): issue an error in formal mode on interface, - limited or abstract type - (Record_Type_Declaration): issue an error in formal mode on interface - (Record_Type_Definition): issue an error in formal mode on tagged types - and type extensions not declared in the specification of a library unit - package; on null non-tagged record; on variant part - -2011-08-02 Vincent Celier - - * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir - not declared for qualified library project when Library_Name is not - declared, but Library_Dir is. - -2011-08-02 Robert Dewar - - * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated - pragmas (affects aspects [Component_]Default_Value - (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use - component type for the resolution - -2011-08-02 Eric Botcazou - - * einfo.adb (Base_Type): Tune implementation for speed. - -2011-08-02 Robert Dewar - - * freeze.adb: Minor reformatting. - -2011-08-02 Thomas Quinot - - * scos.ads: Update comments. - -2011-08-02 Ed Schonberg - - * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the - base type, because the parent may be a subtype of a private type whose - convention is established in a private part. - -2011-08-02 Hristian Kirtchev - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return - statement in a block when the expansion of the return expression has - created a finalization chain. - * freeze.adb (Freeze_Expression): Alphabetize all choices associated - with the parent node. - Add N_Extended_Return_Statement to handle the case where a transient - object declaration appears in the Return_Object_Declarations list of - an extended return statement. - -2011-08-02 Matthew Gingell - - * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly - unused parameter 'name'. - -2011-08-02 Ed Schonberg - - * sem_elim.adb (Set_Eliminated): If the overridden operation is an - inherited operation, check whether its alias, which is the source - operastion that it renames, has been marked eliminated. - -2011-08-02 Javier Miranda - - * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an - in-mode parameter whose type is an access type since it can be used to - modify its designated object. Enforce code that handles as safe an - access type that is not access-to-constant but it is the result of a - previous removal of side-effects. - (Remove_Side_Effects): Minor code reorganization of cases which require - no action. Done to incorporate documentation on new cases uncovered - working in this ticket: no action needed if this routine was invoked - too early and the nodes are not yet decorated. - * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls - to routine Remove_Side_Effects by calls to Force_Evaluation since they - were issued with actuals that are implicitly provided by - Force_Evaluation. - -2011-08-02 Robert Dewar - - * sem_ch3.adb, sem_res.adb: Minor reformatting. - -2011-08-02 Yannick Moy - - * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure - to issue an error in formal mode on attribute not supported in this mode - (Analyze_Attribute): issue errors on standard attributes not supported - in formal mode. - * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of - comment, and issue error in formal mode on modulus which is not a power - of 2. - (Process_Range_Expr_In_Decl): issue error in formal mode on non-static - range. - * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in - subtype mark. - * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary - operator on modular type (except 'not'). - -2011-08-02 Robert Dewar - - * gnat_rm.texi: Minor reformatting. - -2011-08-02 Arnaud Charlet - - * s-osinte-linux.ads: Minor comment update and reformatting. - * i-cexten.ads: Make this unit pure, as for its parent. - Will allow its usage in more contexts if needed. - -2011-08-02 Robert Dewar - - * s-utf_32.ads: Minor comment fix. - -2011-08-02 Ed Schonberg - - * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive - operation of a tagged synchronized type, handle the case where the - controlling argument is overloaded. - -2011-08-02 Yannick Moy - - * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl: - Replace pragma SPARK_95 with pragma Restrictions (SPARK) - * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set - SPARK mode and formal verification mode on processing SPARK restriction - * s-rident.ads (Restriction_Id): add SPARK restriction in those not - requiring consistency checking. - -2011-08-02 Robert Dewar - - * sem_res.adb: Minor reformatting. - -2011-08-02 Robert Dewar - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads: Remove unneeded with of Ada.Containers - Remove commented out pragma Inline's - Move specifications of new subprograms to the actual specs - -2011-08-02 Yannick Moy - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads: Update comments. - -2011-08-02 Ed Schonberg - - * sem_attr.adb: add attribute name when 'Result has the wrong prefix. - -2011-08-02 Robert Dewar - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, - a-cforse.ads, a-cofove.ads: Minor reformatting. - -2011-08-02 Claire Dross - - * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, - a-cofove.ads: Add comments. - -2011-08-02 Yannick Moy - - * gnat_rm.texi: Document formal containers. - -2011-08-02 Emmanuel Briot - - * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there - are empty sections. - -2011-08-02 Robert Dewar - - * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor - reformatting. - -2011-08-02 Robert Dewar - - * aspects.adb: New aspects Default_Value and Default_Component_Value - New format of Aspect_Names table checks for omitted entries - * aspects.ads: Remove mention of Aspect_Cancel and add documentation on - handling of boolean aspects for derived types. - New aspects Default_Value and Default_Component_Value - New format of Aspect_Names table checks for omitted entries - * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag - (Has_Default_Value): New flag - (Has_Default_Component_Value): New flag - (Has_Default_Value): New flag - * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names - table. - * par-prag.adb: New pragmas Default_Value and Default_Component_Value - * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects - Default_Value and Default_Component_Value - * sem_prag.adb: New pragmas Default_Value and Default_Component_Value - New aspects Default_Value and Default_Component_Value - * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value - * sprint.adb: Print N_Aspect_Specification node when called from gdb - -2011-08-02 Vincent Celier - - * prj-nmsc.adb (Check_Library_Attributes): For virtual library project, - inherit library kind. - -2011-08-02 Ed Schonberg - - * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds. - Minor reformatting. - -2011-08-02 Robert Dewar - - * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM - -2011-08-02 Yannick Moy - - * sem_aggr.adb (Resolve_Aggregate): Fix thinko. - -2011-08-02 Robert Dewar - - * impunit.adb: Add comment. - -2011-08-02 Yannick Moy - - * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks - qualification of aggregates in formal mode - (Is_Top_Level_Aggregate): returns True for an aggregate not contained in - another aggregate - (Resolve_Aggregate): complete the test that an aggregate is adequately - qualified in formal mode - -2011-08-02 Pascal Obry - - * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting. - * mlib-prj.adb: Supress warning when compiling binder generated file. - (Build_Library): Supress all warnings when compiling the binder - generated file. - -2011-08-02 Yannick Moy - - * errout.adb, errout.ads (Check_Formal_Restriction): move procedure - from here... - * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here - * sem_aggr.adb, sem_ch5.adb, sem_util.adb: - Add with/use clauses to make Check_Formal_Restriction visible - -2011-08-02 Ed Schonberg - - * sem_ch12.adb (Check_Generic_Actuals): handle properly actual - in-parameters when type of the generic formal is private in the generic - spec and non-private in the body. - -2011-08-02 Claire Dross - - * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb, - a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads, - a-cofove.adb, a-cofove.ads: New files implementing formal containers. - * impunit.adb, Makefile.rtl: Take new files into account. - -2011-08-02 Robert Dewar - - * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb, - sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting. - -2011-08-02 Yannick Moy - - * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in - formal mode - * sem_util.adb (Matching_Static_Array_Bounds): proper detection of - matching static array bounds, taking into account the special case of - string literals - * sem_ch3.adb: Typo in comment. - -2011-08-02 Yannick Moy - - * errout.adb, errout.ads (Check_Formal_Restriction): new procedure - which issues an error in formal mode if its argument node is originally - from source - * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type - has a discriminant specification so that it does not include the case - of derived types - (Derived_Type_Declaration): move here the test that a derived type has a - discriminant specification - * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the - first element of a component association before accessing its choices - (presence of component association is not enough) - * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram - declaration is a library item before accessing the next element in a - list, as library items are not member of lists - * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, - sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use - Check_Formal_Restriction whenever possible. - -2011-08-02 Ed Schonberg - - * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype - reference when needed. - -2011-08-02 Bob Duff - - * gnat_ugn.texi: Fix typo. - -2011-08-02 Vincent Celier - - * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of - archive file name. Do not use the full path name of archives for Open - VMS. - -2011-08-02 Robert Dewar - - * sem_ch12.adb, sem_ch11.adb: New calling sequence for - Analyze_Aspect_Specifications - * sem_ch13.adb - (Analyze_Aspect_Specifications): New handling for boolean aspects - * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence - * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling - sequence for Analyze_Aspect_Specifications - * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely - * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used - -2011-08-02 Robert Dewar - - * freeze.adb (Freeze_Entity): Remove handling of delayed boolean - aspects, since these no longer exist. - -2011-08-02 Robert Dewar - - * par-ch13.adb (Aspect_Specifications_Present): Always return false on - semicolon, do not try to see if there are aspects following it. - * par-ch3.adb (P_Declarative_Items): Better message for unexpected - aspect spec. - -2011-08-02 Robert Dewar - - * sem_ch8.adb, aspects.ads: Minor reformatting. - -2011-08-02 Eric Botcazou - - * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline. - * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure - extracted from... - (Analyze_Aspect_Specifications): ...here. Call above procedure. - -2011-08-02 Yannick Moy - - * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal - mode on subprogram declaration outside of package specification, unless - it is followed by a pragma Import - * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration, - Access_Type_Declaration): issue error in formal mode on access type - (Analyze_Incomplete_Type_Decl): issue error in formal mode on - incomplete type - (Analyze_Object_Declaration): issue error in formal mode on object - declaration which does not respect SPARK restrictions - (Analyze_Subtype_Declaration): issue error in formal mode on subtype - declaration which does not respect SPARK restrictions - (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue - error in formal mode on digits or delta constraint - (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on - decimal fixed point type - (Derived_Type_Declaration): issue error in formal mode on derived type - other than type extensions of tagged record types - * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant - with check on access definition - * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal - mode on protected definition. - (Analyze_Task_Definition): issue error in formal mode on task definition - -2011-08-02 Robert Dewar - - * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting. - -2011-08-02 Javier Miranda - - * sem_ch6.adb (Can_Override_Operator): New function. - (Verify_Overriding_Indicator): Add missing code to check overriding - indicator in operators. Fixes regression. - (Check_Overriding_Indicator): Minor reformating after replacing the - code that evaluates if the subprogram can override an operator by - invocations to the above new function. - * einfo.adb - (Write_Field26_Name): Add missing code to ensure that, following - the documentation in einfo.ads, this field is not shown as attribute - "Static_Initialization" on non-dispatching functions. - -2011-08-02 Jose Ruiz - - * sem_res.adb (Resolve_Call): A call to - Ada.Real_Time.Timing_Events.Set_Handler violates restriction - No_Relative_Delay (AI-0211) only when it sets a relative timing event, - i.e., when the second parameter is of type Time_Span. - -2011-08-02 Vincent Celier - - * make.adb (Gnatmake): use /lib.a to link - with an archive instead of -L -l. - -2011-08-02 Ed Schonberg - - * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed, - mark the base types In_Use in addition to making the operations - use_visible. - -2011-08-02 Ed Falis - - * init.c: add and setup __gnat_signal_mask for the exception signals - * s-inmaop-vxworks.adb: new file. - * s-intman-vxworks.adb: remove unnecessary initializations and - simplify remaining - * s-intman-vxworks.ads: remove unnecessary variable - * s-taprop-vxworks.adb: simplify signal initialization - -2011-08-02 Robert Dewar - - * sem_ch8.adb: Minor code reorganization, comment updates. - -2011-08-02 Robert Dewar - - * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util - * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved - here from Sem_Res. - (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression - (Matching_Static_Array_Bounds): Moved here from Sem_Res - -2011-08-02 Ed Schonberg - - * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5. - * par_ch8.adb (P_Use_Type): initialize Used_Operations for node. - * sinfo.ads, sinfo.adb (Used_Operations): new attribute of - use_type_clauses, to handle more efficiently use_type and use_all_type - constructs. - * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the - Ada2012 Use_All_Type clause. - (Use_Class_Wide_Operations): new procedure. - -2011-08-02 Robert Dewar - - * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb, - sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized - expression to expression function. - -2011-08-02 Ed Schonberg - - * sem_ch4.adb: transform simple Ada2012 membership into equality only - if types are compatible. - -2011-08-02 Yannick Moy - - * sem_res.adb (Matching_Static_Array_Bounds): new function which - returns True if its argument array types have same dimension and same - static bounds at each index. - (Resolve_Actuals): issue an error in formal mode on actuals passed as - OUT or IN OUT paramaters which are not view conversions in SPARK. - (Resolve_Arithmetic_Op): issue an error in formal mode on - multiplication or division with operands of fixed point types which are - not qualified or explicitly converted. - (Resolve_Comparison_Op): issue an error in formal mode on comparisons of - Boolean or array type (except String) operands. - (Resolve_Equality_Op): issue an error in formal mode on equality - operators for array types other than String with non-matching static - bounds. - (Resolve_Logical_Op): issue an error in formal mode on logical operators - for array types with non-matching static bounds. Factorize the code in - Matching_Static_Array_Bounds. - (Resolve_Qualified_Expression): issue an error in formal mode on - qualified expressions for array types with non-matching static bounds. - (Resolve_Type_Conversion): issue an error in formal mode on type - conversion for array types with non-matching static bounds - -2011-08-02 Robert Dewar - - * par-ch10.adb: Minor code reorganization (use Nkind_In). - -2011-08-02 Ed Schonberg - - * par-ch9.adb: save location of entry for proper error message. - -2011-08-02 Javier Miranda - - * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal - (Use_Full_View) which permits this routine to climb through the - ancestors using the full-view of private parents. - * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set - Use_Full_View to true in calls to Is_Ancestor. - * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to - true in call to Is_Ancestor. - * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set - Use_Full_View to true in call to Is_Ancestor. - * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in - call to Is_Ancestor. - * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set - Use_Full_View to true in calls to Is_Ancestor. - * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT, - Make_Select_Specific_Data_Table, Register_Primitive, - Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor. - * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View - to true in call to Is_Ancestor. - * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set - Use_Full_View to true in calls to Is_Ancestor. - * exp_cg.adb - (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor. - (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor. - -2011-08-02 Robert Dewar - - * gnat_rm.texi: Minor reformatting. - * sem_prag.adb: Minor reformatting. - -2011-08-02 Tristan Gingold - - * vms_data.ads: Add VMS qualifier for -gnateP. - -2011-08-02 Robert Dewar - - * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty - * par-ch7.adb (P_Package): Proper placement of aspects for package - decl/instantiation. - * par-endh.adb (Check_End): Ad Is_Sloc parameter - (End_Statements): Add Is_Sloc parameterr - * par.adb (P_Aspect_Specification): New meaning of Decl = Empty - (Check_End): Ad Is_Sloc parameter - (End_Statements): Add Is_Sloc parameterr - -2011-08-02 Vincent Celier - - * ug_words: Add VMS qualifier equivalent to -gnateP: - /SYMBOL_PREPROCESSING. - -2011-08-02 Jose Ruiz - - * gnat-style.texi: For hexadecimal numeric literals the typical - grouping of digits is 4 to represent 2 bytes. - A procedure spec which is split into several lines is indented two - characters. - -2011-08-02 Yannick Moy - - * exp_aggr.adb (Is_Others_Aggregate): move function to other unit. - * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here - (Resolve_Aggregate): issue errors in formal modes when aggregate is not - properly qualified - (Resolve_Array_Aggregate): issue errors in formal modes on non-static - choice in array aggregate - (Resolve_Extension_Aggregate): issue errors in formal modes on subtype - mark as ancestor - (Resolve_Record_Aggregate): issue errors in formal modes on mixed - positional and named aggregate for record, or others in record - aggregate, or multiple choice in record aggregate - * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when - array operands to logical operations AND, OR and XOR do not have the - same static lower and higher bounds - * sem_ch5.adb, sinfo.ads: Correct typos in comments - -2011-08-01 Robert Dewar - - * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement): - Replaces Last_Source_Node_In_Sequence. - * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K - * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores - parens and blank in string (this was inconsistently implemented). - * errout.ads - (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and - blank in string (this was inconsistently implemented). - * gnat1drv.adb - (Set_Global_Switches): Set formal mode switches appropriately - * opt.ads, opt.adb: Formal mode is now global switches, more consistent - * par-prag.adb - (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and - call Set_Error_Msg_Lang to set "spark" as language name. - * par.adb: Remove unnecessary call to set formal language for errout - * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches - appropriately and call Set_Error_Msg_Lang to set "spark" as language - name. - * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and - calls to it, moved after resolution so that types are known - * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if - result of concatenation is not of type String - (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of - concatenation is not properly restricted - * gnat_rm.texi: Add doc on pragma Spark_95. - * gcc-interface/Makefile.in: Remove obsolete target pairs for - Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads. - * gcc-interface/Make-lang.in: Update dependencies. - -2011-08-01 Javier Miranda - - * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of - condition that detects if the overridden operation must replace an - existing entity. - -2011-08-01 Javier Miranda - - * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded - code declarations inserted by Insert_Actions in each alternative of the - N_Case_Expression node. - -2011-08-01 Robert Dewar - - * sem_ch6.adb: Minor code reorganization. - * sem_util.adb: Minor reformatting. - -2011-08-01 Pascal Obry - - * prj-env.adb: Remove /lib/gpr/ project search path. - * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource. - -2011-08-01 Yannick Moy - - * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character - literal or operator symbol which is prefixed - * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal - mode on access attributes. - * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check - that concatenation operands are properly restricted in formal mode - (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure - Analyze_Concatenation_Operand. Issue an error in formal mode if the - result of the concatenation has a type different from String. - (Analyze_Conditional_Expression, Analyze_Explicit_Dereference, - Analyze_Quantified_Expression, Analyze_Slice, - Analyze_Null): issue an error in formal mode on unsupported constructs - * sem_ch5.adb - (Analyze_Block_Statement): only issue error on source block statement - * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new - function which returns the last node in a list of nodes for which - Comes_From_Source returns True, if any - * sem_ch6.adb (Check_Missing_Return): minor refactoring to use - Last_Source_Node_In_Sequence - * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming, - Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal - mode on unsupported constructs - * sem_ch9.adb Do not return after issuing error in formal mode, as the - rest of the actions may be needed later on since the error is marked as - not serious. - * sinfo.ads: Typos in comments. - -2011-08-01 Pascal Obry - - * projects.texi: Minor editing. - -2011-08-01 Yannick Moy - - * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for - insertion character ~~ - * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures - (Set_Error_Msg_Lang): new procedure which fixes the language for use - with insertion character ~~ - (Set_Msg_Text): treat insertion character ~~ - * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb, - sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to - Formal_Error_Msg_... procedures by equivalent Error_Msg_... - procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make - errors related to the formal language restriction not serious - (insertion character |). - * par.adb (Par): set formal language for error messages if needed - * sem_ch6.adb (Check_Missing_Return): take into account possible - generated statements at the end of the function - * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and - enumeration value to define a new pragma SPARK_95 - * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default, - SPARK_Version): new type and variables to store the SPARK version - (none by default). - (SPARK_Mode): return True when SPARK_Version is set - * par-prag.adb: Correct indentation - (Prag): take Pragma_SPARK_95 into account - * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95 - into account. - -2011-08-01 Robert Dewar - - * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb, - sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb, - sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting - -2011-08-01 Pascal Obry - - * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass - Target_Name to Get_Path call. - (Parse_Single_Project): Likewise. - (Post_Parse_Context_Clause): Likewise. - * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter. - Call Initialise_Project_Path with the proper Target_Name. - (Initialize_Project_Path): Add //lib/gnat - search path. - (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path - with the proper Target_Name. - * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to - Part.Parse routine. - (Parse_Project_And_Apply_Config): Likewise. - * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine. - This is fine as this part of the code is supporting only native - compilation. - * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This - is fine as this part of the code is supporting only native compilation. - -2011-08-01 Yannick Moy - - * sem_util.adb (Enter_Name): issue error in formal mode on declaration - of homonym, unless the homonym is one of the cases allowed in SPARK - * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for - package declaration occurring after a body. - -2011-08-01 Robert Dewar - - * checks.adb, exp_ch4.adb: Minor reformatting. - -2011-08-01 Javier Miranda - - * einfo.ads (Access_Disp_Table): Fix documentation. - (Dispatch_Table_Wrappers): Fix documentation. - -2011-08-01 Pascal Obry - - * prj-env.adb, prj-env.ads: Minor reformatting. - -2011-08-01 Yannick Moy - - * sem_util.ads, sem_util.adb, par.adb, par_util.adb - (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move - procedures out of these packages. - * errout.ads, errout.adb - (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move - procedures in of this package - (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE - * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode - on misplaced later vs initial declarations, like in Ada 83 - * sem_attr.adb (Processing for Analyze_Attribute): issue error in - formal mode on attribute of private type whose full type declaration - is not visible - * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a - package declaration inside a package specification - (Analyze_Full_Type_Declaration): issue error in formal mode on - controlled type or discriminant type - * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on - user-defined operator means that it should come from the source - (New_Overloaded_Entity): issue error in formal mode on overloaded - entity. - * sem_ch6.ads, sem_ch13.ads: typos in comments. - -2011-08-01 Thomas Quinot - - * atree.adb: Minor reformatting. - * checks.adb: Minor reformatting. - -2011-08-01 Vincent Celier - - * s-parame-vms-ia64.ads: Fix typo in comment - Minor reformatting - * s-parame-vms-restrict.ads: Removed, unused. - -2011-08-01 Javier Miranda - - * exp_ch3.adb - (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound. - * sem_ch3.adb - (Constrain_Index): Remove side effects in the evaluation of the bounds. - * sem_ch3.ads, sem_ch3.adb - (Is_Constant_Bound): New extended version of the subprogram that was - previously located inside function Exp_Ch3.Is_Variable_Size_Array. - Moved here since it is shared by routines of sem_ch3 and exp_ch3. - * sem_aux.ads (Constant_Value): Fix typo in comment. - * checks.adb (Generate_Index_Checks): New implementation which, for - array objects with constant bounds, generates the runtime check - referencing the bounds of the array type. For other cases this routine - provides its previous behavior obtaining such values from the array - object. - * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its - parent type. - * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since - we cannot have semantic interpretations of the new node. - -2011-08-01 Ed Schonberg - - * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified - expressions. - -2011-08-01 Arnaud Charlet - - * sem_ch8.adb: Minor code editing. - * s-vxwext.adb: Remove trailing space. - * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for - consistency with other files. - -2011-08-01 Thomas Quinot - - * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting. - -2011-08-01 Ed Schonberg - - * par-ch10.adb: reject parameterized expressions as compilation unit. - * sem_ch4.adb: handle properly conditional expression with overloaded - then_clause and no else_clause. - -2011-08-01 Tristan Gingold - - * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address - like done by System.Aux_DEC. - * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table. - -2011-08-01 Yannick Moy - - * par-endh.adb (Check_End): issue a syntax error in SPARK mode for - missing label at end of declaration (subprogram or package) - * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing - of positional and named parameter association - * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on - Error_Msg_SP which adds a prefix to the error message giving the name - of the formal language analyzed - * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for - access result type in subprogram, unconstrained array as result type,. - (Analyze_Subprogram_Declaration): issue an error in formal mode for null - procedure - * sem_ch8.adb: Code clean up. - -2011-08-01 Javier Miranda - - * sem_ch7.adb (Uninstall_Declarations): Remove useless code. - * einfo.ads (Access_Disp_Table): Fix documentation. - (Dispatch_Table_Wrappers): Fix documentation. - * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers, - Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions - to enforce the documentation of this attribute. - (Set_Is_Interface): Cleanup the assertion. - * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate - the Underlying_Type entity before reading attribute Access_Disp_Table. - * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion): - Locate the Underlying_Type before reading attribute Access_Disp_Table. - * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate - the Underlying_Type entity before reading attribute Access_Disp_Table. - * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration): - Locate the Underlying_Type entity before reading attribute - Access_Disp_Table. - -2011-08-01 Ed Schonberg - - * s-poosiz.ads: Additional overriding indicators. - -2011-08-01 Yannick Moy - - * sem_ch5.adb (Analyze_Exit_Statement): add return after error in - formal mode. - (Analyze_Iteration_Scheme): issue error in formal mode when loop - parameter specification does not include a subtype mark. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in - formal mode on abstract subprogram. - (Analyze_Subprogram_Specification): issue error in formal mode on - user-defined operator. - (Process_Formals): issue error in formal mode on access parameter and - default expression. - * sem_ch9.adb (Analyze_Abort_Statement, - Analyze_Accept_Statement, Analyze_Asynchronous_Select, - Analyze_Conditional_Entry_Call, Analyze_Delay_Relative, - Analyze_Delay_Until, Analyze_Entry_Call_Alternative, - Analyze_Requeue, Analyze_Selective_Accept, - Analyze_Timed_Entry_Call): issue error in formal mode on such constructs - * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error): - issue error in formal mode on user-defined raise statement. - -2011-08-01 Thomas Quinot - - * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a - declaration being hidden when overriding an implicit inherited - subprogram. - * par-ch10.adb (P_Compilation_Unit): In syntax check only mode - (-gnats), do not complain about a source file that contains only a - pragma No_Body. - -2011-08-01 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop - variable if already set. - -2011-08-01 Arnaud Charlet - - * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads, - g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads, - s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads, - g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb, - g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads, - g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads, - g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads, - g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb, - g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb, - g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads, - g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads, - s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb, - g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads, - s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads, - g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb, - g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb, - g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb, - g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb, - g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb, - g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb, - s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads, - s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads, - a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb, - s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads, - s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb, - g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads, - g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb, - g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb, - g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads, - g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads, - g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads, - s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads, - s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb, - g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb, - g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads, - s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb, - s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads, - g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads, - g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb, - g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, - s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads, - g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads, - g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads, - g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb, - s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb, - g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb, - g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb, - g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb, - s-osinte-mingw.ads: Update to GPLv3 run-time license. - Use GNAT instead of GNARL. - -2011-08-01 Bob Duff - - * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads, - a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads, - a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor - reformatting. - -2011-08-01 Yannick Moy - - * debug.adb (d.D) reverve flag for the SPARK mode - (d.E) reverve flag for SPARK generation mode - (d.F) reverve flag for Why generation mode - * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode, - ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New - functions which return True when the corresponding modes are set - (Formal_Language): return "spark" or "alfa" when in formal verification - mode. - * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on - Error_Msg to prefix the error message with a tag giving the formal - language - (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error - message with a tag giving the formal language - * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on - block statement - (Analyze_Case_Statement): issue error in formal mode on case statement - with a single "others" case alternative - (Analyze_Exit_Statement): issue errors in formal mode on exit - statements which do not respect SPARK restrictions - (Analyze_Goto_Statement): issue error in formal mode on goto statement - (Check_Unreachable_Code): always issue an error (not a warning) in - formal mode on unreachable code (concerns both code after an infinite - loop and after an unconditional jump, both not allowed in SPARK) - * sem_ch6.adb (Analyze_Return_Statement): add call to - Set_Return_Present for a procedure containing a return statement - (already done for functions in Analyze_Function_Return) - (Analyze_Function_Return): issue error in formal mode on extended - return or if return is not last statement in function - (Check_Missing_Return): issue error in formal mode if function does - not end with return or if procedure contains a return - * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new - function to detect if there is an inner scope of its parameter S which - is a loop. - -2011-08-01 Thomas Quinot - - * sem_ch6.ads: Minor reformatting. - -2011-08-01 Javier Miranda - - * sem_util.adb (Abstract_Interface_List): Complete condition when - processing private type declarations to avoid reading unavailable - attribute. - (Is_Synchronized_Tagged_Type): Complete condition when processing - private extension declaration nodes to avoid reading unavailable - attribute. - -2011-08-01 Thomas Quinot - - * sem_ch3.adb: Minor reformatting. - -2011-08-01 Thomas Quinot - - * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads, - i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads, - s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads, - s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages - for VMS, instead parametrize the common implementation with - System.Parameters declarations. - -2011-08-01 Eric Botcazou - - * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing. - -2011-08-01 Tristan Gingold - - * seh_init.c: Fix SEH handler installation on win64. - -2011-08-01 Ed Schonberg - - * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent - double analysis of an anonymous access to subprogram, because it can - lead to improper sharing of profiles and a back-end crash. - -2011-08-01 Robert Dewar - - * make.adb, sem_ch4.adb: Minor reformatting. - * gcc-interface/Make-lang.in: Update dependencies. - * sem_util.adb, exp_ch5.adb: Minor reformatting. - -2011-08-01 Arnaud Charlet - - * gnat_rm.texi: Fix definition of Long_Integer. - -2011-08-01 Ed Schonberg - - * exp_aggr.adb: check limit size of static aggregate unconditionally, - to prevent storage exhaustion. - * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being - finalized is a function body, insert the cleanup code before the final - return statement, to prevent spurious warnings. - * s-pooglo.ads: add overriding indicator. - -2011-08-01 Ed Schonberg - - * sem_ch4.adb (Operator_Check): improve error message when both a - with_clause and a use_clause are needed to make operator usage legal. - * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to - determine whether a compilation unit is visible within an other, - either through a with_clause in the current unit, or a with_clause in - its library unit or one one of its parents. - -2011-08-01 Ed Schonberg - - * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator - over an arbitrary expression of an array or container type. - * lib-xref.adb: clarify comment. - -2011-08-01 Bob Duff - - * einfo.ads: Minor reformatting. - * debug.adb: Minor comment improvement. - -2011-08-01 Javier Miranda - - * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not - consider hidden subprograms as valid candidates. - -2011-08-01 Arnaud Charlet - - * make.adb (Compile): Strip -mxxx switches in CodePeer mode. - -2011-08-01 Vasiliy Fofanov - - * gnat_ugn.texi: Fix typo. - -2011-08-01 Robert Dewar - - * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb, - lib-xref.adb: Minor reformatting - -2011-08-01 Gary Dismukes - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of - when to generate a call to Move_Final_List. - (Has_Controlled_Parts): Remove this function. - -2011-08-01 Geert Bosch - - * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra - "," in choice list. - -2011-08-01 Thomas Quinot - - * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for - explicit raise of a predefined exception as Comes_From_Source if the - original N_Raise_Statement comes from source. - -2011-08-01 Robert Dewar - - * sinfo.ads: Add comment. - * sem_ch6.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * freeze.adb (Freeze_Entity): Refine check for bad component size - clause to avoid rejecting confirming clause when atomic/aliased present. - -2011-08-01 Ed Schonberg - - * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to - better determine whether an entity reference is a write. - * sem_util.adb (Is_LHS): refine predicate to handle assignment to a - subcomponent. - * lib-xref.adb (Output_References): Do no suppress a read reference at - the same location as an immediately preceeding modify-reference, to - handle properly in-out actuals. - -2011-08-01 Tristan Gingold - - * env.c (__gnat_setenv) [VMS]: Refine previous change. - -2011-08-01 Quentin Ochem - - * i-cstrin.adb (New_String): Changed implementation, now uses only the - heap to compute the result. - -2011-08-01 Robert Dewar - - * atree.ads: Minor reformatting. - -2011-08-01 Emmanuel Briot - - * g-expect.adb (Get_Command_Output): Fix memory leak. - -2011-08-01 Geert Bosch - - * cstand.adb (P_Float_Type): New procedure to print the definition of - predefined fpt types. - (P_Mixed_Name): New procedure to print a name using mixed case - (Print_Standard): Use P_Float_Type for printing floating point types - * einfo.adb (Machine_Emax_Value): Add preliminary support for quad - precision IEEE float. - -2011-08-01 Thomas Quinot - - * sem_ch3.adb: Minor reformatting. - -2011-08-01 Ed Schonberg - - * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is - the completion of a generic function, insert the new body rather than - rewriting the original. - -2011-08-01 Yannick Moy - - * sinfo.ads, errout.ads: Typos in comments. - -2011-08-01 Robert Dewar - - * par-endh.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add aspects for library unit pragmas - (Pre_Post_Aspects): New subtype. - * par-ch12.adb (P_Generic): New syntax for aspects in packages - * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter - * par-ch7.adb (P_Package): Remove Decl parameter - (P_Package): Handle new syntax for aspects (before IS) - * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle - new aspect syntax - (P_Task_Definition): Remove Decl parameter, handle new aspect syntax - * par.adb (P_Aspect_Specifications): Add Semicolon parameter - (P_Package): Remove Decl parameter - * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit - aspects - * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect - specs - * sem_util.ads, sem_util.adb (Static_Boolean): New function - * sinfo.ads: Document new syntax for aspects in packages etc. - * sprint.adb: Handle new syntax of aspects before IS in package - -2011-08-01 Thomas Quinot - - * atree.ads: Minor reformatting. - * sem_prag.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * exp_util.adb (Insert_Actions): Fix error in handling Actions for - case expr alternative. - -2011-08-01 Ed Schonberg - - * sem_ch12.adb: Fix typo. - -2011-08-01 Geert Bosch - - * sem_prag.adb (Check_No_Link_Name): New procedure. - (Process_Import_Or_Interface): Use Check_No_Link_Name. - * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float) - instead of Standard_Long_Long_Float_Size global. Preparation for - eventual removal of per type constants. - * exp_util.ads (Get_Stream_Size): New function returning the stream - size value of subtype E. - * exp_util.adb (Get_Stream_Size): Implement new function. - * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size - function. - * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size - * einfo.adb: - (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats - -2011-08-01 Geert Bosch - - * cstand.adb: Fix comments. - * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit - count of arguments. - -2011-08-01 Robert Dewar - - * exp_ch4.adb, sem_cat.adb: Minor reformatting. - -2011-08-01 Geert Bosch - - * atree.ads: Fix comment. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec. - * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name. - * par.adb: Add with for Namet.Sp. - * par-tchk.adb: Minor reformatting. - -2011-08-01 Vincent Celier - - * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb - (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name - of the init procedure of a SAL. - * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name): - New procedure. - -2011-08-01 Thomas Quinot - - * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor - reformatting. - -2011-08-01 Richard Kenner - - * adaint.c (__gnat_file_time_name_attr): Get rid of warning. - -2011-08-01 Thomas Quinot - - * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function - conformant with its spec (return True only for types that have - an overriding Initialize primitive operation that prevents them from - having preelaborable initialization). - * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable - initialization for controlled types in Ada 2005 or later mode. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition, - Postcondition. - (Same_Aspect): New function. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect - Type_Invariant, Precondition, Postcondition. - * snames.ads-tmpl: Add Name_Type_Invariant. - -2011-08-01 Robert Dewar - - * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point - here. - (Freeze_All_Ent): Fix error in handling inherited aspects. - * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is - already analyzed, but don't skip entire processing of a declaration, - that's wrong in some cases of declarations being rewritten. - (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects. - Don't delay for integer, string literals - Treat predicates in usual manner for delay, remove special case code, - not needed. - (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point - (Build_Predicate_Function): Update saved expression in aspect - (Build_Invariant_Procedure): Update saved expression in aspect - * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization - of replacement of discriminant references if the reference is simple. - -2011-08-01 Robert Dewar - - * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate. - * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for - Static_Predicate and Dynamic_Predicate. - (Build_Predicate_Function): Add processing for Static_Predicate - and Dynamic_Predicate. - * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag - (From_Static_Predicate): New flag - * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate - -2011-08-01 Robert Dewar - - * usage.adb: Documentation cleanup for Ada version modes in usage. - * expander.adb: Minor reformatting. - -2011-08-01 Robert Dewar - - * atree.ads: Minor comment fix. - * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads, - a-witeio.ads, sem_prag.adb: Minor reformatting. - -2011-08-01 Doug Rupp - - * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure - pointers. Use descrip.h header file for convenience. Add some - comments. - -2011-08-01 Robert Dewar - - * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point - (Freeze_All): Call Check_Aspect_At_End_Of_Declarations - * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point): - New procedure. - (Check_Aspect_At_End_Of_Declarations): New procedure - (Analye_Aspect_Specification): Minor changes for above procedures - * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect - specification node as well. - -2011-08-01 Pascal Obry - - * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special - Windows files. Use GetFilesAttributes() in this case to check for file - existence instead of returning with an error code. - -2011-08-01 Vincent Celier - - * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when - High is above Source length. - -2011-08-01 Robert Dewar - - * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment. - -2011-08-01 Robert Dewar - - * aspects.ads (Boolean_Aspects): New subtype. - * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects - for derived types in cases where the parent type and derived type have - aspects. - * freeze.adb (Freeze_Entity): Fix problems in handling derived type - with aspects when parent type also has aspects. - (Freeze_Entity): Deal with delay of boolean aspects (must evaluate - boolean expression at this point). - * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in - accordance with final decision on the Ada 2012 feature. - * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag. - -2011-08-01 Matthew Heaney - - * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector. - -2011-08-01 Pascal Obry - - * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: - Fix Replace_Slice when High is above current string size. - (Replace_Slice): Fix DL computation when High is above current - string length. - -2011-08-01 Gary Dismukes - - * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired. - -2011-08-01 Matthew Heaney - - * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child - of node. - -2011-08-01 Pascal Obry - - * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor - reformatting. - -2011-08-01 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named - access to protected subprograms in generic bodies. - * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a - protected type, indicate that the convention of the subprogram is - Convention_Protected, because it may be used in subsequent declarations - within the protected declaration. - -2011-08-01 Vincent Celier - - * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init" - and "final" procedures when the name of the library is "ada", to avoid - duplicate symbols "adainit" and "adafinal" in executables. - -2011-08-01 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a - quantified expression that appears within a postcondition and uses the - Ada2012 'Result attribute. - -2011-07-28 Rainer Orth - - * init.c (__gnat_error_handler): Cast reason to int. - (__gnat_install_handler): Explain sa_sigaction use. - -2011-07-24 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If the - subprogram has copy-in copy-out parameters, try to promote the mode of - the return type if it is passed in registers. - -2011-07-24 Eric Botcazou - - * gcc-interface/utils2.c (build_binary_op) : Do not mark the - left operand as addressable. - -2011-07-24 Eric Botcazou - - * gcc-interface/gigi.h (build_function_stub): Remove. - (build_return_expr): Likewise. - (convert_vms_descriptor): Declare. - * gcc-interface/utils.c (convert_vms_descriptor): Make global. - (build_function_stub): Move to... - * gcc-interface/utils2.c (build_return_expr): Move to... - * gcc-interface/trans.c (build_function_stub): ...here. - (build_return_expr): ...here. - (Subprogram_Body_to_gnu): Add local variable for language_function. - Disconnect the parameter attributes cache, if any, once done with it. - Call end_subprog_body only after setting the end_locus. - Build the stub associated with the function, if any, at the very end. - (gnat_to_gnu) : Remove couple of useless local - variables and streamline control flow. - -2011-07-23 Arnaud Charlet - - PR ada/49819 - * gcc-interface/Makefile.in (powerpc-linux): Remove reference to - g-trasym-dwarf.adb. - -2011-07-22 Rainer Orth - - PR bootstrap/49794 - * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): - Assign to act.sa_sigaction. - * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast - current->return_address to char * before arithmetic. - -2011-07-22 Rainer Orth - - * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation. - Correct argument types. - Extract code from reason. - (__gnat_install_handler): Assign to act.sa_sigaction. - -2011-07-21 Eric Botcazou - - * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to... - (GNAT1_OBJS): ...here. - -2011-07-15 Eric Botcazou - - PR ada/48711 - * g-socthi-mingw.adb (Fill): Fix formatting. - - * gcc-interface/gigi.h: Move around comment. - -2011-07-14 John David Anglin - - PR ada/46350 - * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. - -2011-07-14 Florian Weimer - - PR ada/48711 - * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL. - -2011-07-13 Eric Botcazou - - * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit - range comparison if Pmode is SImode. - -2011-07-12 Laurent GUERBY - Eric Botcazou - - * adadecode.c: Wrap up in extern "C" block. - * adadecode.h: Likewise. - * adaint.c: Likewise. Remove 'const' keyword. - * adaint.h: Likewise. - * argv.c: Likewise. - * atree.h: Likewise. - * cio.c: Likewise. - * cstreams.c: Likewise. - * env.c: Likewise. - * exit.c: Likewise. - * fe.h: Likewise. - * final.c: Likewise. - * init.c: Likewise. - * initialize.c: Likewise. - * link.c: Likewise. - * namet.h: Likewise. - * nlists.h: Likewise. - * raise.c: Likewise. - * raise.h: Likewise. - * repinfo.h: Likewise. - * seh_init.c: Likewise. - * targext.c: Likewise. - * tracebak.c: Likewise. - * uintp.h: Likewise. - * urealp.h: Likewise. - * xeinfo.adb: Wrap up generated C code in extern "C" block. - * xsinfo.adb: Likewise. - * xsnamest.adb: Likewise. - * gcc-interface/gadaint.h: Wrap up in extern "C" block. - * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block. - * gcc-interface/misc.c: Likewise. - * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER. - (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and - ada/targext.o here... - (GNAT_ADA_OBJS): ...and not here. - (GNAT1_ADA_OBJS): Add ada/b_gnat1.o. - (GNATBIND_OBJS): Reorder. - -2011-07-07 Richard Henderson - - * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call - dwarf2out_frame_init. - -2011-07-07 Eric Botcazou - - * gcc-interface/misc.c (gnat_init): Tweak previous change. - -2011-07-07 Rainer Orth - - PR target/39150 - * gcc-interface/Makefile.in: Handle x86_64-solaris2. - -2011-07-06 Richard Guenther - - * gcc-interface/misc.c (gnat_init): Merge calls to - build_common_tree_nodes and build_common_tree_nodes_2. - Re-initialize boolean_false_node. - -2011-07-02 Eric Botcazou - Olivier Hainque - Nicolas Setton - - * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on - the type according to the ARTIFICIAL_P parameter. - (create_type_decl): Likewise. - (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1. - -2011-07-01 Eric Botcazou - - * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command. - (gnatbind): Likewise. - -2011-06-29 Rainer Orth - - * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL). - -2011-06-18 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE - local variable throughout. Remove useless call to Base_Type. - (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout. - Take it also into account for the volatileness of the field. Set the - TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings. - -2011-06-18 Eric Botcazou - - * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP - on a dereference built for a by-ref object if it has an address clause. - -2011-06-18 Eric Botcazou - - * einfo.ads (Address_Taken): Document use for the second argument of - Asm_Input and Asm_Output attributes. - * sem_attr.adb (Analyze_Attribute) : If the second - argument is an entity name, then set Address_Taken on it. - : Likewise. - * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the - Attr_Asm_Input and Attr_Asm_Output attributes explicitly. - (gnat_to_gnu) : If an operand is going to end up in - memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. - -2011-06-16 Joern Rennecke - - PR middle-end/46500 - * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args. - -2011-06-14 Joseph Myers - - * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o. - (ada/utils.o): Update dependencies. - * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add - ../../../libcpp/libcpp.a. - * gcc-interface/utils.c: Include common/common-target.h. - (process_attributes): Use targetm_common.have_named_sections. - -2011-06-07 Richard Guenther - - * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call - set_sizetype. - -2011-06-06 Eric Botcazou - - * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the - TREE_THIS_NOTRAP flag. - -2011-06-06 Eric Botcazou - - * gcc-interface/utils2.c (gnat_stabilize_reference) : - Fix thinko. - -2011-06-06 Eric Botcazou - - * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred - constants whose full view has discriminants specially. - -2011-06-06 Eric Botcazou - - * gcc-interface/utils.c: Include diagnostic.h. - (gnat_write_global_declarations): Output debug information for all - global type declarations before finalizing the compilation unit. - * gcc-interface/Make-lang.in (ada/utils.o): Add dependency. - -2011-05-25 Jakub Jelinek - - * gcc-interface/utils.c (def_fn_type): Remove extra va_end. - -2011-05-25 Kai Tietz - - * adaint.c (__gnat_to_canonical_file_list_next): Use array - initialization instead of const/none-const pointer assignment. - -2011-05-24 Joseph Myers - - * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include - $(EXTRA_GNAT1_OBJS). - (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). - (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. - (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. - * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use - libcommon-target.a instead of prefix.o. - -2011-05-21 Joseph Myers - - PR ada/49097 - * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS). - -2011-05-20 Joseph Myers - - * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o. - * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a - instead of version.o. - -2011-05-18 Kai Tietz - - * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use - boolean_false_node instead of integer_zero_node. - (convert_with_check): Likewise. - * gcc-interface/decl.c (choices_to_gnu): Likewise. - -2011-05-12 Eric Botcazou - - * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the - type of the parameter is an unconstrained array, convert the actual to - the type of the formal in the In Out and Out cases as well. - -2011-05-11 Nathan Froyd - - * gcc-interface/utils.c (def_fn_type): Don't call build_function_type; - call build_function_type_array or build_varargs_function_type_array - instead. - (create_subprog_type): Don't call build_function_type; call - build_function_type_vec instead. - -2011-05-11 Nathan Froyd - - * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL. - (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL. - (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL. - -2011-05-07 Eric Botcazou - - * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces. - - * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. - * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. - -2011-05-05 Nathan Froyd - - * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label. - -2011-05-05 Nathan Froyd - - * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators - instead of accessing TYPE_ARG_TYPES directly. - * gcc-interface/utils.c (handle_nonnull_attribute): Likewise. - -2011-05-05 Eric Botcazou - - PR ada/48844 - * gcc-interface/gigi.h (get_variant_part): Declare. - * gcc-interface/decl.c (get_variant_part): Make global. - * gcc-interface/utils2.c (find_common_type): Do not return T1 if the - types have the same constant size, are record types and T1 has a - variant part while T2 doesn't. - -2011-05-05 Eric Botcazou - - * gcc-interface/utils.c (begin_subprog_body): Do not call - get_pending_sizes. - (end_subprog_body): Likewise. - -2011-05-04 Richard Guenther - - * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to - int_const_binop. - (pos_to_constructor): Likewise. - -2011-05-03 Nathan Froyd - Eric Botcazou - - * gcc-interface/trans.c (gigi): Call build_function_type_list instead - of build_function_type. Adjust calls to... - (build_raise_check): ...this. Do not take a void_tree parameter. - Call build_function_type_list instead of build_function_type. - Fix head comment and swap couple of conditional blocks. - -2011-04-30 Eric Botcazou - - * gnatvsn.ads (Library_Version): Bump to 4.7. - (Current_Year): Bump to 2011. - -2011-04-29 Michael Matz - - * gcc-interface/misc.c (gnat_handle_option): Set - warn_maybe_uninitialized. - -2011-04-23 Gerald Pfeifer - - * gnat_ugn.texi (Complexity Metrics Control): Update link to - the Watson/McCabe paper. - -2011-04-23 Jim Meyering - - * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/ - -2011-04-22 Eric Botcazou - - * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE - onto the new type. - -2011-04-22 Eric Botcazou - - * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG - parameter. - * gcc-interface/utils.c (create_subprog_decl): Likewise. Set - DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Add - ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl. - : Do not set flags on the reused DECL node coming from an alias. - Set DECL_IGNORED_P on the DECL node built for subprograms if they - don't need debug info here... - * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here. - (gigi): Adjust calls to create_subprog_decl. - (build_raise_check): Likewise. - (establish_gnat_vms_condition_handler): Likewise. - (Compilation_Unit_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - -2011-04-21 Eric Botcazou - - * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define. - (NO_REORDER_ADAFLAGS): New variable. - (EXTRA_GNATTOOLS): Always define. - (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h. - Clean up and adjust list of files compiled with special options. - * gcc-interface/Make-lang.in: Likewise. - (ada/decl.o): Cosmetical change. - (ada/misc.o): Remove dependency on $(PLUGIN_H). - -2011-04-20 Jim Meyering - - * initialize.c (__gnat_initialize): Remove useless if-before-free. - -2011-04-17 Eric Botcazou - - * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with - $(CFLAGS) on the link line. - -2011-04-17 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare the - padded type built for the return type if it is unconstrained. - -2011-04-14 Nathan Froyd - - * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. - -2011-04-12 Nathan Froyd - - * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON - before calling TREE_CHAIN. - * gcc-interface/misc.c (gnat_init_ts): New function. - (LANG_HOOKS_INIT_TS): Define. - -2011-04-12 Martin Jambor - - * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node - instead of cgraph_node. - -2011-04-08 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum - alignment on fields of the RETURN type built for the Copy-In Copy-Out - mechanism. - -2011-04-08 Eric Botcazou - - * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers - of aggregate types that contain a placeholder. - -2011-04-08 Nathan Froyd - - * gcc-interface/utils.c (handle_sentinel_attribute): Don't use - TYPE_ARG_TYPES. - (handle_type_generic_attribute): Likewise. - -2011-04-04 Eric Botcazou - - PR ada/47163 - * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change. - -2011-04-04 Kai Tietz - - PR ada/47163 - * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets - to flag value. - -2011-04-02 Eric Botcazou - - * gcc-interface/utils2.c (build_allocator): In the unconstrained array - type case, do not strip a padding type around the array type. - -2011-04-02 Eric Botcazou - - * gcc-interface/utils.c (update_pointer_to): Finalize named pointer - types. - -2011-04-02 Eric Botcazou - - * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete. - * gcc-interface/misc.c (gnat_handle_option): Remove special handling - code for -feliminate-unused-debug-types. - (gnat_post_options): Likewise. - -2011-04-02 Eric Botcazou - - * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial - declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a - distinct copy. - -2011-04-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the - DECL_ARTIFICIAL flag on enumeration types. - -2011-04-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make - fat pointer types artificial unconditionally. - : Attach the base array type as a parallel type if it - isn't artificial. - -2011-04-02 Eric Botcazou - - * gcc-interface/gigi.h (get_dummy_type): Declare. - (build_dummy_unc_pointer_types): Likewise. - (finish_fat_pointer_type): Likewise. - * gcc-interface/decl.c (gnat_to_gnu_entity) : If a dummy - fat pointer type has been built, complete it in place. - : Call build_dummy_unc_pointer_types to build dummy fat - and thin pointers. Remove useless variable. - (finish_fat_pointer_type): Make global and move to... - * gcc-interface/utils.c (finish_fat_pointer_type): ...here. - (get_dummy_type): New function. - (build_dummy_unc_pointer_types): Likewise. - (gnat_pushdecl): Propage the name to the anonymous variants only. - (update_pointer_to): Only adjust the pointer types in the unconstrained - array case. - -2011-04-02 Eric Botcazou - - * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Set it - if this is a Taft amendment type and the full declaration is available. - * gcc-interface/trans.c (process_type): Likewise. - If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P. - (process_freeze_entity): Likewise. - * gcc-interface/utils.c (dummy_global): New static variable. - (gnat_write_global_declarations): If there are types declared as used - at the global level, insert them in the global hash table. - -2011-04-02 Eric Botcazou - - * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param. - * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial - declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct - copy. - (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL - flag of the type accordingly. - * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type. - -2011-04-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer - finalizing types when updating the pointers to the designated type. - : Finalize the deferred types even if we didn't defer processing - of incomplete types in this invocation. - -2011-04-01 Olivier Hainque - Nicolas Setton - Eric Botcazou - - * gcc-interface/misc.c (gnat_descriptive_type): New function. - (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type. - -2011-03-28 Kai Tietz - - * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native - Windows targets. - (EH_MECHANISM): Use GCC exception mechanism for native Windows targets. - * system-mingw.ads (System): Change ZCX_By_Default default to True. - - * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype. - -2011-03-28 Tristan Gingold - - PR ada/44431 - * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c. - Use ada output of gnatbind. - (ada/b_gnatb.adb): Ditto. - (ada/b_gnat1.o, ada/b_gnatb.o): New rules. - (ada.mostlyclean, ada.stage1) - (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile) - (ada.stagefeedback): Adjust. - * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c. - Use ada output of gnatbind. - (b_gnatm.adb): Ditto. - (b_gnatl.o, b_gnatm.o): New rules. - -2011-03-26 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL - for the padded type built to support a specified size or alignment. - -2011-03-26 Eric Botcazou - - * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment. - * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer - unconditionally to the end of the unit when the designated type is - limited_with'ed. - : Rename local variable. Attempt to un-defer types only and do it - for limited_with'ed types as well. - (finalize_from_with_types): Adjust comment. Rename variable and tidy. - * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT - consistently and remove redundant call to finalize_from_with_types. - -2011-03-26 Eric Botcazou - - * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to - subprograms without a previous spec declared in the same unit. - * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined - subprograms at the end of the unit instead of at the beginning. - * gcc-interface/utils.c (create_subprog_decl): Check that the entity - isn't public for the special handling of non-inline functions nested - inside inline external functions. - -2011-03-25 Jeff Law - - * gcc-interface/utils.c (def_fn_type): Add missing va_end. - -2011-03-24 Eric Botcazou - - * einfo.ads (Size_Depends_On_Discriminant): Adjust description. - * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure - to compute Set_Size_Depends_On_Discriminant. - (Layout_Type): Call it on array types in back-end layout mode. - * sem_util.adb (Requires_Transient_Scope): Return true for array - types only if the size depends on the value of discriminants. - * gcc-interface/utils2.c (build_binary_op) : Use the RHS - type if the RHS is a call to a function that returns an unconstrained - type with default discriminant. - -2011-03-24 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of - non-conversion to the nominal result type at the end. - -2011-03-23 Eric Botcazou - - * gcc-interface/trans.c (create_temporary): New function taken from... - (create_init_temporary): ...here. Call it. - (call_to_gnu): Create the temporary for the return value early, if any. - Create it for a function with copy-in/copy-out parameters if there is - no target; in other cases of copy-in/copy-out, use another temporary. - Push the new binding level lazily. Add and rename local variables. - -2011-03-23 Eric Botcazou - - * gcc-interface/decl.c (validate_size): Improve comments and tweak - error message. - (set_rm_size): Likewise. - -2011-03-23 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL - for the padded type built in order to support a specified alignment. - Fix incorrect formatting. - -2011-03-21 Eric Botcazou - - PR bootstrap/48216 - * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL. - -2011-03-21 Eric Botcazou - - * gcc-interface/decl.c (components_to_record): Add REORDER parameter, - rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter - to the end of the list. Adjust recursive call. Rename local variable. - If REORDER is true, reorder components of the record type. - (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to - components_to_record and adjust the parameter list. - -2011-03-21 Eric Botcazou - - * gcc-interface/decl.c (elaborate_expression_1): When optimization is - disabled, use the variable for bounds of loop iteration scheme. - -2011-03-21 Kai Tietz - - PR target/12171 - * gcc-interface/utils.c (gnat_internal_attribute_table): Add column. - -2011-03-17 Eric Botcazou - - * gcc-interface/decl.c (elaborate_expression_1): Try harder to find - out whether the expression is read-only. Short-circuit placeholder - case and rename a couple of local variables. - -2011-03-17 Eric Botcazou - - * gcc-interface/gigi.h (smaller_form_type_p): Declare. - * gcc-interface/trans.c (smaller_form_type_p): Make global and move... - * gcc-interface/utils.c (smaller_form_type_p): ...to here. - (convert): Deal with conversions from a smaller form type specially. - -2011-02-14 Eric Botcazou - - * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and - its argument, except for the special -I- switch. - -2011-02-12 Gerald Pfeifer - - * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to - "Ada Issues". - -2011-02-08 Eric Botcazou - - * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs. - -2011-02-03 Eric Botcazou - - * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of - GNAT_FORMAL. - * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to... - * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE - instead of GNAT_FORMAL. Protect the expression against multiple uses. - Do not generate the check directly, instead instantiate the template - check present in the descriptor. - (make_descriptor_field): Move around. - (build_vms_descriptor32): Build a template check in the POINTER field. - (build_vms_descriptor): Remove useless suffixes. - * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call. - -2011-01-26 Eric Botcazou - - PR bootstrap/47467 - * targext.c: Include target files if IN_RTS is defined. - -2011-01-26 Richard Guenther - - PR bootstrap/47467 - * targext.c: Include config.h. - * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H) - dependency. - -2011-01-04 Pascal Obry - Eric Botcazou - - * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. - -2011-01-04 Eric Botcazou - - * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the - end-of-case on the end label and its associated gotos, if any. - -2011-01-04 Eric Botcazou - - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the - expressions of the parameter cache within the statement group of - the CICO mechanism. - -2011-01-04 Olivier Hainque - Eric Botcazou - - * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default. - (set_end_locus_from_node): New function. - (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we - make and the function end_locus. - (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus - for the elaboration subprogram. - (set_gnu_expr_location_from_node) : Use it to attempt to - set the end_locus of the expression as well. - -2011-01-04 Eric Botcazou - - PR ada/47131 - * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make - variables that are referenced in exception handlers volatile. - - -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/ada/ChangeLog-2011 b/gcc/ada/ChangeLog-2011 new file mode 100644 index 0000000..37f011b --- /dev/null +++ b/gcc/ada/ChangeLog-2011 @@ -0,0 +1,18453 @@ +2011-12-23 Pascal Obry + + * prj.ads (For_Every_Project_Imported): Add In_Aggregate_Lib + parameter to generic formal procedure. + * prj.adb (For_Every_Project_Imported): Update accordingly. + (Recursive_Check): Likewise. Do not parse imported project for + aggregate library. This is needed as the imported projects are + there just to handle dependencies. + (Look_For_Sources): Likewise. + (Recursive_Add): Likewise. + * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: + Add In_Aggregate_Lib parameter to routines used with + For_Every_Project_Imported generic procedure. + * prj-nmsc.adb (Tree_Processing_Data): Add In_Aggregate_Lib field. + (Check): Move where it is used. Fix implementation + to not check libraries that are inside aggregate libraries. + (Recursive_Check): Add In_Aggregate_Lib parameter. + +2011-12-23 Ed Schonberg + + * sem_ch7.adb (Analyze_Package_Body, Has_Referencer): A generic + package is a referencer regardless of whether there is a + subsequent subprogram with an Inline pragma. + +2011-12-23 Geert Bosch + + * sem_ch3.adb (Can_Derive_From): Check matching Float_Rep on VMS. + +2011-12-23 Pascal Obry + + * gnatcmd.adb, prj.adb, prj-nmsc.adb: Minor reformatting. + +2011-12-22 Hristian Kirtchev + + * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Create the objects + associated with exception handling unconditionally. + (Build_Adjust_Statements): Create the objects associated with + exception handling unconditionally. + (Build_Components): Create the objects associated with exception + handling unconditionally. + (Build_Finalize_Statements): Create the objects associated with + exception handling unconditionally. + (Build_Initialize_Statements): Create the objects associated with + exception handling unconditionally. + (Build_Object_Declarations): Set the proper location of the data + record when exception propagation is forbidden. + +2011-12-22 Gary Dismukes + + * a-tienio.adb (Put): Test validity of Item parameters before + applying Image, and raise Constraint_Error for invalid values. + +2011-12-22 Bob Duff + + * a-stwima.ads (Initialize,Adjust,Finalize): Add overriding indicators. + * a-ststio.ads (AFCB_Allocate,AFCB_Close,AFCB_Free,Read,Write): Add + overriding indicators. + +2011-12-22 Arnaud Charlet + + * s-osinte-hpux-dce.ads: Update header to GPLv3 + +2011-12-22 Ed Schonberg + + * a-cohase.ads, a-cohase.adb: Update to latest RM version. Add + aspect Constant_Reference to set type, and corresponding + functions. + * a-cihama.ads, a-cihama.adb: Update to latest RM version. Add + function Reference to provide a proper element iterator construct + over indefinite maps. + +2011-12-22 Ed Schonberg + + * exp_attr.adb (Expand_N_Attribute, case 'Access): Do not insert + implicit conversion on prefix of Unrestricted_Access when prefix + is an explicit dereference. + +2011-12-22 Vincent Pucci + + * sem_dim.adb: Addressed all ??? comments. Replacement of warnings by + errors using continuation marks. + (Error_Dim_Msg_For_?): Renaming of Error_Dim_For_?. + +2011-12-22 Robert Dewar + + * sem_ch3.adb, sem_ch3.ads, sem_prag.adb: Minor code clean up. + +2011-12-21 Rainer Orth + + * s-oscons-tmplt.c [__alpha__ && __osf__] (_XOPEN_SOURCE): Define. + +2011-12-21 Javier Miranda + + * sem_ch3.ads, sem_ch3.adb (Check_CPP_Type): New subprogram. + (Process_Full_View): Invoke Check_CPP_Type if processing the + full-view of a CPP type. + * sem_prag.adb (Process_Import_Or_Interface): Add missing support + for importing a CPP type that has an incomplete declaration. Move + to new routine Check_CPP_Type the code that verifies that + components of imported CPP types do not have default expressions. + +2011-12-21 Vincent Celier + + * prj-nmsc.adb (Report_No_Sources): Remove argument Lang. Report + no sources even for languages that are not allowed. + (Add_Source): Get the source even when the language is not allowed. + +2011-12-21 Robert Dewar + + * sem_ch6.adb (Process_Formals): Add defensive code. + +2011-12-21 Ed Schonberg + + * sem_ch7.adb, sem_ch13.adb (Analyze_Package_Specification): Build the + invariant procedure of a type declaration that is a completion and has + aspect specifications. + (Build_Invariant_Procedure): If the procedure is built for a + type declaration that is a completion, analyze body expliitly + because all private declarations have been already analyzed. + +2011-12-21 Claire Dross + + * a-cfdlli.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb, + a-cofove.adb: Minor reformating on formal containers + +2011-12-21 Vincent Celier + + * makeutl.adb (Mains.Complete_Mains.Do_Complete): Remove + any main that is not in the list of restricted languages. + (Insert_Project_Sources.Do_Insert): Only add sources of languages + in the list of restricted languages. + +2011-12-21 Ed Schonberg + + * sem_res.adb (Valid_Conversion): A type conversion is valid when + the target type is an anonymous access type and the operand is a + rewriting of an allocator. The conversion is typically inserted + when the designated type is an interface. + +2011-12-21 Ed Schonberg + + * exp_ch9.adb (Establish_Task_Master): If the enclosing block + has no declarations, create new declarative list for it. + +2011-12-21 Matthew Heaney + + * a-rbtgbk.adb (Generic_Conditional_Insert): Fixed incorrect comment. + +2011-12-21 Yannick Moy + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not + ignore representation attributes in Alfa mode, since formal + verification backend does not depend on actual physical + representation, but code may still refer to attribute values. + +2011-12-21 Yannick Moy + + * par-ch13.adb (P_Aspect_Specifications): Recognize the cases + where a comma between two aspects is missing, or erroneously + replaced by a semicolon, issue an error and proceed with next + aspect. + * par.adb, sinfo.ads: Fix typos. + +2011-12-21 Ed Schonberg + + * sem_util.adb (Mark_Coextensions): A coextension for an + object that is part of the expression in a return statement, + or part of the return object in an extended return statement, + must be allocated dynamically. + +2011-12-21 Matthew Heaney + + * a-crbtgk.adb (Generic_Conditional_Insert): Fixed incorrect comment. + +2011-12-21 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): If the name + of an element iterator is not an entity name we introduce a + local renaming declaration for it. To prevent spurious warnings + on parameterless function calls that return a container, when + expansion is disabled (either explicitly or because of a previous + errors) the name must be marked as not coming from source. + +2011-12-21 Arnaud Charlet + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Separate + handling in CodePeer mode and only ignore Component_Size + attribute. + +2011-12-21 Robert Dewar + + * sem_ch6.adb (Process_Formals): Set proper mechanism for + formals whose types have conventions Ada_Pass_By_Copy or + Ada_Pass_By_Reference. + +2011-12-21 Arnaud Charlet + + * gnat1drv.adb (Gnat1Drv): Always delete old scil files in + CodePeer mode. + +2011-12-21 Robert Dewar + + * comperr.adb: Minor reformatting. + +2011-12-21 Ed Schonberg + + * aspects.ads: New table Base_Aspect, to indicate that an aspect + is defined on a base type. + * aspects.adb (Find_Aspect): If the aspect is a Base_Aspect, + examine the representation items of the base type. + +2011-12-21 Pascal Obry + + * gnat_ugn.texi, prj.ads, prj-nmsc.adb, prj-attr.adb, projects.texi, + snames.ads-tmpl: Use Encapsulated instead of Fully Standalone library. + +2011-12-21 Pascal Obry + + * adaint.c (__gnat_is_executable_file_attr) [_WIN32]: Add parentheses + to kill warning. + +2011-12-21 Arnaud Charlet + + * comperr.adb (Delete_SCIL_Files): Also delete .scilx files. + Fix implementation for child packages and package specs. + (Delete_SCIL_Files.Decode_Name_Buffer): New function. + +2011-12-21 Robert Dewar + + * err_vars.ads, a-cdlili.adb, a-cfdlli.ads, prj.adb, prj-nmsc.adb, + a-cbdlli.adb, a-cbdlli.ads, a-cfdlli.adb: Minor reformatting. + +2011-12-21 Vincent Pucci + + * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads, + s-llflex.ads: Fix header. + +2011-12-21 Thomas Quinot + + * thread.c, s-oscons-tmplt.c, init.c (pthread_condattr_setclock): For + AIX 5.2, define as a dummy weak symbol in init.c. + (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC on all versions of AIX. + +2011-12-21 Thomas Quinot + + * snames.ads-tmpl, sem_ch8.adb: Minor reformatting. + * sem_prag.adb: Minor comment clarification. + +2011-12-21 Vincent Celier + + * prj-nmsc.adb (Report_No_Sources): New argument Lang for the + language name as a Name_Id. Do not report no sources if language + is not allowed. + (Add_Source): Do not add source if language is not allowed. + * prj.adb (Add_Restricted_Language): New procedure + (Is_Allowed_Language): New function + * prj.ads (Add_Restricted_Language): New procedure + (Is_Allowed_Language): New function + +2011-12-21 Robert Dewar + + * exp_ch5.adb, sem_dim.adb, sem_dim.ads, sem_ch12.adb, prj-conf.adb: + Minor reformatting. + +2011-12-21 Claire Dross + + * a-cfdlli.ads (Constant_Indexing, Default_Iterator, + Iterator_Element): Added to type List. + (Not_No_Element, List_Iterator_Interfaces, Iterate, + Constant_Reference_Type, Constant_Reference): New. + * a-cfdlli.adb (type Iterator, Finalize, First, Last, Next, + Previous, Iterate, Not_No_Element, Constant_Reference): New. + +2011-12-21 Gary Dismukes + + * gnat_ugn.texi: Minor reformatting. + +2011-12-21 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): The cursor operation + Has_Element is the formal of Iterator_Interfaces, and within + the instantion of this package it is a renaming of some local + function with an unrelated name. Retrieve the operation from + the instance itself, not from the container package. + +2011-12-21 Vincent Pucci + + * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String + replaced by Expand_Put_Call_With_Dimension_Symbol + * sem_ch12.adb (Analyze_Package_Instantiation): New check for + System.Dim_Float_IO and System.Dim_Integer_IO instantiation. + * sem_ch3.adb (Analyze_Declarations): Removed + Remove_Dimension_In_Declaration call. + * sem_dim.adb: Update comments. Redefine the + representation of a Rational. Propagate all changes involving + data structures and types throughout the pakage. Output the + dimension aggregates for each error messages. + ("/"): Rational constructor "/" removed for Whole operands. + ("/"): New rational operation "/" for Rational operands. + ("*"): Operation "*" between Rational and Int removed. + ("abs"): New unary operator "abs" for Rational. + (Analyze_Aspect_Dimension_System): Reorganized. + (Analyze_Dimension_Identifier): Removed. + (Copy_Dimensions): Removed. + (Create_Rational_From_Expr): New Boolean parameter. + (Dimensions_Msg_Of): New routine. Return + a string with the dimensions of the parameter. + (From_Dimension_To_String_Of_Symbols): Renaming of + From_Dimension_To_String_Id. + * sem_dim.ads: Update comments. + (Is_Dim_IO_Package_Instantiation): New routine. + (Remove_Dimension_In_Declaration): Removed. + * sem_res.adb (Resolve_Op_Expon): Reorganized calls of + Eval_Op_Expon_For_Dimensioned_Type and Eval_Op_Expon. + * s-diflio.ads, s-diinio.ads: Update comments. + +2011-12-21 Pascal Obry + + * prj-attr.adb, snames.ads-tmpl: Add Library_Standalone, + Library_Fully_Standalone_Options and + Library_Fully_Standalone_Supported attributes. + * prj-nmsc.adb (Check_Library): Update check to take into + account fully standalone libraries. Such shared libraries can + only depend on static libraries. + (Check_Stand_Alone_Library): Add support for fully standalone libraries. + (Process_Project_Level_Simple_Attributes): Store value for + configuration attribute Library_Fully_Standalone_Supported. + * prj.ads, makeutl.adb (Standalone): New enumeration type. + (Project_Data): Standalone_Library now of type Standlone. + (Project_Configuration): Add Lib_Fully_Standalone_Supported + field. + (Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported + field. + * clean.adb (Clean_Project): Adjust to new type for Standalone. + * make.adb (Library_Phase): Adjust to new type for Standalone. + (Gnatmake): Likewise. + * mlib-prj.adb (Build_Library): Adjust to new type for + Standalone. + +2011-12-21 Thomas Quinot + + * gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then + Set_Standard_Output just before producing normal (non-diagnostic) + output. + * gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization + (and again after parsing project files). + +2011-12-21 Vincent Celier + + * prj-conf.adb (Do_Autoconf): When the object directory does + not exist, create auto.cgpr in the directory where temporary + files are created. + +2011-12-20 Ed Schonberg + + * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Further + refinements on the placement of a freeze node for a package + instantiation, when the generic appears within a previous + instantiation in the same unit.If the current instance is within + the one that contains the generic, the freeze node for the + current one must appear in the current declarative part. Ditto + if the current instance is within another package instance. In + these cases the freeze node of the previous instance is is not + relevant. New predicate Enclosing_Body simplifies the process. + (Freeze_Subprogram_Body): Rename Enclosing_Body to + Enclosing_Package_Body, to prevent confusion with subprogram of + same name elsewhere. + (Install_Body): Recognize enclosing subprogram bodies to determine + whether freeze_node belongs in current declarative list. + +2011-12-20 Robert Dewar + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Allow + attribute definition clause for renaming if generated internally + and generate duplicate clause to apply to renamed object. + (Rep_Item_Too_Late): Only diagnose source level entities + * prj-nmsc.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-12-20 Bob Duff + + * opt.ads (List_Inherited_Aspects): Default to False + (i.e. -gnatw.L is the default). + * usage.adb: Document new default for -gnatw.L. + * gnat_ugn.texi: Document -gnatw.l and -gnatw.L switches. + * warnsw.adb (Set_Warning_Switch): Do not include + List_Inherited_Aspects in -gnatwa. + +2011-12-20 Ed Schonberg + + * checks.adb (Apply_Type_Conversion_Checks): For a discrete type + with predicates, indicate unconditionally that a range check + is needed. + * exp_ch4.adb (Expand_N_In): When the membership test is rewritten + to incorporate a call to a predicate function, analyze expression + with checks suppressed, to prevent infinite recursion. + +2011-12-20 Hristian Kirtchev + + * exp_ch11.adb (Find_Local_Handler): Guard the + search over individual exception choices in case the list of + handlers contains other (possibly illegal) constructs. + +2011-12-20 Gary Dismukes + + * sem_ch8.adb (Find_Type): Test taggedness + of the Available_Type when checking for an illegal use of an + incomplete type, when the incomplete view is a limited view of + a type. Remove redundant Is_Tagged test. + +2011-12-20 Hristian Kirtchev + + * exp_util.adb: Add with and use clause for Aspects. + (Is_Finalizable_Transient): Objects which denote Ada containers + in the context of iterators are not considered transients. Such + object must live for as long as the loop is around. + (Is_Iterated_Container): New routine. + +2011-12-20 Hristian Kirtchev + + * exp_imgv.adb (Expand_Width_Attribute): Add a + type conversion from the enumeration subtype to its base subtype. + +2011-12-20 Hristian Kirtchev + + * sem_ch4.adb (Operator_Check): Update the call to + Is_Dimensioned_Type. + * sem_dim.adb: Remove with and use clause for Namet.Sp. Reorganize + all type declarations and datastructures involved. Propagate + all changes involving data structures and types throughout + the pakage. Alphabetize all subprograms. Add ??? comments. + (AD_Hash): Removed. + (Analyze_Aspect_Dimension): Rewritten. This + routine now does all its checks in one pass rather than + two. Refactor code. The error message are now in a more GNAT-ish style. + (Create_Rational_From_Expr): This is now a function. + (Get_Dimensions): Removed. + (Get_Dimensions_String_Id): Removed. + (Dimensions_Of): New rouitne. + (Exists): New routines. + (Is_Invalid): New routine. + (Permits_Dimensions): Removed. + (Present): Removed. + (Set_Symbol): New routine. + (System_Of): New routine. + * sem_dim.ads: Rewrite the top level description of the + package. Alphabetize subprograms. Add various comments on + subprogram usage. Add ??? comments. + (Is_Dimensioned_Type): + Renamed to Has_Dimension_System. + * sem_res.adb (Resolve_Op_Expon): Update the call to Is_Dimensioned_Type + +2011-12-20 Ed Schonberg + + * sem_ch13.adb (Check_Indexing_Functions): The return type of an + indexing function can be the default element type, and does not + need to be a reference type. + * sem_ch4.adb (Try_Container_Indexing): Ditto. + +2011-12-20 Robert Dewar + + * a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting. + +2011-12-20 Bob Duff + + * s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced. + +2011-12-20 Vincent Pucci + + * impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT + Defined Additions to System. + * Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added. + * s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files. + +2011-12-20 Gary Dismukes + + * sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when + within an instance, even if the homonym is marked Is_Hidden at + this point. + +2011-12-20 Robert Dewar + + * sem_ch3.adb, sem_ch5.adb, s-diinio.adb, s-diinio.ads, sem_dim.adb, + sem_dim.ads, sem_res.adb, s-stposu.adb, s-stposu.ads, sem_ch4.adb, + s-diflio.adb, s-diflio.ads, exp_disp.adb, s-llflex.ads: Minor + reformatting. + * aspects.ads: Dimension[_Aspects] are GNAT defined. + +2011-12-20 Robert Dewar + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check + renaming case. + +2011-12-20 Thomas Quinot + + * sem_cat.adb, sem_ch10.adb (Analyze_With_Clause): For a WITH clause on + a child unit that is an illegal instantiation, mark the WITH clause in + error. + (Install_Siblings, Validate_Categorization_Dependency): Guard + against WITH clause marked as in error. + +2011-12-20 Hristian Kirtchev + + * sem_res.adb (Resolve_Allocator): Warning on allocation + of tasks on a subpool and rewrite the allocator into a raise + Program_Error statement. + * s-stposu.ads, s-stposu.adb: Code reformatting. + (Create_Subpool): Remove formal parameter Storage_Size. + (Default_Subpool_For_Pool): Add the default implementation of this + routine. + (Set_Pool_Of_Subpool): Rename formal parameter Pool to To. Update + all the uses of the parameter. + +2011-12-20 Rainer Orth + + * gcc-interface/Makefile.in (%86 linux%): + (LIBGNAT_TARGET_PAIRS_32): Split off from LIBGNAT_TARGET_PAIRS. + (LIBGNAT_TARGET_PAIRS_64): New. + (LIBGNAT_TARGET_PAIRS): Add either depending on multilib. + +2011-12-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_param): Add comment about double + reference and DECL_POINTS_TO_READONLY_P. + * gcc-interface/trans.c (Identifier_to_gnu) : Always set the + TREE_READONLY flag on the first dereference of a double dereference. + +2011-12-15 Arnaud Charlet + + * a-numaux-vms.ads, s-asthan-vms-ia64.adb, s-auxdec-vms-ia64.adb, + s-memory-vms_64.adb, s-memory-vms_64.ads, s-osinte-vms-ia64.adb, + s-osinte-vms-ia64.ads, s-tasdeb-vms.adb: New files. + +2011-12-15 Vincent Pucci + + * aspects.adb, aspects.ads Aspect_Dimension and + Aspect_Dimension_System added + * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String + case added + * gcc-interface/Make-lang.in: s-llflex, sem_dim added. + * impunit.adb :s-diflio and s-diinio defined as GNAT Defined + Additions to System. + * Makefile.rtl: s-diflio, s-diinio and s-llflex added + * par-prag.adb, sem_prag.adb: Pragma_Dimension removed + * rtsfind.ads: Expon_LLF added + * sem_aggr.adb (Resolve_Aggregate): handles aggregate for + Aspect_Dimension case + * sem_attr.adb (Resolve_Attribute): analyze dimension for + attribute + * sem_ch10.adb (Analyze_With_Clause): Avoid the warning messages + due to the use of a GNAT library for Dimension packages + * sem_ch13.adb (Analyze_Aspect_Specifications): + Aspect_Dimension and Aspect_Dimension_System cases added + (Check_Aspect_At_Freeze_Point): Aspect_Dimension and + Aspect_Dimension_System cases added + * sem_ch2.adb (Analyze_Identifier): analyze dimension for + identifier + * sem_ch3.adb (Analyze_Component_Declaration): analyze dimension + for component declaration (Analyze_Object_Declaration): analyze + dimension for object declaration (Analyze_Subtype_Declaration): + analyze dimension for subtype declaration + * sem_ch4.adb (Operator_Check): checks exponent is a rational + for dimensioned operand for a N_Op_Expon + * sem_ch5.adb (Analyze_Assignment): analyze dimension for + assignment (Analyze_Statements): removal of dimensions in all + statements + * sem_ch6.adb (Analyze_Return_Statement): analyze dimension for + return statement + * sem_ch8.adb (Analyze_Object_Renaming): analyze dimension for + object renaming + * sem_dim.adb, sem_dim.ads (Analyze_Aspect_Dimension): + analyze the expression for aspect dimension and store the + values in a Htable. + (Analyze_Aspect_Dimension_System): analyze + the expression for aspect dimension system and store the new + system in a Table. + (Analyze_Dimension): propagates dimension + (Expand_Put_Call_With_Dimension_String): add the dimension + string as a suffix of the numeric value in the output + (Has_Dimension): return True if the node has a dimension + (Remove_Dimension_In_Declaration): removal of dimension in the + expression of the declaration. + (Remove_Dimension_In_Statement): removal of dimension in statement + * sem_res.adb (Resolve): analyze dimension if the node + has already been analyzed. + (Resolve_Arithmetic_Op): analyze + dimension for arithmetic op. + (Resolve_Call): analyze dimension for function call. + (Resolve_Comparison_Op): analyze dimension for comparison op. + (Resolve_Equality_Op): analyze dimension for equality op. + (Resolve_Indexed_Component): analyze dimension for indexed component. + (Resolve_Op_Expon): analyze dimension for op expon. + (Resolve_Selected_Component): analyze dimension + for selected component. + (Resolve_Slice): analyze dimension for slice. + (Resolve_Unary_Op): analyze dimension for unary op + (Resolve_Type_Conversion): analyze dimension for type conversion + (Resolve_Unchecked_Type_Conversion): analyze dimension for + unchecked type conversion + * snames.ads-tmpl Name_Dimension, Name_Dimension_System, + Name_Dim_Float_IO, Name_Dim_Integer_IO, + Name_Generic_Elementary_Functions, Name_Sqrt added. + Pragma_Dimension removed + * s-diflio.adb, s-diflio.ads New GNAT library generic package + for dimensioned float type IO + * s-diinio.adb, s-diinio.ads New GNAT library generic package + for dimensioned integer type IO + * s-llflex.ads (Expon_LLF): exponentiation routine for long long + floats operand and exponent + +2011-12-15 Robert Dewar + + * sem_aggr.adb: Minor comment addition. + +2011-12-15 Bob Duff + + * s-tasren.adb (Task_Count): Do not call Yield; E'Count is not a + task dispatching point. + * s-taprop-mingw.adb (Yield): Do not yield if Do_Yield is False. + +2011-12-15 Robert Dewar + + * sigtramp-ppcvxw.c, sigtramp.h: Fix header. + +2011-12-15 Javier Miranda + + * exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment + applied to a class-wide type under VM targets generate code which + invokes the function Get_Alignment to retrieve the value of the + alignment from the TSD. + * rtsfind.ads (RE_Get_Alignment): New entity. + +2011-12-15 Robert Dewar + + * g-comlin.adb: Fix header. + +2011-12-15 Tristan Gingold + + * gnatls.adb: Fix typo. + +2011-12-15 Ed Falis + + * s-tpopsp-vxworks.adb: Update comment. + +2011-12-15 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate, Resolve_Aggr_Expr); If + the component type has predicates, generate corresponding check. + (Resolve_Record_Aggregate, Resolve_Aggr_Expr): Ditto. + +2011-12-13 Cesar Strauss + Eric Botcazou + + PR ada/49084 + * types.h (Byte): Change typedef to 'unsigned char'. + * atree.h (struct Flag_Word): Use Byte for 'convention' field. + +2011-12-12 Robert Dewar + + * s-taprop-mingw.adb: Minor reformatting. + +2011-12-12 Nicolas Roche + + * gcc-interface/Make-lang.in: Update dependencies. + Add gnattools4 target when building tools in canadian mode + +2011-12-12 Javier Miranda + + * exp_disp.adb (Make_VM_TSD): Complete previous patch. + +2011-12-12 Bob Duff + + * s-tpobop.adb: Use named notation. + * g-bytswa.ads, s-taprop.ads: Minor comment fix. + +2011-12-12 Arnaud Charlet + + * make.adb: Minor comment update. + +2011-12-12 Robert Dewar + + * freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minor + reformatting. + +2011-12-12 Robert Dewar + + * sem_ch6.adb, gnatls.adb: Minor reformatting. + +2011-12-12 Ed Schonberg + + * freeze.adb (Freeze_Entity): If a type declared in a generic + context has predicates, generate a freeze node for it. + * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression + has not been analyzed yet, entity has not been frozen, so analyze + it now. + +2011-12-12 Javier Miranda + + * exp_disp.adb (Make_VM_TSD): Generate code to store the value of + 'alignment in the TSD. + +2011-12-12 Bob Duff + + * s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D + mode. + +2011-12-12 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Allocator): Update the master of an + anonymous access-to-controlled type to utilize the heterogeneous + master associated with the current unit. + +2011-12-12 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): If the function + is not a completion, pre-analyze the expression now to prevent + spurious visibility on later entities. The body is inserted at + the end of the current declaration list or package to prevent + early freezing, but the visibility is established at the point + of definition. + +2011-12-12 Bob Duff + + * sem.adb, sem.ads: Add debugging routines. + +2011-12-12 Tristan Gingold + + * gnatls.adb: (gnatls): Also add the objects dir in search list. + +2011-12-12 Robert Dewar + + * exp_atag.adb, exp_atag.ads, exp_util.adb, exp_attr.adb, + sem_ch13.adb: Minor reformatting. + +2011-12-12 Gary Dismukes + + * sem_ch7.adb (Uninstall_Declarations): Don't + apply check for incomplete types used as a result type for an + access-to-function type when compiling for Ada 2012 or later. + * sem_ch6.adb (Analyze_Subprogram_Declaration): + Specialize error message for interface subprograms that are + not declared abstract nor null (functions can't be declared as + null). Also, remove "(Ada 2005)" from message. + +2011-12-12 Robert Dewar + + * sem_prag.adb (GNAT_Pragma): Check comes from source. + +2011-12-12 Robert Dewar + + * gnatls.adb: Minor reformatting. + +2011-12-12 Javier Miranda + + * a-tags.ads (Alignment): New TSD field. + (Max_Predef_Prims): Value lowered to 15 (or 9 in case of + configurable runtime) Update documentation of predefined + primitives since Alignment has been removed. + * exp_disp.ads Update documentation of slots of dispatching + primitives. + * exp_disp.adb (Default_Prim_Op_Position): Update slot + values since alignment is no longer a predefined primitive. + (Is_Predefined_Dispatch_Operation): Remove _alignment. + (Is_Predefined_Internal_Operation): Remove _alignment. + (Make_DT): Update static test on the value stored in a-tags.ads + for Max_Predef_Prims; store the value of 'alignment in the TSD. + * exp_atag.ads, exp_atag.adb (Build_Get_Alignment): New subprogram + that retrieves the alignment from the TSD + * exp_util.adb (Build_Allocated_Deallocate_Proc): For deallocation + of class-wide types obtain the value of alignment from the TSD. + * exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment + applied to a class-wide type invoke Build_Get_Alignment to + generate code which retrieves the value of the alignment from + the TSD. + * rtsfind.ads (RE_Alignment): New Ada.Tags entity + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): For tagged + types if the value of the alignment is bigger than the Maximum + alignment then set the value of the alignment to the Maximum + alignment and report a warning. + * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate + spec of _alignment. + (Predefined_Primitive_Bodies): Do not generate body of _alignment. + +2011-12-12 Gary Dismukes + + * freeze.adb (Freeze_Expression): Allow freezing of static + scalar subtypes that are prefixes of an attribute, even if not + yet marked static. Such attributes will get marked as static + later in Eval_Attribute (as called from Resolve_Attribute). + * sem_attr.adb (Eval_Attribute): Remove wrong code that does an + early return for attribute prefixes that are unfrozen source-level + types. This code was incorrectly bypassing folding of unfrozen + static subtype attributes in default expressions (the executable + example in the now-deleted comment was in fact illegal). + +2011-12-12 Robert Dewar + + * a-coinve.adb, sem_res.adb, prj-nmsc.adb, a-cobove.adb, a-convec.adb, + gnatls.adb, sem_ch13.adb, prj-env.adb, prj-env.ads: Minor reformatting. + +2011-12-12 Tristan Gingold + + * gsocket.h: Adjust previous patch. + +2011-12-12 Thomas Quinot + + * exp_disp.adb: Minor reformatting. + +2011-12-12 Tristan Gingold + + * gnatls.adb (Search_RTS): New procedure. + (Scan_Ls_Arg): Move code that search the RTS. + (Gnatls): search the RTS later. + * prj-env.ads, prj-env.adb (Get_Runtime_Path): New function. + +2011-12-12 Ed Falis + + * sysdep.c: Fix treatment of VxWorks task options so that run-times + built with __SPE__ get option VX_SPE_TASK while others get VX_FP_TASK. + +2011-12-12 Bob Duff + + * sem_type.adb, sem_type.ads, sem_ch4.adb, treepr.adb, treepr.ads: + Minor cleanup and fiddling with debug printouts. + +2011-12-12 Vincent Celier + + * prj-nmsc.adb (Get_Directories): For a non extending project, + always get a declared object and/or exec directory if it already + exists, even when there are no sources, but do not create them. + +2011-12-12 Bob Duff + + * sem_res.adb (Resolve): Deal with the case where an abstract + operator is called with operands of type universal_integer. + +2011-12-12 Thomas Quinot + + * par_sco.adb: Minor fix to dominance marker referencing WHILE + decision. + +2011-12-12 Tristan Gingold + + * mlib-tgt-specific-xi.adb: (Get_Target_Prefix): Simplify code. + +2011-12-12 Thomas Quinot + + * par_sco.adb: Adjust dominant marker for branches of CASE + statements. + +2011-12-12 Thomas Quinot + + * gsocket.h, s-oscons-tmplt.c: Ensure we do not include any system + header file prior to redefining FD_SETSIZE. + +2011-12-12 Ed Schonberg + + * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In + a generic context the aspect expressions may not have been + preanalyzed if there was no previous freeze point, so the + expressions must be preanalyzed now, and there is no conformance + to check for visibility changes. + +2011-12-12 Matthew Heaney + + * a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Use + subtype Index_Type'Base for Index component (Finalize): Remove + unnecessary access check (First, Last): Cursor return value + depends on iterator index value (Iterate): Use start position as + iterator index value (Next, Previous): Forward to corresponding + cursor-based operation. + * a-cborma.adb (Iterate): Properly initialize iterator object (with 0 + as node index). + +2011-12-12 Robert Dewar + + * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting. + +2011-12-12 Steve Baird + + * sem_ch3.adb (Check_Completion): Improve a comment. + +2011-12-12 Tristan Gingold + + * cstand.adb: Minor comment fix. + +2011-12-11 Eric Botcazou + + * gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC + flag of elements to compute that of the constructor. + +2011-12-11 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier + on references built for parameters which aren't specifically by-ref. + +2011-12-11 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If there is an + alignment set on a renaming, assert that the renamed object is aligned + enough as to make it possible to honor it. + +2011-12-11 Eric Botcazou + + * gcc-interface/trans.c (gigi): Initialize the linemap earlier. + +2011-12-06 Dave Korn + + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS [windows targets]): + Correctly detect cygwin, which no longer has the '32' suffix, and use + appropriate implementations of the sockets and memory packages. + * sysdep.c (WIN_SETMODE): New define to choose the correct spelling of + setmode/_setmode for MinGW and Cygwin, respectively. + (__gnat_set_binary_mode [windows targets]): Use the above, and enable + the windows version for Cygwin as well as MinGW. + (__gnat_set_text_mode [windows targets]): Likewise. + (__gnat_ttyname [windows targets]): Provide a Cygwin implementation + in addition to the MinGW version. + (__gnat_is_windows_xp): Make available to Cygwin as well as MinGW. + (__gnat_get_stack_bounds): Likewise. + +2011-12-05 Bob Duff + + * sem_ch4.adb: Minor comment fix. + +2011-12-05 Robert Dewar + + * gnat_ugn.texi: Add documentation for -gnatw.e. + +2011-12-05 Bob Duff + + * treepr.adb (pn): Print something useful for + Elmt_Ids. Add Write_Eol to 'when others' case, so the output + will be seen immediately in gdb. + +2011-12-05 Ed Schonberg + + * lib-writ.adb (Output_Main_Program_Line): A generic subprogram + is never a main program. + +2011-12-05 Thomas Quinot + + * par_sco.adb: Various minor adjustments to dominance markers + generation. + +2011-12-05 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): If the function is + a completion, generate a body reference for its defining entity, + before rewriting the node as a body. + * sem_util.adb (Defining_Entity): Add entry for expression + function. + +2011-12-05 Bob Duff + + * sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias + to the Comes_From_Source check, to deal properly with the case + of indirect inheritance of "=". + +2011-12-05 Thomas Quinot + + PR ada/51307 + * s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal, + not a macro. + +2011-12-05 Thomas Quinot + + * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance + information in SCOs. + +2011-12-02 Eric Botcazou + Thomas Quinot + + * gcc-interface/Makefile.in (INCLUDES): Remove $(srcdir)/config. + (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) except for VxWorks. + Add thread.c to LIBGNAT_SRCS so that a symlink is created in ada/rts, + which allows the file to be installed in adainclude. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-12-02 Javier Miranda + + * sem_ch3.adb (Constrain_Access): Undo previous + patch for this routine. Required since the RM rule 3.7.1(7/3) + applies to all access types. + +2011-12-02 Bob Duff + + * sem_ch6.adb: Minor comment fix. + +2011-12-02 Joel Sherrill + + * s-tpopsp-rtems.adb: Use ATCB_Key rather than RTEMS_Ada_Self variable + for consistency with other ports. + * s-osinte-rtems.adb: Add body for dummy implementation of + pthread_rwlockattr_setkind_np(). + * s-osinte-rtems.ads: Add missing clock and rwlock bindings. + * terminals.c: Add __rtems__ conditionals to account for differences + in termios implementation. + +2011-12-02 Robert Dewar + + * sem_ch3.adb, sem_attr.adb, a-comutr.adb, a-cbmutr.adb, + a-cbmutr.ads: Minor reformatting. + +2011-12-02 Hristian Kirtchev + + * exp_dbug.adb: Comment reformatting. + (Get_External_Name): Use Reset_Buffers to reset the contents of + Name_Buffer and Homonym_Numbers. + (Qualify_All_Entity_Names): Reset the contents of Name_Buffer and + Homonym_Numbers before creating a new qualified name for a particular + entity. + (Reset_Buffers): New routine. + +2011-12-02 Matthew Heaney + + * a-cbmutr.ads (No_Node): Moved declaration from body to spec + * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Derives + from Root_Iterator. + (Child_Iterator): Derives from Root_Iterator. + (Finalize): Implemented as an override operation for Root_Iterator. + (First): Return value depends on Subtree component. + (Last): Component was renamed from Parent to Subtree. + (Next): Checks parameter value, and uses simplified loop. + (Iterate): Forwards to Iterate_Subtree. + (Iterate_Children): Component was renamed from Parent to Subtree. + (Iterate_Subtree): Checks parameter value + +2011-12-02 Robert Dewar + + * usage.adb: Add lines for -gnatw.n and -gnatw.N + (atomic sync info msgs). + +2011-12-02 Steve Baird + + * sem_ch3.adb (Check_Completion): An Ada 2012 + generic formal type doesn't require a completion. + +2011-12-02 Eric Botcazou + + * sem_util.adb (Set_Debug_Info_Needed): Also set the flag on the + packed array type if it is to be set on the array type used to + represent it. + +2011-12-02 Robert Dewar + + * gnat_rm.texi: Eliminate confusing use of type name. + +2011-12-02 Thomas Quinot + + * sem_ch10.adb (Analyze_Compilation_Unit): For a library subprogram + body that acts as spec, do not create a shallow copy of the context + clause for the synthetized spec (instead, use the same list as + in the body). + +2011-12-02 Bob Duff + + * gnat_ugn.texi: Clarify usage of -p binder switch. + +2011-12-02 Javier Miranda + + * sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb + (Effectively_Has_Constrained_Partial_View): Moved to sem_aux + (In_Generic_Body): Moved to sem_aux. + (Unit_Declaration_Node): Moved to sem_aux. + * einfo.ads (Effectively_Has_Constrained_Partial_View): Complete + documentation. + * exp_attr.adb, live.adb, sem_ch10.adb, checks.adb, sem.adb, + rtsfind.adb, sem_attr.adb, sem_elab.adb, exp_ch4.adb, sem_ch4.adb, + exp_ch13.adb: Add with-clause on Sem_Aux. + +2011-12-02 Yannick Moy + + * sem_util.adb (Unique_Name): Reach through Unique_Entity to + get the name of the entity. + (Unique_Entity): Correct case for subprogram stubs. + +2011-12-02 Yannick Moy + + * sem_ch3.adb (Check_Initialization): Do not emit warning on + initialization of limited type object in Alfa mode. + +2011-12-02 Robert Dewar + + * sinfo.ads: Minor reformatting. + * gnat_ugn.texi: Fix confusion in use of term "type name". + +2011-12-02 Robert Dewar + + * sem_ch6.adb: Minor change in error message. + +2011-12-02 Robert Dewar + + * sem_ch9.adb, prj-part.adb, vms_data.ads, sem_ch8.adb: Minor + reformatting. + +2011-12-02 Javier Miranda + + * sem_ch3.adb (Constrain_Access): Enable on Ada 2005 mode the + static check of the rule of general access types whose designated + type has discriminants. + * sem_util.ads, sem_util.adb + (Effectively_Has_Constrained_Partial_View): New subprogram. + (In_Generic_Body): New subprogram. + * einfo.ads (Has_Constrained_Partial_View): Adding documentation. + * sem_prag.adb (Inside_Generic_Body): Removed. Replaced by new + subprogram In_Generic_Body. + * exp_attr.adb, checks.adb, sem_attr.adb, exp_ch4.adb, + sem_ch4.adb: In addition, this patch replaces the occurrences of + Has_Constrained_Partial_View by + Effectively_Has_Constrained_Partial_View. + +2011-12-02 Matthew Heaney + + * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Rename + Position component. + (Finalize): Remove unnecessary access check. + (First): Forward to First_Child. + (Last): Forward to Last_Child. + (Iterate): Check preconditions for parent node parameter. + (Next): Forward to Next_Sibling. + (Previous): Forward to Previous_Sibling. + +2011-12-02 Robert Dewar + + * a-coinve.adb, a-coorma.adb, freeze.adb, a-coorse.adb, a-comutr.adb, + a-coormu.adb, a-convec.adb: Minor reformatting. + +2011-12-02 Matthew Heaney + + * a-coormu.ads, a-ciormu.ads: Declare iterator factory function. + * a-ciormu.adb, a-ciormu.adb (Iterator): Declare concrete + Iterator type. + (Finalize): Decrement busy counter. + (First, Last): Cursor return value depends on iterator node value. + (Iterate): Use start position as iterator node value. + (Next, Previous): Forward to corresponding cursor-based operation. + +2011-12-02 Robert Dewar + + * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb, + a-cbhase.adb, a-cdlili.adb, a-cihama.adb, a-ciorse.adb, a-cidlli.adb, + a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-cborse.adb, + a-ciorma.adb, a-cobove.adb: Minor reformatting. + +2011-12-01 Jakub Jelinek + + PR bootstrap/51201 + * gcc-interface/Make-lang.in: Initialize RTS_DIR with = instead of :=. + +2011-11-24 Rainer Orth + + * s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access. + +2011-11-23 Thomas Quinot + + * thread.c, s-oscons-tmplt.c: Generate __gnat_pthread_condattr_setup + only on platforms where this is required, as determined by + s-oscons.h. + +2011-11-23 Ed Schonberg + + * sem_ch9.adb: No check on entry index if error on index. + +2011-11-23 Gary Dismukes + + * sem_ch6.adb (Analyze_Return_Statement): Improve error messages for + return statements nested inside an extended_return_statement. + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/Makefile.in (MISCLIB): Add -lutil for BSD targets. + +2011-11-23 Ed Schonberg + + * freeze.adb (Freeze_All_Ent): An incomplete type is not + frozen by a subprogram body that does not come from source. + +2011-11-23 Pascal Obry + + * s-oscons-tmplt.c: Add PTY_Library constant. It contains + the library for pseudo terminal support. + * g-exptty.ads: Add pseudo-terminal library into a Linker_Options + pragma. + +2011-11-23 Ed Schonberg + + * sem_ch9.adb: No check on entry family index if generic. + +2011-11-23 Thomas Quinot + + * sem_ch9.adb, s-taprop.ads, s-taprop-hpux-dce.adb, s-taprop-irix.adb, + s-taprop-posix.adb, s-taprop-rtx.adb, s-taprop-solaris.adb, + s-taprop-tru64.adb, s-taprop-vxworks.adb: Move dependency on + System.OS_Constants from shared spec of + System.Tasking.Primitive_Operations to the specific body variants + that really require this dependency. + +2011-11-23 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming_Declaration): + If the declaration has aspects, analyze them so they can be + properly rejected. + +2011-11-23 Hristian Kirtchev + + * a-comutr.adb, a-coorma.adb, a-coorse.adb, a-convec.adb, a-cihase.adb, + a-cimutr.adb, a-coinve.adb, a-ciorma.adb, a-ciorse.adb, a-cobove.adb, + a-cohama.adb, a-cihama.adb, a-cidlli.adb, a-cdlili.adb, a-cbhama.adb, + a-cbhase.adb, a-cbmutr.adb, a-cborma.adb, a-cborse.adb, a-cbdlli.adb: + Add with and use clause for Ada.Finalization. Type + Iterator and Child_Iterator are now derived from Limited_Controlled. + (Finalize): New routine. + (Iterate): Add a renaming of counter Busy and + increment it. Update the return aggregate. + (Iterate_Children): Add a renaming of + counter Busy and increment it. Update the return aggregate. + (Iterate_Subtree): Add a renaming of counter Busy and increment + it. Update the return aggregate. + * a-cdlili.ads, a-cidlli.ads: Type List_Access is now a general access + type. + * a-cihama.ads: Type Map_Access is now a general access type. + * a-comutr.ads, a-cimutr.ads: Use type Natural for the two locks + associated with the tree. + * a-cohama.ads: Type Map_Access is now a general access type. + * a-coinve.ads, a-convec.ads: Type Vector_Access is now a general + access type. + * exp_ch5.adb (Expand_Iterator_Loop): Do not create a block + to wrap the loop as this is done at an earlier step, during + analysis. The declarations of the iterator and the cursor use + the usual Insert_Action mechanism when added into the tree. + * sem_ch5.adb (Analyze_Loop_Statement): Remove local constant + Loop_Statement and replace all respective uses by N. Add local + constant Loc. Preanalyze the loop iterator to discover whether + it is a container iterator and if it is, wrap the loop in a + block. This ensures that any controlled temporaries produced + by the iteration scheme share the same lifetime of the loop. + (Is_Container_Iterator): New routine. + (Is_Wrapped_In_Block): New routine. + (Pre_Analyze_Range): Move spec and body to the library level. + +2011-11-23 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Add documentation for new gnatpp option + that controls casing of type and subtype names. + +2011-11-23 Yannick Moy + + * sem_ch3.adb: Minor addition of comments. + +2011-11-23 Thomas Quinot + + * prj-part.adb (Extension_Withs): New global variable, + contains the head of the list of WITH clauses from the EXTENDS + ALL projects for which virtual packages are being created. + (Look_For_Virtual_Projects_For): When recursing through + an EXTENDS ALL, add the WITH clauses of the extending + project to Extension_Withs. When adding a project to the + Virtual_Hash, record the associated Extension_Withs list. + (Create_Virtual_Extending_Project): Add a copy of the appropriate + Extension_Withs to the virtual project. + +2011-11-23 Thomas Quinot + + * mlib-tgt-specific-vxworks.adb: Minor reformatting. + +2011-11-23 Thomas Quinot + + * Make-generated.in (Sdefault.Target_Name): Set to + $(target_noncanonical) instead of $(target) for consistency. + +2011-11-23 Matthew Heaney + + * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Iterator): Declared + Iterator type as limited (First, Last): Cursor return value + depends on iterator node value (Iterate): Use start position as + iterator node value (Next, Previous): Forward to corresponding + cursor-based operation. + +2011-11-23 Matthew Heaney + + * a-coorse.ads, a-ciorse.ads, a-cborse.ads (Set_Iterator_Interfaces): + Renamed from Ordered_Set_Iterator_Interfaces. + * a-coorse.adb, a-ciorse.adb, a-cborse.adb (Iterator): Declared + Iterator type as limited (First, Last): Cursor return value + depends on iterator node value (Iterate): Use start position as + iterator node value (Next, Previous): Forward to corresponding + cursor-based operation. + * a-cohase.ads, a-cohase.adb: Implemented forward iterator. + * a-cihase.adb, a-cbhase.adb (Iterator): Removed unnecessary + node component (First, Next): Forward call to corresponding + cursor-based operation (Iterate): Representation of iterator no + longer has node component + +2011-11-23 Hristian Kirtchev + + * exp_intr.adb (Expand_Unc_Deallocation): Ensure that the + dereference has a proper type before the side effect removal + mechanism kicks in. + * sem_ch3.adb (Analyze_Subtype_Declaration): Handle a rare case + where the base type of the subtype is a private itype created + to act as the partial view of a constrained record type. This + scenario manifests with equivalent class-wide types for records + with unknown discriminants. + +2011-11-23 Jerome Guitton + + * s-osprim-vxworks.adb (Clock): Use Clock_RT_Ada. + +2011-11-23 Thomas Quinot + + * s-oscons-tmplt.c: Fix unbalanced preprocessor directives Minor + reformatting/reorganization. + +2011-11-23 Thomas Quinot + + * g-htable.ads: Remove old comments. + +2011-11-23 Thomas Quinot + + * exp_imgv.adb: Minor reformatting. + +2011-11-23 Robert Dewar + + * sem_ch9.adb (Analyze_Entry_Declaration): Check for entry + family bounds out of range. + +2011-11-23 Matthew Heaney + + * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Iterator): Declare + type as limited, and remove node component. + (First, Next): Forward call to corresponding cursor-based operation. + (Iterate): Representation of iterator no longer has node component. + +2011-11-23 Yannick Moy + + * exp_util.adb: Revert previous change to remove side-effects in Alfa + mode, which is not the correct thing to do for renamings. + +2011-11-23 Thomas Quinot + + * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taprop-tru64.adb, + s-osinte-vxworks.ads, s-osinte-aix.ads, s-osinte-lynxos.ads, + s-osinte-solaris-posix.ads, s-taprop-solaris.adb, a-exetim-posix.adb, + s-osinte-irix.ads, s-osinte-solaris.ads, s-oscons-tmplt.c, + s-taprop-irix.adb, s-osinte-hpux-dce.ads, Makefile.rtl, + s-osinte-tru64.ads, s-osinte-darwin.ads, s-taprop.ads, + s-osinte-freebsd.ads, s-osinte-lynxos-3.ads, s-taprop-hpux-dce.adb, + s-taprop-posix.adb: Remove hard-coded clock ids; + instead, generate them in System.OS_Constants. + (System.OS_Constants.CLOCK_RT_Ada): New constant denoting the + id of the clock providing Ada.Real_Time.Monotonic_Clock. + * thread.c: New file. + (__gnat_pthread_condattr_setup): New function. For platforms where + CLOCK_RT_Ada is not CLOCK_REALTIME, set appropriate condition + variable attribute. + +2011-11-23 Yannick Moy + + * sem_ch3.adb: Restore the use of Expander_Active instead of + Full_Expander_Active, so that the evaluation is forced in Alfa + mode too. Otherwise, we end up with an unexpected insertion in a + place where it is not supposed to happen, on default parameters + of a call. + +2011-11-23 Thomas Quinot + + * prj-pp.adb, prj-pp.ads: Minor new addition: wrapper procedure "wpr" + for Pretty_Print, for use from within gdb. + +2011-11-23 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): Wrap the expanded loop + and the cursor declarations in a block, so that the loop variable + is local to the construct. + +2011-11-23 Matthew Heaney + + * a-coorma.ads, a-ciorma.ads, a-cborma.ads (Iterate): Returns + type Reversible_Iterator'Class. + * a-coorma.adb, a-ciorma.adb, a-cborma.adb (Iterator): + Declare type as limited. + (First, Last): Return value depends on iterator's start node value. + (Next, Previous): Call corresponding Cursor-based operation. + (Iterate): Indicate whether complete or partial iteration + +2011-11-23 Robert Dewar + + * errout.adb: Minor reformattin (Finalize): Take templates into + account for warning suppression. + * errout.ads (Set_Specific_Warning_Off): Add Used parameter. + * erroutc.adb: Minor reformatting (Finalize): Take generic + templates into account for warning suppress. + * erroutc.ads (Set_Specific_Warning_Off): Add Used parameter. + * sem_prag.adb: Minor reformatting (Analyze_Pragma, + case Warnings): Provide Used parameter in call to + Set_Specific_Warnings_Off (to deal with generic template case). + +2011-11-23 Pascal Obry + + * sem_prag.adb (Process_Convention): Better error message for + stdcall convention on dispatching calls. + +2011-11-23 Gary Dismukes + + * sem_ch4.adb, sem_ch13.adb: Minor reformatting. + +2011-11-23 Javier Miranda + + * exp_ch6.adb (Expand_Simple_Function_Return): Add missing + implicit type conversion when the returned object is allocated + in the secondary stack and the type of the returned object is + an interface. Done to force generation of displacement of the + "this" pointer. + +2011-11-23 Pascal Obry + + * impunit.adb: Add g-exptty and g-tty units. + +2011-11-23 Robert Dewar + + * exp_imgv.adb: Minor code reorganization (use Make_Temporary). + +2011-11-23 Robert Dewar + + * exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minor + reformatting. + +2011-11-23 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications): Place error on + line of precondition/ postcondition/invariant. + +2011-11-23 Pascal Obry + + * g-exptty.ads, g-exptty.adb, g-tty.ads, g-tty.adb, + terminals.c: New files. + Makefile.rtl: Add these new files. + * gnat_rm.texi: Add documentation for GNAT.Expect.TTY. + * gcc-interface/Makefile.in: Add g-exptty, g-tty, terminals.o + * gcc-interface/Make-lang.in: Update dependencies. + +2011-11-21 Robert Dewar + + * exp_imgv.adb (Expand_Width_Attribute): Handle case of Discard_Names. + * sem_attr.adb (Eval_Attribute, case Width): Ditto. + +2011-11-21 Thomas Quinot + + * sinfo.ads: Minor reformatting. + +2011-11-21 Yannick Moy + + * exp_util.adb: Minor reformatting. Update comments. + +2011-11-21 Robert Dewar + + * exp_prag.adb, exp_util.adb, sinfo.ads, sem_res.adb, s-stposu.adb, + sem_attr.adb, s-stposu.ads, s-taprop-solaris.adb, s-taprop-irix.adb, + sem_ch6.adb: Minor reformatting. + +2011-11-21 Arnaud Charlet + + * s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): Use + Unrestricted_Access to deal with fact that we properly detect the + error if Access is used. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-11-21 Yannick Moy + + * exp_prag.adb (Expand_Pragma_Check): Place error on first character + of expression. + * sem_res.adb (Resolve_Short_Circuit): Place error on first + character of expression. + +2011-11-21 Yannick Moy + + * exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode. + +2011-11-21 Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference, case + Max_Size_In_Storage_Elements): Account for the size of the + hidden list header which precedes controlled objects allocated + on the heap. + * rtsfind.ads: Add RE_Header_Size_With_Padding to the runtime + tables. + * sinfo.adb (Header_Size_Added): New routine. + (Set_Header_Size_Added): New routine. + * sinfo.ads: Add flag Controlled_Header_Added along with + associated comment. + (Header_Size_Added): New inlined routine. + (Set_Header_Size_Added): New inlined routine. + * s-stposu.adb (Allocate_Any_Controlled): Use + Header_Size_With_Padding to calculate the proper + size of the header. + (Deallocate_Any_Controlled): Use + Header_Size_With_Padding to calculate the proper size + of the header. (Header_Size_With_Padding): New routine. + (Nearest_Multiple_Rounded_Up): Removed along with its uses. + * s-stposu.ads (Header_Size_With_Padding): New routine. + +2011-11-21 Ed Schonberg + + * aspects.adb: Aspect specifications are allowed on renaming + declarations + * par-ch6.adb (P_Subprogram): Parse aspect specifications in a + subprogram renaming declaration + +2011-11-21 Tristan Gingold + + * env.c: Remove unused declaration. + +2011-11-21 Pascal Obry + + * s-os_lib.ads: Minor style fix. + +2011-11-21 Pascal Obry + + * adaint.c (__gnat_dup2): When fd are stdout, stdin or stderr and + identical, do nothing on Windows XP. + +2011-11-21 Yannick Moy + + * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl): + Use Full_Expander_Active instead of Expander_Active to control + the forced evaluation of expressions for the sake of generating + checks. + +2011-11-21 Thomas Quinot + + * init.c: On FreeBSD, stack checking failures may raise SIGBUS. + +2011-11-21 Tristan Gingold + + * sysdep.c (mode_read_text, mode_write_text, mode_append_text, + mode_read_binary, mode_write_binary, mode_append_binary, + mode_read_text_plus, mode_write_text_plus, mode_append_text_plus, + mode_read_binary_plus, mode_write_binary_plus, + mode_append_binary_plus): Remove unused declarations. + +2011-11-21 Yannick Moy + + * gnat_rm.texi: Minor rewording. + +2011-11-21 Hristian Kirtchev + + * exp_imgv.adb (Expand_Width_Attribute): Emit + an error message rather than a warning when pragma Discard_Names + prevents the computation of 'Width. Do not emit an error through + the use of RE_Null. + +2011-11-21 Javier Miranda + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add + implicit type conversion when the type of the allocator is an + interface. Done to force generation of displacement of the "this" + pointer when required. + +2011-11-21 Ed Schonberg + + * sinfo.ads, sinfo.adb: Corresponding_Spec applies to expression + functions, and is set when the expression is a completion of a + previous declaration. + * sem_ch6.adb (Analyze_Expression_Function): To determine properly + whether an expression function completes a previous declaration, + use Find_Corresponding_Spec, as when analyzing a subprogram body. + +2011-11-21 Steve Baird + + * sem_util.adb (Deepest_Type_Access_Level): Improve comment. + (Type_Access_Level): Improve comment. + +2011-11-21 Eric Botcazou + + * gcc-interface/Makefile.in (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) by + means of -iquote unconditionally. + +2011-11-21 Robert Dewar + + * sem_ch3.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor + reformatting. + +2011-11-21 Arnaud Charlet + + * s-taprop-posix.adb (Create_Task): Use Unrestricted_Access + to deal with fact that we properly detect the error if Access + is used. + +2011-11-21 Steve Baird + + * sem_util.ads: Update comment describing function + Deepest_Access_Level. + * sem_util.adb (Deepest_Type_Access_Level): Return Int'Last for a + generic formal type. + (Type_Access_Level): Return library level + for a generic formal type. + * sem_attr.adb (Resolve_Attribute): Replace two Type_Access_Level + calls with calls to Deepest_Type_Access_Level. + * sem_ch3.adb (Analyze_Component_Declaration): replace a + Type_Access_Level call with a call to Deepest_Type_Access_Level. + * sem_res.adb (Resolve_Allocator.Check_Allocator_Discrim_Accessibility): + Replace three Type_Access_Level calls with calls to + Deepest_Type_Access_Level. + (Resolve_Allocator): Replace a Type_Access_Level call with a call to + Deepest_Type_Access_Level. + (Valid_Conversion.Valid_Array_Conversion): Replace a + Type_Access_Level call with a call to Deepest_Type_Access_Level. + +2011-11-21 Robert Dewar + + * sem_ch3.adb, s-taprop-vms.adb, opt.ads: Minor reformatting. + +2011-11-21 Robert Dewar + + * sinput.ads: Minor comment fix. + +2011-11-21 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference, case First_Bit, + Last_Bit, Position): Handle 2005 case. + +2011-11-21 Robert Dewar + + * s-atocou-builtin.adb (Decrement): Use Unrestricted_Access + to deal with fact that we properly detect the error if Access + is used. + (Increment): Same fix. + * s-taprop-linux.adb (Create_Task): Use Unrestricted_Access + to deal with fact that we properly detect the error if Access + is used. + * sem_util.adb (Is_Volatile_Object): Properly record that A.B is + volatile if the B component is volatile. This affects the check + for passing such a by reference volatile actual to a non-volatile + formal (which should be illegal) + +2011-11-21 Robert Dewar + + * freeze.adb (Freeze_Enumeration_Type): Make sure to set both + size and alignment for foreign convention enumeration types. + * layout.adb (Set_Elem_Alignment): Redo setting of alignment + when size is set. + +2011-11-21 Yannick Moy + + * checks.adb (Apply_Access_Check, Apply_Arithmetic_Overflow_Check, + Apply_Discriminant_Check, Apply_Divide_Check, + Apply_Selected_Length_Checks, Apply_Selected_Range_Checks, + Build_Discriminant_Checks, Insert_Range_Checks, Selected_Length_Checks, + Selected_Range_Checks): Replace reference to Expander_Active + with reference to Full_Expander_Active, so that expansion of + checks is not performed in Alfa mode + +2011-11-21 Tristan Gingold + + * s-taprop-vms.adb (Create_Task): Use Unrestricted_Access to deal with + fact that we properly detect the error if Access is used. + +2011-11-21 Hristian Kirtchev + + * par-ch4.adb (P_Quantified_Expression): Add an Ada 2012 check. + +2011-11-21 Hristian Kirtchev + + * exp_imgv.adb: Add with and use clause for Errout. + (Expand_Width_Attribute): Emit a warning when in + configurable run-time mode to provide a better diagnostic message. + +2011-11-21 Hristian Kirtchev + + * s-finmas.adb (Finalize): Add comment concerning double finalization. + +2011-11-21 Ed Schonberg + + * sem_ch3.adb (Access_Definition): If the access definition + is itself the return type of an access to function definition + which is ultimately the return type of an access to subprogram + declaration, its scope is the enclosing scope of the ultimate + access to subprogram. + +2011-11-21 Steve Baird + + * sem_res.adb (Valid_Conversion): If a conversion was legal + in the body of a generic, then the corresponding conversion is + legal in the expanded body of an instance of the generic. + +2011-11-21 Robert Dewar + + * sem_ch3.adb: Minor reformatting. + +2011-11-21 Robert Dewar + + * s-utf_32.adb (Is_UTF_32_Line_Terminator): Recognize NEL as + line terminator. + * sinput.ads: Add section on Handling of Source Line Terminators. + * types.ads (Line_Terminator): Adjust comments. + +2011-11-21 Robert Dewar + + * frontend.adb (Frontend): Capture restrictions from config files + * lib-load.adb (Load_Unit): Save/set/restore restriction pragma + information + * lib-xref.adb (Generate_Reference): Fix handling of obsolescent + references. This was noticed during debugging, but it is not + known if it causes real bugs. + * restrict.ads, restrict.adb: New routines to save/set/restore + non-partition-wide restrictions. + * s-rident.ads: Comment changes for new handling of + No_Elaboration_Code + * sem.adb (Sem): Save/Set/Restore non-partition-wide restrictions + * sem_ch10.adb (Analyze_Compilation_Unit): Remove incomplete + attempt to save/restore non-partition-wide restrictions (now + this work is all done in Sem). + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Special handling for restriction No_Elaboration_Code. + +2011-11-21 Robert Dewar + + * gnat_ugn.texi: Document new handling of restrictions pragmas. + +2011-11-21 Pascal Obry + + * s-taprop-linux.adb (Initialize_Lock): Do not allocate a cond + attribute as not needed. + +2011-11-21 Robert Dewar + + * sem_prag.adb: Minor reformatting. + +2011-11-21 Pascal Obry + + * gnat_rm.texi: Document restriction for stdcall convention on + dispatching calls. + +2011-11-21 Pascal Obry + + * sem_prag.adb (Process_Convention): A dispatching call cannot + have a stdcall calling convention. + +2011-11-21 Pascal Obry + + * s-taprop-linux.adb (Initialize_Lock): Do not allocate a + mutex attribute as not needed. + (Initialize_TCB): Likewise. + (Initialize): Likewise. + +2011-11-21 Robert Dewar + + * sem_ch6.adb (Is_Public_Subprogram_For): New procedure + (Process_PPCs): Invariants only apply to public subprograms. + +2011-11-21 Robert Dewar + + * sem_util.adb, sem_util.ads, sem_attr.adb, restrict.adb, + restrict.ads: Fix for No_Implicit_Aliasing in the renames case. + +2011-11-21 Robert Dewar + + * a-finali.ads: Use pragma Pure_12 for this unit + * aspects.adb: Add aspect Pure_12 + * aspects.ads: Add aspect Pure_12 + * opt.ads: Add note on Pure_12 + * par-prag.adb: Add dummy entry for Pure_12 + * sem_prag.adb: Implement Pure_12 pragma + * snames.ads-tmpl: Add Entry for Pure_12 + +2011-11-21 Sergey Rybin + + * vms_data.ads: Add qualifiers for new gnatpp options + '--call_threshold' and '--par_threshold". + * gnat_ugn.texi: Add description for new gnatpp options + '--call_threshold' and '--par_threshold". + +2011-11-21 Robert Dewar + + * lib.ads: Minor reformatting. + +2011-11-21 Robert Dewar + + * lib-load.ads: Add comment. + +2011-11-21 Gary Dismukes + + * sem_elab.adb: Minor reformatting + +2011-11-21 Robert Dewar + + * exp_ch6.adb: Minor reformatting. + +2011-11-21 Ed Schonberg + + * sem_ch12.adb (Check_Formal_Package_Instance): If a formal + subprogram of the formal package is covered by an others + association with a box initialization, no check is needed + against the actual in the instantiation of the formal package. + +2011-11-21 Robert Dewar + + * sem_elab.adb (Check_Internal_Call_Continue): Suppress junk + elab warning from within precondition/postcondition etc. + +2011-11-21 Ed Schonberg + + * exp_ch6.adb (Expand_Actuals): In Ada 2012, a function call + with out parameters may generate assignments to force constraint + checks. These checks must be properly placed in the code after the + declaration or statement that contains the call. + +2011-11-21 Fedor Rybin + + * gnat_ugn.texi: Adding info on current gnattest limitations an + support of -X option. + +2011-11-21 Robert Dewar + + * a-cfdlli.adb, a-cbdlli.adb: Minor reformatting. + +2011-11-20 Robert Dewar + + * exp_ch6.adb, exp_util.adb: Minor reformatting + +2011-11-20 Eric Botcazou + + * sinfo.ads (Reference): Document that it is OK to set + Is_Known_Non_Null on a temporary initialized to a N_Reference + node. + +2011-11-20 Matthew Heaney + + * a-cbdlli.adb, a-cfdlli.adb (Move): Set Last component to 0 + for Source list. + +2011-11-20 Eric Botcazou + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment): + Declare NEW_EXPR local variable and attach the + temporary to it. Set Is_Known_Non_Null on the temporary. + (Make_Build_In_Place_Call_In_Object_Declaration): Likewise. + * exp_util.adb (Remove_Side_Effects): Set Is_Known_Non_Null on + the temporary created to hold the 'Reference of the expression, + if any. + * checks.adb (Install_Null_Excluding_Check): Bail out for the + Get_Current_Excep.all.all idiom generated by the expander. + +2011-11-20 Eric Botcazou + + * gcc-interface/trans.c (struct language_function): Add GNAT_RET. + (f_gnat_ret): New macro. + (struct nrv_data): Add GNAT_RET. + (finalize_nrv_unc_r): New helper function. + (finalize_nrv): Add GNAT_RET parameter. Copy it into DATA. If the + function returns unconstrained, use finalize_nrv_unc_r as callback. + (return_value_ok_for_nrv_p): Test the alignment of RET_OBJ only if + RET_OBJ is non-null. + (Subprogram_Body_to_gnu): Pass GNAT_RET to finalize_nrv. + (gnat_to_gnu) : In the return-unconstrained case, + if optimization is enabled, record candidates for the Named Return + Value optimization. + +2011-11-20 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment. + (gnat_to_gnu) : Add 'else' to avoid doing a useless + test. Tweak default case. + : Use better formatting. + * gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of + MODIFY_EXPR to initialize the storage. + (build_allocator): Likewise. + +2011-11-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Adjust + call to components_to_record. + (components_to_record): Add FIRST_FREE_POS parameter. For the variant + part, reuse enclosing union even if there is a representation clause + on the Unchecked_Union. If there is a variant part, compute the new + first free position, if any. Adjust call to self. Use a single field + directly only if it hasn't got a representation clause or is placed at + offset zero. Create the variant part at offset 0 if all the fields + down to this level have a rep clause. Do not chain the variant part + immediately and adjust downstream. + Do not test ALL_REP before moving the fields without rep clause to the + previous level. Call create_rep_part to create the REP part and force + a minimum size on it if necessary. Do not chain it immediately. + Create a fake REP part if there are fields without rep clause that need + to be laid out starting from FIRST_FREE_POS. + At the end, chain the REP part and then the variant part. + (create_rep_part): New function. + (get_rep_part): Minor tweak. + * gcc-interface/utils.c (tree_code_for_record_type): Minor tweak. + +2011-11-18 Iain Sandoe + + PR target/50678 + * init.c (__gnat_error_handler) [Darwin]: Move workaround to the + bug filed as radar #10302855 from __gnat_error_handler to... + (__gnat_adjust_context_for_raise) [Darwin]: ...here. New function. + (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE) [Darwin]: Define. + +2011-11-18 Tristan Gingold + Iain Sandoe + + PR target/49992 + * mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove. + * gcc-interface/Makefile.in (darwin): Remove ranlib special-casing. + +2011-11-12 Iain Sandoe + + * gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link + s-oscons.ads. + (OSCONS_CPP, OSCONS_EXTRACT): New. + (./bldtools/oscons/xoscons): New target. + ($(RTSDIR)/s-oscons.ads): Likewise. + (gnatlib): Depend on $(RTSDIR)/s-oscons.ads. + * gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency. + * Make-generated.in: Remove machinery to generate xoscons and + ada/s-oscons.ads. + +2011-11-10 Eric Botcazou + + * fe.h (Serious_Errors_Detected): New macro. + * gcc-interface/gigi.h (build_atomic_load): Declare. + (build_atomic_store): Likewise. + * gcc-interface/trans.c (atomic_sync_required_p): New predicate. + (call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable. + Build an atomic load for an In or In Out parameter if needed. + Build an atomic store for the assignment of an Out parameter if needed. + Build an atomic store to the target if ATOMIC_SYNC is true. + (present_in_lhs_or_actual_p): New predicate. + (gnat_to_gnu) : Build an atomic load if needed. + : Likewise. + : Likewise. + : Likewise. + : Adjust call to call_to_gnu. + Build an atomic store to the LHS if needed. + : Adjust call to call_to_gnu. + * gcc-interface/utils2.c: Include toplev.h. + (resolve_atomic_size): New static function. + (build_atomic_load): New function. + (build_atomic_store): Likewise. + * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h. + +2011-11-07 Olivier Hainque + + * sigtramp-ppcvxw.c: Add general comments. + (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add + rules for r2 to r13, plus CTR and XER. + (CFA_REG): New, register number used to hold the local CFA. + (CFI_DEF_CFA, SIGTRAMP_BODY): Use it. + Make that 15, not 14, with documentation. + (TCR): Undef before definition, preventing conflict with reg number in + VxWorks headers. + +2011-11-07 Robert Dewar + + * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb, + aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-11-07 Ed Schonberg + + * exp_ch6.adb: A tagged type is a legal actual for an aliased + formal. + +2011-11-07 Pascal Obry + + * g-socket.adb, g-socket.ads: Minor reformatting. + +2011-11-07 Robert Dewar + + * sem_res.adb (Resolve_Actuals): Minor error message improvement. + +2011-11-07 Robert Dewar + + * gnat_ugn.texi: Add discussion of default mode handling of + source representation with no -gnatW option given, in particular + noting that NEL (next line) is not recognized in this context. + +2011-11-07 Yannick Moy + + * sem_util.adb (Note_Possible_Modification): In Alfa mode, + generate a reference for a modification even when the modification + does not come from source. + +2011-11-07 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form, + use the indexing attributes rather than the Element function, + to obtain variable references. + * sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use + Find_Aspect rather than iterating over representation + items. Improve error message. + * a-cohama.adb, a-cohama.ads Update to latest RM, with two versions + of Reference functions. + +2011-11-07 Yannick Moy + + * sem_util.adb (Unique_Entity): For a parameter on a subprogram + body that has a corresponding parameter on the subprogram + declaration, define the unique entity as being the declaration + one. + +2011-11-07 Ed Schonberg + + * sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the + return type of a function is the class-wide type of an incomplete + type T, T can be a Taft-amendment type and does not have to be + completed in the current private part. + +2011-11-07 Ed Schonberg + + * aspects.ads (Inherited_Aspect): Map that indicates type aspects + that are inherited by default, and apply to the class-wide type + as well. + * aspects.adb (Find_Aspect): If the entity is class-wide and the + aspect is inherited, use the aspect of the specific type. + +2011-11-07 Hristian Kirtchev + + * exp_alfa.adb: Remove with and use clause for + Exp_Ch8. Add with and use clause for Exp_Util. + Remove local constant Disable_Processing_Of_Renamings. + (Expand_Alfa_N_Object_Renaming_Declaration): The expansion of + object renamings has been reenabled. + (Expand_Possible_Renaming): + The expansion of identifier and expanded names has been + reenabled. Perform the substitutions only for entities that + denote an object. + * exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util. + * exp_util.adb (Evaluate_Name): Moved from Exp_Ch8. + (Remove_Side_Effects): Alphabetize local variables. Add a guard + to avoid the infinite expansion of an expression in Alfa mode. Add + processing for function calls in Alfa mode. + * exp_util.ads (Evaliate_Name): Moved from Exp_Ch8. + +2011-11-07 Ed Schonberg + + * freeze.adb (Freeze_Entity): If the entity is an access to + subprogram whose designated type is itself a subprogram type, + its own return type must be decorated with size information. + +2011-11-04 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2011-11-04 Robert Dewar + + * sprint.adb (Sprint_Node_Actual, case Qualified_Expression): + Avoid junk semicolon after argument of machine code Asm operand. + +2011-11-04 Robert Dewar + + * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in + CodePeer mode or if restriction No_Exception_Handlers is present. + * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop + nodes in CodePeer mode or if restriction No_Exception_Handlers + is present. + +2011-11-04 Robert Dewar + + * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting. + +2011-11-04 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Specification): The + specification is legal if it is a function that returns an + abstract type, if it comes from an attribute renaming of a stream + attribute of an abstract type. + +2011-11-04 Gary Dismukes + + * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed + components, check whether recursively check whether the prefix + denotes an unaligned object. + +2011-11-04 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Debug): The argument of + the pragma is legal if it is an expanded name that denotes a + procedure that be can called without parameters. + +2011-11-04 Eric Botcazou + + * gnat_ugn.texi (Performance Considerations) : New sub-section. : + Minor tweak. + +2011-11-04 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + +2011-11-04 Matthew Heaney + + * a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PE + when Target and Source denote same non-empty object + * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto + +2011-11-04 Robert Dewar + + * exp_attr.adb: Minor reformatting. + +2011-11-04 Ed Schonberg + + * exp_ch5.adb (Expand_Assign_Record): Do not generate a + discriminant assignment within an initialization proc if the + record is an unchecked union, as it can only come from the + initialization of an unchecked union component. + +2011-11-04 Robert Dewar + + * gnat_ugn.texi: Minor reformatting. + +2011-11-04 Robert Dewar + + * par-labl.adb (Rewrite_As_Loop): Generate info msg rather than + warning message. + +2011-11-04 Robert Dewar + + * exp_ch4.adb: Minor code reorganization (remove junk obsolete + var Save_Space). + +2011-11-04 Hristian Kirtchev + + * exp_alfa.adb: Add local constant + Disable_Processing_Of_Renamings; + (Expand_Alfa_N_Object_Renaming_Declaration): Disable + the name evaluation of object renamings for now. + (Expand_Potential_Renaming): Do not perform the substitution + for now. + * exp_util.adb (Remove_Side_Effects): Remove processing for + functions with side effects in Alfa mode. + +2011-11-04 Gary Dismukes + + * bindgen.adb (Gen_Elab_Calls): In the case + of the AAMP target, set elaboration entities to 1 rather than + incrementing. + +2011-11-04 Ed Schonberg + + * sem_ch10.adb (Install_Limited_With_Unit): To establish the + proper entities on the ancestors of a child unit that appear + in a limited_with clause, follow the unit links because the + units are not analyzed and scope information is incomplete. + +2011-11-04 Eric Botcazou + + * exp_ch4.adb (Expand_N_Selected_Component): Refine code + setting the Atomic_Sync_Required flag to detect one more case. + * exp_util.adb (Activate_Atomic_Synchronization): Refine code + setting the Atomic_Sync_Required flag to exclude more cases, + depending on the parent of the node to be examined. + +2011-11-04 Bob Duff + + * g-excact.adb: Minor: use named notation. + +2011-11-04 Ed Schonberg + + * sem_ch5.adb: Improve error messages for illegal iterators. + +2011-11-04 Hristian Kirtchev + + * exp_alfa.adb: Add with and use clauses for Exp_Ch8 and + Sem_Util. + (Expand_Alfa): Alphabetize cases on first choice. Add + processing for object renaming declarations, identifiers and + expanded names. + (Expand_Alfa_N_In): Remove useless return. + (Expand_Alfa_N_Object_Renaming_Declaration): New routine. + (Expand_Potential_Renaming): New routine. + * exp_ch8.adb (Evaluate_Name): Moved to the top level. + (Expand_N_Object_Declaration): Alphabetize local variables. Move + Evaluate_Name out to the top level. + * exp_ch8.ads (Evaluate_Name): Moved from body to package spec. + * exp_util.adb (Remove_Side_Effects): Add processing for + functions with side effects in Alfa mode. + +2011-11-04 Hristian Kirtchev + + * gnat_rm.texi: Add entries for + restrictions No_Relative_Delay, No_Requeue_Statements and + No_Stream_Optimizations. + +2011-11-04 Ed Schonberg + + * sem_ch4.adb: Set type of entity in prefixed call, for + completeness in a generic context. + +2011-11-04 Yannick Moy + + * sem_prag.adb: Minor refactoring (renaming of a parameter). + +2011-11-04 Robert Dewar + + * atree.ads: Minor reformatting. + +2011-11-04 Robert Dewar + + * checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d + and -gnatd.e here + * exp_ch2.adb (Expand_Entity_Reference): Use + Activate_Atomic_Synchronization + * exp_ch4.adb (Expand_N_Explicit_Dereference): Use + Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent): + Activate_Atomic_Synchronization (Expand_N_Selected_Component): + Use Activate_Atomic_Synchronization + * exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New + procedure. + * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to + N_Selected_Component node + +2011-11-04 Robert Dewar + + * sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting. + +2011-11-04 Yannick Moy + + * atree.adb, atree.ads (Set_Original_Node): New set procedure. + * sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects): + In ASIS mode, no splitting of aspects between conjuncts. + (Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma + expressions refer to the original aspect expressions through + the Original_Node link. This is used in semantic analysis for + ASIS mode, so that the original expression also gets analyzed. + * sem_prag.adb (Preanalyze_TC_Args, + Check_Precondition_Postcondition, + Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma + generated from a source aspect, also analyze the original aspect + expression. + (Check_Expr_Is_Static_Expression): New procedure + similar to existing procedure Check_Arg_Is_Static_Expression, + except called on expression inside pragma. + +2011-11-04 Tristan Gingold + + * prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from + Find_Project.Try_Path_Name. + (Find_Project): Use Find_Name_In_Path to implement Try_Path_Name. + +2011-11-04 Eric Botcazou + + * s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile. + +2011-11-04 Pascal Obry + + * projects.texi: Add short description for qualifiers aggregate + and aggregate library. + +2011-11-04 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb] + * a-cgaaso.adb: Replaced implementation with instantiation + of Generic_Sort. + * a-cogeso.ad[sb] This is the new Ada 2012 unit + Ada.Containers.Generic_Sort + +2011-11-04 Robert Dewar + + * exp_ch2.adb (Expand_Entity_Reference): Do not set + Atomic_Sync_Required for the case of a prefix of an attribute. + * exp_ch4.adb (Expand_N_Explicit_Dereference): May require + atomic synchronization + (Expand_N_Indexed_Component): Ditto. + (Expand_B_Selected_Component): Ditto. + * sem_prag.adb (Process_Suppress_Unsuppress): + Disable/Enable_Atomic_Synchronization can now occur for array + types with pragma Atomic_Components. + * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on + N_Explicit_Dereference nodes and on N_Indexed_Component nodes. + +2011-11-04 Gary Dismukes + + * gnat_ugn.texi: Editorial corrections for gnattest section. + +2011-11-04 Robert Dewar + + * sem_prag.adb: Minor reformatting. + * gnat_rm.texi: Update documentation for pragma Warnings (Off, + "***") usage. + * exp_ch2.adb (Expand_Entity_Reference): Only set + Atomic_Sync_Required on entities that are variables. Doesn't + make any sense on anything else. + +2011-11-04 Robert Dewar + + * exp_ch2.adb (Expand_Entity_Reference): Extend handling of + atomic sync to type case. + * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can + apply to types. + +2011-11-04 Robert Dewar + + * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test + for call vs assign. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-11-04 Robert Dewar + + * sem_prag.adb: Detect more cases of Long_Float inconsistencies at + compile time. + +2011-11-04 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added a-sfecin.ads, + * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb], + a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb] + * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], + a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], + a-sulcin.ad[sb]: New files. + +2011-11-04 Geert Bosch + + * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads, + s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads, + i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads, + s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK. + * gcc-interface/Makefile.in: Remove libgnala and related objects. + +2011-11-04 Matthew Heaney + + * a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb], + a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb], + a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb], + a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operations + added to package. + +2011-11-04 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not assert + that the type of the parameters isn't dummy in type_annotate_only mode. + +2011-11-04 Robert Dewar + + * sem_ch12.adb: Minor reformatting + +2011-11-04 Gary Dismukes + + * bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target, + initialize elaboration entities to zero when specs are processed. + +2011-10-28 Iain Sandoe + Eric Botcazou + + PR target/50678 + * init.c (__gnat_error_handler) [Darwin]: Apply a work-around to the + bug filed as radar #10302855 (inconsistent unwind data for sigtramp). + +2011-10-28 Eric Botcazou + + PR ada/50842 + * gcc-interface/Makefile.in (SYMDEPS): Delete. + (LIBICONV): New variable. + (LIBICONV_DEP): Likewise. + (LIBS): Add $(LIBICONV). + (LIBDEPS): Add $(LIBICONV_DEP). + (EXTRA_GNATTOOLS_OBJS): Merge into... + (TOOLS_LIBS): ...this. Add $(LIBICONV). + +2011-10-26 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local + variable. Always create the elaboration variable, if any, as constant. + +2011-10-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Try to + make a packable type for fields of union types as well. + : Use RECORD_OR_UNION_TYPE_P predicate. + (gnat_to_gnu_component_type): Try to make a packable type for fields + of union types as well. + (make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate. + (maybe_pad_type): Try to make a packable type for fields of union types + as well. + (gnat_to_gnu_field): Likewise. + (is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate. + (set_rm_size): Likewise. + (rm_size): Likewise. + * gcc-interface/misc.c (gnat_type_max_size): Likewise. + * gcc-interface/trans.c (add_decl_expr): Likewise. + * gcc-interface/utils.c (finish_record_type): Likewise. + * gcc-interface/utils2.c (build_simple_component_ref): Likewise. + +2011-10-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_field): Always check components + declared as atomic. Move around conditionally executed code. + +2011-10-24 Robert Dewar + + * sem.adb (Initialize): Fix bug that blew up if called a second time. + +2011-10-24 Robert Dewar + + * tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c, + tb-ivms.c, tb-gcc.c: Update headers to GPL 3. + +2011-10-24 Robert Dewar + + * sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma + name in error msg. + +2011-10-24 Hristian Kirtchev + + * gnat_rm.texi: Add an entry for restriction No_Finalization. + +2011-10-24 Ed Schonberg + + * sem_ch12.adb (Insert_Freeze_Node_For_Instance): If the + current instance is within the one that contains the generic, + the freeze node for the current one must appear in the current + declarative part. Ditto if the current instance is within another + package instance. In both of these cases the freeze node of the + previous instance is not relevant. + +2011-10-24 Gary Dismukes + + * switch-m.adb (Normalize_Compiler_Switches): Add recognition + of AAMP-specific switches -univ and -aamp_target. + +2011-10-24 Robert Dewar + + * a-tienau.adb (Put): Deal properly with limited line length. + +2011-10-24 Robert Dewar + + * sem_warn.adb, sem_ch12.adb: Minor reformatting. + +2011-10-24 Tristan Gingold + + * gcc-interface/Makefile.in: Use GNU ld switches to generate map files + on AIX. + +2011-10-24 Ed Schonberg + + * sem_ch12.adb (Earlier): make available globally. If both + nodes have the same sloc, the freeze node that does not come + from source is the later one. + (True_Parent): Make available globally. + (Previous_Instance): Subsidiary of + Insert_Freeze_Node_For_Instance, to check whether the generic + parent of the current instance is declared within a previous + instance in the same unit or declarative part, in which case the + freeze nodes of both instances must appear in order to prevent + elaboration problems in gigi. + * sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a + freeze point, and the freeze node of a preceding instantiation + must be inserted before it. + +2011-10-24 Robert Dewar + + * checks.ads, checks.adb: Add handling of Synchronization_Check + * debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable + atomic sync). + * exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required + flag Minor code reorganization. + * opt.ads (Warn_On_Atomic_Synchronization): New switch. + * par-prag.adb: Add dummy entries for pragma + Disable/Enable_Atomic_Synchronization. + * sem_prag.adb (Process_Suppress_Unsuppress): Handle + case of Atomic_Synchronization specially (not suppressed + by All_Checks, cannot be set from Source). + (Pragma Disable/Enable_Atomic_Synchronization): Add processing. + * sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag + * snames.ads-tmpl: Add entry for Atomic_Synchronization Add + entry for pragma Disable/Enable_Atomic_Synchronization + * switch-c.adb: The -gnatp switch does not disable + Atomic_Synchronization Add -gnatep switch to disable + Atomic_Synchronization. + * types.ads: Add entry for Synchronization_Check + * usage.adb: Add line for -gnated switch + * warnsw.adb: Settings for Warn_On_Atomic_Synchronization + +2011-10-24 Geert Bosch + + * s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds start + at Integer'First. + +2011-10-24 Robert Dewar + + * sem_ch12.adb, s-gearop.adb: Minor reformatting. + +2011-10-24 Robert Dewar + + * warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings. + * warnsw.ads: Add comments to Set_GNAT_Mode_Warnings. + +2011-10-24 Emmanuel Briot + + * prj-proc.adb (Process_Expression_Variable_Decl): No special + handling for Project_Path unless it is an attribute. + +2011-10-24 Javier Miranda + + * sem_ch12.adb (Check_Hidden_Primitives): New subprogram. + (Install_Hidden_Primitives): New subprogram. + (Restore_Hidden_Primitives): New subprogram. + (Analyze_Formal_Package_Declaration, + Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): + Invoke Check_Hidden_Primitives after every call to + Analyze_Associations, and invoke Restore_Hidden_Primitives to + restore their visibility after processing the instantiation. + (Instantiate_Package_Body): Install visible primitives before + analyzing the instantiation and uninstall them to restore their + visibility when the instantiation has been analyzed. + * sem_util.ads, sem_util.adb (Add_Suffix): New subprogram + (Remove_Suffix): New subprogram + * sem_ch3.adb (Derive_Subprogram): When handling + a derived subprogram for the instantiation of a formal derived + tagged type, inherit the dispatching attributes from the actual + subprogram (not from the parent type). + +2011-10-24 Vasiliy Fofanov + + * gnat_ugn.texi: Document explicit use of XDECGNAT library. + +2011-10-24 Hristian Kirtchev + + * exp_ch3.adb (Build_Assignment): Add local constant N_Loc and + update its uses. + (Build_Discriminant_Assignments): Add local variable D_Loc and update + its uses. + (Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and + Var_Loc and update their uses. + (Build_Record_Init_Proc): Code reformatting. + (Increment_Counter): Add formal parameter Loc. + (Make_Counter): Add formal parameter Loc. + +2011-10-24 Eric Botcazou + + * sem_disp.adb (Covers_Some_Interface): Fix typo. + +2011-10-24 Matthew Heaney + + * a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix sense + of predicate. + +2011-10-24 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case): + Translate arguments in positional notation into pragma argument + association arguments for the generated pragma. + +2011-10-24 Arnaud Charlet + + * exp_ch5.adb: Fix minor typo. + +2011-10-24 Ed Schonberg + + * sem_ch3.adb (Is_Visible_Component): Refine predicate for + the case of a component reference in an instance body, when the + enclosing type is private. + +2011-10-24 Sergey Rybin + + * gnat_ugn.texi: For gnatelim, move the note about using the GNAT + driver for getting the project support into gnatelim section. + +2011-10-24 Robert Dewar + + * gnat_rm.texi: Minor correction to documentation on address clause. + +2011-10-24 Hristian Kirtchev + + * s-finmas.adb (Attach): Synchronize and call the unprotected version. + (Attach_Unprotected): New routine. + (Delete_Finalize_Address): Removed. + (Delete_Finalize_Address_Unprotected): New routine. + (Detach): Synchronize and call the unprotected version. + (Detach_Unprotected): Remove locking. + (Finalize): Add various comment on synchronization. Lock the critical + region and call the unprotected versions of routines. + (Finalize_Address): Removed. + (Finalize_Address_Unprotected): New routine. + (Set_Finalize_Address): Synchronize and call + the unprotected version. + (Set_Finalize_Address_Unprotected): New routine. + (Set_Heterogeneous_Finalize_Address): Removed. + (Set_Heterogeneous_Finalize_Address_Unprotected): New routine. + (Set_Is_Heterogeneous): Add comment on synchronization and + locking. + * s-finmas.ads: Flag Finalization_Started is no longer atomic + because synchronization uses task locking / unlocking. + (Attach): Add comment on usage. + (Attach_Unprotected): New routine. + (Delete_Finalize_Address): Renamed to + Delete_Finalize_Address_Unprotected. + (Detach): Add comment on usage. + (Detach_Unprotected): New routine. + (Finalize_Address): Renamed to Finalize_Address_Unprotected. + (Set_Finalize_Address): Add comment on usage. + (Set_Finalize_Address_Unprotected): New routine. + (Set_Heterogeneous_Finalize_Address): Renamed to + Set_Heterogeneous_Finalize_Address_Unprotected. + * s-stposu.adb (Allocate_Any_Controlled): Add local variable + Allocation_Locked. Add various comments on synchronization. Lock + the critical region and call the unprotected version of + routines. + (Deallocate_Any_Controlled): Add various comments on + synchronization. Lock the critical region and call the unprotected + version of routines. + +2011-10-24 Ed Schonberg + + * sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type + are universal and must carry the corresponding type. + * sem_eval.adb (Check_Non_Static_Context): If the type of the + expression is universal real, as may be the case for a fixed point + expression with constant operands in the context of a conversion, + there is nothing to check. + * s-finmas.adb: Minor reformatting + +2011-10-23 Eric Botcazou + + * gcc-interface/decl.c (create_concat_name): Add explicit cast. + +2011-10-20 Eric Botcazou + + * gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND, + TRACE): Reintroduce. + (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o, + ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules. + +2011-10-20 Eric Botcazou + + * gcc-interface/trans.c (lhs_or_actual_p): New predicate. + (unchecked_conversion_nop): Use it. + (gnat_to_gnu): Likewise. + +2011-10-20 Eric Botcazou + + * back_end.adb (Call_Back_End): Pass the maximum logical line number + instead of the maximum physical line number to gigi. + * gcc-interface/trans.c (Sloc_to_locus): Cope with line zero. + +2011-10-16 Tom Tromey + Dodji Seketeli + + * gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the new + public ordinary map interface. + +2011-10-16 Tristan Gingold + + * link.c (_AIX): Add support for GNU ld. + +2011-10-16 Fedor Rybin + + * gnat_ugn.texi: Fixing gnattest example names in the doc. + Adding explanation to additional tests usage. + +2011-10-16 Robert Dewar + + * exp_ch6.adb, sem_ch6.adb: Minor reformatting. + +2011-10-16 Eric Botcazou + + * a-convec.adb: Fix minor inconsistencies. + +2011-10-16 Matthew Heaney + + * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package + Implementation): Specify pragma Implementation_Defined. + +2011-10-15 Nicolas Roche + + * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using + either rtp-smp or ravenscar-cert-rtp runtimes. + +2011-10-15 Bob Duff + + * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): + Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr + is available. + (Expand_N_Extended_Return_Statement): Do not create a renaming of the + build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is + available. + (Make_Build_In_Place_Call_In_Allocator): Add the user-defined + pool only if RE_Root_Storage_Pool_Ptr is available. + (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a + pool actual unless RE_Root_Storage_Pool_Ptr is available. + * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool + formal only if RE_Root_Storage_Pool_Ptr is available. + +2011-10-15 Matthew Heaney + + * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue + type): Specify Priority aspect for protected type. + +2011-10-14 Ed Schonberg + + * exp_disp.adb (Check_Premature_Freezing): If an untagged type + is a generic actual, it is a subtype of a type that was frozen + by the instantiation, and even if not marked frozen it does not + affect the construction of the dispatch table. + +2011-10-14 Robert Dewar + + * make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code + reformatting. + * s-rident.ads: Add missing Compiler_Unit pragma. + +2011-10-14 Gary Dismukes + + * sem_res.adb: Minor reformatting. + +2011-10-14 Hristian Kirtchev + + * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): + Code and comment reformatting. Use BIP_Task_Master + when creating a _master. + (BIP_Formal_Suffix): Code reformatting. Correct the case for + BIP_Task_Master. + (Make_Build_In_Place_Call_In_Object_Declaration): Use + BIP_Task_Master when creating a reference to the enclosing + function's _master formal. + (Move_Activation_Chain): Use BIP_Task_Master when creating a reference + to the _master. + * exp_ch6.ads: Change BIP_Master to BIP_Task_Master. + (Needs_BIP_Finalization_Master): Alphabetized. + * sem_ch6.adb (Create_Extra_Formals): Update the usage of + BIP_Task_Master. + +2011-10-14 Ed Schonberg + + * par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode, + reject an aliased keyword on the object declaration of an extended + return statement. In older versions of the language indicate + that this is illegal in the standard. + +2011-10-14 Pascal Obry + + * sem_util.adb, sem_ch4.adb: Minor reformatting. + +2011-10-14 Ed Schonberg + + * sem_ch13.adb: Recognize properly procedure calls that are + transformed into code statements. + +2011-10-14 Vincent Celier + + * projects.texi: Minor fix in project example. + +2011-10-14 Ed Schonberg + + * sem_util.adb: Return objects are aliased if their type is + immutably limited as per AI05-0053. + +2011-10-14 Gary Dismukes + + * exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or + expansion code (moved to sem_res) (Expand_N_Op_Or): Remove + Short_Circuit_And_Or expansion code (moved to sem_res). + * sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean + "and" and "or" operators as short-circuit "and then" and "or + else", when pragma Short_Circuit_And_Or is active. + +2011-10-13 Robert Dewar + + * sem_ch9.adb, sem_util.adb, sem_util.ads, exp_ch6.adb, sem_ch4.adb, + sem_ch6.adb, exp_ch3.adb: Minor reformatting. + +2011-10-13 Arnaud Charlet + + * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o. + +2011-10-13 Jerome Guitton + + * sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads + +2011-10-13 Eric Botcazou + + * a-convec.ads (Cursor): Minor reformatting. + * a-convec.adb (Next): Fix minor inconsistencies. + (Previous): Likewise. + +2011-10-13 Ed Schonberg + + * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component): + New predicate to determine whether some operations on an array + type are available when the full view of its component may differ + from the view of the point of the array declaration. + * sem_ch4.adb (Find_Equality_Types): Use + Available_Full_View_Of_Component. + * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto + +2011-10-13 Ed Schonberg + + * sem_ch9.adb: Analyze aspects while discriminants of protected + type are visible. + +2011-10-13 Geert Bosch + + * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add + a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no + longer depend on an external library. + * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove + a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o. + Update dependencies. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-10-13 Cyrille Comar + + * gnat_ugn.texi: Minor editing. + +2011-10-13 Vincent Celier + + * projects.texi: Add documentation on packages and attributes + that are inherited from a project being extended into the + extended project. + +2011-10-13 Hristian Kirtchev + + * exp_ch3.adb (Build_Master): Rewritten. + (Expand_N_Full_Type_Declaration): Reformat the declarative + region. Update the call to Build_Master_Renaming. + (Expand_Previous_Access_Type): Rewritten. + * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): + Add local constant Result_Subt and update related usage. + (Expand_N_Extended_Return_Statement): Add local constant + Result_Subt and update related usage. + * exp_ch9.adb (Build_Activation_Chain): Rewritten to use the + new context detection mechanism. + (Build_Class_Wide_Master): + Use Insert_Action to add the renaming into the tree. + (Build_Master_Entity): Rewritten to use the new context detection + mechanism. + (Build_Master_Renaming): Add formal parameter Ins_Nod + and related usage. Use Insert_Action to add the renaming into the + tree. + (Find_Enclosing_Context): New subsidiary routine. Rather + than relying on enclosing scopes, this routine looks at the + tree structure to figure out the proper context for a _master + or a _chain. This approach eliminates the issues with transient + scopes which have not been converted into blocks. + * exp_ch9.ads (Build_Master_Entity): Change parameter profile + to better reflect the new usage. Update the related comment. + (Build_Master_Renaming): Add formal parameter Ins_Nod. Update + the comment on usage. + * sem_ch3.adb (Access_Definition): Update the calls to + Build_Master_Entity and Build_Master_Renaming. + * sem_ch6.adb (Create_Extra_Formals): Add local variable + Full_Subt. Code reformatting. + * sem_util.adb (Is_Iterator): Alphabetized. + (Is_LHS): Alphabetized. + (Is_Limited_Class_Wide_Type): New routine. + * sem_util.ads (Is_Limited_Class_Wide_Type): New routine. + +2011-10-13 Geert Bosch + + * a-ngrear.adb (Solve): Make generic and move to + System.Generic_Array_Operations. + * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution): + New generic solvers to compute a vector resp. matrix Y such + that A * Y = X, approximately. + * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution): + Implement using Forward_Eliminate and Back_Substitute + * a-ngcoar.adb: Reimplement in pure Ada to remove dependencies + on BLAS and LAPACK. + * a-ngcoar.ads ("abs"): Fix return type to be real. + +2011-10-13 Eric Botcazou + + PR ada/50589 + * s-linux-alpha.ads: Do not "with" Interfaces.C. + * s-linux-sparc.ads: Likewise. + +2011-10-13 Geert Bosch + + * s-gearop.ads (Forward_Eliminate): Add "abs" formal function + returning a Real. + * s-gearop.adb (Forward_Eliminate): Remove local "abs" function + and use formal. + * a-ngrear.adb (Forward_Eliminate): Adjust instantiation for + new profile. + +2011-10-13 Geert Bosch + + * a-ngrear.adb, s-gearop.adb, s-gearop.ads (Sqrt): Make generic and + move to System.Generic_Array_Operations. + +2011-10-13 Geert Bosch + + * a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic + * s-gearop.ads (L2_Norm): Change profile to be suitable for + Complex_Vector + * s-gearop.adb (L2_Norm): Reimplement using direct definition, + not inner product + +2011-10-13 Robert Dewar + + * exp_ch5.adb, sem_ch3.adb, impunit.adb, impunit.ads, sem_type.adb, + prj-proc.adb, exp_ch9.adb, s-regpat.adb, sem_ch10.adb, sem_prag.adb, + sem_ch12.adb, freeze.adb, sem_attr.adb, sem_attr.ads, gnatlink.adb, + par-ch6.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, + par-util.adb, sem_ch13.adb, lib-xref.adb, g-trasym.adb, g-trasym.ads, + exp_aggr.adb, s-taprop-posix.adb: Minor reformatting. + +2011-10-13 Geert Bosch + + * s-gearop.adb: Minor comment additions. + +2011-10-13 Fedor Rybin + + * gnat_ugn.texi: Add gnattest section. + +2011-10-13 Ed Schonberg + + * freeze.adb: Do not create body of renaming if declaration has + errors. + +2011-10-13 Olivier Hainque + + * init.c (__gnat_error_handler - vxworks case): Restrict sigtramp calls + further, to the ppc+kernel case only. + +2011-10-13 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Allocator): Comment reformatting. + * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): + Do not create a pool formal on .NET/JVM. + (Expand_N_Extended_Return_Statement): Alphabetize local + variables. Do not create a renaming of the build-in-place pool + parameter on .NET/JVM. (Make_Build_In_Place_Call_In_Allocator): + Add the user-defined pool only on non-VM targets. + (Make_Build_In_Place_Call_In_Object_Declaration): Alphabetize + local variables. Do not add a pool actual on .NET/JVM. + * sem_ch6.adb: Add with and use clause for Targparm. + (Create_Extra_Formals): Add build-in-place pool formal only on + non-VM targets. + * rtsfind.ads: Alphabetize entries. + +2011-10-13 Sergey Rybin + + * gnat_ugn.texi: Minor correction. + +2011-10-13 Ed Schonberg + + * sem_ch8.adb: Minor error message improvement. + +2011-10-13 Robert Dewar + + * a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting. + +2011-10-13 Gary Dismukes + + * exp_ch5.adb (Expand_N_Loop_Statement): For the transformation + of a for loop for an enumeration type with an enumeration rep + clause, which involves moving the original loop parameter into + a nested block, the loop parameter's entity must be removed from + the entity list of the loop scope. + +2011-10-13 Bob Duff + + * exp_ch6.ads (BIP_Storage_Pool): New "extra implicit parameter" + that gets passed in the same cases where BIP_Alloc_Form is passed + (caller-unknown-size results). BIP_Storage_Pool is used when + BIP_Alloc_Form = User_Storage_Pool. In that case, a pointer + to the user-defined storage pool is passed at the call site, + and this pool is used in callee to allocate the result. + * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): New + version of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passes + the additional BIP_Storage_Pool actual. + (Expand_N_Extended_Return_Statement): Allocate the function + result using the user-defined storage pool, if BIP_Alloc_Form = + User_Storage_Pool. + * sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool. + * exp_ch4.adb: Don't overwrite storage pool set by + Expand_N_Extended_Return_Statement. + * s-stopoo.ads, rtsfind.ads (Root_Storage_Pool_Ptr): New type, + for use in build-in-place function calls within allocators + where the access type has a user-defined storage pool. + +2011-10-13 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Add an option to control enumeration + literal casing. + +2011-10-13 Nicolas Roche + + * gnatlink.adb: Ensure that -mrtp is passed when runtime name ends + with 'rtp'. + +2011-10-13 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take into + account that an unchecked union type can be limited. + +2011-10-13 Olivier Hainque + + * init.c (__gnat_error_handler) : Add comments on + the use of the signal trampoline for PPC in the sjlj case as well. + Add legitimate casts, preventing compile time warnings on the + (sighandler *) profile. + +2011-10-13 Yannick Moy + + * sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysis + in Alfa mode. + +2011-10-13 Ed Schonberg + + * sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and case + expressions are legal limited return values if each one of their + dependent expressions are legal. + +2011-10-13 Ed Schonberg + + * sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode, + if the prefix of the call is a qualified expression, rewrite as + a code statement. + * sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, the + code statement is legal if it is a rewriting of a procedure call. + +2011-10-13 Ed Schonberg + + * exp_aggr.adb (Flatten): If a component association has a box, + assume that aggregate is not static. + (Safe_Aggregate): If a component association in a non-limited + aggregate has a box, assume that it cannot be expanded in place. + +2011-10-13 Vincent Celier + + * prj-conf.adb (Get_Or_Create_Configuration_File): Call + Process_Project_Tree_Phase_1 with Packages_To_Check. + (Process_Project_And_Apply_Config): Ditto + * prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse): + Remove default for argument Packages_To_Check. + * prj-proc.adb (Recursive_Process): New argument + Packages_To_Check. + (Process): Ditto. + (Process_Project_Tree_Phase_1): Ditto. + (Recursive_Project.Process_Aggregated_Projects): Call + Prj.Part.Parse and Process_Project_Tree_Phase_1 with + Packages_To_Check. + * prj-proc.ads (Process): New argument Packages_To_Check + (Process_Project_Tree_Phase_1): Ditto + +2011-10-13 Arnaud Charlet + + * gcc-interface/Makefile.in: Fix typo. + +2011-10-13 Ed Schonberg + + * sem_ch12.adb (Analyze_Formal_{Floating_Type, + Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}): + Use sloc of defining identifier of farmal type declaration, + as sloc of generated internal entity, to prevent misplaced + references in ali. + +2011-10-13 Ed Schonberg + + * sem_intr.adb (Check_Intrinsic_Operator): Check that type + is fully defined before checking that it is a numeric type. + +2011-10-13 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate): If a component + association for component X has a box, then X is covered in the + aggregate even if there is not default value for X in the type + declaration, and X has to be default-initialized. + +2011-10-13 Ed Schonberg + + * sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark + literals as referenced only if reference is in current source unit. + +2011-10-13 Matthew Heaney + + * a-csquin.ads (Enque, Dequeue): Mark interface operations as entries. + +2011-10-13 Olivier Hainque + + * sigtramp.h: New file. Prototype and spec of the signal + trampoline to be called by an established handler to provide + dwarf call frame info before the real signal processing code. + * sigtramp-ppcvxw.c: New file. Implementation of the signal + trampoline for ppc-vxworks. + * init.c (vxworks section): Use it for ppc. + +2011-10-13 Thomas Quinot + + * par-ch2.adb, par.adb, par-util.adb, par-ch3.adb + (Check_Future_Identifier): New subprogram, + factors duplicated code from Par.Ch2.P_Identifier and + Par.Ch3.P_Defining_Identifier. + +2011-10-13 Thomas Quinot + + * s-taprop-posix.adb (Initialize): Always raise Storage_Error + if we fail to initialize CV attributes or CV. + +2011-10-13 Thomas Quinot + + * s-tasren.adb (Timed_Selective_Wait, case + Accept_Alternative_Selected): Use Defer_Abort_Nestable, since + we know abortion is already deferred. + +2011-10-13 Hristian Kirtchev + + * exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9. + (Build_Master_Renaming (function)): Removed. + (Build_Master_Renaming (procedure)): Moved to exp_ch9. + (Expand_Full_Type_Declaration): Alphabetize + variables. Reformatting of code and comments. Rewrite the + section on processing of anonymous access-to-task types in + record components. + * exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9. + (Build_Master_Renaming): Moved to exp_ch9. + * exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3. + (Build_Master_Entity): Add formal parameter + Use_Current. Reformatting of code and comments. + (Build_Master_Renaming): Moved from exp_ch3. + * exp_ch9.ads (Build_Class_Wide_Master): Moved from + exp_ch3. Update comment on usage. + (Build_Master_Entity): + Add formal parameter Use_Current. Update comment on usage. + (Build_Master_Renaming): Moved from exp_ch3. + * sem_ch3.adb (Access_Definition): Remove redundant code to + create a _master and a renaming. + +2011-10-13 Ed Schonberg + + * lib-xref.adb: Do no emit reference to overridden operation, + if it is internally generated. + +2011-10-13 Vincent Celier + + * bindgen.adb: Remove any processing related to g-trasym + * Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS + * mlib-prj.adb: Remove any processing related to g-trasym. + +2011-10-12 Eric Botcazou + + * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning. + * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New. + (ALL_ADAFLAGS): Include WARN_ADAFLAGS. + (ADA_FLAGS_TO_PASS): Likewise. + (COMMON_FLAGS_TO_PASS): New. + (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular + native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS. + (gnatlib): Use COMMON_FLAGS_TO_PASS. + (ada.install-common): Likewise. + (install-gnatlib): Likewise. + (install-gnatlib-obj): Likewise. + (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well. + (gnat-cross): Delete. + (gnatboot): Likewise. + (gnatboot2): Likewise. + (gnatboot3): Likewise. + (gnatstage1): Likewise. + (gnatstage2): Likewise. + * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise. + (MOST_ADAFLAGS): Likewise. + (LOOSE_CFLAGS): Likewise. + (gnat-cross): Likewise. + (GNATLIBFLAGS): Add -W -Wall. + (GNATLIBCFLAGS_FOR_C): Likewise. + * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines. + * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases. + +2011-10-12 Eric Botcazou + + * gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions. + (push_range_check_info): Likewise. + (gnat_to_gnu) : Likewise. + * gcc-interface/utils2.c (build_unary_op) : Likewise. + (gnat_invariant_expr): Likewise. + * gcc-interface/utils.c (compute_related_constant): Likewise. + (max_size): Fix handling of SAVE_EXPR. + (remove_conversions): Fix formatting. + +2011-10-12 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag. + (DECL_INDUCTION_VAR): New macro. + (SET_DECL_INDUCTION_VAR): Likewise. + * gcc-interface/gigi.h (convert_to_index_type): Declare. + (gnat_invariant_expr): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : If this is a loop + parameter, set DECL_LOOP_PARM_P on it. + * gcc-interface/misc.c (gnat_print_decl) : If DECL_LOOP_PARM_P + is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT. + * gcc-interface/trans.c (gnu_loop_label_stack): Delete. + (struct range_check_info_d): New type. + (struct loop_info_d): Likewise. + (gnu_loop_stack): New stack. + (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference + built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P + is set, do not test DECL_RENAMED_OBJECT. + (push_range_check_info): New function. + (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just + the label. Reference the label and the iteration variable from it. + Build the special induction variable in the unsigned version of the + size type, if it is larger than the base type. And attach it to the + iteration variable if the latter isn't by-ref. In the iteration scheme + case, initialize the invariant conditions in front of the loop if + deemed profitable. Use gnu_loop_stack. + (gnat_to_gnu) : Use gnu_loop_stack. + : Always process the reason. In the range + check and related cases, and if loop unswitching is enabled, compute + invariant conditions and push this information onto the stack. + Do not translate again the condition if it has been already translated. + * gcc-interface/utils.c (record_global_renaming_pointer): Assert that + DECL_LOOP_PARM_P isn't set. + (convert_to_index_type): New function. + * gcc-interface/utils2.c (build_binary_op) : Use it in order + to convert the index from the base index type to sizetype. + (gnat_invariant_expr): New function. + +2011-10-11 Michael Meissner + + * gcc-interface/utils.c (def_builtin_1): Delete old interface with + two parallel arrays to hold standard builtin declarations, and + replace it with a function based interface that can support + creating builtins on the fly in the future. + * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Ditto. + (gnat_to_gnu): Ditto. + +2011-10-07 Eric Botcazou + + PR lto/50492 + * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment. + * gcc-interface/utils.c (global_context): New variable. + (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs + that are either public external or at top level. Use "No" macro. + (end_subprog_body): Call decl_function_context. + (rest_of_subprog_body_compilation): Likewise. + +2011-10-07 Eric Botcazou + + * gcc-interface/gigi.h (gnat_useless_type_conversion): Declare. + (rest_of_subprog_body_compilation): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : For renaming, + test for useless conversions by means of gnat_useless_type_conversion. + * gcc-interface/trans.c: Include bitmap.h and cgraph.h. + (language_function): Add named_ret_val and other_ret_val. + (f_named_ret_val): New macro. + (f_other_ret_val): Likewise. + (gigi): Call rest_of_subprog_body_compilation. + (struct nrv_data): New structure. + (is_nrv_p): New predicate. + (prune_nrv_r): New helper function. + (prune_nrv_in_block): New function. + (finalize_nrv_r): New helper function. + (finalize_nrv): New function. + (return_value_ok_for_nrv_p): New predicate. + (build_return_expr): If optimization is enabled, record candidates for + the Named Return Value optimization. + (build_function_stub): Call rest_of_subprog_body_compilation. + (Subprogram_Body_to_gnu): If optimization is enabled and there are + candidates, finalize the Named Return Value optimization. + Call rest_of_subprog_body_compilation. + (call_to_gnu): At the end, if a return value is needed, simplify the + result before wrapping it up in a COMPOUND_EXPR. + * gcc-interface/utils.c (end_subprog_body): Split into... + (rest_of_subprog_body_compilation): ...this. New function. + (gnat_useless_type_conversion): Likewise. + +2011-10-06 Thomas Quinot + + * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, + exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb, + g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb, + par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb, + sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb, + s-regpat.adb, s-tpopde-vms.ads: Minor reformatting. + * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD. + +2011-10-06 Ed Schonberg + + * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container + references. + +2011-10-06 Matthew Heaney + + * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb + (Dequeue_Only_High_Priority): Protected procedure now implemented. + +2011-10-06 Vincent Celier + + * g-trasym.adb: Replace old implementation with the default + implementation that returns list of addresses as "0x...". + * g-trasym.ads: Update the list of platforms with the full + capability. Indicate that there is a default implementation + for other platforms. + * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove. + * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there + is now a default implementation for all platforms without the full + capability. + +2011-10-06 Robert Dewar + + * a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb, + a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb, + a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code + reorganization (use conditional expressions). + +2011-10-06 Robert Dewar + + * sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for + floating divide by zero. + +2011-10-06 Ed Schonberg + + * sem_ch6.adb: Limited interfaces that are not immutably limited + are OK in return statements. + +2011-09-30 Iain Sandoe + + * gcc-interface/Makefile.in (Darwin): Partial reversion of previous + change to powerpc section. + +2011-09-29 Iain Sandoe + + * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS + across the port. + +2011-09-27 Ed Schonberg + + * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads, + a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads, + a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and + indefinite sets. + * a-coorma.ads: Minor reformmating. + * einfo.ads: Improve the comment describing the + Directly_Designated_Type function. + * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite + ordered maps. + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update + dependencies. + +2011-09-27 Robert Dewar + + * a-comutr.ads: Minor reformatting. + +2011-09-27 Ed Schonberg + + * a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children + iterators to multiway trees. + +2011-09-27 Yannick Moy + + * debug.adb (d.D): New option for strict Alfa mode. + * opt.ads (Strict_Alfa_Mode): New flag to interpret compiler + permissions as strictly as possible. + * sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict + Alfa mode, now, interpret ranges of base types like GNAT does; in + strict mode, simply change the range of the implicit base Itype. + * gnat1drv.adb: Update comments. Set Strict_Alfa_Mode. + +2011-09-27 Robert Dewar + + * exp_ch9.adb: Minor comment fixes. + +2011-09-27 Ed Schonberg + + * a-comutr.adb, a-comutr.ads: Add children iterators on multiway + trees. + +2011-09-27 Eric Botcazou + + * checks.adb (Apply_Scalar_Range_Check): Use Designated_Type + instead of Directly_Designated_Type in the indirect array case. + +2011-09-27 Robert Dewar + + * exp_util.adb, exp_aggr.adb: Minor reformatting. + +2011-09-27 Ed Schonberg + + * sinfo.ads, par-ch3.adb: Minor comment update: aspect specification + on subtype declarations. + * exp_aggr.adb: Minor comment update. + +2011-09-27 Eric Botcazou + + * exp_util.adb (Safe_Prefixed_Reference): Remove always-false + test in the N_Explicit_Dereference case. Fold double logical + negation in the special loop case and conditionalize it on + Variable_Ref being true. + +2011-09-27 Ed Schonberg + + * sem_ch4.adb (Analyze_Selected_Component): If the prefix is a + single protected object and the selector is a discriminant or an + entry family, this is a non-overloaded candidate interpretation, + and possible primitive operations of the type must not be + examined. + +2011-09-27 Arnaud Charlet + + * s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased. + +2011-09-27 Pascal Obry + + * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads, + s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads: + Add dummy definitions for pthread_rwlock_t + and pthread_rwlockattr_t on all POSIX platforms. + * s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock + reference. + (Finalize_Lock): Likewise. + (Write_Lock): Likewise. + (Unlock): Likewise. + +2011-09-27 Tristan Gingold + + * s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for + windows 64. + +2011-09-27 Pascal Obry + + * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads, + s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads, + s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads, + s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads, + s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads, + s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads, + s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads, + s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb, + s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb, + s-taprop-posix.adb: Revert previous changes. + (Lock): Now a record containing the two possible lock + (mutex and read/write) defined in OS_Interface. + * s-taprop-linux.adb (Finalize_Protection): Use r/w lock for + 'R' locking policy. + (Initialize_Protection): Likewise. + (Lock): Likewise. + (Lock_Read_Only): Likewise. + (Unlock): Likewise. + +2011-09-27 Pascal Obry + + * s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as + OS_Interface.pthread_rwlock_t. + +2011-09-27 Robert Dewar + + * exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb, + a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads, + sem_ch5.adb, sem_util.adb: Minor reformatting. + +2011-09-27 Pascal Obry + + * s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock. + (Finalize_Lock)[RW_Lock]: Likewise. + (Write_Lock)[RW_Lock]: Likewise. + (Unlock)[RW_Lock]: Likewise. + (Read_Lock): Define L as RW_Lock (instead of Lock). + * s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New + routine for r/w lock. + (Finalize_Lock)[RW_Lock]: Likewise. + (Write_Lock)[RW_Lock]: Likewise. + (Unlock)[RW_Lock]: Likewise. + (Read_Lock): Define L as RW_Lock (instead of Lock). + + * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb, + s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb + (Initialize_Lock)[RW_Lock]: Same implementation as corresponding + routine for standard lock. + (Finalize_Lock)[RW_Lock]: Likewise. + (Write_Lock)[RW_Lock]: Likewise. + (Unlock)[RW_Lock]: Likewise. + (Read_Lock): Define L as RW_Lock (instead of Lock). + * s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock) + in the record definition. + * s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w + lock for 'R' locking policy. + (Initialize_Protection): Likewise. + (Lock): Likewise. + (Lock_Read_Only): Likewise. + (Unlock): Likewise. + * s-taspri-posix.ads (RW_Lock): New type defined as + OS_Interface.pthread_rwlock_t. + + * s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads, + s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads, + s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads, + s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock. + +2011-09-27 Pascal Obry + + * exp_ch9.adb, s-taspri-posix.ads: Minor reformatting. + +2011-09-27 Pascal Obry + + * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads, + s-osinte-hpux.ads, s-osinte-irix.ads, + s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of + pthread_mutex_t. + (pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t. + * s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t, + pthread_rwlockattr_init, pthread_rwlockattr_destroy, + pthread_rwlockattr_setkind_np, pthread_rwlock_init, + pthread_rwlock_destroy, pthread_rwlock_rdlock, + pthread_rwlock_wrlock, pthread_rwlock_unlock): New. + +2011-09-27 Pascal Obry + + * rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry. + (RE_Id): Add RE_Lock_Read_Only. + (RE_Unit_Table): Likewise. + * sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy + to lift restriction on first character. Handle now the + Name_Concurrent_Readers_Locking where policy character is set to + 'R'. + * snames.ads-tmpl (Name_Concurrent_Readers_Locking): New + constant. + * exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a + read only lock for function in protected object. + * s-taprob.ads (Lock_Read_Only): Remove obsolete comment as + this routine is now used. + +2011-09-26 Rainer Orth + + * s-atocou-x86.adb (Decrement): Use %;. + (Increment): Likewise. + +2011-09-26 Eric Botcazou + + * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the + dereference of the pointer to the storage area. Remove useless type + conversions and factor out common code. + +2011-09-26 Eric Botcazou + + * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local + variable and use it throughout. + : Add 'break' at the end. + : Do not unconditionally convert to the unpadded type as a + first step. Also convert to the unpadded type as a last step. + +2011-09-26 Eric Botcazou + + * gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with + DECL_CHAIN in comment. + * gcc-interface/trans.c (gigi): Likewise. + (Attribute_to_gnu): Likewise. + (build_function_stub): Likewise. + (gnat_to_gnu): Likewise. + * gcc-interface/utils.c (create_subprog_decl): Likewise. + (convert_vms_descriptor64): Likewise. + (convert_vms_descriptor32): Likewise. + +2011-09-26 Eric Botcazou + + * gcc-interface/trans.c (assoc_to_constructor): Minor tweaks. + * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting + issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if + the type of the record is TYPE_READONLY. + +2011-09-26 Eric Botcazou + Robert Dewar + + * sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN + OUT formal parameter which is of an null-exclusion access subtype. + +2011-09-26 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set the flag. + (gnat_to_gnu_param): Likewise. + * gcc-interface/utils.c (convert) : Invoke + maybe_unconstrained_array instead of doing the work manually. + (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag. + * gcc-interface/utils2.c (build_unary_op) : If operand + is a DECL with the flag, set TREE_THIS_NOTRAP on the reference. + (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag. + (gnat_stabilize_reference): Likewise. + +2011-09-26 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro. + (SET_TYPE_NULL_BOUNDS): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set again + TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template. + * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat + pointer types. + * gcc-interface/utils.c (create_var_decl_1): If the object is external, + check that the initializer is a valid constant expression for use in + initializing a static variable. Add missing guard. + (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set. + (convert_to_fat_pointer): In the null fat pointer case, build a valid + pointer for the bounds. + * gcc-interface/utils2.c (compare_fat_pointers): New function. + (build_binary_op) : Call it to compare fat pointers. + +2011-09-25 Eric Botcazou + + * gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine. + * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in + the by-ref case. Do not set TREE_READONLY on a renamed object. Set + TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes. + (Attribute_to_gnu) : Expand the use of the parameter cache + to the indirect case. + * gcc-interface/utils.c (convert) : Preserve + the TREE_THIS_NOTRAP flag. + +2011-09-25 Eric Botcazou + + * gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an + iteration scheme, always generate the do-while form if optimization + is enabled. Use more straightforward test at the end. + +2011-09-25 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use + XNEW instead of xmalloc. Do not build useless pointer type. + : Use XNEW instead of xmalloc. + * gcc-interface/trans.c (gnat_to_gnu) : Tidy. + * gcc-interface/utils2.c (build_unary_op): Remove local variable. + +2011-09-25 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not promote + the alignment if this doesn't prevent BLKmode access to the object. + +2011-09-24 Iain Sandoe + + * gcc-interface/Makefile.in (darwin): Do not issue the + '-flat_namespace' linker flag during Ada build. + * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the + default shared library options. + +2011-09-19 Alexandre Oliva + + * gcc-interface/decl.c (annotate_value): Look up expression for + insertion in the cache at the end. + +2011-09-19 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2011-09-19 Steve Baird + + * snames.ads-tmpl: Move declaration of Name_Annotate into range of + configuration pragma names so that Is_Configuration_Pragma_Name + will return True for Name_Annotate. Make corresponding change in + Pragma_Id enumeration type. This is needed to allow an Annotate + pragma to occur in a configuration pragma file (typically, + a gnat.adc file). + * gnat_ugn.texi: Add Annotate to the list of configuration pragmas. + * gnat_rm.texi: Note that pragma Annotate may be used as a + configuration pragma. + +2011-09-19 Ed Schonberg + + * a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads, + a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees. + +2011-09-19 Yannick Moy + + * exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function + for expansion of set membership. + (Expand_Alfa): Call expansion for N_In and N_Not_In nodes. + * exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure + visible for use in Alfa expansion. + * sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop + variable in Alfa mode. + +2011-09-19 Thomas Quinot + + * s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT. + +2011-09-19 Thomas Quinot + + * exp_ch9.adb: Minor reformatting. + +2011-09-19 Hristian Kirtchev + + * freeze.adb (Build_Renamed_Body): Generic subprograms + instantiations cannot be poperly inlined by the compiler, do + not set the Body_To_Inline attribute in such cases. + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all + inlining-related flags from the generic subprogram declaration. + +2011-09-19 Thomas Quinot + + * exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads + (Build_Stub_Type): Remove, instead copy components from + System.Partition_Interface.RACW_Stub_Type. + (RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine. + (Copy_Component_List): New subprogram. + +2011-09-19 Yannick Moy + + * lib-xref.adb (Generate_Reference): Ignore references to + constants in Standard. + +2011-09-19 Robert Dewar + + * err_vars.ads, errout.ads: Minor reformatting. + +2011-09-19 Robert Dewar + + * aspects.ads (Impl_Defined_Aspects): New array + * lib-writ.adb (No_Dependences): New name for No_Dependence + * restrict.adb (No_Dependences): New name for No_Dependence + (Check_Restriction_No_Specification_Of_Aspect): New + procedure. + (Set_Restriction_No_Specification_Of_Aspect): New procedure + (Restricted_Profile_Result): New variable + (No_Specification_Of_Aspects): New variable + (No_Specification_Of_Aspect_Warning): New variable + * restrict.ads (No_Dependences): New name for No_Dependence + (Check_Restriction_No_Specification_Of_Aspect): New procedure + (Set_Restriction_No_Specification_Of_Aspect): New procedure + * s-rident.ads: Add restriction + No_Implementation_Aspect_Specifications, this is also added to + the No_Implementation_Extensions profile. + * sem_ch13.adb (Analyze_Aspect_Specifications): Check + No_Implementation_Defined_Aspects + (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect + * sem_prag.adb (Analyze_Aspect_Specifications): Check + No_Implementation_Aspects + (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect + * snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name + +2011-09-19 Yannick Moy + + * lib-xref.adb (Generate_Reference): Take into account multiple + renamings for Alfa refs. + +2011-09-19 Thomas Quinot + + * g-socthi-mingw.adb: Minor reformatting. + +2011-09-19 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Set tagged type + expansion to False in mode Alfa + +2011-09-19 Pascal Obry + + * mingw32.h: Remove obsolete code needed for old versions + of MingW. + +2011-09-19 Robert Dewar + + * errout.ads: Minor reformatting. + +2011-09-19 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): When the expression + function is transformed into a declaration and a body, insert + body at the end of the declarative part, to prevent premature + freeze actions, and preserve original specification in the + subprogram declaration. + +2011-09-19 Vincent Celier + + * projects.texi: Minor editing. + +2011-09-19 Robert Dewar + + * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb, + exp_aggr.adb: Minor reformatting. + +2011-09-19 Yannick Moy + + * lib-xref.adb (Generate_Reference): Change entity referenced + to underlying object if any, or else reference to the HEAP. + +2011-09-15 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + +2011-09-15 Robert Dewar + + * tree_io.ads: Minor reformatting. + * a-intnam.ads: Fix bad header. + +2011-09-15 Thomas Quinot + + * a-exexpr-gcc.adb: Minor reformatting. + +2011-09-15 Yannick Moy + + * sem_ch6.adb: Propagate information that an expression function comes + from source (otherwise references to this entity are not stored). + +2011-09-15 Robert Dewar + + * a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb, + a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb, + a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting. + +2011-09-15 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): Code cleanup: + if the expression function is not a completion, create a + new specification for the generated declaration, and keep the + original specification in the generated body. Shorter code also + ensures that proper warnings are generated for unused formals + in all cases. + +2011-09-15 Sergey Rybin + + * tree_io.ads: Update ASIS_Version_Number because of the changes + in the tree structures for expression functions. + +2011-09-15 Arnaud Charlet + + * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads, + s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads, + s-taprop-posix.adb (CLOCK_MONOTONIC): New constant. + (CLOCK_REALTIME): Fix wrong value on some OSes. + * s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC. + +2011-09-11 Eric Botcazou + + * gcc-interface/utils.c (maybe_unconstrained_array): In the reference + to unconstrained array case, deal with each branch of a COND_EXPR. + * gcc-interface/utils2.c (build_allocator): Deal with each branch of + a COND_EXPR in the initializer, if present. + +2011-09-11 Eric Botcazou + + * gcc-interface/decl.c (maybe_pad_type): Do not try to change the form + of an addressable type. + * gcc-interface/trans.c (gnat_gimplify_expr) : New. + Deal with those cases for which creating a temporary is mandatory. + +2011-09-11 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): Use local variable. Make sure + this is a real formal parameter before testing whether it is by ref. + +2011-09-11 Eric Botcazou + + * gcc-interface/gigi.h (build_call_0_expr): Delete. + (build_call_1_expr): Likewise. + (build_call_2_expr): Likewise. + (build_call_n_expr): New prototype. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr. + * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto. + (Handled_Sequence_Of_Statements_to_gnu): Likewise. + (Exception_Handler_to_gnu_zcx): Likewise. + (gnat_to_gnu): Likewise. + (build_binary_op_trapv): Likewise. + * gcc-interface/utils2.c (build_call_0_expr): Delete. + (build_call_1_expr): Likewise. + (build_call_2_expr): Likewise. + (build_call_n_expr): New function. + (build_call_raise): Use build_call_n_expr. + (build_call_raise_range): Likewise. + (build_call_raise_column): Likewise. + (build_call_alloc_dealloc_proc): Likewise. + (maybe_wrap_malloc): Likewise. + (maybe_wrap_free): Likewise. + +2011-09-11 Eric Botcazou + + * gcc-interface/trans.c (build_return_expr): Use void_type_node for + MODIFY_EXPR. + * gcc-interface/utils2.c (build_binary_op) : Assert that + the result type is null if ENABLE_CHECKING. Set operation_type at the + end unconditionally if not set in the previous cases. + Use build2 and void_type_node for MODIFY_EXPR. + (build_allocator): Use NULL_TREE for MODIFY_EXPR. + +2011-09-08 Eric Botcazou + + * gcc-interface/utils.c (unchecked_convert): Use a field of the right + precision when converting to or from an integral type whose precision + is not equal to its size. + +2011-09-08 Iain Sandoe + + * traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8. + +2011-09-07 Iain Sandoe + + * gcc-interface/Makefile.in (darwin): Provide powerpc64 system + implementation. + * system-darwin-ppc64.ads: New file. + +2011-09-06 Iain Sandoe + + * gcc-interface/Makefile.in (gnatlib-shared-darwin): Remove + reference to "-lm". + +2011-09-06 Iain Sandoe + + * gcc-interface/Makefile.in (darwin, SO_OPTS): Provide architecture + size switches to the link phase for shared libs. + +2011-09-06 Iain Sandoe + + * gcc-interface/Makefile.in (x86_64 darwin arch): Adjust + LIBGNAT_TARGET_PAIRS for x86 and x86_64 variants. + +2011-09-06 Arnaud Charlet + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in + (gnattools, regnattools, cross-gnattools, canadian-gnattools, + gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools): + New targets. + (TOOLS_FLAGS_TO_PASS): New. + (../stamp-tools): Reintroduce, to avoid merge conflicts. + +2011-09-06 Robert Dewar + + * sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): New + name for Is_RM_Defined_Unit. Also several fixes to this unit. + +2011-09-06 Robert Dewar + + * impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function. + * s-rident.ads: New restriction No_Implementation_Units + (this restriction is also part of the profile + No_Implementation_Extensions) + * sem_ch10.adb (Analyze_With_Clause): Add check for + No_Implementation_Units restriction. + +2011-09-06 Jerome Guitton + + * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK + on vThreads. + +2011-09-06 Thomas Quinot + + * s-solita.adb: Minor reformatting. + +2011-09-06 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that + is a rewriting of an expression function does not freeze previous + entities. + +2011-09-06 Robert Dewar + + * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case + +2011-09-06 Tristan Gingold + + * gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like + powerpc-wrs-vxworksae. + +2011-09-06 Thomas Quinot + + * s-os_lib.ads (Spawn): Minor documentation clarification, + Success is True for a zero exit status. + +2011-09-06 Ed Schonberg + + * sem_ch5.adb: Add message for common iterator error. + +2011-09-06 Ed Schonberg + + * exp_ch3.adb (Build_Initialization_Call): If the target is a + selected component discriminated by a current instance, replace + the constraint with a reference to the target object, regardless + of whether the context is an init_proc. + +2011-09-06 Robert Dewar + + * exp_attr.adb: Descriptor_Size is never static. + +2011-09-06 Robert Dewar + + * gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric + +2011-09-06 Hristian Kirtchev + + * gnat_rm.texi: Clarify that attribute Descriptor_Size is + non-static. + +2011-09-06 Ed Schonberg + + * sem_res.adb (Resolve): An expression that is the body of an + expression function does not freeze. + +2011-09-06 Matthew Heaney + + * a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb, + a-cuprqu.adb: Changed copyright notice to indicate current + year only. + +2011-09-06 Vincent Celier + + * prj.adb: Minor spelling error fix in comment + * sem_res.adb: Minor reformatting + +2011-09-06 Pascal Obry + + * sysdep.c (winflush_nt): Removed as not needed anymore. + (winflush_95): Likewise. + (winflush_init): Likewise. + (winflush_function): Likewise. + (getc_immediate_common): Remove call to winflush_function. + +2011-09-06 Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the + processing for Descriptor_Size. + * gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size + to account for its broader usage. + * sem_attr.adb (Analyze_Attribute): Change the error detection + circuitry for Descriptor_Size as the attribute is now applicable + to all types. + +2011-09-06 Robert Dewar + + * sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting. + +2011-09-06 Ed Schonberg + + * lib-xref.adb (OK_To_Set_Referenced): A reference to a formal + in a parameter association must not set the Referenced flag on + the formal. + * prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal + +2011-09-06 Hristian Kirtchev + + * gnat_rm.texi: Add a section on attribute Descriptor_Size + +2011-09-06 Arnaud Charlet + + * gcc-interface/Makefile.in (common-tools, gnatmake-re, + gnatlink-re): Speed up by using -j0. + +2011-09-06 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications): Call + Set_Corresponding_Aspect when creating pragma from aspect. + (Add_Predicates): Use new field Corresponding_Aspect. + * sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect + name when present, for the purpose of issuing error messages; + remove local procedure Error_Pragma_Arg_Alternate_Name. + * sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in + N_Pragma node. + (From_Dynamic_Predicate, From_Static_Predicate): Remove fields from + N_Pragma node. + +2011-09-06 Robert Dewar + + * checks.adb, s-except.ads, g-socket.adb: Minor reformatting. + +2011-09-06 Hristian Kirtchev + + * exp_ch6.adb (Build_Heap_Allocator): Add new + local variable Desig_Typ. Code and comment reformatting. Add + machinery to ensure that the allocation uses a fat pointer when + the type of the return object is a constrained array and the + function return type is an unconstrained array. + +2011-09-06 Vincent Celier + + * make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal + parameters in subprograms. + +2011-09-06 Arnaud Charlet + + * s-taprop-mingw.adb (Finalize_TCB): Fix typo. + +2011-09-06 Thomas Quinot + + * s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb + (System.Tasking.Primitive_Operations.Specific.Delete): Remove + subprogram. + (System.Tasking.Primitive_Operations.Specific.Set): If argument + is null, destroy task specific data, to make API consistent with + other platforms, and thus compatible with the shared version + of s-tpoaal.adb. + (System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB): + Document the above assumption. + +2011-09-06 Ed Schonberg + + * exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized + variable for type of return value when return type is + unconstrained and context is an assignment. + +2011-09-06 Ed Schonberg + + * sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of + class-wide operation if expansion is not enabled. + +2011-09-06 Eric Botcazou + + * checks.adb (Apply_Scalar_Range_Check): Deal with access + type prefix. + +2011-09-06 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications, case + Aspect_Invariant): Do not issue error at this point on illegal + pragma placement, as this is checked later on when analyzing + the corresponding pragma. + * sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure + similar to Error_Pragma_Arg, except the source name of the + aspect/pragma to use in warnings may be equal to parameter + Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error + message to distinguish source name of pragma/aspect, and whether + the illegality resides in the type being public, or being private + without a public declaration + +2011-09-06 Thomas Quinot + + * g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap + size check (fd_set is implemented differently on that platform). + +2011-09-06 Thomas Quinot + + * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb, + s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb, + s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads, + s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb + (ATCB_Allocation): New subpackage of + System.Tasking.Primitive_Operations, shared across all targets + with full tasking runtime. + (ATCB_Allocation.New_ATCB): Moved there (from target specific + s-taprop bodies). + (ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB, + taking care of establishing a local temporary ATCB if the one + being deallocated is Self, to avoid a reference to the freed + ATCB in Abort_Undefer. + +2011-09-06 Thomas Quinot + + * s-tassta.adb, s-taskin.ads (Free_Task): If the task is not + terminated, mark it for deallocation upon termination. + (Terminate_Task): Call Free_Task again if the task is marked + for automatic deallocation upon termination. + +2011-09-06 Robert Dewar + + * a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads, + a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads, + a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads, + a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads, + a-intnam-solaris.ads, a-intnam-tru64.ads, + a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads, + cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined + * einfo.ads, einfo.adb (Is_Implementation_Defined): New flag + * par-prag.adb: Add dummy entry for pragma Implementation_Defined + * s-rident.ads: Add new restriction No_Implementation_Identifiers + Add new profile No_Implementation_Extensions + * sem_prag.adb: Implement pragma Implementation_Defined Implement + profile No_Implementation_Extensions + * sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check): + Check violation of restriction No_Implementation_Identifiers + * snames.ads-tmpl: Add entries for pragma Implementation_Defined + Add entry for Name_No_Implementation_Extensions + +2011-09-06 Robert Dewar + + * impunit.ads: Minor reformatting. + +2011-09-06 Robert Dewar + + * ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting. + +2011-09-06 Pascal Obry + + * s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_t + types. + +2011-09-06 Robert Dewar + + * g-socket.adb: Minor reformatting + +2011-09-06 Javier Miranda + + * ali.adb (Scan_ALI): Add missing support to load references of + entities imported from other languages. + * ali.ads (Xref_Record): Adding new fields to store the language and + name of an imported entity. + * lib-xref.adb (Output_Import_Export_Info): Fix typo + in comment. + +2011-09-06 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant + is allowed on a full type declaration if it is the completion of + a private declarations. + * sem_ch13.adb (Analyze_Aspect_Specifications): An invariant + aspect is allowed on a full type declaration in the private part + of a package. + +2011-09-06 Robert Dewar + + * sem_ch8.ads: Minor reformatting + +2011-09-06 Thomas Quinot + + * s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set): + Guard against socket values that are not in [0;FD_SETSIZE[ + +2011-09-06 Robert Dewar + + * s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minor + reformatting. + +2011-09-06 Arnaud Charlet + + * s-linux-alpha.ads: Minor reformatting + * s-oscons-tmplt.c: Fix generated comments in s-oscons template. + Use sizeof instead of corresponding C defines in s-oscons template. + +2011-09-06 Vadim Godunko + + * a-convec.ads, a-iteint.ads: Minor reformatting. + +2011-09-06 Vincent Celier + + * projects.texi: Add menus and @node lines. + +2011-09-06 Ed Schonberg + + * exp_ch6.adb (Expand_Inlined_Call): Handle properly the case + where the return type is an unconstrained array and the context + is an assignment. Optimize the case when the target of the + assignment is a selected component. + +2011-09-06 Arnaud Charlet + + * s-solita.adb: Update comments. + +2011-09-06 Pascal Obry + + * s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads, + s-linux-sparc.ads: Remove hard coded and now wrong definitions. + * s-oscons-tmplt.c: Add support for generating pthread related + types size on GNU/Linux as done for Darwin. + * s-osinte-linux.ads: Use s-oscons to define the pthread types. + +2011-09-06 Robert Dewar + + * exp_ch6.adb: Fix minor typo. + +2011-09-06 Hristian Kirtchev + + * exp_ch7.adb: Remove with and use clauses for Get_Targ. + (Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up. + (Double_Size_Of): Alphabetized. Update the comment on usage. + (Make_Finalize_Address_Stmts): Update comments and reformat code. + (Nearest_Multiple_Rounded_Up): New routine. + (Size_Of): Update comment on usage. The generated expression now + accounts for alignment gaps by rounding the size of the type to the + nearest multiple rounded up of the type's alignment. + +2011-09-06 Robert Dewar + + * exp_ch7.adb, g-comlin.adb: Minor reformatting. + +2011-09-06 Steve Baird + + * exp_ch4.adb (Expand_Allocator_Expression): Look through + derived subprograms in checking for presence of an + Extra_Accessibility_Of_Result formal parameter. + * exp_ch6.adb (Expand_Call): Look through derived subprograms in + checking for presence of an Extra_Accessibility_Of_Result formal + parameter. + (Expand_Call.Add_Actual_Parameter): Fix a bug in the + case where the Parameter_Associatiations attribute is already set, + but set to an empty list. + (Needs_Result_Accessibility_Level): + Unconditionally return False. This is a temporary + change, disabling the Extra_Accessibility_Of_Result + mechanism. + (Expand_Simple_Function_Return): Check for + Extra_Accessibility_Of_Result parameter's presence instead of + testing Ada_Version when generating a runtime accessibility + check which makes use of the parameter. + +2011-09-06 Ed Schonberg + + * exp_ch4.adb (Expand_N_Case_Expression): Actions created for the + expression in a given case alternative must be attached to the + statement list of the ccrresponding case statement alternative + They cannot be propagated ahead of the case statement, because + the validity of the expression that generated the action may + hold only for that alternative. + +2011-09-06 Hristian Kirtchev + + * exp_ch7.adb: Remove with and use clauses for Get_Targ. + (Alignment_Of): Remove the code for strict alignment targets. + (Double_Alignment_Of): Removed. + (Double_Size_Of): New routine. + (Make_Finalize_Address_Stmts): Change the + calculation of the dope's size. Update relevant comments. + (Size_Of): New routine. + +2011-09-06 Steve Baird + + * einfo.ads (Extra_Accessibility): Update associated comment to use + the term "present" correctly ("present" just means that it is not + an error to query the value of the attribute - it does not imply + that the value must be non-null). + (Extra_Constrained): Ditto. + (Is_Visible_Formal): Ditto. + (Extra_Accessibility_Of_Result) Ditto; also add Inline pragma. + (Set_Extra_Accessibility_Of_Result): Add Inline pragma. + * exp_ch4.adb (Expand_Allocator_Expression): Improve a comment. + * exp_ch6.adb (Expand_Call): The callee may require an + Extra_Accessibility_Of_Result actual parameter even if Ada_Version + < Ada_2012. This can occur if the callee is exported from a Gnat + runtimes unit. Also improve a comment. + +2011-09-06 Hristian Kirtchev + + * exp_ch7.adb: Add with and use clauses for Get_Targ. + (Alignment_Of): Rename formal parameter Some_Typ + to Typ, update related comment. Use the allocator alignment on + strict alignment targets such as SPARC. + (Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, update + related comment. + +2011-09-06 Gary Dismukes + + * sem_ch9.adb (Check_Interfaces): Test + Is_Limited_Type rather than Is_Limited_Record when checking that + the partial view of a synchronized full view must be limited. + +2011-09-06 Emmanuel Briot + + * g-comlin.adb (Free): Fix memory leak. + +2011-09-06 Robert Dewar + + * sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization. + +2011-09-06 Steve Baird + + * einfo.ads (Extra_Accessibility_Of_Result): New function; in the + (Ada2012) cases described in AI05-0234 where the accessibility + level of a function result is "determined by the point of + call", an implicit parameter representing that accessibility + level is passed in. Extra_Accessibilty_Of_Result yields this + additional formal parameter. Extra_Accessibility_Of_Result + is analogous to the existing Extra_Accessibility + function used in the implementation of access parameters. + (Set_Extra_Accessibility_Of_Result): New procedure; sets + Extra_Accessibility_Of_Result attribute. + * einfo.adb (Extra_Accessibility_Of_Result): New function. + (Set_Extra_Accessibility_Of_Result): New procedure. + (Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute. + * sem_util.adb (Dynamic_Accessibility_Level): Set Etype of + an accessibility level literal to Natural; introduce a nested + function, Make_Level_Literal, to do this. + * exp_ch6.ads (Needs_Result_Accessibility_Level): New function; + determines whether a given function (or access-to-function + type) needs to have an implicitly-declared accessibility-level + parameter added to its profile. + (Add_Extra_Actual_To_Call): Export an existing procedure which was + previously declared in the body of Exp_Ch6. + * exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving + it to exp_ch6.ads. + (Has_Unconstrained_Access_Discriminants): New Function; a + predicate on subtype entities which returns True if the given + subtype is unconstrained and has one or more access discriminants. + (Expand_Call): When expanding a call to a function which takes an + Extra_Accessibility_Of_Result parameter, pass in the appropriate + actual parameter value. In the case of a function call which is + used to initialize an allocator, this may not be possible because + the Etype of the allocator may not have been set yet. In this + case, we defer passing in the parameter and handle it later in + Expand_Allocator_Expression. + (Expand_Simple_Function_Return): When returning from a function which + returns an unconstrained subtype having at least one access + discriminant, generate the accessibility check needed to ensure that + the function result will not outlive any objects designated by its + discriminants. + (Needs_Result_Accessibility_Level): New function; see exp_ch6.ads + description. + * exp_ch4.adb (Expand_Allocator_Expression): When a function call + is used to initialize an allocator, we may need to pass in "the + accessibility level determined by the point of call" (AI05-0234) + to the function. Expand_Call, where such actual parameters are + usually generated, is too early in this case because the Etype of + the allocator (which is used in determining the level to be passed + in) may not have been set yet when Expand_Call executes. Instead, + we generate code to pass in the appropriate actual parameter + in Expand_Allocator_Expression. + * sem_ch6.adb (Create_Extra_Formals): Create + the new Extra_Accessibility_Of_Result formal if + Needs_Result_Accessibility_Level returns True. This includes the + introduction of a nested procedure, Check_Against_Result_Level. + +2011-09-06 Arnaud Charlet + + * gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicate + declaration. + +2011-09-05 Hristian Kirtchev + + * s-finmas.adb (Set_Finalize_Address): Explain the reason + for the synchronization. Move the test for null from + s-stposu.Allocate_Any_Controlled to this routine since the check + needs to be protected too. + (Set_Heterogeneous_Finalize_Address): Explain the reason for the + synchronization code. + * s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment + explaining the context in which this routine is used. + * s-stposu.adb (Allocate_Any_Controlled): Move the test for null + to s-finmas.Set_Finalize_Address. + +2011-09-05 Ed Schonberg + + * einfo.ads: Document that itypes have no parent field. + +2011-09-05 Robert Dewar + + * rtsfind.adb (Check_CRT): Check for overloaded entity + * rtsfind.ads: Document that entities to be found by rtsfind + cannot be overloaded + * s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb + (Lock_Entries_With_Status): New name for Lock_Entries with two + arguments (changed to meet rtsfind no overloading rule). + +2011-09-05 Hristian Kirtchev + + * s-finmas.adb (Set_Finalize_Address (Address, + Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address. + (Set_Finalize_Address (in out Finalization_Master, + Finalize_Address_Ptr): Add synchronization code. + * s-finmas.ads (Set_Finalize_Address (Address, + Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address. + * s-stposu.adb (Allocate_Any_Controlled): Update the call to + Set_Finalize_Address for the heterogeneous case. + +2011-09-05 Ed Schonberg + + * sem_ch3.adb: Undo previous change, not suitable after all. + +2011-09-05 Robert Dewar + + * einfo.ads: Minor comment clarification. + +2011-09-05 Hristian Kirtchev + + * exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine + no longer needs to search through the entities of the return + statement scope to find the _chain. + * sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6. + (Analyze_Block_Statement): Add local variable + Is_BIP_Return_Statement. Add machinery to install all entities + produced by the expansion of the return object declaration. + (Install_Return_Entities): New routine. + * sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec. + +2011-09-05 Ed Schonberg + + * sem_ch10.adb (Analyze_Context): Apply simple fixup if context + of subunit is incomplete. + (Analyze_Proper_Body): If parent spec is not available, do not + attempt analysis. + +2011-09-05 Ed Schonberg + + * sem_disp.adb (Find_Controlling_Arg): Add checks for + interface type conversions, that are expanded into dereferences. + +2011-09-05 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): + Examine the parameter and return profile of a subprogram and swap + any incomplete types coming from a limited context with their + corresponding non-limited views. + (Exchange_Limited_Views): New routine. + +2011-09-05 Ed Schonberg + + * sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parent + of internal entity to the subtype declaration, so that when + entities are subsequently exchanged in a package body, the tree + remains properly formatted for ASIS. + +2011-09-05 Johannes Kanig + + * g-comlin.adb (Set_Usage): Additional optional argument to set help + message. + (Display_Help): display the user given help message, if available. + +2011-09-05 Ed Schonberg + + * sem_ch3.adb (OK_For_Limited_Init_In_05): The expression + is legal if the original node is an identifier that is a + parameterless function call. + +2011-09-05 Pascal Obry + + * prj-nmsc.adb: Minor reformatting. + Add support for standalone aggregate library. + (Check_Stand_Alone_Library): Handle standalone aggregate library. + * projects.texi: Fix documentation for aggregate library projects. + +2011-09-05 Robert Dewar + + * sem_ch6.adb: Minor reformatting. + +2011-09-05 Matthew Gingell + + * s-tassta.adb (Task_Wrapper): Ensure that we don't try to write the + stack guard page on PPC Linux. This patch ensures the 64K guard page at + the bottom of the stack is not overwritten. + +2011-09-05 Thomas Quinot + + * exp_intr.adb, s-tasini.adb: Minor reformatting. + +2011-09-05 Ed Schonberg + + * sem_ch3.adb (Access_Definition): If an access type declaration + appears in a child unit, the scope of whatever anonymous type + may be generated is the child unit itself. + +2011-09-05 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): Do not set + Comes_From_Source on rewritten body. + (Analyze_Subprogram_Body_Helper): Check that the original node for + the body comes from source, when determining whether expansion + of a protected operation is needed. + +2011-09-05 Ed Schonberg + + * exp_aggr.adb (Replace_Type): If the target of the assignment is + a selected component and the right-hand side is a self-referential + access, the proper prefix of the rewritten attribute is a copy + of the left-hand side, not of its prefix. + +2011-09-05 Robert Dewar + + * sem_ch5.adb: Minor reformatting. + * sem_ch3.adb: Minor code clean up. + +2011-09-05 Jose Ruiz + + * exp_ch9.adb (Make_Initialize_Protection): The fact that + restriction No_Dynamic_Attachment is in effect or not should + not influence the default priority associated to a protected + object. With this change, when the restriction is in effect (as + is the case for the Ravenscar profile) the default priority of + a protected object with an interrupt handler is in the range of + interrupt priorities (Default_Interrupt_Priority) as required + by D.3(10). + +2011-09-05 Arnaud Charlet + + * a-iteint.ads: Fix header. + +2011-09-05 Vincent Celier + + * prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always ends + with a directory separator to avoid output such as: + "/path/to/objauto.cgpr" has been deleted. + +2011-09-05 Robert Dewar + + * sem_ch3.adb: Minor reformatting. + +2011-09-05 Ed Schonberg + + * sem_ch5.adb: Better error message. + +2011-09-05 Hristian Kirtchev + + * exp_aggr.adb: Add with and use clause for Exp_Ch6. + (Expand_Array_Aggregate): Detect a special case of an aggregate + which contains tasks in the context of an unexpanded return + statement of a build-in-place function. + * exp_ch6.adb: Add with and use clause for Exp_Aggr. + (Expand_N_Extended_Return_Statement): Detect a delayed aggregate + which contains tasks and expand it now that the original simple + return statement has been rewritten. + * exp_ch9.adb (Build_Activation_Chain_Entity): Code + reformatting. Do not create a chain for an extended return + statement if one is already available. + (Has_Activation_Chain): New routine. + +2011-09-05 Marc Sango + + * sem_ch3.adb (Analyze_Object_Declaration): Remove + the wrong test and add the correct test to detect the violation + of illegal use of unconstrained string type in SPARK mode. + +2011-09-05 Ed Schonberg + + * sem_ch5.adb (Analyze_Iteration_Specification): Improve error + message on an iterator over an array. + +2011-09-05 Robert Dewar + + * lib-xref-alfa.adb: Minor reformatting. + +2011-09-05 Robert Dewar + + * sem_ch3.adb, sem_res.adb, par.adb, par-ch6.adb, g-comlin.adb, + exp_ch6.adb, lib-xref-alfa.adb: Minor reformatting. + +2011-09-05 Gary Dismukes + + * exp_ch7.adb, exp_ch6.adb: Minor reformatting. + +2011-09-05 Johannes Kanig + + * lib-xref-alfa.adb: Update comments. + +2011-09-05 Thomas Quinot + + * sem_res.adb: Minor reformatting + +2011-09-05 Ed Schonberg + + * exp_ch6.adb (Build_In_Place_Formal): If extra formals are not + present, create them now. Needed in case the return type was + a limited view in the function declaration. + (Make_Build_In_Place_Call_In_Allocator): If return type contains + tasks, build the activation chain for it. Pass a reference to + the Master_Id in call to Add_Task_Actuals_To_Build_In_Place call. + * exp_ch7.adb (Make_Set_Finalize_Address_Call): Clean up interface + with build_in_place calls. + * sem_ch9.adb (Analyze_Task_Type_Declaration): If partial view was + incomplete, inatialize its Corresponding_Record_Type component. + * sem_ch10.adb (Build_Chain): Initialize Private_Dependents field + of limited views. + +2011-09-05 Johannes Kanig + + * lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effect + information. + +2011-09-05 Ed Schonberg + + * par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogram + appears within a package specification and the token after "IS" + is not a parenthesis, assume that this is an unparenthesized + expression function, even if the token appears in a line by + itself. + * par.adb: Clarify use of Labl field of scope stack in error + recovery. + +2011-09-05 Bob Duff + + * sem_res.adb (Resolve_Intrinsic_Operator): Use unchecked + conversions instead of normal type conversions in all cases where a + type conversion would be illegal. In particular, use unchecked + conversions when the operand types are private. + +2011-09-05 Johannes Kanig + + * lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects on + objects of task type or protected type. + +2011-09-05 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): If the expression + function comes from source, indicate that so does its rewriting, + so it is compatible with any subsequent expansion of the + subprogram body (e.g. when it is a protected operation). + * sem_ch4.adb: minor reformatting + +2011-09-05 Hristian Kirtchev + + * lib.adb (Check_Same_Extended_Unit): Comment rewriting. Use + Get_Source_Unit rather than Get_Code_Unit as instantiation unfolding + may lead to wrong ancestor package in the case of instantiated subunit + bodies. If a subunit is instantiated, follow the chain of instantiations + rather than the stub structure. + +2011-09-02 Robert Dewar + + * sem_ch4.adb, sem_ch6.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-09-02 Marc Sango + + * sem_ch3.adb (Analyze_Object_Declaration): Change + comment and add additional check to differentiate constant of + type string from others unconstrained type. + +2011-09-02 Ed Schonberg + + * sinfo.ads, sinfo.adb: New semantic attribute Premature_Use, + present in incomplete type declarations to refine the error + message the full declaration is in the same unit. + * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of + an incomplete type, set the Premature_Use for additional message. + * sem_ch3.adb (Find_Type_Name): If partial view is incomplete + and Premature_Use is set, place additional information at the + point of premature use. + +2011-09-02 Bob Duff + + * sem_ch6.adb: (Check_Post_State): Suppress warning + "postcondition refers only to pre-state" when the expression has not + yet been analyzed, because it causes false alarms. This can happen when + the postcondition contains a quantified expression, because those are + analyzed later. This is a temporary/partial fix. + (Process_Post_Conditions): Minor: change wording of warning. + +2011-09-02 Marc Sango + + * sem_ch3.adb (Analyze_Object_Declaration): Detect the violation of + illegal use of unconstrained string type in SPARK mode. + * sem_res.adb (Analyze_Operator_Symbol): Set the + right place where the string operand of concatenation should be + violate in SPARK mode. + +2011-09-02 Robert Dewar + + * sem_prag.adb, sem_util.adb, sem_ch6.adb, prj-nmsc.adb, + exp_ch3.adb: Minor reformatting. + +2011-09-02 Vincent Celier + + * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Declare "gcc" + as the compiler driver so Is_Compilable returns True for sources. + * prj-nmsc.adb (Override_Kind): When Kind is Sep, set the source + for the body. + +2011-09-02 Ed Schonberg + + * sem_prag.adb (Analyze_PPC_In_Decl_Part): for a class-wide + condition, a reference to a controlling formal must be interpreted + as having the class-wide type (or an access to such) so that the + inherited condition can be properly applied to any overriding + operation (see ARM12 6.6.1 (7)). + +2011-09-02 Tristan Gingold + + * init.c (__gnat_is_vms_v7): Fix case and add prototype + for LIB$GETSYI. + +2011-09-02 Javier Miranda + + * exp_ch3.adb (Expand_N_Object_Declaration): Do not copy the + initializing expression of a class-wide interface object declaration + if its type is limited. + +2011-09-02 Johannes Kanig + + * sem_util.adb (Unique_Name): To obtain a unique name for enumeration + literals, take into account the type name; the type is *not* + the scope for an enumeration literal. + +2011-09-02 Ed Schonberg + + * sem_ch6.adb (Check_Overriding_Indicator): add special check + to reject an overriding indicator on a user-defined Adjust + subprogram for a limited controlled type. + +2011-09-02 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): add missing call to Resolve + for an actual that is a function call returning an unconstrained + limited controlled type. + +2011-09-02 Tristan Gingold + + * g-socthi-vms.adb (c_sendmsg, c_recvmsg): Use unpacked msg if on vms 7 + +2011-09-02 Johannes Kanig + + * alfa.ads (Name_Of_Heap_Variable): Change value of the HEAP variable + from "HEAP" to __HEAP Change comment that refers to that variable + * put_alfa.adb: Change comment that refers to that variable + +2011-09-02 Robert Dewar + + * exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting. + +2011-09-02 Hristian Kirtchev + + * exp_util.adb (Extract_Renamed_Object): Renamed to + Find_Renamed_Object. This routine has been reimplemented and now uses + tree traversal to locate a renamed object. + (Is_Aliased): Replace call to Extract_Renamed_Object with + Find_Renamed_Object. + +2011-09-02 Tristan Gingold + + * init.c: (__gnat_is_vms_v7): New function. + +2011-09-02 Olivier Hainque + + * tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on frames + that have a misaligned backchain, necessarily bogus. + +2011-09-02 Hristian Kirtchev + + * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not create + TSS routine Finalize_Address when compiling in Alfa mode. + (Expand_Freeze_Record_Type): Do not create TSS routine + Finalize_Address when compiling in Alfa mode. + * exp_ch4.adb (Expand_Allocator_Expression): Do not produce a + call to Set_Finalize_Address in Alfa mode because Finalize_Address is + not built. + (Expand_N_Allocator): Do not produce a call to + Set_Finalize_Address in Alfa mode because Finalize_Address is not built. + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do not + produce a call to primitive Set_Finalize_Address in Alfa mode because + Finalize_Address is not built. + * exp_ch7.adb (Build_Finalization_Master): Do not create + finalization masters in Afa mode since they are not needed. + (Build_Finalizer): Do not create scope and library-level + finalizers in Alfa mode since they are not needed. + * exp_util.adb (Build_Allocate_Deallocate_Proc): Do not expand + "new" and "free" when applied to controlled objects in Alfa mode since + this is not needed. + +2011-09-02 Vincent Celier + + * prj-nmsc.db: (Check_Stand_Alone_Library): For SALs, allow + only library names with the syntax of Ada identifiers, to avoid errors + when compiling the binder generated files. + * projects.texi: Document restriction on SAL library names + +2011-09-02 Thomas Quinot + + * a-chtgbo.adb: Minor comment fix. + +2011-09-02 Robert Dewar + + * lib-xref.adb: Minor reformatting + +2011-09-02 Vincent Celier + + * bindusg.adb, clean.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb, + gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, makeusg.adb: Add + --version and --help in usage. + * switch.ads, switch.adb (Display_Usage_Version_And_Help): New procedure + +2011-09-02 Bob Duff + + * lib-xref.adb: (Hash): Avoid use of 'Mod attribute, because old + compilers don't understand it. + +2011-09-02 Gary Dismukes + + * exp_attr.adb (Expand_N_Attribute_Reference): Pass the + underlying subtype rather than its base type on the call to + Build_Record_Or_Elementary_Input_Function, so that any + constraints on a discriminated subtype will be available for + doing the check required by AI05-0192. + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): + If the prefix subtype of the 'Input attribute is a constrained + discriminated subtype, then check each constrained discriminant value + against the corresponding value read from the stream. + +2011-09-02 Yannick Moy + + * usage.adb, warnsw.adb, sem_ch6.adb, opt.ads: Disable by default + warnings on suspicious contracts, and enable them with -gnatwa. + +2011-09-02 Robert Dewar + + * exp_util.adb, exp_ch9.adb, sem_attr.adb, sem_ch6.adb: Minor + reformatting. + +2011-09-02 Hristian Kirtchev + + * exp_ch9.adb (Install_Private_Data_Declarations): Add guards + which ensure that restriction No_Dynamic_Attachment has not been + violated. + (Make_Initialize_Protection): Protected types with attach or + interrupt handlers must not violate restriction No_Dynamic_Attachment. + * exp_util.adb (Corresponding_Runtime_Package): Add a guard + which ensures that restriction No_Dynamic_Attachment has not been + violated. + * sem_attr.adb: (Eval_Attribute): Transform + VAX_Float_Type'First and 'Last into references to + the temporaries which store the corresponding bounds. The + transformation is needed since the back end cannot evaluate + 'First and 'Last on VAX. + (Is_VAX_Float): New routine. + +2011-09-02 Ed Schonberg + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): If the + generic unit is not intrinsic and has an explicit convention, + the instance inherits it. + +2011-09-02 Robert Dewar + + * prj-dect.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, prj-tree.adb, + prj.adb, prj.ads, sem_ch5.adb: Minor reformatting. + +2011-09-02 Thomas Quinot + + * sem_attr.adb (Analyze_Attribute, case Unrestriced_Access): + Guard against a prefix that is an N_Has_Entity but has no + associated entity. + +2011-09-02 Yannick Moy + + * lib-xref-alfa.adb (Is_Alfa_Reference): Ignore IN parameters in Alfa + references. + +2011-09-02 Yannick Moy + + * opt.ads (Warn_On_Suspicious_Contract): New warning flag. + * sem_ch3.adb (Analyze_Declarations): Call checker for suspicious + contracts. + * sem_ch6.adb, sem_ch6.ads (Check_Subprogram_Contract): New + procedure looking for suspicious postconditions. + * usage.adb (Usage): New options -gnatw.t and -gnatw.T. + * warnsw.adb (Set_Dot_Warning_Switch): Take into account new + options -gnatw.t and -gnatw.T. + +2011-09-02 Pascal Obry + + * prj.adb: Minor code refactoring. Move check for null project in + Project_Changed. + * projects.texi: Fix minor typos. + +2011-09-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): If the domain + of iteration is an expression, its value must be captured in a + renaming declaration, so that modification of the elements is + propagated to the original container. + +2011-09-02 Pascal Obry + + * prj-proc.adb, prj.adb, makeutl.adb, makeutl.ads, prj-dect.adb, + prj-nmsc.adb, prj-util.adb, prj-conf.adb, prj-env.adb, + prj-tree.adb: Minor reformatting and style fixes. + +2011-09-02 Robert Dewar + + * s-rident.ads: Add new restriction No_Implicit_Aliasing + * sem_attr.adb: (Analyze_Access_Attribute): Deal with + No_Implicit_Aliasing + (Analyze_Attribute, case Address): ditto + (Analyze_Attribute, case Unrestricted_Access): ditto + * sem_util.ads, sem_util.adb: (Is_Aliased_View): Handle + No_Implicit_Aliasing restriction. + * gnat_rm.texi: Add documentation for No_Implicit_Aliasing + +2011-09-02 Ed Schonberg + + * exp_util.adb: (Possible_Bit_Aligned_Object): If the object + is an unchecked conversion, apply test to its expression. + +2011-09-02 Javier Miranda + + * sem_ch3.adb (Check_Abstract_Overriding): When + traversing the chain of aliased subprograms avoid reporting a + redundant error on the current entity. + +2011-09-02 Sergey Rybin + + * gnat_ugn.texi: Minor clean up. + +2011-09-02 Bob Duff + + * s-htable.adb (Set_If_Not_Present): Use renaming + instead of ":=", because the type Key is limited in the generic (even + if not in the instances). + +2011-09-02 Robert Dewar + + * exp_util.adb, sem_ch10.adb, sem_attr.adb, s-htable.adb, + g-comlin.adb, g-comlin.ads, lib-xref-alfa.adb, lib-xref.adb: Minor + reformatting. + +2011-09-02 Hristian Kirtchev + + * sem_ch3.adb: (Set_Anonymous_Type): Associate the itype of an + inherited component with the enclosing derived type. Code reformatting. + +2011-09-02 Gary Dismukes + + * checks.adb: (Determine_Range): Add test of OK1 to prevent the early + return done when overflow checks are enabled, since comparisons against + Lor and Hir should not be done when OK1 is False. + +2011-09-02 Gary Dismukes + + * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): + Add new formal Master_Exp. When present, add that expression to the + call as an extra actual. + (Make_Build_In_Place_Call_In_Object_Declaration): Add variable + Fmaster_Actual and in the case of a BIP call initializing a return + object of an enclosing BIP function set it to a + new reference to the implicit finalization master + formal of the enclosing function. Fmaster_Actual is + then passed to the new formal Master_Exp on the call to + Add_Finalization_Master_Actual_To_Build_ In_Place_Call. Move + initializations of Enclosing_Func to its declaration. + +2011-09-02 Thomas Quinot + + * csets.ads: Minor reformatting + +2011-09-02 Hristian Kirtchev + + * exp_aggr.adb: (Get_Constraint_Association): Add code to retrieve + the full view of a private type coming from an instantiation. + * exp_ch4.adb: (Current_Anonymous_Master): Reimplement the search + loop to iterate over the declarations rather than use the + First_Entity / Next_Entity scheme. + +2011-09-02 Ed Schonberg + + * sem_attr.adb: (Analyze_Attribute, case 'Range): when expanding + X'range (N) into X'First (N) .. X'Last (N), do not share the + dimension indicator N, if present. Even though it is a static + constant, its source location may be modified when printing + expanded code under -gnatDL, and node sharing will lead to chaos + in Sprint on large files, by generating a sloc value that does + not correspond to any source file. + +2011-09-02 Bob Duff + + * einfo.adb: (Has_Xref_Entry): Do not call + Implementation_Base_Type. Lib.Xref has been + rewritten to avoid the need for it, and it was costly. + * s-htable.ads,s-htable.adb: (Present,Set_If_Not_Present): New + functions in support of efficient xref. + * lib-xref-alfa.adb: Misc changes related to Key component of + type Xref_Entry. + * lib-xref.adb: (Add_Entry,etc): Speed improvement. + (New_Entry): Call Implementation_Base_Type, because Has_Xref_Entry + no longer does. This is the one place where it is needed. + +2011-09-02 Johannes Kanig + + * g-comlin.adb (Getopt): New optional argument Concatenate to have + similar interface as the other Getopt function. + +2011-09-02 Hristian Kirtchev + + * exp_ch4.adb: (Expand_Allocator_Expression): Do not generate + a call to Set_Finalize_Address if there is no allocator available. + * exp_util.adb: (Build_Allocate_Deallocate_Proc): Account for + a case of allocator expansion where the allocator is not expanded but + needs a custom allocate routine. Code reformatting. + (Is_Finalizable_Transient): Remove local variables Has_Rens and + Ren_Obj. Code reformatting. + (Is_Renamed): Renamed to Is_Aliased. Add code to detect aliasing + through the use of 'reference. + * sem_ch4.adb: (Analyze_Allocator): Detect allocators generated + as part of build-in-place expansion. They are intentionally marked as + coming from source, but their parents are not. + +2011-09-02 Ed Schonberg + + * sem_ch10.adb (Analyze_With_Clause): If the library unit + is the generated subprogram declaration for a child unit body + that acts as spec, use the original body in the with_clause, + to prevent binding errors. + +2011-09-02 Vincent Celier + + * gnat_ugn.texi: Adapt documentation of -gnateInnn to new VMS + qualifier /MULTI_UNIT_INDEX= + +2011-09-02 Johannes Kanig + + * g-comlin.adb (Getopt): Return when switch is dealt with automatically, + instead of calling the callback function + +2011-09-02 Robert Dewar + + * prj-proc.adb, prj.ads, sem_util.adb, s-taprop-linux.adb, + prj-nmsc.adb, prj-util.ads, prj-env.adb: Minor reformatting. + +2011-09-02 Vincent Celier + + * prj-nmsc.adb: (Find_Sources): When the list of sources is + explicitly declared in an extending project, do not warn if a source + for an inherited naming exception is not found. + +2011-09-02 Gary Dismukes + + * exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False if + expansion is inactive. + +2011-09-02 Ed Schonberg + + * sem_util.adb (Note_Possible_Modification): If the entity + being modified is the renaming generated for an Ada2012 iterator + element, the enclosing container or array is modified as well. + +2011-09-02 Jose Ruiz + + * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB, + Initialize): Define and initialize the + mutex attributes and condition variable attributes locally. + +2011-09-02 Vincent Celier + + * prj-nmsc.adb (Check_File): Mark as Locally_Removed a naming + exception replaced in an extending project. + (Check_Object): No error when the other source is locally removed. + +2011-09-02 Yannick Moy + + * exp_ch6.adb (Is_Build_In_Place_Function_Call): in Alfa mode, allow + unresolved calls. + +2011-08-31 Arnaud Charlet + + * gcc-interface/Makefile.in: Clean up handling of x86 and x86-64 + run-time files. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-09-01 Robert Dewar + + * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting. + +2011-09-01 Jose Ruiz + + * adaint.h (__gnat_cpu_free): Fix the name of this profile. + * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free, + __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms + specific for systems where their glibc version does not define the + routines to handle dynamically allocated CPU sets. + +2011-09-01 Vincent Celier + + * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads, + prj-env.adb: Implement inheritance of naming exceptions in extending + projects. + +2011-09-01 Romain Berrendonner + + * gnatls.adb: Display simple message instead of content of + gnatlic.adl. + +2011-09-01 Hristian Kirtchev + + * sem_ch3.adb: (Build_Derived_Record_Type) Remove the kludgy update of + access discriminant and anonymous access component scopes. + (Inherit_Component): Reuse the itype of an access discriminant + or anonymous access component by copying it in order to set the proper + scope. This is done only when the parent and the derived type + are in different scopes. + (Set_Anonymous_Etype): New routine. + +2011-09-01 Robert Dewar + + * a-convec.adb: Minor reformatting throughout. + +2011-09-01 Jose Ruiz + + * adaint.c, adaint.h (__gnat_cpu_alloc, __gnat_cpu_alloc_size, + __gnat_cpu_set_free): Create these wrappers around the CPU_ALLOC, + CPU_ALLOC_SIZE and CPU_FREE linux macros. + (__gnat_cpu_zero, __gnat_cpu_set): Use the CPU_ZERO_S and + CPU_SET_S respectively because we are now using dynamically allocated + CPU sets which are more portable across different glibc versions. + * s-osinte-linux.ads (cpu_set_t_ptr, CPU_ALLOC, CPU_ALLOC_SIZE, + CPU_FREE): Add this type and subprograms to be able to create cpu_set_t + masks dynamically according to the number of processors in the target + platform. + (CPU_ZERO, CPU_SET): They are now mapped to the CPU_ZERO_S and CPU_SET_S + respectively, so we need to pass the size of the masks as + parameters. + * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use dynamically + created cpu_set_t masks + with the number of processors available in the target platform, + instead of static bit arrays. It enhances portability because + it uses the information from the target platform. + * sem_ch8.adb: (Attribute_Renaming): When checking whether we + are using a restricted run-time library, use the flag + Configurable_Run_Time_Mode instead of Restricted_Profile. + +2011-09-01 Vincent Celier + + * ug_words: Add /MULTI_UNIT_INDEX= -> -gnateI + * vms_data.ads: Add new VMS qualifier equivalent for -gnateInnn + +2011-09-01 Nicolas Roche + + * adaint.c (__gnat_tmp_name): Don't use tmpnam function from the system + on VxWorks in kernel mode. + +2011-09-01 Jose Ruiz + + * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use the linux + macros for handling CPU sets (CPU_ZERO, CPU_SET) instead of modifying + directly the bit array. + * s-osinte-linux.ads (CPU_ZERO, CPU_SET): Import these wrappers around + the linux macros with the same name. + * adaint.h, adaint.c (__gnat_cpu_zero, __gnat_cpu_set): Create these + wrappers around the CPU_ZERO and CPU_SET linux macros. + +2011-09-01 Hristian Kirtchev + + * exp_ch7.adb (Find_Insertion_List): Removed. + (Process_Transient_Objects): Insert the declarations of the hook + access type and the hook object before the associated transient object. + +2011-09-01 Jose Ruiz + + * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading + package System.Aux_Dec when using restricted run-time libraries which + do not have this package. + +2011-09-01 Tristan Gingold + + * s-vaflop-vms-alpha.adb: Remove pragma optimize, useless. + +2011-09-01 Bob Duff + + * sem_attr.adb (Analyze_Access_Attribute): Do not call + Kill_Current_Values for P'Unrestricted_Access, where P is library level + +2011-09-01 Thomas Quinot + + * exp_ch5.adb: Minor reformatting + * gnat_ugn.texi: Fix minor typos. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-09-01 Robert Dewar + + * inline.adb, sem_aggr.adb: Minor reformatting. + +2011-09-01 Ed Schonberg + + * a-convec.adb: Proper handling of cursors for Ada2012 iterators. + +2011-09-01 Robert Dewar + + * prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting. + +2011-09-01 Bob Duff + + * sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance + body" the same as "in inlined body", because visibility shouldn't + apply there. + +2011-09-01 Eric Botcazou + + * inline.adb (Add_Inlined_Body): Refine previous change. + +2011-09-01 Gary Dismukes + + * exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function. + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): + Test for case where call + initializes an object of a return statement before testing for + a constrained call, to ensure that all such cases get handled + by simply passing on the caller's parameters. Also, in that + case call Needs_BIP_Alloc_Form to determine whether to pass on + the BIP_Alloc_Form parameter of the enclosing function rather + than testing Is_Constrained. Add similar tests for the return + of a BIP call to later processing to ensure consistent handling. + (Needs_BIP_Alloc_Form): New utility function. + * sem_ch6.adb: (Create_Extra_Formals): Replace test for adding + a BIP_Alloc_Form formal with call to new utility function + Needs_BIP_Alloc_Form. + +2011-09-01 Pascal Obry + + * prj-part.adb: Minor reformatting. + +2011-09-01 Vincent Celier + + * prj-env.adb (Create_Mapping_File.Process): Encode the upper + half character in the unit name. + +2011-09-01 Hristian Kirtchev + + * exp_ch4.adb: Minor code and comment reformatting. + +2011-09-01 Thomas Quinot + + * exp_ch6.adb (Expand_Inlined_Call): Remove redundant tests + for Is_Limited_Type and Is_Tagged_Type in condition checking + for by-reference type. + * inline.adb (Add_Inlined_Body): Only exclude init_procs. Other + subprograms may have a completion because of a previous + Inline_Always clause, but the enclosing package must be marked + inlined for the subprogram body to become visible to the backend. + +2011-09-01 Thomas Quinot + + * sem_aux.adb, exp_ch4.adb: Minor reformatting + +2011-09-01 Pascal Obry + + * prj-proc.adb, prj.ads, sinput-p.adb: Minor reformatting. + +2011-09-01 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate references to + the formals of a subprogram stub that acts as a spec. + +2011-09-01 Ed Schonberg + + * exp_ch6.adb (Expand_Inlined_Call): If an actual is a by_reference + type, declare a renaming for it, not an object declaration. + +2011-09-01 Yannick Moy + + * ali-util.adb, ali-util.ads (Read_Withed_ALIs): Add parameter + Ignore_Errors to ignore failures to read ALI files when True. + +2011-09-01 Javier Miranda + + * exp_ch3.adb (Expand_N_Object_Declaration): Handle non-default + constructor calls associated with non-tagged record types. + +2011-09-01 Robert Dewar + + * g-socthi-vms.adb: Minor reformatting. + +2011-09-01 Nicolas Roche + + * sysdep.c: Don't use macro functions for stdio functions on VxWorks + in order to avoid impact of imcompatible changes. + * cstreams.c: Likewise + * cio.c: Likewise + * aux-io.c: Likewise + +2011-09-01 Yannick Moy + + * lib-writ.adb (Write_With_Lines): Always output complete information + on "with" line in Alfa mode, as this is required by formal verification + back-end. + +2011-09-01 Tristan Gingold + + * g-socthi-vms.adb: Add comments. + +2011-09-01 Pascal Obry + + * prj.ads: Minor reformatting. + +2011-09-01 Vincent Celier + + * prj-env.adb (Create_Config_Pragmas_File.Check): Put all naming + exceptions in the config pragmas file. + +2011-09-01 Tristan Gingold + + * gnat_ugn.texi: Document GNAT_STACK_SIZE on IVMS. + +2011-09-01 Hristian Kirtchev + + * exp_ch7.adb (Find_Insertion_List): New routine. + (Process_Transient_Objects): Add code to handle the abnormal + finalization of a controlled transient associated with a subprogram + call. Since transients are cleaned up right after the associated + context, an exception raised during a subprogram call may bypass the + finalization code. + +2011-09-01 Robert Dewar + + * exp_ch6.adb (Expand_Call): Check actual for aliased parameter is + aliased. + +2011-09-01 Robert Dewar + + * exp_ch4.adb, a-exexda.adb: Minor reformatting. + +2011-09-01 Robert Dewar + + * s-taskin.ads, s-tassta.adb, sem_ch13.adb: Minor reformatting. + +2011-09-01 Thomas Quinot + + * Makefile.rtl: Move s-oscons.o from GNATRTL_TASKING_OBJS to + GNATRTL_NONTASKING_OBJS. + +2011-09-01 Robert Dewar + + * einfo.ads (Is_Aliased): Fix existing documentation and add note on + possibility of this flag being set for formals in Ada 2012 mode. + * par-ch6.adb (P_Formal_Part): Handle aliased for parameters for Ada + 2012. + * sem_ch6.adb (Process_Formals): Handle aliased parameters in Ada 2012 + mode. + * sinfo.adb (Aliased_Present): Allowed in N_Parameter_Specification for + Ada 2012. + * sinfo.ads (Aliased_Present): Allowed in N_Parameter_Specification for + Ada 2012. + +2011-09-01 Hristian Kirtchev + + * exp_ch4.adb (Find_Insertion_Node): New routine. Determines the proper + insertion node in a tree of nested Expression_With_Actions nodes. + (Process_Transient_Object): In the case where a complex if statement + has been converted into nested Expression_With_Actions nodes, the + "hook" object and the associated access type must be inserted before + the top most Expression_With_Actions. + +2011-09-01 Robert Dewar + + * a-cbprqu.adb, a-cbprqu.ads, a-cuprqu.adb, a-cuprqu.ads, + a-cbsyqu.adb, a-cbsyqu.ads: Minor reformatting. + +2011-09-01 Ed Schonberg + + * sem_attr.adb: Conditionalize aliasing predicates to Ada2012. + +2011-09-01 Jose Ruiz + + * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the CPU + aspect. + * aspects.adb (Canonical_Aspect): Add entry for the CPU aspect. + * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the CPU aspect + in a similar way as we do for the Priority or Dispatching_Domain aspect. + * s-mudido-affinity.adb (Dispatching_Domain_Tasks, + Dispatching_Domains_Frozen): Move this local data to package + System.Tasking because with the CPU aspect we need to have access + to this data when creating the task in System.Tasking.Stages.Create_Task + * s-taskin.ads (Dispatching_Domain_Tasks, Dispatching_Domains_Frozen): + Move these variables from the body of + System.Multiprocessors.Dispatching_Domains because with the CPU aspect + we need to have access to this data when creating the task in + System.Tasking.Stages.Create_Task. + * s-taskin.adb (Initialize): Signal the allocation of the environment + task to a CPU, if any, so that we know whether the CPU can be + transferred to a different dispatching domain. + * s-tassta.adb (Create_Task): Check whether the CPU to which this task + is being allocated belongs to the dispatching domain where the task + lives. Signal the allocation of the task to a CPU, if any, so that we + know whether the CPU can be transferred to a different dispatching + domain. + +2011-09-01 Ed Schonberg + + * exp_attr.adb, sem_attr.adb, snames.ads-tmpl: Implementation of + attributes Same_Storage and Overlaps_Storage. + +2011-09-01 Hristian Kirtchev + + * exp_strm.adb: Remove with and use clause for Opt. + (Build_Array_Input_Function): Remove the version-dependent generation + of the return statement. The Ada 2005 tree is now the default. + +2011-09-01 Yannick Moy + + * put_alfa.adb: Unconditionnally write files in Alfa section, so that + it is never empty when compiling in Alfa mode. + +2011-09-01 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb, a-direct.adb, s-taprop-vxworks.adb, + comperr.adb, exp_ch9.adb, exp_pakd.adb, sem_ch12.adb, freeze.adb, + s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb, + gnat1drv.adb, a-rbtgbo.adb, exp_dist.adb: Minor reformatting + +2011-09-01 Matthew Heaney + + * Makefile.rtl, impunit.adb: Add a-csquin.ads, a-cusyqu.ad[sb], + a-cuprqu.ad[sb], a-cbsyqu.ad[sb], a-cbprqu.ad[sb] + * a-csquin.ads: New Ada 2012 unit that specifies the queue interface + * a-cusyqu.ads, a-cusyqu.adb: New Ada 2012 unit that specifies the + unbounded queue container. + * a-cbsyqu.ads, a-cbsyqu.adb: New Ada 2012 unit that specifies the + bounded queue container. + * a-cuprqu.ads, a-cuprqu.adb: New Ada 2012 unit that specifies the + unbounded priority queue container. + * a-cbprqu.ads, a-cbprqu.adb: New Ada 2012 unit that specifies the + bounded priority queue container. + +2011-08-31 Pascal Obry + + * a-direct.adb: Do not try to create an UNC path on Windows. + (Create_Path): Skip leading computer name in UNC path if any. + +2011-08-31 Hristian Kirtchev + + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Remove the + version-dependent generation of the return statement. The Ada 2005 tree + is now the default. + +2011-08-31 Thomas Quinot + + * rtsfind.ads, exp_dist.adb (Find_Numeric_Representation): Predefined + types Stream_Element_Offset and Storage_Offset have a different native + type depending on whether the platform is 32 or 64 bits. When + exchanging them, always convert to 64 bits. + +2011-08-31 Yannick Moy + + * debug.adb: Reserve debug option -gnatd.E for passing gnatprove option + --force-alfa to gnat2why. + +2011-08-31 Ed Schonberg + + * sem_ch12.adb (Save_References): If the node has aspects, save + references within the corresponding expressions in a separate step, + because the aspects are not directly in the tree for the declaration + to which they belong. + +2011-08-31 Arnaud Charlet + + * freeze.adb (Freeze_Record_Type): Omit test on variable size component + in CodePeer mode, since representation clauses are partially ignored. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-31 Jose Ruiz + + * s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-linux.adb, + s-taprop-solaris.adb (Create_Task): Not_A_Specific_CPU can be assigned + to any dispatching domain. + +2011-08-31 Thomas Quinot + + * exp_ch4.adb: Minor reformatting. + +2011-08-31 Bob Duff + + * sem_ch6.adb (Get_Generic_Parent_Type): Don't query Subtype_Indication + on nodes for which it is not defined. + (Is_Non_Overriding_Operation): Exit the loop when we find a generic + parent type. + +2011-08-31 Bob Duff + + * sem_ch3.adb (Process_Full_View): Disable legality check if + In_Instance, to avoid spurious errors. + * sem_ch12.adb (Validate_Derived_Type_Instance): Disable legality check + if In_Instance, to avoid spurious errors. + +2011-08-31 Pascal Obry + + * a-direct.adb: Use Dir_Seps everywhere to properly handle all + directory speparators. + (Compose): Use Dir_Seps to handle both forms. + (Create_Path): Use Dir_Seps instead of explicit check, no semantic + changes. + (Extension): Use Dir_Seps to handle both forms. + +2011-08-31 Pascal Obry + + * prj-conf.adb: Minor reformatting. + +2011-08-31 Jose Ruiz + + * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the + dispatching domain aspect. + * aspects.adb (Canonical_Aspect): Add entry for the dispatching domain + aspect. + * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the + Dispatching_Domain aspect in a similar way as we do for the Priority + aspect. + * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add the + Dispatching_Domain component if a Dispatching_Domain pragma or aspect + is present. + (Make_Task_Create_Call): Add the Dispatching_Domain when creating a task + * par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma. + * sem_prag.adb (Analyze_Pragma): Check the correctness of a pragma + Dispatching_Domain and add it to the task definition. + (Sig_Flags): Add Pragma_Dispatching_Domain. + * rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add the + support to find the types Dispatching_Domain and + Dispatching_Domain_Access. + * sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain, + Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set and + query the availability of a pragma Dispatching_Domain. + * snames.ads-tmpl (Name_uDispatching_Domain): Add this name required by + the expander to pass the Dispatching_Domain when creating a task. + (Name_Dispatching_Domain): Add this new name for a pragma. + (Pragma_Id): Add the new Pragma_Dispatching_Domain. + * s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which the + task has been allocated at creation time. + * s-tarest.adb (Create_Restricted_Task): The dispatching domain using + Ravenscar is always null. + * s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to which + the task has been allocated at creation time. + * s-tporft.adb (Register_Foreign_Thread): A foreign task will not have + a specific dispatching domain. + * s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb, + s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domain + and CPU are specified for the task, and the CPU value is not contained + within the range of processors for the domain. + +2011-08-31 Vincent Celier + + * make.adb (Original_Gcc) : New constant String_Access. + (Gnatmake): For VM targets, do not use VM version of the compiler if + --GCC= has been specified. + +2011-08-31 Thomas Quinot + + * sem_ch5.adb: Minor reformatting. + +2011-08-31 Ed Schonberg + + * exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, do + not reanalyze it. + +2011-08-31 Bob Duff + + * exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in case + the access type is private; we don't care about privacy in expansion. + +2011-08-31 Ed Schonberg + + * sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregate + subcomponents tnat may be limited, because they originate in view + conflicts. If the original aggregate is legal and the actuals are + legal, the aggregate itself is legal. + +2011-08-31 Matthew Heaney + + * a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lock + status. + +2011-08-31 Ed Schonberg + + * sem_ch5.adb: Set kind of loop parameter properly, to preserve all + errors in B tests. + +2011-08-31 Jose Ruiz + + * sem_ch13.adb (Analyze_Aspect_Specifications): For the Priority and + Interrupt_Priority aspects, force the analysis of the aspect expression + (when building the equivalent pragma). Otherwise, its analysis is done + too late, after the task or protected object has been created. + * sem_ch9.adb (Analyze_Single_Protected_Declaration, + Analyze_Single_Task_Declaration): Remove the code to move the aspects + to the object declaration because they are needed in the type + declaration. + +2011-08-31 Robert Dewar + + * exp_ch5.adb, exp_ch7.ads, sem_ch5.adb, put_scos.adb, s-rannum.adb, + a-rbtgbo.adb, exp_intr.adb, a-cbdlli.adb, a-cbdlli.ads: Minor + reformatting. + +2011-08-31 Hristian Kirtchev + + * exp_util.adb (Find_Protection_Type): Do not look for fields _object + if the corresponding type is malformed due to restriction violations. + +2011-08-31 Robert Dewar + + * s-ransee.ads, s-ransee.adb: Minor reformatting. + +2011-08-31 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Allocator): Correct faulty condition which + would cause the generation of Set_Finalize_Address if the target is a + VM and the designated type is not derived from [Limited_]Controlled. + +2011-08-31 Arnaud Charlet + + * comperr.adb, comperr.ads, gnat1drv.adb (Delete_SCIL_Files): New + subprogram. + (Compiler_Abort, Gnat1drv): Call Delete_SCIL_Files in codepeer mode in + case of a compilation error. + +2011-08-31 Hristian Kirtchev + + * init.c (__gnat_error_handler): Standardize the stack overflow or + erroneous memory access message. + * seh_init.c (__gnat_SEH_error_handler): Standardize the stack overflow + or erroneous memory access message. + +2011-08-31 Robert Dewar + + * sem_ch4.adb: Minor reformatting. + * sem_ch6.adb: Minor code reorganization (use Ekind_In). + +2011-08-31 Thomas Quinot + + * scos.ads: Minor documentation clarification. + * put_scos.adb: Do not generate SCO unit header line for a unit that + has no SCO lines. + +2011-08-31 Robert Dewar + + * a-rbtgbo.adb, alfa_test.adb: Minor reformatting. + +2011-08-31 Tristan Gingold + + * exp_ch7.ads, exp_ch7.adb (Finalization_Exception_Data): New type to + hold variables between these following subprograms. + (Build_Exception_Handler, Build_Object_Declarations, + Build_Raise_Statement): Use the above type as parameter. + Make the above adjustments. + * exp_intr.adb (Expand_Unc_Deallocation): Adjust. + +2011-08-31 Pascal Obry + + * projects.texi: Minor reformatting. + +2011-08-31 Tristan Gingold + + * s-ransee.ads, s-ransee.adb: Add system.random_seed unit. + * s-rannum.adb (Reset): Use Get_Seed from s-ransee. + +2011-08-31 Ed Schonberg + + * exp_ch5.adb: Minor code cleanup. + * sem_ch5.adb (Analyze_Iteration_Scheme): Set ekind of loop variable to + prevent cascaded errors. + (Analyze_Loop_Statement): In semantics-only mode, introduce loop + variable of an iterator specification in current scope. + * sem_ch6.adb (Analyze_Return_Statement, Find_what_It_Apples_To): Skip + postconditions on the stack, as they contain no return statements. + +2011-08-31 Yannick Moy + + * exp_alfa.adb (Expand_Alfa_N_Package_Declaration, + Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simply + call Qualify_Entity_Names. + (Expand_Alfa): call Qualify_Entity_Names in more cases + * lib-xref-alfa.adb: Take into account system package. + * sem_prag.adb Take into account restrictions in Alfa mode, contrary to + CodePeer mode in which we are interested in finding bugs even if + compiler cannot compile source. + * sem_util.adb, sem_util.ads (Unique_Entity): Take into account case of + deferred constant. + +2011-08-31 Gary Dismukes + + * sem_ch3.adb (Constrain_Concurrent): Retrieve Base_Type of the subtype + denoted by the subtype mark to ensure getting the concurrent type in + the case where the subtype mark denotes a private subtype of a + concurrent type (needed when using -gnatc). + (Process_Subtype): For the processing specific to type kinds, case on + the Base_Type kind of the Subtype_Mark_Id, to handle cases where the + subtype denotes a private subtype whose base type is nonprivate (needed + for subtypes of private fulfilled by task types when compiling with + -gnatc). + +2011-08-31 Gary Dismukes + + * sem_disp.adb (Check_Dispatching_Operation): Bypass registration of + late primitives that override interface operations when the full + expander is not active, to avoid blowups in Register_Primitive when + types don't have associated secondary dispatch tables. + +2011-08-31 Yannick Moy + + * alfa_test.adb: Code clean up. + +2011-08-31 Marc Sango + + * restrict.adb (Check_SPARK_Restriction): Change Comes_From_Source (N) + by Comes_From_Source (Original_Node (N)) in order to treat also the + nodes which have been rewritten. + * sem_ch4.adb (Analyze_Explicit_Dereference, Analyze_Slice): Guard the + explicit dereference and slice violation in spark mode on the nodes + coming only from the source code. + +2011-08-31 Robert Dewar + + * exp_ch5.adb, exp_alfa.ads, prj.ads, sem_attr.adb, + lib-xref-alfa.adb: Minor reformatting. + +2011-08-31 Matthew Heaney + + * a-crbltr.ads (Tree_Type): Default-initialize the Nodes component. + +2011-08-31 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): Addition of one formal to search + only for class-wide subprograms conflicting with entities of concurrent + tagged types. + +2011-08-31 Matthew Heaney + + * a-rbtgbo.adb (Generic_Allocate): Initialize pointer components of + node to null value. + +2011-08-31 Hristian Kirtchev + + * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Provide a more + general description of the routine. + +2011-08-31 Ed Schonberg + + * a-cbdlli.adb, a-cbdlli.ads: Add iterator machinery to bounded + doubly-linked lists. + +2011-08-31 Gary Dismukes + + * exp_ch5.adb (Expand_N_Assignment_Statement): When a discriminant + check is needed for a left-hand side that is a dereference, and the + base type is private without discriminants (whereas the full type does + have discriminants), an extra retrieval of the underlying type may be + needed in the case where the subtype is a record subtype whose base + type is private. Update comments. + +2011-08-31 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): When a dispatching primitive is + found check if there is a class-wide subprogram covering the primitive. + +2011-08-31 Yannick Moy + + * sem_res.adb: Further cases where full expansion test is needed, + rather than expansion test. + +2011-08-31 Pascal Obry + + * prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list) + +2011-08-31 Ed Schonberg + + * exp_ch5.adb: Handle iterators over derived container types. + +2011-08-31 Hristian Kirtchev + + * einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master. + (Has_Anonymous_Master): New routine. + (Set_Has_Anonymous_Master): New routine. + (Write_Entity_Flags): Add an entry for Has_Anonymous_Master. + * exp_ch4.adb: Add with and use clause for Sem_Ch8. + (Current_Anonymous_Master): New routine. + (Current_Unit_First_Declaration): Removed. + (Current_Unit_Scope): Removed. + (Expand_N_Allocator): Anonymous access-to-controlled types now chain + their objects on a per-unit heterogeneous finalization master. + +2011-08-31 Matthew Heaney + + * a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length buckets + array. + +2011-08-31 Jose Ruiz + + * s-taprop-linux.adb (Create_Task): Avoid changing the affinity mask + when not needed. + +2011-08-31 Gary Dismukes + + * sem_disp.adb (Propagate_Tag): Return without propagating in the case + where the actual is an unexpanded call to 'Input. + +2011-08-31 Yannick Moy + + * sem_ch4.adb: Code clean up. + +2011-08-31 Yannick Moy + + * exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice. + +2011-08-31 Hristian Kirtchev + + * exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalize + and TSS primitive Finalize_Address if finalization is suppressed. + (Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSS + primitive Finalize_Address if finalization is suppressed. + +2011-08-31 Jose Ruiz + + * s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb, + s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Make + sure that the underlying task has already been created before trying + to change its affinity. + (Set_CPU): Use the term processor instead of CPU, as we do in + Assign_Task. + +2011-08-31 Vincent Celier + + * prj-attr.adb: New Compiler attribute Source_File_Switches. + * prj-nmsc.adb (Process_Compiler): Process attribute + Source_File_Switches. + * prj.ads (Language_Config): New name list component + Name_Source_File_Switches. + * snames.ads-tmpl (Name_Source_File_Switches): New standard name. + +2011-08-31 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be a + discriminated component of an actual, expand at once to prevent + ouf-of-order references with generated subtypes. + +2011-08-31 Yannick Moy + + * lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account read + reference to operator in Alfa xrefs. + +2011-08-31 Hristian Kirtchev + + * sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the case + where the parent instance was frozen before the current instance due to + the presence of a source body. Update calls to Insert_After_Last_Decl. + (Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance. + Update the comment which illustrates the purpose of the routine. + Package instances are now frozen by source bodies which appear after + the instance. This ensures that entities coming from within the + instance are available for use in the said bodies. + (Install_Body): Add code to handle the case where the parent instance + was frozen before the current instance due to the presence of a source + body. Update calls to Insert_After_Last_Decl. + +2011-08-31 Jose Ruiz + + * s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymous + access types. + * affinity.c (__gnat_set_affinity_mask): Declare index variable. + +2011-08-31 Yannick Moy + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test in + full-expander test. + * alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb, + errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb, + freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb, + lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb, + opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb, + sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renaming + ALFA in Alfa (we dropped acronym). + * einfo.adb (Primitive_Operations): Correctly return list of primitive + operations in a case where it returned previously No_Elist. + +2011-08-31 Robert Dewar + + * s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb, + s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads, + sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb, + s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb, + s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads, + s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minor + reformatting. + +2011-08-31 Hristian Kirtchev + + * sem_ch12 (Check_Private_View): Revert previous change. + * sem_res.adb (Conversion_Check): Do not emit the error message if the + conversion is in a generic instance. + +2011-08-31 Matthew Heaney + + * a-cbhase.adb (Symmetric_Difference): Dereference correct node array. + * a-chtgbo.adb (Free): Allow 0 as index value. + +2011-08-31 Matthew Heaney + + * a-cborma.adb (Insert): Add comment to explain why no element + assignment. + +2011-08-31 Gary Dismukes + + * sem_util.adb (Find_Body_Discriminal): Test whether the scope of the + spec discriminant is already a concurrent type, in which case just use + it, otherwise fetch the Corresponding_Concurrent_Type as before. + +2011-08-30 Eric Botcazou + + * system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads, + system-linux-mips.ads, system-linux-mipsel.ads, + system-linux-mips64el.ads, system-linux-ppc64.ads, + system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support. + +2011-08-30 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check. + * gcc-interface/utils2.c (build_binary_op): Tighten condition. + (build_unary_op): Likewise. + +2011-08-30 Eric Botcazou + + * raise-gcc.c: Do not include coretypes.h and tm.h. + (setup_to_install): Remove test for compiler macro. + * targext.c: Document use for the library. + * gcc-interface/Makefile.in: Fix comment on the use of IN_GCC. + +2011-08-30 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not convert + the expression to the nominal type if the latter is a record type with + a variant part and the type of the former is a record type without one. + +2011-08-30 Yannick Moy + + * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during + expansion in Alfa mode. + * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public + * exp_alfa.adb, exp_alfa.ads: New package defining light expansion for + Alfa mode. + * gnat1drv.adb (Adjust_Global_Switches): Update Comment. + * sem_res.adb: Ditto. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-30 Thomas Quinot + + * g-socket.ads: Minor documentation adjustment. + +2011-08-30 Robert Dewar + + * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting. + +2011-08-30 Yannick Moy + + * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb, + exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads, + exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb, + gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb: + Revert change which introduced files for "light" + expansion, to be replaced by a single file for Alfa expansion. + +2011-08-30 Robert Dewar + + * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment. + Minor code reorg/reformatting. + +2011-08-30 Yannick Moy + + * opt.adb, opt.ads (Full_Expander_Active): New function defines a + common shorthand for (Expander_Active and not ALFA_Mode) that can be + used for testing full expansion, that is active expansion not in the + reduced mode for Alfa + * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb, + sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead + of the verbose (Expander_Active and not ALFA_Mode) + +2011-08-30 Tristan Gingold + + * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb, + s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb, + s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads: + Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage + +2011-08-30 Gary Dismukes + + * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous + access conversions to check that the conversion is a rewritten node, + rather than just having Comes_From_Source set to False, which wasn't + sufficient. + +2011-08-30 Robert Dewar + + * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb, + g-socket.ads: Minor reformatting. + +2011-08-30 Thomas Quinot + + * sem_util.adb: Minor reformatting. + +2011-08-30 Tristan Gingold + + * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set, + to be compliant with the ABI. + +2011-08-30 Hristian Kirtchev + + * sem_ch12.adb (Check_Private_View): Exchange the private and full view + of a designated type when the related access type is an actual in an + instance. This ensures that the full view of designated type is + available when inside the body of the instance. + +2011-08-30 Ed Schonberg + + * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be + in a position to be modified, a slice is treated like an indexed + component. + +2011-08-30 Thomas Quinot + + * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for + field tv_sec in struct timeval. + +2011-08-30 Yannick Moy + + * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several + blocks of code doing full expansion, previously only guarded by + Expander_Active, by anding the test that ALFA_Mode is not set + +2011-08-30 Ed Schonberg + + * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete, + add the function to the list of private dependents, for subsequent + legality check on Taft amendment types. + * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize + Private_Dependents, as for other incomplete types. + * sem_util.adb (Wrong_Type): Avoid cascaded errors when a + Taft-amendment type is used as the return type of a function. + +2011-08-30 Javier Miranda + + * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code + which emits an error by a call to a new routine which report the error. + * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the + entity does not cover an existing interface. + * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize + code. + * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of + protected procedures or entries whose mode is not conformant. + (Check_Synchronized_Overriding): Code cleanup: replace code which emits + an error by a call to a new routine which report the error. + +2011-08-30 Robert Dewar + + * gnat_rm.texi: Minor change. + * exp_attr_light.adb: Minor reformatting. + +2011-08-30 Ed Schonberg + + * sem_ch3.adb: Patch inheritance of aspects in + Complete_Private_Subtype, to avoid infinite loop. + +2011-08-30 Javier Miranda + + * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have + been reported and a subprogram covering an interface primitive is not + found then skip generating the internal entity. Done to avoid crashing + the frontend. + (Check_Abstract_Overriding): Change text of error of wrong formal of + protected subprogram or entry. Done for consistency to emit exactly the + same error reported by Check_Synchronized_Overriding. In addition, the + error is restricted to protected types (bug found working on AI05-0090) + +2011-08-30 Yannick Moy + + * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during + expansion in Alfa mode. + * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public. + * exp_light.adb, exp_light.ads: New package defining light expansion. + * expander.adb (Expand): Call light expansion in Alfa mode + * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6 + constructs. + * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7 + constructs. + * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes + * gnat1drv.adb (Adjust_Global_Switches): Comment + +2011-08-30 Yannick Moy + + * lib-xref-alfa.adb: Minor refactoring. + +2011-08-30 Yannick Moy + + * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa + mode. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform + expansion in Alfa mode. + * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa + mode. + +2011-08-30 Robert Dewar + + * debug_a.adb: Update comment. + +2011-08-30 Robert Dewar + + * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb, + sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb, + exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb, + sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting + +2011-08-30 Robert Dewar + + * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma + volatile. + +2011-08-30 Hristian Kirtchev + + * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to + Build_Finalization_Master by supplying an insertion node and enclosing + scope. In its old version, the call did not generate a finalization + master. + (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to + recognize anonymous access-to-controlled components. Rewrite the + machinery which creates finalization masters to service anonymous + access-to-controlled components of a record type. In its current state, + only one heterogeneous master is necessary to handle multiple anonymous + components. + (Freeze_Type): Comment reformatting. + * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and + RE_Unit_Table. + * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which + associates TSS primitive Finalize_Address with either the master itself + or with the internal hash table depending on the mode of operation of + the master. + +2011-08-30 Javier Miranda + + * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an + interface type then do not generate code to compare this component. + Required since they have no components and their equality operator is + abstract. + +2011-08-30 Steve Baird + + * sem_util.ads (Deepest_Type_Access_Level): New function; for the type + of a saooaaat (i.e, a stand-alone object of an anonymous access type), + returns the (static) accessibility level of the object. Otherwise, the + same as Type_Access_Level. + (Dynamic_Accessibility_Level): New function; given an expression which + could occur as the rhs of an assignment to a saooaaat (i.e., an + expression of an access-to-object type), return the new value for the + saooaaat's associated Extra_Accessibility object. + (Effective_Extra_Accessibility): New function; same as + Einfo.Extra_Accessibility except that object renames are looked through. + * sem_util.adb + (Deepest_Type_Access_Level): New function; see sem_util.ads description. + (Dynamic_Accessibility_Level): New function; see sem_util.ads + description. + (Effective_Extra_Accessibility): New function; see sem_util.ads + description. + * einfo.ads (Is_Local_Anonymous_Access): Update comments. + (Extra_Accessibility): Update comments. + (Init_Object_Size_Align): New procedure; same as Init_Size_Align + except RM_Size field (which is only for types) is unaffected. + * einfo.adb + (Extra_Accessibility): Expand domain to allow objects, not just formals. + (Set_Extra_Accessibility): Expand domain to allow objects, not just + formals. + (Init_Size): Add assertion that we are not trashing the + Extra_Accessibility attribute of an object. + (Init_Size_Align): Add assertion that we are not trashing the + Extra_Accessibility attribute of an object. + (Init_Object_Size_Align): New procedure; see einfo.ads description. + * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access + differently for the type of a (non-library-level) saooaaat depending + whether Ada_Version < Ada_2012. This is the only point where Ada_Version + is queried in this set of changes - everything else (in particular, + setting of the Extra_Accessibility attribute in exp_ch3.adb) is + driven off of the setting of the Is_Local_Anonymous_Access attribute. + The special treatment of library-level saooaaats is an optimization, + not required for correctnesss. This is based on the observation that the + Ada2012 rules (static and dynamic) for saooaaats turn out to be + equivalent to the Ada2005 rules in the case of a library-level saooaaat. + * exp_ch3.adb + (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is + false for the type of a saooaaat, declare and initialize its + accessibility level object and set the Extra_Accessibility attribute + of the saooaaat to refer to this object. + * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support. + * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with + calls to Effective_Extra_Accessibility in order to support + renames of saooaaats. + (Expand_N_Type_Conversion): Add new local function, + Has_Extra_Accessibility, and call it when determining whether an + accessibility check is needed. + It returns True iff Present (Effective_Extra_Accessibility (Id)) would + evaluate to True (without raising an exception). + * exp_ch5.adb + (Expand_N_Assignment_Statement): When assigning to an Ada2012 + saooaaat, update its associated Extra_Accessibility object (if + it has one). This includes an accessibility check. + * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates + a saooaaat, update its Extra_Accessibility object too (if it + has one). + (Expand_Call): Replace a couple of calls to Type_Access_Level + with calls to Dynamic_Access_Level to handle cases where + passing a literal (any literal) is incorrect. + * sem_attr.adb (Resolve_Attribute): Handle the static accessibility + checks associated with "Saooaat := Some_Object'Access;"; this must + be rejected if Some_Object is declared in a more nested scope + than Saooaat. + * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an + assignment to a saooaaat even if Is_Local_Anonymous_Access + returns False for its type (indicating a 2012-style saooaaat). + * sem_ch8.adb + (Analyze_Object_Renaming): Replace a call to Init_Size_Align + (which is only appropriate for objects, not types) with a call + of Init_Object_Size_Align in order to avoid trashing the + Extra_Accessibility attribute of a rename (the two attributes + share storage). + * sem_res.adb + (Valid_Conversion) Replace six calls to Type_Access_Level with + calls to Deepest_Type_Access_Level. This is a bit tricky. For an + Ada2012 non-library-level saooaaat, the former returns library level + while the latter returns the (static) accessibility level of the + saooaaat. A type conversion to the anonymous type of a saooaaat + can only occur as part of an assignment to the saooaaat, so we + know that such a conversion must be in a lhs context, so Deepest + yields the result that we need. If such a conversion could occur, + say, as the operand of an equality operator, then this might not + be right. Also add a test so that static accessibilty checks are + performed for converting to a saooaaat's type even if + Is_Local_Anonymous_Access yields False for the type. + +2011-08-30 Javier Miranda + + * sem_disp.adb (Check_Dispatching_Operation): Complete condition that + controls generation of a warning associated with late declaration of + dispatching functions. Required to avoid generating spurious + warnings. + +2011-08-30 Gary Dismukes + + * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the + return object has an anonymous access type and the function's type is + a named access type. + * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming + conversions on implicit conversions, since such conversions can occur + for anonymous access cases due to expansion. Issue error for attempt + to rename an anonymous expression as an object of a named access type. + * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs, + to indicate whether this function should report errors on invalid + conversions. + * sem_res.adb (Resolve): For Ada 2012, in the case where the type of + the expression is of an anonymous access type and the expected type is + a named general access type, rewrite the expression as a type + conversion, unless this is an expression of a membership test. + (Valid_Conversion.Error_Msg_N): New procedure that conditions the + calling of Error_Msg_N on new formal Report_Errs. + (Valid_Conversion.Error_Msg_NE): New procedure that conditions the + calling of Error_Msg_NE on new formal Report_Errs. + (Valid_Conversion): Move declaration of this function to the package + spec, to allow calls from membership test processing. For Ada 2012, + enforce legality restrictions on implicit conversions of anonymous + access values to general access types, disallowing such conversions in + cases where the expression has a dynamic accessibility level (access + parameters, stand-alone anonymous access objects, or a component of a + dereference of one of the first two cases). + * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type + in the context of a named general access expected type. + * exp_ch4.adb Add with and use of Exp_Ch2. + (Expand_N_In): Add processing for membership tests applied to + expressions of an anonymous access type. First, Valid_Conversion is + called to check whether the test is statically False, and then the + conversion is expanded to test that the expression's accessibility + level is no deeper than that of the tested type. In the case of + anonymous access-to-tagged types, a tagged membership test is applied + as well. + (Tagged_Membership): Extend to handle access type cases, applying the + test to the designated types. + * exp_ch6.adb (Expand_Call): When creating an extra actual for an + accessibility level, and the actual is a 'Access applied to a current + instance, pass the accessibility level of the type of the current + instance rather than applying Object_Access_Level to the prefix. Add a + ??? comment, since this level isn't quite right either (will eventually + need to pass an implicit level parameter to init procs). + +2011-08-30 Bob Duff + + * s-taskin.ads: Minor comment fix. + +2011-08-30 Ed Schonberg + + * sem_res.adb (Check_Parameterless_Call): If the node is a selected + component and the selector is a dispatching operation, check if it is + a prefixed call before rewriting as a parameterless function call. + +2011-08-29 Jakub Jelinek + + * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy + tsystem.h into $(RTSDIR) instead of rts. + +2011-08-29 Robert Dewar + + * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor + reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-29 Yannick Moy + + * alfa.ads (Name_Of_Heap_Variable): New constant name. + * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global + table to hold dereferences. + (Add_ALFA_Xrefs): Take into account dereferences as special + reads/writes to the variable "HEAP". + (Enclosing_Subprogram_Or_Package): Move subprogram here. + (Generate_Dereference): New procedure to store a read/write dereferencew + in the table Drefs. + * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for + the special "HEAP" var. + * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference + in ALFA mode. + * sem_util.adb (Note_Possible_Modification): Store write dereference + in ALFA mode. + +2011-08-29 Hristian Kirtchev + + * exp_ch3.adb (Freeze_Type): Generate an accessibility check which + ensures that the level of the subpool access type is not deeper than + that of the pool object. + * sem_util.adb (Object_Access_Level): Expand to handle defining + identifiers. + * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the + subpool handle name of a rewritten allocator. + +2011-08-29 Robert Dewar + + * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting. + +2011-08-29 Thomas Quinot + + * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple + values, we generate multiple triples of parameters in the TypeCode. + Bump Choice_Index for each such triple so that a subsequent default + choice is associated with the correct index in the typecode. + +2011-08-29 Ed Schonberg + + * a-cdlili.adb (Iterate): Initialize properly an iterator over a null + container. + (First, Last): Handle properly an iterator over a null container. + +2011-08-29 Bob Duff + + * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon + processing if we run across a node with no Scope. This can happen if + we're with-ing an library-level instance, and that instance got errors + that caused "instantiation abandoned". + * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising + an exception instead of using Assert, so it won't go into an infinite + loop, even when assertions are turned off. + +2011-08-29 Ed Schonberg + + * a-coorse.adb: Proper handling of empty ordered sets. + +2011-08-29 Johannes Kanig + + * debug.adb: Add comments. + +2011-08-29 Thomas Quinot + + * a-except.adb, a-except-2005.adb: Minor comment rewording and + reformatting. + +2011-08-29 Yannick Moy + + * sem_ch3.adb (Array_Type_Declaration): Remove insertion of + declaration for Itypes in Alfa mode. + +2011-08-29 Robert Dewar + + * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb, + a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads, + a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor + reformatting. + +2011-08-29 Tristan Gingold + + * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to + package spec. + * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler. + * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts + while raising PE. + +2011-08-29 Robert Dewar + + * a-cbhama.adb, a-cbhama.ads: Minor reformatting. + +2011-08-29 Javier Miranda + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for + renamings of formal subprograms when the actual for a formal type is + class-wide. + +2011-08-29 Matthew Heaney + + * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment + to Target. + +2011-08-29 Matthew Heaney + + * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all + components of record type. + * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw + to Target. + +2011-08-29 Ed Schonberg + + * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb, + a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to + container packages. + +2011-08-29 Robert Dewar + + * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor + reformatting. + +2011-08-29 Matthew Heaney + + * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all + components of record type. + +2011-08-29 Bob Duff + + * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated + by the termination handler. + +2011-08-29 Yannick Moy + + * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes + created in Alfa mode, instead of inserting artificial declarations of + non-Itypes in the tree. + * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to + know if an Itype has a corresponding declaration, as defined in + itypes.ads. + +2011-08-29 Yannick Moy + + * gnat1drv.adb: Minor rewrite. + +2011-08-29 Bob Duff + + * s-tasuti.adb (Make_Passive): Work around race condition in + Make_Independent, which can cause Wait_Count to be zero. So instead of + asserting that Wait_Count > 0, and then decrementing it, decrement it + only if Wait_Count > 0. + * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these + should be nonnegative, so declare them Natural instead of Integer. + +2011-08-29 Robert Dewar + + * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb, + sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb, + a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb, + a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb, + exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting. + +2011-08-29 Tristan Gingold + + * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels. + +2011-08-29 Vadim Godunko + + * s-parint.ads: Minor comment clarification. + +2011-08-29 Vincent Celier + + * prj.adb (Initialize): Make sure that new reserved words after Ada 95 + may be used as identifiers. + +2011-08-29 Ed Schonberg + + * a-coinho.ads: Minor reformating. + +2011-08-29 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a + container of a derived type. + +2011-08-29 Ed Schonberg + + * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads, + a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers. + +2011-08-29 Pascal Obry + + * exp_disp.adb: Minor comment fix. + (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters + to avoid warnings when compiling with -Wall. + (Make_Disp_Conditional_Select_Body): Likewise. + (Make_Disp_Timed_Select_Body): Likewise. + +2011-08-29 Ed Schonberg + + * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is + an entity name, generate reference for it. + +2011-08-29 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S" + iterator form. + * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for + the class-wide type. + * sem_ch5.adb: Move some rewriting to the expander, where it belongs. + +2011-08-29 Ed Schonberg + + * sem_ch8.adb (Check_Constrained_Object): Do not create an actual + subtype for an object whose type is an unconstrained union. + +2011-08-29 Ed Schonberg + + * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased" + is allowed in a component definition, by AI95-406. + +2011-08-29 Matthew Heaney + + * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next. + +2011-08-29 Hristian Kirtchev + + * a-except-2005.adb: Alphabetize all routines. + (Triggered_By_Abort): New routine. + * a-except-2005.ads (Triggered_By_Abort): New routine. + * a-except.adb Alphabetize all routines. + (Triggered_By_Abort): New routine. + * a-except.ads (Triggered_By_Abort): New routine. + * exp_ch7.adb: Update all comments involving the detection of aborts in + finalization code. + (Build_Object_Declarations): Do not generate code to detect the + presence of an abort at the start of finalization code, use a runtime + routine istead. + * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and + RE_Unit_Table. + * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to + allocate a task on a subpool. + * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use. + The flag disables all actions related to the maintenance of + Finalize_Address_Table when subpools are not in use. + (Allocate_Any_Controlled): Signal the machinery that subpools are in + use. + (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which + performs costly task locking when subpools are not in use. + +2011-08-29 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged + types and dispatching calls in Alfa mode. + * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of + correspondance between body and spec scopes, to reuse utility functions + (Traverse_Declarations_Or_Statements): Protect access to body for stub + by testing the presence of the library unit for the body + * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa + mode the expansion of accept statements is skipped + * sem_util.adb, sem_util.ads (Unique_Entity): New function returning + the unique entity corresponding to the one returned by + Unique_Defining_Entity applied to the enclosing declaration of the + argument. + +2011-08-29 Bob Duff + + * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in + gdb when x is not a node (it can be a node list, name_id, etc). pp is + an alias for pn. ppp is an alias for pt. + +2011-08-29 Javier Miranda + + * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing + aggregate to take a consistent decision on the need to convert into + assignments aggregates that initialize constant objects. + +2011-08-29 Hristian Kirtchev + + * exp_ch4.adb (Expand_Allocator_Expression): Add a call to + Build_Allocate_Deallocate_Proc in order to handle allocation of + non-controlled objects on subpools. + * impunit.adb: Remove s-finmas and s-spsufi since they were never meant + to be end-user visible. + * s-finmas.adb: Add with and use clause for System.HTable. + Add an instantiation of Simple_HTable which provides a mapping between + the address of a controlled object and the corresponding + Finalize_Address used to clean up the object. The table is used when a + master is operating in heterogeneous mode. + (Attach): Explain why the input node is not verified on being already + attached. + (Delete_Finalize_Address): New routine. + (Detach): Add pragma Assert which ensures that a node is already + attached. + (Finalize): Add local variable Cleanup. Rewrite the iteration scheme + since nodes are no longer removed on traversal. Explain why node + detachment is undesirable in this case. + (Get_Finalize_Address): New routine. + (Hash): New routine. + (Is_Empty_List): Removed. + (pm): Renamed to Print_Master. Add output for discriminant + Is_Homogeneous. + Comment reformatting. + (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine. + * s-finmas.ads: Various comments additions / improvements. + Type Finalization_Master has a discriminant which determines the mode of + operation. + (Delete_Finalize_Address): New routine. + (Get_Finalize_Address): New routine. + (pm): Renamed to Print_Master. + (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine. + * s-stposu.adb: Add with clause for System.Address_Image; Add with and + use clause for System.IO. + (Allocate_Any_Controlled): Add machinery to set TSS primitive + Finalize_Address depending on the mode of allocation and the mode of + the master. + (Deallocate_Any_Controlled): Remove the relation pair object - + Finalize_Address regardless of the master mode. Add comment explaining + the reason. + (Detach): Ensure that fields Prev and Next are null after detachment. + (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration + scheme to check whether the list of subpools is empty. There is no + longer need to store the next subpool or advance the current pointer. + (Is_Empty_List): New routine. + (Print_Pool): New routine. + (Print_Subpool): New routine. + * s-stposu.ads: Various comments additions / improvements. + Field Master of type Root_Subpool is now a heterogeneous collection. + (Print_Pool): New routine. + (Print_Subpool): New routine. + +2011-08-29 Ed Schonberg + + * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator + forms, using aspects of container types. + * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and + Has_Implicit_Dereference flags, that may be set on the partial view. + * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a + container type with an indexing aspect. + (Analyze_Quantified_Expression): Analyze construct with expansion + disabled, because it will be rewritten as a loop during expansion. + (Try_Container_Indexing): The prefix itself may be a container type + with an indexing aspect, as with a vector of vectors. + * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze + the original doamin of iteration, for name capture. + (Analyze_Iterator_Specification): If the domain is an expression that + needs finalization, create a separate declaration for it. + For an iterator with "of" retrieve default iterator info from aspect of + container type. For "in" iterator, retrieve type of Iterate function. + * sem_ch13.adb (Check_Iterator_Function): Fix typo. + (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before + analysis, to prevent spurious errors about late attributes. + * sprint.adb: Handle quantified expression with either loop or iterator + specification. + * a-convec.ads, a-convec.adb: Iterate function returns a reversible + iterator. + +2011-08-29 Vincent Celier + + * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler, + Binder or Linker of the main project file. + +2011-08-29 Ed Schonberg + + * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic + unit. + +2011-08-29 Yannick Moy + + * exp_ch9.adb: Partial revert of previous change for Alfa mode + +2011-08-29 Yannick Moy + + * exp_ch11.adb: Minor expansion of comment. + +2011-08-29 Yannick Moy + + * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities. + +2011-08-29 Ed Schonberg + + * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal + interpretation, set the type before resolving the operands, because + legality checks on an exponention operand need to know the type of the + context. + +2011-08-29 Ed Schonberg + + * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed + cleanups on a master if the instance is within a generic unit. + Complement to the corresponding fix to inline.adb for K520-030. + +2011-08-29 Tristan Gingold + + * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current + occurrence. + * exp_intr.adb: Minor comment fix. + +2011-08-29 Bob Duff + + * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where + Delay_Required was used as an uninitialized variable. + +2011-08-29 Robert Dewar + + * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads, + sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, + a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting. + +2011-08-29 Thomas Quinot + + * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True. + Remove unused variables. + +2011-08-29 Ed Schonberg + + * sem_res.adb: Remove Build_Explicit_Dereference. + * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here + from sem_res.adb, used in analysis of additional constructs. + (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012 + expansion of iterators. + (Is_Object_Reference): Recognize variables rewritten as explicit + dereferences in Ada2012. + * snames.ads-tmpl: Add Has_Element, Forward_Iterator, + Reversible_Iterator names, for expansion of Ada2012 iterators. + * aspects.ads, aspects.adb (Find_Aspect): Utility. + * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly + linked list container. + * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers. + * a-coorse.ads, a-coorse.adb: Ditto for ordered sets. + +2011-08-29 Ed Schonberg + + * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map + containers. + +2011-08-29 Vincent Celier + + * make.adb (Gnatmake): Get the maximum number of simultaneous + compilation processes after the Builder switches has been scanned, as + there may include -jnn. + +2011-08-29 Matthew Heaney + + * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next. + +2011-08-29 Tristan Gingold + + * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of + GNAT_DRIVER_COMMAND_LINE to 255. + +2011-08-29 Pascal Obry + + * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor + reformatting and style fix (class attribute casing). + +2011-08-29 Yannick Moy + + * exp_ch11.adb: Yet another case where expansion should be common + between CodePeer and Alfa. + +2011-08-29 Yannick Moy + + * exp_ch9.adb: Partial revert of previous change for Alfa mode. + +2011-08-29 Ed Schonberg + + * sem_ch6.adb (Matches_Limited_With_View): The limited views of an + incomplete type and its completion match. + +2011-08-29 Yannick Moy + + * exp_ch13.adb: Adjust previous change. + +2011-08-29 Robert Dewar + + * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb, + exp_ch4.adb, sem_ch8.adb: Minor code reorganization + Minor reformatting. + +2011-08-29 Emmanuel Briot + + * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also + initialize aggregated projects. + +2011-08-29 Ed Schonberg + + * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope + depth of candidates to resolve a potentially spurious ambiguity between + two visible subprograms. + +2011-08-29 Yannick Moy + + * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without + Requires/Ensures. + * sem_util.adb (Get_Ensures_From_Test_Case_Pragma, + Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without + Requires/Ensures. + +2011-08-29 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): Improve previous change. + Add comment. + +2011-08-29 Thomas Quinot + + * sem_res.adb: Minor reformatting. + +2011-08-29 Johannes Kanig + + * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA + mode. + * gnat1drv.adb (Adjust_Global_Switches): Set + Use_Expressions_With_Actions to False in ALFA mode. + * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in + ALFA mode. + +2011-08-29 Yannick Moy + + * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode. + * exp_ch9.adb: Do not expand tasking constructs in Alfa mode. + * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of + tagged types and dispatching calls in Alfa mode. + +2011-08-29 Javier Miranda + + * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that + we do not report an error on an Empty node. + +2011-08-29 Geert Bosch + + * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o, + a-nlrear.o and a-nurear.o. + +2011-08-29 Robert Dewar + + * freeze.adb: Minor code reorganization. + Minor reformatting. + * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb, + sem_ch6.adb: Minor reformatting + +2011-08-29 Tristan Gingold + + * s-except.ads, s-except.adb: Provide dummy body. + +2011-08-29 Yannick Moy + + * sem_warn.adb (Within_Postcondition): Take into account the case of + an Ensures component in a Test_Case. + +2011-08-29 Tristan Gingold + + * s-excdeb.ads, s-excdeb.adb: New files, created from s-except. + * rtsfind.ads (RTU_Id): Replaces System_Exceptions by + System_Exceptions_Debug + (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug + * a-except.adb: With and use System.Exceptions_Debug instead of + System.Exceptions. + * a-except-2005.adb: Likewise. + * s-assert.adb: Likewise. + * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb. + * Makefile.rtl: Add s-excdeb. Adjust compilation rule. + * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add + s-excdeb. Update dependencies. + (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o + as these no longer need external libraries. + +2011-08-29 Ed Schonberg + + * sem_res.adb (Resolve_Op_Expon): Additional check to reject an + exponentiation operator on universal values in a context that requires + a fixed-point type. + +2011-08-29 Tristan Gingold + + * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence + before calling notify_handled_exception. + * a-exextr.adb: Fix comment. + +2011-08-29 Hristian Kirtchev + + * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute + Finalize_Address of the access type's finalization master. + (Expand_N_Allocator): Add code to set attribute Finalize_Address of the + access type's finalization master. Add a guard to prevent + Associated_Storage_Pool from being set on .NET/JVM. + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set + attribute Finalize_Address of the access type's finalization master. + * exp_ch7.adb (Make_Finalize_Address_Call): New routine. + * exp_ch7.ads (Make_Finalize_Address_Call): New routine. + * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and + RE_Unit_Table. + * s-finmas.adb: Add with clause for System.Address_Image. Add with and + use clause for System.IO + (Detach): Relax the assertion, to be reinstated later. + (Finalize): Rewrite the iteration loop to avoid pointer comparison. + Relax the assertion on Finalize_Address, to be reinstated later. + (Is_Empty_List): New routine. + (pm): New debug routine. + (Set_Finalize_Address): New routine. + * s-finmas.ads (pm): New debug routine. + (Set_Finalize_Address): New routine. + * s-stposu.adb (Allocate_Any_Controlled): Code reformatting. + +2011-08-29 Tristan Gingold + + * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access): + Remove convention C. + +2011-08-29 Tristan Gingold + + * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove. + (Initialize_TCB): Remove Exc_Stack_Ptr initialization. + (Finalize_TCB): Remove its finalization. + (Initialize): Remove assignment of GET_Exc_Stack_Addr + * s-soflin.adb (NT_Exc_Stack): Remove + (Get_Exc_Stack_Addr_NT): Likewise. + (Get_Exc_Stack_Addr_Soft): Likewise. + * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove. + (Get_Exc_Stack_Addr): Likewise. + (Get_Exc_Stack_Addr_Soft): Likewise + * s-taspri-vms.ads (Exc_Stack_T): Remove. + (Exc_Stack_Ptr_T): Likewise. + (Private_Data): Remove Exc_Stack_Ptr component. + +2011-08-29 Tristan Gingold + + * raise-gcc.c (get_ip_from_context): New function. Factorize code. + +2011-08-29 Tristan Gingold + + * gnat_ugn.texi: Fix aix and x86-solaris info for run-time. + +2011-08-29 Geert Bosch + + * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate, + L2_Norm, Swap_Column): New generic subprograms + * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate, + L2_Norm, Swap_Column): Implement new subprograms in order to + eliminate dependency on BLAS and LAPACK libraries in + Ada.Numerics.Generic_Real_Arrays and eventually also the complex + version. Forward_Eliminate/Back_Substitute can be used to put a + matrix in row echelon or reduced row echelon form using partial + pivoting. + * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate, + Swap_Column): Instantiate from System.Generic_Array_Operations. + ("*", "abs"): Implement by instantiation from Generic_Array_Operations. + (Sqrt): Local function for simple computation of square root without + adding dependencies on Generic_Elementary_Functions. + (Swap): New subprogram to exchange floating point numbers. + (Inverse): Reimplement using Jordan-Gauss elimination. + (Jacobi): New procedure implementing Jacobi's method for computation + of eigensystems, based on Rutishauser's implementation. + (L2_Norm): Implement directly using the inner product. + (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of + decreasing eigenvalue as required by the Ada RM. + (Swap_Column): New helper procedure for Sort_Eigensystem. + Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK. + Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for + Sort_Eigensystems. + +2011-08-29 Thomas Quinot + + * put_scos.adb (Put_SCOs): Do not emit a newline for an empty + statements line. + +2011-08-29 Hristian Kirtchev + + * s-finmas.adb (Finalize): Check Finalize_Address of the master rather + than the current node. + * s-finmas.ads: Move field Finalize_Address from type FM_Node to + Finalization_Master. The list headers have two fields instead of three. + This should fix alignment issue but subpool allocations are now + unusable. Alphabetize subprograms. + * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than + the size of the header when converting the beginning of the object to + a FM_Node. Set the master's Finalize_Address attribute if not already + set. + (Deallocate_Any_Controlled): Use the offset rather than the size of the + header when converting the beginning of the object to a FM_Node. + +2011-08-29 Gary Dismukes + + * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of + reraise when compiling for CodePeer. + +2011-08-29 Arnaud Charlet + + * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads, + now needed by a-convec.adb. Fix warning. + +2011-08-29 Hristian Kirtchev + + * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the + processing of TSS routine Finalize_Address when compiling in + CodePeer_Mode. + +2011-08-29 Thomas Quinot + + * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb, + sem_warn.adb: Minor reformatting. + +2011-08-29 Emmanuel Briot + + * prj-conf.adb (Get_Config_Switches): Also collect the list of + languages from aggregated projects. + +2011-08-29 Yannick Moy + + * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements, + Traverse_Handled_Statement_Sequence, Traverse_Package_Body, + Traverse_Package_Declaration, Traverse_Subprogram_Body, + Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies + for stubs are traversed too when parameter is set + (Traverse_All_Compilation_Units): Traverse without going inside stubs + (Traverse_Declarations_Or_Statements): Do the special traversing for + stubs when required. + * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to + return subprogram or package body from stub. + (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect + stubs without prior subprogram decl. + +2011-08-29 Vasiliy Fofanov + + * gnat_ugn.texi: Fix typo. + +2011-08-29 Hristian Kirtchev + + * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism + which accounts for size vs alignment issues and calculates the size of + the list header. + (Deallocate_Any_Controlled): Ditto. + (Nearest_Multiple_Rounded_Up): New routine. + +2011-08-29 Tristan Gingold + + * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag. + * a-exexda.adb (Set_Exception_C_Msg): Ditto. + (Set_Exception_Msg): Ditto. + * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set + Private_Data. + * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove. + Use Save_Occurrence instead of Save_Occurrence_No_Private. + (Raise_With_Msg): Remove Cleanup_Flag. + * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove + Clean_Flag and Private_Data components. + +2011-08-29 Yannick Moy + + * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like + in CodePeer mode. + * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation + of an explicitly declared type, so that the base types of the original + type and this generated type are the same, and a "type" (not a subtype + like previously). + * errout.adb (Special_Msg_Delete): Do not issue messages "Size too + small" in Alfa mode, like in CodePeer mode. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep + clauses in Alfa mode. + +2011-08-29 Javier Miranda + + * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this + function to the package spec. + * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For + internally generated bodies of null procedures locate the internally + generated spec enforcing mode conformance. + (Is_Interface_Conformant): Ensure that the controlling formal of the + primitives match. + +2011-08-29 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not + reject the pragma if it appears to apply to a formal subprogram. + +2011-08-29 Ed Schonberg + + * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for + inner expression, to prevent double evaluation. + +2011-08-29 Tristan Gingold + + * a-exexpr.adb (Propagate_Exception): Remove all the parameters as + they were unused. + * a-exexpr-gcc.adb (Propagate_Exception): Ditto. + * a-except-2005.adb (Propagate_Exception): Adjust spec. + (Raise_Current_Excep): Adjust call. + (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep. + +2011-08-29 Thomas Quinot + + * exp_disp.adb: Minor reformatting. + +2011-08-29 Tristan Gingold + + * a-exexpr.adb (Setup_Exception): Removed. + * a-exexpr-gcc.adb (Setup_Exception): Removed. + * a-except.adb (Exception_Propagation): Removed. + * a-except-2005.adb (Setup_Exception): Removed. + (Reraise): Remove call to Setup_Exception. + (Reraise_Occurrence): Ditto. + (Reraise_Occurrence_Always): Ditto. + (Reraise_Occurrence_No_Defer): Ditto. + (Transfer_Occurrence): Ditto. + * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception. + (Set_Exception_Msg): Ditto. + +2011-08-29 Robert Dewar + + * a-convec.adb, exp_disp.adb: Minor reformatting. + +2011-08-29 Tristan Gingold + + * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C. + +2011-08-29 Gary Dismukes + + * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set + Exception_Handlers to No_List instead of Empty_List in the case where + there are no handlers. + +2011-08-29 Tristan Gingold + + * gcc-interface/gigi.h (enum standard_datatypes): Add + ADT_reraise_zcx_decl + (reraise_zcx_decl): New macro. + * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable. + (gigi): Set reraise_zcx_decl. + (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr. + (gnat_to_gnu): Handle N_Raise_Statement. + +2011-08-29 Robert Dewar + + * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads, + a-undesu.adb: Minor reformatting. + +2011-08-29 Ed Schonberg + + * exp_disp.adb (Check_Premature_Freezing): When building a dispatch + table, accept an unfrozen untagged component if it is an actual for a + formal incomplete type. + * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to + provide new iterator forms over vectors. + Introduce type Iterator in package body to implement operations of + Reversible_Iterator interface. + * a-iteint.ads: Make package pure so it is usable with new container + packages, that are categorized Remote_Types. + +2011-08-29 Robert Dewar + + * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting. + +2011-08-29 Bob Duff + + * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case + of <>, because this is the routine that checks for dimensionality + errors (for example, for a two-dimensional array, (others => <>) should + be (others => (others => <>)). + +2011-08-29 Hristian Kirtchev + + * impunit.adb: Add new run-time units. + * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb, + s-stposu.ads, s-stposu.adb: Code clean up. + Handle protected class-wide or task class-wide types + Handle C/C++/CIL/Java types. + * s-spsufi.adb, s-spsufi.ads: New files. + +2011-08-29 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on + library-level subprogram. + * sem_prag.adb (Check_Test_Case): Stricter rules for test-case + placement. + (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case + component. + * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case + component. + * gnat_rm.texi: Update doc for Test_Case pragma. + +2011-08-29 Tristan Gingold + + * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it + convention C. + (GCC_Exception_Access): New type. + (Unwind_DeleteException): New imported procedure + (Foreign_Exception): Import it. + (GNAT_GCC_Exception): Simply have the occurrence inside. + (To_GCC_Exception): New function. + (To_GNAT_GCC_Exception): New function. + (GNAT_GCC_Exception_Cleanup): New procedure.. + (Propagate_GCC_Exception): New procedure. + (Reraise_GCC_Exception): New procedure. + (Setup_Current_Excep): New procedure. + (CleanupUnwind_Handler): Change type of UW_Exception parameter. + (Unwind_RaiseException): Ditto. + (Unwind_ForcedUnwind): Ditto. + (Remove): Removed. + (Begin_Handler): Change type of parameter. + (End_Handler): Ditto. Now delete the exception if still present. + (Setup_Key): Removed. + (Is_Setup_And_Not_Propagated): Removed. + (Set_Setup_And_Not_Propagated): Ditto. + (Clear_Setup_And_Not_Propagated): Ditto. + (Save_Occurrence_And_Private): Ditto. + (EID_For): Add 'not null' constraint on parameter. + (Setup_Exception): Does nothing. + (Propagate_Exception): Simplified. + * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model, + re-raise is not expanded anymore. + * s-except.ads (Foreign_Exception): New exception - placeholder for + non Ada exceptions. + * raise-gcc.c (__gnat_setup_current_excep): Declare + (CXX_EXCEPTION_CLASS): Define (not yet used) + (GNAT_EXCEPTION_CLASS): Define. + (is_handled_by): Handle foreign exceptions. + (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep. + +2011-08-29 Jose Ruiz + + * a-synbar.adb (Synchronous_Barrier): Some additional clarification. + +2011-08-29 Thomas Quinot + + * a-synbar-posix.adb: Minor reformatting. + +2011-08-29 Jose Ruiz + + * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads, + a-exetim-default.ads (Interrupt_Clocks_Supported, + Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these + definitions to be compliant with AI-0171. The target systems do not + support separate account for the execution time of interrupt handlers. + +2011-08-29 Jose Ruiz + + * a-synbar.adb (Wait): Change the order of evaluation of the conditions + in the barrier to put first the easiest to evaluate (and the one which + will be True more often). More efficient. + +2011-08-29 Eric Botcazou + + * s-atocou-x86.adb: Fix constraint in machine code insertion. + +2011-08-29 Bob Duff + + * aspects.ads, aspects.adb: Add new aspects for various pragmas and + attributes that are now aspects, as specified by AI05-0229-1. + * sem_ch13.adb (Analyze_Aspect_Specifications, + Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into + pragmas or attribute references, as appropriate. + +2011-08-29 Robert Dewar + + * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb, + a-synbar-posix.ads: Minor reformatting. + +2011-08-29 Yannick Moy + + * snames.ads-tmpl: Add name Force. + +2011-08-29 Pascal Obry + + * prj-nmsc.adb: Minor reformatting. + +2011-08-29 Jose Ruiz + + * a-exetim.ads (Interrupt_Clocks_Supported, + Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these + definitions to be compliant with AI-0171. + +2011-08-29 Robert Dewar + + * a-ngelfu.adb: Add comments. + +2011-08-29 Geert Bosch + + * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is + the closest machine number to Pi / 2.0. + +2011-08-29 Jose Ruiz + + * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012 + package Ada.Synchronous_Barriers. + * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb: + Add new specs and bodies for Ada.Synchronous_Barriers. There is a + default implementation using protected objects and another one + a-synbar-posix using POSIX barriers as the underlying support. + * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86, + x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of + Ada.Synchronous_Barriers which uses POSIX barriers (more efficient). + Clean up dependencies. + * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o + +2011-08-29 Robert Dewar + + * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb, + exp_dist.adb: Minor code reorganization. + Minor reformatting. + +2011-08-29 Thomas Quinot + + * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW + primitive operation must support external streaming if it is not a + controlling access result. + +2011-08-29 Thomas Quinot + + * sinfo.ads, sem_ch7.adb: Minor reformatting. + +2011-08-29 Bob Duff + + * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization + restriction on allocators, as required by AI05-0013-1. + * restrict.ads: Minor comment fix. + +2011-08-29 Tristan Gingold + + * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb + (To_Jmpbuf_Address): Ditto + (builtin_longjmp): Ditto + +2011-08-29 Thomas Quinot + + * sem_res.adb: Minor reformatting. + +2011-08-29 Vincent Celier + + * make.adb (Gnatmake): Move special processing for VM targets after the + call to Get_Target_Parameters. + +2011-08-29 Thomas Quinot + + * sem_ch12.adb, par-ch12.adb: Minor reformatting. + +2011-08-29 Hristian Kirtchev + + * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases + where an anonymous access discriminant of a limited designated type + appears in a non-immutably limited discriminated type and issue an + error message. Add local variable Desig_T and replace all occurrences + of Designated_Type. + +2011-08-29 Jose Ruiz + + * a-rttiev.adb (Set_Handler): Update comment to indicate that our + implementation is compliant to RM D.15(15/2) after the modification + imposed by AI05-0094-1 (binding interpretation). + +2011-08-29 Robert Dewar + + * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb, + s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting. + +2011-08-29 Thomas Quinot + + * par-endh.adb (Check_End): For an END where it is mandatory to repeat + the scope name, do not report a missing label as a style violation (it + will be diagnosed as an illegality). + * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of + variant records: Get_Enum_Lit_From_Pos already returns a usage + occurrence of the literal, no need to use New_Occurrence_Of. Set Etype + on Expr in Integer_Literal case so that it can be used by + Build_To_Any_Call. + +2011-08-29 Tristan Gingold + + * exp_sel.ads (Build_Abort_BLock_Handler): New function spec. + Adjust comment. + * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler. + (Build_Abort_Block_Handler): New function to build an Abort_Signal + exception handler. + * exp_ch9.adb (Expand_N_Asynchronous_Select): Call + Build_Abort_Block_Handler to build the exception handler. Do not + undefer aborts for the Abort_Signal exception handler if back-end + exception mechanism. + * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if + back_end exceptions for all others and abort_signal. + * s-except.ads (ZCX_By_Default): New constant. + * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX. + (Raise_Exception_Always): Ditto. + (Raise_From_Signal_Handler): Ditto. + (Raise_With_Location_And_Msg): Ditto. + (Raise_With_Msg): Ditto. + (Reraise): Ditto. + (Reraise_Occurence): Ditto. + (Reraise_Occurrence_Always): Ditto. + * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX. + * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX. + +2011-08-29 Thomas Quinot + + * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation. + +2011-08-29 Robert Dewar + + * snames.adb-tmpl, sem_ch13.adb: Minor reformatting + Minor code reorganization. + +2011-08-29 Bob Duff + + * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada + 2012, not just Ada 2005. + +2011-08-29 Vincent Celier + + * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake + with a project file or with gprbuid, if -gnatep= is specified, the + builder may need to be invoked with -x. + +2011-08-29 Tristan Gingold + + * a-exexpr-gcc.adb: Minor comment fix. + +2011-08-29 Robert Dewar + + * sem_ch8.adb: Minor reformatting. + +2011-08-29 Bob Duff + + * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012. + * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for + treating "some" as unreserved in earlier Ada versions. This is now + handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some, + rather than Name_Some, since Tok_Some is now recognized as reserved. + * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other + reserved word. + * scans.ads: Minor comment fixes. + * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as + for other language versions. + * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for + treating "some" as unreserved in earlier Ada versions. This is now + handled in Snames.Is_Keyword_Name. + * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in + Ada 2012. + (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as + unreserved in earlier Ada versions. This is now handled in + Snames.Is_Keyword_Name. + * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved + words as for other language versions. + * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to + Ada 2012, not just Ada 2005. + +2011-08-29 Ed Schonberg + + * sem_ch13.adb: Additional semantic checks for aspects involved in + iterators. + +2011-08-29 Matthew Heaney + + * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb, + a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous + Container parameter. + (Ancestor_Find): ditto. + +2011-08-29 Thomas Quinot + + * par-endh.adb: Minor reformatting. + +2011-08-29 Tristan Gingold + + * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants. + (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component. + (Adjust_N_CLeanups_For): Remove. + (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of + stack is reached. + (Propgate_Exception): Adjust. + * raise-gcc.c: Add a few static/const. + (Adjust_N_Cleanups_For): Remove declaration. + (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger. + +2011-08-29 Ed Schonberg + + * sem_ch8.adb: Use type of function return when rewriting as object + declaration. + +2011-08-29 Gary Dismukes + + * sem_type.adb: Minor reformatting. + +2011-08-29 Robert Dewar + + * makeutl.adb: Minor reformatting. + +2011-08-29 Ed Schonberg + + * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a + function call of a limited type, the expansion of the renaming is + complicated by the presence of various temporaries and subtypes that + capture constraints of the renamed object. + Rewrite node as an object declaration, whose expansion is simpler. + Given that the object is limited there is no copy involved and no + performance hit. + +2011-08-29 Robert Dewar + + * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb, + freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting. + +2011-08-29 Tristan Gingold + + * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads, + system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads, + system-linux-hppa.ads, system-linux-s390.ads, + system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads, + system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads, + system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads, + system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads, + system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads, + system-solaris-sparc.ads, system-lynxos-x86.ads, + system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads, + system-solaris-x86_64.ads, system-mingw-x86_64.ads, + system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads, + system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads, + system-vxworks-x86.ads: Remove GCC_ZCX_Support. + * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb, + s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto. + * opt.ads: Adjust comment. + * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target. + * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target. + * system.ads: Move GCC_ZCX_Support to obsolete entries. + +2011-08-29 Emmanuel Briot + + * makeutl.adb (Do_Complete): Resolve symbolic links when a relative + file name is specified on the gnatmake or gprbuild command line, and + before we search for that file in the project. + +2011-08-29 Ed Schonberg + + * sem_type.adb (Within_Instance): New predicate in Collect_Interps, + used to determine whether a possible interpretation for an overloadable + entity is declared within the current instantiation and should be + included in the candidate set. + +2011-08-29 Vasiliy Fofanov + + * gnat_rm.texi, gnat_ugn.texi: Clean ups. + +2011-08-29 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): Use base type to determine whether an + access subtype is access_to_subprogram, when applying checks for + RM 3.10.2 (27). + +2011-08-29 Matthew Heaney + + * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check + for sibling when common parent. + +2011-08-29 Thomas Quinot + + * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with + "pragma_". + +2011-08-29 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions + for the return type when in ASIS mode. + +2011-08-29 Vincent Celier + + * make.adb (Gnatmake): Get the default search dirs, then the target + parameters after getting the Builder switches, as the Builder switches + may include --RTS= and that could change the default search dirs. + +2011-08-29 Hristian Kirtchev + + * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of + Make_Final_Call. Move the processing for class-wide types before the + processing for derivations from [Limited_]Controlled. + (Make_Final_Call): Move the processing for class-wide types before the + processing for derivations from [Limited_]Controlled. + * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check. + Add code to account for alignments larger than the list header. Add a + comment illustrating the structure of the allocated object + padding + + header. + (Deallocate_Any_Controlled): Add code to account for alignments larger + than the list header. + +2011-08-29 Ed Schonberg + + * sinfo.ads, sinfo.adb: New node kind + N_Formal_Incomplete_Type_Definition, related flags. + par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition): + Parse formal incomplete types. + * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in + sem_ch12. + * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body): + Formal incomplete types do not need completion. + * sem_ch12.adb (Analyze_Formal_Incomplete_Type, + Validate_Incomplete_Type_Instance): New procedures to handle formal + incomplete types. + * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual + that corresponds to a formal incomplete type. + * sprint.adb: Handle formal incomplete type declarations. + * exp_util.adb (Insert_Actions): An incomplete_type_definition is not + an insertion point. + +2011-08-29 Hristian Kirtchev + + * a-fihema.ads, a-fihema.adb: Unit removed. + * a-undesu.ads, a-undesu.adb: New unit implementing + Ada.Unchecked_Deallocate_Subpool. + * einfo.adb: Remove Associated_Collection from the node usage. + Add Finalization_Master to the node usage. + (Associated_Collection): Removed. + (Finalization_Master): New routine. + (Set_Associated_Collection): Removed. + (Set_Finalization_Master): New routine. + (Write_Field23_Name): Remove Associated_Collection from the output. Add + Finalization_Master to the output. + * einfo.ads: Remove attribute Associated_Collection and its uses in + entities. + Add new attribute Finalization_Master along with its uses in entitites. + (Associated_Collection): Removed along with its pragma import. + (Finalization_Master): New routine along with a pragma import. + (Set_Associated_Collection): Removed along with its pragma import. + (Set_Finalization_Master): New routine along with a pragma import. + * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to + Build_Finalization_Collection with Build_Finalization_Master. + (Expand_Freeze_Record_Type): Move the generation of Finalize_Address + before the bodies of the predefined routines. Add comment explaining + this. Replace call to Build_Finalization_Collection with + Build_Finalization_Master. + (Freeze_Type): Replace call to Build_Finalization_Collection with + Build_Finalization_Master. + (Make_Finalize_Address_Body): Comment reformatting. + (Make_Predefined_Primitive_Specs): Code reformatting. + (Stream_Operation_OK): Update comment mentioning finalization + collections. Replace RE_Finalization_Collection with + RE_Finalization_Master. + * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to + Associated_Collection with Finalization_Master. Replace call to + Build_Finalization_Collection with Build_Finalization_Master. + (Expand_Allocator_Expression): Replace call to Associated_Collection + with Finalization_Master. Replace call to Set_Associated_Collection with + Set_Finalization_Master. Remove the generation of + Set_Finalize_Address_Ptr. + (Expand_N_Allocator): Replace call to Associated_Collection with + Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr. + * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to + Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the + comment on usage. Replace call to Needs_BIP_Collection with + Needs_BIP_Finalization_Master Remplace BIP_Collection with + BIP_Finalization_Master. Update all comments which mention finalization + collections. Replace Associated_Collection with + Finalization_Master. Replace Build_Finalization_Collection with + Build_Finalization_Master. + (BIP_Formal_Suffix): Update BIP_Collection's case. + (Build_Heap_Allocator): Update the related comment. Rename local + variable Collect to Fin_Mas_Id and update its occurrences. Update + comments which mention finalization collections. Replace + Set_Associated_Collection with Set_Finalization_Master. + (Expand_Call): Update the code which detects a special piece of library + code for .NET/JVM. + (Make_Build_In_Place_Call_In_Allocator): Replace the call to + Add_Collection_Actual_To_Build_In_Place_Call with + Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code + which generates a call to Make_Set_Finalize_Address_Ptr_Call. + (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to + Add_Collection_Actual_To_Build_In_Place_Call with + Add_Finalization_Master_Actual_To_Build_In_Place_Call. + (Make_Build_In_Place_Call_In_Assignment): Replace call to + Add_Collection_Actual_To_Build_In_Place_Call with + Add_Finalization_Master_Actual_To_Build_In_Place_Call. + (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master. + * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master. + (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master. + * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage. + Rename local variable Collect to Fin_Mas_Id and update its occurrences. + Replace call to Set_Associated_Collection with Set_Finalization_Master. + (Build_Finalization_Collection): Renamed to Build_Finalization_Master. + Replace the call to Associated_Collection with Finalization_Master. + Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences. + Update the way finalization master names are generated. Update the + retrieval of the correct access type which will carry the pool and + master attributes. + (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved. + (Make_Finalize_Address_Body): Abstract types do not need + Finalize_Address. Code reformatting. + (Make_Finalize_Address_Stmts): Update comment on usage. + (Make_Set_Finalize_Address_Ptr_Call): Removed. + (Process_Declarations): Update comments. + * exp_ch7.ads (Build_Finalization_Collection): Renamed to + Build_Finalization_Master. Update associated comment. + (Make_Set_Finalize_Address_Ptr_Call): Removed. + * exp_ch13.adb: Update comments which mention finalization collections. + (Expand_N_Free_Statement): Replace the call to Associated_Collection + with Finalization_Master. + * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to + create calls to routines Allocate_Any_Controlled and + Deallocate_Any_Controlled. + (Find_Finalize_Address): New routine. + (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the + comparison. + (Requires_Cleanup_Actions): Update the comment on freeze node + inspection. + * exp_util.ads: Remove comment on generated code for + Build_Allocate_Deallocate_Proc. The code is now quite complex and it + is better to simply look in the body. + * freeze.adb (Freeze_All): Update the comment of finalization + collections. Replace the call to Associated_Collection with + Finalization_Master. Replace the call to Build_Finalization_Collection + with Build_Finalization_Master. + * impunit.adb: Add a-undesu and s-stposu to the list of units. + * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file + a-fihema. + * rtsfind.adb (Get_Unit_Name): Remove the processing for children of + Ada.Finalization. Add processing for children of System.Storage_Pools. + * rtsfind.ads: Remove the naming of second level children of + Ada.Finalization. + Remove Ada_Finalization_Heap_Management from the list of units. + Remove subtype Ada_Finalization_Child. + Remove the following subprogram entities: + + RE_Allocate + RE_Deallocate + RE_Finalization_Collection + RE_Finalization_Collection_Ptr + RE_Set_Finalize_Address_Ptr + + Add the naming of second level children of System.Storage_Pools. + Add System_Finalization_Masters and System_Storage_Pools_Subpools to + the list of units. + Add subtype System_Storage_Pools_Child. + Add the following subprogram entities to System.Finalization_Masters: + + RE_Finalization_Master + RE_Finalization_Master_Ptr + + Add the following subprogram entities to System.Storage_Pools.Subpools: + + RE_Allocate_Any_Controlled + RE_Deallocate_Any_Controlled + RE_Root_Storage_Pool_With_Subpools + RE_Root_Subpool + RE_Subpool_Handle + + Move the following subprogram entities from + Ada.Finalization.Heap_Management to System.Finalization_Masters: + + RE_Add_Offset_To_Address + RE_Attach + RE_Base_Pool + RE_Detach + + * sem_ch3.adb (Access_Type_Declaration): Replace the call to + Set_Associated_Collection with Set_Finalization_Master. + * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal + BIP_Finalization_Master is created. + * s-finmas.adb: New unit System.Finalization_Masters. + * s-finmas.ads: New unit System.Finalization_Masters. + * s-stopoo.ads, s-stopoo.adb: Minor code reformatting. + * s-stposu.ads, s-stposu.adb: New unit implementing + System.Storage_Pools.Subpools. + +2011-08-29 Bob Duff + + * tbuild.adb: Add assertion. + +2011-08-29 Thomas Quinot + + * s-pooglo.adb: Minor reformatting. + +2011-08-29 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is + an indexed component of a packed array whose element type is a record + with a representation clause different from that of the right-hand + side, generate a temporary to minimuze the number of bit-field + operations generated. + +2011-08-29 Ed Schonberg + + * exp_util.adb (Insert_Actions): Use clauses can be part of lists of + declarations, and thus are likely insertion points for actions. + +2011-08-29 Bob Duff + + * einfo.ads: Minor comment fix. + +2011-08-29 Robert Dewar + + * frontend.adb, gnat1drv.adb: Minor reformatting. + +2011-08-29 Tristan Gingold + + * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment. + * a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add padding + space in front of the header. + +2011-08-29 Johannes Kanig + + * frontend.adb (Frontend): Exit after creating Standard package when + -gnatd.H is present. + * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is + present. + +2011-08-29 Robert Dewar + + * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb, + makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl, + snames.ads-tmpl: Minor reformatting. + +2011-08-29 Philippe Gil + + * prj.adb (Reset_Units_In_Table): New procedure. + Reset units to avoid access to freed memory. + +2011-08-29 Thomas Quinot + + * get_scos.adb: When reading a P statement SCO without a pragma name + (from an older ALI file), ensure that the Pragma_Name component is set + to Unknown_Pragma (not left uninitialized). + +2011-08-29 Vincent Celier + + * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and + modified to compute correctly the object path of a SAL project that is + extending another library project. + (Write_Path_File): New procedure. + * makeutl.ads (Directories): New table moved from Buildgpr + (Get_Directories): New procedure moved from Buildgpr + (Write_Path_File): New procedure + * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the + paths before binding SALs, instead of Set_Ada_Paths. + * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package + Prj. + * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env + (Current_Source_Path_File_Of): New function + (Set_Current_Object_Path_File_Of): New procedure + (Current_Source_Object_File_Of): New function + (Set_Current_Object_Path_File_Of): New procedure + * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env + (Current_Source_Path_File_Of): New function + (Set_Current_Object_Path_File_Of): New procedure + (Current_Source_Object_File_Of): New function + (Set_Current_Object_Path_File_Of): New procedure + +2011-08-29 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a + packed entity, use a bit-field assignment only if there is no change of + representation. + +2011-08-29 Thomas Quinot + + * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use + Is_RTU instead of using Chars comparisons. + +2011-08-29 Thomas Quinot + + * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a + temporary object if the actual is constrained, and the discriminants + read from the stream don't match. + +2011-08-29 Tristan Gingold + + * sem_attr.adb, exp_attr.adb: Add handling of + Attribute_System_Allocator_Alignment + * snames.ads-tmpl: Add Name_System_Allocator_Alignment and + Attribute_System_Allocator_Alignment. + * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment. + * gcc-interface/targtyps.c, gcc-interface/utils2.c, + gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to + get_target_system_allocator_alignment. + +2011-08-29 Arnaud Charlet + + * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update + dependencies. + +2011-08-29 Arnaud Charlet + + * exp_ch3.adb (In_Runtime): Fix typo. + +2011-08-29 Bob Duff + + * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification. + +2011-08-29 Ed Schonberg + + * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged + and a separate tag assignment is generated, ensure that the tag + assignment is analyzed. + +2011-08-29 Ed Schonberg + + * atree.ads, atree.adb (Copy_Separate_List): New function that applies + Copy_Separate_Tree to a list of nodes. Used to create disjoint copies + of statement lists that may contain local declarations. + * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to + duplicate the triggering statements needed for the expansion of this + construct, when the trigger is a dispatching call to a synchronized + primitive. + +2011-08-29 Arnaud Charlet + + * gnat_rm.texi: Add doc for 'Elab_Subp_Body. + * bindgen.adb: Add comments. + * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body + in CodePeer mode. + +2011-08-29 Robert Dewar + + * exp_attr.adb: Minor reformatting. + Minor code reorganization and commenting. + * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor + reformatting. + +2011-08-29 Thomas Quinot + + * get_scos.adb: Ignore chaining indicators not currently supported + by Ada. + +2011-08-29 Arnaud Charlet + + * system.ads: Minor editing. + +2011-08-29 Arnaud Charlet + + * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in + CodePeer mode. + * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of + Attribute_Elab_Subp_Body. + * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New. + * sem_util.adb: Update comments. + +2011-08-29 Thomas Quinot + + * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record + pragma name for each SCO statement corresponding to a pragma. + +2011-08-29 Arnaud Charlet + + * opt.ads: Minor editing. + +2011-08-29 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode + that only made sense for CodePeer mode. + +2011-08-29 Jose Ruiz + + * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag + which is no longer used. + * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the + handling of the 64-bit division check. + * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit + division available. + * system*.ads (Support_64_Bit_Divides): Remove this flag which is no + longer used. + +2011-08-29 Thomas Quinot + + * get_scos.adb: Minor reformatting. + +2011-08-29 Hristian Kirtchev + + * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a + statement list is wrapped in a block, the block is explicitly analyzed + in order to properly redecorate the entities and create a servicing + finalizer. + +2011-08-29 Tristan Gingold + + * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove. + (Set_Zero_Cost_Handling): Remove. + +2011-08-29 Thomas Quinot + + * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting + +2011-08-29 Geert Bosch + + * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation + instruction, as the latter may produce -0.0, which is not a valid VAX + F float number. + (Neg_G): Likewise for VAX F float. + +2011-08-29 Robert Dewar + + * exp_util.adb: Minor reformatting. + +2011-08-29 Yannick Moy + + * sem_ch3.adb: Minor comment update. + +2011-08-29 Thomas Quinot + + * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of + the operand type. + +2011-08-29 Thomas Quinot + + * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush + current statement sequence on a generic instantiation or a subprogram + declaration. + +2011-08-29 Robert Dewar + + * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb: + Minor reformatting. + +2011-08-29 Hristian Kirtchev + + * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)): + Correct the check which involves the freeze node of a controlled or + access-to-controlled type. + +2011-08-29 Geert Bosch + + * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm + statements. + * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from + Asm statements. + +2011-08-29 Yannick Moy + + * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration + for every index type and component type that is not a subtype_mark. + (Process_Subtype): Set Etype of subtype. + +2011-08-29 Robert Dewar + + * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code + reorganization. Minor reformatting. + +2011-08-29 Steve Baird + + * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion + for CodePeer and ALFA modes. + +2011-08-29 Ed Schonberg + + * sem_type.adb (Collect_Interps): Within an instance, collect a homonym + that comes from an enclosing scope if it is not the renaming of an + actual, to handle properly a spurious ambiguity in an instance. + +2011-08-29 Eric Botcazou + + * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to... + (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and + use it instead of the Esize of the first parameter. + (Analyze_Attribute_Definition_Clause) : Adjust call to + above change. + : Likewise. Call it for composite types on the RM size. + +2011-08-29 Yannick Moy + + * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array. + * sem_util.adb (Unique_Name): Correct behaviour for names of + compilation units. + +2011-08-29 Yannick Moy + + * sem_prag.adb (Check_Precondition_Postcondition): In formal + verification mode, analyze pragma expression for correctness, for + pre/post on library-level subprogram, as it is not expanded later. + +2011-08-29 Yannick Moy + + * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates + in formal verification. + +2011-08-29 Thomas Quinot + + * sem_util.adb: Minor reformatting. + * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute, + there's no pragma. + * par_sco.ads, par_sco.adb: Update comments. + +2011-08-29 Yannick Moy + + * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and + associated getter/setter. + * sem_ch6.adb: Remove reference to Is_Postcondition_Proc. + +2011-08-29 Vincent Celier + + * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind + * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler + with declarations for Language_Kind and Dependency_Kind for Ada. + * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name + (Process_Compiler): Take into account the new attributes Dependency_Kind + and Language_Kind. + (Check_Configuration): Check if language kind is unit based, not if the + language name is Ada. + (Process_Exceptions_Unit_Based): Ditto + (Add_Language): Remove default additions of language and dependency kind + * prj.ads: Minor comment change + * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind + +2011-08-29 Johannes Kanig + + * debug.adb: Update comments. + +2011-08-24 Joseph Myers + + * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o) + (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o) + (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New. + (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o) + (ada/initialize.o, ada/raise.o): Remove explicit compilation rules. + +2011-08-22 Rainer Orth + + * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New. + (GNATLIBCFLAGS_FOR_C): Replace + TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET. + (gnatlib-shared-default, gnatlib-shared-dual-win32) + (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared) + (gnatlib-sjlj, gnatlib-zcx): Likewise. + +2011-08-07 Eric Botcazou + + * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change. + + * gcc-interface/gigi.h (enumerate_modes): Fix formatting. + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change. + +2011-08-05 Nicolas Roche + + * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared + libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with + canadian cross. + * gcc-interface/Make-lang.in: Add support for canadian cross setting. + +2011-08-05 Matthew Heaney + + * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth): + subprogram bodies declared out-of-order. + +2011-08-05 Yannick Moy + + * sem_util.adb (Unique_Name): only prefix with "standard" the names of + entities directly in package Standard, otherwise skip the standard + prefix. + +2011-08-05 Robert Dewar + + * a-cbmutr.adb: Minor reformatting + (Allocate_Node): refactor node allocation algorithm + +2011-08-05 Robert Dewar + + * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch. + * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable + mode. + (Analyze_Pragma, case Check_Policy): Ditto. + * sem_prag.ads (Check_Disabled): New function + * snames.ads-tmpl: Add Name_Disable. + +2011-08-05 Robert Dewar + + * gnat_rm.texi: Document implementation-defined policy DISABLE for + pragmas Assertion_Policy, Check_Policy, Debug_Policy. + +2011-08-05 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma + that appears in a generic formal part and applies to a formal + subprogram. + +2011-08-05 Robert Dewar + + * a-cbmutr.ads: Minor reformatting. + +2011-08-05 Matthew Heaney + + * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid + to check count, check sign of value instead. + * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty + (Copy_Subtree): allocate copy of source element + (Equal_Subtree): compare elements, not access objects + +2011-08-05 Vincent Celier + + * gnat_ugn.texi: Fix VMS alternative. + +2011-08-05 Thomas Quinot + + * sem_ch11.adb: Add comment. + +2011-08-05 Robert Dewar + + * exp_util.adb: Minor comment fix. + +2011-08-05 Robert Dewar + + * scng.adb (Error_Unterminated_String): Improve flag position when + comma present. + +2011-08-05 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway + tree containers). + * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded + multiway tree containers. + +2011-08-05 Robert Dewar + + * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2 + * stylesw.adb: Implement -gnatyC to control comment spacing + * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by + -gnatyc/C). + * usage.adb: Add line for -gnatyC. + +2011-08-05 Robert Dewar + + * gnat_ugn.texi: Document -gnatyC. + * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a + synonym for COMMENTS2). + +2011-08-05 Robert Dewar + + * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb, + a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb, + sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb, + a-comutr.ads, lib-xref.adb: Minor reformatting. + +2011-08-05 Robert Dewar + + * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal + warning if there is an exception handler present. + +2011-08-05 Pascal Obry + + * a-iteint.ads: Fix copyright year. + +2011-08-05 Thomas Quinot + + * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a + statement SCO for a USE clause or a representation clause. + +2011-08-05 Yannick Moy + + * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation + between body and spec for stub. + (Detect_And_Add_ALFA_Scope): take into account subprogram stub + * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a + pragma precondition or postcondition, for which the enclosing + subprogram or package in the AST is not the desired one, return empty. + +2011-08-05 Thomas Quinot + + * g-expect.adb: Minor reformatting. + +2011-08-05 Bob Duff + + * a-fihema.adb: Comment out OS_Lib. + +2011-08-05 Matthew Heaney + + * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb] + (unbounded multiway tree containers) and a-iteint.ads. + * a-comutr.ads, a-comutr.adb: + This is the new Ada 2012 unit for unbounded multiway tree containers + * a-cimutr.ads, a-cimutr.adb + This is the new Ada 2012 unit for indefinite multiway tree containers + * a-iteint.ads: New file. + +2011-08-05 Rainer Orth + + * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc. + +2011-08-05 Bob Duff + + * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for + subpools. + * par-ch4.adb (P_Allocator): Parse new subpool specification syntax. + +2011-08-05 Ed Schonberg + + * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the + general indexing aspects of Ada2012. Called when analyzing indexed + components when other interpretations fail. + * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only + in an expression context where overloading is meaningful. This excludes + the occurrence in an aspect specification (efficiency only). + * sem_attr.adb (Analyze_Attribute): indicate that the attributes + related to iterators can be set by an attribute specification, but + cannot be queried. + * sem_ch13.adb (Analyze_Aspect_Specifications): handle + Constant_Indexing and Variable_Indexing. + (Check_Indexing_Functions): New procedure to perform legality checks. + Additional semantic checks at end of declarations. + +2011-08-05 Sergey Rybin + + * tree_io.ads: Update ASIS_Version_Number because of the change of the + order of calling Tree_Write/Tree_Read routines made for aspects. + +2011-08-05 Bob Duff + + * a-fihema.adb (Finalize): Fix race condition. + +2011-08-05 Yannick Moy + + * sem_ch12.adb (Analyze_Package_Instantiation, + Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA + mode. + +2011-08-05 Ed Schonberg + + * sem_type.adb (Specific_Type): in an instance, the type-specific + operand of an equality check that involves null may have a private + type. Use full view to determine legality of construct. + +2011-08-05 Vincent Celier + + * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to + delete or close the file when the call to gnatmake was successful. + +2011-08-05 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set + Global_Discard_Names. + +2011-08-05 Ed Schonberg + + * sinfo.ads: comments on use of entity field for aspect specifications. + +2011-08-05 Ed Schonberg + + * sem_ch12.adb (Reset_Entity): If the entity field of the associated + node is not itself an entity but a selected component, it is a + rewritten parameterless call to an en enclosing synchronized operation, + and this expansion will be performed again in the instance, so there is + no global information to preserve. + +2011-08-05 Javier Miranda + + * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support + for renamings of predefined primitives. + (In_Predef_Prims_DT): New subprogram. + +2011-08-05 Ed Schonberg + + * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a + possible interpretation of name is a reference type, add an + interpretation that is the designated type of the reference + discriminant of that type. + * sem_res.adb (resolve): If the interpretation imposed by context is an + implicit dereference, rewrite the node as the deference of the + reference discriminant. + * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type, + Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from + parent type or base type. + * sem_ch4.adb (Process_Indexed_Component, + Process_Overloaded_Indexed_Component, Indicate_Name_And_Type, + Analyze_Overloaded_Selected_Component, Analyze_Selected_Component): + Check for implicit dereference. + (List_Operand_Interps): Indicate when an implicit dereference is + ambiguous. + * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference. + +2011-08-05 Thomas Quinot + + * scos.ads: Update documentation of SCO table. Pragma statements can now + be marked as disabled (using 'p' instead of 'P' as the statement kind). + * par_sco.ads, par_sco.adb: Implement the above change. + (Process_Decisions_Defer): Generate a P decision for the first parameter + of a dyadic pragma Debug. + * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if + necessary. + * put_scos.adb: Code simplification based on above change. + +2011-08-05 Robert Dewar + + * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb, + bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb, + a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads, + prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting + +2011-08-05 Bob Duff + + * a-stunau.ads, g-spipat.adb: Update comments. + +2011-08-05 Bob Duff + + * a-fihema.ads: Minor comment fix. + * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is + correct. + (Attach, Detach): Remove some unnecessary code. + (Finalize): Remove Node_Ptr_To_Address, replace with a constant. + +2011-08-05 Bob Duff + + * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap + allocation for Objects component. This simplifies the code somewhat. It + is also a little more efficient in the not-so-unusual case where there + are no controlled objects allocated. + Make Finalization_Started flag atomic. + (Finalize): Avoid unnecessary detachment of items from the list. + (pcol): Minor cleanup. + +2011-08-05 Ed Schonberg + + * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal + package whose name is the same as that of the generic unit, or its + ultimate prefix. + +2011-08-05 Bob Duff + + * a-fihema.adb, a-fihema.ads: Minor comment improvements. + * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb: + Minor comment fixes. + +2011-08-05 Arnaud Charlet + + * make.adb (Linking_Phase): No longer need to set source search path + before calling gnatlink in CodePeer mode. + * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to + gcc in CodePeer mode, since the binder generated file no longer has a + 'with Main'. + * switch.ads, switch.adb (Is_Language_Switch): Removed. + * switch-c.adb: Update comment. + +2011-08-05 Thomas Quinot + + * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting. + +2011-08-05 Nicolas Roche + + * gnat_ugn.texi: Fix minor syntax error issue. + +2011-08-05 Vincent Celier + + * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to + delete or close the file when the call to gnatmake returns a non + successful return code. + +2011-08-05 Ed Schonberg + + * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate + check, indicate that the copy of the original node does not come from + source, to prevent an infinite recursion of the expansion. + +2011-08-05 Johannes Kanig + + * debug.adb: document switch -gnatd.G for gnat2why, which deactivates + VC generation for subprogram bodies. + +2011-08-05 Yannick Moy + + * einfo.ads: Typo. + * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define + the base type with the smallest allowed base type. + +2011-08-05 Sergey Rybin + + * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for + aspects. + +2011-08-05 Ed Schonberg + + * sem_ch12.ads: minor comment updates. + +2011-08-05 Ed Schonberg + + * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an + instantiation and a formal package the compiler generates a package + renaming declaration so that the generic name within the declaration + is interpreted as a renaming of the instance. At the end of a formal + package declaration, this renaming must become invisible. + +2011-08-05 Hristian Kirtchev + + * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character + comparison and rely on concrete entities instead. + +2011-08-05 Ed Schonberg + + * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types + and discriminants, to indicate that the type has an access discriminant + that supports implicit dereference. + * snames.ads-tmpl: Add names of aspects and attributes related to + Ada2012 iterators: constant_indexing, default_iterator, + iterator_element, implicit_dereference, variable_indexing. + * aspects.ads, aspects.adb: entries for iterator-related aspects. + * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for + iterator-related aspects. + * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects. + +2011-08-05 Sergey Rybin + + * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling + metrics in gnatmetric to cover new kinds of coupling mentrics. + +2011-08-05 Steve Baird + + * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead + of calling the user-defined main subprogram. + (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode + is set) Call_Main_Subprogram ahead of, as opposed to + inside of, Main. + (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional + generation of a "with" of the user-defined main subprogram. + Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper + (which is now called from Gen_Main instead). + +2011-08-05 Emmanuel Briot + + * projects.texi: Added reference to the Makefile package. + +2011-08-05 Thomas Quinot + + * exp_ch7.adb: Minor comment rewording. + +2011-08-05 Ed Falis + + * env.c: Fix comment. + +2011-08-05 Hristian Kirtchev + + * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid + character comparison and rely on concrete entities instead. + +2011-08-05 Ed Schonberg + + * sem_ch3.adb: (Check_Private_Overriding): better error message, + suggested by AI95-0068. + +2011-08-05 Hristian Kirtchev + + * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve + the two potential initialization calls. This accounts for any + access-before-elaboration checks which may precede the initialization + calls. + (Next_Suitable_Statement): New routine. Returns the next real statement + after the input node while skipping generated checks. + * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along + with comment on usage. + Do not generate Elaborate_All when the trigger is a finalization call + coming from a type init proc. + (Check_Elab_Call): Propagate the initialization procedure context to + subsequent calls to Check_A_Call. + (Check_Internal_Call_Continue): Propagate the initialization procedure + context to subsequent calls to Check_Elab_Call. + (Is_Finalization_Procedure): New routine. Returns True if the input + entity denotes a [Deep_]Finalize routine. + * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc + along with comment on usage. + +2011-08-05 Vadim Godunko + + * s-atocou.ads: Add list of supported platforms. + +2011-08-05 Yannick Moy + + * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables + + * opt.ads (Disable_ALI_File): new Boolean flag + * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing + +2011-08-05 Ed Falis + + * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that + environ is properly defined. + +2011-08-05 Vincent Celier + + * make.adb (Compilation_Phase): Exit immediately when all objects have + been found up to date, to avoid multiple exit messages. + * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the + same project for languages with no compiler. + * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch + -eI. +2011-08-05 Robert Dewar + + * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb, + sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb, + prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb, + s-atocou-builtin.adb: Minor reformatting. + +2011-08-05 Yannick Moy + + * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode, + if the node to wrap is a pragma check, this node and enclosed + expression are not expanded, so do not apply any transformations here. + * exp_prag.adb (Expand_Pragma_Check): document the need to avoid + introducing transient scopes. + +2011-08-05 Jose Ruiz + + * adaint.c (__gnat_set_writable, __gnat_set_readable, + __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable, + __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod + routine is available, so we use the default implementation of these + functions. + * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is + support for copying attributes on VxWorks 6. + +2011-08-05 Yannick Moy + + * debug.adb: Remove use of -gnatd.D. + * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode + * opt.ads: Simplify variables for ALFA mode, to keep one only + * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode + to ALFA mode. + +2011-08-05 Vincent Celier + + * prj-conf.adb (Do_Autoconf): Look also for --RTS in + Builder'Default_Switches. + +2011-08-05 Vincent Celier + + * makeusg.adb: Add lines for --create-map-file switches. + +2011-08-05 Ed Schonberg + + * freeze.adb (Freeze_Entity): For a subprogram, if a type in the + profile is incomplete and the full view is available, replace it with + the full view. + * sem_ch6.adb (Possible_Freeze): if a type in the profile is + incomplete, freezing the subprogram is delayed until the full view is + frozen. + * sem_type.adb (Disambiguate): an ambiguity between a user-defined + fixed-point multiplication operator and the predefined operator is + resolved in favor of the user-defined one. + +2011-08-05 Rainer Orth + + * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use + CONST_CAST. + +2011-08-04 Ed Schonberg + + * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine + whether a type lacks user-defined Read or Write operations, or has a + component that lacks them. + * sem_attr.adb (Check_Stream_Attribute): if restriction + No_Default_Stream_Attributes is active, verify that all subcomponent + types of the target have user-defined stream operations, and report + error otherwise. + * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation. + * exp_strm.adb: Build_Elementary_Input_Call, + Build_Elementary_Write_Call): remove checks for restriction + No_Default_Stream_Attributes, now checked in semantics. + +2011-08-04 Vincent Celier + + * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS + switches on the command line, look for all valid --RTS switches in the + Builder switches and for each language use the first runtime name found + to invoke gprconfig. + (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the + command line and there is no auto-configuration. + (Runtime_Name_Set_For): New function. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Build_Object_Declarations): Do not generate the + elaborate initialization expression for variable Abort when processing + a package body or a declaration. + (Create_Finalizer): Propagate the package context when creating the + exception-related variables. + * exp_ch7.ads (Build_Object_Declarations): New formal parameter + For_Package along with usage comment. + +2011-08-04 Arnaud Charlet + + * gcc-interface/Makefile.in: Clean up targets. + Enable new package for atomic counters and copy-on-write implementation + of unbounded strings on x86 platforms. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-04 Robert Dewar + + * exp_ch7.adb: Minor reformatting. + +2011-08-04 Robert Dewar + + * exp_strm.adb: Minor reformatting. + +2011-08-04 Vadim Godunko + + * s-atocou.adb: Replace by dummy version and use on targets where atomic + operations are not supported. + * s-atocou-builtin.adb: Renamed from s-atocou.adb. + * s-atocou-x86.adb: New file. + * Makefile.rtl: Add s-atocou.o file + +2011-08-04 Arnaud Charlet + + * make.adb (Compile): Move setting of CodePeer_Mode to ... + (Compilation_Phase): ... here. + (Scan_Make_Arg): Now bind and link by default in CodePeer mode. + +2011-08-04 Thomas Quinot + + * Make-generated.in: Fix minor typo in comment. + +2011-08-04 Thomas Quinot + + * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve + the project path. + +2011-08-04 Robert Dewar + + * a-coinho.adb: Minor reformatting. + +2011-08-04 Robert Dewar + + * a-coinho.ads: Minor reformatting. + +2011-08-04 Vadim Godunko + + * s-atocou.ads, s-atocou.adb: New files. + * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads, + a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove + direct use of GCC's atomic builtins and replace them by use of new + atomic counter package. + +2011-08-04 Ed Schonberg + + * exp_strm.adb: better error message for No_Default_Stream_Attributes. + +2011-08-04 Hristian Kirtchev + + * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic + with a call to Get_External_Tag. + * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on + subprogram usage. Remove the guard against package declarations and + bodies since Build_Cleanup_Statements is no longer invoked in that + context. + (Build_Components): Initialize Tagged_Type_Stmts when the context + contains at least one library-level tagged type. + (Build_Finalizer): New local variables Has_Tagged_Types and + Tagged_Type_Stmts along with associated comments on usage. Update the + logic to include tagged type processing. + (Create_Finalizer): Insert all library-level tagged type unregistration + code before the jump block circuitry. + (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements. + (Expand_N_Package_Declaration): Remove the call to + Build_Cleanup_Statements. + (Process_Tagged_Type_Declaration): New routine. Generate a call to + unregister the external tag of a tagged type. + (Processing_Actions): Reimplemented to handle tagged types. + (Process_Declarations): Detect the declaration of a library-level + tagged type and carry out the appropriate actions. + (Unregister_Tagged_Types): Removed. The machinery has been directly + merged with Build_Finalizer. + +2011-08-04 Robert Dewar + + * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb, + gnatls.adb, exp_ch3.adb: Minor reformatting. + +2011-08-04 Marc Sango + + * sem_attr.adb (Analyze_Attribute): Replace the message + "invisible attribute of}" of the spark restriction violation in + attribute reference by the simple message "invisible attribute of type". + Indeed, the node value Error_Msg_Node_1 used is in conflit with the + two insertion characters: '&' and '}'. + +2011-08-04 Vadim Godunko + + * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho". + * a-coinho.ads, a-coinho.adb: New file. + * Makefile.rtl: Add Ada.Containers.Indefinite_Holders. + +2011-08-04 Nicolas Roche + + * alfa_test.adb: Not all ali files are containing alfa information even + if compiled with -gnatd.F. So suppress warning about missing ALFA + information. + +2011-08-04 Yannick Moy + + * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for + scope. + * put_alfa.adb: Check that scope name is not empty. + +2011-08-04 Ed Schonberg + + * exp_ch3.adb (Stream_Operation_Ok): new predicate + Needs_Elementary_Stream_Operation, to determine whether user-defined + Read and Write attributes are available for the elementary components + of the given type. If only the predefined attributes are available, + then when restriction No_Default_Stream_Attributes is active the + predefined stream attributes for the composite type cannot be created. + +2011-08-04 Robert Dewar + + * bindgen.adb: Fix obsolete comments and names from Ada/C days. + Put routines in alpha order + +2011-08-04 Jose Ruiz + + * gcc-interface/Makefile.in: Remove xenomai specific versions of system. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-04 Arnaud Charlet + + * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada. + * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls + gnat1why). + +2011-08-04 Robert Dewar + + * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb, + lib-xref-alfa.adb: Minor reformatting. + +2011-08-04 Marc Sango + + * sem_ch12.adb (Analyze_Generic_Package_Declaration, + Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Check absence of generic in SPARK + mode. + +2011-08-04 Tristan Gingold + + * bindgen.adb (Gen_Adainit_C): Remove. + (Gen_Adafinal_C): Ditto. + (Gen_Elab_Externals_C): Ditto. + (Gen_Elab_Calls_C): Ditto. + (Gen_Elab_Order_C): Ditto. + (Gen_Elab_Defs_C): Ditto. + (Gen_Finalize_Library_C): Ditto. + (Gen_Finalize_Library_Defs_C): Ditto. + (Gen_Main_C): Ditto. + (Gen_Output_File_C): Ditto. + (Gen_Restrictions_C): Ditto. + (Gen_Versions_C): Ditto. + (Write_Info_Ada_C): Ditto. + (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C + (Gen_Output_File): Do not force Ada_Bind_File anymore. + Always call Gen_Output_File_Ada. + * gnatlink.adb (Begin_Info): Now a constant. + (End_Info): Ditto. + (Ada_Bind_File): Remove + (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases. + * switch-b.adb (Scan_Binder_Switches): Do not handle -C. + * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases. + * opt.ads (Ada_Bind_File): Remove. + +2011-08-04 Thomas Quinot + + * projects.texi: Document target-specific directory in default project + path for gnatmake. + +2011-08-04 Thomas Quinot + + * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project + path in all cases . + +2011-08-04 Yannick Moy + + * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb, + opt.ads, lib-xref.ads: Code clean up. + +2011-08-04 Yannick Moy + + * gnat_rm.texi: Update description of Test_Case + * gnat_ugn.texi: Typo. + +2011-08-04 Ed Falis + + * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin. + +2011-08-04 Hristian Kirtchev + + * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when + it is of type Root_Controlled. This action eliminates fields Prev and + Next from type equality. + +2011-08-04 Yannick Moy + + * lib-xref-alfa.adb: Correct typo. + +2011-08-04 Matthew Heaney + + * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes + component. + +2011-08-04 Yannick Moy + + * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure + (Analyze_Pragma): allow static string expression for name of Test_Case, + instead of simply string literals. + * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string + expressions. + +2011-08-04 Vincent Celier + + * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical + case suffixes to find truncated main sources. + +2011-08-04 Tristan Gingold + + * impunit.adb (Non_Imp_File_Names_95): Add g-tastus. + s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put. + (Compute_Current_Task): Ditto. + +2011-08-04 Tristan Gingold + + * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage. + +2011-08-04 Yannick Moy + + * lib-xref-alfa.adb (Is_Global_Constant): new function that detects + library-level constant. + (Add_ALFA_Xrefs): ignore global constants in ALFA xref. + * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal + used as selector of parameter association, in ALFA mode. + +2011-08-04 Robert Dewar + + * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb, + s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor + reformatting. + +2011-08-04 Arnaud Charlet + + * make.adb (Linking_Phase): Set source search path before calling + gnatlink in CodePeer mode. + +2011-08-04 Javier Miranda + + * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration): + Remove code which takes care of building TSDs. + * rtsfind.ads (RE_Check_Interface_Conversion): New entity. + * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating + the accessibility check in VM targets. + * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads + (Building_Static_DT): Now returns false for VM targets. + (Build_VM_TSDs): Removed. + (Expand_Interface_Conversion): Generate missing runtime check for + conversions to interface types whose target type is unknown at compile + time. + (Make_VM_TSD): Add missing code to disable the generation of calls to + Check_TSD if the tagged type is not defined at library level, or not + has a representation clause specifying its external tag, or -gnatdQ is + active. + * exp_disp.ads (Build_VM_TSDs): Removed. + (Make_VM_TSDs): Spec relocated from exp_disp.adb + * sem_disp.adb (Check_Dispatching_Operation): No code required to + register primitives in the dispatch tables in VM targets. + * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of + initialization of class-wide interface objects in VM targets. + (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead + of Make_DT). + +2011-08-04 Jerome Lambourg + + * gnatlink.adb (Gnatlink): Correct missleading error message displayed + when dotnet-ld cannot be found. + +2011-08-04 Arnaud Charlet + + * bindgen.adb: Simplify significantly generation of binder body file in + CodePeer mode. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure + when compiling binder generated file in CodePeer mode (xxx'Elab_Spec + not expanded). + +2011-08-04 Yannick Moy + + * sem_prag.adb, sem.ads: Code cleanup. + +2011-08-04 Tristan Gingold + + * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part. + * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate + results if possible. + * s-stusta.adb (Print): Adjust after changes in s-stausa. + * gnat_ugn.texi: Update dynamic stack usage section. + +2011-08-04 Steve Baird + + * bindgen.adb (Gen_CodePeer_Wrapper): new procedure. + Generate (if CodePeer_Mode is set) a "wrapper" subprogram which + contains only a call to the user-defined main subprogram. + (Gen_Main_Ada) - If CodePeer_Mode is set, then + call the "wrapper" subprogram instead of directly + calling the user-defined main subprogram. + +2011-08-04 Hristian Kirtchev + + * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all + alternatives of a case statement for controlled objects. Rename local + variable A to Dead_Alt. + (Expand_N_If_Statement): Check the then and else statements of an if + statement for controlled objects. Check the then statements of all + elsif parts of an if statement for controlled objects. + (Expand_N_Loop_Statement): Check the statements of a loop for controlled + objects. + * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which + detects a loop associated with the expansion of an array object. + Augment the processing of the loop statements to account for a possible + wrap done by Process_Statements_For_Controlled_Objects. + * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering + statements and abortable part of an asynchronous select for controlled + objects. + (Expand_N_Conditional_Entry_Call): Check the else statements of a + conditional entry call for controlled objects. + (Expand_N_Selective_Accept): Check the alternatives of a selective + accept for controlled objects. + (Expand_N_Timed_Entry_Call): Check the entry call and delay + alternatives of a timed entry call for controlled objects. + * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an + exception handler for controlled objects. + * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)): + Add formal parameter Nested_Constructs along with its associated + comment. + (Requires_Cleanup_Actions (Node_Id)): Update all calls to + Requires_Cleanup_Actions. + (Process_Statements_For_Controlled_Objects): New routine. + * exp_util.ads (Process_Statements_For_Controlled_Objects): New + routine. Inspect a node which contains a non-handled sequence of + statements for controlled objects. If such an object is found, the + statements are wrapped in a block. + +2011-08-04 Bob Duff + + * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we + need to compare with Class_Wide_Type (T2), in order to get at the + original class-wide type node. + * sem_type.ads (Covers): Improve the comment. + * einfo.ads (Class_Wide_Type): Improve the comment. + * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of + the type of the Deref. + +2011-08-04 Yannick Moy + + * gnat_rm.texi: Document that Test_Case pragma can only appear on + separate declarations. + * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to + check identifier of pragma argument. + (Chain_TC): check that no other test case associated to the same entity + share the same name. + (Check_Test_Case): disallow test case inside subprogram body + (Analyze_Pragma): correct call to check identifier and not argument + * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new + function gets name from test case pragma. + +2011-08-04 Yannick Moy + + * gnat_rm.texi: Document new pragma and aspect. + * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case + (No_Duplicates_Allowed): new constant array defining whether duplicates + aspects of each kind can appear on the same declaration. + * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract + field, which points to a node holding the previous Spec_PPC_List. + * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List + through the indirection with Contract. + * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node + * par-prag.adb (Prag): do nothing on Test_Case pragma + * sem.adb (Analyze): abort on N_Contract, on which Analyze should not + be called directly. + * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in + component Ensures of Test_Case. + * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb + (Analyze_Generic_Subprogram_Declaration, + Analyze_Subprogram_Instantiation, + Analyze_Abstract_Subprogram_Declaration, + Analyze_Subprogram_Body_Helper, + Analyze_Subprogram_Specification, Analyze_Entry_Declaration): + insert contract in subprogram node at point of definition + * sem_ch13.adb + (Aspect_Loop): do not raise error on duplicate Test_Case aspect + (Analyze_Aspect_Specifications): analyze Test_Case aspect and create + corresponding pragma + (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect + * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases, + similar to the analysis of pre/post + (Derive_Subprogram): insert contract in subprogram node at point of + derivation. + * sem_prag.adb, sem_prag.ads + (Check_Arg_Is_String_Literal, Check_Identifier): + new checking procedures to be called in treatment of pragmas + (Check_Test_Case): new procedure to check that a Test_Case aspect or + pragma is well-formed. This does not check currently that 'Result is + used only in the Ensures component of a Test_Case. + (Analyze_Pragma): add case for Test_Case + (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures + components of a Test_Case. + (Preanalyze_TC_Args): new procedure to preanalyze the boolean + expressions in the 3rd (and 4th if present) arguments of a Test_Case + pragma, treated as spec expressions. + (Sig_Flags): add value -1 for Test_Case. + * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma, + Get_Requires_From_Test_Case_Pragma): getters for both expression + components of a Test_Case. + * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as + indirection between an entry or [generic] subprogram entity and its + pre/post + test-cases. + (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List): + get/set for fields of an N_Contract node. + * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode, + Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new + names and pragma for Test_Case. + * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node + +2011-08-04 Vincent Celier + + * gnat_ugn.texi: Improve documentation of gnatmake switch + --source-info-file=. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion + type). Initialize Atyp to the appropriate type which is later checked + for completion. Rewrite the assertion associated with private type + completion. + +2011-08-04 Ed Falis + + * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to + initialize the number of CPUs. + +2011-08-04 Ed Schonberg + + * sem_type.adb (Disambiguate): New subsidiary routine + In_Same_Declaration_List, to implement AI05-0020: a user-defined + equality on an anonymous access type whose designated type is private + does not lead to an ambiguity with the universal access equality + operator in the body or child units of the defining package. The same + is true for a multiplication operator on a private type completed with + a fixed-point-type. + +2011-08-04 Javier Miranda + + * opt.ads (Init_Or_Norm_Scalars_Config): Removed. + (Normalize_Scalars_Config): Removed. + * opt.adb + (Register_Opt_Config_Switches): Remove registering config values of + Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config. + (Restore_Opt_Config_Switches): Remove code which restores the values of + Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of + Init_Or_Norm_Scalars. + (Save_Opt_Config_Switches): Remove code which saves values of + Init_Or_Norm_Scalars and Normalize_Scalars. + (Set_Opt_Config_Switches): Remove code which restores config values of + Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of + Init_Or_Norm_Scalars. + +2011-08-04 Yannick Moy + + * frontend.adb (Frontend): remove previous patch to avoid full + qualification in ALFA mode. + * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables. + * sem_util.adb, sem_util.ads (Unique_Name): new function to define a + unique name for an entity, which could be used to identify the entity + across compilation units. + +2011-08-04 Thomas Quinot + + * prj-env.adb + (Initialize_Default_Project_Path): Add target specific directory + ($prefix/$target/lib/gnat) in front of project path in all cases + (making gnatmake's behaviour consistent with gprbuild). + * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: + Pass target name from Sdefault to project subsystem. + * gnatls.adb: Show new target specific default project directory. + +2011-08-04 Johannes Kanig + + * cstand.adb: Add Information to Identifier in Standard + (Identifer_For): Set Entity to the corresponding entity + +2011-08-04 Sergey Rybin + + * gnat_ugn.texi: Update doc on gnatcheck. + +2011-08-04 Yannick Moy + + * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of + xrefs in a scope. + +2011-08-04 Yannick Moy + + * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without + performing expansion. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper, + Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that + it is not called in ALFA mode. + +2011-08-04 Emmanuel Briot + + * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used + after all, so removed. + +2011-08-04 Sergey Rybin + + * vms_data.ads: Add missing VMS qualifiers. + +2011-08-04 Emmanuel Briot + + * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild + the list of files on the command line after processing it through + Complete_Mains. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Build_Raise_Statement): Remove the specialized + processing for .NET/JVM. These targets can now benefit from + Raise_From_Controlled_Operation and they share the same processing with + standard targets. + (Establish_Transient_Scope): Remove the restriction for .NET/JVM. + These targets need transient scopes in order to properly finalize short + lived controlled objects. + (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for + NET/JVM. These targets can now benefit from + Raise_From_Controlled_Operation and they share the same processing with + standard targets. + +2011-08-04 Geert Bosch + + * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack + +2011-08-04 Ed Schonberg + + * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to + Expand_Record_Aggregate, to determine whether aggregate must be + expanded into assignments. This is the case if the ancestor part is + private, regarless of the setting of the flag Has_Private_Ancestor. + +2011-08-04 Ed Falis + + * vxaddr2line.adb: Add support for e500v2 and for Linux hosts + +2011-08-04 Bob Duff + + * sinfo.ads: Fix comment. + +2011-08-04 Steve Baird + + * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then + choose a package name in much the same way as is + done for JGNAT when VM_Target /= No_VM, except that + a slightly more distinctive prefix string is used. + +2011-08-04 Emmanuel Briot + + * makeutl.adb (Complete_Mains): no longer accept unit names on the + gnatmake command line. + This behavior was never documented (and was supported only because of + an early bug in the code). This case might lead to ambiguous cases + (between unit names and truncated base names without suffixes). + +2011-08-04 Hristian Kirtchev + + * a-tags.ads, a-tags.adb (Unregister_Tag): New routine. + Remove the external tag of a tagged type from the internal hash table. + * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the + expanded usage of the routine. Strenghten the check for Is_Master. Add + processing for tagged types. + (Build_Finalizer): Create all the necessary lists used in finalizer + creation when the processed context is a package that may contain + tagged types. + (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to + Requires_Cleanup_Actions. + (Expand_N_Package_Body): Package bodies may need clean up code + depending on whether they contain tagged types. + (Expand_N_Package_Declaration): Package declarations may need clean up + code depending on whether they contain tagged types. + (Unregister_Tagged_Types): New routine. Search through a list of + declarations or statements, looking for non-abstract Ada tagged types. + For each such type, generate code to unregister the external tag. + * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to + Requires_Cleanup_Actions. + (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search + through a list of declarations or statements looking for non-abstract + Ada tagged types or controlled objects. + * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to + Requires_Cleanup_Actions. + (Has_Controlled_Objects (List_Id, Boolean)): Removed. + * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and + RE_Unit_Table. + +2011-08-04 Vincent Celier + + * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj + has Ada sources, not project Project, because if the root project + Project has no sources of its own, all projects will be deemed without + sources. + +2011-08-04 Gary Dismukes + + * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration + of the No_Param_Proc acc-to-subp type used for initialization of + __gnat_finalize_library_objects so that it's declared at library level + rather than nested inside of the adainit routine. + +2011-08-04 Javier Miranda + + * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY + if the tagged type has a representation clause which specifies its + external tag. + +2011-08-04 Ed Schonberg + + * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types. + Remove previous procedure with that name. + * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor + when appropriate. + * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a + subtype mark, the ancestor cannot have unknown discriminants. + (Resolve_Record_Aggregate): if the type has invisible components + because of a private ancestor, the aggregate is illegal. + +2011-08-04 Vincent Celier + + * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into + account switches -gnat2005, -gnat12 and -gnat2012. + +2011-08-04 Bob Duff + + * s-tasdeb.ads: Minor comment fix. + +2011-08-04 Arnaud Charlet + + * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in + CodePeer mode. + * switch.ads, switch.adb (Is_Language_Switch): New function. + +2011-08-04 Vincent Celier + + * switch-c.adb: Minor comment addition. + +2011-08-04 Vincent Celier + + * vms_conv.adb (Process_Argument): Fail graciously when qualifier + ending with '=' is followed by a space (missing file name). + +2011-08-04 Pascal Obry + + * g-regist.ads: Fix size of HKEY on x86_64-windows. + +2011-08-04 Ed Schonberg + + * sem_ch12.adb (Analyze_Associations): New routine + Check_Overloaded_Formal_Subprogram to reject a formal package when + there is a named association or a box initialisation for an overloaded + formal subprogram of the corresponding generic. + +2011-08-04 Yannick Moy + + * alfa.ads (ALFA_Xref_Record): add component for type of entity + * get_alfa.adb, put_alfa.adb: Read and write new component of + cross-reference. + * lib-xref-alfa.adb (Collect_ALFA): generate new component. + +2011-08-04 Pascal Obry + + * urealp.adb: Minor reformatting. + +2011-08-04 Tristan Gingold + + * exp_ch7.adb (build_finalizer.process_declarations.processing_actions): + Handle the case when Cleanup_Protected_Object returns Empty. + +2011-08-04 Yannick Moy + + * frontend.adb (Frontend): only qualify names in non-ALFA mode + +2011-08-04 Ed Schonberg + + * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure + call, ignore functions. + +2011-08-04 Geert Bosch + + * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating + point. + +2011-08-04 Emmanuel Briot + + * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name + as an index for Builder'Switches. This conforms to the documentation. + * make.adb (Insert_Project_Sources): avoid duplicate code + +2011-08-04 Emmanuel Briot + + * makeutl.adb (Complete_Mains): if the user has passed a relative file + name on the command line (for instance "../dummy"), never assume it can + be a unit name. + +2011-08-04 Tristan Gingold + + * bindgen.adb: Remove code the reference or create the + Break_Start/__gnat_break_start procedure. + * s-stalib.adb (Break_Start): Removed. + +2011-08-04 Emmanuel Briot + + * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now + shared with gprbuild. + +2011-08-04 Yannick Moy + + * par-ch4.adb (P_Primary): preferentially issue an error message about + a missing parenthesis arount a conditional or case expression in Ada + 2012 mode, if we detect that the alignment is not correct for a + statement. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Process_Declarations): Do not consider the result of a + tag-to-class-wide conversion as needing finalization actions. + * exp_util.adb (Has_Controlled_Objects): Do not consider the result of + a tag-to-class-wide conversion as needing finalization actions. + (Is_Finalizable_Transient): The result of a tag-to-class-wide + conversion does not need finalization actions. + (Is_Tag_To_CW_Conversion): New routine. + * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines + whether an object is the result of a tag-to-class-wide conversion. + +2011-08-04 Yannick Moy + + * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which + the left-hand-side and right-hand-side of a conjunct are inserted when + translating a pre- or postcondition + * sem_ch6.adb: Correct typo in comment + +2011-08-04 Ed Schonberg + + * gnat_rm.texi: Ravenscar does not prohibit dependence on + Unchecked_Conversion and Unchecked_Deallocation. + +2011-08-04 Thomas Quinot + + * make.adb: Minor reformatting. + +2011-08-04 Emmanuel Briot + + * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the + sources in the project and its imported projects, but not in the whole + tree. + +2011-08-04 Emmanuel Briot + + * make.adb: Remove debug trace. + +2011-08-04 Vincent Celier + + * makeutl.adb (Do_Complete): Get the absolute path name of a relative + path in canonical form, to be able to compare path names on platforms + such as Windows or Darwin. + +2011-08-04 Thomas Quinot + + * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry): + For a pragma (statement with C1 = 'P'), record the sloc of the pragma. + * scos.ads: Update documentation accordingly. + * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled + pragmas. + +2011-08-04 Ed Schonberg + + * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of + attribute only if prefix type is scalar. + +2011-08-04 Emmanuel Briot + + * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support + in gnatmake for specifying mains on the command line that do not belong + to the main project. These mains must currently all belong to the same + project, though. + (Ultimate_Extension_Of): removed, since duplicated + Ultimate_Extending_Project. + +2011-08-04 Arnaud Charlet + + * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode + instead. + (CodePeer_Mode_String): New. + (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in + CodePeer mode. + (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode. + * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer + mode, since no useful elaboration subprogram is needed by CodePeer. + * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode). + In this mode, compile binder file with -gnatC and do stop after this + step. + +2011-08-04 Vincent Celier + + * exp_ch7.adb: Minor comment fix. + +2011-08-04 Robert Dewar + + * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb, + exp_ch4.adb, makeutl.adb: Minor reformatting. + +2011-08-04 Emmanuel Briot + + * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring. + Create several new subprograms to move code out of Make. This makes the + code more readable, removes code duplication, and is a preparation work + for adding support for aggregate projects. + +2011-08-04 Tristan Gingold + + * s-po32gl.ads, s-po32gl.adb: New files. + * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function. + * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function. + (Build_Finalization_Collection): Use it. + * exp_ch4.adb (Complete_Controlled_Allocation): Ditto. + * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New + literals. + * gcc-interface/Makefile.in: Use s-po32gl.o on VMS. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-04 Emmanuel Briot + + * makeutl.adb (Complete_Mains): add support for specs with no suffix on + the command line. + +2011-08-04 Emmanuel Briot + + * make.adb, makeutl.adb (Complete_Mains): if a main specified on the + command line is not a file name, also check whether it could be a unit + name. + +2011-08-04 Eric Botcazou + + * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate + the header of the finalization routine. + If the unit has no finalizer but is a body whose spec has one, then + generate the decrement of the elaboration entity only. + If the unit has a finalizer and is a spec, then do not generate the + decrement of the elaboration entity. + (Gen_Finalize_Library_C): Likewise. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Alignment_Of): New subsidiary routine. + (Bounds_Size_Expression): Removed. + (Double_Alignment_Of): New subsidiary routine. + (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account + for a hole in the dope vector of unconstrained arrays due to different + index and element alignments. + +2011-08-04 Ed Schonberg + + * sem_res.adb (Resolve_Allocator): diagnose task allocator that will + raise program_error because body has not been seen yet. + +2011-08-04 Ed Schonberg + + * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with + an unresolved name. + +2011-08-04 Vincent Celier + + * makeutl.adb (Do_Complete): Check absolute paths in canonical forms + +2011-08-04 Yannick Moy + + * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here + * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here + +2011-08-04 Thomas Quinot + + * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for + instantiation in RCI. + +2011-08-04 Emmanuel Briot + + * make.adb: Share more code with gprbuild + +2011-08-04 Emmanuel Briot + + * projects.texi: Added documentation for the IDE'Gnat project file + attribute. + +2011-08-04 Nicolas Roche + + * gnat_rm.texi: Minor editing. + +2011-08-04 Javier Miranda + + * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case + and the library case for VM targets. + (Gen_Adainit_Ada): Likewise. + +2011-08-04 Robert Dewar + + * g-altive.ads: Minor comment updates. + * prj-nmsc.adb: Minor reformatting. + +2011-08-04 Javier Miranda + + * opt.ads + (Normalize_Scalars_Config): Value of the configuration switch set by + pragma Normalize_Scalars when it appears in the gnat.adc file. + (Normalize_Scalars): New field for record Config_Switches_Type. Used + to save and restore settings of this pragma. + * opt.adb + (Register_Opt_Config_Switches, Save_Opt_Config_Switches, + Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars. + +2011-08-04 Vincent Celier + + * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile + +2011-08-04 Arnaud Charlet + + * makeutl.adb: Minor reformatting. + +2011-08-04 Olivier Hainque + + * g-altive.ads: Update comments to reflect that only the soft + binding is available today. + +2011-08-04 Robert Dewar + + * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb, + makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-04 Arnaud Charlet + + * prj-env.adb: Remove local debug traces. + +2011-08-04 Yannick Moy + + * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK + was used instead of Hi_OK, which could cause a read of an uninitialized + value later on. Detected while working on the new warning. + * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment + to local variable. + * sem_ch5.adb (Analyze_Assignment): set the last assignment component + in more cases, in order to detect more unreferenced values. + * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing + object for expression, if any. + +2011-08-04 Eric Botcazou + + * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of + the operand types instead of the Esize. + +2011-08-04 Steve Baird + + * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to + enable CodePeer_Mode. + * bindusg.adb (Display): Add help message describing -P binder switch. + * gnat_ugn.texi: Document -P binder switch. + * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the + user-defined main program directly. + (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the + user-defined main program in the context clause of the package body. + +2011-08-04 Yannick Moy + + * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial + duplicate of Defining_Entity + (Get_Unique_Entity_For_Decl): rename function into + Unique_Defining_Entity + * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags + (Formal_Proof_On): remove synthesized flag + * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, + sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb, + sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA + * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma + Annotate (Formal_Proof) + +2011-08-04 Emmanuel Briot + + * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit + source files with non-standard naming schemes, in imported projects + +2011-08-04 Emmanuel Briot + + * makeutl.adb (Complete_Mains): when a multi-unit source file is + specified on the gprbuild command line, we need to compile all units + within that file, not just the first one we find + Fix error message for mains that are not found. + +2011-08-04 Thomas Quinot + + * sem_ch6.adb: Update comment. + * sem_ch12.adb: Minor reformatting. + +2011-08-04 Bob Duff + + * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading + Acceptor.Terminate_Alternative without locking Acceptor, which causes a + race condition whose symptom is to fail to lock Parent. That, in turn, + causes Parent.Awake_Count to be accessed without locking Parent, which + causes another race condition whose symptom is that Parent.Awake_Count + can be off by 1 (either too high or too low). The solution is to lock + Parent unconditionally, and then lock Acceptor, before reading + Acceptor.Terminate_Alternative. + +2011-08-04 Arnaud Charlet + + * debug.adb: Update comment. + +2011-08-04 Robert Dewar + + * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb, + sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads, + exp_ch6.adb: Minor reformatting. + +2011-08-04 Gary Dismukes + + * gnat_ugn.texi: Add sentence about the case of compile-time-detected + checks for -gnateE. + +2011-08-04 Ed Schonberg + + * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM. + +2011-08-04 Thomas Quinot + + * sinfo.ads: Minor reformatting. + +2011-08-04 Emmanuel Briot + + * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error + even if there is no location. + +2011-08-04 Ed Schonberg + + * sem_res.adb, sem_ch4.adb: move check for restriction + No_Task_Hierarchy to resolve_allocator. + +2011-08-04 Thomas Quinot + + * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled): + This flag of N_Pragma nodes is not used, remove it as well as all of + the associated circuitry. + +2011-08-04 Javier Miranda + + * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the + runtime check on duplicated externa tags + * debug.adb Document switch -gnatdQ. + +2011-08-04 Gary Dismukes + + * a-fihema.ads: Minor typo fix. + +2011-08-04 Yannick Moy + + * sem_ch10.adb: Minor comment update. + +2011-08-04 Hristian Kirtchev + + * einfo.adb: Update the node field usage to reflect the renaming of + Return_Flag to Return_ Flag_Or_Transient_Decl. + (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. + (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. + (Write_Field15_Name): Change Return_Flag to + Return_Flag_Or_Transient_Decl. + * einfo.ads: Rename node field Return_Flag to + Return_Flag_Or_Transient_Decl. Update the associated comment and all + occurrences in entities. + (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update + associated Inline pragma. + (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update + associated Inline pragma. + * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New + routine. + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to + Return_Flag and Set_Return_Flag. + * exp_ch7.adb (Process_Declarations): Add code to recognize hook + objects generated for controlled transients declared inside an + Exception_With_Actions. Update the calls to Return_Flag. + (Process_Object_Declaration): Add code to add a null guard for hook + objects generated for controlled transients declared inside an + Exception_With_Actions. Update related comment. + * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook + objects generated for controlled transients declared inside an + Exception_With_Actions. Update the calls to Return_Flag. + * expander.adb (Expand): Add new case for N_Expression_With_Actions. + +2011-08-04 Ed Schonberg + + * sem_util.adb:(Wrong_Type): Improve error message on a one-element + positional aggregate. + +2011-08-04 Vincent Celier + + * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma + SLOC only for pragmas. + +2011-08-04 Emmanuel Briot + + * projects.texi: Minor typo fix. + +2011-08-04 Emmanuel Briot + + * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging + on case-sensitive file systems. + +2011-08-04 Thomas Quinot + + * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision + nested in a disabled pragma. + * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of + enclosing pragma, if any, for X decisions. + +2011-08-04 Thomas Quinot + + * sem_prag.adb: Minor reformatting. + +2011-08-04 Vincent Celier + + * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not + allowed in no run time mode. + +2011-08-04 Vincent Celier + + * make.adb (Check): When -gnatc is used, check for the source file + inside the ALI file with a canonical case file name. + +2011-08-04 Emmanuel Briot + + * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for + overriding the separator. + +2011-08-04 Robert Dewar + + * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb, + prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting. + +2011-08-04 Robert Dewar + + * gnat_rm.texi: Minor documentation fix for pragma Annotate. + +2011-08-04 Yannick Moy + + * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that + 'Result only appears in postcondition of function. + +2011-08-04 Thomas Quinot + + * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated + external tag, include the value of the external tag in the exception + message. + +2011-08-04 Yannick Moy + + * sem_attr.adb (Result): modify error message for misplaced 'Result + +2011-08-04 Sergey Rybin + + * gnat_rm.texi (pragma Annotate): Fix syntax description to make it + clear that the second argument must be an identifier. + +2011-08-04 Thomas Quinot + + * exp_ch9.adb (Build_Barrier_Function): When compiling with + -fpreserve-control-flow, insert an IF statement on the barrier + condition to ensure that a conditional branch instruction is generated. + +2011-08-04 Emmanuel Briot + + * prj-part.adb, prj.adb, prj.ads, prj-tree.ads + (Processing_Flags.Ignore_Missing_With): new flag. + +2011-08-04 Emmanuel Briot + + * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of + Source_List_File on case-insensitive systems where the file is actually + on a case-sensitive file system (NFS,...). + +2011-08-04 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Function_Return): In a rare case where a + function return contains a controlled [extension] aggregate and the + return statement is not part of a handled sequence of statements, wrap + the return in a block. This ensures that all controlled temporaries + generated during aggregate resolution will be picked up by the + finalization machinery. + +2011-08-04 Ed Schonberg + + * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized + components, freeze type before resolution, to ensure that default + initializations are present for all components. + * sem_res.adb (Resolve_Actuals): the designated object of an + accces-to-constant type is a legal actual in a call to an + initialization procedure. + +2011-08-04 Hristian Kirtchev + + * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and + N_Unchecked_Type_Conversion to the possible containers of a renamed + transient variable. + +2011-08-04 Yannick Moy + + * par-ch13.adb (Aspect_Specifications_Present): recognize + "with Identifier'Class =>" as an aspect, so that a meaningful warning + is issued in Strict mode. + * par.adb: Fix typos in comments. + +2011-08-04 Yannick Moy + + * sem_attr.adb (Result): modify error message to take into account Post + aspect when compiling Ada 2012 (or newer) code. + +2011-08-04 Nicolas Roche + + * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to + remove need for GCC exceptions. + +2011-08-04 Vincent Celier + + * makeutl.adb (Do_Complete): Call Debug_Output with the name of the + project, not the source file name. + * prj.adb (Find_Sources.Look_For_Sources): If the source has been + excluded, continue looking. This excluded source will only be returned + if there is no other source with the same base name that is not locally + removed. + +2011-08-04 Ed Schonberg + + * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is + private and one of the operands is a real literal, use a qualified + expression rather than a conversion which is not meaningful to the + back-end. + +2011-08-04 Yannick Moy + + * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise + corresponding aspect X'Class are allowed, proceed with analysis of the + aspect instead of skipping it. + +2011-08-04 Tristan Gingold + + * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads + This will allow to have an Ada implementation for the subprogram. + +2011-08-04 Ed Schonberg + + * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a + completion and aspects are present, apply them to the entity for the + type which is currently the partial view, but which is the one that + will be frozen. + * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate + applies to a partial view, indicate that the full view has predicates + and delayed aspects. + (Replace_Type_Reference): Handle properly predicates that apply to the + full view of a private completion. + +2011-08-04 Eric Botcazou + + * layout.adb (Layout_Type): For composite types, do not set Esize. + * freeze.adb (Set_Small_Size): Remove test on alignment and do not + set Esize. + (Size_Known): Look at the RM size of components instead of the Esize. + (Freeze_Record_Type): Look at the RM size instead of the Esize to + issue warning and activate Implicit_Packing. + (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic + if the Esize is not known. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause) : Set Esize + for elementary types only. + (Analyze_Record_Representation_Clause): Look at the RM size instead + of the Esize to issue errors. + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it + is not known. + : Look at the RM size instead of the Esize. Remove + obsolete block. + Look at the RM size instead of the Esize for types if the latter is + not known. + (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize. + +2011-08-04 Ed Schonberg + + * sem_type.adb: proper handling of equality not involving anonymous + access types. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and + Vis_Decls. When creating a library-level finalizer for a package spec, + both the declaration and body of the finalizer are inserted either in + the visible or private declarations of the package spec. + +2011-08-04 Javier Miranda + + * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the + use of the full-view of a type when invoking Is_Ancestor. + * sem_type.adb (Is_Ancestor): For consistency, when the traversal of + the full-view of private parents is requested, then use also the + full-view of the parent of the first derivation. + +2011-08-04 Tristan Gingold + + * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset + instead of the locally imported procedure. + * s-taprop-mingw.adb (Enter_Task): Ditto. + * s-valrea.adb (Scan_Real): Ditto. + * s-imgrea.adb (Set_Image_Real): Ditto. + * s-flocon.ads: Make the package pure. + +2011-08-04 Thomas Quinot + + * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove. + * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly. + * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement): + New subprogram, moved here from... + * par.adb, par-ch5.adb (P_Statement_Name): ... here. + * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any + rewriting of the last argument into a procedure call statement here... + * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there + instead. + +2011-08-04 Thomas Quinot + + * par_sco.adb: Minor reformatting. + +2011-08-04 Robert Dewar + + * erroutc.adb: Minor reformatting. + +2011-08-04 Thomas Quinot + + * par_sco.adb: Comment update. + +2011-08-04 Tristan Gingold + + * s-flocon.ads: New file. + * g-flocon.ads: Now a renaming of s-flocon. + * Makefile.rtl: Add s-flocon.o + +2011-08-04 Javier Miranda + + * exp_strm.adb (Build_Array_Input_Function): if the array type is + constrained, do not attempt to build a subtype of it. + +2011-08-04 Yannick Moy + + * errout.ads Change comments: remove 'R'M as an example where quotes + are needed; add ALFA as another case where quotes are not needed + * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another + case where quotes are not needed. + * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, + sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb: + Remove all occurrences of 'A'L'F'A + +2011-08-04 Ed Schonberg + + * sem_ch13.adb: check legality of invariant pragma. + +2011-08-04 Eric Botcazou + + * bindgen.adb: Add comments. + +2011-08-04 Yannick Moy + + * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a + synthesized flag. + * sem_prag.adb (Analyze_Pragma): record the pragma Annotate + (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram. + +2011-08-04 Robert Dewar + + * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb, + osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb, + sem_ch13.adb, s-pooloc.adb: Minor reformatting. + +2011-08-04 Thomas Quinot + + * s-pooloc.ads, s-pooglo.ads: Minor reformatting + +2011-08-04 Thomas Quinot + + PR ada/47880 + * s-pooloc.adb (Deallocate): Fix the case of deallocating the only + allocated object. + +2011-08-04 Robert Dewar + + * einfo.ads, exp_ch4.adb: Minor reformatting. + +2011-08-04 Jerome Lambourg + + * back_end.ads (Gen_Or_Update_Object_File): Add more comments. + +2011-08-04 Ed Schonberg + + * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component + type in all cases to compute list of primitive operations, because full + view may be an itype that is not attached to the list of declarations. + +2011-08-04 Eric Botcazou + + * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the + library has already been finalized. + (Gen_Adafinal_C): Likewise. + (Gen_Adainit_Ada): Generate an early return if the library has + already been elaborated. + (Gen_Adainit_C): Likewise. + (Gen_Output_File_Ada): Generate an elaboration flag. + (Gen_Output_File_C): Likewise. + +2011-08-04 Hristian Kirtchev + + * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of + Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not + built in the first place. + (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr + for CodePeer because Finalize_Address was not built to begin with. + * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto. + +2011-08-04 Pascal Obry + + * adaint.c (__gnat_tmp_name): Use current process id to create temp + filenames, this ensures unicity of filenames across processes. + +2011-08-04 Hristian Kirtchev + + * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine + Raise_Controlled to Raise_From_Controlled_Operation. Update the + signature of Raise_From_Controlled_Operation by adding flag From_Abort. + Add False as the actual to From_Abort in the generated call to + Raise_From_Controlled_Operation. + +2011-08-04 Jerome Lambourg + + * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration + so that the ali file name can be retrieved from outside of this package. + * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method + doing nothing in the general case, but used to update the object file + timestamp if directly generated by the backend. + * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set + to a later time than the ali file one. + +2011-08-04 Yannick Moy + + * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram + entities whose body contains an Annotate pragma which forces formal + proof on this body. + * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to + Mark_Non_ALFA_Subprogram to pass in a message and node. + * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate + (Forma_Proof, On) which sets the flag Formal_Proof_On in the + surrounding subprogram. + * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram, + Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked + as not in ALFA is annotated with Formal_Proof being On, then an error + is issued based on the additional parameters for message and node. + * snames.ads-tmpl (Name_Formal_Proof): new name for annotation. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-04 Hristian Kirtchev + + * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate + Finalize_Address when CodePeer is enabled. + +2011-08-04 Pascal Obry + + * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as + the latter returns a pointer to a static buffer which is deallocated + at the end of the routine. + +2011-08-04 Yannick Moy + + * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA + after index creation; mark unconstrained base array type generated as + being in/not in ALFA as well + (Make_Index): mark subtype created as in/not in ALFA + * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating + over a loop as in/not in ALFA, depending on its type and form of loop + iteration. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort + directly to False on .NET and JVM. + +2011-08-04 Yannick Moy + + * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove + constraint that subtype must come from source code to be in ALFA, so + that anonymous subtypes can be in ALFA too. + +2011-08-04 Yannick Moy + + * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of + reference for ALFA mode. + * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make + procedure public so as to use it from formal verification back-end. + +2011-08-04 Jerome Lambourg + + * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the + invalid checks of the Parameter, making Remove_Switch not working + correctly. + +2011-08-04 Arnaud Charlet + + * targparm.ads: Update header: no run-time exception is needed on this + file. + +2011-08-04 Vincent Celier + + * a-fihema.adb: Use System.IO instead of GNAT.IO + +2011-08-04 Thomas Quinot + + * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types + are forbidden in Compiler_Unit mode. + +2011-08-04 Robert Dewar + + * sem_util.adb: Minor reformatting. + +2011-08-04 Hristian Kirtchev + + * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for + library-level finalizers. + (Gen_Finalize_Library_C): Update the import string for library-level + finalizers. + (Gen_Finalize_Library_Defs_C): Update the definition name of a + library-level finalizer. + * exp_ch7.adb: Remove with and use clauses for Stringt. + (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl, + Spec_Decl. Add local variable Body_Id. The names of library-level + finalizers are now manually fully qualified and are no longer external. + A single name is now capable of servicing .NET, JVM and non-VM targets. + Pragma Export is no longer required to provide visibility for the name. + (Create_Finalizer_String): Removed. + (New_Finalizer_Name): New routine which mimics New_..._Name. + +2011-08-04 Eric Botcazou + + * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the + elaboration counter to Standard_Short_Integer. + * sem_util.adb (Build_Elaboration_Entity): Likewise. + * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change. + (Gen_Elab_Externals_C): Likewise. + +2011-08-04 Ed Falis + + * system-vxworks-arm.ads, system-vxworks-sparcv9.ads, + system-vxworks-ppc.ads, system-vxworks-m68k.ads, + system-vxworks-mips.ads, system-vxworks-x86.ads + (Always_Compatible_Rep): set to False for all VxWorks targets. + +2011-08-04 Robert Dewar + + * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads, + makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb, + exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb, + exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb, + exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb, + sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb, + sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb: + Minor reformatting and code reorganization. + +2011-08-04 Emmanuel Briot + + * projects.texi: Added doc for aggregate projects. + +2011-08-04 Emmanuel Briot + + * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items): + Add support for overriding the Project_Path in aggregate projects. + +2011-08-04 Robert Dewar + + * a-cofove.ads: Minor reformatting. + +2011-08-04 Hristian Kirtchev + + * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment + on the generated code. + (Build_Finalize_Statements): Update the comment on the generated code. + (Build_Initialize_Statements): Update the comment on the generated code. + (Build_Object_Declarations): Add local variable Result. The object + declarations are now built in sequence. + * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and + RE_Unit_Table. + +2011-08-04 Robert Dewar + + * checks.adb, alfa.adb, alfa.ads: Minor reformatting. + +2011-08-04 Eric Botcazou + + * einfo.ads (Elaboration_Entity): Document new definition and use. + (Elaboration_Entity_Required): Adjust to above change. + * exp_attr.adb (Expand_N_Attribute_Reference): Likewise. + * exp_ch12.adb: And with and use for Snames. + (Expand_N_Generic_Instantiation): Test 'Elaborated attribute. + * exp_util.adb (Set_Elaboration_Flag): Likewise. + * sem_attr.adb (Analyze_Attribute) : Delete. + : Deal with N_Expanded_Name. + : Extend to all unit names. + * sem_elab.adb: And with and use for Uintp. + (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change. + * sem_util.ads (Build_Elaboration_Entity): Adjust comment. + * sem_util.adb (Build_Elaboration_Entity): Change type to Integer. + * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken + from Gen_Adainit_Ada. + (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C. + (Gen_Adafinal_Ada): Remove redundant test. In the non-main program + case, do not call System.Standard_Library.Adafinal; instead call + finalize_library if needed. + (Gen_Adafinal_C): Likewise. + (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the + non-main program case. + (Gen_Adainit_C): Generate a couple of external declarations here. + In the main program case, set SSL.Finalize_Library_Objects. + (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change. + (Gen_Elab_Calls_C): Likewise. + (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units. + (Gen_Finalize_Library_C): Likewise. Generate a full function. + (Gen_Main_C): Put back call to Ada_Final and don't finalize library + objects here. + (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final + if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to + Gen_Adafinal_Ada. + (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final + if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple + of external declarations. Call Gen_Finalize_Library_C. + +2011-08-04 Emmanuel Briot + + * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains, + Compute_Compilation_Phases): new subprogram. + (Builder_Data, Builder_Project_Tree_Data): new subprogram and type + The number of mains as well as the various compilation phases that + need to be run are now project tree specific, since various + aggregated trees might have different requirements. In particular, + they do not all require bind or link phases. + +2011-08-04 Emmanuel Briot + + * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb + (Project_Tree_Appdata): New type. + It is now possible to associate application-specific data to a project + tree. In particular, this is used in the gprbuild builder to avoid a + number of global tables and htables, especially now that there can be + several project trees loaded at once because of aggregate projects. + (Debug_Name): new procedure. + * projects.texi: Clarify syntax of "**" for Source_Dirs + +2011-08-03 Emmanuel Briot + + * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts + the "roots" for a main. + (Fill_From_Project): add support for aggregate projects. Main units + in aggregated projects are now automatically added in the list of + files to build (although this fails later on in gprbuild, because + these files are not using the root proejct tree, so this needs + further cleanup) + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-03 Yannick Moy + + * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean + conditional expression in ALFA. + * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean + expressions as not in ALFA. + +2011-08-03 Robert Dewar + + * a-cofove.adb: Minor reformatting. + +2011-08-03 Emmanuel Briot + + * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads + (Insert_Project_Sources, Insert_withed_Sources_For): moved from the + gprbuild sources. + These packages are more logically placed in the Queue package, since + they manipulate the queue. It is also likely that they can be adapted + for gnatmake, thus sharing more code. + (Finish_Program, Fail_Program): moved from the gprbuild sources, so + that we could move the above. + +2011-08-03 Emmanuel Briot + + * errutil.adb (Finalize): clean up the list of error messages on exit. + Calling this subprogram multiple times will no longer show duplicate + error messages on stderr. + +2011-08-03 Emmanuel Briot + + * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter + Getopt_Switches when we have already define a command line + configuration. + +2011-08-03 Yannick Moy + + * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not + in ALFA. Instead, they are considered as assertions to prove. + * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such + nodes as not in ALFA. Instead, include conditional expressions in ALFA + if they have no ELSE part, or if they occur in pre- and postconditions, + where the Condition cannot have side-effects in ALFA + (Analyze_Membership_Op): do not mark such nodes as not in ALFA + (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA. + Instead, include type conversion between scalar types in ALFA. + * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA + if-and-only-if its type is in ALFA. + +2011-08-03 Thomas Quinot + + * scos.adb, get_scos.adb, put_scos.adb + New code letter for decisions: G (entry guard) + * par_sco.adb + (Traverse_Subprogram_Body): Rename to... + (Traverse_Subprogram_Or_Task_Body): New subrpogram. + (Traverse_Protected_Body): New subprogram + (Traverse_Declarations_Or_Statements): Add traversal of task bodies, + protected bodies and entry bodies. + +2011-08-03 Yannick Moy + + * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure + entities with get/set subprograms, which is set on procedure entities + generated by the compiler for a postcondition. + * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures + * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the + entity for a declaration + (Get_Unique_Entity_For_Decl): new function returning an entity which + represents a declaration, so that matching spec and body have the same + entity. + +2011-08-03 Robert Dewar + + * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads, + a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting + +2011-08-03 Yannick Moy + + * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram + library-level because retriction No_Implicit_Dynamic_Code in the + front-end prevents its definition as a local subprogram + (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File, + for reuse in other contexts + (Traverse_Declarations_Or_Statements, + Traverse_Handled_Statement_Sequence, Traverse_Package_Body, + Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these + procedures take a callback parameter to be called on all declarations + * lib-xref.ads + (Traverse_All_Compilation_Units): new generic function to traverse a + compilation unit and call a callback parameter on all declarations + +2011-08-03 Javier Miranda + + * sem_prag.adb (Process_Interface_Name): Allow duplicated export names + in Java since they are always enclosed in a namespace that + differentiates them, and overloaded entities are supported by the VM. + +2011-08-03 Ed Schonberg + + * checks.adb (Determine_Range): If a computed bound of an operation is + outside the range of the base type of the expression, and overflow + checks are enabled, the result is unknown and cannot be used for any + subsequent constant folding. + * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are + unknown, so is the result of the comparison. + +2011-08-03 Hristian Kirtchev + + * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal + From_Abort. When finalization was triggered by an abort, propagate + Standard'Abort_Signal rather than Program_Error. + * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal + From_Abort. + * a-except.adb (Raise_From_Controlled_Operation): Add new formal + From_Abort. When finalization was triggered by an abort, propagate + Standard'Abort_Signal rather than Program_Error. + * a-except.ads:(Raise_From_Controlled_Operation): Add new formal + From_Abort. + * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable + Abort_Id. Update the calls to Build_Object_Declarations and + Build_Raise_Statement to include Abort_Id. + (Build_Adjust_Statements): New local variable Abort_Id. Update the + calls to Build_Object_Declarations and Build_Raise_Statement to include + Abort_Id. + (Build_Finalize_Statements): New local variable Abort_Id. Update the + calls to Build_Object_Declarations and Build_Raise_Statement to include + Abort_Id. + (Build_Components): Create an entity for Abort_Id when exceptions are + allowed on the target. + (Build_Finalizer): New local variable Abort_Id. + (Build_Initialize_Statements): New local variable Abort_Id. Update the + calls to Build_Object_Declarations and Build_Raise_Statement to include + Abort_Id. + (Build_Object_Declarations): Add new formal Abort_Id. Create the + declaration of flag Abort_Id to preserve the original abort status + before finalization code is executed. + (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to + runtime routine Raise_From_Controlled_Operation. + (Create_Finalizer): Update the call to Build_Raise_Statement to include + Abort_Id. Update the call to Build_Object_Declarations to include + Abort_Id. Update the layout of the finalizer body. + (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort. + (Process_Transient_Objects): New local variable Abort_Id. Remove the + clunky code to create all flags and objects related to + exception propagation and replace it with a call to + Build_Object_Declarations. Update the call to Build_Raise_Statement to + include Abort_Id. + * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec. + Add new formal Abort_Id and associated comment on its use. + (Build_Raise_Statement): Add new formal Abort_Id and associated comment + on its use. + * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id. + Remove the clunky code to create all flags and objects related to + exception propagation and replace it with a call to + Build_Object_Declarations. Update the call to Build_Raise_Statement. + +2011-08-03 Eric Botcazou + + * s-tassta.adb: Fix minor typos. + +2011-08-03 Robert Dewar + + * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb, + lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting. + +2011-08-03 Hristian Kirtchev + + * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion + to packages. This ensures that the finalizer body will not end up + inside the freeze node. + (Process_Declarations): Add code to detect whether a freeze node has a + nested finalization collection. + +2011-08-03 Pascal Obry + + * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005. + (Current_Session): Return a not null access to Session_Type. + (Default_Session): Likewise. + +2011-08-03 Robert Dewar + + * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb, + exp_ch3.adb, exp_ch3.ads: Minor reformatting. + +2011-08-03 Pascal Obry + + * g-awk.ads: Minor comment fix. + +2011-08-03 Sergey Rybin + + * tree_io.ads (ASIS_Version_Number): Update because of the changes in + the tree structure related to discriminant constraints. + Original_Discriminant cannot be used any more for computing the + defining name for the reference to a discriminant. + +2011-08-03 Ed Schonberg + + * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the + function is not visibly tagged, this is not a dispatching call and + therfore is not Tag_Indeterminate, even if the function is marked as + dispatching on result. + +2011-08-03 Hristian Kirtchev + + * exp_ch13.adb: Add with and use clauses for Restrict and Rident. + (Expand_N_Free_Statement): Add a guard to protect against run-times + which do not support controlled types. + * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect + against run-times which do not support controlled types. + * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect + against run-times which do not support controlled types. + * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect + against run-times which do not support controlled types. + * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to + protect against run-times which do not support controlled types. + +2011-08-03 Eric Botcazou + + * exp_intr.adb: Put back with and use clauses for Exp_Ch11. + (Expand_Unc_Deallocation): Expand the AT_END handler at the very end. + +2011-08-03 Ed Schonberg + + * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is + modified in the source, to prevent spurious warnings when compiling + with -gnatg. + +2011-08-03 Thomas Quinot + + * a-except-2005.adb: Minor reformatting. + +2011-08-03 Ed Schonberg + + * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit + is a renaming declaration in the private part of a package, do not emit + a warning that the with_clause could be moved because the renaming may + be used in the body or in a child unit. + +2011-08-03 Hristian Kirtchev + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): + Propagate the Comes_From_Source attribute from the original return + object to the renaming. + +2011-08-03 Jose Ruiz + + * exp_ch7.adb (Build_Raise_Statement): Do not call + Raise_From_Controlled_Operation when this routine is not present in + the run-time library. + (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time + libraries (Ravenscar), tasks are non-terminating, and protected objects + and tasks can only appear at library level, so we do not want + finalization of protected objects nor tasks. + * exp_intr.adb: Minor clarification in comment. + bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada, + Gen_Output_File_C): Remove references to finalization of library-level + objects when using restricted run-time libraries. + +2011-08-03 Ed Schonberg + + * sem_ch3.adb (Build_Discriminant_Constraints): Set + Original_Discriminant only if the parent type is a generic formal. + +2011-08-03 Hristian Kirtchev + + * exp_ch13.adb: Add with and use clause for Targparm; + (Expand_N_Free_Statement): Prevent the generation of a custom + Deallocate on .NET/JVM targets since this requires pools and address + arithmetic. + * exp_ch4.adb (Expand_Allocator_Expression): When compiling for + .NET/JVM targets, attach the newly allocated object to the access + type's finalization collection. Do not generate a call to + Set_Finalize_Address_Ptr on .NET/JVM because this routine does not + exist in the runtime. + (Expand_N_Allocator): When compiling for .NET/JVM targets, do not + create a custom Allocate for object that do not require initialization. + Attach a newly allocated object to the access type's finalization + collection on .NET/JVM. + * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for + assignment of controlled types on .NET/JVM. The two hidden pointers + Prev and Next and stored and later restored after the assignment takes + place. + * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized + kludge for .NET/JVM to recognize a particular piece of code coming from + Heap_Management and change the call to Finalize into Deep_Finalize. + * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of + finalization collections on .NET/JVM only for types derived from + Controlled. Separate the association of storage pools with a collection + and only allow it on non-.NET/JVM targets. + (Make_Attach_Call): New routine. + (Make_Detach_Call): New routine. + (Process_Object_Declarations): Suppress the generation of + build-in-place return object clean up code on .NET/JVM since it uses + pools. + * exp_ch7.ads (Make_Attach_Call): New routine. + (Make_Detach_Call): New routine. + * exp_intr.adb Add with and use clause for Targparm. + (Expand_Unc_Deallocation): Detach a controlled object from a collection + on .NET/JVM targets. + * rtsfind.ads: Add entries RE_Attach, RE_Detach and + RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table. + * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special + names used in finalization. + +2011-08-03 Hristian Kirtchev + + * a-fihema.adb: Add with and use clauses for System.Soft_Links. + (Attach, Detach): Lock the current task when chaining an object onto a + collection. + +2011-08-03 Hristian Kirtchev + + * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation): + Rewritten to create the message strings when the exception is not + raised by an abort during finalization. + * a-except.ads, a-except-2005.ads: Add pragma Export for procedure + Raise_From_Controlled_Operation and update its associated comment. + * a-fihema.ads, a-fihema.adb: New GNAT unit. + Ada.Finalization.Heap_Management provides key functionality + associated with controlled objects on the heap, their creation, + finalization and reclamation. Type Finalization_Collection is + effectively a wrapper which sits ontop of a storage pool and performs + all necessary bookkeeping for all the objects it contains. Each + access-to-controlled or access-to-class-wide type receives a collection + as part of its expansion. The compiler generates buffer code and + invokes Allocate / Deallocate to create and destroy allocated + controlled objects. + * a-finali.adb ("="): Removed. + * a-finali.ads ("="): Removed. Controlled types no longer carry hidden + fields Prev and Next. + * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer. + A library unit with at least one controlled object on the library level + has a special finalizer which is invoked by the binder. To signal this, + ali files carry field PF. + * ali.ads: New field in type Unit_Record called Has_Finalizer. Add + associated comment on field usage. + * a-tags.adb (Get_RC_Offset): Removed. + (Needs_Finalization): New routine. + * a-tags.ads: Update the structure of the GNAT dispatch tables. + Dispatch tables now carry field Needs_Finalization which provides + runtime indication whether a type is controlled or has controlled + components or both. Remove field RC_Offset. + (Get_RC_Offset): Removed along with its associated pragma Export. + Since tagged types with controlled components no longer carry hidden + field _controller, the special mechanism to retrieve its location is no + longer needed. + (Needs_Finalization): New routine. + * atree.ads, atree.adb (Elist24): New routine. + (Set_Elist24): New routine. + * atree.h: Add a define clause for Elist24. + * bindgen.adb New library-level variable Lib_Final_Built. + (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the + presence of a VM target, the routine generates calls to the proper + library finalization routine. + (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM + targets. Set the correct library finalization routine depending on + whether the library has controlled objects or this is a VM compilation. + (Gen_Finalize_Library_Ada): New routine. This procedure generates calls + to library-level finalizers of compiled units in reverse order of + elaboration. It also produces exception management code and reraises a + potential exception after all units have been finalized. + (Gen_Finalize_Library_C): New routine. This procedure generates calls to + library-level finalizers of compiled units in reverse order of + elaboration. + (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the + definitions of all library-level finalizers available to the compilation + (Gen_Main_Ada): Directly call Adafinal which now contails all target + dependent code. + (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call + System.Standard_Library.Adafinal directly. If the library needs + finalization actions, create the sequence of finalization calls. + (Gen_Output_File_Ada): Alphabetize local variables and constants. + Generate a with clause for System.Soft_Links when compiling for a VM. + Remove the code which imports System.Standard_Library.Adafinal as + Do_Finalize. Generate the library finalization routine. + (Gen_Output_File_C): Add new local constant Needs_Library_Finalization. + If the library needs finalization actions, create all the definitions + of library- level finalizers. + (Has_Finalizer): New routine. Determines whether at least one compiled + unit has a library-level finalizer. + Add type Qualification_Mode. + (Set_Unit_Name): Add a formal which controls the replacement of a dot. + * einfo.adb: New usage of field 15 as Return_Flag. + Remove Finalization_Chain_Entity from the usages of field 19. + Remove Associated_Final_Chain from the usages of field 23. + New usage of field 23 as Associated_Collection. + New usage of field 24 as Finalizer. + New usage of flag 252 as Is_Processed_Transient. + (Associated_Final_Chain): Removed. + (Associated_Collection): New routine. + (Finalization_Chain_Entity): Removed. + (Finalizer): New routine. + (Is_Finalizer): New routine. + (Is_Processed_Transient): New routine. + (Return_Flag): New routine. + (Set_Associated_Final_Chain): Removed. + (Set_Associated_Collection): New routine. + (Set_Finalization_Chain_Entity): Removed. + (Set_Finalizer): New routine. + (Set_Is_Processed_Transient): New routine. + (Set_Return_Flag): New routine. + (Write_Entity_Flags): Include Is_Processed_Transient to the list of + displayed flags. + (Write_Field8_Name): Alphabetize the output. + (Write_Field11_Name): Alphabetize the output. + (Write_Field12_Name): Alphabetize the output. + (Write_Field13_Name): Alphabetize the output. + (Write_Field14_Name): Alphabetize the output. + (Write_Field15_Name): Alphabetize the output. + (Write_Field16_Name): Alphabetize the output. + (Write_Field17_Name): Alphabetize the output. + (Write_Field18_Name): Alphabetize the output. + (Write_Field19_Name): Alphabetize the output. Remove the output of + Finalization_Chain_Entity. + (Write_Field20_Name): Alphabetize the output. + (Write_Field21_Name): Alphabetize the output. + (Write_Field22_Name): Alphabetize the output. + (Write_Field23_Name): Alphabetize the output. Remove the output of + Associated_Final_Chain. Add output for Associated_Collection. + (Write_Field24_Name): Alphabetize the output. + (Write_Field25_Name): Add output for Finalizer. + (Write_Field26_Name): Alphabetize the output. + (Write_Field27_Name): Alphabetize the output. + (Write_Field28_Name): Alphabetize the output. + * einfo.ads: Add new field description for Associated_Collection and + its uses in nodes. + Remove Associated_Final_Chain and its uses in nodes. + Remove Finalization_Chain_Entity and its uses in nodes. + Add new field description for Finalizer and its uses in nodes. + Add new synthesized attribute Is_Finalizer. + Add new flag description for Is_Processed_Transient and its uses in + nodes. + Add new field description for Return_Flag and its uses in nodes. + (Associated_Final_Chain): Removed along with its pragma Inline. + (Associated_Collection): New routine and pragma Inline. + (Finalization_Chain_Entity): Removed along with its pragma Inline. + (Finalizer): New routine and pragma Inline. + (Is_Finalizer): New routine and pragma Inline. + (Is_Processed_Transient): New routine and pragma Inline. + (Return_Flag): New routine and pragma Inline. + (Set_Associated_Final_Chain): Removed along with its pragma Inline. + (Set_Associated_Collection): New routine and pragma Inline. + (Set_Finalization_Chain_Entity): Removed along with its pragma Inline. + (Set_Finalizer): New routine and pragma Inline. + (Set_Is_Processed_Transient): New routine and pragma Inline. + (Set_Return_Flag): New routine and pragma Inline. + * exp_aggr.adb: Alphabetize subprograms. + (Build_Array_Aggr_Code): Remove formal Flist and its associated comment. + (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their + associated comments. Remove local variables External_Final_List and + Attach. + Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to + Ancestor. Remove the retrieval of finalization lists. Update the call to + Make_Adjust_Call. + (Convert_Aggr_In_Allocator): Remove the retrieval of finalization + lists. Update the call to Late_Expansion. + (Convert_Aggr_In_Assignment): Update the call to Late_Expansion. + (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion. + (Gen_Assign): Remove the retrieval of the finalization list used to + build the assignment. Update the calls to Make_Init_Call and + Make_Adjust_Call. + (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions. + Remove the mechanism to determine attachment levels and finalization + list retrieval. Remove the processing for coextensions. + (Init_Controller): Removed. Controllers no longer exist. + (Late_Expansion): Remove formals Flist and Obj along with their + associated comments. Update the calls to Build_Record_Aggr_Code and + Build_Array_Aggr_Code. + * exp_ch13.adb (Expand_N_Free_Statement): New routine. + (Expand_N_Freeze_Entity): Add special processing for finalizers which + appear in entry bodies, protected subprograms and task bodies. + * exp_ch13.ads (Expand_N_Free_Statement): New routine. + * exp_ch3.adb (Add_Final_Chain): Removed. + (Build_Array_Init_Proc): Alphabetize local variables. + (Build_Assignment): Alphabetize local variables. Update the call to + Maked_Adjust_Call. + (Build_Class_Wide_Master): Rename local variables to better reflect + their role. + (Build_Discriminant_Assignments): Code reformatting. + (Build_Init_Call_Thru): Code reformatting. + (Build_Init_Procedure): Code reformatting. Generate a special version + of Deep_Finalize which is capable of finalizing all initialized + components and ignore the rest. + (Build_Init_Statements): Rename local variables to better reflect their + role. + Reimplement the mechanism to include the creation and update of an index + variable called a "counter". It is used as a bookmark for tracing + initialized and non-initialized components. + (Build_Initialization_Call): Remove local variable Controller_Typ. + Alphabetize all local variables. Remove the initialization of the + record controller and update the call to Make_Init_Call. + (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent. + New local variable Counter. + (Constrain_Array): Alphabetize. + (Expand_Freeze_Array_Type): Create a collection instead of a + finalization list. + (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive + Finalize_Address which is used in conjunction with allocated controlled + objects. + (Expand_N_Object_Declaration): Remove the creation of a finalization + list for anonymous access types. Update the calls to Make_Init_Call and + Make_Adjust_Call. + (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the + retrieval of finalization lists. Remove the expansion of the record + controller. Create TSS primitive Finalize_Address used in conjunction + with controlled objects on the heap. Create finalization collections + for access-to-controlled record components. + (Expand_Record_Controller): Removed. + (Freeze_Type): Remove the freezing of record controllers. Freezing of + class-wide types now requires additional processing. Create + finalization collections for access-to-controlled types. + (Increment_Counter): New routine. + (Make_Counter): New routine. + (Make_Eq_If): Remove the mention of Name_uController. + (Make_Predefined_Primitive_Specs): There is no longer need to skip + types coming from System.Finalization_Root. + (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles. + (Predefined_Primitive_Bodies): There is no longer need to skip types + coming from System.Finalization_Root. + (Stream_Operation_OK): Do not generate stream routines for + type Ada.Finalization.Heap_Management.Finalization_Collection. + * exp_ch3.ads: Alphabetize subprograms. + * exp_ch4.adb: Remove with and use clause for Sem_Ch8. + Add with and use clause for Lib. + (Complete_Coextension_Finalization): Removed. + (Complete_Controlled_Allocation): New routine. Create a finalization + collection for anonymous access-to-controlled types. Create a custom + Allocate which interfaces with the back end and the machinery in + Heap_Management. + (Expand_Allocator_Expression): Add necessary calls to + Complete_Controlled_Allocation. Remove the retrieval of finalization + lists. Update the calls to Make_Adjust_Call. Generate a call to + Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate + the associated collection. + (Expand_N_Allocator): Remove the processing for dynamic coextensions. + Code clean up. Remove the retrieval of finalization lists and + attachment levels. + Update the call to Make_Init_Call. Generate a call to + Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate + the associated collection. + (Get_Allocator_Final_List): Removed. Finalization lists are not + available. + (Suitable_Element): Remove the mention of Name_uController. + * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp. + (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of + the left hand side, carry out the assignment and adjust the left hand + side. + * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed. + (Add_Collection_Actual_To_Build_In_Place_Call): New routine. + (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to + BIP_Collection and BIPcollection. + (Build_Heap_Allocator): New routine used to allocate the return object + of a build-in-place function onto a collection. + (Expand_Ctrl_Function_Call): Moved from Exp_Ch7. + (Expand_Call): Do not replace direct calls to Deep routines with their + aliases. + (Expand_N_Extended_Return_Statement): Give all variables shorter names + and update their occurrences. Add a special return flag to monitor the + [ab]normal execution of the function. The flag is set right before the + return statement. + Rewrite the mechanism used to allocate a build-in-place return object + on the heap or on a storage pool. + (Is_Direct_Deep_Call): New routine. + (Make_Build_In_Place_Call_In_Allocator): Add a collection to a + build-in-place function call instead of a final list. Build a call to + Set_Finalize_Address_Ptr to decorate the associated collection. + (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in + order to name the build-in-place function call's result for later + finalization. Add a collection to a build-in-place function call + instead of a final list. + (Make_Build_In_Place_Call_In_Assignment): Add a collection to a + build-in-place function call instead of a final list. Remove the code + which moves one final list and transforms it into the actual in a + nested build-in-place call. + (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a + build-in-place function call instead of a final list. + (Move_Final_List): Removed. + (Needs_BIP_Collection): New routine. + (Needs_BIP_Final_List): Removed. + * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in + enumeration type BIP_Formal_Kind. + Update the related comment. + (Needs_BIP_Collection): New routine. + (Needs_BIP_Final_List): Removed. + * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt + and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the + majority of subprograms in this unit. Add Name_Finalize_Address to + array Name_Of and TSS_Finalize_Address to array Deep_Name_Of. + (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization + statements for an array type. + (Build_Adjust_Statements): Create the adjust statements for a record + type. + (Build_Cleanup_Statements): New routine. A procedure which given any + construct containing asynchronous calls, references to _master, or is a + task body, a task allocation or a protected body produces the necessary + runtime calls to clean up these constructs. + (Build_Exception_Handler): New routine. + (Build_Final_List): Removed. + (Build_Finalization_Collection): New routine. A core procedure which + creates a collection to service heap allocated controlled objects + associated with an access-to-controlled type. + (Build_Finalize_Statements): Create the finalization statements for a + record types. + (Build_Finalizer): New routine. A core procedure which given any + construct with declarations and/or statements detects all objects which + need any type of clean up (controlled objects, protected objects) and + generates all necessary code to clean up the said objects in the proper + order. + (Build_Finalizer_Call): New routine. + (Build_Initialize_Statements): Create the initialization statements for + an array type. The generated routine contains code to finalize partially + initialized arrays. + (Build_Object_Declarations): New routine. + (Build_Raise_Statement): New routine. + (Clean_Simple_Protected_Objects): Removed. + (Controller_Component): Removed. + (Enclosing_Function): New routine. + (Expand_Cleanup_Actions): Create a finalizer for a construct which has + either declarations or statements or both. + (Expand_N_Package_Body): Create a finalizer for a non-generic package. + (Expand_N_Package_Declaration): Create a finalizer for a non-generic + package. + (Find_Final_List): Removed. + (Global_Flist_Ref): Removed. + (In_Finalization_Root): Removed. + (Insert_Actions_In_Scope_Around): Determine the range of the transient + scope in terms of tree nodes. Process all transient variables within + that range. + (Make_Adjust_Call): Rewritten. There is no longer an attach call + generated after the adjust. + (Make_Attach_Call): Removed. + (Make_Call): New routine. + (Make_Clean): Removed. + (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate + build routines. + (Make_Deep_Proc): Rewritten to generate the new profile signature used + in Deep routines. + (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate + build routines. + (Make_Final_Call): Modified to simply create a call to either + Deep_Finalize or Finalize. + (Make_Finalize_Address_Body): New routine. + (Make_Finalize_Address_Stmts): New routine. A function which produces + TSS primitive Finalize_Address used in conjunction with heap allocated + controlled objects. + (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM. + (Make_Init_Call): Rewritten. There is no longer an attach call + generated after initialization. + (Make_Local_Deep_Finalize): New routine. + (Make_Set_Finalize_Address_Ptr_Call): New routine. + (Make_Transient_Block): Remove the finalization list retrieval and + manipulation. + (Needs_Finalization): Moved to Exp_Util. + (Parent_Field_Type): New routine. + (Preprocess_Components): New routine. + (Process_Transient_Objects): New routine. + (Wrap_HSS_In_Block): New routine. + (Wrap_Transient_Declaration): Remove finalization list management and + controller insertion. + (Wrap_Transient_Expression): Code reformatting. + (Wrap_Transient_Statement): Code reformatting. + * exp_ch7.ads (Build_Final_List): Removed. + (Build_Finalization_Collection): New routine. + (Build_Raise_Statement): New routine. + (Controller_Component): Removed. + (Expand_Ctrl_Function_Call): Moved to Exp_Ch6. + (Find_Final_List): Removed. + (In_Finalization_Root): Removed. + (Is_Simple_Protected_Type): Update related comment. + (Make_Adjust_Call): New parameter profile and associated comments. + (Make_Attach_Call): Removed. + (Make_Final_Call): New parameter profile and associated comments. + (Make_Finalize_Address_Body): New routine. + (Make_Init_Call): New parameter profile and associated comments. + (Make_Local_Deep_Finalize): New routine. + (Make_Set_Finalize_Address_Ptr_Call): New routine. + (Needs_Finalization): Moved to Exp_Util. + * exp_ch9.adb (Add_Object_Pointer): Code reformatting. + (Expand_N_Protected_Body): Remove the handling of finalization lists. + (Find_Protection_Type): Moved to Exp_Util. + * exp_disp.adb: Remove with and use clauses for Exp_Ch7. + (Make_DT): Update sequence of dispatch table initialization. Remove the + initialization of field RC_Offset. Add initialization of field Needs_ + Finalization. + * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting. + Reimplement how an object is first finalized, then deallocated. + * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): + Code reformatting. + * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address. + Register TSS_Finalize_Address with type TSS_Names. + * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core + procedure provides the interface between an allocation / deallocation + and the support machinery in Ada.Finalization.Heap_Management. + (Find_Init_Call): Code reformatting. + (Find_Init_Call_In_List): Code reformatting. + (Find_Protection_Type): Moved from Exp_Ch9. + (Find_Prim_Op): Reimplement to add preference of recovered primitive. + (Has_Controlled_Coextensions): Removed. + (Has_Controlled_Objects): New routine. + (In_Library_Level_Package_Body): New routine. + (Insert_Action_After): New routine. + (Is_Finalizable_Transient): New routine. This predicate determines + whether an object declaration is one of the many variants of controlled + transients. + (Is_Null_Access_BIP_Func_Call): New routine. + (Is_Non_BIP_Func_Call): New routine. + (Is_Related_To_Func_Return): New routine. + (Needs_Finalization): Moved from Exp_Ch7. + * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine. + (Find_Protection_Type): Moved from Exp_Ch9. + (Has_Controlled_Coextensions): Removed. + (Has_Controlled_Objects): New routine. + (In_Library_Level_Package_Body): New routine. + (Insert_Action_After): New routine. + (Is_Finalizable_Transient): New routine. + (Is_Null_Access_BIP_Func_Call): New routine. + (Is_Non_BIP_Func_Call): New routine. + (Is_Related_To_Func_Return): New routine. + (Needs_Finalization): Moved from Exp_ch7. + * expander.adb (Expand): Add a case for N_Free_Statement. + * freeze.adb (Freeze_All): Replace the generation of a finalization + list with a collection for access-to-controlled types. + (Freeze_Entity): Code reformatting. + (Freeze_Record_Type): Remove the freezing of a record controller + component. + (Freeze_Subprogram): Code reformatting. + * inline.adb (Cleanup_Scopes): Remove the reset of the scope + finalization list. + * lib-writ.adb (Write_Unit_Information): Output "PF" when a package + has a library-level finalizer. + * lib-writ.ads: Add "PF" to the sequence of unit attributes. + * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed. + * Makefile.rtl: Remove a-filico and s-finimp from the list of object + files. Add a-fihema to the list of object files. + * par-ch4.adb: + Alphabetize the associations in type Is_Parameterless_Attribute. + * rtsfind.ads: Ada.Finalization_List.Controller and + System.Finalization_Implementation are no longer a GNAT unit. + Update the range of type Ada_Finalization_Child. Remove the following + recoverable entities: + + RE_Attach_To_Final_List + RE_Deep_Tag_Attach + RE_Finalize_List + RE_Finalize_One + RE_Finalizable_Ptr_Ptr + RE_Global_Final_List + RE_Limited_Record_Controller + RE_List_Controller + RE_Move_Final_List + RE_Record_Controller + RE_Simple_List_Controller + + Add the following recoverable entities: + + RE_Add_Offset_To_Address + RE_Allocate + RE_Base_Pool + RE_Deallocate + RE_Exception_Identity + RE_Finalization_Collection + RE_Finalization_Collection_Ptr + RE_Needs_Finalization + RE_Save_Library_Occurrence + RE_Set_Finalize_Address_Ptr + RE_Set_Storage_Pool_Ptr + RE_Storage_Count + * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of + Name_uController. + * sem_aux.adb (First_Discriminant): Remove mention of Name_uController. + (First_Stored_Discriminant): Remove the mention of Name_uController. + * sem_aux.ads: Comment reformatting. + * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery + to redecorate an already existing class-wide type. + (Decorate_Tagged_Type): New parameter profile and associated comment. + Create a "shadow class-wide type" for a shadow entity. + * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting + of the final chain along with the associated comment. + * sem_ch3.adb (Access_Type_Declaration): Add new local variable + Full_Desig and set it to the full view of the designated type. + Initialize the finalization collection to empty. + (Build_Derived_Record_Type): Alphabetize local variables. Code + reformatting. + (Collect_Fixed_Components): Remove the mention of Name_uController. + (Create_Constrained_Components): Remove the mention of Name_uController. + (Make_Class_Wide_Type): Add specialized code to redecorate an existing + class-wide type of a shadow entity. + (Process_Full_View): Update the machinery which marks type + Limited_Controlled's entity as limited. + * sem_ch4.adb (Analyze_One_Call): Code reformatting. + * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization + list, instead make a collection build-in-place formal. + * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of + a designated type in order to establish a match between the renaming + and the renamed entity. + (Find_Selected_Component): Add guard to prevent spurious exceptions + from being raised on .NET/JVM. + * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address + to the list of primitive that need special processing. Update arrays + C_Names and D_Names. + (Replace_Types): Handle class-wide types. + * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a + different parameter profile, look at the first formal. + * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and + use clauses for Exp_Util. + * sem_res.adb: Remove with and use clauses for Elists. + (Propagate_Coextensions): Removed. + (Resolve_Allocator): Do not propagate the list of coextensions from one + allocator to another. + * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable + Deaccessed_T to Desig_Typ. + (Enter_Name): Remove the mention of Name_uController. + (Gather_Components): Remove the mention of Name_uController. + (Incomplete_Or_Private_View): New routine. + (Is_Coextension_Root): Removed. + (Is_Fully_Initialized_Type): Remove the mention of Name_uController. + * sem_util.ads (Incomplete_Or_Private_View): New routine. + (Is_Coextension_Root): Removed. + * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion. + Controlled types are now derived from a null tagged record. Remove + types Finalizable_Ptr, Finalizable and Empty_Root_Controlled. + * sinfo.adb (Coextensions): Removed. + (Set_Coextensions): Removed. + * sinfo.ads: Remove Coextensions from the explanation of node fields + and its uses in nodes. + Update the field usage of N_Allocator. + (Coextensions): Removed along with its pragma Inline. + (Set_Coextensions): Removed along with its pragma Inline. + * snames.ads-tmpl: Remove names + + Name_uClean + Name_uController + Name_uFinal_List + Name_uLocal_Final_List + Name_Finalization_Root + Name_Next + Name_Prev + + Add names + + Name_uFinalizer + Name_Finalize_Address + * s-pooglo.adb (Allocate): Add overriding indicator. + (Deallocate): Add overriding indicator. + (Storage_Size): Add overriding indicator. + * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather + than Finalize_Global_List. + (Null_Finalize_Global_List): Removed. + (Save_Library_Occurrence): New routine. + * s-soflin.ads: Remove variable Finalize_Global_List along with its + initialization. Add variable Finalize_Library_Objects along with its + pragma Export. Add variables Library_Exception and + Library_Exception_Set along with their pragma Export. + (Null_Finalize_Global_List): Removed. + (Save_Library_Occurrence): New routine. + * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects + rather than Finalize_Global_List. + * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field + of the constructed node. + +2011-08-03 Rainer Orth + + * link.c: Include "auto-host.h" before system headers. + +2011-08-03 Vincent Celier + + * make.adb (Gnatmake): Add to table Library_Projs only library projects + that are not extended. Do not check if a library project that is + extended should be regenerated. Do not add to table Library_Paths the + libraries that are in extended projects. Link only with libraries that + are in libray projects that are not extended. + * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library + for a library project that is extended. + +2011-08-03 Gary Dismukes + + * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip + conforming subprogram renamings that appear to be completions if they + are not fully conformant. + Such renamings are homographs but not completions. + * sem_type.adb (Disambiguate): Handle disambiguation of overloaded + names in a subprogram renaming that appears in an instance. + +2011-08-03 Ed Schonberg + + * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but + not immutably limited, build actual subtype from expression to provide + proper bounds to caller. + +2011-08-03 Gary Dismukes + + * sem_ch8.adb: Minor comment correction. + +2011-08-03 Thomas Quinot + + * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when + returning a limited array, use an extended return statement. + +2011-08-03 Vincent Celier + + * make.adb (Initialize): If --subdirs= is used, but no project file is + specified, attempt to create the specify subdir if it does not already + exist and use it as the object directory as if -D had been specified. + +2011-08-03 Arnaud Charlet + + * s-tpopsp-vms.adb: New file. + * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS. + * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS. + +2011-08-03 Emmanuel Briot + + * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new + package. + +2011-08-03 Yannick Moy + + * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type + * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA + * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to + detect that an array has static bounds. + +2011-08-03 Thomas Quinot + + * exp_dist.adb: Minor reformatting. + +2011-08-03 Arnaud Charlet + + * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb + (ATCB_Key): Removed, not always used. + +2011-08-03 Emmanuel Briot + + * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads, + clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove + most remaining global variables. + +2011-08-03 Robert Dewar + + * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads, + prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor + reformatting. + +2011-08-03 Javier Miranda + + * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals + that must be passed by copy in VM targets. + +2011-08-03 Emmanuel Briot + + * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which + duplicates a similar htable now in the project tree. + +2011-08-03 Claire Dross + + * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb, + a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element, + Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend, + Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap, + Splice, First, First_Element, Last, Last_Element, Next, Previous, Find, + Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity, + Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure + update. + +2011-08-03 Arnaud Charlet + + * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb + (ATCB_Key): Removed, not always used. + * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from + s-taprop-posix.adb. + * s-tpopsp-tls.adb: New file. + * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on + x86/x64/ia64/powerpc/sparc Linux. + +2011-08-03 Arnaud Charlet + + * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True. + * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports. + +2011-08-03 Thomas Quinot + + * rtsfind.ads, exp_dist.adb, exp_dist.ads + (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call): + Fix type selection for mapping integer types to PolyORB types. + +2011-08-03 Bob Duff + + * sem_ch7.adb: Minor comment clarification. + +2011-08-03 Bob Duff + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get + an error analyzing a choice, skip further processing. Further + processing could cause a crash or cascade errors. + +2011-08-03 Emmanuel Briot + + * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb, + prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb, + prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb, + prj-env.ads (Shared_Project_Tree_Data): new type + An aggregate project and its aggregated trees need to share the common + data structures used for lists of strings, packages,... This makes the + code simpler since otherwise we have to pass the root tree (also used + for the configuration file data) in addition to the current project + tree. This also avoids ambiguities as to which tree should be used. + And finally this saves a bit of memory. + (For_Every_Project_Imported): new parameter Tree. + Since aggregated projects are using a different tree, we need to let + the caller know which tree to use to manipulate the returned project. + +2011-08-03 Robert Dewar + + * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb, + prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads, + lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb, + prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting. + +2011-08-03 Javier Miranda + + * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads: + Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util. + +2011-08-03 Bob Duff + + * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on + the Base_Type. + +2011-08-03 Joel Brobecker + + * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads, + g-sehash.ads: Fix typo. Update header. + +2011-08-03 Thomas Quinot + + * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place + expansion. + +2011-08-03 Gary Dismukes + + * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider + prefixes of private types along with records, since the selector may be + a discriminant. + * sem_res.adb (Resolve_Selected_Component): Consider prefixes of + private types along with records, since the selector may be a + discriminant. + +2011-08-03 Emmanuel Briot + + * prj-pp.adb (Pretty_Print): Remove trailing blank line. + +2011-08-03 Javier Miranda + + * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of + Tagged_Type_Expansion. + +2011-08-03 Yannick Moy + + * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK + violation when the argument of concatenation is the name of a + constant. + +2011-08-03 Emmanuel Briot + + * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads, + prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms + (Process_Declarative_Items): new parameter Child_Env. + +2011-08-03 Yannick Moy + + * alfa.ads: Update format of ALFA section in ALI file in order to + add a mapping from bodies to specs when both are present. + (ALFA_Scope_Record): Add components for spec file/scope. + * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when + present. + * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been + collected, fill in the spec information when relevant. + * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when + present. + +2011-08-03 Eric Botcazou + + * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing + code unit to decide whether to add internally generated subprograms. + +2011-08-03 Javier Miranda + + * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram. + * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must + be handled by copy in VM targets. + +2011-08-03 Emmanuel Briot + + * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share + code with Makeutl.Get_Switches. + * prj-tree.adb: Update comment. + +2011-08-03 Thomas Quinot + + * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote + subprogram with a limited formal that does not support external + streaming. + +2011-08-03 Yannick Moy + + * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of + continuation line + * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are + not from current unit in two phases, because it is not possible to + change the table while iterating over its content. + * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity + +2011-08-03 Sergey Rybin + + * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option + * gnat_ugn.texi: Update description of complexity metrics (gnatmetric) + +2011-08-03 Ed Schonberg + + * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate + and the component type is composite, this is ambiguous for predefined + concatenation, but if the node is not overloaded and the entity is a use + -defined function its profile can be used to resolve that aggregate. + +2011-08-03 Robert Dewar + + * exp_ch4.adb: Minor code cleanup. + +2011-08-03 Thomas Quinot + + * exp_dist.adb: Do not generate distribution stubs if serious errors + have been diagnosed. + +2011-08-03 Ed Schonberg + + * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of + the first formal of a primitive operation, go to the base type to + handle properly an access to a derived type with constrained + discriminants. + * sem_type.adb (Disambiguate): an immediately visible operator hides a + user-defined function that is only use-visible. + +2011-08-03 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb, + make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb, + fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb, + prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads, + sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb, + prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb, + prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads, + alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting + +2011-08-03 Robert Dewar + + * repinfo.adb (List_Mechanism): Add handling of + Convention_Ada_Pass_By_XXX. + * sem_mech.adb (Set_Mechanism): Ditto. + * sem_prag.adb (Process_Convention): Add entries for + Convention_Ada_Pass_By_XXX. + * snames.adb-tmpl, snames.ads-tmpl: Ditto. + +2011-08-03 Pascal Obry + + * makeutl.adb: Minor reformatting. + +2011-08-03 Vincent Celier + + * fname-uf.adb + (Get_File_Name) If the file cannot be found when there are no config + pragmas file and May_Fail is True, return No_File instead of the file + name, to be consistent. + +2011-08-03 Pascal Obry + + * adaint.c (__gnat_is_executable_file_attr): Avoid access + to null pointer. + +2011-08-03 Javier Miranda + + * sem_ch13.adb + (Same_Representation): In VM targets the representation of arrays with + aliased components differs from arrays with non-aliased components. + +2011-08-03 Emmanuel Briot + + * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do + not systematically lower case attribute indexes that contain no "." + Fix definition of several Naming attributes, which take + a unit name as index and therefore should be case insensitive. + Minor refactoring (reduce length of variable names). + +2011-08-03 Emmanuel Briot + + * makeutl.adb, makeutl.ads (Get_Switches): new subprogram. + +2011-08-03 Emmanuel Briot + + * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb, + prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb, + prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb, + prj-tree.ads (Prj.Tree.Environment): new type. + +2011-08-03 Emmanuel Briot + + * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb, + prj-tree.adb, prj-tree.ads (Environment): new type. + +2011-08-03 Emmanuel Briot + + * prj-tree.ads: Remove unused variable. + +2011-08-03 Yannick Moy + + * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for + issuing messages related to SPARK restriction violation. + +2011-08-03 Ed Schonberg + + * sem_ch6.adb: guard against error nodes in return statements. + +2011-08-03 Arnaud Charlet + + * errout.adb (Error_Msg_Internal): the main unit has not been read yet, + a warning can only appear on a configuration file, so emit warning + without further checks. + +2011-08-03 Arnaud Charlet + + * s-interr.ads: add overriding keyword. + +2011-08-03 Geert Bosch + + * exp_attr.adb: Fix minor typo. + +2011-08-03 Ed Schonberg + + * par-ch4.adb: improve error recovery. + +2011-08-03 Emmanuel Briot + + * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb, + prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize + to Errout_Handling. + +2011-08-03 Emmanuel Briot + + * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use + "external" as an attribute name in aggregate projects. + +2011-08-03 Jose Ruiz + + * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU + uses CPU numbers starting 1, while VxWorks uses CPU numbers starting + from 0, so we need to adjust. + +2011-08-03 Emmanuel Briot + + * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb, + prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type. + +2011-08-03 Yannick Moy + + * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK + restriction on overloaded entity if the entity is not an operator. + +2011-08-03 Yannick Moy + + * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb, + restrict.ads: Rename remaining Check_Formal_Restriction* into + Check_SPARK_Restriction*. + +2011-08-03 Emmanuel Briot + + * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, + prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its + qualifier. + (Project_Empty): removed + (Empty_Project): new parameter Qualifier + This is used to have fields specific to aggregate projects, cleaner + New field to store the list of aggregated projects. + (Check_Aggregate_Project): removed + (Process_Aggregated_Projects, Free): new subprograms. + +2011-08-03 Olivier Hainque + + * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well. + +2011-08-03 Ed Schonberg + + * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an + explicit dereference of an unconstrained type, create a constrained + subtype for it, as is done for function calls that return an + unconstrained type. + +2011-08-03 Thomas Quinot + + * g-pehage.adb (Finalize): Avoid possible double-free. + +2011-08-03 Steve Baird + + * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand + Elab_Spec/Body attrs in CodePeer_Mode. + +2011-08-03 Javier Miranda + + * exp_aggr.adb (Flatten): Convert to positional form aggregates whose + low bound is not known at compile time but they have no others choice. + Done because in this case the bounds can be obtained directly from the + aggregate. + +2011-08-03 Ed Falis + + * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs + on VxWorks SMP. Remove unusable constant ANY_CPU. + +2011-08-03 Emmanuel Briot + + * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb, + clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb, + prj-env.ads (Prj.Env.Initialize_Default_Project_Path, + Prj.Env.Initialize_Empty): new subprograms + (Get_Env, Find_Project): remove parameter Target_Name. + +2011-08-03 Gary Dismukes + + * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal + as a condition for the delayed call to Derived_Subprograms done for the + case of the rewriting of a derived type that constrains the + discriminants of its parent type. + Avoids redundant subprogram derivations for private subtype derivations. + +2011-08-03 Javier Miranda + + * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of + Build_Record_Aggr_Code. + (Build_Record_Aggr_Code): Add missing support to initialize hidden + discriminants in extension aggregates. + +2011-08-03 Emmanuel Briot + + * prj-pp.adb (Print): also output project qualifiers, since in + particular "aggregate" is mandatory in an aggregate project. + +2011-08-03 Emmanuel Briot + + * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb: + (Debug_Output): new function. + +2011-08-03 Eric Botcazou + + * gnat_ugn.texi: Document -Wstack-usage. + * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes. + +2011-08-03 Thomas Quinot + + * sem_prag.adb Issue an error (not a warning) when a C++ type does not + have keyword LIMITED. + +2011-08-03 Yannick Moy + + * alfa.adb, alfa.ads, alfa_test.adb: New files. + * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA) + (Scan_ALI): do not issue a fatal error if parsing known lines after Xref + section (does not happen in compiler, only if code directly calls + Scan_ALI). + * get_alfa.adb, get_alfa.ads: New files. + * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if + needed. + * lib-xref-alfa.adb: New file. + * lib-xref.adb, lib-xref.ads + (Xref_Entry): redefine information needed in cross-references for ALFA. + Push ALFA treatments in separated local package. + (Enclosing_Subpragram_Or_Package): treat specially subprogram + identifiers. Return entity of package body instead of spec. Return + Empty for a scope with no location. + (Generate_Reference): adapt to new components for ALFA information. + Remove the need for D references on definitions. + (Is_Local_Reference): moved to ALFA local package + (Output_References): extract subfunction as Extract_Source_Name + (Output_Local_References): remove procedure, replaced by filtering of + cross-references in package ALFA and printing in Put_ALFA. + (Write_Entity_Name): remove procedure + * lib.adb, lib.ads (Extract_Source_Name): extract here function to + print exact name of entity as it appears in source file + (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA + * put_alfa.adb, put_alfa.ads: New files. + * xref_lib.adb (Search_Xref): protect read of cross-references against + reading other sections of the ALI file, in gnatxref + (Search): protect read of cross-references against reading other + sections of the ALI file, in gnatfind. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-03 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-03 Jose Ruiz + + * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of + raising an exception. + +2011-08-03 Ed Schonberg + + * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer + type, always use 1 as the lower bound or string, even if lower bound of + context is not static, to handle properly null strings in a non-static + context. + +2011-08-03 Bob Duff + + * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is + always legal on the right-hand side of an assignment statement; there + is always an applicable index constraint in this case. Therefore, the + check for Pkind = N_Assignment_Statement is now unconditional -- it + doesn't depend on whether Is_Constrained (Typ). + +2011-08-03 Robert Dewar + + * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting. + +2011-08-03 Ed Schonberg + + * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference + for an itype created within a generic unit. + +2011-08-03 Eric Botcazou + + * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline + suppresses all inlining. + +2011-08-03 Robert Dewar + + * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb, + exp_aggr.adb: Minor reformatting. + +2011-08-03 Thomas Quinot + + * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of + tagged assignment when discriminant checks are suppressed. This is + useless and extremely costly in terms of static stack usage. + +2011-08-03 Bob Duff + + * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances + of generics, because this leads to the wrong entity in the wrong scope, + causing (e.g.) pragma Export_Procedure to get an error if the entity is + an instance. + (Process_Interface_Name): Follow Alias for instances of generics, to + correct for the above change. + +2011-08-03 Ed Schonberg + + * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value + is an integer literal it is always safe to replace the reference. In + addition, if the reference appears in the generated code for an object + declaration it is necessary to copy because otherwise the reference + might be to the uninitilized value of the discriminant of the object + itself. + +2011-08-03 Pascal Obry + + * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no + ACL used, in this case we want to check for ending .exe, not .exe + anywhere in the path. + +2011-08-03 Sergey Rybin + + * tree_io.ads (ASIS_Version_Number): Update because of the changes in + the tree structure (semantic decoration of references to record + discriminants). + +2011-08-03 Gary Dismukes + + * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete + choices of a named array aggregate, bail out when any choices are + marked as Errors_Posted. + +2011-08-03 Ed Schonberg + + * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope + in which entity is frozen, to handle properly loop variables in + iterators. + +2011-08-03 Ed Schonberg + + * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the + subtype is not static, compute the upper bound using attributes, to + handle properly index types that are not integer types. + +2011-08-03 Bob Duff + + * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs. + Update copyright notice. + +2011-08-03 Ed Schonberg + + * sem_ch3.adb (Build_Discriminant_Constraints): Only use + Original_Discriminant if within an instance. + * sem_ch4.adb (Analyze_Selected_Component): Ditto. + +2011-08-03 Thomas Quinot + + * einfo.ads: Minor reformatting. + +2011-08-03 Ed Schonberg + + * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a + composite type with an unfrozen subcomponent, in the profile of a + primitive operation. + +2011-08-03 Robert Dewar + + * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting. + +2011-08-03 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an + unconstrained type with discriminants is initialized with an aggregate, + use the constrained subtype of the aggregate as the type of the object, + because it is immutable, and this allows the back-end to generate no + code for the object declaration. + +2011-08-03 Robert Dewar + + * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where + comparison operand is variable, and turns out to be zero or negative. + +2011-08-03 Javier Miranda + + * exp_intr.adb + (Expand_Dispatching_Constructor_Call): Disable expansion of + code required for native targets. Done to avoid generating + references to unavailable runtime entities in VM targets. + * exp_ch3.adb + (Expand_N_Object_Declaration): Add missing support to handle + the explicit initialization of class-wide interface objects. + Fix documentation. + +2011-08-03 Matthew Heaney + + * a-cobove.adb (Merge): Move source onto target, instead of using + Assign. + +2011-08-03 Matthew Heaney + + * a-cbdlli.adb (Splice): Move source items from first to last. + +2011-08-03 Yannick Moy + + * sem_util.ads: Add comment. + +2011-08-03 Javier Miranda + + * exp_aggr.adb + (Expand_Record_Aggregate): In VM targets disable the expansion into + assignments of aggregates whose type is not known at compile time. + +2011-08-03 Ed Schonberg + + * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for + protected entries and task entries, to build the proper renaming + declaration for entry formals, used in debugging. + * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry + parameters in the same way. + +2011-08-02 Robert Dewar + + * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb, + sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or + code reorganization. + +2011-08-02 Robert Dewar + + * debug.adb: Debug flag d.P to suppress length comparison optimization + * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize + comparison of Length by comparing First/Last instead. + +2011-08-02 Matthew Heaney + + * a-cobove.ads: Code clean up. + +2011-08-02 Vincent Celier + + * adaint.c (file_names_case_sensitive_cache): New static int. + (__gnat_get_file_names_case_sensitive): Cache the return value in + file_names_case_sensitive_cache at the first invocation, to avoid + multiple calls to getenv. + +2011-08-02 Bob Duff + + * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1. + +2011-08-02 Yannick Moy + + * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads, + sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb, + sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to + indicate that we are in a precondition or postcondition. This is used in + Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to + decide whether to flag the spec or body of the current subprogram as + not in ALFA. + +2011-08-02 Fabien Chouteau + + * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package + list. + * a-extiin.ads: New file. + +2011-08-02 Bob Duff + + * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename + now raises Name_Error instead of Use_Error in certain cases. The other + parts of this AI were already implemented properly. + +2011-08-02 Vincent Celier + + * link.c: Only import "auto-host.h" when building the gnattools. + +2011-08-02 Yannick Moy + + * sem_util.adb: Inter-unit inlining does not work for a subprogram + which calls a local subprogram, so extract subprogram + from Mark_Non_ALFA_Subprogram_Body. + +2011-08-02 Javier Miranda + + * exp_ch9.adb + (Extract_Dispatching_Call): If the type of the dispatching object is an + access type then return an explicit dereference in the Object out-mode + parameter. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range + compatibility checks for all indexes of an array subtype, not just the + first. Reset Has_Dynamic_Range_Check on the subtype before each + potential check to ensure that Insert_Range_Checks will not elide any + of the dynamic checks. + +2011-08-02 Yannick Moy + + * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize + SPARK restriction at parsing time. + * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE + directive only if the SPARK restriction is set for this unit. + +2011-08-02 Yannick Moy + + * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads, + sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb, + sem_ch11.adb: Protect call to Current_Subprogram which might be costly + when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into + Mark_Non_ALFA_Subprogram_Body. + Split body of Mark_Non_ALFA_Subprogram_Body to get body small and + inlined. + +2011-08-02 Yannick Moy + + * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which + might be costly. + +2011-08-02 Robert Dewar + + * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads, + exp_ch3.adb: Minor reformatting. + +2011-08-02 Emmanuel Briot + + * adaint.c (__gnat_locate_exec_on_path): only returns executable + files, not any regular file. + (__gnat_locate_file_with_predicate): new subprogram. + +2011-08-02 Yannick Moy + + * sinfo.adb, sinfo.ads: Restrict the use of flags + Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression + nodes, plus N_Subtype_Declaration for the 2nd one. + +2011-08-02 Sergey Rybin + + * gnat_rm.texi: Ramification of pragma Eliminate documentation + - fix bugs in the description of Source_Trace; + - get rid of UNIT_NAME; + +2011-08-02 Javier Miranda + + * exp_ch9.adb + (Build_Dispatching_Requeue): Adding support for VM targets + since we cannot directly reference the Tag entity. + * exp_sel.adb (Build_K): Adding support for VM targets. + (Build_S_Assignment): Adding support for VM targets. + * exp_disp.adb + (Default_Prim_Op_Position): In VM targets do not restrict availability + of predefined interface primitives to compiling in Ada 2005 mode. + (Is_Predefined_Interface_Primitive): In VM targets this service is not + restricted to compiling in Ada 2005 mode. + (Make_VM_TSD): Generate code that declares and initializes the OSD + record. Needed to support dispatching calls through synchronized + interfaces. + * exp_ch3.adb + (Make_Predefined_Primitive_Specs): Enable generation of predefined + primitives associated with synchronized interfaces. + (Make_Predefined_Primitive_Bodies): Enable generation of predefined + primitives associated with synchronized interfaces. + +2011-08-02 Yannick Moy + + * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of + statements hidden in SPARK if preceded by the HIDE directive + (Parse_Exception_Handlers): mark each exception handler in a sequence of + exception handlers as hidden in SPARK if preceded by the HIDE directive + * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK + if starting with the HIDE directive + * par-ch7.adb (P_Package): mark a package body hidden in SPARK if + starting with the HIDE directive; mark the declarations in a private + part as hidden in SPARK if the private part starts with the HIDE + directive + * restrict.adb, restrict.ads + (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK + (Is_In_Hidden_Part_In_SPARK): new function which returns whether its + argument node belongs to a part which is hidden in SPARK + (Check_SPARK_Restriction): do not issue violations on nodes in hidden + parts in SPARK; protect the possibly costly call to + Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on + * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration + * scng.adb (Accumulate_Token_Checksum_GNAT_6_3, + Accumulate_Token_Checksum_GNAT_5_03): add case for new token + Tok_SPARK_Hide. + (Scan): recognize special comment starting with '#' and followed by + SPARK keyword "hide" as a HIDE directive. + +2011-08-02 Yannick Moy + + * types.ads, erroutc.ads: Minor reformatting. + +2011-08-02 Vincent Celier + + * link.c: Add response file support for cross platforms. + +2011-08-02 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression + in an association, set parent field of copy before partial analysis. + * sem_res.adb (Resolve_Slice): create reference to itype only when + expansion is enabled. + +2011-08-02 Yannick Moy + + * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set + for new flag denoting which subprogram bodies are in ALFA + * restrict.adb, sem_ch7.adb: Update comment + * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch9.adb, sem_res.adb: Add calls to + Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs. + * sem_ch6.adb (Analyze_Function_Return): add calls to + Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the + middle of the body, and extended return. + (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument + False when missing return. + (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA + to True for subprograms whose spec is in ALFA. Remove later on the flag + on the entity used for a subprogram body when there exists a separate + declaration. + * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA): + if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to + False, otherwise do nothing. + +2011-08-02 Robert Dewar + + * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_ch4.ads: minor formatting. + +2011-08-02 Yannick Moy + + * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, + debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb, + errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb, + restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, + opt.ads: cleanup of SPARK mode + +2011-08-02 Yannick Moy + + * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard + types. + * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities + (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA + * sem_ch3.adb + (Analyze_Object_Declaration): set Is_In_ALFA flag for objects + (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes + (Constrain_Integer): set Is_In_ALFA flag for integer subtypes + (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration + types. + (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with + non-static range. + * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for + functions whose return type is not in ALFA. + (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram + specifications. + (Process_Formals): unset Is_In_ALFA flag for subprograms if a + parameter's type is not in ALFA. + * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard + types are in ALFA. + +2011-08-02 Ed Schonberg + + * sem_ch6 (Analyze_Expression_Function): treat the function as + Inline_Always, and introduce a subprogram declaration for it when it is + not a completion. + * inline.adb (Add_Inlined_Body): recognize bodies that come from + expression functions, so that the back-end can determine whether they + can in fact be inlined. + * sem_util.adb (Is_Expression_Function): predicate to determine whether + a function body comes from an expression function. + +2011-08-02 Gary Dismukes + + * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming + null exclusions to test Can_Never_Be_Null on the anonymous access types + of the formals rather than testing the formals themselves. Exclude this + check in cases where the Old_Formal is marked as a controlling formal, + to avoid issuing spurious errors for bodies completing dispatching + operations (due to the flag not getting set on controlling access + formals in body specs). + (Find_Corresponding_Spec): When checking full and subtype conformance of + subprogram bodies in instances, pass Designated and E in that order, for + consistency with the expected order of the formals (New_Id followed by + Old_Id). + +2011-08-02 Robert Dewar + + * sem_ch8.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure + Check_Class_Wide_Actual, to implement AI05-0071, on defaulted + primitive operations of class-wide actuals. + +2011-08-02 Javier Miranda + + * exp_atag.ads, exp_atag.adb + (Build_Common_Dispatching_Select_Statements): Remove argument Loc + since its value is implicitly passed in argument Typ. + * exp_disp.adb (Make_Disp_Conditional_Select_Body, + Make_Disp_Timed_Select_Body): Remove Loc in calls to routine + Build_Common_Dispatching_Select_Statements. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads, + exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments. + Minor reformatting. + +2011-08-02 Robert Dewar + + * sem_res.adb: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-02 Javier Miranda + + * exp_atag.adb, exp_atags.ads + (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr + by the tagged type Entity. Required to use this routine in the VM + targets since we do not have available the Tag entity in the VM + platforms. + * exp_ch6.adb + (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package + Ada.Tags has not been previously loaded. + * exp_ch7.adb + (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke + Build_VM_TSDs if package Ada.Tags has not been previously loaded. + * sem_aux.adb + (Enclosing_Dynamic_Scope): Add missing support to handle the full + view of enclosing scopes. Required to handle enclosing scopes that + are synchronized types whose full view is a task type. + * exp_disp.adb + (Build_VM_TSDs): Minor code improvement to avoid generating and + analyzing lists with empty nodes. + (Make_Disp_Asynchronous_Select_Body): Add support for VM targets. + (Make_Disp_Conditional_Select_Body): Add support for VM targets. + (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets. + (Make_Disp_Timed_Select_Body): Add support for VM targets. + (Make_Select_Specific_Data_Table): Add support for VM targets. + (Make_VM_TSD): Generate code to initialize the SSD structure of + the TSD. + +2011-08-02 Yannick Moy + + * lib-writ.adb (Write_ALI): when ALFA mode is set, write local + cross-references section in ALI. + * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub + (enclosing subprogram), Slc (location of Sub) and Sun (unit number of + Sub). + (Enclosing_Subprogram_Or_Package): new function to return the enclosing + subprogram or package entity of a node + (Is_Local_Reference_Type): new function returns True for references + selected in local cross-references. + (Lt): function extracted from Lt in Output_References + (Write_Entity_Name): function extracted from Output_References + (Generate_Definition): generate reference with type 'D' for definition + of objects (object declaration and parameter specification), with + appropriate locations and units, for use in local cross-references. + (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created + references of type 'I' for initialization in object definition. + (Output_References): move part of function Lt and procedure + Write_Entity_Name outside of the body. Ignore references of types 'D' + and 'I' introduced for local cross-references. + (Output_Local_References): new procedure to output the local + cross-references sections. + (Lref_Entity_Status): new array defining whether an entity is a local + * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference + with 'I' type when initialization expression is present. + * get_scos.adb, get_scos.ads: Correct comments and typos + +2011-08-02 Javier Miranda + + * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in + the JVM target. + * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in + the JVM target. + * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no + TSD support. + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line + (No_Space_Img): New function + (Find_Excluded_Sources): When reading from a file, record the file name + and the line number for each excluded source. + (Mark_Excluded_Sources): When reporting an error, if the excluded + sources were read from a file, include file name and line number in + the error message. + +2011-08-02 Ed Schonberg + + * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2). + +2011-08-02 Robert Dewar + + * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting + +2011-08-02 Javier Miranda + + * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the + generation of TSDs to the DOTNET compiler. + * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the + generation of TSDs to the DOTNET compiler. + +2011-08-02 Javier Miranda + + * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data + record of all the tagged types declared inside library level package + declarations, library level package bodies or library level subprograms. + * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD + associated with a given tagged type. + (Build_VM_TSDs): New subprogram. + * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main + compilation units that are subprograms. + * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main + compilation units that are package bodies. + (Expand_N_Package_Declaration): Generate TSDs of the main compilation + units that are a package declaration or a package instantiation. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code + reorganization to improve the error generated by the frontend when the + function Ada.Tags.Secondary_Tag is not available. + * rtsfind.ads (RE_Register_TSD): New runtime entity. + * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup. + +2011-08-02 Javier Miranda + + * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode. + +2011-08-02 Robert Dewar + + * s-imenne.ads: Minor reformatting. + +2011-08-02 Robert Dewar + + * a-stunau.ads: Add pragma Suppress_Initialization for Big_String + * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed + * s-stalib.ads: Add pragma Suppress_Initialization for Big_String + +2011-08-02 Robert Dewar + + * einfo.ads (Materialize_Entity): Document this is only for renamings + * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate + required debug information in the case where we transform the object + declaration into a renaming declaration. + * exp_ch4.adb (Expand_Concatenate): Generate debug info for result + object + * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of + Materialize_Entity. + +2011-08-02 Robert Dewar + + * einfo.ads, einfo.adb (Suppress_Initialization): Replaces + Suppress_Init_Procs. + * exp_ch3.adb, exp_disp.adb, freeze.adb: Use + Suppress_Initialization/Initialization_Suppressed. + * gnat_rm.texi: New documentation for pragma Suppress_Initialization + * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function + * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed + * sem_prag.adb: New processing for pragma Suppress_Initialization. + +2011-08-02 Robert Dewar + + * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb: + Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can + only have inheritable classwide pre/postconditions. + +2011-08-02 Javier Miranda + + * a-tags.ads, a-tags.adb (Check_TSD): New subprogram. + * rtsfind.ads (RE_Check_TSD): New runtime entity. + * exp_disp.adb (Make_DT): Generate call to the new runtime routine that + checks if the external tag of a type is the same as the external tag + of some other declaration. + +2011-08-02 Thomas Quinot + + * s-taskin.ads: Minor reformatting. + +2011-08-02 Emmanuel Briot + + * g-comlin.adb (Display_Help): swap the order in which it prints the + short help and the general usage. + +2011-08-02 Ed Schonberg + + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly + the aspect declarations and attach them to the generic copy for + subsequent analysis. + (Analyze_Subprogram_Instantiation): copy explicitly the aspect + declarations of the generic tree to the new subprogram declarations. + * sem_attr.adb (Check_Precondition_Postcondition): recognize + conditions that apply to a subprogram instance. + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project]. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged + private type with a tagged full view is not derived in the immediate + scope of the partial view, (RM 7.3 (7)) use the scope of the base type. + +2011-08-02 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an + Ada2012 iterator, the loop will be rewritten during expansion into a + while loop with a cursor and an element declaration. Do not analyze the + body in this case, because if the container is for indefinite types the + actual subtype of the elements will only be determined when the cursor + declaration is analyzed. + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore + size/alignment related attributes in CodePeer_Mode. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to + Prepend_Element, since this can result in the operation getting the + wrong slot in the full type's dispatch table if the full type has + inherited operations. The incomplete type's operation will get added + to the proper position in the full type's primitives + list later in Sem_Disp.Check_Operation_From_Incomplete_Type. + (Process_Incomplete_Dependents): Add Is_Primitive test when checking for + dispatching operations, since there are cases where nonprimitive + subprograms can get added to the list of incomplete dependents (such + as subprograms in nested packages). + * sem_ch6.adb (Process_Formals): First, remove test for being in a + private part when determining whether to add a primitive with a + parameter of a tagged incomplete type to the Private_Dependents list. + Such primitives can also occur in the visible part, and should not have + been excluded from being private dependents. + * sem_ch7.adb (Uninstall_Declarations): When checking the rule of + RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents + list of a Taft-amendment incomplete type is a primitive before issuing + an error that the full type must appear in the same unit. There are + cases where nonprimitives can be in the list (such as subprograms in + nested packages). + * sem_disp.adb (Derives_From): Use correct condition for checking that + a formal's type is derived from the type of the corresponding formal in + the parent subprogram (the condition was completely wrong). Add + checking that was missing for controlling result types being derived + from the result type of the parent operation. + +2011-08-02 Yannick Moy + + * errout.adb (First_Node): minor renaming + * restrict.adb (Check_Formal_Restriction): put restriction warning on + first node. + +2011-08-02 Yannick Moy + + * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator + before accessing operands. + * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to + decide whether an initialization expression respects SPARK rules, as + the plain node is the expanded one. This allows for more valid warnings + to be issued. + * gnat_rm.texi: Minor update. + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert + previous change. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_ch4.adb: Minor reformatting. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original + loop statements and the element renaming declaration with a block when + the element type is controlled. + +2011-08-02 Yannick Moy + + * sinfo.ads: Minor formatting. + +2011-08-02 Ed Schonberg + + * sem_aggr.adb (Add_Association): if the association has a box and no + expression, use the Sloc of the aggregate itself for the new + association. + * errout.adb (First_Node): Exclude nodes with no Sloc, and always use + the Original_Node. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring. + When a container is provided via a function call, generate a renaming + of the function result. This avoids the creation of a transient scope + and the premature finalization of the container. + * exp_ch7.adb (Is_Container_Cursor): Removed. + (Wrap_Transient_Declaration): Remove the supression of the finalization + of the list controller when the declaration denotes a container cursor, + it is not needed. + +2011-08-02 Yannick Moy + + * restrict.adb (Check_Formal_Restriction): only issue a warning if the + node is from source, instead of the original node being from source. + * sem_aggr.adb + (Resolve_Array_Aggregate): refine the check for a static expression, to + recognize also static ranges + * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration, + Array_Type_Declaration): postpone the test for the type being a subtype + mark after the type has been resolved, so that component-selection and + expanded-name are discriminated. + (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm + to distinguish the case of an iteration scheme, so that an error is + issed on a non-static range in SPARK except in an iteration scheme. + * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with + In_Iter_Schm = True. + * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for + user-defined operators so that they are allowed in renaming + * sem_ch8.adb + (Find_Selected_Component): refine the check for prefixing of operators + so that they are allowed in renaming. Move the checks for restrictions + on selector name after analysis discriminated between + component-selection and expanded-name. + * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on + concatenation argument of string type if it is static. + * sem_util.adb, sem_util.ads + (Check_Later_Vs_Basic_Declarations): add a new function + Is_Later_Declarative_Item to decice which declarations are allowed as + later items, in the two different modes Ada 83 and SPARK. In the SPARK + mode, add that renamings are considered as later items. + (Enclosing_Package): new function to return the enclosing package + (Enter_Name): correct the rule for homonyms in SPARK + (Is_SPARK_Initialization_Expr): default to returning True on nodes not + from source (result of expansion) to avoid issuing wrong warnings. + +2011-08-02 Ed Schonberg + + * errout.adb: On anything but an expression First_Node returns its + argument. + +2011-08-02 Pascal Obry + + * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization. + Set the associated loop as the related expression of internally + generated cursors. + * exp_ch7.adb (Is_Container_Cursor): New routine. + (Wrap_Transient_Declaration): Supress the finalization of the list + controller when the declaration denotes a container cursor. + +2011-08-02 Yannick Moy + + * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through + command line now. + * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the + expression is a simple expression. This check cannot be performed in + the semantics, so just drop it. + (P_Index_Or_Discriminant_Constraint): move check that the index or + discriminant is a subtype mark to Analyze_Subtype_Declaration in the + semantics. Other cases were previously checked in the semantics. + * par-ch4.adb (P_Name): move checks that a selector name is not + character literal or an operator symbol to Find_Selected_Component in + the semantics + * par-ch5.adb (Parse_Decls_Begin_End): move check that basic + declarations are not placed after later declarations in a separate + procedure in Sem_Util (possibly not the best choice?), to be used both + during parsing, for Ada 83 mode, and during semantic analysis, for + SPARK mode. + * par-endh.adb (Check_End): move check that end label is not missing + to Process_End_Label in the semantics + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove + the special case for SPARK restriction + * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End + * restrict.adb, restrict.ads (Check_Formal_Restriction): add a + parameter Force to issue the error message even on internal node (used + for generated end label). Call Check_Restriction to check when an error + must be issued. In SPARK mode, issue an error message even if the + restriction is not set. + (Check_Restriction): new procedure with an additional out parameter to + inform the caller that a message has been issued + * sem_aggr.adb: Minor modification of message + * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction + instead of issuing an error message directly + * sem_ch3.adb (Analyze_Declarations): move here the check that basic + declarations are not placed after later declarations, by calling + Check_Later_Vs_Basic_Declarations + (Analyze_Subtype_Declaration): move here the check that an index or + discriminant constraint must be a subtype mark. Change the check that + a subtype of String must start at one so that it works on subtype marks. + * sem_ch4.adb (Analyze_Call): move here the check that a named + association cannot follow a positional one in a call + * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction + instead of issuing an error message directly + * sem_ch8.adb (Find_Selected_Component): move here the check that a + selector name is not a character literal or an operator symbol. Move + here the check that the prefix of an expanded name cannot be a + subprogram or a loop statement. + * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new + procedure called from parsing and semantics to check that basic + declarations are not placed after later declarations + (Process_End_Label): move here the check that end label is not missing + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum + representation clause in codepeer mode, since it confuses CodePeer and + does not bring useful info. + +2011-08-02 Ed Falis + + * init.c: initialize fp hw on MILS. + +2011-08-02 Ed Schonberg + + * errout.adb (First_Node): for bodies, return the node itself (small + optimization). For other nodes, do not check source_unit if the node + comes from Standard. + +2011-08-02 Robert Dewar + + * exp_ch3.adb: Minor comment additions. + * sem_ch13.adb: Minor reformatting. + +2011-08-02 Pascal Obry + + * make.adb, makeutl.adb: Removes some superfluous directory separator. + +2011-08-02 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2011-08-02 Robert Dewar + + * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value + (Has_Default_Component_Value): Removed + * einfo.ads Comment updates + (Has_Default_Aspect): Replaces Has_Default_Value + (Has_Default_Component_Value): Removed + * exp_ch13.adb + (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects + * exp_ch3.adb + (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects + (Get_Simple_Init_Val): Handle Default_Value aspect + (Needs_Simple_Initialization): Handle Default_Value aspect + * exp_ch3.ads: Needs_Simple_Initialization + * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect + * par-prag.adb (Pragma_Default[_Component]Value) Removed + * sem_ch13.adb + (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects + * sem_prag.adb (Pragma_Default[_Component]Value) Removed + * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate + package containing iteration primitives. + exp_ch5.adb (Expand_Iterator_Loop): ditto. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with + "of", pre-analyze expression in case it is a function call with + finalization actions that must be placed ahead of the loop. + * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present + on an Ada2012 iterator, insert them ahead of the rewritten loop. + +2011-08-02 Geert Bosch + + * cstand.adb (Create_Float_Types): Only consider C's long double for + Long_Long_Float, in addition to double. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads, + sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads, + prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb: + Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_attr.adb: handle properly 'Result when it is a prefix of an + indexed component. + +2011-08-02 Javier Miranda + + * einfo.ads, einfo.adb + (Original_Access_Type): Move this attribute to Node26 since there was + an undocumented use of Node21 in E_Access_Subprogram_Type entities + which causes conflicts and breaks the generation of the .NET compiler. + (Interface_Name): Add missing documentation on JGNAT only uses of + this attribute. + +2011-08-02 Geert Bosch + + * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist + (Find_Back_End_Float_Type): Likewise + (Create_Back_End_Float_Types): Likewise + (Create_Float_Types): Likewise + (Register_Float_Type): Likewise + * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of + Nlist and split out type selection in new local Find_Base_Type function. + * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of + Nlist + * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist + +2011-08-02 Robert Dewar + + * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in + alpha order). + * opt.ads: Minor comment change. + * sem_ch12.adb: Minor code reorganization. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Complete_Private_Subtype): Don't append the private + subtype's list of rep items to the list on the full subtype in the case + where the lists are the same. + +2011-08-02 Geert Bosch + + * switch-c.adb (Free): New deallocation procedure to avoid implicitly + using the one from System.Strings, which also deallocates all strings. + +2011-08-02 Geert Bosch + + * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New + function. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Olivier Hainque + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function + end_locus. + +2011-08-02 Javier Miranda + + * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals + associated with anonymous access to subprograms. + +2011-08-02 Geert Bosch + + * opt.ads + (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions. + (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition. + * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads + (Add_Symbol_Definition): Move to switch-c.adb + (Process_Command_Line_Symbol_Definitions): Adjust references to above. + * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation. + (Add_Symbol_Definition): Move to switch-c.adb. + * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw. + * sem_warn.adb + (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): + Move to warnsw.adb. + * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size, + Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): + Move to warnsw.adb. + * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw. + (Add_Symbol_Definition): Moved from Prepcomp. + * switch-c.ads: Update copyright notice. Use String_List instead of + Argument_List, removing dependency on System.OS_Lib. + +2011-08-02 Yannick Moy + + * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal + mode on initialization expression which does not respect SPARK + restrictions. + * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines + if the tree referenced by its argument represents an initialization + expression in SPARK, suitable for initializing an object in an object + declaration. + +2011-08-02 Javier Miranda + + * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the + internally generated access to subprogram with its associated protected + subprogram type. + * einfo.ads, einfo.adb (Original_Access_Type): New attribute. + +2011-08-02 Geert Bosch + + * cstand.adb (Register_Float_Type): Print information about type to + register, if the Debug_Flag_Dot_B is set. + * debug.adb (Debug_Flag_Dot_B): Document d.b debug option. + * rtsfind.ads (RE_Max_Base_Digits): New run time entity. + * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations + with a requested precision of more than Max_Digits digits and no more + than Max_Base_Digits digits, if a range specification is present and the + Predefined_Float_Types list has a suitable type to derive from. + * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the + case of type completion with pragma Import + * sem_prag.adb + (Process_Import_Predefined_Type): Processing to complete a type + with pragma Import. Currently supports floating point types only. + (Set_Convention_From_Pragma): Do nothing without underlying type. + (Process_Convention): Guard against absence of underlying type, + which may happen when importing incomplete types. + (Process_Import_Or_Interface): Handle case of importing predefined + types. Tweak error message. + +2011-08-02 Eric Botcazou + + * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined + functions to previous change. Reorganize code slightly. + +2011-08-02 Geert Bosch + + * back_end.ads (Register_Type_Proc): New call back procedure type for + allowing the back end to provide information about available types. + (Register_Back_End_Types): New procedure to register back end types. + * back_end.adb (Register_Back_End_Types): Call the back end to enumerate + available types. + * cstand.adb (Back_End_Float_Types): New list for floating point types + supported by the back end. + (Build_Float_Type): Add extra parameter for Float_Rep_Kind. + (Copy_Float_Type): New procedure to make new copies of predefined types. + (Register_Float_Type): New call back procedure to populate the BEFT list + (Find_Back_End_Float_Type): New procedure to find a BEFT by name + (Create_Back_End_Float_Types): New procedure to populate the BEFT list. + (Create_Float_Types): New procedure to create entities for floating + point types predefined in Standard, and put these and any remaining + BEFTs on the Predefined_Float_Types list. + * stand.ads (Predefined_Float_Types): New list for predefined floating + point types that do not have declarations in package Standard. + +2011-08-02 Eric Botcazou + + * inline.adb (Get_Code_Unit_Entity): New local function. Returns the + entity node for the unit containing the parameter. + (Add_Inlined_Body): Use it to find the unit containing the subprogram. + (Add_Inlined_Subprogram): Likewise. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Thomas Quinot + + * s-stusta.adb (Print): Make sure Pos is always initialized to a + suitable value. + +2011-08-02 Geert Bosch + + * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image. + +2011-08-02 Eric Botcazou + + * sem_type.adb (Covers): Move trivial case to the top and reuse the + computed value of Base_Type. + +2011-08-02 Yannick Moy + + * restrict.adb (Check_Restriction): issue an error for any use of + class-wide, even if the No_Dispatch restriction is not set. + * sem_aggr.adb: Correct typos in comments and messages in formal mode + * sem_ch3.adb (Process_Full_View): issue an error in formal mode is, + when completing a private extension, the type named in the private part + is not the same as that named in the visible part. + * sem_res.adb (Resolve_Call): issue an error in formal mode on the use + of an inherited primitive operations of a tagged type or type extension + that returns the tagged type. + * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new + function which returns True for an implicit operation inherited by the + derived type declaration for the argument type. + (Is_SPARK_Object_Reference): move to appropriate place in alphabetic + order. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from + Process_Bounds, to perform analysis with expansion of a range or an + expression that is the iteration scheme for a loop. + (Analyze_Iterator_Specification): If domain of iteration is given by a + function call with a controlled result, as is the case if call returns + a predefined container, ensure that finalization actions are properly + generated. + * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range. + +2011-08-02 Javier Miranda + + * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Javier Miranda + + * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to + determine if the analysis is performed using N or Original_Node (N). + * exp_util.adb (Side_Effect_Free): Code cleanup since the new + functionality of routine Is_Variable avoids code duplication. + * checks.adb (Determine_Range): Handle temporaries generated by + Remove_Side_Effects. + +2011-08-02 Javier Miranda + + * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and + expansion of the condition. Required since the previous analysis was + done with expansion disabled (see Resolve_Quantified_Expression) and + hence checks were not inserted and record comparisons have not been + expanded. + +2011-08-02 Ed Falis + + * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads: + Update header. + +2011-08-02 Bob Duff + + * opt.ads: Minor comment fix. + +2011-08-02 Bob Duff + + * sem_ch12.adb (Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Turn off style checking while + analyzing an instance. Whatever style checks that apply to the generic + unit should apply, so it makes no sense to apply them in an instance. + This was causing trouble when compiling an instance of a runtime + unit that violates the -gnatyO switch. + * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from + one of the two case statements, causing spurious errors. + +2011-08-02 Robert Dewar + + * uname.adb: Minor reformatting. + * gnatcmd.adb: Minor reformatting. + * exp_attr.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction + No_Dispatching_Calls, do not look for the Assign primitive, because + predefined primitives are not created in this case. + +2011-08-02 Bob Duff + + * stylesw.ads: Minor comment fixes. + +2011-08-02 Robert Dewar + + * freeze.adb (Add_To_Result): New procedure. + +2011-08-02 Jose Ruiz + + * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run + time, if the specific run-time routines for handling streams of strings + are not available, use the default mechanism. + +2011-08-02 Arnaud Charlet + + * s-regpat.ads: Fix typo. + +2011-08-02 Vincent Celier + + * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is + not null, call it to create the in memory config project file without + parsing an existing default config project file. + +2011-08-02 Eric Botcazou + + * atree.adb (Allocate_Initialize_Node): Remove useless temporaries. + +2011-08-02 Ed Schonberg + + * sem_elim.adb: an abstract subprogram does not need an eliminate + pragma for its descendant to be eliminable. + +2011-08-02 Ed Falis + + * init.c: revert to handling before previous checkin for VxWorks + * s-intman-vxworks.adb: delete unnecessary declarations related to + using Ada interrupt facilities for handling signals. + Delete Initialize_Interrupts. Use __gnat_install_handler instead. + * s-intman-vxworks.ads: Import __gnat_install_handler as + Initialize_Interrupts. + * s-taprop-vxworks.adb: Delete Signal_Mask. + (Abort_Handler): change construction of mask to unblock exception + signals. + +2011-08-02 Jerome Guitton + + * a-except-2005.adb (Raise_From_Signal_Handler): Call + Debug_Raise_Exception before propagation starts. + +2011-08-02 Eric Botcazou + + * exp_ch6.adb (Expand_Call): Guard restriction checks with a call + to Restriction_Check_Required. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise. + * sem_res.adb (Resolve_Call): Likewise. + * sem_attr.adb (Check_Stream_Attribute): Likewise. + +2011-08-02 Bob Duff + + * stylesw.ads: Update comment. + * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N. + * errout.ads: Remove obsolete comment. + +2011-08-02 Javier Miranda + + * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function. + (Set_Is_Safe_To_Reevaluate): new procedure. + * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no + assignment is allowed on safe-to-reevaluate variables. + (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the + temporary created to remove side effects in expressions that use + the secondary stack as safe-to-reevaluate. + * exp_util.adb (Side_Effect_Free): Add missing code to handle well + variables that are not true constants. + +2011-08-02 Robert Dewar + + * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads, + sem_res.adb, sem_ch6.adb: Minor reformatting. + +2011-08-02 Jerome Guitton + + * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code. + +2011-08-02 Ed Schonberg + + * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do + not set Overridden_Operation if subprogram is an initialization + procedure. + +2011-08-02 Yannick Moy + + * par-ch6.adb: Correct obsolete name in comments + * restrict.adb, restrict.ads (Check_Formal_Restriction): new function + which takes two message arguments (existing function takes one), with + second message used for continuation. + * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject + block statements that originate from a source block statement, not + generated block statements + * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for + symmetry with procedure case + * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new + function to issue an error in formal mode if a package specification + contains more than one tagged type or type extension. + * sem_res.adb (Resolve_Actuals): in formal mode, check that actual + parameters matching formals of tagged types are objects (or ancestor + type conversions of objects), not general expressions. Issue an error + on view conversions that are not involving ancestor conversion of an + extended type. + (Resolve_Type_Conversion): in formal mode, issue an error on the + operand of an ancestor type conversion which is not an object + * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the + procedure so that it works also for actuals of function calls + (Is_Actual_Tagged_Parameter): new function which determines if its + argument is an actual parameter of a formal of tagged type in a + subprogram call + (Is_SPARK_Object_Reference): new function which determines if the tree + referenced by its argument represents an object in SPARK + +2011-08-02 Robert Dewar + + * sem_ch3.adb: Minor reformatting + Minor comment addition + Minor error msg text change + +2011-08-02 Javier Miranda + + * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New + function. Used to be more precise when we generate a variable plus one + assignment to remove side effects in the evaluation of the Bound + expressions. + (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes + of the bound expression to force its re-analysis and thus expand the + associated transient scope (if required). Code cleanup replacing the + previous code that declared the constant entity by an invocation to + routine Force_Evaluation which centralizes this work in the frontend. + +2011-08-02 Robert Dewar + + * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table + (Base_Type): Now uses improved Is_Base_Type function + * einfo.ads (Base_Type): Inline this function + +2011-08-02 Robert Dewar + + * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion + (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas + +2011-08-02 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks + targets. + +2011-08-02 Yannick Moy + + * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on + non-simple expression used in delta constraint + (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on + index constraint which is not a subtype mark + * par.adb: With and use Restrict + * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal + mode on component type which is not a subtype mark and default + expression on component + (Analyze_Subtype_Declaration): issue an error in formal mode on subtype + of string which does not have a lower index bound equal to 1 + (Array_Type_Declaration): issue an error in formal mode on index or + component type which is not a subtype mark, and on aliased keyword on + component + (Derived_Type_Declaration): issue an error in formal mode on interface, + limited or abstract type + (Record_Type_Declaration): issue an error in formal mode on interface + (Record_Type_Definition): issue an error in formal mode on tagged types + and type extensions not declared in the specification of a library unit + package; on null non-tagged record; on variant part + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir + not declared for qualified library project when Library_Name is not + declared, but Library_Dir is. + +2011-08-02 Robert Dewar + + * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated + pragmas (affects aspects [Component_]Default_Value + (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use + component type for the resolution + +2011-08-02 Eric Botcazou + + * einfo.adb (Base_Type): Tune implementation for speed. + +2011-08-02 Robert Dewar + + * freeze.adb: Minor reformatting. + +2011-08-02 Thomas Quinot + + * scos.ads: Update comments. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the + base type, because the parent may be a subtype of a private type whose + convention is established in a private part. + +2011-08-02 Hristian Kirtchev + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return + statement in a block when the expansion of the return expression has + created a finalization chain. + * freeze.adb (Freeze_Expression): Alphabetize all choices associated + with the parent node. + Add N_Extended_Return_Statement to handle the case where a transient + object declaration appears in the Return_Object_Declarations list of + an extended return statement. + +2011-08-02 Matthew Gingell + + * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly + unused parameter 'name'. + +2011-08-02 Ed Schonberg + + * sem_elim.adb (Set_Eliminated): If the overridden operation is an + inherited operation, check whether its alias, which is the source + operastion that it renames, has been marked eliminated. + +2011-08-02 Javier Miranda + + * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an + in-mode parameter whose type is an access type since it can be used to + modify its designated object. Enforce code that handles as safe an + access type that is not access-to-constant but it is the result of a + previous removal of side-effects. + (Remove_Side_Effects): Minor code reorganization of cases which require + no action. Done to incorporate documentation on new cases uncovered + working in this ticket: no action needed if this routine was invoked + too early and the nodes are not yet decorated. + * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls + to routine Remove_Side_Effects by calls to Force_Evaluation since they + were issued with actuals that are implicitly provided by + Force_Evaluation. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_res.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure + to issue an error in formal mode on attribute not supported in this mode + (Analyze_Attribute): issue errors on standard attributes not supported + in formal mode. + * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of + comment, and issue error in formal mode on modulus which is not a power + of 2. + (Process_Range_Expr_In_Decl): issue error in formal mode on non-static + range. + * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in + subtype mark. + * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary + operator on modular type (except 'not'). + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + +2011-08-02 Arnaud Charlet + + * s-osinte-linux.ads: Minor comment update and reformatting. + * i-cexten.ads: Make this unit pure, as for its parent. + Will allow its usage in more contexts if needed. + +2011-08-02 Robert Dewar + + * s-utf_32.ads: Minor comment fix. + +2011-08-02 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive + operation of a tagged synchronized type, handle the case where the + controlling argument is overloaded. + +2011-08-02 Yannick Moy + + * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl: + Replace pragma SPARK_95 with pragma Restrictions (SPARK) + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set + SPARK mode and formal verification mode on processing SPARK restriction + * s-rident.ads (Restriction_Id): add SPARK restriction in those not + requiring consistency checking. + +2011-08-02 Robert Dewar + + * sem_res.adb: Minor reformatting. + +2011-08-02 Robert Dewar + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads: Remove unneeded with of Ada.Containers + Remove commented out pragma Inline's + Move specifications of new subprograms to the actual specs + +2011-08-02 Yannick Moy + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads: Update comments. + +2011-08-02 Ed Schonberg + + * sem_attr.adb: add attribute name when 'Result has the wrong prefix. + +2011-08-02 Robert Dewar + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads, a-cofove.ads: Minor reformatting. + +2011-08-02 Claire Dross + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, + a-cofove.ads: Add comments. + +2011-08-02 Yannick Moy + + * gnat_rm.texi: Document formal containers. + +2011-08-02 Emmanuel Briot + + * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there + are empty sections. + +2011-08-02 Robert Dewar + + * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor + reformatting. + +2011-08-02 Robert Dewar + + * aspects.adb: New aspects Default_Value and Default_Component_Value + New format of Aspect_Names table checks for omitted entries + * aspects.ads: Remove mention of Aspect_Cancel and add documentation on + handling of boolean aspects for derived types. + New aspects Default_Value and Default_Component_Value + New format of Aspect_Names table checks for omitted entries + * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag + (Has_Default_Value): New flag + (Has_Default_Component_Value): New flag + (Has_Default_Value): New flag + * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names + table. + * par-prag.adb: New pragmas Default_Value and Default_Component_Value + * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects + Default_Value and Default_Component_Value + * sem_prag.adb: New pragmas Default_Value and Default_Component_Value + New aspects Default_Value and Default_Component_Value + * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value + * sprint.adb: Print N_Aspect_Specification node when called from gdb + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): For virtual library project, + inherit library kind. + +2011-08-02 Ed Schonberg + + * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds. + Minor reformatting. + +2011-08-02 Robert Dewar + + * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Resolve_Aggregate): Fix thinko. + +2011-08-02 Robert Dewar + + * impunit.adb: Add comment. + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks + qualification of aggregates in formal mode + (Is_Top_Level_Aggregate): returns True for an aggregate not contained in + another aggregate + (Resolve_Aggregate): complete the test that an aggregate is adequately + qualified in formal mode + +2011-08-02 Pascal Obry + + * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting. + * mlib-prj.adb: Supress warning when compiling binder generated file. + (Build_Library): Supress all warnings when compiling the binder + generated file. + +2011-08-02 Yannick Moy + + * errout.adb, errout.ads (Check_Formal_Restriction): move procedure + from here... + * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here + * sem_aggr.adb, sem_ch5.adb, sem_util.adb: + Add with/use clauses to make Check_Formal_Restriction visible + +2011-08-02 Ed Schonberg + + * sem_ch12.adb (Check_Generic_Actuals): handle properly actual + in-parameters when type of the generic formal is private in the generic + spec and non-private in the body. + +2011-08-02 Claire Dross + + * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb, + a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads, + a-cofove.adb, a-cofove.ads: New files implementing formal containers. + * impunit.adb, Makefile.rtl: Take new files into account. + +2011-08-02 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb, + sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in + formal mode + * sem_util.adb (Matching_Static_Array_Bounds): proper detection of + matching static array bounds, taking into account the special case of + string literals + * sem_ch3.adb: Typo in comment. + +2011-08-02 Yannick Moy + + * errout.adb, errout.ads (Check_Formal_Restriction): new procedure + which issues an error in formal mode if its argument node is originally + from source + * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type + has a discriminant specification so that it does not include the case + of derived types + (Derived_Type_Declaration): move here the test that a derived type has a + discriminant specification + * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the + first element of a component association before accessing its choices + (presence of component association is not enough) + * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram + declaration is a library item before accessing the next element in a + list, as library items are not member of lists + * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use + Check_Formal_Restriction whenever possible. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype + reference when needed. + +2011-08-02 Bob Duff + + * gnat_ugn.texi: Fix typo. + +2011-08-02 Vincent Celier + + * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of + archive file name. Do not use the full path name of archives for Open + VMS. + +2011-08-02 Robert Dewar + + * sem_ch12.adb, sem_ch11.adb: New calling sequence for + Analyze_Aspect_Specifications + * sem_ch13.adb + (Analyze_Aspect_Specifications): New handling for boolean aspects + * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence + * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling + sequence for Analyze_Aspect_Specifications + * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely + * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used + +2011-08-02 Robert Dewar + + * freeze.adb (Freeze_Entity): Remove handling of delayed boolean + aspects, since these no longer exist. + +2011-08-02 Robert Dewar + + * par-ch13.adb (Aspect_Specifications_Present): Always return false on + semicolon, do not try to see if there are aspects following it. + * par-ch3.adb (P_Declarative_Items): Better message for unexpected + aspect spec. + +2011-08-02 Robert Dewar + + * sem_ch8.adb, aspects.ads: Minor reformatting. + +2011-08-02 Eric Botcazou + + * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline. + * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure + extracted from... + (Analyze_Aspect_Specifications): ...here. Call above procedure. + +2011-08-02 Yannick Moy + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal + mode on subprogram declaration outside of package specification, unless + it is followed by a pragma Import + * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration, + Access_Type_Declaration): issue error in formal mode on access type + (Analyze_Incomplete_Type_Decl): issue error in formal mode on + incomplete type + (Analyze_Object_Declaration): issue error in formal mode on object + declaration which does not respect SPARK restrictions + (Analyze_Subtype_Declaration): issue error in formal mode on subtype + declaration which does not respect SPARK restrictions + (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue + error in formal mode on digits or delta constraint + (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on + decimal fixed point type + (Derived_Type_Declaration): issue error in formal mode on derived type + other than type extensions of tagged record types + * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant + with check on access definition + * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal + mode on protected definition. + (Analyze_Task_Definition): issue error in formal mode on task definition + +2011-08-02 Robert Dewar + + * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting. + +2011-08-02 Javier Miranda + + * sem_ch6.adb (Can_Override_Operator): New function. + (Verify_Overriding_Indicator): Add missing code to check overriding + indicator in operators. Fixes regression. + (Check_Overriding_Indicator): Minor reformating after replacing the + code that evaluates if the subprogram can override an operator by + invocations to the above new function. + * einfo.adb + (Write_Field26_Name): Add missing code to ensure that, following + the documentation in einfo.ads, this field is not shown as attribute + "Static_Initialization" on non-dispatching functions. + +2011-08-02 Jose Ruiz + + * sem_res.adb (Resolve_Call): A call to + Ada.Real_Time.Timing_Events.Set_Handler violates restriction + No_Relative_Delay (AI-0211) only when it sets a relative timing event, + i.e., when the second parameter is of type Time_Span. + +2011-08-02 Vincent Celier + + * make.adb (Gnatmake): use /lib.a to link + with an archive instead of -L -l. + +2011-08-02 Ed Schonberg + + * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed, + mark the base types In_Use in addition to making the operations + use_visible. + +2011-08-02 Ed Falis + + * init.c: add and setup __gnat_signal_mask for the exception signals + * s-inmaop-vxworks.adb: new file. + * s-intman-vxworks.adb: remove unnecessary initializations and + simplify remaining + * s-intman-vxworks.ads: remove unnecessary variable + * s-taprop-vxworks.adb: simplify signal initialization + +2011-08-02 Robert Dewar + + * sem_ch8.adb: Minor code reorganization, comment updates. + +2011-08-02 Robert Dewar + + * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util + * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved + here from Sem_Res. + (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression + (Matching_Static_Array_Bounds): Moved here from Sem_Res + +2011-08-02 Ed Schonberg + + * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5. + * par_ch8.adb (P_Use_Type): initialize Used_Operations for node. + * sinfo.ads, sinfo.adb (Used_Operations): new attribute of + use_type_clauses, to handle more efficiently use_type and use_all_type + constructs. + * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the + Ada2012 Use_All_Type clause. + (Use_Class_Wide_Operations): new procedure. + +2011-08-02 Robert Dewar + + * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb, + sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized + expression to expression function. + +2011-08-02 Ed Schonberg + + * sem_ch4.adb: transform simple Ada2012 membership into equality only + if types are compatible. + +2011-08-02 Yannick Moy + + * sem_res.adb (Matching_Static_Array_Bounds): new function which + returns True if its argument array types have same dimension and same + static bounds at each index. + (Resolve_Actuals): issue an error in formal mode on actuals passed as + OUT or IN OUT paramaters which are not view conversions in SPARK. + (Resolve_Arithmetic_Op): issue an error in formal mode on + multiplication or division with operands of fixed point types which are + not qualified or explicitly converted. + (Resolve_Comparison_Op): issue an error in formal mode on comparisons of + Boolean or array type (except String) operands. + (Resolve_Equality_Op): issue an error in formal mode on equality + operators for array types other than String with non-matching static + bounds. + (Resolve_Logical_Op): issue an error in formal mode on logical operators + for array types with non-matching static bounds. Factorize the code in + Matching_Static_Array_Bounds. + (Resolve_Qualified_Expression): issue an error in formal mode on + qualified expressions for array types with non-matching static bounds. + (Resolve_Type_Conversion): issue an error in formal mode on type + conversion for array types with non-matching static bounds + +2011-08-02 Robert Dewar + + * par-ch10.adb: Minor code reorganization (use Nkind_In). + +2011-08-02 Ed Schonberg + + * par-ch9.adb: save location of entry for proper error message. + +2011-08-02 Javier Miranda + + * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal + (Use_Full_View) which permits this routine to climb through the + ancestors using the full-view of private parents. + * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set + Use_Full_View to true in calls to Is_Ancestor. + * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to + true in call to Is_Ancestor. + * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set + Use_Full_View to true in call to Is_Ancestor. + * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in + call to Is_Ancestor. + * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set + Use_Full_View to true in calls to Is_Ancestor. + * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT, + Make_Select_Specific_Data_Table, Register_Primitive, + Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View + to true in call to Is_Ancestor. + * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set + Use_Full_View to true in calls to Is_Ancestor. + * exp_cg.adb + (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor. + (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor. + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-02 Tristan Gingold + + * vms_data.ads: Add VMS qualifier for -gnateP. + +2011-08-02 Robert Dewar + + * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty + * par-ch7.adb (P_Package): Proper placement of aspects for package + decl/instantiation. + * par-endh.adb (Check_End): Ad Is_Sloc parameter + (End_Statements): Add Is_Sloc parameterr + * par.adb (P_Aspect_Specification): New meaning of Decl = Empty + (Check_End): Ad Is_Sloc parameter + (End_Statements): Add Is_Sloc parameterr + +2011-08-02 Vincent Celier + + * ug_words: Add VMS qualifier equivalent to -gnateP: + /SYMBOL_PREPROCESSING. + +2011-08-02 Jose Ruiz + + * gnat-style.texi: For hexadecimal numeric literals the typical + grouping of digits is 4 to represent 2 bytes. + A procedure spec which is split into several lines is indented two + characters. + +2011-08-02 Yannick Moy + + * exp_aggr.adb (Is_Others_Aggregate): move function to other unit. + * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here + (Resolve_Aggregate): issue errors in formal modes when aggregate is not + properly qualified + (Resolve_Array_Aggregate): issue errors in formal modes on non-static + choice in array aggregate + (Resolve_Extension_Aggregate): issue errors in formal modes on subtype + mark as ancestor + (Resolve_Record_Aggregate): issue errors in formal modes on mixed + positional and named aggregate for record, or others in record + aggregate, or multiple choice in record aggregate + * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when + array operands to logical operations AND, OR and XOR do not have the + same static lower and higher bounds + * sem_ch5.adb, sinfo.ads: Correct typos in comments + +2011-08-01 Robert Dewar + + * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement): + Replaces Last_Source_Node_In_Sequence. + * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K + * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores + parens and blank in string (this was inconsistently implemented). + * errout.ads + (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and + blank in string (this was inconsistently implemented). + * gnat1drv.adb + (Set_Global_Switches): Set formal mode switches appropriately + * opt.ads, opt.adb: Formal mode is now global switches, more consistent + * par-prag.adb + (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and + call Set_Error_Msg_Lang to set "spark" as language name. + * par.adb: Remove unnecessary call to set formal language for errout + * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches + appropriately and call Set_Error_Msg_Lang to set "spark" as language + name. + * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and + calls to it, moved after resolution so that types are known + * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if + result of concatenation is not of type String + (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of + concatenation is not properly restricted + * gnat_rm.texi: Add doc on pragma Spark_95. + * gcc-interface/Makefile.in: Remove obsolete target pairs for + Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-01 Javier Miranda + + * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of + condition that detects if the overridden operation must replace an + existing entity. + +2011-08-01 Javier Miranda + + * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded + code declarations inserted by Insert_Actions in each alternative of the + N_Case_Expression node. + +2011-08-01 Robert Dewar + + * sem_ch6.adb: Minor code reorganization. + * sem_util.adb: Minor reformatting. + +2011-08-01 Pascal Obry + + * prj-env.adb: Remove /lib/gpr/ project search path. + * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource. + +2011-08-01 Yannick Moy + + * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character + literal or operator symbol which is prefixed + * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal + mode on access attributes. + * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check + that concatenation operands are properly restricted in formal mode + (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure + Analyze_Concatenation_Operand. Issue an error in formal mode if the + result of the concatenation has a type different from String. + (Analyze_Conditional_Expression, Analyze_Explicit_Dereference, + Analyze_Quantified_Expression, Analyze_Slice, + Analyze_Null): issue an error in formal mode on unsupported constructs + * sem_ch5.adb + (Analyze_Block_Statement): only issue error on source block statement + * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new + function which returns the last node in a list of nodes for which + Comes_From_Source returns True, if any + * sem_ch6.adb (Check_Missing_Return): minor refactoring to use + Last_Source_Node_In_Sequence + * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming, + Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal + mode on unsupported constructs + * sem_ch9.adb Do not return after issuing error in formal mode, as the + rest of the actions may be needed later on since the error is marked as + not serious. + * sinfo.ads: Typos in comments. + +2011-08-01 Pascal Obry + + * projects.texi: Minor editing. + +2011-08-01 Yannick Moy + + * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for + insertion character ~~ + * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures + (Set_Error_Msg_Lang): new procedure which fixes the language for use + with insertion character ~~ + (Set_Msg_Text): treat insertion character ~~ + * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb, + sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to + Formal_Error_Msg_... procedures by equivalent Error_Msg_... + procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make + errors related to the formal language restriction not serious + (insertion character |). + * par.adb (Par): set formal language for error messages if needed + * sem_ch6.adb (Check_Missing_Return): take into account possible + generated statements at the end of the function + * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and + enumeration value to define a new pragma SPARK_95 + * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default, + SPARK_Version): new type and variables to store the SPARK version + (none by default). + (SPARK_Mode): return True when SPARK_Version is set + * par-prag.adb: Correct indentation + (Prag): take Pragma_SPARK_95 into account + * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95 + into account. + +2011-08-01 Robert Dewar + + * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb, + sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb, + sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting + +2011-08-01 Pascal Obry + + * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass + Target_Name to Get_Path call. + (Parse_Single_Project): Likewise. + (Post_Parse_Context_Clause): Likewise. + * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter. + Call Initialise_Project_Path with the proper Target_Name. + (Initialize_Project_Path): Add //lib/gnat + search path. + (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path + with the proper Target_Name. + * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to + Part.Parse routine. + (Parse_Project_And_Apply_Config): Likewise. + * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine. + This is fine as this part of the code is supporting only native + compilation. + * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This + is fine as this part of the code is supporting only native compilation. + +2011-08-01 Yannick Moy + + * sem_util.adb (Enter_Name): issue error in formal mode on declaration + of homonym, unless the homonym is one of the cases allowed in SPARK + * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for + package declaration occurring after a body. + +2011-08-01 Robert Dewar + + * checks.adb, exp_ch4.adb: Minor reformatting. + +2011-08-01 Javier Miranda + + * einfo.ads (Access_Disp_Table): Fix documentation. + (Dispatch_Table_Wrappers): Fix documentation. + +2011-08-01 Pascal Obry + + * prj-env.adb, prj-env.ads: Minor reformatting. + +2011-08-01 Yannick Moy + + * sem_util.ads, sem_util.adb, par.adb, par_util.adb + (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move + procedures out of these packages. + * errout.ads, errout.adb + (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move + procedures in of this package + (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE + * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode + on misplaced later vs initial declarations, like in Ada 83 + * sem_attr.adb (Processing for Analyze_Attribute): issue error in + formal mode on attribute of private type whose full type declaration + is not visible + * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a + package declaration inside a package specification + (Analyze_Full_Type_Declaration): issue error in formal mode on + controlled type or discriminant type + * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on + user-defined operator means that it should come from the source + (New_Overloaded_Entity): issue error in formal mode on overloaded + entity. + * sem_ch6.ads, sem_ch13.ads: typos in comments. + +2011-08-01 Thomas Quinot + + * atree.adb: Minor reformatting. + * checks.adb: Minor reformatting. + +2011-08-01 Vincent Celier + + * s-parame-vms-ia64.ads: Fix typo in comment + Minor reformatting + * s-parame-vms-restrict.ads: Removed, unused. + +2011-08-01 Javier Miranda + + * exp_ch3.adb + (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound. + * sem_ch3.adb + (Constrain_Index): Remove side effects in the evaluation of the bounds. + * sem_ch3.ads, sem_ch3.adb + (Is_Constant_Bound): New extended version of the subprogram that was + previously located inside function Exp_Ch3.Is_Variable_Size_Array. + Moved here since it is shared by routines of sem_ch3 and exp_ch3. + * sem_aux.ads (Constant_Value): Fix typo in comment. + * checks.adb (Generate_Index_Checks): New implementation which, for + array objects with constant bounds, generates the runtime check + referencing the bounds of the array type. For other cases this routine + provides its previous behavior obtaining such values from the array + object. + * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its + parent type. + * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since + we cannot have semantic interpretations of the new node. + +2011-08-01 Ed Schonberg + + * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified + expressions. + +2011-08-01 Arnaud Charlet + + * sem_ch8.adb: Minor code editing. + * s-vxwext.adb: Remove trailing space. + * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for + consistency with other files. + +2011-08-01 Thomas Quinot + + * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting. + +2011-08-01 Ed Schonberg + + * par-ch10.adb: reject parameterized expressions as compilation unit. + * sem_ch4.adb: handle properly conditional expression with overloaded + then_clause and no else_clause. + +2011-08-01 Tristan Gingold + + * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address + like done by System.Aux_DEC. + * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table. + +2011-08-01 Yannick Moy + + * par-endh.adb (Check_End): issue a syntax error in SPARK mode for + missing label at end of declaration (subprogram or package) + * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing + of positional and named parameter association + * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on + Error_Msg_SP which adds a prefix to the error message giving the name + of the formal language analyzed + * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for + access result type in subprogram, unconstrained array as result type,. + (Analyze_Subprogram_Declaration): issue an error in formal mode for null + procedure + * sem_ch8.adb: Code clean up. + +2011-08-01 Javier Miranda + + * sem_ch7.adb (Uninstall_Declarations): Remove useless code. + * einfo.ads (Access_Disp_Table): Fix documentation. + (Dispatch_Table_Wrappers): Fix documentation. + * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers, + Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions + to enforce the documentation of this attribute. + (Set_Is_Interface): Cleanup the assertion. + * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate + the Underlying_Type entity before reading attribute Access_Disp_Table. + * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion): + Locate the Underlying_Type before reading attribute Access_Disp_Table. + * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate + the Underlying_Type entity before reading attribute Access_Disp_Table. + * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration): + Locate the Underlying_Type entity before reading attribute + Access_Disp_Table. + +2011-08-01 Ed Schonberg + + * s-poosiz.ads: Additional overriding indicators. + +2011-08-01 Yannick Moy + + * sem_ch5.adb (Analyze_Exit_Statement): add return after error in + formal mode. + (Analyze_Iteration_Scheme): issue error in formal mode when loop + parameter specification does not include a subtype mark. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in + formal mode on abstract subprogram. + (Analyze_Subprogram_Specification): issue error in formal mode on + user-defined operator. + (Process_Formals): issue error in formal mode on access parameter and + default expression. + * sem_ch9.adb (Analyze_Abort_Statement, + Analyze_Accept_Statement, Analyze_Asynchronous_Select, + Analyze_Conditional_Entry_Call, Analyze_Delay_Relative, + Analyze_Delay_Until, Analyze_Entry_Call_Alternative, + Analyze_Requeue, Analyze_Selective_Accept, + Analyze_Timed_Entry_Call): issue error in formal mode on such constructs + * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error): + issue error in formal mode on user-defined raise statement. + +2011-08-01 Thomas Quinot + + * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a + declaration being hidden when overriding an implicit inherited + subprogram. + * par-ch10.adb (P_Compilation_Unit): In syntax check only mode + (-gnats), do not complain about a source file that contains only a + pragma No_Body. + +2011-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop + variable if already set. + +2011-08-01 Arnaud Charlet + + * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads, + g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads, + s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads, + g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb, + g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads, + g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads, + g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads, + g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb, + g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb, + g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads, + g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads, + s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb, + g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads, + s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads, + g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb, + g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb, + g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb, + g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb, + g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb, + g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb, + s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads, + s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads, + a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb, + s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads, + s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb, + g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads, + g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb, + g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb, + g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads, + g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads, + g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads, + s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads, + s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb, + g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb, + g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads, + s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb, + s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads, + g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads, + g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb, + g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, + s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads, + g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads, + g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads, + g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb, + s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb, + g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb, + g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb, + g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb, + s-osinte-mingw.ads: Update to GPLv3 run-time license. + Use GNAT instead of GNARL. + +2011-08-01 Bob Duff + + * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads, + a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads, + a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor + reformatting. + +2011-08-01 Yannick Moy + + * debug.adb (d.D) reverve flag for the SPARK mode + (d.E) reverve flag for SPARK generation mode + (d.F) reverve flag for Why generation mode + * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode, + ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New + functions which return True when the corresponding modes are set + (Formal_Language): return "spark" or "alfa" when in formal verification + mode. + * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on + Error_Msg to prefix the error message with a tag giving the formal + language + (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error + message with a tag giving the formal language + * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on + block statement + (Analyze_Case_Statement): issue error in formal mode on case statement + with a single "others" case alternative + (Analyze_Exit_Statement): issue errors in formal mode on exit + statements which do not respect SPARK restrictions + (Analyze_Goto_Statement): issue error in formal mode on goto statement + (Check_Unreachable_Code): always issue an error (not a warning) in + formal mode on unreachable code (concerns both code after an infinite + loop and after an unconditional jump, both not allowed in SPARK) + * sem_ch6.adb (Analyze_Return_Statement): add call to + Set_Return_Present for a procedure containing a return statement + (already done for functions in Analyze_Function_Return) + (Analyze_Function_Return): issue error in formal mode on extended + return or if return is not last statement in function + (Check_Missing_Return): issue error in formal mode if function does + not end with return or if procedure contains a return + * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new + function to detect if there is an inner scope of its parameter S which + is a loop. + +2011-08-01 Thomas Quinot + + * sem_ch6.ads: Minor reformatting. + +2011-08-01 Javier Miranda + + * sem_util.adb (Abstract_Interface_List): Complete condition when + processing private type declarations to avoid reading unavailable + attribute. + (Is_Synchronized_Tagged_Type): Complete condition when processing + private extension declaration nodes to avoid reading unavailable + attribute. + +2011-08-01 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-01 Thomas Quinot + + * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads, + i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads, + s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads, + s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages + for VMS, instead parametrize the common implementation with + System.Parameters declarations. + +2011-08-01 Eric Botcazou + + * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing. + +2011-08-01 Tristan Gingold + + * seh_init.c: Fix SEH handler installation on win64. + +2011-08-01 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent + double analysis of an anonymous access to subprogram, because it can + lead to improper sharing of profiles and a back-end crash. + +2011-08-01 Robert Dewar + + * make.adb, sem_ch4.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + * sem_util.adb, exp_ch5.adb: Minor reformatting. + +2011-08-01 Arnaud Charlet + + * gnat_rm.texi: Fix definition of Long_Integer. + +2011-08-01 Ed Schonberg + + * exp_aggr.adb: check limit size of static aggregate unconditionally, + to prevent storage exhaustion. + * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being + finalized is a function body, insert the cleanup code before the final + return statement, to prevent spurious warnings. + * s-pooglo.ads: add overriding indicator. + +2011-08-01 Ed Schonberg + + * sem_ch4.adb (Operator_Check): improve error message when both a + with_clause and a use_clause are needed to make operator usage legal. + * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to + determine whether a compilation unit is visible within an other, + either through a with_clause in the current unit, or a with_clause in + its library unit or one one of its parents. + +2011-08-01 Ed Schonberg + + * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator + over an arbitrary expression of an array or container type. + * lib-xref.adb: clarify comment. + +2011-08-01 Bob Duff + + * einfo.ads: Minor reformatting. + * debug.adb: Minor comment improvement. + +2011-08-01 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not + consider hidden subprograms as valid candidates. + +2011-08-01 Arnaud Charlet + + * make.adb (Compile): Strip -mxxx switches in CodePeer mode. + +2011-08-01 Vasiliy Fofanov + + * gnat_ugn.texi: Fix typo. + +2011-08-01 Robert Dewar + + * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb, + lib-xref.adb: Minor reformatting + +2011-08-01 Gary Dismukes + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of + when to generate a call to Move_Final_List. + (Has_Controlled_Parts): Remove this function. + +2011-08-01 Geert Bosch + + * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra + "," in choice list. + +2011-08-01 Thomas Quinot + + * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for + explicit raise of a predefined exception as Comes_From_Source if the + original N_Raise_Statement comes from source. + +2011-08-01 Robert Dewar + + * sinfo.ads: Add comment. + * sem_ch6.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Refine check for bad component size + clause to avoid rejecting confirming clause when atomic/aliased present. + +2011-08-01 Ed Schonberg + + * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to + better determine whether an entity reference is a write. + * sem_util.adb (Is_LHS): refine predicate to handle assignment to a + subcomponent. + * lib-xref.adb (Output_References): Do no suppress a read reference at + the same location as an immediately preceeding modify-reference, to + handle properly in-out actuals. + +2011-08-01 Tristan Gingold + + * env.c (__gnat_setenv) [VMS]: Refine previous change. + +2011-08-01 Quentin Ochem + + * i-cstrin.adb (New_String): Changed implementation, now uses only the + heap to compute the result. + +2011-08-01 Robert Dewar + + * atree.ads: Minor reformatting. + +2011-08-01 Emmanuel Briot + + * g-expect.adb (Get_Command_Output): Fix memory leak. + +2011-08-01 Geert Bosch + + * cstand.adb (P_Float_Type): New procedure to print the definition of + predefined fpt types. + (P_Mixed_Name): New procedure to print a name using mixed case + (Print_Standard): Use P_Float_Type for printing floating point types + * einfo.adb (Machine_Emax_Value): Add preliminary support for quad + precision IEEE float. + +2011-08-01 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-01 Ed Schonberg + + * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is + the completion of a generic function, insert the new body rather than + rewriting the original. + +2011-08-01 Yannick Moy + + * sinfo.ads, errout.ads: Typos in comments. + +2011-08-01 Robert Dewar + + * par-endh.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspects for library unit pragmas + (Pre_Post_Aspects): New subtype. + * par-ch12.adb (P_Generic): New syntax for aspects in packages + * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter + * par-ch7.adb (P_Package): Remove Decl parameter + (P_Package): Handle new syntax for aspects (before IS) + * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle + new aspect syntax + (P_Task_Definition): Remove Decl parameter, handle new aspect syntax + * par.adb (P_Aspect_Specifications): Add Semicolon parameter + (P_Package): Remove Decl parameter + * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit + aspects + * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect + specs + * sem_util.ads, sem_util.adb (Static_Boolean): New function + * sinfo.ads: Document new syntax for aspects in packages etc. + * sprint.adb: Handle new syntax of aspects before IS in package + +2011-08-01 Thomas Quinot + + * atree.ads: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * exp_util.adb (Insert_Actions): Fix error in handling Actions for + case expr alternative. + +2011-08-01 Ed Schonberg + + * sem_ch12.adb: Fix typo. + +2011-08-01 Geert Bosch + + * sem_prag.adb (Check_No_Link_Name): New procedure. + (Process_Import_Or_Interface): Use Check_No_Link_Name. + * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float) + instead of Standard_Long_Long_Float_Size global. Preparation for + eventual removal of per type constants. + * exp_util.ads (Get_Stream_Size): New function returning the stream + size value of subtype E. + * exp_util.adb (Get_Stream_Size): Implement new function. + * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size + function. + * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size + * einfo.adb: + (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats + +2011-08-01 Geert Bosch + + * cstand.adb: Fix comments. + * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit + count of arguments. + +2011-08-01 Robert Dewar + + * exp_ch4.adb, sem_cat.adb: Minor reformatting. + +2011-08-01 Geert Bosch + + * atree.ads: Fix comment. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec. + * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name. + * par.adb: Add with for Namet.Sp. + * par-tchk.adb: Minor reformatting. + +2011-08-01 Vincent Celier + + * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb + (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name + of the init procedure of a SAL. + * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name): + New procedure. + +2011-08-01 Thomas Quinot + + * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor + reformatting. + +2011-08-01 Richard Kenner + + * adaint.c (__gnat_file_time_name_attr): Get rid of warning. + +2011-08-01 Thomas Quinot + + * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function + conformant with its spec (return True only for types that have + an overriding Initialize primitive operation that prevents them from + having preelaborable initialization). + * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable + initialization for controlled types in Ada 2005 or later mode. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition, + Postcondition. + (Same_Aspect): New function. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect + Type_Invariant, Precondition, Postcondition. + * snames.ads-tmpl: Add Name_Type_Invariant. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point + here. + (Freeze_All_Ent): Fix error in handling inherited aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is + already analyzed, but don't skip entire processing of a declaration, + that's wrong in some cases of declarations being rewritten. + (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects. + Don't delay for integer, string literals + Treat predicates in usual manner for delay, remove special case code, + not needed. + (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point + (Build_Predicate_Function): Update saved expression in aspect + (Build_Invariant_Procedure): Update saved expression in aspect + * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization + of replacement of discriminant references if the reference is simple. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate. + * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for + Static_Predicate and Dynamic_Predicate. + (Build_Predicate_Function): Add processing for Static_Predicate + and Dynamic_Predicate. + * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag + (From_Static_Predicate): New flag + * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate + +2011-08-01 Robert Dewar + + * usage.adb: Documentation cleanup for Ada version modes in usage. + * expander.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * atree.ads: Minor comment fix. + * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads, + a-witeio.ads, sem_prag.adb: Minor reformatting. + +2011-08-01 Doug Rupp + + * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure + pointers. Use descrip.h header file for convenience. Add some + comments. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point + (Freeze_All): Call Check_Aspect_At_End_Of_Declarations + * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point): + New procedure. + (Check_Aspect_At_End_Of_Declarations): New procedure + (Analye_Aspect_Specification): Minor changes for above procedures + * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect + specification node as well. + +2011-08-01 Pascal Obry + + * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special + Windows files. Use GetFilesAttributes() in this case to check for file + existence instead of returning with an error code. + +2011-08-01 Vincent Celier + + * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when + High is above Source length. + +2011-08-01 Robert Dewar + + * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment. + +2011-08-01 Robert Dewar + + * aspects.ads (Boolean_Aspects): New subtype. + * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects + for derived types in cases where the parent type and derived type have + aspects. + * freeze.adb (Freeze_Entity): Fix problems in handling derived type + with aspects when parent type also has aspects. + (Freeze_Entity): Deal with delay of boolean aspects (must evaluate + boolean expression at this point). + * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in + accordance with final decision on the Ada 2012 feature. + * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag. + +2011-08-01 Matthew Heaney + + * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector. + +2011-08-01 Pascal Obry + + * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: + Fix Replace_Slice when High is above current string size. + (Replace_Slice): Fix DL computation when High is above current + string length. + +2011-08-01 Gary Dismukes + + * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired. + +2011-08-01 Matthew Heaney + + * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child + of node. + +2011-08-01 Pascal Obry + + * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor + reformatting. + +2011-08-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named + access to protected subprograms in generic bodies. + * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a + protected type, indicate that the convention of the subprogram is + Convention_Protected, because it may be used in subsequent declarations + within the protected declaration. + +2011-08-01 Vincent Celier + + * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init" + and "final" procedures when the name of the library is "ada", to avoid + duplicate symbols "adainit" and "adafinal" in executables. + +2011-08-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a + quantified expression that appears within a postcondition and uses the + Ada2012 'Result attribute. + +2011-07-28 Rainer Orth + + * init.c (__gnat_error_handler): Cast reason to int. + (__gnat_install_handler): Explain sa_sigaction use. + +2011-07-24 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If the + subprogram has copy-in copy-out parameters, try to promote the mode of + the return type if it is passed in registers. + +2011-07-24 Eric Botcazou + + * gcc-interface/utils2.c (build_binary_op) : Do not mark the + left operand as addressable. + +2011-07-24 Eric Botcazou + + * gcc-interface/gigi.h (build_function_stub): Remove. + (build_return_expr): Likewise. + (convert_vms_descriptor): Declare. + * gcc-interface/utils.c (convert_vms_descriptor): Make global. + (build_function_stub): Move to... + * gcc-interface/utils2.c (build_return_expr): Move to... + * gcc-interface/trans.c (build_function_stub): ...here. + (build_return_expr): ...here. + (Subprogram_Body_to_gnu): Add local variable for language_function. + Disconnect the parameter attributes cache, if any, once done with it. + Call end_subprog_body only after setting the end_locus. + Build the stub associated with the function, if any, at the very end. + (gnat_to_gnu) : Remove couple of useless local + variables and streamline control flow. + +2011-07-23 Arnaud Charlet + + PR ada/49819 + * gcc-interface/Makefile.in (powerpc-linux): Remove reference to + g-trasym-dwarf.adb. + +2011-07-22 Rainer Orth + + PR bootstrap/49794 + * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): + Assign to act.sa_sigaction. + * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast + current->return_address to char * before arithmetic. + +2011-07-22 Rainer Orth + + * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation. + Correct argument types. + Extract code from reason. + (__gnat_install_handler): Assign to act.sa_sigaction. + +2011-07-21 Eric Botcazou + + * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to... + (GNAT1_OBJS): ...here. + +2011-07-15 Eric Botcazou + + PR ada/48711 + * g-socthi-mingw.adb (Fill): Fix formatting. + + * gcc-interface/gigi.h: Move around comment. + +2011-07-14 John David Anglin + + PR ada/46350 + * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. + +2011-07-14 Florian Weimer + + PR ada/48711 + * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL. + +2011-07-13 Eric Botcazou + + * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit + range comparison if Pmode is SImode. + +2011-07-12 Laurent GUERBY + Eric Botcazou + + * adadecode.c: Wrap up in extern "C" block. + * adadecode.h: Likewise. + * adaint.c: Likewise. Remove 'const' keyword. + * adaint.h: Likewise. + * argv.c: Likewise. + * atree.h: Likewise. + * cio.c: Likewise. + * cstreams.c: Likewise. + * env.c: Likewise. + * exit.c: Likewise. + * fe.h: Likewise. + * final.c: Likewise. + * init.c: Likewise. + * initialize.c: Likewise. + * link.c: Likewise. + * namet.h: Likewise. + * nlists.h: Likewise. + * raise.c: Likewise. + * raise.h: Likewise. + * repinfo.h: Likewise. + * seh_init.c: Likewise. + * targext.c: Likewise. + * tracebak.c: Likewise. + * uintp.h: Likewise. + * urealp.h: Likewise. + * xeinfo.adb: Wrap up generated C code in extern "C" block. + * xsinfo.adb: Likewise. + * xsnamest.adb: Likewise. + * gcc-interface/gadaint.h: Wrap up in extern "C" block. + * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block. + * gcc-interface/misc.c: Likewise. + * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER. + (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and + ada/targext.o here... + (GNAT_ADA_OBJS): ...and not here. + (GNAT1_ADA_OBJS): Add ada/b_gnat1.o. + (GNATBIND_OBJS): Reorder. + +2011-07-07 Richard Henderson + + * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call + dwarf2out_frame_init. + +2011-07-07 Eric Botcazou + + * gcc-interface/misc.c (gnat_init): Tweak previous change. + +2011-07-07 Rainer Orth + + PR target/39150 + * gcc-interface/Makefile.in: Handle x86_64-solaris2. + +2011-07-06 Richard Guenther + + * gcc-interface/misc.c (gnat_init): Merge calls to + build_common_tree_nodes and build_common_tree_nodes_2. + Re-initialize boolean_false_node. + +2011-07-02 Eric Botcazou + Olivier Hainque + Nicolas Setton + + * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on + the type according to the ARTIFICIAL_P parameter. + (create_type_decl): Likewise. + (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1. + +2011-07-01 Eric Botcazou + + * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command. + (gnatbind): Likewise. + +2011-06-29 Rainer Orth + + * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL). + +2011-06-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE + local variable throughout. Remove useless call to Base_Type. + (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout. + Take it also into account for the volatileness of the field. Set the + TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings. + +2011-06-18 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP + on a dereference built for a by-ref object if it has an address clause. + +2011-06-18 Eric Botcazou + + * einfo.ads (Address_Taken): Document use for the second argument of + Asm_Input and Asm_Output attributes. + * sem_attr.adb (Analyze_Attribute) : If the second + argument is an entity name, then set Address_Taken on it. + : Likewise. + * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the + Attr_Asm_Input and Attr_Asm_Output attributes explicitly. + (gnat_to_gnu) : If an operand is going to end up in + memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. + +2011-06-16 Joern Rennecke + + PR middle-end/46500 + * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args. + +2011-06-14 Joseph Myers + + * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o. + (ada/utils.o): Update dependencies. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add + ../../../libcpp/libcpp.a. + * gcc-interface/utils.c: Include common/common-target.h. + (process_attributes): Use targetm_common.have_named_sections. + +2011-06-07 Richard Guenther + + * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call + set_sizetype. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the + TREE_THIS_NOTRAP flag. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils2.c (gnat_stabilize_reference) : + Fix thinko. + +2011-06-06 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred + constants whose full view has discriminants specially. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils.c: Include diagnostic.h. + (gnat_write_global_declarations): Output debug information for all + global type declarations before finalizing the compilation unit. + * gcc-interface/Make-lang.in (ada/utils.o): Add dependency. + +2011-05-25 Jakub Jelinek + + * gcc-interface/utils.c (def_fn_type): Remove extra va_end. + +2011-05-25 Kai Tietz + + * adaint.c (__gnat_to_canonical_file_list_next): Use array + initialization instead of const/none-const pointer assignment. + +2011-05-24 Joseph Myers + + * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include + $(EXTRA_GNAT1_OBJS). + (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). + (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. + (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use + libcommon-target.a instead of prefix.o. + +2011-05-21 Joseph Myers + + PR ada/49097 + * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS). + +2011-05-20 Joseph Myers + + * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a + instead of version.o. + +2011-05-18 Kai Tietz + + * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use + boolean_false_node instead of integer_zero_node. + (convert_with_check): Likewise. + * gcc-interface/decl.c (choices_to_gnu): Likewise. + +2011-05-12 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the + type of the parameter is an unconstrained array, convert the actual to + the type of the formal in the In Out and Out cases as well. + +2011-05-11 Nathan Froyd + + * gcc-interface/utils.c (def_fn_type): Don't call build_function_type; + call build_function_type_array or build_varargs_function_type_array + instead. + (create_subprog_type): Don't call build_function_type; call + build_function_type_vec instead. + +2011-05-11 Nathan Froyd + + * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL. + (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL. + (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL. + +2011-05-07 Eric Botcazou + + * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces. + + * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. + * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. + +2011-05-05 Nathan Froyd + + * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label. + +2011-05-05 Nathan Froyd + + * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators + instead of accessing TYPE_ARG_TYPES directly. + * gcc-interface/utils.c (handle_nonnull_attribute): Likewise. + +2011-05-05 Eric Botcazou + + PR ada/48844 + * gcc-interface/gigi.h (get_variant_part): Declare. + * gcc-interface/decl.c (get_variant_part): Make global. + * gcc-interface/utils2.c (find_common_type): Do not return T1 if the + types have the same constant size, are record types and T1 has a + variant part while T2 doesn't. + +2011-05-05 Eric Botcazou + + * gcc-interface/utils.c (begin_subprog_body): Do not call + get_pending_sizes. + (end_subprog_body): Likewise. + +2011-05-04 Richard Guenther + + * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to + int_const_binop. + (pos_to_constructor): Likewise. + +2011-05-03 Nathan Froyd + Eric Botcazou + + * gcc-interface/trans.c (gigi): Call build_function_type_list instead + of build_function_type. Adjust calls to... + (build_raise_check): ...this. Do not take a void_tree parameter. + Call build_function_type_list instead of build_function_type. + Fix head comment and swap couple of conditional blocks. + +2011-04-30 Eric Botcazou + + * gnatvsn.ads (Library_Version): Bump to 4.7. + (Current_Year): Bump to 2011. + +2011-04-29 Michael Matz + + * gcc-interface/misc.c (gnat_handle_option): Set + warn_maybe_uninitialized. + +2011-04-23 Gerald Pfeifer + + * gnat_ugn.texi (Complexity Metrics Control): Update link to + the Watson/McCabe paper. + +2011-04-23 Jim Meyering + + * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/ + +2011-04-22 Eric Botcazou + + * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE + onto the new type. + +2011-04-22 Eric Botcazou + + * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG + parameter. + * gcc-interface/utils.c (create_subprog_decl): Likewise. Set + DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add + ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl. + : Do not set flags on the reused DECL node coming from an alias. + Set DECL_IGNORED_P on the DECL node built for subprograms if they + don't need debug info here... + * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here. + (gigi): Adjust calls to create_subprog_decl. + (build_raise_check): Likewise. + (establish_gnat_vms_condition_handler): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + +2011-04-21 Eric Botcazou + + * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define. + (NO_REORDER_ADAFLAGS): New variable. + (EXTRA_GNATTOOLS): Always define. + (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h. + Clean up and adjust list of files compiled with special options. + * gcc-interface/Make-lang.in: Likewise. + (ada/decl.o): Cosmetical change. + (ada/misc.o): Remove dependency on $(PLUGIN_H). + +2011-04-20 Jim Meyering + + * initialize.c (__gnat_initialize): Remove useless if-before-free. + +2011-04-17 Eric Botcazou + + * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with + $(CFLAGS) on the link line. + +2011-04-17 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare the + padded type built for the return type if it is unconstrained. + +2011-04-14 Nathan Froyd + + * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. + +2011-04-12 Nathan Froyd + + * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON + before calling TREE_CHAIN. + * gcc-interface/misc.c (gnat_init_ts): New function. + (LANG_HOOKS_INIT_TS): Define. + +2011-04-12 Martin Jambor + + * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node + instead of cgraph_node. + +2011-04-08 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum + alignment on fields of the RETURN type built for the Copy-In Copy-Out + mechanism. + +2011-04-08 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers + of aggregate types that contain a placeholder. + +2011-04-08 Nathan Froyd + + * gcc-interface/utils.c (handle_sentinel_attribute): Don't use + TYPE_ARG_TYPES. + (handle_type_generic_attribute): Likewise. + +2011-04-04 Eric Botcazou + + PR ada/47163 + * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change. + +2011-04-04 Kai Tietz + + PR ada/47163 + * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets + to flag value. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils2.c (build_allocator): In the unconstrained array + type case, do not strip a padding type around the array type. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Finalize named pointer + types. + +2011-04-02 Eric Botcazou + + * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete. + * gcc-interface/misc.c (gnat_handle_option): Remove special handling + code for -feliminate-unused-debug-types. + (gnat_post_options): Likewise. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial + declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a + distinct copy. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the + DECL_ARTIFICIAL flag on enumeration types. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make + fat pointer types artificial unconditionally. + : Attach the base array type as a parallel type if it + isn't artificial. + +2011-04-02 Eric Botcazou + + * gcc-interface/gigi.h (get_dummy_type): Declare. + (build_dummy_unc_pointer_types): Likewise. + (finish_fat_pointer_type): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : If a dummy + fat pointer type has been built, complete it in place. + : Call build_dummy_unc_pointer_types to build dummy fat + and thin pointers. Remove useless variable. + (finish_fat_pointer_type): Make global and move to... + * gcc-interface/utils.c (finish_fat_pointer_type): ...here. + (get_dummy_type): New function. + (build_dummy_unc_pointer_types): Likewise. + (gnat_pushdecl): Propage the name to the anonymous variants only. + (update_pointer_to): Only adjust the pointer types in the unconstrained + array case. + +2011-04-02 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set it + if this is a Taft amendment type and the full declaration is available. + * gcc-interface/trans.c (process_type): Likewise. + If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P. + (process_freeze_entity): Likewise. + * gcc-interface/utils.c (dummy_global): New static variable. + (gnat_write_global_declarations): If there are types declared as used + at the global level, insert them in the global hash table. + +2011-04-02 Eric Botcazou + + * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param. + * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial + declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct + copy. + (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL + flag of the type accordingly. + * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer + finalizing types when updating the pointers to the designated type. + : Finalize the deferred types even if we didn't defer processing + of incomplete types in this invocation. + +2011-04-01 Olivier Hainque + Nicolas Setton + Eric Botcazou + + * gcc-interface/misc.c (gnat_descriptive_type): New function. + (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type. + +2011-03-28 Kai Tietz + + * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native + Windows targets. + (EH_MECHANISM): Use GCC exception mechanism for native Windows targets. + * system-mingw.ads (System): Change ZCX_By_Default default to True. + + * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype. + +2011-03-28 Tristan Gingold + + PR ada/44431 + * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c. + Use ada output of gnatbind. + (ada/b_gnatb.adb): Ditto. + (ada/b_gnat1.o, ada/b_gnatb.o): New rules. + (ada.mostlyclean, ada.stage1) + (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile) + (ada.stagefeedback): Adjust. + * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c. + Use ada output of gnatbind. + (b_gnatm.adb): Ditto. + (b_gnatl.o, b_gnatm.o): New rules. + +2011-03-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL + for the padded type built to support a specified size or alignment. + +2011-03-26 Eric Botcazou + + * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer + unconditionally to the end of the unit when the designated type is + limited_with'ed. + : Rename local variable. Attempt to un-defer types only and do it + for limited_with'ed types as well. + (finalize_from_with_types): Adjust comment. Rename variable and tidy. + * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT + consistently and remove redundant call to finalize_from_with_types. + +2011-03-26 Eric Botcazou + + * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to + subprograms without a previous spec declared in the same unit. + * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined + subprograms at the end of the unit instead of at the beginning. + * gcc-interface/utils.c (create_subprog_decl): Check that the entity + isn't public for the special handling of non-inline functions nested + inside inline external functions. + +2011-03-25 Jeff Law + + * gcc-interface/utils.c (def_fn_type): Add missing va_end. + +2011-03-24 Eric Botcazou + + * einfo.ads (Size_Depends_On_Discriminant): Adjust description. + * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure + to compute Set_Size_Depends_On_Discriminant. + (Layout_Type): Call it on array types in back-end layout mode. + * sem_util.adb (Requires_Transient_Scope): Return true for array + types only if the size depends on the value of discriminants. + * gcc-interface/utils2.c (build_binary_op) : Use the RHS + type if the RHS is a call to a function that returns an unconstrained + type with default discriminant. + +2011-03-24 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of + non-conversion to the nominal result type at the end. + +2011-03-23 Eric Botcazou + + * gcc-interface/trans.c (create_temporary): New function taken from... + (create_init_temporary): ...here. Call it. + (call_to_gnu): Create the temporary for the return value early, if any. + Create it for a function with copy-in/copy-out parameters if there is + no target; in other cases of copy-in/copy-out, use another temporary. + Push the new binding level lazily. Add and rename local variables. + +2011-03-23 Eric Botcazou + + * gcc-interface/decl.c (validate_size): Improve comments and tweak + error message. + (set_rm_size): Likewise. + +2011-03-23 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL + for the padded type built in order to support a specified alignment. + Fix incorrect formatting. + +2011-03-21 Eric Botcazou + + PR bootstrap/48216 + * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL. + +2011-03-21 Eric Botcazou + + * gcc-interface/decl.c (components_to_record): Add REORDER parameter, + rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter + to the end of the list. Adjust recursive call. Rename local variable. + If REORDER is true, reorder components of the record type. + (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to + components_to_record and adjust the parameter list. + +2011-03-21 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): When optimization is + disabled, use the variable for bounds of loop iteration scheme. + +2011-03-21 Kai Tietz + + PR target/12171 + * gcc-interface/utils.c (gnat_internal_attribute_table): Add column. + +2011-03-17 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): Try harder to find + out whether the expression is read-only. Short-circuit placeholder + case and rename a couple of local variables. + +2011-03-17 Eric Botcazou + + * gcc-interface/gigi.h (smaller_form_type_p): Declare. + * gcc-interface/trans.c (smaller_form_type_p): Make global and move... + * gcc-interface/utils.c (smaller_form_type_p): ...to here. + (convert): Deal with conversions from a smaller form type specially. + +2011-02-14 Eric Botcazou + + * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and + its argument, except for the special -I- switch. + +2011-02-12 Gerald Pfeifer + + * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to + "Ada Issues". + +2011-02-08 Eric Botcazou + + * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs. + +2011-02-03 Eric Botcazou + + * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of + GNAT_FORMAL. + * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to... + * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE + instead of GNAT_FORMAL. Protect the expression against multiple uses. + Do not generate the check directly, instead instantiate the template + check present in the descriptor. + (make_descriptor_field): Move around. + (build_vms_descriptor32): Build a template check in the POINTER field. + (build_vms_descriptor): Remove useless suffixes. + * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call. + +2011-01-26 Eric Botcazou + + PR bootstrap/47467 + * targext.c: Include target files if IN_RTS is defined. + +2011-01-26 Richard Guenther + + PR bootstrap/47467 + * targext.c: Include config.h. + * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H) + dependency. + +2011-01-04 Pascal Obry + Eric Botcazou + + * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. + +2011-01-04 Eric Botcazou + + * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the + end-of-case on the end label and its associated gotos, if any. + +2011-01-04 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the + expressions of the parameter cache within the statement group of + the CICO mechanism. + +2011-01-04 Olivier Hainque + Eric Botcazou + + * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default. + (set_end_locus_from_node): New function. + (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we + make and the function end_locus. + (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus + for the elaboration subprogram. + (set_gnu_expr_location_from_node) : Use it to attempt to + set the end_locus of the expression as well. + +2011-01-04 Eric Botcazou + + PR ada/47131 + * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make + variables that are referenced in exception handlers volatile. + + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + * gnat_rm.texi: Ramification of pragma Eliminate documentation + - fix bugs in the description of Source_Trace; + - get rid of UNIT_NAME; + +2011-08-02 Javier Miranda + + * exp_ch9.adb + (Build_Dispatching_Requeue): Adding support for VM targets + since we cannot directly reference the Tag entity. + * exp_sel.adb (Build_K): Adding support for VM targets. + (Build_S_Assignment): Adding support for VM targets. + * exp_disp.adb + (Default_Prim_Op_Position): In VM targets do not restrict availability + of predefined interface primitives to compiling in Ada 2005 mode. + (Is_Predefined_Interface_Primitive): In VM targets this service is not + restricted to compiling in Ada 2005 mode. + (Make_VM_TSD): Generate code that declares and initializes the OSD + record. Needed to support dispatching calls through synchronized + interfaces. + * exp_ch3.adb + (Make_Predefined_Primitive_Specs): Enable generation of predefined + primitives associated with synchronized interfaces. + (Make_Predefined_Primitive_Bodies): Enable generation of predefined + primitives associated with synchronized interfaces. + +2011-08-02 Yannick Moy + + * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of + statements hidden in SPARK if preceded by the HIDE directive + (Parse_Exception_Handlers): mark each exception handler in a sequence of + exception handlers as hidden in SPARK if preceded by the HIDE directive + * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK + if starting with the HIDE directive + * par-ch7.adb (P_Package): mark a package body hidden in SPARK if + starting with the HIDE directive; mark the declarations in a private + part as hidden in SPARK if the private part starts with the HIDE + directive + * restrict.adb, restrict.ads + (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK + (Is_In_Hidden_Part_In_SPARK): new function which returns whether its + argument node belongs to a part which is hidden in SPARK + (Check_SPARK_Restriction): do not issue violations on nodes in hidden + parts in SPARK; protect the possibly costly call to + Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on + * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration + * scng.adb (Accumulate_Token_Checksum_GNAT_6_3, + Accumulate_Token_Checksum_GNAT_5_03): add case for new token + Tok_SPARK_Hide. + (Scan): recognize special comment starting with '#' and followed by + SPARK keyword "hide" as a HIDE directive. + +2011-08-02 Yannick Moy + + * types.ads, erroutc.ads: Minor reformatting. + +2011-08-02 Vincent Celier + + * link.c: Add response file support for cross platforms. + +2011-08-02 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression + in an association, set parent field of copy before partial analysis. + * sem_res.adb (Resolve_Slice): create reference to itype only when + expansion is enabled. + +2011-08-02 Yannick Moy + + * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set + for new flag denoting which subprogram bodies are in ALFA + * restrict.adb, sem_ch7.adb: Update comment + * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch9.adb, sem_res.adb: Add calls to + Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs. + * sem_ch6.adb (Analyze_Function_Return): add calls to + Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the + middle of the body, and extended return. + (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument + False when missing return. + (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA + to True for subprograms whose spec is in ALFA. Remove later on the flag + on the entity used for a subprogram body when there exists a separate + declaration. + * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA): + if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to + False, otherwise do nothing. + +2011-08-02 Robert Dewar + + * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_ch4.ads: minor formatting. + +2011-08-02 Yannick Moy + + * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, + debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb, + errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb, + restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, + opt.ads: cleanup of SPARK mode + +2011-08-02 Yannick Moy + + * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard + types. + * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities + (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA + * sem_ch3.adb + (Analyze_Object_Declaration): set Is_In_ALFA flag for objects + (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes + (Constrain_Integer): set Is_In_ALFA flag for integer subtypes + (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration + types. + (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with + non-static range. + * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for + functions whose return type is not in ALFA. + (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram + specifications. + (Process_Formals): unset Is_In_ALFA flag for subprograms if a + parameter's type is not in ALFA. + * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard + types are in ALFA. + +2011-08-02 Ed Schonberg + + * sem_ch6 (Analyze_Expression_Function): treat the function as + Inline_Always, and introduce a subprogram declaration for it when it is + not a completion. + * inline.adb (Add_Inlined_Body): recognize bodies that come from + expression functions, so that the back-end can determine whether they + can in fact be inlined. + * sem_util.adb (Is_Expression_Function): predicate to determine whether + a function body comes from an expression function. + +2011-08-02 Gary Dismukes + + * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming + null exclusions to test Can_Never_Be_Null on the anonymous access types + of the formals rather than testing the formals themselves. Exclude this + check in cases where the Old_Formal is marked as a controlling formal, + to avoid issuing spurious errors for bodies completing dispatching + operations (due to the flag not getting set on controlling access + formals in body specs). + (Find_Corresponding_Spec): When checking full and subtype conformance of + subprogram bodies in instances, pass Designated and E in that order, for + consistency with the expected order of the formals (New_Id followed by + Old_Id). + +2011-08-02 Robert Dewar + + * sem_ch8.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure + Check_Class_Wide_Actual, to implement AI05-0071, on defaulted + primitive operations of class-wide actuals. + +2011-08-02 Javier Miranda + + * exp_atag.ads, exp_atag.adb + (Build_Common_Dispatching_Select_Statements): Remove argument Loc + since its value is implicitly passed in argument Typ. + * exp_disp.adb (Make_Disp_Conditional_Select_Body, + Make_Disp_Timed_Select_Body): Remove Loc in calls to routine + Build_Common_Dispatching_Select_Statements. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads, + exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments. + Minor reformatting. + +2011-08-02 Robert Dewar + + * sem_res.adb: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-02 Javier Miranda + + * exp_atag.adb, exp_atags.ads + (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr + by the tagged type Entity. Required to use this routine in the VM + targets since we do not have available the Tag entity in the VM + platforms. + * exp_ch6.adb + (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package + Ada.Tags has not been previously loaded. + * exp_ch7.adb + (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke + Build_VM_TSDs if package Ada.Tags has not been previously loaded. + * sem_aux.adb + (Enclosing_Dynamic_Scope): Add missing support to handle the full + view of enclosing scopes. Required to handle enclosing scopes that + are synchronized types whose full view is a task type. + * exp_disp.adb + (Build_VM_TSDs): Minor code improvement to avoid generating and + analyzing lists with empty nodes. + (Make_Disp_Asynchronous_Select_Body): Add support for VM targets. + (Make_Disp_Conditional_Select_Body): Add support for VM targets. + (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets. + (Make_Disp_Timed_Select_Body): Add support for VM targets. + (Make_Select_Specific_Data_Table): Add support for VM targets. + (Make_VM_TSD): Generate code to initialize the SSD structure of + the TSD. + +2011-08-02 Yannick Moy + + * lib-writ.adb (Write_ALI): when ALFA mode is set, write local + cross-references section in ALI. + * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub + (enclosing subprogram), Slc (location of Sub) and Sun (unit number of + Sub). + (Enclosing_Subprogram_Or_Package): new function to return the enclosing + subprogram or package entity of a node + (Is_Local_Reference_Type): new function returns True for references + selected in local cross-references. + (Lt): function extracted from Lt in Output_References + (Write_Entity_Name): function extracted from Output_References + (Generate_Definition): generate reference with type 'D' for definition + of objects (object declaration and parameter specification), with + appropriate locations and units, for use in local cross-references. + (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created + references of type 'I' for initialization in object definition. + (Output_References): move part of function Lt and procedure + Write_Entity_Name outside of the body. Ignore references of types 'D' + and 'I' introduced for local cross-references. + (Output_Local_References): new procedure to output the local + cross-references sections. + (Lref_Entity_Status): new array defining whether an entity is a local + * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference + with 'I' type when initialization expression is present. + * get_scos.adb, get_scos.ads: Correct comments and typos + +2011-08-02 Javier Miranda + + * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in + the JVM target. + * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in + the JVM target. + * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no + TSD support. + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line + (No_Space_Img): New function + (Find_Excluded_Sources): When reading from a file, record the file name + and the line number for each excluded source. + (Mark_Excluded_Sources): When reporting an error, if the excluded + sources were read from a file, include file name and line number in + the error message. + +2011-08-02 Ed Schonberg + + * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2). + +2011-08-02 Robert Dewar + + * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting + +2011-08-02 Javier Miranda + + * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the + generation of TSDs to the DOTNET compiler. + * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the + generation of TSDs to the DOTNET compiler. + +2011-08-02 Javier Miranda + + * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data + record of all the tagged types declared inside library level package + declarations, library level package bodies or library level subprograms. + * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD + associated with a given tagged type. + (Build_VM_TSDs): New subprogram. + * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main + compilation units that are subprograms. + * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main + compilation units that are package bodies. + (Expand_N_Package_Declaration): Generate TSDs of the main compilation + units that are a package declaration or a package instantiation. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code + reorganization to improve the error generated by the frontend when the + function Ada.Tags.Secondary_Tag is not available. + * rtsfind.ads (RE_Register_TSD): New runtime entity. + * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup. + +2011-08-02 Javier Miranda + + * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode. + +2011-08-02 Robert Dewar + + * s-imenne.ads: Minor reformatting. + +2011-08-02 Robert Dewar + + * a-stunau.ads: Add pragma Suppress_Initialization for Big_String + * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed + * s-stalib.ads: Add pragma Suppress_Initialization for Big_String + +2011-08-02 Robert Dewar + + * einfo.ads (Materialize_Entity): Document this is only for renamings + * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate + required debug information in the case where we transform the object + declaration into a renaming declaration. + * exp_ch4.adb (Expand_Concatenate): Generate debug info for result + object + * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of + Materialize_Entity. + +2011-08-02 Robert Dewar + + * einfo.ads, einfo.adb (Suppress_Initialization): Replaces + Suppress_Init_Procs. + * exp_ch3.adb, exp_disp.adb, freeze.adb: Use + Suppress_Initialization/Initialization_Suppressed. + * gnat_rm.texi: New documentation for pragma Suppress_Initialization + * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function + * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed + * sem_prag.adb: New processing for pragma Suppress_Initialization. + +2011-08-02 Robert Dewar + + * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb: + Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can + only have inheritable classwide pre/postconditions. + +2011-08-02 Javier Miranda + + * a-tags.ads, a-tags.adb (Check_TSD): New subprogram. + * rtsfind.ads (RE_Check_TSD): New runtime entity. + * exp_disp.adb (Make_DT): Generate call to the new runtime routine that + checks if the external tag of a type is the same as the external tag + of some other declaration. + +2011-08-02 Thomas Quinot + + * s-taskin.ads: Minor reformatting. + +2011-08-02 Emmanuel Briot + + * g-comlin.adb (Display_Help): swap the order in which it prints the + short help and the general usage. + +2011-08-02 Ed Schonberg + + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly + the aspect declarations and attach them to the generic copy for + subsequent analysis. + (Analyze_Subprogram_Instantiation): copy explicitly the aspect + declarations of the generic tree to the new subprogram declarations. + * sem_attr.adb (Check_Precondition_Postcondition): recognize + conditions that apply to a subprogram instance. + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project]. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged + private type with a tagged full view is not derived in the immediate + scope of the partial view, (RM 7.3 (7)) use the scope of the base type. + +2011-08-02 Robert Dewar + + * exp_ch4.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an + Ada2012 iterator, the loop will be rewritten during expansion into a + while loop with a cursor and an element declaration. Do not analyze the + body in this case, because if the container is for indefinite types the + actual subtype of the elements will only be determined when the cursor + declaration is analyzed. + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore + size/alignment related attributes in CodePeer_Mode. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to + Prepend_Element, since this can result in the operation getting the + wrong slot in the full type's dispatch table if the full type has + inherited operations. The incomplete type's operation will get added + to the proper position in the full type's primitives + list later in Sem_Disp.Check_Operation_From_Incomplete_Type. + (Process_Incomplete_Dependents): Add Is_Primitive test when checking for + dispatching operations, since there are cases where nonprimitive + subprograms can get added to the list of incomplete dependents (such + as subprograms in nested packages). + * sem_ch6.adb (Process_Formals): First, remove test for being in a + private part when determining whether to add a primitive with a + parameter of a tagged incomplete type to the Private_Dependents list. + Such primitives can also occur in the visible part, and should not have + been excluded from being private dependents. + * sem_ch7.adb (Uninstall_Declarations): When checking the rule of + RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents + list of a Taft-amendment incomplete type is a primitive before issuing + an error that the full type must appear in the same unit. There are + cases where nonprimitives can be in the list (such as subprograms in + nested packages). + * sem_disp.adb (Derives_From): Use correct condition for checking that + a formal's type is derived from the type of the corresponding formal in + the parent subprogram (the condition was completely wrong). Add + checking that was missing for controlling result types being derived + from the result type of the parent operation. + +2011-08-02 Yannick Moy + + * errout.adb (First_Node): minor renaming + * restrict.adb (Check_Formal_Restriction): put restriction warning on + first node. + +2011-08-02 Yannick Moy + + * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator + before accessing operands. + * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to + decide whether an initialization expression respects SPARK rules, as + the plain node is the expanded one. This allows for more valid warnings + to be issued. + * gnat_rm.texi: Minor update. + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert + previous change. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_ch4.adb: Minor reformatting. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original + loop statements and the element renaming declaration with a block when + the element type is controlled. + +2011-08-02 Yannick Moy + + * sinfo.ads: Minor formatting. + +2011-08-02 Ed Schonberg + + * sem_aggr.adb (Add_Association): if the association has a box and no + expression, use the Sloc of the aggregate itself for the new + association. + * errout.adb (First_Node): Exclude nodes with no Sloc, and always use + the Original_Node. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring. + When a container is provided via a function call, generate a renaming + of the function result. This avoids the creation of a transient scope + and the premature finalization of the container. + * exp_ch7.adb (Is_Container_Cursor): Removed. + (Wrap_Transient_Declaration): Remove the supression of the finalization + of the list controller when the declaration denotes a container cursor, + it is not needed. + +2011-08-02 Yannick Moy + + * restrict.adb (Check_Formal_Restriction): only issue a warning if the + node is from source, instead of the original node being from source. + * sem_aggr.adb + (Resolve_Array_Aggregate): refine the check for a static expression, to + recognize also static ranges + * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration, + Array_Type_Declaration): postpone the test for the type being a subtype + mark after the type has been resolved, so that component-selection and + expanded-name are discriminated. + (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm + to distinguish the case of an iteration scheme, so that an error is + issed on a non-static range in SPARK except in an iteration scheme. + * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with + In_Iter_Schm = True. + * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for + user-defined operators so that they are allowed in renaming + * sem_ch8.adb + (Find_Selected_Component): refine the check for prefixing of operators + so that they are allowed in renaming. Move the checks for restrictions + on selector name after analysis discriminated between + component-selection and expanded-name. + * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on + concatenation argument of string type if it is static. + * sem_util.adb, sem_util.ads + (Check_Later_Vs_Basic_Declarations): add a new function + Is_Later_Declarative_Item to decice which declarations are allowed as + later items, in the two different modes Ada 83 and SPARK. In the SPARK + mode, add that renamings are considered as later items. + (Enclosing_Package): new function to return the enclosing package + (Enter_Name): correct the rule for homonyms in SPARK + (Is_SPARK_Initialization_Expr): default to returning True on nodes not + from source (result of expansion) to avoid issuing wrong warnings. + +2011-08-02 Ed Schonberg + + * errout.adb: On anything but an expression First_Node returns its + argument. + +2011-08-02 Pascal Obry + + * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting. + +2011-08-02 Hristian Kirtchev + + * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization. + Set the associated loop as the related expression of internally + generated cursors. + * exp_ch7.adb (Is_Container_Cursor): New routine. + (Wrap_Transient_Declaration): Supress the finalization of the list + controller when the declaration denotes a container cursor. + +2011-08-02 Yannick Moy + + * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through + command line now. + * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the + expression is a simple expression. This check cannot be performed in + the semantics, so just drop it. + (P_Index_Or_Discriminant_Constraint): move check that the index or + discriminant is a subtype mark to Analyze_Subtype_Declaration in the + semantics. Other cases were previously checked in the semantics. + * par-ch4.adb (P_Name): move checks that a selector name is not + character literal or an operator symbol to Find_Selected_Component in + the semantics + * par-ch5.adb (Parse_Decls_Begin_End): move check that basic + declarations are not placed after later declarations in a separate + procedure in Sem_Util (possibly not the best choice?), to be used both + during parsing, for Ada 83 mode, and during semantic analysis, for + SPARK mode. + * par-endh.adb (Check_End): move check that end label is not missing + to Process_End_Label in the semantics + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove + the special case for SPARK restriction + * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End + * restrict.adb, restrict.ads (Check_Formal_Restriction): add a + parameter Force to issue the error message even on internal node (used + for generated end label). Call Check_Restriction to check when an error + must be issued. In SPARK mode, issue an error message even if the + restriction is not set. + (Check_Restriction): new procedure with an additional out parameter to + inform the caller that a message has been issued + * sem_aggr.adb: Minor modification of message + * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction + instead of issuing an error message directly + * sem_ch3.adb (Analyze_Declarations): move here the check that basic + declarations are not placed after later declarations, by calling + Check_Later_Vs_Basic_Declarations + (Analyze_Subtype_Declaration): move here the check that an index or + discriminant constraint must be a subtype mark. Change the check that + a subtype of String must start at one so that it works on subtype marks. + * sem_ch4.adb (Analyze_Call): move here the check that a named + association cannot follow a positional one in a call + * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction + instead of issuing an error message directly + * sem_ch8.adb (Find_Selected_Component): move here the check that a + selector name is not a character literal or an operator symbol. Move + here the check that the prefix of an expanded name cannot be a + subprogram or a loop statement. + * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new + procedure called from parsing and semantics to check that basic + declarations are not placed after later declarations + (Process_End_Label): move here the check that end label is not missing + +2011-08-02 Arnaud Charlet + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum + representation clause in codepeer mode, since it confuses CodePeer and + does not bring useful info. + +2011-08-02 Ed Falis + + * init.c: initialize fp hw on MILS. + +2011-08-02 Ed Schonberg + + * errout.adb (First_Node): for bodies, return the node itself (small + optimization). For other nodes, do not check source_unit if the node + comes from Standard. + +2011-08-02 Robert Dewar + + * exp_ch3.adb: Minor comment additions. + * sem_ch13.adb: Minor reformatting. + +2011-08-02 Pascal Obry + + * make.adb, makeutl.adb: Removes some superfluous directory separator. + +2011-08-02 Robert Dewar + + * sem_attr.adb: Minor reformatting. + +2011-08-02 Robert Dewar + + * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value + (Has_Default_Component_Value): Removed + * einfo.ads Comment updates + (Has_Default_Aspect): Replaces Has_Default_Value + (Has_Default_Component_Value): Removed + * exp_ch13.adb + (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects + * exp_ch3.adb + (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects + (Get_Simple_Init_Val): Handle Default_Value aspect + (Needs_Simple_Initialization): Handle Default_Value aspect + * exp_ch3.ads: Needs_Simple_Initialization + * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect + * par-prag.adb (Pragma_Default[_Component]Value) Removed + * sem_ch13.adb + (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects + * sem_prag.adb (Pragma_Default[_Component]Value) Removed + * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate + package containing iteration primitives. + exp_ch5.adb (Expand_Iterator_Loop): ditto. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with + "of", pre-analyze expression in case it is a function call with + finalization actions that must be placed ahead of the loop. + * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present + on an Ada2012 iterator, insert them ahead of the rewritten loop. + +2011-08-02 Geert Bosch + + * cstand.adb (Create_Float_Types): Only consider C's long double for + Long_Long_Float, in addition to double. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads, + sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads, + prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb: + Minor reformatting. + +2011-08-02 Ed Schonberg + + * sem_attr.adb: handle properly 'Result when it is a prefix of an + indexed component. + +2011-08-02 Javier Miranda + + * einfo.ads, einfo.adb + (Original_Access_Type): Move this attribute to Node26 since there was + an undocumented use of Node21 in E_Access_Subprogram_Type entities + which causes conflicts and breaks the generation of the .NET compiler. + (Interface_Name): Add missing documentation on JGNAT only uses of + this attribute. + +2011-08-02 Geert Bosch + + * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist + (Find_Back_End_Float_Type): Likewise + (Create_Back_End_Float_Types): Likewise + (Create_Float_Types): Likewise + (Register_Float_Type): Likewise + * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of + Nlist and split out type selection in new local Find_Base_Type function. + * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of + Nlist + * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist + +2011-08-02 Robert Dewar + + * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in + alpha order). + * opt.ads: Minor comment change. + * sem_ch12.adb: Minor code reorganization. + +2011-08-02 Gary Dismukes + + * sem_ch3.adb (Complete_Private_Subtype): Don't append the private + subtype's list of rep items to the list on the full subtype in the case + where the lists are the same. + +2011-08-02 Geert Bosch + + * switch-c.adb (Free): New deallocation procedure to avoid implicitly + using the one from System.Strings, which also deallocates all strings. + +2011-08-02 Geert Bosch + + * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New + function. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Olivier Hainque + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function + end_locus. + +2011-08-02 Javier Miranda + + * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals + associated with anonymous access to subprograms. + +2011-08-02 Geert Bosch + + * opt.ads + (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions. + (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition. + * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads + (Add_Symbol_Definition): Move to switch-c.adb + (Process_Command_Line_Symbol_Definitions): Adjust references to above. + * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation. + (Add_Symbol_Definition): Move to switch-c.adb. + * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw. + * sem_warn.adb + (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): + Move to warnsw.adb. + * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size, + Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch): + Move to warnsw.adb. + * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw. + (Add_Symbol_Definition): Moved from Prepcomp. + * switch-c.ads: Update copyright notice. Use String_List instead of + Argument_List, removing dependency on System.OS_Lib. + +2011-08-02 Yannick Moy + + * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal + mode on initialization expression which does not respect SPARK + restrictions. + * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines + if the tree referenced by its argument represents an initialization + expression in SPARK, suitable for initializing an object in an object + declaration. + +2011-08-02 Javier Miranda + + * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the + internally generated access to subprogram with its associated protected + subprogram type. + * einfo.ads, einfo.adb (Original_Access_Type): New attribute. + +2011-08-02 Geert Bosch + + * cstand.adb (Register_Float_Type): Print information about type to + register, if the Debug_Flag_Dot_B is set. + * debug.adb (Debug_Flag_Dot_B): Document d.b debug option. + * rtsfind.ads (RE_Max_Base_Digits): New run time entity. + * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations + with a requested precision of more than Max_Digits digits and no more + than Max_Base_Digits digits, if a range specification is present and the + Predefined_Float_Types list has a suitable type to derive from. + * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the + case of type completion with pragma Import + * sem_prag.adb + (Process_Import_Predefined_Type): Processing to complete a type + with pragma Import. Currently supports floating point types only. + (Set_Convention_From_Pragma): Do nothing without underlying type. + (Process_Convention): Guard against absence of underlying type, + which may happen when importing incomplete types. + (Process_Import_Or_Interface): Handle case of importing predefined + types. Tweak error message. + +2011-08-02 Eric Botcazou + + * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined + functions to previous change. Reorganize code slightly. + +2011-08-02 Geert Bosch + + * back_end.ads (Register_Type_Proc): New call back procedure type for + allowing the back end to provide information about available types. + (Register_Back_End_Types): New procedure to register back end types. + * back_end.adb (Register_Back_End_Types): Call the back end to enumerate + available types. + * cstand.adb (Back_End_Float_Types): New list for floating point types + supported by the back end. + (Build_Float_Type): Add extra parameter for Float_Rep_Kind. + (Copy_Float_Type): New procedure to make new copies of predefined types. + (Register_Float_Type): New call back procedure to populate the BEFT list + (Find_Back_End_Float_Type): New procedure to find a BEFT by name + (Create_Back_End_Float_Types): New procedure to populate the BEFT list. + (Create_Float_Types): New procedure to create entities for floating + point types predefined in Standard, and put these and any remaining + BEFTs on the Predefined_Float_Types list. + * stand.ads (Predefined_Float_Types): New list for predefined floating + point types that do not have declarations in package Standard. + +2011-08-02 Eric Botcazou + + * inline.adb (Get_Code_Unit_Entity): New local function. Returns the + entity node for the unit containing the parameter. + (Add_Inlined_Body): Use it to find the unit containing the subprogram. + (Add_Inlined_Subprogram): Likewise. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Thomas Quinot + + * s-stusta.adb (Print): Make sure Pos is always initialized to a + suitable value. + +2011-08-02 Geert Bosch + + * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image. + +2011-08-02 Eric Botcazou + + * sem_type.adb (Covers): Move trivial case to the top and reuse the + computed value of Base_Type. + +2011-08-02 Yannick Moy + + * restrict.adb (Check_Restriction): issue an error for any use of + class-wide, even if the No_Dispatch restriction is not set. + * sem_aggr.adb: Correct typos in comments and messages in formal mode + * sem_ch3.adb (Process_Full_View): issue an error in formal mode is, + when completing a private extension, the type named in the private part + is not the same as that named in the visible part. + * sem_res.adb (Resolve_Call): issue an error in formal mode on the use + of an inherited primitive operations of a tagged type or type extension + that returns the tagged type. + * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new + function which returns True for an implicit operation inherited by the + derived type declaration for the argument type. + (Is_SPARK_Object_Reference): move to appropriate place in alphabetic + order. + +2011-08-02 Ed Schonberg + + * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from + Process_Bounds, to perform analysis with expansion of a range or an + expression that is the iteration scheme for a loop. + (Analyze_Iterator_Specification): If domain of iteration is given by a + function call with a controlled result, as is the case if call returns + a predefined container, ensure that finalization actions are properly + generated. + * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range. + +2011-08-02 Javier Miranda + + * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-02 Javier Miranda + + * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to + determine if the analysis is performed using N or Original_Node (N). + * exp_util.adb (Side_Effect_Free): Code cleanup since the new + functionality of routine Is_Variable avoids code duplication. + * checks.adb (Determine_Range): Handle temporaries generated by + Remove_Side_Effects. + +2011-08-02 Javier Miranda + + * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and + expansion of the condition. Required since the previous analysis was + done with expansion disabled (see Resolve_Quantified_Expression) and + hence checks were not inserted and record comparisons have not been + expanded. + +2011-08-02 Ed Falis + + * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads: + Update header. + +2011-08-02 Bob Duff + + * opt.ads: Minor comment fix. + +2011-08-02 Bob Duff + + * sem_ch12.adb (Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Turn off style checking while + analyzing an instance. Whatever style checks that apply to the generic + unit should apply, so it makes no sense to apply them in an instance. + This was causing trouble when compiling an instance of a runtime + unit that violates the -gnatyO switch. + * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from + one of the two case statements, causing spurious errors. + +2011-08-02 Robert Dewar + + * uname.adb: Minor reformatting. + * gnatcmd.adb: Minor reformatting. + * exp_attr.adb: Minor reformatting. + +2011-08-02 Ed Schonberg + + * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction + No_Dispatching_Calls, do not look for the Assign primitive, because + predefined primitives are not created in this case. + +2011-08-02 Bob Duff + + * stylesw.ads: Minor comment fixes. + +2011-08-02 Robert Dewar + + * freeze.adb (Add_To_Result): New procedure. + +2011-08-02 Jose Ruiz + + * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run + time, if the specific run-time routines for handling streams of strings + are not available, use the default mechanism. + +2011-08-02 Arnaud Charlet + + * s-regpat.ads: Fix typo. + +2011-08-02 Vincent Celier + + * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is + not null, call it to create the in memory config project file without + parsing an existing default config project file. + +2011-08-02 Eric Botcazou + + * atree.adb (Allocate_Initialize_Node): Remove useless temporaries. + +2011-08-02 Ed Schonberg + + * sem_elim.adb: an abstract subprogram does not need an eliminate + pragma for its descendant to be eliminable. + +2011-08-02 Ed Falis + + * init.c: revert to handling before previous checkin for VxWorks + * s-intman-vxworks.adb: delete unnecessary declarations related to + using Ada interrupt facilities for handling signals. + Delete Initialize_Interrupts. Use __gnat_install_handler instead. + * s-intman-vxworks.ads: Import __gnat_install_handler as + Initialize_Interrupts. + * s-taprop-vxworks.adb: Delete Signal_Mask. + (Abort_Handler): change construction of mask to unblock exception + signals. + +2011-08-02 Jerome Guitton + + * a-except-2005.adb (Raise_From_Signal_Handler): Call + Debug_Raise_Exception before propagation starts. + +2011-08-02 Eric Botcazou + + * exp_ch6.adb (Expand_Call): Guard restriction checks with a call + to Restriction_Check_Required. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise. + * sem_res.adb (Resolve_Call): Likewise. + * sem_attr.adb (Check_Stream_Attribute): Likewise. + +2011-08-02 Bob Duff + + * stylesw.ads: Update comment. + * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N. + * errout.ads: Remove obsolete comment. + +2011-08-02 Javier Miranda + + * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function. + (Set_Is_Safe_To_Reevaluate): new procedure. + * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no + assignment is allowed on safe-to-reevaluate variables. + (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the + temporary created to remove side effects in expressions that use + the secondary stack as safe-to-reevaluate. + * exp_util.adb (Side_Effect_Free): Add missing code to handle well + variables that are not true constants. + +2011-08-02 Robert Dewar + + * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads, + sem_res.adb, sem_ch6.adb: Minor reformatting. + +2011-08-02 Jerome Guitton + + * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code. + +2011-08-02 Ed Schonberg + + * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do + not set Overridden_Operation if subprogram is an initialization + procedure. + +2011-08-02 Yannick Moy + + * par-ch6.adb: Correct obsolete name in comments + * restrict.adb, restrict.ads (Check_Formal_Restriction): new function + which takes two message arguments (existing function takes one), with + second message used for continuation. + * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject + block statements that originate from a source block statement, not + generated block statements + * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for + symmetry with procedure case + * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new + function to issue an error in formal mode if a package specification + contains more than one tagged type or type extension. + * sem_res.adb (Resolve_Actuals): in formal mode, check that actual + parameters matching formals of tagged types are objects (or ancestor + type conversions of objects), not general expressions. Issue an error + on view conversions that are not involving ancestor conversion of an + extended type. + (Resolve_Type_Conversion): in formal mode, issue an error on the + operand of an ancestor type conversion which is not an object + * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the + procedure so that it works also for actuals of function calls + (Is_Actual_Tagged_Parameter): new function which determines if its + argument is an actual parameter of a formal of tagged type in a + subprogram call + (Is_SPARK_Object_Reference): new function which determines if the tree + referenced by its argument represents an object in SPARK + +2011-08-02 Robert Dewar + + * sem_ch3.adb: Minor reformatting + Minor comment addition + Minor error msg text change + +2011-08-02 Javier Miranda + + * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New + function. Used to be more precise when we generate a variable plus one + assignment to remove side effects in the evaluation of the Bound + expressions. + (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes + of the bound expression to force its re-analysis and thus expand the + associated transient scope (if required). Code cleanup replacing the + previous code that declared the constant entity by an invocation to + routine Force_Evaluation which centralizes this work in the frontend. + +2011-08-02 Robert Dewar + + * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table + (Base_Type): Now uses improved Is_Base_Type function + * einfo.ads (Base_Type): Inline this function + +2011-08-02 Robert Dewar + + * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion + (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas + +2011-08-02 Arnaud Charlet + + * gcc-interface/Make-lang.in: Update dependencies. + * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks + targets. + +2011-08-02 Yannick Moy + + * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on + non-simple expression used in delta constraint + (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on + index constraint which is not a subtype mark + * par.adb: With and use Restrict + * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal + mode on component type which is not a subtype mark and default + expression on component + (Analyze_Subtype_Declaration): issue an error in formal mode on subtype + of string which does not have a lower index bound equal to 1 + (Array_Type_Declaration): issue an error in formal mode on index or + component type which is not a subtype mark, and on aliased keyword on + component + (Derived_Type_Declaration): issue an error in formal mode on interface, + limited or abstract type + (Record_Type_Declaration): issue an error in formal mode on interface + (Record_Type_Definition): issue an error in formal mode on tagged types + and type extensions not declared in the specification of a library unit + package; on null non-tagged record; on variant part + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir + not declared for qualified library project when Library_Name is not + declared, but Library_Dir is. + +2011-08-02 Robert Dewar + + * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated + pragmas (affects aspects [Component_]Default_Value + (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use + component type for the resolution + +2011-08-02 Eric Botcazou + + * einfo.adb (Base_Type): Tune implementation for speed. + +2011-08-02 Robert Dewar + + * freeze.adb: Minor reformatting. + +2011-08-02 Thomas Quinot + + * scos.ads: Update comments. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the + base type, because the parent may be a subtype of a private type whose + convention is established in a private part. + +2011-08-02 Hristian Kirtchev + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return + statement in a block when the expansion of the return expression has + created a finalization chain. + * freeze.adb (Freeze_Expression): Alphabetize all choices associated + with the parent node. + Add N_Extended_Return_Statement to handle the case where a transient + object declaration appears in the Return_Object_Declarations list of + an extended return statement. + +2011-08-02 Matthew Gingell + + * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly + unused parameter 'name'. + +2011-08-02 Ed Schonberg + + * sem_elim.adb (Set_Eliminated): If the overridden operation is an + inherited operation, check whether its alias, which is the source + operastion that it renames, has been marked eliminated. + +2011-08-02 Javier Miranda + + * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an + in-mode parameter whose type is an access type since it can be used to + modify its designated object. Enforce code that handles as safe an + access type that is not access-to-constant but it is the result of a + previous removal of side-effects. + (Remove_Side_Effects): Minor code reorganization of cases which require + no action. Done to incorporate documentation on new cases uncovered + working in this ticket: no action needed if this routine was invoked + too early and the nodes are not yet decorated. + * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls + to routine Remove_Side_Effects by calls to Force_Evaluation since they + were issued with actuals that are implicitly provided by + Force_Evaluation. + +2011-08-02 Robert Dewar + + * sem_ch3.adb, sem_res.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure + to issue an error in formal mode on attribute not supported in this mode + (Analyze_Attribute): issue errors on standard attributes not supported + in formal mode. + * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of + comment, and issue error in formal mode on modulus which is not a power + of 2. + (Process_Range_Expr_In_Decl): issue error in formal mode on non-static + range. + * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in + subtype mark. + * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary + operator on modular type (except 'not'). + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + +2011-08-02 Arnaud Charlet + + * s-osinte-linux.ads: Minor comment update and reformatting. + * i-cexten.ads: Make this unit pure, as for its parent. + Will allow its usage in more contexts if needed. + +2011-08-02 Robert Dewar + + * s-utf_32.ads: Minor comment fix. + +2011-08-02 Ed Schonberg + + * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive + operation of a tagged synchronized type, handle the case where the + controlling argument is overloaded. + +2011-08-02 Yannick Moy + + * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl: + Replace pragma SPARK_95 with pragma Restrictions (SPARK) + * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set + SPARK mode and formal verification mode on processing SPARK restriction + * s-rident.ads (Restriction_Id): add SPARK restriction in those not + requiring consistency checking. + +2011-08-02 Robert Dewar + + * sem_res.adb: Minor reformatting. + +2011-08-02 Robert Dewar + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads: Remove unneeded with of Ada.Containers + Remove commented out pragma Inline's + Move specifications of new subprograms to the actual specs + +2011-08-02 Yannick Moy + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads: Update comments. + +2011-08-02 Ed Schonberg + + * sem_attr.adb: add attribute name when 'Result has the wrong prefix. + +2011-08-02 Robert Dewar + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, + a-cforse.ads, a-cofove.ads: Minor reformatting. + +2011-08-02 Claire Dross + + * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, + a-cofove.ads: Add comments. + +2011-08-02 Yannick Moy + + * gnat_rm.texi: Document formal containers. + +2011-08-02 Emmanuel Briot + + * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there + are empty sections. + +2011-08-02 Robert Dewar + + * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor + reformatting. + +2011-08-02 Robert Dewar + + * aspects.adb: New aspects Default_Value and Default_Component_Value + New format of Aspect_Names table checks for omitted entries + * aspects.ads: Remove mention of Aspect_Cancel and add documentation on + handling of boolean aspects for derived types. + New aspects Default_Value and Default_Component_Value + New format of Aspect_Names table checks for omitted entries + * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag + (Has_Default_Value): New flag + (Has_Default_Component_Value): New flag + (Has_Default_Value): New flag + * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names + table. + * par-prag.adb: New pragmas Default_Value and Default_Component_Value + * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects + Default_Value and Default_Component_Value + * sem_prag.adb: New pragmas Default_Value and Default_Component_Value + New aspects Default_Value and Default_Component_Value + * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value + * sprint.adb: Print N_Aspect_Specification node when called from gdb + +2011-08-02 Vincent Celier + + * prj-nmsc.adb (Check_Library_Attributes): For virtual library project, + inherit library kind. + +2011-08-02 Ed Schonberg + + * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds. + Minor reformatting. + +2011-08-02 Robert Dewar + + * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Resolve_Aggregate): Fix thinko. + +2011-08-02 Robert Dewar + + * impunit.adb: Add comment. + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks + qualification of aggregates in formal mode + (Is_Top_Level_Aggregate): returns True for an aggregate not contained in + another aggregate + (Resolve_Aggregate): complete the test that an aggregate is adequately + qualified in formal mode + +2011-08-02 Pascal Obry + + * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting. + * mlib-prj.adb: Supress warning when compiling binder generated file. + (Build_Library): Supress all warnings when compiling the binder + generated file. + +2011-08-02 Yannick Moy + + * errout.adb, errout.ads (Check_Formal_Restriction): move procedure + from here... + * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here + * sem_aggr.adb, sem_ch5.adb, sem_util.adb: + Add with/use clauses to make Check_Formal_Restriction visible + +2011-08-02 Ed Schonberg + + * sem_ch12.adb (Check_Generic_Actuals): handle properly actual + in-parameters when type of the generic formal is private in the generic + spec and non-private in the body. + +2011-08-02 Claire Dross + + * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb, + a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads, + a-cofove.adb, a-cofove.ads: New files implementing formal containers. + * impunit.adb, Makefile.rtl: Take new files into account. + +2011-08-02 Robert Dewar + + * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb, + sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting. + +2011-08-02 Yannick Moy + + * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in + formal mode + * sem_util.adb (Matching_Static_Array_Bounds): proper detection of + matching static array bounds, taking into account the special case of + string literals + * sem_ch3.adb: Typo in comment. + +2011-08-02 Yannick Moy + + * errout.adb, errout.ads (Check_Formal_Restriction): new procedure + which issues an error in formal mode if its argument node is originally + from source + * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type + has a discriminant specification so that it does not include the case + of derived types + (Derived_Type_Declaration): move here the test that a derived type has a + discriminant specification + * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the + first element of a component association before accessing its choices + (presence of component association is not enough) + * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram + declaration is a library item before accessing the next element in a + list, as library items are not member of lists + * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use + Check_Formal_Restriction whenever possible. + +2011-08-02 Ed Schonberg + + * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype + reference when needed. + +2011-08-02 Bob Duff + + * gnat_ugn.texi: Fix typo. + +2011-08-02 Vincent Celier + + * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of + archive file name. Do not use the full path name of archives for Open + VMS. + +2011-08-02 Robert Dewar + + * sem_ch12.adb, sem_ch11.adb: New calling sequence for + Analyze_Aspect_Specifications + * sem_ch13.adb + (Analyze_Aspect_Specifications): New handling for boolean aspects + * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence + * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling + sequence for Analyze_Aspect_Specifications + * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely + * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used + +2011-08-02 Robert Dewar + + * freeze.adb (Freeze_Entity): Remove handling of delayed boolean + aspects, since these no longer exist. + +2011-08-02 Robert Dewar + + * par-ch13.adb (Aspect_Specifications_Present): Always return false on + semicolon, do not try to see if there are aspects following it. + * par-ch3.adb (P_Declarative_Items): Better message for unexpected + aspect spec. + +2011-08-02 Robert Dewar + + * sem_ch8.adb, aspects.ads: Minor reformatting. + +2011-08-02 Eric Botcazou + + * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline. + * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure + extracted from... + (Analyze_Aspect_Specifications): ...here. Call above procedure. + +2011-08-02 Yannick Moy + + * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal + mode on subprogram declaration outside of package specification, unless + it is followed by a pragma Import + * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration, + Access_Type_Declaration): issue error in formal mode on access type + (Analyze_Incomplete_Type_Decl): issue error in formal mode on + incomplete type + (Analyze_Object_Declaration): issue error in formal mode on object + declaration which does not respect SPARK restrictions + (Analyze_Subtype_Declaration): issue error in formal mode on subtype + declaration which does not respect SPARK restrictions + (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue + error in formal mode on digits or delta constraint + (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on + decimal fixed point type + (Derived_Type_Declaration): issue error in formal mode on derived type + other than type extensions of tagged record types + * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant + with check on access definition + * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal + mode on protected definition. + (Analyze_Task_Definition): issue error in formal mode on task definition + +2011-08-02 Robert Dewar + + * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting. + +2011-08-02 Javier Miranda + + * sem_ch6.adb (Can_Override_Operator): New function. + (Verify_Overriding_Indicator): Add missing code to check overriding + indicator in operators. Fixes regression. + (Check_Overriding_Indicator): Minor reformating after replacing the + code that evaluates if the subprogram can override an operator by + invocations to the above new function. + * einfo.adb + (Write_Field26_Name): Add missing code to ensure that, following + the documentation in einfo.ads, this field is not shown as attribute + "Static_Initialization" on non-dispatching functions. + +2011-08-02 Jose Ruiz + + * sem_res.adb (Resolve_Call): A call to + Ada.Real_Time.Timing_Events.Set_Handler violates restriction + No_Relative_Delay (AI-0211) only when it sets a relative timing event, + i.e., when the second parameter is of type Time_Span. + +2011-08-02 Vincent Celier + + * make.adb (Gnatmake): use /lib.a to link + with an archive instead of -L -l. + +2011-08-02 Ed Schonberg + + * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed, + mark the base types In_Use in addition to making the operations + use_visible. + +2011-08-02 Ed Falis + + * init.c: add and setup __gnat_signal_mask for the exception signals + * s-inmaop-vxworks.adb: new file. + * s-intman-vxworks.adb: remove unnecessary initializations and + simplify remaining + * s-intman-vxworks.ads: remove unnecessary variable + * s-taprop-vxworks.adb: simplify signal initialization + +2011-08-02 Robert Dewar + + * sem_ch8.adb: Minor code reorganization, comment updates. + +2011-08-02 Robert Dewar + + * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util + * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved + here from Sem_Res. + (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression + (Matching_Static_Array_Bounds): Moved here from Sem_Res + +2011-08-02 Ed Schonberg + + * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5. + * par_ch8.adb (P_Use_Type): initialize Used_Operations for node. + * sinfo.ads, sinfo.adb (Used_Operations): new attribute of + use_type_clauses, to handle more efficiently use_type and use_all_type + constructs. + * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the + Ada2012 Use_All_Type clause. + (Use_Class_Wide_Operations): new procedure. + +2011-08-02 Robert Dewar + + * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb, + sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized + expression to expression function. + +2011-08-02 Ed Schonberg + + * sem_ch4.adb: transform simple Ada2012 membership into equality only + if types are compatible. + +2011-08-02 Yannick Moy + + * sem_res.adb (Matching_Static_Array_Bounds): new function which + returns True if its argument array types have same dimension and same + static bounds at each index. + (Resolve_Actuals): issue an error in formal mode on actuals passed as + OUT or IN OUT paramaters which are not view conversions in SPARK. + (Resolve_Arithmetic_Op): issue an error in formal mode on + multiplication or division with operands of fixed point types which are + not qualified or explicitly converted. + (Resolve_Comparison_Op): issue an error in formal mode on comparisons of + Boolean or array type (except String) operands. + (Resolve_Equality_Op): issue an error in formal mode on equality + operators for array types other than String with non-matching static + bounds. + (Resolve_Logical_Op): issue an error in formal mode on logical operators + for array types with non-matching static bounds. Factorize the code in + Matching_Static_Array_Bounds. + (Resolve_Qualified_Expression): issue an error in formal mode on + qualified expressions for array types with non-matching static bounds. + (Resolve_Type_Conversion): issue an error in formal mode on type + conversion for array types with non-matching static bounds + +2011-08-02 Robert Dewar + + * par-ch10.adb: Minor code reorganization (use Nkind_In). + +2011-08-02 Ed Schonberg + + * par-ch9.adb: save location of entry for proper error message. + +2011-08-02 Javier Miranda + + * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal + (Use_Full_View) which permits this routine to climb through the + ancestors using the full-view of private parents. + * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set + Use_Full_View to true in calls to Is_Ancestor. + * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to + true in call to Is_Ancestor. + * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set + Use_Full_View to true in call to Is_Ancestor. + * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in + call to Is_Ancestor. + * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set + Use_Full_View to true in calls to Is_Ancestor. + * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT, + Make_Select_Specific_Data_Table, Register_Primitive, + Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor. + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View + to true in call to Is_Ancestor. + * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set + Use_Full_View to true in calls to Is_Ancestor. + * exp_cg.adb + (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor. + (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor. + +2011-08-02 Robert Dewar + + * gnat_rm.texi: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-02 Tristan Gingold + + * vms_data.ads: Add VMS qualifier for -gnateP. + +2011-08-02 Robert Dewar + + * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty + * par-ch7.adb (P_Package): Proper placement of aspects for package + decl/instantiation. + * par-endh.adb (Check_End): Ad Is_Sloc parameter + (End_Statements): Add Is_Sloc parameterr + * par.adb (P_Aspect_Specification): New meaning of Decl = Empty + (Check_End): Ad Is_Sloc parameter + (End_Statements): Add Is_Sloc parameterr + +2011-08-02 Vincent Celier + + * ug_words: Add VMS qualifier equivalent to -gnateP: + /SYMBOL_PREPROCESSING. + +2011-08-02 Jose Ruiz + + * gnat-style.texi: For hexadecimal numeric literals the typical + grouping of digits is 4 to represent 2 bytes. + A procedure spec which is split into several lines is indented two + characters. + +2011-08-02 Yannick Moy + + * exp_aggr.adb (Is_Others_Aggregate): move function to other unit. + * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here + (Resolve_Aggregate): issue errors in formal modes when aggregate is not + properly qualified + (Resolve_Array_Aggregate): issue errors in formal modes on non-static + choice in array aggregate + (Resolve_Extension_Aggregate): issue errors in formal modes on subtype + mark as ancestor + (Resolve_Record_Aggregate): issue errors in formal modes on mixed + positional and named aggregate for record, or others in record + aggregate, or multiple choice in record aggregate + * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when + array operands to logical operations AND, OR and XOR do not have the + same static lower and higher bounds + * sem_ch5.adb, sinfo.ads: Correct typos in comments + +2011-08-01 Robert Dewar + + * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement): + Replaces Last_Source_Node_In_Sequence. + * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K + * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores + parens and blank in string (this was inconsistently implemented). + * errout.ads + (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and + blank in string (this was inconsistently implemented). + * gnat1drv.adb + (Set_Global_Switches): Set formal mode switches appropriately + * opt.ads, opt.adb: Formal mode is now global switches, more consistent + * par-prag.adb + (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and + call Set_Error_Msg_Lang to set "spark" as language name. + * par.adb: Remove unnecessary call to set formal language for errout + * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches + appropriately and call Set_Error_Msg_Lang to set "spark" as language + name. + * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and + calls to it, moved after resolution so that types are known + * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if + result of concatenation is not of type String + (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of + concatenation is not properly restricted + * gnat_rm.texi: Add doc on pragma Spark_95. + * gcc-interface/Makefile.in: Remove obsolete target pairs for + Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads. + * gcc-interface/Make-lang.in: Update dependencies. + +2011-08-01 Javier Miranda + + * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of + condition that detects if the overridden operation must replace an + existing entity. + +2011-08-01 Javier Miranda + + * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded + code declarations inserted by Insert_Actions in each alternative of the + N_Case_Expression node. + +2011-08-01 Robert Dewar + + * sem_ch6.adb: Minor code reorganization. + * sem_util.adb: Minor reformatting. + +2011-08-01 Pascal Obry + + * prj-env.adb: Remove /lib/gpr/ project search path. + * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource. + +2011-08-01 Yannick Moy + + * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character + literal or operator symbol which is prefixed + * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal + mode on access attributes. + * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check + that concatenation operands are properly restricted in formal mode + (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure + Analyze_Concatenation_Operand. Issue an error in formal mode if the + result of the concatenation has a type different from String. + (Analyze_Conditional_Expression, Analyze_Explicit_Dereference, + Analyze_Quantified_Expression, Analyze_Slice, + Analyze_Null): issue an error in formal mode on unsupported constructs + * sem_ch5.adb + (Analyze_Block_Statement): only issue error on source block statement + * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new + function which returns the last node in a list of nodes for which + Comes_From_Source returns True, if any + * sem_ch6.adb (Check_Missing_Return): minor refactoring to use + Last_Source_Node_In_Sequence + * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming, + Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal + mode on unsupported constructs + * sem_ch9.adb Do not return after issuing error in formal mode, as the + rest of the actions may be needed later on since the error is marked as + not serious. + * sinfo.ads: Typos in comments. + +2011-08-01 Pascal Obry + + * projects.texi: Minor editing. + +2011-08-01 Yannick Moy + + * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for + insertion character ~~ + * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures + (Set_Error_Msg_Lang): new procedure which fixes the language for use + with insertion character ~~ + (Set_Msg_Text): treat insertion character ~~ + * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb, + sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to + Formal_Error_Msg_... procedures by equivalent Error_Msg_... + procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make + errors related to the formal language restriction not serious + (insertion character |). + * par.adb (Par): set formal language for error messages if needed + * sem_ch6.adb (Check_Missing_Return): take into account possible + generated statements at the end of the function + * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and + enumeration value to define a new pragma SPARK_95 + * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default, + SPARK_Version): new type and variables to store the SPARK version + (none by default). + (SPARK_Mode): return True when SPARK_Version is set + * par-prag.adb: Correct indentation + (Prag): take Pragma_SPARK_95 into account + * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95 + into account. + +2011-08-01 Robert Dewar + + * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb, + sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb, + sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting + +2011-08-01 Pascal Obry + + * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass + Target_Name to Get_Path call. + (Parse_Single_Project): Likewise. + (Post_Parse_Context_Clause): Likewise. + * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter. + Call Initialise_Project_Path with the proper Target_Name. + (Initialize_Project_Path): Add //lib/gnat + search path. + (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path + with the proper Target_Name. + * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to + Part.Parse routine. + (Parse_Project_And_Apply_Config): Likewise. + * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine. + This is fine as this part of the code is supporting only native + compilation. + * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This + is fine as this part of the code is supporting only native compilation. + +2011-08-01 Yannick Moy + + * sem_util.adb (Enter_Name): issue error in formal mode on declaration + of homonym, unless the homonym is one of the cases allowed in SPARK + * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for + package declaration occurring after a body. + +2011-08-01 Robert Dewar + + * checks.adb, exp_ch4.adb: Minor reformatting. + +2011-08-01 Javier Miranda + + * einfo.ads (Access_Disp_Table): Fix documentation. + (Dispatch_Table_Wrappers): Fix documentation. + +2011-08-01 Pascal Obry + + * prj-env.adb, prj-env.ads: Minor reformatting. + +2011-08-01 Yannick Moy + + * sem_util.ads, sem_util.adb, par.adb, par_util.adb + (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move + procedures out of these packages. + * errout.ads, errout.adb + (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move + procedures in of this package + (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE + * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode + on misplaced later vs initial declarations, like in Ada 83 + * sem_attr.adb (Processing for Analyze_Attribute): issue error in + formal mode on attribute of private type whose full type declaration + is not visible + * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a + package declaration inside a package specification + (Analyze_Full_Type_Declaration): issue error in formal mode on + controlled type or discriminant type + * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on + user-defined operator means that it should come from the source + (New_Overloaded_Entity): issue error in formal mode on overloaded + entity. + * sem_ch6.ads, sem_ch13.ads: typos in comments. + +2011-08-01 Thomas Quinot + + * atree.adb: Minor reformatting. + * checks.adb: Minor reformatting. + +2011-08-01 Vincent Celier + + * s-parame-vms-ia64.ads: Fix typo in comment + Minor reformatting + * s-parame-vms-restrict.ads: Removed, unused. + +2011-08-01 Javier Miranda + + * exp_ch3.adb + (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound. + * sem_ch3.adb + (Constrain_Index): Remove side effects in the evaluation of the bounds. + * sem_ch3.ads, sem_ch3.adb + (Is_Constant_Bound): New extended version of the subprogram that was + previously located inside function Exp_Ch3.Is_Variable_Size_Array. + Moved here since it is shared by routines of sem_ch3 and exp_ch3. + * sem_aux.ads (Constant_Value): Fix typo in comment. + * checks.adb (Generate_Index_Checks): New implementation which, for + array objects with constant bounds, generates the runtime check + referencing the bounds of the array type. For other cases this routine + provides its previous behavior obtaining such values from the array + object. + * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its + parent type. + * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since + we cannot have semantic interpretations of the new node. + +2011-08-01 Ed Schonberg + + * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified + expressions. + +2011-08-01 Arnaud Charlet + + * sem_ch8.adb: Minor code editing. + * s-vxwext.adb: Remove trailing space. + * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for + consistency with other files. + +2011-08-01 Thomas Quinot + + * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting. + +2011-08-01 Ed Schonberg + + * par-ch10.adb: reject parameterized expressions as compilation unit. + * sem_ch4.adb: handle properly conditional expression with overloaded + then_clause and no else_clause. + +2011-08-01 Tristan Gingold + + * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address + like done by System.Aux_DEC. + * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table. + +2011-08-01 Yannick Moy + + * par-endh.adb (Check_End): issue a syntax error in SPARK mode for + missing label at end of declaration (subprogram or package) + * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing + of positional and named parameter association + * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on + Error_Msg_SP which adds a prefix to the error message giving the name + of the formal language analyzed + * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for + access result type in subprogram, unconstrained array as result type,. + (Analyze_Subprogram_Declaration): issue an error in formal mode for null + procedure + * sem_ch8.adb: Code clean up. + +2011-08-01 Javier Miranda + + * sem_ch7.adb (Uninstall_Declarations): Remove useless code. + * einfo.ads (Access_Disp_Table): Fix documentation. + (Dispatch_Table_Wrappers): Fix documentation. + * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers, + Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions + to enforce the documentation of this attribute. + (Set_Is_Interface): Cleanup the assertion. + * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate + the Underlying_Type entity before reading attribute Access_Disp_Table. + * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion): + Locate the Underlying_Type before reading attribute Access_Disp_Table. + * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate + the Underlying_Type entity before reading attribute Access_Disp_Table. + * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration): + Locate the Underlying_Type entity before reading attribute + Access_Disp_Table. + +2011-08-01 Ed Schonberg + + * s-poosiz.ads: Additional overriding indicators. + +2011-08-01 Yannick Moy + + * sem_ch5.adb (Analyze_Exit_Statement): add return after error in + formal mode. + (Analyze_Iteration_Scheme): issue error in formal mode when loop + parameter specification does not include a subtype mark. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in + formal mode on abstract subprogram. + (Analyze_Subprogram_Specification): issue error in formal mode on + user-defined operator. + (Process_Formals): issue error in formal mode on access parameter and + default expression. + * sem_ch9.adb (Analyze_Abort_Statement, + Analyze_Accept_Statement, Analyze_Asynchronous_Select, + Analyze_Conditional_Entry_Call, Analyze_Delay_Relative, + Analyze_Delay_Until, Analyze_Entry_Call_Alternative, + Analyze_Requeue, Analyze_Selective_Accept, + Analyze_Timed_Entry_Call): issue error in formal mode on such constructs + * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error): + issue error in formal mode on user-defined raise statement. + +2011-08-01 Thomas Quinot + + * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a + declaration being hidden when overriding an implicit inherited + subprogram. + * par-ch10.adb (P_Compilation_Unit): In syntax check only mode + (-gnats), do not complain about a source file that contains only a + pragma No_Body. + +2011-08-01 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop + variable if already set. + +2011-08-01 Arnaud Charlet + + * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads, + g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads, + s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads, + g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb, + g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads, + g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads, + g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads, + g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb, + g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb, + g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads, + g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads, + s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb, + g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads, + s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads, + g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb, + g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb, + g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb, + g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb, + g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb, + g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb, + s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads, + s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads, + a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb, + s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads, + s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb, + g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads, + g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb, + g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb, + g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads, + g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads, + g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads, + s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads, + s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb, + g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb, + g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads, + s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb, + s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads, + g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads, + g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb, + g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads, + s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads, + g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads, + g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads, + g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb, + s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb, + g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb, + g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb, + g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb, + s-osinte-mingw.ads: Update to GPLv3 run-time license. + Use GNAT instead of GNARL. + +2011-08-01 Bob Duff + + * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads, + a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads, + a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor + reformatting. + +2011-08-01 Yannick Moy + + * debug.adb (d.D) reverve flag for the SPARK mode + (d.E) reverve flag for SPARK generation mode + (d.F) reverve flag for Why generation mode + * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode, + ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New + functions which return True when the corresponding modes are set + (Formal_Language): return "spark" or "alfa" when in formal verification + mode. + * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on + Error_Msg to prefix the error message with a tag giving the formal + language + (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error + message with a tag giving the formal language + * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on + block statement + (Analyze_Case_Statement): issue error in formal mode on case statement + with a single "others" case alternative + (Analyze_Exit_Statement): issue errors in formal mode on exit + statements which do not respect SPARK restrictions + (Analyze_Goto_Statement): issue error in formal mode on goto statement + (Check_Unreachable_Code): always issue an error (not a warning) in + formal mode on unreachable code (concerns both code after an infinite + loop and after an unconditional jump, both not allowed in SPARK) + * sem_ch6.adb (Analyze_Return_Statement): add call to + Set_Return_Present for a procedure containing a return statement + (already done for functions in Analyze_Function_Return) + (Analyze_Function_Return): issue error in formal mode on extended + return or if return is not last statement in function + (Check_Missing_Return): issue error in formal mode if function does + not end with return or if procedure contains a return + * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new + function to detect if there is an inner scope of its parameter S which + is a loop. + +2011-08-01 Thomas Quinot + + * sem_ch6.ads: Minor reformatting. + +2011-08-01 Javier Miranda + + * sem_util.adb (Abstract_Interface_List): Complete condition when + processing private type declarations to avoid reading unavailable + attribute. + (Is_Synchronized_Tagged_Type): Complete condition when processing + private extension declaration nodes to avoid reading unavailable + attribute. + +2011-08-01 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-01 Thomas Quinot + + * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads, + i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads, + s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads, + s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages + for VMS, instead parametrize the common implementation with + System.Parameters declarations. + +2011-08-01 Eric Botcazou + + * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing. + +2011-08-01 Tristan Gingold + + * seh_init.c: Fix SEH handler installation on win64. + +2011-08-01 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent + double analysis of an anonymous access to subprogram, because it can + lead to improper sharing of profiles and a back-end crash. + +2011-08-01 Robert Dewar + + * make.adb, sem_ch4.adb: Minor reformatting. + * gcc-interface/Make-lang.in: Update dependencies. + * sem_util.adb, exp_ch5.adb: Minor reformatting. + +2011-08-01 Arnaud Charlet + + * gnat_rm.texi: Fix definition of Long_Integer. + +2011-08-01 Ed Schonberg + + * exp_aggr.adb: check limit size of static aggregate unconditionally, + to prevent storage exhaustion. + * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being + finalized is a function body, insert the cleanup code before the final + return statement, to prevent spurious warnings. + * s-pooglo.ads: add overriding indicator. + +2011-08-01 Ed Schonberg + + * sem_ch4.adb (Operator_Check): improve error message when both a + with_clause and a use_clause are needed to make operator usage legal. + * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to + determine whether a compilation unit is visible within an other, + either through a with_clause in the current unit, or a with_clause in + its library unit or one one of its parents. + +2011-08-01 Ed Schonberg + + * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator + over an arbitrary expression of an array or container type. + * lib-xref.adb: clarify comment. + +2011-08-01 Bob Duff + + * einfo.ads: Minor reformatting. + * debug.adb: Minor comment improvement. + +2011-08-01 Javier Miranda + + * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not + consider hidden subprograms as valid candidates. + +2011-08-01 Arnaud Charlet + + * make.adb (Compile): Strip -mxxx switches in CodePeer mode. + +2011-08-01 Vasiliy Fofanov + + * gnat_ugn.texi: Fix typo. + +2011-08-01 Robert Dewar + + * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb, + lib-xref.adb: Minor reformatting + +2011-08-01 Gary Dismukes + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of + when to generate a call to Move_Final_List. + (Has_Controlled_Parts): Remove this function. + +2011-08-01 Geert Bosch + + * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra + "," in choice list. + +2011-08-01 Thomas Quinot + + * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for + explicit raise of a predefined exception as Comes_From_Source if the + original N_Raise_Statement comes from source. + +2011-08-01 Robert Dewar + + * sinfo.ads: Add comment. + * sem_ch6.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Refine check for bad component size + clause to avoid rejecting confirming clause when atomic/aliased present. + +2011-08-01 Ed Schonberg + + * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to + better determine whether an entity reference is a write. + * sem_util.adb (Is_LHS): refine predicate to handle assignment to a + subcomponent. + * lib-xref.adb (Output_References): Do no suppress a read reference at + the same location as an immediately preceeding modify-reference, to + handle properly in-out actuals. + +2011-08-01 Tristan Gingold + + * env.c (__gnat_setenv) [VMS]: Refine previous change. + +2011-08-01 Quentin Ochem + + * i-cstrin.adb (New_String): Changed implementation, now uses only the + heap to compute the result. + +2011-08-01 Robert Dewar + + * atree.ads: Minor reformatting. + +2011-08-01 Emmanuel Briot + + * g-expect.adb (Get_Command_Output): Fix memory leak. + +2011-08-01 Geert Bosch + + * cstand.adb (P_Float_Type): New procedure to print the definition of + predefined fpt types. + (P_Mixed_Name): New procedure to print a name using mixed case + (Print_Standard): Use P_Float_Type for printing floating point types + * einfo.adb (Machine_Emax_Value): Add preliminary support for quad + precision IEEE float. + +2011-08-01 Thomas Quinot + + * sem_ch3.adb: Minor reformatting. + +2011-08-01 Ed Schonberg + + * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is + the completion of a generic function, insert the new body rather than + rewriting the original. + +2011-08-01 Yannick Moy + + * sinfo.ads, errout.ads: Typos in comments. + +2011-08-01 Robert Dewar + + * par-endh.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspects for library unit pragmas + (Pre_Post_Aspects): New subtype. + * par-ch12.adb (P_Generic): New syntax for aspects in packages + * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter + * par-ch7.adb (P_Package): Remove Decl parameter + (P_Package): Handle new syntax for aspects (before IS) + * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle + new aspect syntax + (P_Task_Definition): Remove Decl parameter, handle new aspect syntax + * par.adb (P_Aspect_Specifications): Add Semicolon parameter + (P_Package): Remove Decl parameter + * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit + aspects + * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect + specs + * sem_util.ads, sem_util.adb (Static_Boolean): New function + * sinfo.ads: Document new syntax for aspects in packages etc. + * sprint.adb: Handle new syntax of aspects before IS in package + +2011-08-01 Thomas Quinot + + * atree.ads: Minor reformatting. + * sem_prag.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * exp_util.adb (Insert_Actions): Fix error in handling Actions for + case expr alternative. + +2011-08-01 Ed Schonberg + + * sem_ch12.adb: Fix typo. + +2011-08-01 Geert Bosch + + * sem_prag.adb (Check_No_Link_Name): New procedure. + (Process_Import_Or_Interface): Use Check_No_Link_Name. + * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float) + instead of Standard_Long_Long_Float_Size global. Preparation for + eventual removal of per type constants. + * exp_util.ads (Get_Stream_Size): New function returning the stream + size value of subtype E. + * exp_util.adb (Get_Stream_Size): Implement new function. + * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size + function. + * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size + * einfo.adb: + (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats + +2011-08-01 Geert Bosch + + * cstand.adb: Fix comments. + * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit + count of arguments. + +2011-08-01 Robert Dewar + + * exp_ch4.adb, sem_cat.adb: Minor reformatting. + +2011-08-01 Geert Bosch + + * atree.ads: Fix comment. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec. + * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name. + * par.adb: Add with for Namet.Sp. + * par-tchk.adb: Minor reformatting. + +2011-08-01 Vincent Celier + + * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb + (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name + of the init procedure of a SAL. + * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name): + New procedure. + +2011-08-01 Thomas Quinot + + * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor + reformatting. + +2011-08-01 Richard Kenner + + * adaint.c (__gnat_file_time_name_attr): Get rid of warning. + +2011-08-01 Thomas Quinot + + * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function + conformant with its spec (return True only for types that have + an overriding Initialize primitive operation that prevents them from + having preelaborable initialization). + * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable + initialization for controlled types in Ada 2005 or later mode. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition, + Postcondition. + (Same_Aspect): New function. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect + Type_Invariant, Precondition, Postcondition. + * snames.ads-tmpl: Add Name_Type_Invariant. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point + here. + (Freeze_All_Ent): Fix error in handling inherited aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is + already analyzed, but don't skip entire processing of a declaration, + that's wrong in some cases of declarations being rewritten. + (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects. + Don't delay for integer, string literals + Treat predicates in usual manner for delay, remove special case code, + not needed. + (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point + (Build_Predicate_Function): Update saved expression in aspect + (Build_Invariant_Procedure): Update saved expression in aspect + * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization + of replacement of discriminant references if the reference is simple. + +2011-08-01 Robert Dewar + + * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate. + * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for + Static_Predicate and Dynamic_Predicate. + (Build_Predicate_Function): Add processing for Static_Predicate + and Dynamic_Predicate. + * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag + (From_Static_Predicate): New flag + * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate + +2011-08-01 Robert Dewar + + * usage.adb: Documentation cleanup for Ada version modes in usage. + * expander.adb: Minor reformatting. + +2011-08-01 Robert Dewar + + * atree.ads: Minor comment fix. + * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads, + a-witeio.ads, sem_prag.adb: Minor reformatting. + +2011-08-01 Doug Rupp + + * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure + pointers. Use descrip.h header file for convenience. Add some + comments. + +2011-08-01 Robert Dewar + + * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point + (Freeze_All): Call Check_Aspect_At_End_Of_Declarations + * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point): + New procedure. + (Check_Aspect_At_End_Of_Declarations): New procedure + (Analye_Aspect_Specification): Minor changes for above procedures + * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect + specification node as well. + +2011-08-01 Pascal Obry + + * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special + Windows files. Use GetFilesAttributes() in this case to check for file + existence instead of returning with an error code. + +2011-08-01 Vincent Celier + + * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when + High is above Source length. + +2011-08-01 Robert Dewar + + * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment. + +2011-08-01 Robert Dewar + + * aspects.ads (Boolean_Aspects): New subtype. + * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects + for derived types in cases where the parent type and derived type have + aspects. + * freeze.adb (Freeze_Entity): Fix problems in handling derived type + with aspects when parent type also has aspects. + (Freeze_Entity): Deal with delay of boolean aspects (must evaluate + boolean expression at this point). + * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in + accordance with final decision on the Ada 2012 feature. + * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag. + +2011-08-01 Matthew Heaney + + * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector. + +2011-08-01 Pascal Obry + + * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: + Fix Replace_Slice when High is above current string size. + (Replace_Slice): Fix DL computation when High is above current + string length. + +2011-08-01 Gary Dismukes + + * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired. + +2011-08-01 Matthew Heaney + + * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child + of node. + +2011-08-01 Pascal Obry + + * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor + reformatting. + +2011-08-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named + access to protected subprograms in generic bodies. + * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a + protected type, indicate that the convention of the subprogram is + Convention_Protected, because it may be used in subsequent declarations + within the protected declaration. + +2011-08-01 Vincent Celier + + * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init" + and "final" procedures when the name of the library is "ada", to avoid + duplicate symbols "adainit" and "adafinal" in executables. + +2011-08-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a + quantified expression that appears within a postcondition and uses the + Ada2012 'Result attribute. + +2011-07-28 Rainer Orth + + * init.c (__gnat_error_handler): Cast reason to int. + (__gnat_install_handler): Explain sa_sigaction use. + +2011-07-24 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If the + subprogram has copy-in copy-out parameters, try to promote the mode of + the return type if it is passed in registers. + +2011-07-24 Eric Botcazou + + * gcc-interface/utils2.c (build_binary_op) : Do not mark the + left operand as addressable. + +2011-07-24 Eric Botcazou + + * gcc-interface/gigi.h (build_function_stub): Remove. + (build_return_expr): Likewise. + (convert_vms_descriptor): Declare. + * gcc-interface/utils.c (convert_vms_descriptor): Make global. + (build_function_stub): Move to... + * gcc-interface/utils2.c (build_return_expr): Move to... + * gcc-interface/trans.c (build_function_stub): ...here. + (build_return_expr): ...here. + (Subprogram_Body_to_gnu): Add local variable for language_function. + Disconnect the parameter attributes cache, if any, once done with it. + Call end_subprog_body only after setting the end_locus. + Build the stub associated with the function, if any, at the very end. + (gnat_to_gnu) : Remove couple of useless local + variables and streamline control flow. + +2011-07-23 Arnaud Charlet + + PR ada/49819 + * gcc-interface/Makefile.in (powerpc-linux): Remove reference to + g-trasym-dwarf.adb. + +2011-07-22 Rainer Orth + + PR bootstrap/49794 + * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): + Assign to act.sa_sigaction. + * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast + current->return_address to char * before arithmetic. + +2011-07-22 Rainer Orth + + * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation. + Correct argument types. + Extract code from reason. + (__gnat_install_handler): Assign to act.sa_sigaction. + +2011-07-21 Eric Botcazou + + * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to... + (GNAT1_OBJS): ...here. + +2011-07-15 Eric Botcazou + + PR ada/48711 + * g-socthi-mingw.adb (Fill): Fix formatting. + + * gcc-interface/gigi.h: Move around comment. + +2011-07-14 John David Anglin + + PR ada/46350 + * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast. + +2011-07-14 Florian Weimer + + PR ada/48711 + * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL. + +2011-07-13 Eric Botcazou + + * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit + range comparison if Pmode is SImode. + +2011-07-12 Laurent GUERBY + Eric Botcazou + + * adadecode.c: Wrap up in extern "C" block. + * adadecode.h: Likewise. + * adaint.c: Likewise. Remove 'const' keyword. + * adaint.h: Likewise. + * argv.c: Likewise. + * atree.h: Likewise. + * cio.c: Likewise. + * cstreams.c: Likewise. + * env.c: Likewise. + * exit.c: Likewise. + * fe.h: Likewise. + * final.c: Likewise. + * init.c: Likewise. + * initialize.c: Likewise. + * link.c: Likewise. + * namet.h: Likewise. + * nlists.h: Likewise. + * raise.c: Likewise. + * raise.h: Likewise. + * repinfo.h: Likewise. + * seh_init.c: Likewise. + * targext.c: Likewise. + * tracebak.c: Likewise. + * uintp.h: Likewise. + * urealp.h: Likewise. + * xeinfo.adb: Wrap up generated C code in extern "C" block. + * xsinfo.adb: Likewise. + * xsnamest.adb: Likewise. + * gcc-interface/gadaint.h: Wrap up in extern "C" block. + * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block. + * gcc-interface/misc.c: Likewise. + * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER. + (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and + ada/targext.o here... + (GNAT_ADA_OBJS): ...and not here. + (GNAT1_ADA_OBJS): Add ada/b_gnat1.o. + (GNATBIND_OBJS): Reorder. + +2011-07-07 Richard Henderson + + * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call + dwarf2out_frame_init. + +2011-07-07 Eric Botcazou + + * gcc-interface/misc.c (gnat_init): Tweak previous change. + +2011-07-07 Rainer Orth + + PR target/39150 + * gcc-interface/Makefile.in: Handle x86_64-solaris2. + +2011-07-06 Richard Guenther + + * gcc-interface/misc.c (gnat_init): Merge calls to + build_common_tree_nodes and build_common_tree_nodes_2. + Re-initialize boolean_false_node. + +2011-07-02 Eric Botcazou + Olivier Hainque + Nicolas Setton + + * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on + the type according to the ARTIFICIAL_P parameter. + (create_type_decl): Likewise. + (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1. + +2011-07-01 Eric Botcazou + + * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command. + (gnatbind): Likewise. + +2011-06-29 Rainer Orth + + * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL). + +2011-06-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE + local variable throughout. Remove useless call to Base_Type. + (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout. + Take it also into account for the volatileness of the field. Set the + TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings. + +2011-06-18 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP + on a dereference built for a by-ref object if it has an address clause. + +2011-06-18 Eric Botcazou + + * einfo.ads (Address_Taken): Document use for the second argument of + Asm_Input and Asm_Output attributes. + * sem_attr.adb (Analyze_Attribute) : If the second + argument is an entity name, then set Address_Taken on it. + : Likewise. + * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the + Attr_Asm_Input and Attr_Asm_Output attributes explicitly. + (gnat_to_gnu) : If an operand is going to end up in + memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. + +2011-06-16 Joern Rennecke + + PR middle-end/46500 + * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args. + +2011-06-14 Joseph Myers + + * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o. + (ada/utils.o): Update dependencies. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add + ../../../libcpp/libcpp.a. + * gcc-interface/utils.c: Include common/common-target.h. + (process_attributes): Use targetm_common.have_named_sections. + +2011-06-07 Richard Guenther + + * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call + set_sizetype. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the + TREE_THIS_NOTRAP flag. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils2.c (gnat_stabilize_reference) : + Fix thinko. + +2011-06-06 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred + constants whose full view has discriminants specially. + +2011-06-06 Eric Botcazou + + * gcc-interface/utils.c: Include diagnostic.h. + (gnat_write_global_declarations): Output debug information for all + global type declarations before finalizing the compilation unit. + * gcc-interface/Make-lang.in (ada/utils.o): Add dependency. + +2011-05-25 Jakub Jelinek + + * gcc-interface/utils.c (def_fn_type): Remove extra va_end. + +2011-05-25 Kai Tietz + + * adaint.c (__gnat_to_canonical_file_list_next): Use array + initialization instead of const/none-const pointer assignment. + +2011-05-24 Joseph Myers + + * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include + $(EXTRA_GNAT1_OBJS). + (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). + (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. + (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use + libcommon-target.a instead of prefix.o. + +2011-05-21 Joseph Myers + + PR ada/49097 + * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS). + +2011-05-20 Joseph Myers + + * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a + instead of version.o. + +2011-05-18 Kai Tietz + + * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use + boolean_false_node instead of integer_zero_node. + (convert_with_check): Likewise. + * gcc-interface/decl.c (choices_to_gnu): Likewise. + +2011-05-12 Eric Botcazou + + * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the + type of the parameter is an unconstrained array, convert the actual to + the type of the formal in the In Out and Out cases as well. + +2011-05-11 Nathan Froyd + + * gcc-interface/utils.c (def_fn_type): Don't call build_function_type; + call build_function_type_array or build_varargs_function_type_array + instead. + (create_subprog_type): Don't call build_function_type; call + build_function_type_vec instead. + +2011-05-11 Nathan Froyd + + * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL. + (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL. + (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL. + +2011-05-07 Eric Botcazou + + * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces. + + * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. + * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. + +2011-05-05 Nathan Froyd + + * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label. + +2011-05-05 Nathan Froyd + + * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators + instead of accessing TYPE_ARG_TYPES directly. + * gcc-interface/utils.c (handle_nonnull_attribute): Likewise. + +2011-05-05 Eric Botcazou + + PR ada/48844 + * gcc-interface/gigi.h (get_variant_part): Declare. + * gcc-interface/decl.c (get_variant_part): Make global. + * gcc-interface/utils2.c (find_common_type): Do not return T1 if the + types have the same constant size, are record types and T1 has a + variant part while T2 doesn't. + +2011-05-05 Eric Botcazou + + * gcc-interface/utils.c (begin_subprog_body): Do not call + get_pending_sizes. + (end_subprog_body): Likewise. + +2011-05-04 Richard Guenther + + * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to + int_const_binop. + (pos_to_constructor): Likewise. + +2011-05-03 Nathan Froyd + Eric Botcazou + + * gcc-interface/trans.c (gigi): Call build_function_type_list instead + of build_function_type. Adjust calls to... + (build_raise_check): ...this. Do not take a void_tree parameter. + Call build_function_type_list instead of build_function_type. + Fix head comment and swap couple of conditional blocks. + +2011-04-30 Eric Botcazou + + * gnatvsn.ads (Library_Version): Bump to 4.7. + (Current_Year): Bump to 2011. + +2011-04-29 Michael Matz + + * gcc-interface/misc.c (gnat_handle_option): Set + warn_maybe_uninitialized. + +2011-04-23 Gerald Pfeifer + + * gnat_ugn.texi (Complexity Metrics Control): Update link to + the Watson/McCabe paper. + +2011-04-23 Jim Meyering + + * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/ + +2011-04-22 Eric Botcazou + + * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE + onto the new type. + +2011-04-22 Eric Botcazou + + * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG + parameter. + * gcc-interface/utils.c (create_subprog_decl): Likewise. Set + DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add + ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl. + : Do not set flags on the reused DECL node coming from an alias. + Set DECL_IGNORED_P on the DECL node built for subprograms if they + don't need debug info here... + * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here. + (gigi): Adjust calls to create_subprog_decl. + (build_raise_check): Likewise. + (establish_gnat_vms_condition_handler): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + +2011-04-21 Eric Botcazou + + * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define. + (NO_REORDER_ADAFLAGS): New variable. + (EXTRA_GNATTOOLS): Always define. + (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h. + Clean up and adjust list of files compiled with special options. + * gcc-interface/Make-lang.in: Likewise. + (ada/decl.o): Cosmetical change. + (ada/misc.o): Remove dependency on $(PLUGIN_H). + +2011-04-20 Jim Meyering + + * initialize.c (__gnat_initialize): Remove useless if-before-free. + +2011-04-17 Eric Botcazou + + * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with + $(CFLAGS) on the link line. + +2011-04-17 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare the + padded type built for the return type if it is unconstrained. + +2011-04-14 Nathan Froyd + + * gcc-interface/utils.c (gnat_poplevel): Use block_chainon. + +2011-04-12 Nathan Froyd + + * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON + before calling TREE_CHAIN. + * gcc-interface/misc.c (gnat_init_ts): New function. + (LANG_HOOKS_INIT_TS): Define. + +2011-04-12 Martin Jambor + + * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node + instead of cgraph_node. + +2011-04-08 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum + alignment on fields of the RETURN type built for the Copy-In Copy-Out + mechanism. + +2011-04-08 Eric Botcazou + + * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers + of aggregate types that contain a placeholder. + +2011-04-08 Nathan Froyd + + * gcc-interface/utils.c (handle_sentinel_attribute): Don't use + TYPE_ARG_TYPES. + (handle_type_generic_attribute): Likewise. + +2011-04-04 Eric Botcazou + + PR ada/47163 + * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change. + +2011-04-04 Kai Tietz + + PR ada/47163 + * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets + to flag value. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils2.c (build_allocator): In the unconstrained array + type case, do not strip a padding type around the array type. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Finalize named pointer + types. + +2011-04-02 Eric Botcazou + + * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete. + * gcc-interface/misc.c (gnat_handle_option): Remove special handling + code for -feliminate-unused-debug-types. + (gnat_post_options): Likewise. + +2011-04-02 Eric Botcazou + + * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial + declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a + distinct copy. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the + DECL_ARTIFICIAL flag on enumeration types. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not make + fat pointer types artificial unconditionally. + : Attach the base array type as a parallel type if it + isn't artificial. + +2011-04-02 Eric Botcazou + + * gcc-interface/gigi.h (get_dummy_type): Declare. + (build_dummy_unc_pointer_types): Likewise. + (finish_fat_pointer_type): Likewise. + * gcc-interface/decl.c (gnat_to_gnu_entity) : If a dummy + fat pointer type has been built, complete it in place. + : Call build_dummy_unc_pointer_types to build dummy fat + and thin pointers. Remove useless variable. + (finish_fat_pointer_type): Make global and move to... + * gcc-interface/utils.c (finish_fat_pointer_type): ...here. + (get_dummy_type): New function. + (build_dummy_unc_pointer_types): Likewise. + (gnat_pushdecl): Propage the name to the anonymous variants only. + (update_pointer_to): Only adjust the pointer types in the unconstrained + array case. + +2011-04-02 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Set it + if this is a Taft amendment type and the full declaration is available. + * gcc-interface/trans.c (process_type): Likewise. + If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P. + (process_freeze_entity): Likewise. + * gcc-interface/utils.c (dummy_global): New static variable. + (gnat_write_global_declarations): If there are types declared as used + at the global level, insert them in the global hash table. + +2011-04-02 Eric Botcazou + + * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param. + * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial + declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct + copy. + (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL + flag of the type accordingly. + * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type. + +2011-04-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer + finalizing types when updating the pointers to the designated type. + : Finalize the deferred types even if we didn't defer processing + of incomplete types in this invocation. + +2011-04-01 Olivier Hainque + Nicolas Setton + Eric Botcazou + + * gcc-interface/misc.c (gnat_descriptive_type): New function. + (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type. + +2011-03-28 Kai Tietz + + * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native + Windows targets. + (EH_MECHANISM): Use GCC exception mechanism for native Windows targets. + * system-mingw.ads (System): Change ZCX_By_Default default to True. + + * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype. + +2011-03-28 Tristan Gingold + + PR ada/44431 + * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c. + Use ada output of gnatbind. + (ada/b_gnatb.adb): Ditto. + (ada/b_gnat1.o, ada/b_gnatb.o): New rules. + (ada.mostlyclean, ada.stage1) + (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile) + (ada.stagefeedback): Adjust. + * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c. + Use ada output of gnatbind. + (b_gnatm.adb): Ditto. + (b_gnatl.o, b_gnatm.o): New rules. + +2011-03-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL + for the padded type built to support a specified size or alignment. + +2011-03-26 Eric Botcazou + + * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Defer + unconditionally to the end of the unit when the designated type is + limited_with'ed. + : Rename local variable. Attempt to un-defer types only and do it + for limited_with'ed types as well. + (finalize_from_with_types): Adjust comment. Rename variable and tidy. + * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT + consistently and remove redundant call to finalize_from_with_types. + +2011-03-26 Eric Botcazou + + * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to + subprograms without a previous spec declared in the same unit. + * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined + subprograms at the end of the unit instead of at the beginning. + * gcc-interface/utils.c (create_subprog_decl): Check that the entity + isn't public for the special handling of non-inline functions nested + inside inline external functions. + +2011-03-25 Jeff Law + + * gcc-interface/utils.c (def_fn_type): Add missing va_end. + +2011-03-24 Eric Botcazou + + * einfo.ads (Size_Depends_On_Discriminant): Adjust description. + * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure + to compute Set_Size_Depends_On_Discriminant. + (Layout_Type): Call it on array types in back-end layout mode. + * sem_util.adb (Requires_Transient_Scope): Return true for array + types only if the size depends on the value of discriminants. + * gcc-interface/utils2.c (build_binary_op) : Use the RHS + type if the RHS is a call to a function that returns an unconstrained + type with default discriminant. + +2011-03-24 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of + non-conversion to the nominal result type at the end. + +2011-03-23 Eric Botcazou + + * gcc-interface/trans.c (create_temporary): New function taken from... + (create_init_temporary): ...here. Call it. + (call_to_gnu): Create the temporary for the return value early, if any. + Create it for a function with copy-in/copy-out parameters if there is + no target; in other cases of copy-in/copy-out, use another temporary. + Push the new binding level lazily. Add and rename local variables. + +2011-03-23 Eric Botcazou + + * gcc-interface/decl.c (validate_size): Improve comments and tweak + error message. + (set_rm_size): Likewise. + +2011-03-23 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Create TYPE_DECL + for the padded type built in order to support a specified alignment. + Fix incorrect formatting. + +2011-03-21 Eric Botcazou + + PR bootstrap/48216 + * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL. + +2011-03-21 Eric Botcazou + + * gcc-interface/decl.c (components_to_record): Add REORDER parameter, + rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter + to the end of the list. Adjust recursive call. Rename local variable. + If REORDER is true, reorder components of the record type. + (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to + components_to_record and adjust the parameter list. + +2011-03-21 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): When optimization is + disabled, use the variable for bounds of loop iteration scheme. + +2011-03-21 Kai Tietz + + PR target/12171 + * gcc-interface/utils.c (gnat_internal_attribute_table): Add column. + +2011-03-17 Eric Botcazou + + * gcc-interface/decl.c (elaborate_expression_1): Try harder to find + out whether the expression is read-only. Short-circuit placeholder + case and rename a couple of local variables. + +2011-03-17 Eric Botcazou + + * gcc-interface/gigi.h (smaller_form_type_p): Declare. + * gcc-interface/trans.c (smaller_form_type_p): Make global and move... + * gcc-interface/utils.c (smaller_form_type_p): ...to here. + (convert): Deal with conversions from a smaller form type specially. + +2011-02-14 Eric Botcazou + + * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and + its argument, except for the special -I- switch. + +2011-02-12 Gerald Pfeifer + + * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to + "Ada Issues". + +2011-02-08 Eric Botcazou + + * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs. + +2011-02-03 Eric Botcazou + + * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of + GNAT_FORMAL. + * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to... + * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE + instead of GNAT_FORMAL. Protect the expression against multiple uses. + Do not generate the check directly, instead instantiate the template + check present in the descriptor. + (make_descriptor_field): Move around. + (build_vms_descriptor32): Build a template check in the POINTER field. + (build_vms_descriptor): Remove useless suffixes. + * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call. + +2011-01-26 Eric Botcazou + + PR bootstrap/47467 + * targext.c: Include target files if IN_RTS is defined. + +2011-01-26 Richard Guenther + + PR bootstrap/47467 + * targext.c: Include config.h. + * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H) + dependency. + +2011-01-04 Pascal Obry + Eric Botcazou + + * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. + +2011-01-04 Eric Botcazou + + * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the + end-of-case on the end label and its associated gotos, if any. + +2011-01-04 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the + expressions of the parameter cache within the statement group of + the CICO mechanism. + +2011-01-04 Olivier Hainque + Eric Botcazou + + * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default. + (set_end_locus_from_node): New function. + (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we + make and the function end_locus. + (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus + for the elaboration subprogram. + (set_gnu_expr_location_from_node) : Use it to attempt to + set the end_locus of the expression as well. + +2011-01-04 Eric Botcazou + + PR ada/47131 + * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make + variables that are referenced in exception handlers volatile. + + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e31b386..c0e1cf4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -107,5036 +107,8 @@ deprecated access declarations when no errors were encountered while parsing the access declaration. Save the first token in order to emit the warning at the right place. - -2011-12-31 Paolo Carlini - - PR c++/51397 - * semantics.c (finish_static_assert): Use %s instead of %E for - the error message. - -2011-12-27 Fabien Chêne - - PR c++/23211 - * name-lookup.c (do_class_using_decl): Use dependent_scope_p - instead of dependent_type_p, to check that a non-dependent - nested-name-specifier of a class-scope using declaration refers to - a base, even if the current scope is dependent. - * parser.c (cp_parser_using_declaration): Set - USING_DECL_TYPENAME_P to 1 if the DECL is not null. Re-indent a - 'else' close to the prior modification. - -2011-12-23 Jason Merrill - - PR c++/51507 - * search.c (at_function_scope_p): Also check cfun. - * pt.c (tsubst_pack_expansion): Check it instead of - cp_unevaluated_operand. - (instantiate_template_1): Use push_to_top_level. - - * tree.c (dependent_name): OFFSET_REF and BASELINK - are not dependent names. - -2011-12-21 Jason Merrill - - PR c++/51611 - * cp-tree.h (CONVERT_EXPR_VBASE_PATH): New. - * class.c (build_base_path): Defer vbase conversion in an NSDMI. - * tree.c (bot_replace): Expand it here. - * cp-gimplify.c (cp_genericize_r): Make sure deferred conversion - doesn't leak into GENERIC. - -2011-12-21 Paolo Carlini - - PR c++/51305 - * semantics.c (massage_constexpr_body): Reorder conditionals, make - sure a BIND_EXPR embedded in a MUST_NOT_THROW_EXPR is handled. - -2011-12-20 Paolo Carlini - - PR c++/51621 - * tree.c (diagnose_non_constexpr_vec_init): For value initialization - pass void_type_node, not void_zero_node, to build_vec_init_elt. - -2011-12-20 Dodji Seketeli - - PR debug/49951 - * decl.c (cxx_maybe_build_cleanup): Don't set location of the call - to the destructor. - -2011-12-20 Paolo Carlini - - PR c++/51612 - * semantics.c (is_valid_constexpr_fn): In case of constexpr - constructors also check for virtual base classes. - -2011-12-19 Paolo Carlini - - PR c++/51328 - * pt.c (convert_template_argument): Early error out and return - error_mark_node for invalid uses of destructors as types. - -2011-12-19 Jason Merrill - - PR c++/51530 - * pt.c (unify): Handle NULLPTR_TYPE. - - PR c++/51526 - * semantics.c (build_data_member_initialization): Handle - delegating constructor. - (build_constexpr_constructor_member_initializers): Likewise. - - PR c++/51553 - * cp-tree.h (LOOKUP_LIST_INIT_CTOR): Rename from - LOOKUP_NO_COPY_CTOR_CONVERSION. - (add_list_candidates): Set it earlier. - (add_candidates): Don't check explicit on ctors when it's set. - (add_function_candidate): Check it even when LOOKUP_ONLYCONVERTING - is set. - - PR c++/51553 - * call.c (add_function_candidate): Allow conversions for the copy - parm in list-initialization unless the argument is an init-list. - -2011-12-19 Jakub Jelinek - - PR c++/51619 - * semantics.c (cxx_eval_vec_init_1): If init is NULL for - multidimensional array, just set eltinit to NULL_TREE. - - * cp-gimplify.c (gimplify_must_not_throw_expr): Use - gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt. - -2011-12-19 Dodji Seketeli - - PR c++/51477 - * search.c (lookup_member): Get out early on invalid base type. - -2011-12-19 Jason Merrill - - PR c++/51489 - * semantics.c (cxx_eval_outermost_constant_expr): Check for - conversion from pointer to integer here. - (cxx_eval_constant_expression) [NOP_EXPR]: Not here. - -2011-12-18 Paolo Carlini - - * semantics.c (finish_compound_literal): Don't call check_narrowing - if !(complain & tf_warning_or_error). - -2011-12-17 Jason Merrill - - PR c++/51588 - * parser.c (cp_parser_ptr_operator): Reject pointer to member of enum. - -2011-12-17 Richard Henderson - - PR bootstrap/51072 - * config-lang.in: Revert last change. - -2011-12-17 Jason Merrill - - PR c++/51586 - * parser.c (cp_parser_check_class_key): Handle error_mark_node. - - PR c++/51587 - * decl.c (start_enum): Avoid using ENUM_UNDERLYING_TYPE on a - non-enum. - -2011-12-16 Jason Merrill - - PR c++/51416 - * init.c (build_value_init_noctor): Check for incomplete type. - -2011-12-16 Richard Henderson - - PR bootstrap/51072 - * config-lang.in (target_libs): Include target-libitm. - -2011-12-16 Jason Merrill - - PR c++/51461 - * decl.c (check_static_variable_definition): Check COMPLETE_TYPE_P - before literal_type_p. - - PR c++/51331 - * class.c (convert_to_base_statically): Just call - build_simple_base_path. - (build_simple_base_path): Check field offset. - -2011-12-15 Jason Merrill - - PR c++/51458 - * decl.c (has_designator_problem): New. - (reshape_init_r): Check for improper use of - designated initializers. - -2011-12-15 Jakub Jelinek - - PR c++/51463 - * decl.c (grokdeclarator): Set DECL_INITIAL of decl - to error_mark_node to disallow NSDMI if declspecs->storage_class - is sc_static. - * parser.c (cp_parser_late_parse_one_default_arg): Return early - if default_arg is error_mark_node. - - PR c/51360 - * semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR - and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use. - -2011-12-15 Dodji Seketeli - - PR c++/51473 - * decl.c (check_tag_decl): Error out on auto specifier with no - declarator. - -2011-12-15 Jonathan Wakely - - PR libstdc++/51365 - * cp-tree.h (CPTK_IS_FINAL): Add. - * parser.c (cp_parser_translation_unit): Handle RID_IS_FINAL. - (cp_parser_primary_expression, cp_parser_trait_expr): Likewise. - * semantics.c (trait_expr_value, finish_trait_expr): Handle - CPTK_IS_FINAL. - * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise. - -2011-12-14 Jason Merrill - - PR c++/51554 - * semantics.c (cxx_eval_indirect_ref): Fix sanity check. - - PR c++/51248 - * decl.c (copy_type_enum): Also update variants. - (finish_enum): Allow variants of complete enums. - -2011-12-14 Dodji Seketeli - - PR c++/51475 - * call.c (struct conversion): Update comment. - (next_conversion): New static function. - (convert_like_real): Use it. - - PR c++/51476 - * pt.c (convert_nontype_argument): Don't call maybe_constant_value - for PTRMEM_CST nodes. - -2011-12-13 Jason Merrill - - PR c++/51406 - PR c++/51161 - * typeck.c (build_static_cast_1): Fix cast of lvalue to - base rvalue reference. - -2011-12-13 Paolo Carlini - - PR c++/51464 - * semantics.c (begin_lambda_type): Check begin_class_definition return - value for error_mark_node. - * parser.c (cp_parser_lambda_expression): Check begin_lambda_type - return value for error_mark_node. - -2011-12-13 Fabien Chêne - - PR c++/14258 - * cp-tree.h (USING_DECL_TYPENAME_P): New macro. - * parser.c (cp_parser_nonclass_name): Handle using declarations - that refer to a dependent type. - (cp_parser_using_declaration): Set USING_DECL_TYPENAME_P to 1 if - the using declaration refers to a dependent type. - -2011-12-12 Jakub Jelinek - - PR c++/51496 - * parser.c (cp_parser_omp_for_loop): When determining whether - to use cp_parser_omp_for_incr or cp_parser_expression and when - calling cp_parser_omp_for_incr, use real_decl instead of decl. - -2011-12-12 Torvald Riegel - - * semantics.c (finish_transaction_stmt, build_transaction_expr): - Accept new noexcept parameter and handle it. - * cp-tree.h (finish_transaction_stmt, build_transaction_expr): Adapt - declarations. - * parser.c (cp_parser_exception_specification_opt): Extract - noexcept-specification parsing to ... - (cp_parser_noexcept_specification_opt): ...here. Allow for parsing - non-constexpr noexcept arguments. - (cp_parser_transaction, cp_parser_transaction_expression): Parse - and handle noexcept-specifications. - (cp_parser_function_transaction): Adapt to finish_transaction_stmt - change. - * pt.c (tsubst_expr): Adapt to new noexcept parameters when - building transactions. - -2011-12-12 Torvald Riegel - - * cp-tree.def (MUST_NOT_THROW_EXPR): Add condition parameter. - * cp-tree.h (MUST_NOT_THROW_COND): New. - (build_must_not_throw_expr): Declare. - * dump.c (cp_dump_tree): Dump MUST_NOT_THROW_EXPR condition. - * except.c (build_must_not_throw_expr): New. - (initialize_handler_parm): Use it. - (begin_eh_spec_block, wrap_cleanups_r): Adapt to condition. - * pt.c (tsubst_expr): Handle MUST_NOT_THROW_EXPR. - -2011-12-12 Richard Guenther - - PR lto/51262 - * tree.c (cp_free_lang_data): No longer clear anonymous names. - -2011-12-09 Jason Merrill - - PR c++/51151 - * call.c (perform_implicit_conversion_flags): Remove earlier kludge. - * parser.c (cp_parser_omp_for_loop): Use cp_parser_omp_for_incr - in templates even if decl isn't type-dependent. - -2011-12-09 Dodji Seketeli - - PR c++/51289 - * cp-tree.h (TYPE_TEMPLATE_INFO): Rewrite this accessor macro to - better support aliased types. - (TYPE_ALIAS_P): Don't crash on TYPE_NAME nodes that are not - TYPE_DECL. - * pt.c (find_parameter_packs_r): Handle types aliases. - (push_template_decl_real): Check for bare parameter packs in the - underlying type of an alias template. - -2011-12-08 Jason Merrill - - PR c++/51318 - * typeck.c (build_x_conditional_expr): Restrict glvalue games to C++11. - - PR c++/51459 - * pt.c (tsubst_expr) [DECL_EXPR]: Handle capture proxies properly. - * semantics.c (insert_capture_proxy): No longer static. - * cp-tree.h: Declare it. - -2011-12-07 Jakub Jelinek - - PR c++/51401 - * decl.c (grokdeclarator): Error for auto on non-static data members. - - PR c++/51429 - * typeck2.c (cxx_incomplete_type_diagnostic): Don't - ICE if TREE_OPERAND (value, 1) is overloaded. - - PR c++/51229 - * decl.c (reshape_init_class): Complain if d->cur->index is - INTEGER_CST. - * parser.c (cp_parser_initializer_list): If cp_parser_parse_definitely - fails, clear designator. - - PR c++/51369 - * init.c (build_value_init): Allow array types even when - processing_template_decl. - -2011-12-07 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/51420 - * parser.c (lookup_literal_operator): Check that declaration is an - overloaded function. - -2011-12-06 Jakub Jelinek - - PR c++/51430 - * pt.c (tsubst_decl): Don't call strip_array_domain on - error_mark_node. - -2011-12-06 Paolo Carlini - - PR c++/51431 - * init.c (build_value_init): Check build_aggr_init_expr return - value for error_mark_node. - -2011-12-06 Dodji Seketeli - - PR c++/51427 - * parser.c (cp_parser_check_class_key): Add note about earlier - declaration. - -2011-12-05 Fabien Chêne - - PR c++/51319 - * semantics.c (finish_id_expression): Strip using declarations - early in the function. - -2011-12-05 Paolo Carlini - - PR c++/51399 - * init.c (perform_member_init): Early return if init is error_mark_node. - -2011-12-05 Paolo Carlini - - PR c++/51414 - * semantics.c (finish_underlying_type): Use %qT, not %qE for the - error message. - -2011-12-05 Jason Merrill - - * init.c (expand_default_init): Unshare args in ctor delegation. - -2011-12-05 Ville Voutilainen - Pedro Lamarão - - Implement C++11 delegating constructors. - * cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS. - * error.c (maybe_warn_cpp0x): Adjust. - * parser.c (cp_parser_mem_initializer_list): Use it. Diagnose - multiple initializers if a delegating initializer is present. - * call.c (build_special_member_call): Convert an assert into an if. - * init.c (perform_target_ctor): New. - (emit_mem_initializers): Use it. - (expand_member_init, expand_default_init): Adjust. - -2011-12-05 Paolo Carlini - - PR c++/51404 - * typeck2.c (build_functional_cast): Early return error_mark_node - for invalid uses of 'auto'. - * parser.c (cp_parser_direct_declarator): When - cp_parser_constant_expression returns error do not produce further - diagnostic for the bound. - -2011-12-03 Paolo Carlini - - PR c++/51313 - * call.c (null_ptr_cst_p): STRIP_NOPS in c++11 mode too. - -2011-12-01 Jason Merrill - - * call.c (build_new_method_call_1): Handle aggregate initialization. - * tree.c (stabilize_init): Handle CONSTRUCTOR. - -2011-12-01 Paolo Carlini - - PR c++/51326 - * call.c (build_user_type_conversion_1): Early return NULL if - expr is NULL_TREE. - -2011-12-01 Paolo Carlini - - PR c++/51367 - * pt.c (unify_inconsistency): Use either %qT or %qE depending on - whether parm is a type or non-type parameter. - -2011-11-30 Jason Merrill - - PR c++/51009 - * name-lookup.c (push_to_top_level): Set stmts_are_full_exprs_p. - * decl.c (build_aggr_init_full_exprs): Just assert that it's true. - (check_initializer): Here too. - -2011-11-30 Paolo Carlini - - PR c++/51299 - * rtti.c (ifnonnull): Use nullptr_node. - (build_dynamic_cast_1): Call cp_truthvalue_conversion instead - of c_common_truthvalue_conversion. - -2011-11-24 Paolo Carlini - - PR c++/51227 - * pt.c (instantiate_class_template_1): If lambda_function (type) - is NULL_TREE do not instantiate_decl. - -2011-11-24 Paolo Carlini - - PR c++/51290 - * class.c (build_base_path): For the null pointer check use - nullptr_node instead of integer_zero_node. - -2011-11-22 Dodji Seketeli - - PR c++/51145 - * decl.c (check_elaborated_type_specifier): Gracefully handle - error_mark_node. Accept bound template template parameters. - Update diagnostics for alias template specializations. Update - comment. - * parser.c (cp_parser_elaborated_type_specifier): Use - check_elaborated_type_specifier for simple-template-ids as well. - -2011-11-22 Paolo Carlini - - PR c++/51265 - * semantics.c (finish_decltype_type): Handle PTRMEM_CST. - -2011-11-22 Dodji Seketeli - - PR c++/51143 - * parser.c (cp_parser_alias_declaration): Don't allow type - definition in templates. - -2011-11-22 Paolo Carlini - - PR c++/51196 - * typeck.c (cp_build_binary_op, [case EQ_EXPR]): For targets having - TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_delta, do here - the -Wzero-as-null-pointer-constant warning for pmf == 0. - -2011-11-21 Torvald Riegel - - * pt.c (tsubst_copy_and_build): Handle TRANSACTION_EXPR. - -2011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/50958 - * parser.c (lookup_literal_operator): New. - (cp_parser_userdef_char_literal): Use it. - (cp_parser_userdef_numeric_literal): Use it. - (cp_parser_userdef_string_literal): Use lookup_name. - -2011-11-20 Jason Merrill - - * pt.c (tsubst_pack_expansion): Fix SFINAE. - - PR c++/48322 - * cp-tree.h (PACK_EXPANSION_EXTRA_ARGS): New. - * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand for it. - * pt.c (tsubst_pack_expansion): Set and use it. - (iterative_hash_template_arg): Hash it. - (template_args_equal): Compare it. - (comp_template_args_with_info): Handle nulls. - * tree.c (cp_walk_subtrees): Walk it. - * typeck.c (structural_comptypes): Compare it. - * ptree.c (cxx_print_type): Print it. - - * pt.c (type_unification_real): Set input_location - during default arg instantiation. - -2011-11-20 Paolo Carlini - - PR c++/51230 - * pt.c (unify_inconsistency): Handle non-type parameters better. - * error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM. - -2011-11-20 Dodji Seketeli - - PR c++/51194 - * pt.c (lookup_template_class_1): Go out early if the type of the - template is error_mark_node. - -2011-11-19 Paolo Carlini - - PR c++/51216 - * semantics.c (potential_constant_expression_1): Handle IF_STMT, - DO_STMT, FOR_STMT, and WHILE_STMT. - -2011-11-18 Fabien Chêne - - PR c++/51188 - * search.c (lookup_field_1): Handle USING_DECLs for the storted - case. - -2011-11-18 Paolo Carlini - - PR c++/51150 - * pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR. - -2011-11-18 Dodji Seketeli - - PR c++/51191 - * pt.c (primary_template_instantiation_p): Don't forget to - consider alias declarations. - -2011-11-17 Jason Merrill - - PR c++/51186 - * decl.c (grokdeclarator): Improve C++98 trailing return diagnostic. - - N3203 - * class.c (add_implicitly_declared_members): Update move - conditions. - - PR c++/51137 - * class.c (build_base_path): Don't do calculation in templates. - -2011-11-15 Torvald Riegel - - * parser.c (cp_parser_transaction_expression): Require parentheses - when parsing transaction expressions. - -2011-11-14 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/51107 - * typeck.c (check_literal_operator_args): Add processing_specialization - to check for void template fn. Test for exact arity for non-template fn. - -2011-11-14 Fabien Chêne - - PR c++/6936 - PR c++/25994 - PR c++/26256 - PR c++/30195 - * search.c (lookup_field_1): Look through USING_DECL. - (lookup_field_r): Call lookup_fnfields_slot instead of - lookup_fnfields_1. - * semantics.c (finish_member_declaration): Remove the check that - prevents USING_DECLs from being verified by - pushdecl_class_level. Call add_method for using declarations that - designates functions if the using declaration is in a template - class. Set DECL_IGNORED_P on class-scope using declarations. - * typeck.c (build_class_member_access_expr): Handle USING_DECLs. - * class.c (check_field_decls): Keep using declarations. - (add_method): Remove two diagnostics about conflicting using - declarations. - * parser.c (cp_parser_nonclass_name): Handle USING_DECLs. - * decl.c (start_enum): Call xref_tag whenever possible. - * cp-tree.h (strip_using_decl): Declare, and reident the previous - function. - * name-lookup.c (strip_using_decl): New function. - (supplement_binding_1): Call strip_using_decl on decl and - bval. Perform most of the checks with USING_DECLs stripped. Also - check that the target decl and the target bval does not refer to - the same declaration. Allow pushing an enum multiple times in a - template class. Adjustment to diagnose using redeclarations. Call - diagnose_name_conflict. - (push_class_level_binding): Call strip_using_decl on decl and - bval. Perform most of the checks with USING_DECLs stripped. Return - true if both decl and bval refer to USING_DECLs and are dependent. - (diagnose_name_conflict): New function. - -2011-11-12 Jason Merrill - - PR c++/986 - * call.c (set_up_extended_ref_temp): Warn about references - bound to non-static reference members. - * init.c (perform_member_init): Pass in the member. - - PR c++/51060 - * cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone. - -2011-11-11 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/50976 - * typeck.c (check_literal_operator_args): Reorganize test for string - operators so size_t search depends on finding string first. - -2011-11-10 Jason Merrill - - PR c++/50372 - * pt.c (convert_nontype_argument_function): Allow decls with - internal linkage in C++11. - (convert_nontype_argument): Likewise. - - PR c++/50973 - * decl2.c (mark_used): Defer synthesis of virtual functions. - * method.c (use_thunk): Make sure the target function has - DECL_INTERFACE_KNOWN. - - PR c++/51079, DR 495 - * call.c (joust): Check the second conversion sequence - before checking templates. - -2011-11-09 Paolo Carlini - - PR c++/50837 - * pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode - pass allow_non_integral_constant_expression_p = true to - finish_id_expression. - -2011-11-09 Jason Merrill - - PR c++/50972 - * pt.c (maybe_instantiate_noexcept): Check the return value of - push_tinst_level. - - PR c++/51046 - * parser.c (cp_parser_range_for): check_for_bare_parameter_packs. - - PR c++/51029 - * class.c (build_base_path): Don't ICE in fold_non_dependent_expr. - - * Make-lang.in (check_g++_parallelize): Add dg-torture.exp. - (check-c++0x): Obsolete. - - * pt.c (invalid_nontype_parm_type_p): Avoid printing "". - - * pt.c (convert_nontype_argument): Only integral arguments - get early folding. - - * parser.c (cp_parser_alias_declaration): Don't do semantic - processing if parsing failed. - -2011-11-09 Paolo Carlini - - PR c++/51045 - * init.c (build_new_1, build_vec_delete_1, build_delete): - Use nullptr_node. - -2011-11-09 Paolo Carlini - - PR c++/51047 - * search.c (lookup_member): Change to take also a tsubst_flags_t - parameter. - (lookup_field, lookup_fnfields): Adjust calls. - * typeck.c (lookup_destructor, finish_class_member_access_expr, - build_ptrmemfunc_access_expr): Likewise. - * class.c (handle_using_decl, maybe_note_name_used_in_class): - Likewise. - * pt.c (resolve_typename_type): Likewise. - * semantics.c (lambda_function): Likewise. - * parser.c (cp_parser_perform_range_for_lookup, - cp_parser_lookup_name): Likewise. - * friend.c (make_friend_class): Likewise. - * name-lookup.c (pushdecl_maybe_friend_1, get_class_binding, - do_class_using_decl, lookup_qualified_name): Likewise. - * cp-tree.h (lookup_member): Adjust declaration. - -2011-11-09 Dodji Seketeli - - PR c++/51043 - * cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on - NULL TYPE_NAME. - - PR c++/51027 - * parser.c (cp_parser_alias_declaration): Require ';' at the end - of the declaration. - -2011-11-09 Dodji Seketeli - - PR debug/51032 - * decl2.c (check_member_template): Accept alias templates and ... - * parser.c (cp_parser_alias_declaration): ... use it here. - -2011-11-08 Jason Merrill - - PR c++/50835 - * typeck.c (build_x_conditional_expr): Preserve lvalue/xvalueness. - * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Return clk_ordinary - in C++98. - -2011-11-08 Richard Guenther - - PR middle-end/51010 - * error.c (dump_expr): Handle SSA_NAMEs. - -2011-11-07 Richard Henderson - Aldy Hernandez - Torvald Riegel - - Merged from transactional-memory. - - * call.c (build_new_function_call): Call tm_malloc_replacement. - * class.c (check_bases): Compute transaction attributes for the - class based on its base classes. - (look_for_tm_attr_overrides, set_one_vmethod_tm_attributes, - set_method_tm_attributes): New. - (finish_struct_1): Call set_method_tm_attributes. - * cp-tree.h (begin_transaction_stmt, finish_transaction_stmt, - build_transaction_expr): Declare. - (TRANSACTION_EXPR_IS_STMT): New. - * decl.c (push_cp_library_fn): Set attribute to transaction_safe. - * except.c (do_get_exception_ptr): Apply transaction_pure. - (do_begin_catch): Mark _ITM_cxa_begin_catch transaction_pure and - record as transactional-memory wrapper. - (do_end_catch): Similarly for _ITM_cxa_end_catch. - (do_allocate_exception): Similarly for _ITM_cxa_allocate_exception. - (build_throw): Similarly for _ITM_cxa_throw. Make __cxa_rethrow pure. - * parser.h (struct cp_parser): Add in_transaction flag. - * parser.c (enum non_integral_constant): Add NIC_TRANSACTION. - (cp_parser_non_integral_constant_expression): Handle NIC_TRANSACTION. - (enum required_token): Add transaction tokens. - (cp_parser_transaction, cp_parser_transaction_expression, - cp_parser_function_transaction, cp_parser_transaction_cancel, - cp_parser_txn_attribute_opt): New. - (cp_parser_unary_expression): Handle RID_TRANSACTION*. - (cp_parser_statement, cp_parser_function_definition_after_declarator, - cp_parser_token_starts_function_definition_p): Same. - (cp_parser_required_error): Handle RT_TRANSACTION*. - * pt.c (tsubst_expr): Handle TRANSACTION_EXPR. - * semantics.c (begin_transaction_stmt, finish_transaction_stmt, - build_transaction_expr): New. - -2011-11-08 Dodji Seketeli - - Fix context handling of alias-declaration - * decl.c (start_decl): Update comment. - * error.c (dump_alias_template_specialization): Dump the context - of the specialization. - * parser.c (cp_parser_alias_declaration): Call pop_scope on the - pushed scope yielded by start_decl. - -2011-11-08 Paolo Carlini - - PR c++/50864 - * parser.c (cp_parser_postfix_dot_deref_expression): Reject invalid - uses of '->' and '.' as postfix-expression in namespace scope. - -2011-11-07 Jason Merrill - - PR c++/50848 - * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't crash - if lookup finds a non-function. - - PR c++/50863 - * parser.c (cp_parser_initializer_list): Parse C99 - array designators tentatively. - - PR c++/50870 - * pt.c (tsubst_copy): Handle NAMESPACE_DECL. - (tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent - object. - -2011-11-07 Paolo Carlini - - * pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error - call in case COMPONENT_REF. - -2011-11-07 Jason Merrill - Dodji Seketeli - - Support C++11 alias-declaration - PR c++/45114 - * cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P) - (DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor - macros. - (TYPE_TEMPLATE_INFO): Get template info of an alias template - specializations from its TYPE_DECL. - (SET_TYPE_TEMPLATE_INFO): Set template info of alias template - specializations into its TYPE_DECL. - (DECL_CLASS_TEMPLATE_P): Re-write using the new - DECL_TYPE_TEMPLATE_P. - (enum cp_decl_spec): Add new ds_alias enumerator. - (alias_type_or_template_p, alias_template_specialization_p): - Declare new functions. - * parser.c (cp_parser_alias_declaration): New static function. - (cp_parser_check_decl_spec): Add "using" name for the `alias' - declspec. - (cp_parser_type_name): Update comment. Support simple-template-id - representing alias template specializations in c++0x mode. - (cp_parser_qualifying_entity): Update comment. Use - cp_parser_type_name. - (cp_parser_block_declaration): Handle alias-declaration in c++11. - Update comment. - (cp_parser_template_id): Handle specializations of alias - templates. - (cp_parser_member_declaration): Add alias-declaration production - to comment. Support alias-declarations. - (cp_parser_template_declaration_after_export): Handle alias - templates in c++11. - * decl.c (make_typename_type, make_unbound_class_template): Accept - alias templates. - (grokdeclarator): Set TYPE_DECL_ALIAS_P on alias - declarations. - * decl2.c (grokfield): Move template creation after setting up the - TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias - template actually carries the right type-id of the alias - declaration. - * pt.c (alias_type_or_template_p) - (alias_template_specialization_p): Define new public functions. - (maybe_process_partial_specialization): Reject partial - specializations of alias templates. - (primary_template_instantiation_p): Consider alias template - instantiations. - (push_template_decl_real): Assert that TYPE_DECLs of alias - templates are different from those of class template. Store - template info onto the TYPE_DECL of the alias template. - (convert_template_argument): Strip aliases from template - arguments. - (lookup_template_class_1): Handle the creation of the - specialization of an alias template. - (tsubst_decl): Create a substituted copy of the TYPE_DECL of an - member alias template. - (tsubst): Handle substituting into the type of an alias template. - Handle substituting UNBOUND_CLASS_TEMPLATE into - BOUND_TEMPLATE_TEMPLATE_PARM. - (do_type_instantiation): Better diagnostics when trying to - explicitely instantiate a non-class template. - * search.c (lookup_field_1, lookup_field_r): Support looking up - alias templates. - * semantics.c (finish_template_type): For instantiations of alias - templates, return the TYPE_DECL of the actual alias and not the - one of the aliased type. - * error.c (dump_alias_template_specialization): New static - function. - (dump_type): Handle printing of alias templates and their - specializations. templates. - (dump_aggr_type): For specialization of alias templates, fetch - arguments from the right place. - (dump_decl): Print an alias-declaration like `using decl = type;' - (dump_template_decl): Support printing of alias templates. - -2011-11-07 Jason Merrill - - PR c++/35688 - * decl2.c (constrain_visibility): Return void. Add tmpl parm - which gives the constraint priority over an attribute. - (constrain_visibility_for_template, determine_visibility): Adjust. - * pt.c (instantiate_class_template_1): Call determine_visibility. - - PR c++/33255 - * decl.c (save_function_data): Clear local_typedefs. - - * decl.c (cp_finish_decl): Only make_tree_vector if we're calling - check_initializer. - -2011-11-06 Jason Merrill - - PR c++/35688 - * decl2.c (constrain_visibility): Check decl_has_visibility_attr - rather than DECL_VISIBILITY_SPECIFIED. - -2011-11-06 Paolo Carlini - - PR c++/47695 - * decl2.c (mark_used): Early return false after error or sorry. - * cp-tree.h (mark_used): Adjust declaration. - * semantics.c (finish_id_expression): Check mark_used return value. - -2011-11-05 Jason Merrill - - PR c++/48370 - * decl.c (cp_finish_decl): Mostly revert previous change. - -2011-11-04 Jason Merrill - - PR c++/26714 - * init.c (perform_member_init): Strip TARGET_EXPR around NSDMI. - Do temporary lifetime extension. - - PR c++/48370 - * decl.c (cp_finish_decl): Run cleanups in the right order. - -2011-11-04 Eric Botcazou - - PR c++/50608 - * semantics.c (finish_offsetof): Adjust call to fold_offsetof. - * typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1. - -2011-11-04 Paolo Carlini - - * typeck.c (build_indirect_ref): Use ATTRIBUTE_UNUSED. - * mangle.c (write_unnamed_type_name): Likewise. - -2011-11-04 Magnus Fromreide - - * parser.c (cp_parser_enumerator_list): Do not warn about - trailing commas in C++0x mode. - -2011-11-04 Olivier Goffart - Jason Merrill - - PR c++/50965 - * class.c (check_field_decls): NSDMI makes a class non-aggregate. - -2011-11-04 Paolo Carlini - - PR c++/48420 - * call.c (conversion_null_warnings): For 'false' to NULL pointer, - just check that TREE_TYPE (expr) is a BOOLEAN_TYPE. - -2011-11-04 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/50941 - * parser.c (cp_parser_userdef_string_literal): Fix string length. - -2011-11-04 Jason Merrill - - PR c++/48370 - * call.c (extend_ref_init_temps, extend_ref_init_temps_1): New. - (set_up_extended_ref_temp): Use it. Change cleanup parm to VEC. - (initialize_reference): Just call convert_like. - * decl.c (grok_reference_init): Just call initialize_reference. - (build_init_list_var_init): Remove. - (check_initializer): Change cleanup parm to VEC. Handle references - like other types. Call perform_implicit_conversion instead - of build_init_list_var_init. Don't use build_aggr_init for - aggregate initialization of arrays. - (cp_finish_decl): Change cleanup to VEC. - * typeck2.c (store_init_value): Call extend_ref_init_temps. - Use build_vec_init for non-constant arrays. - * init.c (expand_aggr_init_1): Adjust. - (build_vec_init): Avoid re-converting an initializer - that's already digested. - * mangle.c (mangle_ref_init_variable): Add a discriminator. - * cp-tree.h: Adjust. - * typeck.c (convert_for_initialization): Adjust. - * decl2.c (maybe_emit_vtables): Adjust. - -2011-11-02 Jason Merrill - - PR c++/50930 - * init.c (build_aggr_init): Don't set LOOKUP_ONLYCONVERTING - if the initializer has TARGET_EXPR_DIRECT_INIT_P. - (expand_default_init): An initializer with TARGET_EXPR_DIRECT_INIT_P - or TARGET_EXPR_LIST_INIT_P doesn't need more processing. - * tree.c (bot_manip): Propagate TARGET_EXPR_IMPLICIT_P, - TARGET_EXPR_LIST_INIT_P, TARGET_EXPR_DIRECT_INIT_P. - * call.c (convert_like_real): Set TARGET_EXPR_DIRECT_INIT_P - as appropriate on list-value-initialization. - - * parser.c (cp_parser_decl_specifier_seq): Change "C++0x" to - "C++11" in warnings. - (cp_lexer_get_preprocessor_token): Likewise. - (cp_parser_binary_expression): Likewise. - -2011-11-02 Paolo Carlini - - PR c++/50810 - * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics. - (digest_init_r): Call check_narrowing irrespective of the C++ dialect. - * decl.c (check_initializer): Likewise. - * semantics.c (finish_compound_literal): Likewise. - -2011-11-02 Paolo Carlini - - PR c++/50956 - * typeck.c (build_const_cast_1): Fix -Wcast-qual for false - comp_ptr_ttypes_const. - -2011-11-02 Rainer Orth - - * Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK. - -2011-11-01 Paolo Carlini - - PR c++/44277 - * cvt.c (cp_convert_to_pointer): Warn for zero as null pointer - constant. - * typeck.c (cp_truthvalue_conversion): Handle pointers and member - function pointers under c_inhibit_evaluation_warnings; use - nullptr_node for data member pointers. - (cp_build_binary_op): Tweak, just forward to cp_convert op1, - either a nullptr_node or an integer_zero_node. - (build_ptrmemfunc): Use nullptr_node. - * init.c (build_zero_init_1): Likewise. - -2011-11-01 Jason Merrill - - PR c++/50500 - DR 1082 - * search.c (lookup_fnfields_idx_nolazy): Split out from... - (lookup_fnfields_1): ...here. - (lookup_fnfields_slot_nolazy): Use it. - * cp-tree.h: Declare it. - * class.c (type_has_move_assign): Use it. - (type_has_user_declared_move_assign): Likewise. - -2011-10-31 Jason Merrill - - PR c++/50920 - * class.c (check_field_decl): Change c++0x in diags to c++11. - * error.c (maybe_warn_cpp0x): Likewise. - * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. - * pt.c (check_default_tmpl_args): Likewise. - -2011-10-31 Diego Novillo - - * mangle.c (get_mangled_id): Factor from ... - (mangle_decl): ... here. - Call get_mangled_id. - -2011-10-25 Gerald Pfeifer - - * NEWS (GCC 2.95): Refer to GNU/Linux instead of Linux. - (EGCS 1.0): Ditto. - -2011-10-29 Paolo Carlini - - PR c++/50901 - * call.c (build_new_op_1): Handle ABS_EXPR together with the - other unary EXPR. - -2011-10-28 Paolo Carlini - - Revert: - 2011-10-28 Paolo Carlini - - PR c++/50864 - * pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error - call in case COMPONENT_REF. - -2011-10-28 Paolo Carlini - - * pt.c (unify_pack_expansion): Initialize bad_old_arg and bad_new_arg. - -2011-10-28 Paolo Carlini - - PR c++/50864 - * pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error - call in case COMPONENT_REF. - -2011-10-27 Jason Merrill - - * semantics.c (cxx_eval_outermost_constant_expr): Check - cp_has_mutable_p. - (cxx_eval_component_reference): Check DECL_MUTABLE_P. - -2011-10-27 Roberto Agostino Vitillo - - PR c++/30066 - * decl2.c (determine_hidden_inline): New function. - (determine_visibility): fvisibility-inlines-hidden affects inline - functions. - -2011-10-27 Dodji Seketeli - - * cp-tree.h (DECL_DECLARES_TYPE_P): Fix comment. - -2011-10-26 Jason Merrill - - * typeck.c (check_literal_operator_args): Avoid building types. - -2011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net> - - Implement C++11 user-defined literals. - * cp-objcp-common.c: (cp_tree_size) Return size of USERDEF_LITERAL tree. - * cp-tree.h: (UDLIT_OP_*, UDLIT_OPER_P): Literal operator - name tools. New tree code for user-defined literals. - * cxx-pretty-print.h: (pp_cxx_userdef_literal) New. - * cxx-pretty-print.c: (pp_cxx_userdef_literal) New. - (pp_cxx_primary_expression, pp_cxx_expression): Use it. - * decl.c: (cp_tree_node_structure): Return new tree code. - (duplicate_decls): Check for raw vs. template operator conflicts. - (grokfndecl, grokdeclarator): New checks for literal operators. - * error.c: (dump_expr): Warn about user-defined literals - in C++98 mode. (dump_function_name): Pretty printing. - * mangle.c: (write_literal_operator_name): New. - (write_unqualified_id, write_unqualified_name): Use it. - * parser.c: (cp_parser_operator): Handle operator"". - (cp_parser_userdef_char_literal, cp_parser_userdef_numeric_literal, - cp_parser_userdef_string_literal): New. - (cp_parser_primary_expression): Handle new user-defined literal tokens - with new functions. - * semantics.c: (potential_constant_expression_1): Add - user-defined literals. - * typeck.c (check_raw_literal_operator, - check_literal_operator_args): New. - -2011-10-26 Paolo Carlini - - * typeck.c (cp_build_addr_expr_1): Use BASELINK_P. - * class.c (instantiate_type): Likewise. - * pt.c (convert_nontype_argument_function, uses_template_parms, - tsubst_copy, resolve_nondeduced_context, type_dependent_expression_p): - Likewise. - * semantics.c (finish_decltype_type): Likewise. - * decl2.c (mark_used): Likewise. - * name-lookup.c (arg_assoc): Likewise. - -2011-10-26 Paolo Carlini - - PR c++/50870 - * typeck.c (non_reference): Pass NULL_TREE through. - -2011-10-25 Jason Merrill - - PR c++/50866 - PR c++/41449 - * semantics.c (maybe_cleanup_point_expr_void): No longer static. - * typeck2.c (split_nonconstant_init_1): Use it. - * cp-tree.h: Declare it. - * decl.c (wrap_cleanups_r): Stop at CLEANUP_POINT_EXPR. - - PR c++/49996 - * tree.c (stabilize_init): Stabilize scalar elements of a - CONSTRUCTOR, too. - -2011-10-25 Paolo Carlini - - PR c++/50858 - * typeck.c (composite_pointer_type_r): Check return value of - composite_pointer_type_r for error_mark_node. - -2011-10-25 Paolo Carlini - - PR c++/50861 - * pt.c (tsubst_copy_and_build): Check return value of - tsubst_copy_and_build for error_mark_node. - -2011-10-23 Paolo Carlini - - PR c++/50841 - Revert: - 2011-10-23 Paolo Carlini - - PR c++/50810 - * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics. - (digest_init_r): Call check_narrowing irrespective of the C++ dialect. - * decl.c (check_initializer): Likewise. - * semantics.c (finish_compound_literal): Likewise. - -2011-10-23 Paolo Carlini - - PR c++/50810 - * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics. - (digest_init_r): Call check_narrowing irrespective of the C++ dialect. - * decl.c (check_initializer): Likewise. - * semantics.c (finish_compound_literal): Likewise. - -2011-10-21 Paolo Carlini - - PR c++/45385 - * init.c (build_vec_init): Early return error_mark_node if - maxindex is -1. - -2011-10-21 Paolo Carlini - - PR c++/31423 - * typeck2.c (cxx_incomplete_type_diagnostic): Improve error message - for invalid use of member function. - -2011-10-21 Ville Voutilainen - - PR c++/50811 - * parser.c (cp_parser_class_head): Parse virt-specifiers - regardless of whether an id is present - -2011-10-20 Jason Merrill - - PR c++/41449 - * typeck2.c (split_nonconstant_init_1): Handle EH cleanup of - initialized subobjects. - -2011-10-19 Paolo Carlini - - PR c++/13657 - * class.c (instantiate_type): Fix error message. - -2011-10-19 Jason Merrill - - PR c++/50793 - * tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST. - -2011-10-19 Roland Stigge - - PR translation/49704 - * semantics.c (potential_constant_expression_1): Use "AST" instead of - "ast" in sorry message. - -2011-10-19 Paolo Carlini - - PR c++/38761 - PR c++/40872 - * decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use - G_() in error message strings to facilitate translation. - * semantics.c (finish_id_expression): Likewise. - * parser.c (cp_parser_nested_name_specifier_opt, - cp_parser_parameter_declaration): Likewise. - -2011-10-18 Jason Merrill - - PR c++/50531 - * pt.c (instantiate_decl): Recognize when a function defaulted - outside the class is already instantiated. - - PR c++/50742 - * decl.c (check_previous_goto_1): Handle using-decl. - -2011-10-18 Jason Merrill - - PR c++/50500 - DR 1082 - * class.c (type_has_user_declared_move_constructor): New. - (type_has_user_declared_move_assign): New. - (add_implicitly_declared_members): Add lazy copy ops - even if there's a move. - * method.c (lazily_declare_fn): Delete implicit copies - if there's a move. - (maybe_explain_implicit_delete): Explain this. Use inform rather - than error. - * cp-tree.h: Declare new fns. - -2011-10-18 Diego Novillo - - * parser.c: Remove ENABLE_CHECKING markers around debugging - routines. - (cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN. - Make static - When printing CURR_TOKEN surround it in [[ ]]. - Start printing at START_TOKEN. - Update all users. - (cp_debug_print_tree_if_set): New. - (cp_debug_print_context): New. - (cp_debug_print_context_stack): New. - (cp_debug_print_flag): New. - (cp_debug_print_unparsed_function): New. - (cp_debug_print_unparsed_queues): New. - (cp_debug_parser_tokens): New. - (cp_debug_parser): New. - (cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr. - (cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL. - * parser.h (cp_lexer_dump_tokens): Remove declaration. - (cp_debug_parser): Declare. - -2011-10-17 Michael Spertus - - * cp-tree.def: Add BASES as a new tree code. - * cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES. - (BASES_TYPE, BASES_DIRECT): Define. - (calculate_bases, finish_bases, calculate_direct_bases): Declare. - * parser.c (cp_parser_trait_expr, cp_parser_template_argument_list, - (cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them. - * pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise. - * semantics.c (calculate_bases, finish_bases, calculate_direct_bases, - dfs_calculate_bases_pre, dfs_calculate_bases_post, - calculate_bases_helper): Define. - -2011-10-17 Jason Merrill - - PR c++/50736 - * parser.c (cp_parser_lambda_introducer): Check for more - invalid captures. - -2011-10-17 Paolo Carlini - - PR c++/44524 - * typeck.c (build_class_member_access_expr): Provide a better error - message for X.Y where X is a pointer to class type. - (finish_class_member_access_expr): Likewise. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * error.c (cp_diagnostic_starter): Pass the relevant location to - diagnostic_report_current_module. - (cp_diagnostic_finalizer): Call virt_loc_aware_diagnostic_finalizer. - -2011-10-17 Paolo Carlini - - PR c++/48489 - * typeck.c (finish_class_member_access_expr): Fix error call - for TREE_CODE (access_path) == TREE_BINFO. - -2011-10-15 Paolo Carlini - - PR c++/50732 - * semantics.c (finish_trait_expr): Do not try to instantiate the - the base type of an __is_base_of trait. - (check_trait_type): Return a tree; use complete_type_or_else. - -2011-10-14 Jason Merrill - - PR c++/50563 - * parser.c (cp_parser_cache_group): Handle end==CPP_COMMA. - (cp_parser_save_nsdmi): Pass it. - - PR c++/50707 - * method.c (walk_field_subobs): Check for NSDMI before - complaining about uninitialized fields. - - * pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node - instead of error_mark_node as a placeholder. - -2011-10-14 Paolo Carlini - - PR c++/38174 - * call.c (add_builtin_candidate): If two pointers have a composite - pointer type, generate a single candidate with that type. - -2011-10-13 Jason Merrill - - PR c++/50614 - * cp-tree.h (VAR_TEMPL_TYPE_FIELD_OR_FUNCTION_DECL_CHECK): New. - (DECL_TEMPLATE_INFO): Use it. - * pt.c (tsubst_decl) [FIELD_DECL]: Set DECL_TEMPLATE_INFO - if the decl has an NSDMI. - * init.c (perform_member_init): Use it. - - PR c++/50437 - * cp-tree.h (struct tree_lambda_expr): Add closure field. - (LAMBDA_EXPR_CLOSURE): New. - * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Likewise. - * semantics.c (build_lambda_object): Use it instead of TREE_TYPE. - (begin_lambda_type, lambda_function, add_capture): Likewise. - (add_default_capture, lambda_expr_this_capture): Likewise. - -2011-10-13 Diego Novillo - - * cp-tree.h (struct language_function): Rename in_function_try_handler - to x_in_function_try_handler. - Rename in_base_initializer to x_in_base_initializer. - Update all users. - -2011-10-13 Diego Novillo - - * class.c (sorted_fields_type_new): Factor out of ... - (finish_struct_1): ... here. - -2011-10-13 Jason Merrill - - PR c++/50618 - * init.c (expand_aggr_init_1): Don't zero-initialize virtual - bases of a base subobject. - -2011-10-12 Paolo Carlini - - PR c++/50594 - * decl.c (cxx_init_decl_processing): Add - __attribute__((externally_visible)) to operator new and - operator delete library fn. - -2011-10-11 Michael Meissner - - * decl.c (duplicate_decls): Delete old interface with two parallel - arrays to hold standard builtin declarations, and replace it with - a function based interface that can support creating builtins on - the fly in the future. Change all uses, and poison the old - names. Make sure 0 is not a legitimate builtin index. - * except.c (build_eh_type_type): Ditto. - (choose_personality_routine): Ditto. - * semantics.c (finish_omp_atomic): Ditto. - (finish_omp_barrier): Ditto. - (finish_omp_flush): Ditto. - (finish_omp_taskwait): Ditto. - -2011-10-11 Jason Merrill - - PR c++/49855 - PR c++/49896 - * cp-tree.def (IMPLICIT_CONV_EXPR): New. - * call.c (perform_implicit_conversion_flags): Build it - instead of NOP_EXPR. - * cp-objcp-common.c (cp_common_init_ts): It's typed. - * cxx-pretty-print.c (pp_cxx_cast_expression): Handle it. - (pp_cxx_expression): Likewise. - * error.c (dump_expr): Likewise. - * semantics.c (potential_constant_expression_1): Likewise. - * tree.c (cp_tree_equal): Likewise. - (cp_walk_subtrees): Likewise. - * pt.c (iterative_hash_template_arg): Likewise. - (for_each_template_parm_r): Likewise. - (type_dependent_expression_p): Likewise. - (tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR - and CONVERT_EXPR. - * cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New. - -2011-10-11 Paolo Carlini - - PR c++/50611 - * pt.c (tsubst_copy_and_build): If (complain & tf_error) is false - do not call unqualified_name_lookup_error. - -2011-10-10 Paolo Carlini - - PR c++/50660 - * call.c (conversion_null_warnings): Don't look through references. - -2011-10-09 Paolo Carlini - - PR c++/38980 - * init.c (constant_value_1): Add bool parameter. - (decl_constant_value_safe): Add. - (integral_constant_value): Adjust. - (decl_constant_value): Adjust. - * cp-tree.h (decl_constant_value_safe): Declare. - * typeck.c (decay_conversion): Use decl_constant_value_safe. - * call.c (convert_like_real): Likewise. - -2011-10-09 Jakub Jelinek - Diego Novillo - - * pt.c (reregister_specialization): Use htab_find instead of - htab_find_slot with INSERT. - (maybe_process_partial_specialization, lookup_template_class_1): Change - slot variable type to void ** to avoid aliasing problems. - (register_specialization): Likewise. Use slot != NULL instead of - more expensive !optimize_specialization_lookup_p (tmpl) test. - -2011-10-08 Paolo Carlini - - PR c++/34927 - * typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate - inform messages in case of cloned destructor. - -2011-10-06 Jason Merrill - - PR c++/39164 - * decl.c (grokfndecl): Diagnose redefinition of defaulted fn. - -2011-10-02 Jason Merrill - - * pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs. - Change unsubstituted_packs to bool. - - * parser.c (cp_parser_range_for): Don't try to deduce from {} - in a template. - - PR c++/35722 - Implement N2555 (expanding pack expansion to fixed parm list) - * pt.c (coerce_template_parms): Allow expanding a pack expansion - to a fixed-length argument list. - (unify_pack_expansion): Handle explicit args properly. - (unify) [TREE_VEC]: Handle pack expansions here. - [TYPE_ARGUMENT_PACK]: Not here. - (tsubst_pack_expansion): Don't try to do partial substitution. - (pack_deducible_p): New. - (fn_type_unification): Use it. - (find_parameter_packs_r): Take the TYPE_MAIN_VARIANT - of a type parameter. - (check_non_deducible_conversion): Split from type_unification_real. - (unify_one_argument): Split from type_unification_real... - (unify_pack_expansion): ...and here. Drop call_args_p parm. - (type_unification_real, unify, more_specialized_fn): Adjust. - - * class.c (fixed_type_or_null): Handle NSDMI. - * method.c (walk_field_subobs): Disable NSDMI noexcept checking - for now. - -2011-09-30 Jason Merrill - - * cp-tree.h (TREE_NEGATED_INT): Remove. - * semantics.c (finish_unary_op_expr): Don't set it. - -2011-09-30 Janis Johnson - - PR c++/44473 - * mangle.c (write_type): Handle CV qualifiers for decimal classes. - -2011-09-26 Andi Kleen - - * repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE. - -2011-09-28 Paolo Carlini - - PR c++/45278 - * typeck.c (cp_build_binary_op): With -Wextra, warn for ordered - comparison of pointer with zero. - -2011-09-27 Paolo Carlini - - PR c++/31489 - * parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE, - set CLASSTYPE_DECLARED_CLASS. - -2011-09-27 Jakub Jelinek - - * decl.c (duplicate_decls): If compatible stpcpy prototype - is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. - -2011-09-26 Jason Merrill - - PR c++/45012 - * pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out - constant value if we're still in a template. - - PR c++/46105 - * typeck.c (structural_comptypes): Ignore cv-quals on typename scope. - - PR c++/50508 - * semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal - rather than ==. - -2011-09-26 Paolo Carlini - - PR c++/45487 - * error.c (dump_template_bindings): Separate bindings with semicolons - instead of commas. - -2011-09-26 Jason Merrill - - PR c++/50512 - * call.c (compare_ics): Only consider rvaluedness_matches_p - if the target type is the same or it too differs in rvalueness. - - PR c++/50523 - * call.c (implicit_conversion): Mask out inappropriate LOOKUP - flags at the top of the function. - - * pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI. - -2011-09-26 Paolo Carlini - - * pt.c (convert_nontype_argument): Handle NULLPTR_TYPE. - -2011-09-26 Paolo Carlini - - PR c++/26747 - * cp-gimplify.c (get_bc_label): Remove obsolete diagnostics. - -2011-09-25 Jason Merrill - - * parser.c (inject_this_parameter): Split out from - cp_parser_late_return_type_opt. - (cp_parser_class_specifier_1): Use it for NSDMIs. - * tree.c (bot_replace): Replace NSDMI 'this' with real 'this'. - -2011-09-24 Jason Merrill - - * except.c (expr_noexcept_p): Split out from finish_noexcept_expr. - * cp-tree.h: Declare it. - * method.c (walk_field_subobs): Use it. - - * init.c (perform_member_init): Instantiate NSDMI here. - * pt.c (tsubst_decl) [FIELD_DECL]: Not here. - - Handle deferred parsing of NSDMIs. - * parser.h (cp_unparsed_functions_entry): Add nsdmis field. - * parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New. - (cp_parser_late_parse_one_default_arg): Split out from - cp_parser_late_parsing_default_args. - (cp_parser_late_parsing_nsdmi): New. - (push_unparsed_function_queues): Set it. - (cp_parser_parameter_declaration): Save the '=' token. - (cp_parser_template_parameter): Likewise. - (cp_parser_default_argument): Call cp_parser_initializer - rather than cp_parser_initializer_clause. - (cp_parser_class_specifier_1): Parse unparsed_nsdmis. - (cp_parser_member_declaration): Handle nsdmis. - * decl2.c (grokfield): Handle DEFAULT_ARG for a function. - - Implement C++11 non-static data member initializers. - * cp-tree.h (enum cpp_warn_str): Add CPP0X_NSDMI. - * error.c (maybe_warn_cpp0x): Handle it. - * call.c (convert_like_real) [ck_user]: Don't complain about - using an explicit constructor for direct-initialization. - * class.c (check_field_decl): Fix ancient typo. - (check_field_decls): NSDMIs make the default ctor non-trivial. - * decl.c (cp_finish_decl): Record NSDMI. - (grokdeclarator): Allow NSDMI. - * decl2.c (grokfield): Allow NSDMI. Correct LOOKUP flags. - * init.c (perform_member_init): Use NSDMI. - * method.c (walk_field_subobs): Check for NSDMI. - * parser.c (cp_parser_member_declaration): Parse { } init. - * semantics.c (register_constexpr_fundef): Don't talk about - a return statement in a constexpr constructor. - (cxx_eval_call_expression): Check DECL_INITIAL instead of - DECL_SAVED_TREE. - -2011-09-24 Paolo Carlini - - PR c++/44267 - * class.c (build_base_path): Add a tsubst_flags_t parameter. - (convert_to_base): Adjust call. - * typeck.c (build_class_member_access_expr, - get_member_function_from_ptrfunc, build_static_cast_1): Likewise. - * init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise. - * method.c (do_build_copy_constructor, do_build_copy_assign): Likewise. - * rtti.c (build_dynamic_cast_1): Likewise. - * typeck2.c (build_scoped_ref, build_m_component_ref): Likewise. - * call.c (build_over_call, build_special_member_call): Likewise. - * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, - build_up_reference): Likewise. - * cp-tree.h (build_base_path): Adjust declaration. - -2011-09-23 Jason Merrill - - Core 253 - allow const objects with no initializer or - user-provided default constructor if the defaulted constructor - initializes all the subobjects. - PR c++/20039 - PR c++/42844 - * class.c (default_init_uninitialized_part): New. - * cp-tree.h: Declare it. - * decl.c (check_for_uninitialized_const_var): Use it. - * init.c (perform_member_init): Likewise. - (build_new_1): Likewise. - * method.c (walk_field_subobs): Likewise. - -2011-09-23 Paolo Carlini - - PR c++/50258 - * decl.c (check_static_variable_definition): Allow in-class - initialization of static data member of non-integral type in - permissive mode. - -2011-09-22 Paolo Carlini - - PR c++/50491 - * semantics.c (potential_constant_expression_1): Handle USING_DECL. - -2011-09-22 Paolo Carlini - - PR c++/50371 - * pt.c (invalid_nontype_parm_type_p): Handle NULLPTR_TYPE. - -2011-09-22 Jonathan Wakely - Paolo Carlini - - PR c++/50344 - * friend.c (make_friend_class): cv-qualification is ok in a - friend declaration. - -2011-09-21 Paolo Carlini - - PR c++/50454 - * decl.c (grokdeclarator): Consistently handle both __int128 - and unsigned __int128 with -pedantic; suppress diagnostic in - system headers. - -2011-09-20 Jason Merrill - - * cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New. - (DECL_GENERATED_P): New. - * class.c (finalize_literal_type_property): Use them. - * semantics.c (is_instantiation_of_constexpr): Likewise. - (register_constexpr_fundef): Likewise. - - * call.c (convert_default_arg): Avoid redundant copy. - * tree.c (bot_manip): Copy everything. - -2011-09-20 Roberto Agostino Vitillo - - * call.c (build_new_method_call_1): Use non-virtual lookup - for final virtual functions. - -2011-09-16 Jason Merrill - - PR c++/50424 - * call.c (set_flags_from_callee): Split out from build_call_a. - * cp-tree.h: Declare it. - * tree.c (bot_manip): Call it. - -2011-09-15 Jason Merrill - - PR c++/50365 - * parser.c (cp_parser_late_return_type_opt): Check quals parameter - for clearing current_class_ptr, too. - -2011-09-14 Diego Novillo - - * name-lookup.c (lookup_arg_dependent): Use conditional - timevars. - * decl.c (xref_tag): Likewise. - -2011-09-14 Paolo Carlini - - PR c++/50391 - * pt.c (regenerate_decl_from_template): Don't pass an error_mark_node - to build_exception_variant. - -2011-09-13 Dodji Seketeli - - PR c++/48320 - * pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX - nodes. Add a comment. - (arg_from_parm_pack_p): New static function, factorized out from - tsubst_pack_expansion and extended to support non-type parameter - packs represented with TEMPLATE_PARM_INDEX nodes. - (tsubst_pack_expansion): Use arg_from_parm_pack_p. - -2011-09-12 Jason Merrill - - * pt.c (type_unification_real): Fix handling of DEDUCE_CONV - with no deducible template parameters. - * call.c (rejection_reason_code): Add rr_template_conversion. - (print_z_candidate): Handle it. - (template_conversion_rejection): New. - (build_user_type_conversion_1): Use it. - - * call.c (merge_conversion_sequences): Set bad_p and user_conv_p - on all of the second conversion sequence. - (build_user_type_conversion_1): Set bad_p on the ck_user conv. - (convert_like_real): Handle bad ck_ref_bind with user_conv_p in the - first section. Fix loop logic. - (initialize_reference): Call convert_like for diagnostics when - we have a (bad) conversion. - - * call.c (convert_class_to_reference) - (convert_class_to_reference_1): Remove. - (reference_binding): Use build_user_type_conversion_1 instead. - - * call.c (initialize_reference): Add flags parm. - * decl.c (grok_reference_init): Likewise. - (check_initializer): Pass it. - * typeck.c (convert_for_initialization): Likewise. - * cp-tree.h: Adjust. - - * cp-tree.h (LOOKUP_NO_RVAL_BIND): New. - * call.c (conditional_conversion): Use it. - (reference_binding): Fix handling of xvalues. - -2011-09-09 Jason Merrill - - * call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P - before forcing instantiation. - -2011-09-08 Paolo Carlini - - PR c++/50324 - * typeck2.c (digest_init_r): Call complete_type_or_maybe_complain - instead of complete_type_or_else. - -2011-09-08 Dodji Seketeli - - PR c++/33255 - Support -Wunused-local-typedefs warning - * name-lookup.c (pushdecl_maybe_friend_1): Use the new - record_locally_defined_typedef. - * decl.c (finish_function): Use the new - maybe_warn_unused_local_typedefs. - (grokfield): Use the new record_locally_defined_typedef. - * parser.c (lookup_name): Use the new maybe_record_typedef_use. - -2011-09-07 Paolo Carlini - - PR c++/50309 - * decl.c (grokdeclarator): Check u.function.exception_specification - for error_mark_node. - -2011-09-07 Jason Merrill - - PR c++/50298 - * parser.c (cp_parser_member_declaration): Don't require a constant - rvalue here in C++0x. - - * pt.c (type_unification_real): Correct complain arg for tsubsting - default template args. - - * pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting. - -2011-09-06 Jason Merrill - - PR c++/50296 - * semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn. - (cx_check_missing_mem_inits): Handle bases and empty trivial members. - (validate_constexpr_fundecl): Remove. - * decl.c (start_preparsed_function): Don't call it. - * cp-tree.h: Don't declare it. - -2011-09-04 Jason Merrill - - PR c++/49267 - * call.c (reference_binding): Don't set is_lvalue for an rvalue - reference rfrom. - - PR c++/49267 - PR c++/49458 - DR 1328 - * call.c (reference_binding): Set rvaluedness_matches_p properly - for reference to function conversion ops. - (compare_ics): Adjust. - - * class.c (trivial_default_constructor_is_constexpr): Rename from - synthesized_default_constructor_is_constexpr. - (type_has_constexpr_default_constructor): Adjust. - (add_implicitly_declared_members): Call it instead. - (explain_non_literal_class): Explain about non-constexpr default ctor. - * cp-tree.h: Adjust. - * method.c (synthesized_method_walk): Adjust. - * semantics.c (explain_invalid_constexpr_fn): Handle defaulted - functions, too. - - PR c++/50248 - Core 1358 - * init.c (perform_member_init): Don't diagnose missing inits here. - (emit_mem_initializers): Or here. - * method.c (process_subob_fn): Don't instantiate constexpr ctors. - * semantics.c (cx_check_missing_mem_inits): New. - (explain_invalid_constexpr_fn): Call it. - (register_constexpr_fundef): Likewise. Leave - DECL_DECLARED_CONSTEXPR_P set when the body is unsuitable. - (cxx_eval_call_expression): Adjust diagnostics. - (cxx_eval_constant_expression): Catch use of 'this' in a constructor. - -2011-08-30 Jason Merrill - - PR c++/50084 - * cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p - to type_definition_p. - * parser.c (cp_parser_set_decl_spec_type): Likewise. - * decl.c (grokdeclarator): Check it. - - PR c++/50089 - * semantics.c (finish_id_expression): Use - current_nonlambda_class_type for qualified-ids. - - PR c++/50114 - * decl.c (poplevel): Disable for scope compatibility hack - in C++11 mode. - - PR c++/50220 - * semantics.c (add_capture): Call complete_type for copy. - - PR c++/50234 - * semantics.c (cxx_eval_component_reference): Handle - value-initialization for omitted initializers. - -2011-08-29 Jason Merrill - - PR c++/50224 - * semantics.c (finish_id_expression): Mark captured variables used. - -2011-08-29 Jakub Jelinek - Jason Merrill - - PR c++/50207 - * class.c (finish_struct_1): Complain if the first field is - artificial. - -2011-08-29 Jason Merrill - - PR c++/50209 - Core DR 994 - * parser.c (cp_parser_default_argument): Use - cp_parser_initializer_clause. - (cp_parser_late_parsing_default_args): Likewise. - -2011-08-26 Jason Merrill - - Core DR 342 - PR c++/48582 - * pt.c (check_valid_ptrmem_cst_expr): A null member pointer value - is valid in C++11. - (convert_nontype_argument): Likewise. Implicitly convert nullptr - and do constant folding. - * mangle.c (write_template_arg_literal): Mangle null member - pointer values as 0. - * call.c (null_member_pointer_value_p): New. - * cp-tree.h: Declare it. - -2011-08-25 Jason Merrill - - * call.c (convert_like_real): Remove redundant complain checks. - - PR c++/50157 - * call.c (convert_like_real): Exit early if bad and !tf_error. - -2011-08-23 Jason Merrill - - * typeck2.c (build_functional_cast): Don't try to avoid calling - build_value_init. - * pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags. - -2011-08-23 Jason Merrill - - PR c++/49045 - Core 1321 - * tree.c (dependent_name): New. - (cp_tree_equal): Two calls with the same dependent name are - equivalent even if the overload sets are different. - -2011-08-23 Jason Merrill - - * tree.c (build_target_expr): Set TREE_CONSTANT on - literal TARGET_EXPR if the value is constant. - * typeck2.c (build_functional_cast): Don't set it here. - -2011-08-23 Jason Merrill - - Core 903 (partial) - * call.c (null_ptr_cst_p): Only 0 qualifies in C++11. - -2011-08-23 Jason Merrill - - Core 975 - * decl.c (cxx_init_decl_processing): Initialize - dependent_lambda_return_type_node. - * cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE. - (dependent_lambda_return_type_node): Define. - (DECLTYPE_FOR_LAMBDA_RETURN): Remove. - * semantics.c (lambda_return_type): Handle overloaded function. - Use dependent_lambda_return_type_node instead of - DECLTYPE_FOR_LAMBDA_RETURN. - (apply_lambda_return_type): Don't check dependent_type_p. - * pt.c (tsubst_copy_and_build): Handle lambda return type deduction. - (instantiate_class_template_1): Likewise. - (tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN. - * mangle.c (write_type): Likewise. - * typeck.c (structural_comptypes): Likewise. - (check_return_expr): Handle dependent_lambda_return_type_node. - -2011-08-23 Jason Merrill - - PR c++/50024 - * semantics.c (maybe_constant_value): Don't try to fold { }. - * pt.c (build_non_dependent_expr): Don't wrap { }. - * init.c (build_value_init): Allow scalar value-init in templates. - -2011-08-23 Jason Merrill - - * semantics.c (potential_constant_expression_1): Allow 'this'. - -2011-08-23 Jakub Jelinek - - PR c++/50158 - * typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs - if it has side-effects and needs to be preevaluated. - -2011-08-23 Siddhesh Poyarekar - - PR c++/50055 - * except.c (begin_eh_spec_block): Build EH_SPEC block on the - same line as the function. - -2011-08-23 Jakub Jelinek - - PR c++/46862 - * class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type - which doesn't have any fields, clear it and diagnose. - -2011-08-18 Rainer Orth - Marc Glisse - - PR libstdc++-v3/1773 - * mangle.c (decl_mangling_context): Call - targetm.cxx.decl_mangling_context. - (write_unscoped_name): Use decl_mangling_context. - -2011-08-18 Dodji Seketeli - - PR c++/45625 - * pt.c (parameter_of_template_p): Handle comparison with DECLs of - template parameters as created by process_template_parm. - -2011-08-16 Jason Merrill - - PR c++/50086 - * pt.c (unify_pack_expansion): Correct overloaded unification - logic. - - * pt.c (instantiate_class_template_1): If DECL_PRESERVE_P is set - on a member function or static data member, call mark_used. - - PR c++/50054 - * typeck2.c (cxx_incomplete_type_diagnostic): Handle - init_list_type_node. - -2011-08-13 Jason Merrill - - PR c++/50075 - * name-lookup.c (local_bindings_p): New. - * name-lookup.h: Declare it. - * lex.c (unqualified_name_lookup_error): Use it. - - PR c++/50059 - * error.c (dump_expr): Handle MODIFY_EXPR properly. - - * decl.c (grok_reference_init): Handle constexpr here. - * call.c (initialize_reference): Not here. - -2011-08-12 David Li - - * class.c (update_vtable_entry_for_fn): Set - LOST_PRIMARY bit properly. - -2011-08-12 Jason Merrill - - PR c++/50034 - * call.c (convert_arg_to_ellipsis): force_rvalue only in - potentially evaluated context. - -2011-08-12 Richard Guenther - - * call.c (build_over_call): Instead of memcpy use an - assignment of two MEM_REFs. - -2011-08-11 Romain Geissler - Brian Hackett - - * decl.c (cp_finish_decl): Invoke callbacks on finish_decl event. - -2011-08-10 Richard Guenther - - * call.c (build_over_call): Call memcpy unconditionally. - -2011-08-08 Jason Merrill - - PR c++/50020 - * semantics.c (finish_call_expr): Don't look at 'this' if we - had an explicit object argument. - - PR c++/50011 - * typeck2.c (check_narrowing): Fix integer logic. - -2011-08-08 Rainer Orth - - * Make-lang.in (g++$(exeext)): Add $(EXTRA_GCC_LIBS). - -2011-08-05 Jason Merrill - - PR c++/48993 - * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Sorry - on 'this' in a constructor. - - PR c++/49921 - * semantics.c (finish_decltype_type): Call invalid_nonstatic_memfn_p. - - PR c++/49669 - * init.c (perform_member_init): Handle invalid array initializer. - - PR c++/49988 - * semantics.c (cxx_eval_array_reference): Handle failure to - reduce the array operand to something we can work with. - -2011-08-05 Gabriel Charette - - * decl.c (finish_function): Remove unecessary line 0 hack. - -2011-08-05 Jason Merrill - - PR c++/47453 - * typeck.c (build_x_compound_expr_from_list): Also complain - about ({...}). - - PR c++/49812 - * typeck.c (cp_build_unary_op) [POSTINCREMENT_EXPR]: Strip cv-quals. - - PR c++/49983 - * parser.c (cp_parser_range_for): Only do auto deduction in - template if the range is non-dependent. - - * init.c (perform_member_init): Always build_aggr_init - for a class member with an explicit mem-initializer. - - * pt.c (unify) [TEMPLATE_TYPE_PARM]: Allow VLA for C++0x 'auto'. - -2011-08-04 Jakub Jelinek - - PR middle-end/49905 - * decl.c (cxx_init_decl_processing): Add alloc_size (1) attribute - for operator new and operator new []. Call init_attributes. - -2011-08-02 Jason Merrill - - PR c++/43886 - * parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p. - - PR c++/49577 - * typeck2.c (check_narrowing): Check unsigned mismatch. - * semantics.c (finish_compound_literal): check_narrowing. - - PR c++/49593 - * pt.c (find_parameter_packs_r): Handle CONSTRUCTOR. - - PR c++/49803 - * init.c (sort_mem_initializers): Initialize uses_unions_p here. - (build_field_list): Not here. - - PR c++/49834 - * parser.c (build_range_temp): Split out from... - (cp_convert_range_for): ...here. - (do_range_for_auto_deduction): New. - (cp_parser_range_for): Use it. - -2011-08-02 Jakub Jelinek - - * cp-tree.h (finish_omp_atomic): Adjust prototype. - (cxx_omp_const_qual_no_mutable): New prototype. - (finish_omp_taskyield): New prototype. - * parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle - parsing OpenMP 3.1 atomics. Adjust finish_omp_atomic caller. - (cp_parser_omp_clause_name): Handle final and mergeable clauses. - (cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New - functions. - (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL - and PRAGMA_OMP_CLAUSE_MERGEABLE. - (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. - (cp_parser_omp_taskyield): New function. - (cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. - (cp_parser_omp_clause_reduction): Handle min and max. - * pt.c (tsubst_expr) : Handle OpenMP 3.1 atomics. - (tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and - OMP_CLAUSE_MERGEABLE. - * semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1 - arguments. Handle OpenMP 3.1 atomics. Adjust c_finish_omp_atomic - caller. - (finish_omp_clauses): Don't complain about const qualified - predetermined vars and static data members in firstprivate clause. - Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR - and MAX_EXPR. - (finish_omp_taskyield): New function. - * cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function. - (cxx_omp_predetermined_sharing): Use it. - -2011-08-02 Jason Merrill - - * call.c (build_call_a): Also check at_function_scope_p. - -2011-08-01 Jason Merrill - - PR c++/49932 - * mangle.c (write_prefix): Handle decltype. - - PR c++/49924 - * semantics.c (cxx_eval_vec_init_1): Fix logic. - - PR c++/49813 - * semantics.c (potential_constant_expression_1): Allow any builtin. - (morally_constexpr_builtin_function_p): Remove. - -2011-07-29 Jason Merrill - - PR c++/49867 - * parser.c (cp_parser_lambda_expression): Also clear in_statement - and in_switch_statement_p. - (cp_parser_class_specifier): Likewise. - -2011-07-28 Jason Merrill - - PR c++/49808 - * pt.c (tsubst) [TEMPLATE_PARM_INDEX]: Call convert_from_reference. - (convert_nontype_argument, tsubst_template_arg): Handle its output. - -2011-07-28 Paolo Carlini - - PR c++/49813 - * semantics.c (potential_constant_expression_1): Handle FMA_EXPR. - -2011-07-27 Jeffrey Yasskin - - * pt.c (build_template_decl): Copy the function_decl's - source location to the new template_decl. - -2011-07-26 Paolo Carlini - - PR c++/49776 - * typeck.c (cp_build_modify_expr): Check digest_init return value - for error_mark_node. - -2011-07-25 Paolo Carlini - - PR bootstrap/49845 - * parser.c (cp_parser_perform_range_for_lookup): Always assign *being - and *end before returning. - -2011-07-25 Paolo Carlini - - PR c++/49838 - * parser.c (cp_parser_perform_range_for_lookup): Early return if - error_operand_p (range). - -2011-07-23 Jason Merrill - - PR c++/49823 - * parser.c (cp_parser_qualifying_entity): Handle templates. - -2011-07-22 Jason Merrill - - PR c++/49793 - * typeck2.c (check_narrowing): Downgrade permerror to pedwarn. - Make conditional on -Wnarrowing. - -2011-07-22 Ville Voutilainen - - Warn about the use of final/override in non-c++0x mode, and - add __final for non-c++0x mode. - * cp-tree.h (cpp0x_warn_str): Add CPP0X_OVERRIDE_CONTROLS. - * error.c (maybe_warn_cpp0x): Adjust. - * parser.c (cp_parser_virt_specifier_seq_opt): Use it. Add - '__final' as a non-c++0x alternative for 'final'. - -2011-07-22 Jason Merrill - Mark Glisse - - PR c++/30112 - * decl.c (cp_finish_decl): Apply pragma redefine_extname in - other namespaces as well. - * name-lookup.c (c_linkage_bindings): Define. - (lookup_extern_c_fun_in_all_ns): Rename from - lookup_extern_c_fun_binding_in_all_ns. Return tree. - (pushdecl_maybe_friend_1): Adjust. Copy DECL_ASSEMBLER_NAME. - -2011-07-20 Jason Merrill - - * parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]= - designated initializer syntax. - * decl.c (check_array_designated_initializer): Add index parm. - (maybe_deduce_size_from_array_init): Pass it. - (reshape_init_array_1): Likewise. - - PR c++/6709 (DR 743) - PR c++/42603 (DR 950) - * parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New. - (cp_parser_nested_name_specifier_opt): Allow decltype. - (cp_parser_qualifying_entity): Likewise. - (cp_parser_decltype): Replace source tokens with CPP_DECLTYPE. - (cp_parser_simple_type_specifier): Handle decltype as scope. - (cp_parser_base_specifier): Allow decltype. - (cp_parser_base_clause): Don't crash on null base. - * parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h. - (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise. - -2011-07-19 Jason Merrill - - PR c++/49785 - * pt.c (coerce_template_parms): Handle non-pack after pack. - -2011-07-19 Richard Guenther - - * call.c (build_special_member_call): Use fold_build_pointer_plus. - * class.c (build_base_path): Likewise. - (convert_to_base_statically): Likewise. - (dfs_accumulate_vtbl_inits): Likewise. - * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise. - * except.c (expand_start_catch_block): Likewise. - * init.c (expand_virtual_init): Likewise. - (build_new_1): Likewise. - (build_vec_delete_1): Likewise. - (build_vec_delete): Likewise. - * rtti.c (build_headof): Likewise. - (tinfo_base_init): Likewise. - * typeck.c (get_member_function_from_ptrfunc): Likewise. - (cp_build_addr_expr_1): Likewise. - * typeck2.c (build_m_component_ref): Likewise. - -2011-07-18 Martin Jambor - - * parser.c (cp_parser_parameter_declaration_list): Initialize - parenthesized_p. - -2011-07-16 Jason Merrill - - * pt.c (tinst_level_tick, last_template_error_tick): Replace with - last_error_tinst_level. - (push_tinst_level, pop_tinst_level): Adjust. - (problematic_instantiation_changed): Adjust. - (record_last_problematic_instantiation): Adjust. - * error.c (cp_print_error_function): Don't print - current_function_decl if we're in a template instantiation context. - (print_instantiation_full_context): Always print first line. - -2011-07-16 Nathan Froyd - Jason Merrill - - PR c++/45329 - PR c++/48934 - * cp-tree.h (fn_type_unification): Add `bool' parameter. - * pt.c (enum template_base_result): Define. - (unify_success, unify_unknown): Define. - (unify_parameter_deduction_failure): Define. - (unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define. - (unify_parameter_pack_mismatch): Define. - (unify_parameter_pack_inconsistent): Define. - (unify_ptrmem_cst_mismatch, unify_vla_arg): Define. - (unify_expression_unequal, unify_inconsistency): Define. - (unify_method_type_error, unify_arity): Likewise. - (unify_too_many_parameters, unify_too_few_parameters): Define. - (unify_arg_conversion, unify_no_common_base): Define. - (unify_illformed_ptrmem_cst_expr): Define. - (unify_substitution_failure): Define. - (unify_inconsistent_template_template_parameters): Define. - (unify_template_deduction_failure): Define. - (unify_template_argument_mismatch): Define. - (unify_overload_resolution_failure): Define. - (comp_template_args_with_info): New function, split out from... - (comp_template_args): ...here. Call it. - (deduction_tsubst_fntype): Add `complain' parameter'. Pass it - to tsubst. - (unify): Add `explain_p' parameter. Pass to all relevant calls. - Call above status functions when appropriate. - (resolve_overloaded_unification, try_one_overload): Likewise. - (type_unification, type_unification_real): Likewise. - (unify_pack_expansion): Likewise. - (get_template_base, try_class_unification): Likewise. - (get_bindings, more_specialized_fn): Pass false to unification - calls. - (get_class_bindings, do_auto_deduction): Likewise. - (convert_nontype_argument): Likewise. - (fn_type_unification): Likewise. Pass tf_warning_or_error if - explain_p. - (get_template_base): Add `explain_p' parameter and pass it to - try_class_unification. Return an enum template_base_result. - * class.c (resolve_address_of_overloaded_function): Pass false to - fn_type_unification. - * call.c (enum rejection_reason_code): Add new codes. - (struct rejection_reason): Add template_unification field. - Add template_instantiation field. - (template_unification_rejection): Define. - (template_unification_error_rejection): Define. - (template_instantiation_rejection): Define. - (invalid_copy_with_fn_template_rejection): Define. - (add_template_candidate): Pass false to unify. - Provide more rejection reasons when possible. - (print_template_unification_rejection): Define. - (print_arity_rejection): Define, split out from... - (print_z_candidate): ...here. Add cases for new rejection - reasons. - -2011-07-15 Jason Merrill - - * Make-lang.in (check-g++-strict-gc): New. - (cp/except.o): Depend on gt-cp-except.h - * except.c: Include gt-cp-except.h. - * config-lang.in (gtfiles): Add cp/except.c. - * decl2.c (mark_used): Adjust constexpr condition, set - function_depth around template instantiation. - * parser.c (cp_parser_lambda_body): Set function_depth. - * semantics.c (maybe_add_lambda_conv_op): Likewise. - - PR testsuite/49741 - * Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts. - -2011-07-13 Jason Merrill - - * Make-lang.in (check-c++0x): New. - -2011-07-13 Richard Sandiford - - * typeck2.c (split_nonconstant_init_1): Pass the initializer directly, - rather than a pointer to it. Return true if the whole of the value - was initialized by the generated statements. Use - complete_ctor_at_level_p instead of count_type_elements. - -2011-07-12 Diego Novillo - - * name-lookup.h (cp_binding_level): Rename from cxx_scope. - Update all users. - (struct cp_binding_level): Fix indentation. - -2011-07-11 Jason Merrill - - PR c++/49672 - * pt.c (extract_fnparm_pack): Split out from... - (make_fnparm_pack): ...here. - (instantiate_decl): Handle non-pack parms after a pack. - * semantics.c (maybe_add_lambda_conv_op): Don't in a template. - - * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p. - - PR c++/44609 - * cp-tree.h (struct tinst_level): Add errors field. - * pt.c (neglectable_inst_p, limit_bad_template_recurson): New. - (push_tinst_level): Don't start another decl in that case. - (reopen_tinst_level): Adjust errors field. - * decl2.c (cp_write_global_declarations): Don't complain about - undefined inline if its template was defined. - * mangle.c (mangle_decl_string): Handle failure from push_tinst_level. - -2011-07-10 Jason Merrill - - PR c++/49691 - * parser.c (cp_parser_late_return_type_opt): Check quals parameter - rather than current_class_type to determine whether to set 'this'. - (cp_parser_direct_declarator): Pass -1 to quals if member_p is false. - (cp_parser_init_declarator): Pass down member_p. - -2011-07-09 Jason Merrill - - * tree.c (build_vec_init_elt): Strip TARGET_EXPR. - -2011-07-08 Jason Merrill - - PR c++/45437 - * typeck.c (cp_build_modify_expr): Preevaluate RHS. - - * method.c (use_thunk): Use cgraph_add_to_same_comdat_group. - * optimize.c (maybe_clone_body): Likewise. - * semantics.c (maybe_add_lambda_conv_op): Likewise. - - PR c++/45603 - * decl.c (expand_static_init): Don't get confused by user - declaration of __cxa_guard_acquire. - - * typeck.c (cp_apply_type_quals_to_decl): Don't check - COMPLETE_TYPE_P either. - - PR c++/49673 - * typeck.c (cp_apply_type_quals_to_decl): Don't check - TYPE_NEEDS_CONSTRUCTING. - -2011-07-07 Jason Merrill - - PR c++/49663 - * pt.c (push_deduction_access_scope): Preserve - processing_template_decl across push_to_top_level. - And revert: - * class.c (pushclass): Accept NULL argument. - (popclass): Deal with popping null class. - * pt.c (push_access_scope, pop_access_scope): Use them rather than - push_to_top_level/pop_from_top_level. - * name-lookup.c (lookup_name_real_1): Check current_class_type. - -2011-07-07 Jakub Jelinek - - PR c/49644 - * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with - one non-complex and one complex argument, call save_expr on both - operands. - -2011-07-06 Jason Merrill - - PR c++/49353 - * semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL - on kept inlines. - - PR c++/49568 - * method.c (make_thunk, use_thunk): Copy DECL_COMDAT. - -2011-07-05 Jason Merrill - - PR c++/48157 - * pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in - partial instantiation. - - PR c++/49598 - * semantics.c (finish_id_expression): convert_from_reference. - -2011-07-05 Richard Guenther - - * decl.c (cxx_init_decl_processing): Defer building common - tree nodes to c_common_nodes_and_builtins. - -2011-07-04 Jason Merrill - - DR 1207 - PR c++/49589 - * mangle.c (write_expression): Handle 'this'. - * parser.c (cp_parser_postfix_dot_deref_expression): Allow - incomplete *this. - * semantics.c (potential_constant_expression_1): Check that - DECL_CONTEXT is set on 'this'. - - * error.c (dump_template_bindings): Don't print typenames - for a partial instantiation. - (dump_function_decl): If we aren't printing function arguments, - print template arguments as rather than [with ...]. - (dump_expr): Don't print return type or template header. - [BASELINK]: Use BASELINK_FUNCTIONS rather than get_first_fn. - * pt.c (dependent_template_arg_p): Handle null arg. - - * error.c (type_to_string): Avoid redundant akas. - -2011-07-01 Jonathan Wakely - - PR c++/49605 - * init.c (build_delete): Only warn for sfk_deleting_destructor. - -2011-07-01 Jakub Jelinek - - * Make-lang.in (cp/decl.o): Depend on pointer-set.h. - (cp/class.o): Likewise. - (cp/error.o): Likewise. - (cp/name-lookup.o): Likewise. - (cp/decl2.o): Likewise. Don't depend on $(POINTER_SET_H). - -2011-07-01 Jason Merrill - - PR c++/48261 - * pt.c (lookup_template_function): Handle non-function. - - PR c++/48593 - * pt.c (tsubst_qualified_id): Check PTRMEM_OK_P. - * tree.c (build_qualified_name): Set PTRMEM_OK_P. - * semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on - SCOPE_REF, too. - * cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too. - (QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1. - - PR c++/48883 - PR c++/49609 - * pt.c (resolve_nondeduced_context): Call mark_used. - - PR c++/49085 - * semantics.c (finish_offsetof): Complain about incomplete type. - -2011-06-30 Jason Merrill - - PR c++/49387 - * rtti.c (get_tinfo_decl): Call complete_type. - - PR c++/49569 - * method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and - DECL_PARM_INDEX on rhs parm. - - * pt.c (iterative_hash_template_arg): Use cp_tree_operand_length. - - PR c++/49355 - * tree.c (stabilize_init): Handle aggregate initialization. - - PR c++/48481 - * name-lookup.c (struct arg_lookup): Add fn_set. - (add_function): Check it. - (lookup_arg_dependent_1): Initialize it. - -2011-06-29 Jason Merrill - - PR c++/49216 - * init.c (build_new_1): Pass {} down to build_vec_init. - (build_vec_init): Handle it. - - DR 1207 - PR c++/49003 - * cp-tree.h (struct saved_scope): Add x_current_class_ptr, - x_current_class_ref. - (current_class_ptr, current_class_ref): Use them. - * decl.c (build_this_parm): Handle getting the class type. - * parser.c (cp_parser_late_return_type_opt): Set up 'this' - for use within the trailing return type. - - * pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand, - don't tsubst DECL_INITIAL unless our type use auto. - - PR c++/49520 - * semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here. - (massage_constexpr_body): Not here. - - PR c++/49554 - * semantics.c (lambda_proxy_type): New. - (build_capture_proxy): Use it. - * cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New. - * pt.c (tsubst) [DECLTYPE_TYPE]: Use them. - - PR c++/45923 - * class.c (explain_non_literal_class): New. - (finalize_literal_type_property): Call it. - * cp-tree.h: Declare it. - * semantics.c (ensure_literal_type_for_constexpr_object): Call it. - (is_valid_constexpr_fn): Likewise. - (massage_constexpr_body): Split out from... - (register_constexpr_fundef): ...here. - (is_instantiation_of_constexpr): New. - (expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case. - (explain_invalid_constexpr_fn): New. - (cxx_eval_call_expression): Call it. - (potential_constant_expression_1): Likewise. Avoid redundant errors. - * method.c (process_subob_fn): Diagnose non-constexpr. - (walk_field_subobs): Likewise. - (synthesized_method_walk): Don't shortcut if we want diagnostics. - (explain_implicit_non_constexpr): New. - (defaulted_late_check): Use it. - * call.c (build_cxx_call): Remember location. - - * method.c (maybe_explain_implicit_delete): Use pointer_set - instead of htab. - - * class.c (finalize_literal_type_property): Update conditions. - * method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR. - - * tree.c (build_vec_init_expr): Don't add TARGET_EXPR. - * typeck2.c (digest_init_r): Handle VEC_INIT_EXPR. - * semantics.c (cxx_eval_vec_init_1): Correct type. - - * init.c (build_value_init): Decide whether or not to zero-initialize - based on user-providedness of default ctor, not any ctor. - (build_value_init_noctor): Adjust assert. - - DR 990 - * call.c (convert_like_real) [ck_user]: Handle value-initialization. - (build_new_method_call_1): Likewise. - * init.c (expand_default_init): Handle direct list-initialization - of aggregates. - -2011-06-27 Jakub Jelinek - - * cp-tree.h (union lang_tree_node): Use it in chain_next expression. - -2011-06-26 Jason Merrill - - PR c++/49528 - * semantics.c (potential_constant_expression_1): Check - for non-literality rather than cleanup. - (cxx_eval_constant_expression): Likewise. - - PR c++/49528 - * semantics.c (potential_constant_expression_1): A TARGET_EXPR - with a cleanup isn't constant. - (cxx_eval_constant_expression): Likewise. - * init.c (expand_default_init): Use maybe_constant_init. - -2011-06-24 Jakub Jelinek - - PR c++/46400 - * cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT - instead of TYPE_CHAIN for chain_next for types. - -2011-06-23 Gabriel Charette - - * name-lookup.h (cp_binding_level): Removed unused - member names_size. Update all users. - -2011-06-23 Jason Merrill - - * typeck2.c (build_functional_cast): Strip cv-quals for value init. - * init.c (build_zero_init_1): Not here. - - PR c++/35255 - * pt.c (resolve_overloaded_unification): Fix DR 115 handling. - -2011-06-23 Paolo Carlini - - PR c++/44625 - * decl2.c (build_anon_union_vars): Early return error_mark_node - for a nested anonymous struct. - -2011-06-23 Jason Merrill - - PR c++/49507 - * decl2.c (mark_used): Don't call synthesize_method for - functions defaulted outside the class. - - * optimize.c (maybe_clone_body): Set linkage flags before - cgraph_same_body_alias. - - PR c++/49440 - * class.c (set_linkage_according_to_type): Hand off to - determine_visibility. - - PR c++/49395 - * init.c (build_zero_init_1): Strip cv-quals from scalar types. - - PR c++/36435 - * pt.c (most_specialized_instantiation): Do check return types. - -2011-06-22 Jason Merrill - - PR c++/49260 - * call.c (build_call_a): Set cp_function_chain->can_throw here. - (build_cxx_call): Not here. - -2011-06-21 Jason Merrill - - PR c++/49172 - * decl.c (cp_finish_decl): Adjust init_const_expr_p for refs. - (grokdeclarator): constexpr doesn't apply const for refs. - * parser.c (cp_parser_initializer_clause): Don't call - maybe_constant_value here. - * call.c (initialize_reference): Handle constexpr. - - PR c++/49482 - * semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for - static fn parameters. - - * call.c (add_builtin_candidates): Use cv_unqualified rather than - TYPE_MAIN_VARIANT. - * pt.c (tsubst_arg_types): Likewise. - * except.c (build_throw): Use cv_unqualified. - - PR c++/49418 - * call.c (cxx_type_promotes_to): Don't strip cv-quals. - * semantics.c (lambda_return_type): Strip them here. - -2011-06-21 Andrew MacLeod - - * semantics.c: Add sync_ or SYNC__ to builtin names. - -2011-06-20 Jason Merrill - - PR c++/49216 - * init.c (build_vec_init): Don't try to use a CONSTRUCTOR when - base is a pointer. - * typeck2.c (process_init_constructor_array): Use {} for classes, - too. - * call.c (convert_like_real): Handle substitution failure. - - PR c++/48138 - * pt.c (canonicalize_type_argument): New. - (convert_template_argument, unify): Use it. - - PR c++/47080 - * call.c (rejection_reason_code): Add rr_explicit_conversion. - (print_z_candidate): Handle it. - (explicit_conversion_rejection): New. - (build_user_type_conversion_1): Reject an explicit conversion - function that requires more than a qualification conversion. - - PR c++/47635 - * decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE. - - PR c++/48138 - * tree.c (strip_typedefs): Use build_aligned_type. - - PR c++/49205 - * call.c (sufficient_parms_p): Allow parameter packs too. - - PR c++/43321 - * semantics.c (describable_type): Remove. - * cp-tree.h: Likewise. - * decl.c (cp_finish_decl): Don't call it. - * init.c (build_new): Likewise. - * parser.c (cp_parser_omp_for_loop): Likewise. - * pt.c (tsubst_decl): Likewise. - (do_auto_deduction): If we fail in a template, try again - at instantiation time. - - PR c++/43831 - * parser.c (cp_parser_lambda_introducer): Complain about redundant - captures. - * semantics.c (add_capture): Likewise. - (register_capture_members): Clear IDENTIFIER_MARKED. - -2011-06-17 Jason Merrill - - PR c++/49458 - * call.c (convert_class_to_reference_1): Allow binding function - lvalue to rvalue reference. - - PR c++/43912 - Generate proxy VAR_DECLs for better lambda debug info. - * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator(). - (LAMBDA_EXPR_PENDING_PROXIES): New. - (struct tree_lambda_expr): Add pending_proxies. - * name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing. - (qualify_lookup): Use is_lambda_ignored_entity. - * parser.c (cp_parser_lambda_expression): Don't adjust field names. - Call insert_pending_capture_proxies. - (cp_parser_lambda_introducer): Use this_identifier. - (cp_parser_lambda_declarator_opt): Call the object parameter - of the op() "__closure" instead of "this". - (cp_parser_lambda_body): Call build_capture_proxy. - * semantics.c (build_capture_proxy, is_lambda_ignored_entity): New. - (insert_pending_capture_proxies, insert_capture_proxy): New. - (is_normal_capture_proxy, is_capture_proxy): New. - (add_capture): Add __ to field names here, return capture proxy. - (add_default_capture): Use this_identifier, adjust to expect - add_capture to return a capture proxy. - (outer_lambda_capture_p, thisify_lambda_field): Remove. - (finish_id_expression, lambda_expr_this_capture): Adjust. - (build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES. - * pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES - is null. - - * name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing - of artificial locals. - - * parser.c (cp_parser_lambda_expression): Clear - LAMBDA_EXPR_THIS_CAPTURE after parsing. - * pt.c (tsubst_copy_and_build): Make sure it isn't set. - - * cp-tree.h (struct tree_lambda_expr): Change common to typed. - Move non-pointers to end of struct. - - * pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference. - * decl.c (check_initializer): Handle DECL_VALUE_EXPR_P. - - * semantics.c (finish_non_static_data_member): Preserve dereference - in template. - -2011-06-16 Jason Merrill - - PR c++/44160 - * parser.c (cp_parser_lambda_body): Share code between - simple and complex cases instead of using cp_parser_function_body. - - PR c++/45378 - * decl.c (check_initializer): Check narrowing. - - PR c++/49229 - * pt.c (tsubst_decl) [FUNCTION_DECL]: Handle substitution failure. - - PR c++/49251 - * semantics.c (finish_id_expression): Mark even dependent - variables as used. - - PR c++/49420 - * error.c (dump_template_argument): Don't try to omit default - template args from an argument pack. - -2011-06-15 H.J. Lu - - PR c++/49412 - * decl.c (get_dso_handle_node): Mark __dso_handle hidden if - assembler supports hidden visibility. - -2011-06-14 Jason Merrill - - PR c++/49107 - * cp-tree.h (DEFERRED_NOEXCEPT_SPEC_P): Handle overload. - * method.c (defaulted_late_check): Only maybe_instantiate_noexcept - if the declaration had an exception-specifier. - (process_subob_fn): Don't maybe_instantiate_noexcept. - * pt.c (maybe_instantiate_noexcept): Handle overload. - * typeck2.c (nothrow_spec_p_uninst): New. - (merge_exception_specifiers): Add 'fn' parm. Build up overload. - * typeck.c (merge_types): Adjust. - - * pt.c (deduction_tsubst_fntype): Don't save input_location. - (maybe_instantiate_noexcept): Likewise. - -2011-06-14 Joseph Myers - - * Make-lang.in (cp/method.o): Update dependencies. - * method.c: Include common/common-target.h. - (use_thunk): Use targetm_common.have_named_sections. - -2011-06-14 Steve Ellcey - - * decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode. - -2011-06-14 Jason Merrill - - * error.c (type_to_string): Print typedef-stripped version too. - - PR c++/49117 - * call.c (perform_implicit_conversion_flags): Print source type as - well as expression. - - PR c++/49389 - * typeck2.c (build_m_component_ref): Preserve rvalueness. - - PR c++/49369 - * class.c (build_base_path): Fix cv-quals in unevaluated context. - - PR c++/49290 - * semantics.c (cxx_fold_indirect_ref): Local, more permissive copy - of fold_indirect_ref_1. - (cxx_eval_indirect_ref): Use it. - -2011-06-11 Jan Hubicka - - * decl2.c (cp_write_global_declarations): Process aliases; look trhough - same body aliases. - -2011-06-10 Paolo Carlini - - PR c++/41769 - * decl.c (grokdeclarator): Reject operator names in parameters. - -2011-06-10 Jan Hubicka - - * decl2.c (clear_decl_external): New functoin. - (cp_write_global_declarations): Use it. - -2011-06-10 Paolo Carlini - - * cp-tree.h (error_operand_p): Remove. - -2011-06-09 David Krauss - - PR c++/49118 - * typeck2.c (build_x_arrow): Push fake template context - to produce diagnostic on acyclic endless operator-> drill-down. - * call.c (build_new_op): Change Boolean overload status - value to a pointer to the overload function. - * cp-tree.h: Likewise. - * typeck.c: Likewise. - * parser.c: Likewise. - * decl2.c: Likewise. - * pt.c: Likewise. - -2011-06-09 Jason Merrill - - * semantics.c (maybe_constant_value): Handle overflowed input. - (non_const_var_error): Handle non-constant DECL_INITIAL. - - * pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae. - - * parser.c (cp_parser_constant_expression): Just return the - non-constant expression. - - * semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR. - -2011-06-09 Paolo Carlini - - PR c++/29003 - * decl.c (grokdeclarator): Reject operator names in typedefs. - -2011-06-08 Jason Merrill - - PR c++/49107 - * cp-tree.def (DEFERRED_NOEXCEPT): New. - * cp-tree.h (struct tree_deferred_noexcept): New. - (DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New. - (DEFERRED_NOEXCEPT_SPEC_P): New. - (enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT. - (union lang_tree_node): Add tree_deferred_noexcept. - (maybe_instantiate_noexcept): Declare. - * cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT. - * error.c (dump_exception_spec): Likewise. - * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise. - * ptree.c (cxx_print_xnode): Likewise. - * tree.c (cp_tree_equal): Likewise. - * decl.c (cp_tree_node_structure): Likewise. - (duplicate_decls): Call maybe_instantiate_noexcept. - * except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT. - (nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check - DEFERRED_NOEXCEPT_SPEC_P. - * typeck2.c (merge_exception_specifiers): Likewise. - * decl2.c (mark_used): Call maybe_instantiate_noexcept. - * method.c (process_subob_fn, defaulted_late_check): Likewise. - * pt.c (tsubst_exception_specification): Add defer_ok parm. - Build DEFERRED_NOEXCEPT. - (maybe_instantiate_noexcept): New. - (tsubst, regenerate_decl_from_template, instantiate_decl): Adjust. - * search.c (check_final_overrider): Call maybe_instantiate_noexcept. - - * semantics.c (potential_constant_expression_1): Handle destructor - call. - -2011-06-08 Jakub Jelinek - - * cp-tree.h (struct tinst_level): Add chain_next GTY - markup. - -2011-06-08 Jason Merrill - - PR c++/49322 - * pt.c (deduction_tsubst_fntype): Don't free the tinst entry - if a pending_template entry is pointing at it. - -2011-06-07 Jason Merrill - - PR c++/48969 - PR c++/44175 - * error.c (subst_to_string): New. - (cp_printer): Use it for 'S'. - (print_instantiation_partial_context_line): Handle subst context. - * pt.c (push_tinst_level): Handle subst context. - (deduction_tsubst_fntype): Don't track specific substitutions. - Use push_tinst_level. - - * pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope. - (fn_type_unification): Don't call push_deduction_access_scope here. - -2011-06-06 Jason Merrill - - PR c++/48780 - * typeck.c (perform_integral_promotions): Don't promote scoped enums. - * call.c (convert_arg_to_ellipsis): Promote them here in old ABI. - -2011-06-06 Nicola Pero , - - PR obj-c++/48275 - * parser.c (cp_parser_objc_at_property_declaration): Allow setter - and getter names to use all the allowed method names. - -2011-06-06 Jason Merrill - - PR c++/49298 - * semantics.c (potential_constant_expression_1): Handle FIELD_DECL. - - PR objc++/49221 - * decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than - at_function_scope_p. - - PR c++/49134 - * tree.c (build_target_expr): Deal with ARM ABI tweaks. - -2011-06-04 Jonathan Wakely - - * init.c (build_delete): Warn when deleting type with non-virtual - destructor. - -2011-06-03 Jakub Jelinek - - PR c++/49276 - * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of - DECL_CONTEXT. - -2011-06-01 Jason Merrill - - * pt.c (build_non_dependent_expr): Remove special handling of - REFERENCE_REF_P. - - PR c++/44175 - * pt.c (template_args_equal): Handle one arg being NULL_TREE. - (deduction_tsubst_fntype): Handle excessive non-infinite recursion. - - PR c++/49253 - * typeck2.c (build_x_arrow): Don't use build_min_nt. - -2010-05-31 Fabien Chêne - - PR c++/48010 - * name-lookup.c (supplement_binding_1): If the old binding was a - type name, also check that the DECL actually refers to the same - type or is not a type. - -2011-05-31 Jason Merrill - - PR c++/44870 - * tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR. Handle - ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions. - (build_min_non_dep): Preserve reference refs. - (build_min_non_dep_call_vec): Likewise - -2011-05-30 Jakub Jelinek - - PR c++/49223 - * semantics.c (finish_omp_clauses): Call require_complete_type - even for copyin/copyprivate clauses. Only call - cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P. - -2011-05-28 Jason Merrill - - PR c++/46124 - * parser.c (cp_parser_lambda_expression): Improve error recovery. - (cp_parser_lambda_declarator_opt): Likewise. Return bool. - -2011-05-27 Jason Merrill - - PR c++/47277 - * parser.c (cp_parser_pseudo_destructor_name): Commit to parse - after we see the ~. - - * mangle.c (mangle_decl_string): Make sure we don't try to mangle - templates. - - PR c++/47049 - * semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing. - * decl.c (start_preparsed_function): Don't call comdat_linkage for - a template. - - PR c++/47132 - * mangle.c (write_expression): Handle MODOP_EXPR. - - PR c++/47277 - * parser.c (cp_parser_unqualified_id): Don't check - constructor_name_p for enums. - - PR c++/47687 - * pt.c (dependent_type_p_r): Avoid infinite recursion. - - PR c++/48284 - * error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot - with INDIRECT_REF of REFERENCE_TYPE. - - PR c++/49181 - * pt.c (get_mostly_instantiated_function_type): Use push_access_scope. - -2011-05-27 Nathan Froyd - - * cp-tree.h (building_stmt_tree): Delete. - * decl.c (save_function_data): Tweak initializer for x_cur_stmt_list. - (build_aggr_init_full_exprs): Call building_stmt_list_p - instead of building_stmt_tree. - (initialize_local_var): Likewise. - (finish_function): Likewise. - * decl2.c (finish_anon_union): Likewise. - * init.c (begin_init_stmts): Likewise. - (finish_init_stmts): Likewise. - (expand_aggr_init_1): Likewise. - * name-lookup.c (do_local_using_decl): Likewise. - (do_namespace_alias): Likewise. - (do_using_directive): Likewise. - (cp_emit_debug_info_for_using): Likewise. - * semantics.c (add_stmt): Assert that stmt_list_stack is non-empty. - -2011-05-27 Paolo Carlini - - PR c++/42056 - * typeck2.c (build_functional_cast): Complain early for invalid uses - of 'auto' and set type to error_mark_node. - -2011-05-26 Jason Merrill - - PR c++/47721 - * parser.c (cp_parser_member_declaration): Allow friend T. - * friend.c (make_friend_class): Ignore non-classes. - * pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM. - - DR 1004 - * pt.c (convert_template_argument): Don't complain about using - injected-class-name as template template argument. - - PR c++/47956 - * decl.c (check_static_variable_definition): Now static. - (cp_finish_decl): Call it here. - (grokdeclarator): Not here. - * pt.c (instantiate_class_template_1): Or here. - * cp-tree.h: Don't declare it. - -2011-05-26 Janis Johnson - Nathan Froyd - - PR c++/2288 - PR c++/18770 - * name-lookup.h (enum scope_kind): Add sk_cond. - * name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local. - Detect and report error for redeclaration from for-init or if - or switch condition. - (begin_scope): Handle sk_cond. - * semantics.c (begin_if_stmt): Use sk_cond. - (begin switch_stmt): Ditto. - -2011-05-26 Jason Merrill - - PR c++/48211 - * name-lookup.h (cp_class_binding): Make base a pointer. - * name-lookup.c (new_class_binding): Adjust. - (poplevel_class): Adjust. - - PR c++/48424 - * decl.c (grokparms): Function parameter packs don't need to - go at the end. - * pt.c (type_unification_real): But they aren't deduced otherwise. - -2011-05-25 Jason Merrill - - PR c++/48536 - * decl.c (build_enumerator): If incremented enumerator won't fit in - previous integral type, find one it will fit in. - - PR c++/48599 - * decl.c (create_array_type_for_decl): Complain about array of auto. - - PR c++/44994 - PR c++/49156 - * error.c (dump_template_bindings): Set processing_template_decl - for a partial instantiation. - - PR c++/45401 - * decl.c (grokdeclarator): Don't change type when adding rvalue ref - to another reference type. - - PR c++/44311 - * decl.c (case_conversion): New. - (finish_case_label): Use it. - - * ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT. - - PR c++/45698 - * pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT. - - PR c++/46005 - * decl.c (grokdeclarator): Complain about auto typedef. - - PR c++/46245 - * decl.c (grokdeclarator): Complain later for auto parameter. - * pt.c (splice_late_return_type): Handle use in a template - type-parameter. - - PR c++/46696 - * typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN. - - PR c++/47184 - * parser.c (cp_parser_parameter_declaration): Recognize - list-initialization. - (cp_parser_direct_declarator): Check for the closing - paren before parsing definitely. - - PR c++/48935 - * parser.c (cp_parser_constructor_declarator_p): Don't check - constructor_name_p for enums. - (cp_parser_diagnose_invalid_type_name): Correct error message. - - PR c++/45418 - * init.c (perform_member_init): Handle list-initialization - of array of non-trivial class type. - - PR c++/45080 - * pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op. - * semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P. - - PR c++/48292 - * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of - function parameter pack. - (tsubst_pack_expansion): Likewise. - - * cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has - TS_COMMON. - -2011-05-25 Jakub Jelinek - - * cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER - as TS_TYPED. - - PR c++/49136 - * semantics.c (cxx_eval_bit_field_ref): Handle the - case when BIT_FIELD_REF doesn't cover only a single field. - -2011-05-24 Jason Merrill - - PR c++/49042 - * pt.c (get_mostly_instantiated_function_type): Use - push_deferring_access_checks rather than set flag_access_control. - -2011-05-24 Nicola Pero , - - * parser.c (cp_parser_objc_class_ivars): Deal gracefully with a - syntax error in declaring an ObjC instance variable. - -2011-05-24 Jason Merrill - - PR c++/48884 - * class.c (pushclass): Accept NULL argument. - (popclass): Deal with popping null class. - * pt.c (push_access_scope, pop_access_scope): Use them rather than - push_to_top_level/pop_from_top_level. - (push_deduction_access_scope, pop_defarg_context): New. - (fn_type_unification): Use them. - * name-lookup.c (lookup_name_real_1): Check current_class_type. - -2011-05-24 Paolo Carlini - - * decl.c (grokdeclarator): Use current_class_name. - -2011-05-24 Joseph Myers - - * Make-lang.in (GXX_OBJS): Remove prefix.o. - (g++$(exeext)): Use libcommon-target.a. - (CXX_C_OBJS): Remove prefix.o. - -2011-05-23 Jason Merrill - - * pt.c (tsubst_copy_and_build): Use current_class_name. - - PR c++/49102 - * call.c (convert_arg_to_ellipsis): Call force_rvalue. - - PR c++/49105 - * typeck.c (cp_build_c_cast): Don't strip cv-quals when - converting to reference. - (build_static_cast_1): Update for glvalues. - - PR c++/49105 - * typeck.c (build_const_cast_1): Handle rvalue references. - - PR c++/47263 - * decl.c (use_eh_spec_block): Do use an EH spec block for a - lambda op(). - - PR c++/49058 - * call.c (splice_viable): Be strict in templates. - - PR c++/47336 - * error.c (dump_template_bindings): Suppress access control. - - PR c++/47544 - * pt.c (instantiate_decl): Handle =default. - - PR c++/48617 - * pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE. - -2011-05-23 Nathan Froyd - - * call.c (build_over_call): Tweak call to check_function_arguments. - * typeck.c (cp_build_function_call_vec): Likewise. - -2011-05-23 Jonathan Wakely - - PR c++/18016 - * init.c (perform_member_init): Check for self-initialization. - -2011-05-22 Jason Merrill - - PR c++/48647 - * typeck.c (composite_pointer_type_r): Return error_mark_node - on error in SFINAE context. - -2011-05-20 Jason Merrill - - PR c++/48945 - * decl.c (grokdeclarator): Don't add set const function-cv-qual - for constexpr fns to memfn_quals, just add it to the type. - (revert_static_member_fn): Don't complain about quals. - (check_static_quals): New. - (grokfndecl): Call it. - (start_preparsed_function): Don't call revert_static_member_fn. - - PR c++/48945 - * decl.c (revert_static_member_fn): Ignore const on constexpr fn. - - PR c++/48780 - * cvt.c (type_promotes_to): Don't promote scoped enums. - - PR c++/49066 - * decl.c (duplicate_decls): Preserve DECL_DELETED_FN. - - PR c++/48873 - * tree.c (stabilize_expr): Fix typo. - - DR 1073 - PR c++/49082 - * typeck.c (comp_except_specs): noexcept(false) is not compatible - with throw(type-list). - * typeck2.c (merge_exception_specifiers): noexcept(false) - beats any more limited specification. - - PR c++/24163 - PR c++/29131 - * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating - unqualified lookup. - * semantics.c (perform_koenig_lookup): Add complain parm. - * cp-tree.h: Adjust. - * parser.c (cp_parser_postfix_expression): Adjust. - (cp_parser_perform_range_for_lookup): Adjust. - -2011-05-20 Jason Merrill - - * semantics.c (finish_call_expr): SET_EXPR_LOCATION. - -2011-05-20 Joseph Myers - - * Make-lang.in (GXX_OBJS): Remove intl.o and version.o. - -2011-05-19 Jakub Jelinek - - PR c++/49043 - * decl.c (check_omp_return): Stop searching on sk_function_parms. - - PR c++/48869 - * method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument, - pass it down to locate_fn_flags. - * cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes. - * semantics.c (cxx_omp_create_clause_info): Adjust callers. - * cp-gimplify.c: Include splay-tree.h. - (splay_tree_compare_decl_uid, omp_var_to_track, - omp_cxx_notice_variable): New functions. - (struct cp_genericize_omp_taskreg): New type. - (struct cp_genericize_data): Add omp_ctx field. - (cp_genericize_r): Attempt to determine implicitly determined - firstprivate class type variables. - (cp_genericize): Clear omp_ctx. - * Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H). - -2011-05-18 Jason Merrill - - PR c++/48948 - PR c++/49015 - * class.c (finalize_literal_type_property): Do check - for constexpr member functions of non-literal class. - (finish_struct): Don't call check_deferred_constexpr_decls. - * cp-tree.h: Don't declare it. - (DECL_DEFERRED_CONSTEXPR_CHECK): Remove. - * decl.c (grok_special_member_properties): Don't check it - (grokfnedcl): Don't call validate_constexpr_fundecl. - (start_preparsed_function): Do call it. - * pt.c (tsubst_decl): Don't call it. - (instantiate_class_template_1): Don't call - check_deferred_constexpr_decls. - * semantics.c (literal_type_p): Check for any incompleteness. - (ensure_literal_type_for_constexpr_object): Likewise. - (is_valid_constexpr_fn): Revert deferral changes. - (validate_constexpr_fundecl): Likewise. - (register_constexpr_fundef): Likewise. - (check_deferred_constexpr_decls): Remove. - -2011-05-16 Jason Merrill - - PR c++/48969 - * pt.c (deduction_tsubst_fntype): Use a VEC initially. - -2011-05-15 Paolo Carlini - - * cxx-pretty-print.c: Update comment. - * semantics.c (trait_expr_value, finish_trait_expr): - Reorder the cases. - * parser.c (cp_parser_primary_expression): Likewise. - -2011-05-15 Jonathan Wakely - - PR c++/48994 - * parser.c (cp_parser_perform_range_for_lookup): Call complete_type. - -2011-05-13 Ville Voutilainen - - Implement final on class. - * class.c (check_bases): Diagnose derivation from a final class. - * cp-tree.h (lang_type_class): Add is_final and adjust dummy. - (CLASSTYPE_FINAL): New. - * parser.c (cp_parser_class_head): Parse class-virt-specifier, set - CLASSTYPE_FINAL. - * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL. - -2011-05-13 Jason Merrill - - PR c++/48969 - * pt.c (deduction_tsubst_fntype): New. - (fn_type_unification): Use it. - (init_template_processing): Initialize hash table. - (print_template_statistics): Print hash table stats. - - * call.c (build_op_call): Use timevar_cond_start/stop. - (build_user_type_conversion): Likewise. - -2011-05-12 Jason Merrill - - * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New. - * semantics.c (validate_constexpr_fundecl): Set it. - (check_deferred_constexpr_decls): Clear it. - (register_constexpr_fundef): Make sure it isn't set. - * decl.c (grok_special_member_properties): Check it. - -2011-05-11 Jason Merrill - - PR c++/48948 - * semantics.c (validate_constexpr_fundecl): Defer checking if - an argument type is being defined. - (is_valid_constexpr_fn): Add defer_ok parm. - (cxx_eval_call_expression): Adjust. - (check_deferred_constexpr_decls): New. - (literal_type_p): Make sure type isn't being defined. - (ensure_literal_type_for_constexpr_object): Handle type being defined. - * cp-tree.h: Declare check_deferred_constexpr_decls. - * decl.c (grokfndecl): Call validate_constexpr_fundecl here. - (start_preparsed_function, cp_finish_decl): Not here. - * class.c (finalize_literal_type_property): Don't call - validate_constexpr_fundecl. - (finish_struct): Call check_deferred_constexpr_decls. - * pt.c (tsubst_decl): Call validate_constexpr_fundecl. - (instantiate_class_template): Call check_deferred_constexpr_decls. - - * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO - rather than DECL_TEMPLATE_INSTANTIATION. - (cxx_eval_call_expression): Likewise. - - * semantics.c (register_constexpr_fundef): Add to hash table here. - (validate_constexpr_fundecl): Not here. - - * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once. - - * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p, - do call maybe_constant_value in C++0x mode. - * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL. - - PR c++/48745 - * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR. - -2011-05-11 Nathan Froyd - - * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use - TYPE_VALUES_RAW. - (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise. - (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise. - (TEMPLATE_TYPE_PARM_INDEX): Likewise. - -2011-05-10 Jason Merrill - - PR c++/48930 - * class.c (type_build_ctor_call): New. - * cp-tree.h: Declare it. - * decl.c (check_initializer): Use it instead of - TYPE_NEEDS_CONSTRUCTING. - * init.c (build_value_init, build_value_init_noctor): Likewise. - (perform_member_init, expand_aggr_init_1, build_new_1): Likewise. - (build_vec_init): Likewise. - * typeck2.c (process_init_constructor_array): Likewise. - (process_init_constructor_record): Likewise. - - PR c++/48736 - * pt.c (tsubst_copy_and_build): Handle substitution of a pack - expansion producing another expansion. - -2011-05-10 Ville Voutilainen - - Fixes for override/final. - * class.c (check_for_override): Diagnose final on a nonvirtual - member function, diagnose override for a virtual with no matching - override. Don't fiddle around with DECL_VINDEX. - -2011-05-10 Nathan Froyd - - * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand. - * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. - * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new - operand of EXPR_PACK_EXPANSION. - (cp_tree_operand_length): Declare. - * tree.c (cp_tree_operand_length): Define. - (cp_tree_equal): Call it. - * pt.c (value_dependent_expr_P): Likewise. - * mangle.c (write_expression): Likewise. - -2011-05-09 Paolo Carlini - - PR c++/48737 - PR c++/48744 - * decl.c (reshape_init): Take a complain parameter and do - not call error if tf_error is not set. - (check_initializer, reshape_init_r, reshape_init_array, - reshape_init_array_1, reshape_init_vector, reshape_init_class): - Adjust. - * typeck2.c (digest_init_r): Take a complain parameter and - pass it to convert_for_initialization. - (digest_init, digest_init_flags, process_init_constructor_array, - process_init_constructor_record, process_init_constructor_union, - process_init_constructor, digest_init_r): Adjust. - * init.c (expand_default_init, build_new_1): Likewise. - * typeck.c (cp_build_modify_expr): Likewise. - * decl2.c (grokfield): Likewise. - * call.c (convert_like_real, convert_default_arg): Likewise. - * semantics.c (finish_compound_literal): Pass complain to - reshape_init and digest_init. - * cp-tree.h: Adjust declarations. - -2011-05-07 Fabien Chêne - - PR c++/48859 - * init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the - recursion if there is user defined constructor. - -2011-05-09 Jason Merrill - - PR c++/34772 - * decl.c (initialize_local_var): Use DECL_INITIAL for simple - initialization. - -2011-05-08 Ville Voutilainen - - Implement final/override for member functions. - * class.c (check_for_override): Check for DECL_OVERRIDE_P. - * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New. - (cp_virt_specifiers, enum virt_specifier): New. - * decl.c (set_virt_specifiers): New. - (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields. - * parser.c (make_call_declarator): add virt-specifiers parameter. - (cp_parser_lambda_declarator_opt): Adjust. - (cp_parser_direct_declarator): Likewise. - (cp_parser_virt_specifier_seq_opt): New. - * search.c (check_final_overrider): Diagnose attempts to override - a final member function. - -2011-05-09 Dodji Seketeli - - PR c++/48574 - * class.c (fixed_type_or_null): Use type_dependent_p_push to test - if the instance has a dependent initializer. - -2011-05-08 Paolo Carlini - - PR c++/48816 - * cxx-pretty-print.c (pp_cxx_template_declaration): Remove - effectively unused variable. - -2011-05-07 Eric Botcazou - - * name-lookup.h (global_bindings_p): Adjust prototype. - * name-lookup.c (global_bindings_p): Return bool. - -2011-05-06 Jason Merrill - - * decl.c (stabilize_save_expr_r): Set *walk_subtrees as - appropriate. - - PR c++/48909 - * semantics.c (cxx_eval_conditional_expression): Check - integer_zerop instead. - (potential_constant_expression_1): Likewise. - - PR c++/48911 - * semantics.c (cxx_eval_array_reference): Handle implicit - initializers. - -2011-05-06 Nathan Froyd - - * cp-tree.h (type_of_this_parm, class_of_this_parm): New functions. - * call.c (standard_conversion): Call class_of_this_parm. - * cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise. - (pp_cxx_direct_abstract_declarator): Likewise. - * decl2.c (change_return_type): Likewise. - (cp_reconstruct_complex_type): Likewise. - * error.c (dump_type_suffix, dump_function_decl): Likewise. - * mangle.c (write_function_type): Likewise. - * pt.c (unify): Likewise. - * typeck.c (merge_types, type_memfn_quals): Likewise. - * decl.c (build_this_parm): Call type_of_this_parm. - -2011-05-06 Dodji Seketeli - - PR c++/48838 - * cp-tree.h (non_static_member_function_p): Declare new function. - * tree.c (non_static_member_function_p): Define it. - * semantics.c (finish_call_expr): Use it. - -2011-05-05 Nathan Froyd - - * decl.c (finish_case_label): Omit the loc argument to - build_case_label. - -2011-05-05 Jason Merrill - - * cp-tree.h (REFERENCE_REF_P): Just check the type. - * cvt.c (convert_from_reference): Adjust. - * pt.c (build_non_dependent_expr): Adjust. - * semantics.c (finish_offsetof): Adjust. - * tree.c (lvalue_kind): Use it. - - PR c++/48873 - * tree.c (stabilize_expr): Don't make gratuitous copies of classes. - -2011-05-05 Eric Botcazou - - * decl.c (start_preparsed_function): Do not set - dont_save_pending_sizes_p. - -2011-05-05 Joseph Myers - - * parser.c (cp_parser_objc_method_definition_list): Update call to - objc_start_method_definition. - -2011-05-04 Jason Merrill - - PR c++/48749 - * class.c (resolves_to_fixed_type_p): Don't look closely - in templates. - -2011-05-03 Paolo Carlini - - PR c++/28501 - * call.c (add_builtin_candidate): Handle REALPART_EXPR and - IMAGPART_EXPR. - -2011-05-02 Lawrence Crowl - - * decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop. - (poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code. - Change TV_NAME_LOOKUP to start/stop. - (define_label): Refactor timevar calls out to a wrapper function. - Change TV_NAME_LOOKUP to start/stop. - (xref_tag): Likewise. - (lookup_label): Refactor timevar calls out to a wrapper function. - Change TV_NAME_LOOKUP to start_cond/stop_cond. - - * pt.c: (instantiate_class_template): Add a wrapper to push/pop new - TV_TEMPLATE_INST. - (instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST. - (lookup_template_class): Refactor timevar calls out to a wrapper - function. Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST. - (instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST. - - * name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop. - (poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond. - (push_namespace): Likewise. - (pop_nested_namespace): Likewise. - (pushdecl_namespace_level): Likewise. - (store_class_bindings): Likewise. - (push_to_top_level): Likewise. - (identifier_type_value): Refactor timevar calls out to a wrapper - function. Change TV_NAME_LOOKUP to start/stop. - (find_binding): Likewise. - (push_using_decl): Likewise. - (lookup_arg_dependent): Likewise. - (push_using_directive): Likewise. - (qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN - to plain code. Change TV_NAME_LOOKUP to start/stop. - (lookup_type_current_level): Likewise. Refactor inner return to - break. - (pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain - code. Change TV_NAME_LOOKUP to start_cond/stop_cond. - (pushdecl_top_level_1): Likewise. - (lookup_using_namespace): Likewise. - (pushdecl_with_scope): Refactor timevar calls out to a wrapper - function. Change TV_NAME_LOOKUP to start_cond/stop_cond. - (push_overloaded_decl): Likewise. - (push_class_level_binding): Likewise. - (namespace_binding): Likewise. - (set_namespace_binding): Likewise. - (supplement_binding): Likewise. - (unqualified_namespace_lookup): Likewise. - (lookup_name_real): Likewise. - (lookup_type_scope): Likewise. - (namespace_ancestor): Likewise. - (lookup_name_innermost_nonclass_level): Likewise. - (pushtag): Likewise. - (pop_from_top_level): Likewise. - (pushdecl_maybe_friend): Refactor timevar calls out to a wrapper - function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Wrap long - lines. - (add_using_namespace): Refactor timevar calls out to a wrapper - function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Bypass - wrapper on call to self. - - * decl2.c: (cp_write_global_declarations): Add start/stop of - new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO. - Remove push/pop calls to TV_VARCONST. - - * parser.c: Add include of "timevar.h". - (cp_parser_explicit_instantiation): Add push/pop calls to - TV_TEMPLATE_INST. - (cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM. - (cp_parser_class_specifier): Add wrapper to add push/pop calls to - TV_PARSE_STRUCT. - (cp_parser_function_definition_from_specifiers_and_declarator): Add - push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE. - (cp_parser_late_parsing_for_member): Add push/pop calls to - new TV_PARSE_INMETH. - - * call.c: Add include of "timevar.h". - (convert_class_to_reference): Wrap and add push/pop calls to - TV_OVERLOAD. - (build_op_call): Likewise. - (build_conditional_expr): Likewise. - (build_new_op): Likewise. - (build_new_method_call): Likewise. - (build_user_type_conversion): Reorganize to single return and add - push/pop calls to TV_OVERLOAD. - (perform_overload_resolution): Likewise. - - * Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H). - -2011-05-02 Jason Merrill - - * tree.c (build_vec_init_expr): Take complain parm. - (build_vec_init_elt): Likewise. Free arg vector. - (diagnose_non_constexpr_vec_init, build_array_copy): Adjust. - * cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK. - (VEC_INIT_EXPR_INIT): Likewise. - Adjust build_vec_init_expr declaration. - * init.c (perform_member_init): Adjust. - - Revert: - PR c++/40975 - * cp-tree.def (VEC_INIT_EXPR): Add third operand. - * cp-tree.h (VEC_INIT_EXPR_NELTS): New. - * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it. - * tree.c (build_vec_init_expr): Handle getting pointer/nelts. - (build_vec_init_elt): Don't expect an array type. - (build_array_copy): Adjust. - * init.c (perform_member_init): Adjust. - (build_new_1): Use build_vec_init_expr. - - PR c++/48834 - * tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS. - Protect an explicit target. - - PR c++/48446 - * decl.c (stabilize_save_expr_r, stabilize_vla_size): New. - (compute_array_index_type): Revert earlier 48446 changes. - (grokdeclarator): Use stabilize_vla_size. - -2011-05-02 Dmitry Gorbachev - Eric Botcazou - - * parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE - instead of inappropriate zero values. - -2011-05-02 Paolo Carlini - - PR c++/47969 - * decl.c (compute_array_index_type): Check build_expr_type_conversion - return value for NULL_TREE. - -2011-04-29 Paolo Carlini - - PR c++/48606 - * init.c (perform_member_init): Check build_value_init return - value for error_mark_node. - -2011-04-29 Diego Novillo - Le-Chun Wu - - * call.c (conversion_null_warnings): Also handle assignments - when warning about NULL conversions. - -2011-04-29 Le-Chun Wu - - * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define. - * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs. - (build_over_call): Use it to determine whether to emit a NULL - warning for template function instantiations. - (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if - EXPLICIT_TARGS is set. - -2011-04-29 Nicola Pero , - Mike Stump - - * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only - in maintainer mode. Use the --output-file option of gperf instead - of > to prevent creating an empty cp/cfns.h when gperf is not - available. - -2011-04-28 Paolo Carlini - - PR c++/48798 - * semantics.c (finish_base_specifier): cv-qualified base class - is fine, per DR 484. - -2011-04-28 Dodji Seketeli - - PR c++/48656 - * semantics.c (finish_call_expr): Don't forget BASELINK nodes when - considering call expressions involving a member function. - -2011-04-28 Paolo Carlini - - PR c++/48530 - * tree.c (build_cplus_new): Check build_target_expr return - value for error_mark_node. - -2011-04-28 Paolo Carlini - - PR c++/48771 - * semantics.c (literal_type_p): Reference types are literal types, - per the FDIS. - (valid_type_in_constexpr_fundecl_p): Remove. - (is_valid_constexpr_fn): Adjust. - -2011-04-27 Jason Merrill - - PR libstdc++/48760 - Implement list-initialization of _Complex. - * decl.c (reshape_init_r): Allow {real,imag} for _Complex. - (check_initializer): Likewise. - * call.c (build_complex_conv): New. - (implicit_conversion): Call it. - (convert_like_real): Handle it. - * typeck2.c (check_narrowing): Handle it. - - * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to - decide whether to delete. - (build_vec_init): Pass sfk_complete_destructor. - - PR c++/40975 - * cp-tree.def (VEC_INIT_EXPR): Add third operand. - * cp-tree.h (VEC_INIT_EXPR_NELTS): New. - * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it. - * tree.c (build_vec_init_expr): Handle getting pointer/nelts. - (build_vec_init_elt): Don't expect an array type. - (build_array_copy): Adjust. - * init.c (perform_member_init): Adjust. - (build_new_1): Use build_vec_init_expr. - - * class.c (resolve_address_of_overloaded_function): Don't - change OVERLOAD to TREE_LIST. - * pt.c (print_candidates_1): Remove nonsensical assert. - - PR c++/48046 - * parser.c (cp_parser_diagnose_invalid_type_name): Commit - to tentative parse sooner. - -2011-04-26 Jason Merrill - - PR c++/42687 - * parser.c (cp_parser_primary_expression): Set *idk to - CP_ID_KIND_NONE for a parenthesized identifier. - - * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname. - (cxx_print_identifier): Correct indentation. - - PR c++/48530 - * decl.c (cxx_maybe_build_cleanup): Add complain parm. - * tree.c (force_target_expr): Add complain parm. - (build_target_expr_with_type): Likewise. - (get_target_expr_sfinae): Split out. - (build_vec_init_expr, bot_manip): Adjust. - * init.c (build_vec_delete, build_vec_delete_1): Add complain parm. - (build_delete, build_dtor_call): Likewise. - (perform_direct_initialization_if_possible): Adjust. - (build_vec_init): Handle error return. - * cvt.c (force_rvalue): Add complain parm. - Call build_special_member_call directly. - * decl2.c (delete_sanity): Add complain parm. - (build_cleanup): Adjust. - * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust. - * semantics.c (finish_stmt_expr_expr): Adjust. - (finish_compound_literal): Adjust. - * parser.c (cp_parser_delete_expression): Adjust. - * typeck2.c (build_functional_cast): Adjust. - * cp-tree.h: Adjust. - -2011-04-26 Martin Jambor - - * class.c (cp_fold_obj_type_ref): Remove. - * cp-tree.h (cp_fold_obj_type_ref): Remove declaration. - -2011-04-25 Paolo Carlini - - * cp-tree.def: Add a new UNDERLYING_TYPE tree code. - * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy. - (UNDERLYING_TYPE_TYPE): Add. - * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE - as TS_COMMON. - * parser.c (cp_lexer_next_token_is_decl_specifier_keyword, - cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE. - (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy. - * semantics.c (finish_underlying_type): New. - * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE. - * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise. - * cxx-pretty-print.c (p_cxx_type_id): Likewise. - * tree.c (cp_walk_subtrees): Likewise. - * pt.c (for_each_template_parm_r, tsubst, unify, - dependent_type_p_r): Likewise. - * mangle.c (write_type): Sorry for __underlying_type. - -2011-04-25 Jason Merrill - - PR c++/48707 - * decl.c (type_dependent_init_p): New. - (cp_finish_decl): Check it. - * pt.c (any_type_dependent_elements_p): New. - * cp-tree.h: Declare it. - -2011-04-20 Jason Merrill - - * semantics.c (finish_compound_literal): Don't put an array - with a dtor in a static variable. - - * call.c (build_over_call): Handle trivial dtor. - - * search.c (lookup_fnfields_slot): Call complete_type. - - PR c++/48594 - * decl2.c (build_offset_ref_call_from_tree): Move - non-dependency of object outside condition. - - PR c++/48657 - * decl.c (cp_finish_decl): Simplify template handling. - -2011-04-20 Jim Meyering - - * tree.c (cxx_printable_name_internal): Remove useless if-before-free. - -2011-04-19 Jason Merrill - - PR c++/46304 - * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR. - - PR c++/45267 - * decl.c (duplicate_decls): Keep always_inline attribute - in sync with DECL_DISREGARD_INLINE_LIMITS. - -2011-04-18 Jason Merrill - - PR c++/48569 - * typeck2.c (build_functional_cast): Handle VOID_TYPE. - - PR c++/48537 - * init.c (build_value_init): Handle UNION_TYPE the same. - -2011-04-18 Jakub Jelinek - - PR c++/48632 - * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr - for type dependent pointers. - -2011-04-18 Jim Meyering - - * pt.c (type_unification_real): Fix typo in comment: s/in in/in/. - -2011-04-17 Jan Hubicka - - * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed - gotos. - -2011-04-17 Jason Merrill - - PR c++/48531 - * typeck2.c (build_functional_cast): Disallow array type. - - * tree.c (get_target_expr): Handle VEC_INIT_EXPR. - -2011-04-17 Jan Hubicka - - * class.c (cp_fold_obj_type_ref): Drop vtable_method. - -2011-04-15 Rodrigo Rivas Costa - - Implement N3271 - * parser.c (cp_convert_range_for): Split into - cp_parser_perform_range_for_lookup. - (cp_parser_perform_range_for_lookup): New. - (cp_parser_range_for_member_function): New. - (cp_parser_for_init_statement): Correct error message. - * semantics.c (finish_call_expr): Accept COMPONENT_REF. - -2011-04-14 Nicola Pero - - * parser.c (cp_parser_objc_protocol_declaration): Updated for - change from objc_declare_protocols() to objc_declare_protocol(). - -2011-04-14 Nathan Froyd - - PR objc++/48479 - * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable - and return immediately. - -2011-04-14 Nathan Froyd - - * cp-tree.def (SWITCH_STMT): Add an extra operand. - * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. - * cp-tree.h (SWITCH_STMT_SCOPE): Define. - * semantics.c (begin_switch__stmt): Pass scope to build_stmt. - (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN. - -2011-04-14 Nathan Froyd - - * cp-tree.def (IF_STMT): Add an extra operand. - * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. - * cp-tree.h (IF_SCOPE): Define. - * semantics.c (begin_if_stmt): Pass scope to build_stmt. - (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN. - -2011-04-14 Nathan Froyd - - * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand. - * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED. - * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define. - * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt. - Use FOR_SCOPE instead of TREE_CHAIN. - (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE. - (finish_for_stmt): Likewise. - -2011-04-14 Jason Merrill - - * parser.c (cp_parser_postfix_expression): Fix flags passed to - build_new_method_call. - * semantics.c (finish_call_expr): Likewise. - - PR c++/48531 - * init.c (build_value_init_noctor): Check complain consistently. - - PR c++/48557 - * typeck.c (cp_build_binary_op): Don't decay void operands. - - PR c++/48446 - * decl.c (compute_array_index_type): Use get_temp_regvar instead - of variable_size. - * init.c (get_temp_regvar): No longer static. - * cp-tree.h: Declare it. - -2011-04-14 Nicola Pero - - * parser.c (cp_parser_objc_class_declaration): Updated for change - in objc_declare_class(). - -2011-04-14 Nathan Froyd - - * decl.c (poplevel): Use block_chainon. - -2011-04-13 Jason Merrill - - PR c++/48594 - * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor - or pointer to (non-member) function. - -2011-04-13 Jakub Jelinek - - PR c++/48570 - * semantics.c (cxx_eval_array_reference): Handle reading from - wchar_t, char16_t and char32_t STRING_CST. - -2011-04-13 Dodji Seketeli - - PR c++/48574 - * class.c (fixed_type_or_null): We cannot determine the dynamic - type of a reference variable if its initializer is dependent. - -2011-04-13 Jason Merrill - - PR c++/48581 - * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about - unqualified lookup failing if we're still in a template. - -2011-04-12 Nathan Froyd - - * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move - tree_contains_struct initialization to... - * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_* - macros. - * cp-objcp-common.h (cp_common_init_ts): Declare. - * cp-tree.h (union lang_tree_node): Check for TS_COMMON before - calling TREE_CHAIN. - -2011-04-12 Nicola Pero - - * parser.c (cp_parser_objc_message_expression): Updated call - to objc_build_message_expr. - -2011-04-12 Martin Jambor - - * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of - cgraph_get_create_node. - * decl2.c (cp_write_global_declarations): Call cgraph_get_node - instead of cgraph_get_create_node. - * method.c (make_alias_for_thunk): Call cgraph_get_node - instead of cgraph_get_create_node, assert it returns non-NULL. - (use_thunk): Likewise. - * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only - when flag_syntax_only is not set. Call cgraph_get_node instead of - cgraph_get_create_node. - (maybe_clone_body): Call cgraph_get_node instead of - cgraph_get_create_node. - -2011-04-12 Martin Jambor - - * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node - instead of cgraph_node. - * decl2.c (cxx_callgraph_analyze_expr): Likewise. - (cp_write_global_declarations): Likewise. - * optimize.c (maybe_clone_body): Likewise. - * semantics.c (maybe_add_lambda_conv_op): Likewise. - * mangle.c (mangle_decl): Likewise. - * method.c (make_alias_for_thunk): Likewise. - (use_thunk): Likewise. - -2011-04-11 Jason Merrill - - PR c++/48535 - * decl.c (cp_complete_array_type_or_error): New. - * semantics.c (finish_compound_literal): Use it. - * cp-tree.h: Declare it. - - PR c++/48535 - * semantics.c (finish_compound_literal): Handle references. - - PR c++/48535 - * semantics.c (finish_compound_literal): Take complain parm. - (build_lambda_object): Adjust. - * cp-tree.h: Adjust. - * call.c (convert_like_real): Adjust. - * decl.c (check_initializer): Adjust. - * parser.c (cp_parser_postfix_expression): Adjust. - (cp_parser_functional_cast): Adjust. - * pt.c (tsubst_copy_and_build): Adjust. - * typeck2.c (process_init_constructor_record): Adjust. - - PR c++/48534 - * cvt.c (ocp_convert): Use build_nop to convert to underlying type - of scoped enum. - - PR c++/48523 - * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather - than cp_build_indirect_ref. - - PR c++/48457, Core 1238 - * call.c (reference_binding): Allow rvalue reference to bind to - function lvalue. - * tree.c (lvalue_kind): Functions are always lvalues. - -2011-04-07 Jason Merrill - - PR c++/48500 - * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check - arguments even if we don't know the function. - - PR c++/48481 - * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL - at the end of the chain. - * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT. - (iterative_hash_template_arg): Likewise. - - PR c++/48481 - * cp-tree.h (OVL_ARG_DEPENDENT): New. - * name-lookup.c (add_function): Set it. - * semantics.c (finish_call_expr): Free OVERLOADs if it's set. - - PR c++/48481 - * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot. - Release unused vector. - - PR c++/48451 - * pt.c (fn_type_unification): Don't clear incomplete pack flag. - (type_unification_real): Clear it here instead. - - PR c++/48468 - * except.c (build_noexcept_spec): Propagate error_mark_node. - (finish_noexcept_expr): Likewise. - - PR c++/48452 - * typeck.c (build_x_compound_expr_from_list): Return error_mark_node - in SFINAE context. - - PR c++/48450 - * call.c (resolve_args): Take complain. - (build_new_function_call, build_operator_new_call): Pass it. - (build_op_call, build_new_op, build_new_method_call): Pass it. - - PR c++/48450 - * typeck.c (check_for_casting_away_constness): Take complain. - (build_static_cast_1, build_reinterpret_cast_1): Pass it. - (build_const_cast_1): Pass it. Take full complain parm. - (build_const_cast, cp_build_c_cast): Adjust. - - * tree.c (build_aggr_init_expr): Always return error_mark_node - on abstract violation. - - PR c++/48450 - * tree.c (build_cplus_new, build_aggr_init_expr): Take complain. - (bot_manip): Adjust. - * cp-tree.h: Adjust. - * call.c (convert_like_real, build_cxx_call): Adjust. - (perform_direct_initialization_if_possible): Adjust. - * cvt.c (ocp_convert): Adjust. - * init.c (build_value_init): Adjust. - * semantics.c (maybe_add_lambda_conv_op): Adjust. - * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust. - * typeck2.c (build_functional_cast): Adjust. - - * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top - level. - (perform_member_init): Not here. - * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special - case to templates. - (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case. - - PR c++/48449 - * typeck2.c (build_functional_cast): Check complain consistently. - Use build_value_init and abstract_virtuals_error_sfinae. - (abstract_virtuals_error_sfinae): Split out. - * cp-tree.h: Declare it. - * init.c (build_new_1): Use it. - (build_value_init_noctor): Handle FUNCTION_TYPE. - - * semantics.c (finish_decltype_type): Simplify handling of unknown - type. - - * semantics.c (finish_decltype_type): Add complain parm. - * cp-tree.h: Adjust. - * parser.c (cp_parser_decltype): Adjust. - * pt.c (tsubst): Adjust. - - PR c++/48450 - * cvt.c (ocp_convert): Handle converting scoped enum to bool. - -2011-03-31 Jason Merrill - - PR c++/48277 - * semantics.c (finish_call_expr): Remove assert. - - PR c++/48280 - * method.c (defaultable_fn_check): Templates are not defaultable. - - * parser.c (cp_parser_init_declarator): Avoid redundant - cp_finish_decl for member declarations. - -2011-03-30 Jason Merrill - - PR c++/48212 - * semantics.c (non_const_var_error): Just return if DECL_INITIAL - is error_mark_node. - -2011-03-30 Jason Merrill - - PR c++/48369 - * semantics.c (potential_constant_expression_1): Handle - UNORDERED_EXPR and ORDERED_EXPR. - - PR c++/48281 - * semantics.c (finish_compound_literal): Do put static/constant - arrays in static variables. - - * call.c (convert_like_real) [ck_list]: Build up the - initializer_list object directly. - * decl.c (build_init_list_var_init): Adjust. - - * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR. - * decl.c (reshape_init_array_1): Likewise. - -2011-03-29 Jason Merrill - - PR c++/48265 - * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure - the variable is constant before looking at its initializer. - - PR c++/48319 - * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR. - - PR c++/48089 - * semantics.c (potential_constant_expression_1): Change error about - use of *this in constructor into sorry. - - PR c++/48296 - * decl.c (cp_finish_decl): Defer validation of constexpr member - functions. - * class.c (finalize_literal_type_property): Validate them here. - * semantics.c (is_valid_constexpr_fn): Don't check completeness. - - * semantics.c (is_valid_constexpr_fn): Specify input location. - -2011-03-28 Jason Merrill - - PR c++/48313 - * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction - from overloaded function. - - Core 1232 - * call.c (build_array_conv): New. - (implicit_conversion): Use it. - - * call.c (reference_binding): Allow direct binding to an array - rvalue. - - Core 898 - * parser.c (cp_parser_compound_statement): Add function_body parm. - Complain about non-body compound-stmt in constexpr fn. - (cp_parser_primary_expression, cp_parser_statement): Adjust. - (cp_parser_implicitly_scoped_statement): Adjust. - (cp_parser_function_body, cp_parser_try_block): Adjust. - (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust. - (cp_parser_objc_try_catch_finally_statement): Adjust. - - Core 898 - * semantics.c (constexpr_fn_retval): New. Allow using-declaration - and using-definition. - (register_constexpr_fundef): Call it. - - * except.c (build_noexcept_spec): Call cxx_constant_value after - converting to bool. - -2011-03-25 Kai Tietz - - * lex.c (interface_strcmp): Handle dos-paths. - (handle_pragma_implementation): Use filename_cmp instead of - strcmp. - (in_main_input_context): Likewise. - -2011-03-25 Jason Merrill - - Core 1135 - * method.c (defaulted_late_check): Check for exception spec mismatch. - (defaultable_fn_check): Allow exception spec and virtual. - * class.c (check_for_override): A virtual dtor is non-trivial. - - PR c++/48289 - * pt.c (build_non_dependent_expr): Keep dereferences outside the - NON_DEPENDENT_EXPR. - -2011-03-25 Kai Tietz - - * decl.c (decls_match): Replace target hook - call of comp_type_attributes by version in tree.c file. - * search.c (check_final_overrider): Likewise. - * typeck.c (structural_comptypes): Likewise. - -2011-03-21 Kai Tietz - - PR target/12171 - * cxx-pretty-print.c (pp_cxx_ptr_operator): - Display allowed attributes for function pointer types. - * error.c (dump_type_prefix): Likewise. - - * tree.c (cxx_attribute_table): Adjust table. - -2011-03-18 Jason Merrill - - PR c++/48162 - * semantics.c (finish_call_expr): Allow TARGET_EXPR for now. - - PR c++/48118 - * call.c (build_over_call): Don't skip ck_rvalue. - -2011-03-17 Jason Merrill - - PR c++/47504 - * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let - the conversion set TREE_OVERFLOW. - - Core 1212 - * semantics.c (finish_decltype_type): Return T&& for xvalue. - * typeck.c (unlowered_expr_type): Preserve cv-quals. - - PR c++/48166 - * decl.c (revert_static_member_fn): Strip function-cv-quals. - -2011-03-16 Jason Merrill - - PR c++/48089 - * semantics.c (potential_constant_expression_1): Don't allow *this - in a constructor. - (register_constexpr_fundef): Use potential_rvalue_constant_expression. - - PR c++/47301 - * decl.c (compute_array_index_type): Don't bother trying to deal - with literal classes in ABI v1. - - PR c++/46336 - * decl.c (duplicate_decls): Return NULL_TREE for clashing - C functions. - - PR c++/47570 - * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't - use the generic binary expression handling. - -2011-03-16 Diego Novillo - - * Make-lang.in (CXX_PARSER_H): New. - (cp/parser.o): Add dependency on CXX_PARSER_H. - Add dependency on tree-pretty-print.h - (cp/cp-lang.o): Add dependency on CXX_PARSER_H. - * cp-lang.c: Include parser.h. - * parser.c: Include parser.h. - (struct cp_token): Add bitfield purged_p. - Update all users. - Move to parser.h. - (CPP_PURGED): Remove. Update all users. - (struct cp_lexer): Change field buffer to be a VEC of cp_token. - Remove field buffer_length. - Update all users. - Move to parser.h. - (struct tree_check): Move to parser.h. - (cp_token_position): Likewise. - (struct cp_token_cache): Likewise. - (CPP_KEYWORD): Likewise. - (CPP_TEMPLATE_ID): Likewise. - (CPP_NESTED_NAME_SPECIFIER): Likewise. - (N_CP_TTYPES): Likewise. - (enum cp_parser_status_kind): Likewise. - (struct cp_parser_context): Likewise. - (struct cp_default_arg_entry_d): Likewise. - (struct cp_unparsed_functions_entry_d): Likewise. - (struct cp_parser): Likewise. - (cp_lexer_dump_tokens): New. - (cp_lexer_debug_tokens): New. - (cp_lexer_finished_p): New. - (cp_lexer_alloc): Factor out of cp_lexer_new_main. - (cp_lexer_new_main): Re-write main lexing loop to push - tokens into the new VEC buffer. - (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens. - Do not abort if the token type is not recognized, just print - its code. - * parser.h: New file. - * config-lang.in (gtfiles): Add cp/parser.h. - -2011-03-16 Jason Merrill - - Core 1148 - * typeck.c (check_return_expr): Fix conditions for setting - LOOKUP_PREFER_RVALUE. - - * call.c (build_over_call): Remove require_complete_type_sfinae call. - - PR c++/48132 - * decl.c (check_array_designated_initializer): Allow integer index. - (reshape_init_array_1): Set index on the elements. - -2011-03-16 Jason Merrill - - PR c++/48113 - * typeck.c (convert_for_initialization): Use - perform_implicit_conversion_flags. - * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set - rvaluedness_matches_p on ck_rvalue. - (convert_like_real) [ck_rvalue]: And restore it here. - - PR c++/48115 - * call.c (convert_arg_to_ellipsis): Handle incomplete type. - -2011-03-16 Jason Merrill - - * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't - committed to this tentative parse. - - PR c++/47999 - * semantics.c (finish_call_expr): Preserve reference semantics - in templates. - - * call.c (convert_default_arg): Use LOOKUP_IMPLICIT. - -2011-03-16 Jakub Jelinek - - * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if - DECL_LANG_SPECIFIC is NULL. - -2011-03-15 Jason Merrill - - Core 1074 - * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't - check value_dependent_expression_p on the operand. - - * semantics.c (push_cx_call_context): Return bool. - (cxx_eval_call_expression): Handle excess depth. - - Core 1191 - * method.c (synthesized_method_walk): Cleanups don't affect the - triviality of a constructor, but do affect deletion and exception - specification. - -2011-03-15 Rodrigo Rivas Costa - - * decl2.c (cp_check_const_attributes): New. - (cplus_decl_attributes): Call cp_check_const_attributes. - -2011-03-15 Jason Merrill - - PR c++/34758 - * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for - recursion first. - (push_defarg_context, pop_defarg_context): New. - * parser.c (cp_parser_late_parsing_default_args): Use them. - * cp-tree.h: Declare them. - -2011-03-11 Dodji Seketeli - - * call.c (add_builtin_candidate): The type of - the argument of the indirection operator should not be dependent. - Fix the comment. - -2011-03-11 Jason Merrill - - PR c++/47125 - * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error. - - PR c++/47144 - * parser.c (cp_parser_template_type_arg): Set - type_definition_forbidden_message. - - PR c++/47808 - * decl.c (compute_array_index_type): Discard folding - if it didn't produce a constant. - -2011-03-11 Jakub Jelinek - - PR c++/48035 - * init.c (build_zero_init_1): Extracted from build_zero_init. - Add FIELD_SIZE argument, if non-NULL and field bit_position - as not smaller than that, don't add that field's initializer. - Pass DECL_SIZE as last argument to build_zero_init_1 - for DECL_FIELD_IS_BASE fields. - (build_zero_init): Use build_zero_init_1. - -2011-03-10 Jason Merrill - - PR c++/48029 - * pt.c (iterative_hash_template_arg): Remove special case for - ARRAY_TYPE. - - PR c++/47198 - * parser.c (cp_parser_single_declaration): Just return if - cp_parser_parse_and_diagnose_invalid_type_name complained. - -2011-03-09 Jason Merrill - - PR c++/44629 - * pt.c (unify): An unresolved overload is a nondeduced context. - -2011-03-09 Martin Jambor - - PR tree-optimization/47714 - * method.c (use_thunk): Clear addressable flag of thunk arguments. - -2011-03-08 Dodji Seketeli - - PR c++/47705 - * pt.c (convert_nontype_argument): Only call decay_conversion on - arrays. - -2011-03-08 Jason Merrill - - PR c++/47488 - * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry. - - PR c++/47705 - * pt.c (convert_nontype_argument): Don't crash on non-pointer - argument to pointer parameter. - - PR c++/45651 - * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on - !TREE_PUBLIC decls. - -2011-03-08 Dodji Seketeli - - PR c++/47957 - * name-lookup.c (binding_to_template_parms_of_scope_p): Only - consider scopes of primary template definitions. Adjust comments. - -2011-03-07 Jason Merrill - - PR c++/48003 - * pt.c (convert_nontype_argument): Fix -fpermissive allowing - integer overflow. - * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW. - - PR c++/48015 - * init.c (constant_value_1): Always require init to be TREE_CONSTANT. - - PR c++/48008 - * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here. - (write_CV_qualifiers_for_type): Not here. - -2011-03-06 Joseph Myers - - * lang-specs.h: Match -save-temps* instead of -save-temps. - -2011-03-05 Jason Merrill - - * mangle.c (write_expression): Change ABI v6 to v5. - (write_type): Likewise. - -2011-03-04 Jan Hubicka - - PR lto/47497 - * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias - and cgraph_add_thunk. - * method.c (make_alias_for_thunk, use_thunk): Likewise. - * mangle.c (mangle_decl): Likewise. - -2011-03-04 Jason Merrill - - PR c++/47971 - * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type. - (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING. - - PR c++/46220 - * search.c (check_final_overrider): Allow pointer to same incomplete - class type with different cv-quals. - -2011-03-03 Paolo Carlini - - PR c++/47974 - * pt.c (tsubst_template_args): Check argument t for error_mark_node. - -2011-03-03 Jason Merrill - - PR c++/47950 - * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT. - -2011-03-02 Jason Merrill - - PR c++/47950 - * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here. - - PR c++/47774 - * tree.c (build_vec_init_elt): Split out from... - (build_vec_init_expr): ...here. - (diagnose_non_constexpr_vec_init): New fn. - * semantics.c (potential_constant_expression_1): Use it. - * cp-tree.h: Declare it. - -2011-03-01 Jason Merrill - - PR c++/46159 - * parser.c (cp_parser_primary_expression): Don't warn about a - failed tentative parse. - - PR c++/47200 - * semantics.c (cxx_bind_parameters_in_call): Don't call - adjust_temp_type on non-constant args. - - PR c++/47851 - * call.c (standard_conversion): Provide requested cv-quals on - class rvalue conversion. - - PR c++/46282 - * decl2.c (grokbitfield): Handle type-dependent width. - -2011-02-28 Jason Merrill - - PR c++/47873 - * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P - after checking for a non-thunk. - -2011-02-26 Jason Merrill - - PR c++/47904 - * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL. - * pt.c (iterative_hash_template_arg): And hash it. - - PR c++/47897 - * semantics.c (non_const_var_error): Split out from... - (cxx_eval_constant_expression): ...here. - (potential_constant_expression_1) [VAR_DECL]: Use it. - Allow dependent variables. - -2011-02-24 Jason Merrill - - * parser.c (cp_parser_constant_expression): Set - non_integral_constant_expression correctly for C++0x too. - (cp_parser_static_assert): Allow non-constant expression. - (cp_parser_direct_declarator): Expect non_constant_p to be set - properly for C++0x. - * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR. - * semantics.c (maybe_constant_value): Check type_unknown_p too. - (potential_rvalue_constant_expression): New. - (require_potential_rvalue_constant_expression): New. - -2011-02-23 Jason Merrill - - * cp-tree.h (DECL_PARM_LEVEL): New. - (struct lang_decl_parm): Add level field. - * name-lookup.c (function_parm_depth): New fn. - * name-lookup.h: Declare it. - * parser.c (cp_parser_parameter_declaration_list): Use it. - * mangle.c (struct globals): Add parm_depth field. - (write_bare_function_type): Adjust it. - (write_expression): Include the level delta in PARM_DECL mangling - for abi >= 6. - - * semantics.c (finish_decltype_type): Remove shortcut for decltype - of id-expression. - * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6. - -2011-02-23 Nathan Froyd - - PR c++/46868 - * parser.c (cp_parser_class_specifier): Require a closing brace - to attempt error recovery. - -2011-02-23 Jakub Jelinek - - PR c++/47833 - * pt.c (struct pending_template): Add chain_next GTY option. - * decl.c (struct named_label_use_entry): Likewise. - -2011-02-22 Paolo Carlini - - PR c++/47242 - * semantics.c (build_lambda_object): Bail out if a field is - error_mark_node. - -2011-02-22 Dodji Seketeli - - PR c++/47666 - * class.c (dfs_declare_virt_assop_and_dtor) - (declare_virt_assop_and_dtor): New static functions. - (add_implicitly_declared_members): Use - declare_virt_assop_and_dtor. - -2011-02-21 Jason Merrill - - PR c++/47207 - * decl2.c (decl_constant_var_p): A constexpr var needs an - initializer to be constant. - * semantics.c (cxx_eval_constant_expression): Complain about - constexpr var used in its own initializer. - * call.c (set_up_extended_ref_temp): Set - DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too. - -2011-02-20 Jason Merrill - - PR c++/47199 - * semantics.c (cxx_eval_call_expression): Call - cxx_eval_constant_expression in trivial shortcut. - - PR c++/46831 - * call.c (convert_class_to_reference): Don't try to set up a - second conv sequence for non-viable candidates. - - PR c++/47703 - * error.c (location_of): Handle non-tagged types. - - PR c++/46472 - * method.c (process_subob_fn): Instantiate constexpr templates. - * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P. - -2011-02-20 Dodji Seketeli - - PR c++/46394 - * pt.c (tsubst_pack_expansion): do not use - cp_tree_equal/same_type_p to detect an expansion of a parameter - pack. - -2011-02-19 Jason Merrill - - PR c++/47503 - * semantics.c (cxx_eval_call_expression): Shortcut trivial copy. - -2011-02-18 Paolo Carlini - - PR c++/47795 - * semantics.c (finish_non_static_data_member): Early return if - object is error_mark_node. - -2011-02-18 Dodji Seketeli - - PR c++/47208 - * pt.c (do_auto_deduction): Do not mention error_mark_node in - diagnostics. - * semantics.c (finish_id_expression): Do not pass erroneous decl - to decl_constant_var_p. - -2011-02-17 Jakub Jelinek - - PR c++/47783 - * cvt.c (convert_from_reference): Call mark_exp_read. - -2011-02-11 Dodji Seketeli - - PR c++/47172 - * pt.c (finish_call_expr): Consider a call expression that has a - dependent "this" pointer as being dependent. Add comments. - (dependent_type_p, type_dependent_expression_p): Update comments. - -2011-02-16 Dodji Seketeli - - PR c++/47326 - * pt.c (tsubst_copy): Ensure that even pack - expansion arguments are not evaluated. - -2011-02-16 Jakub Jelinek - - PR c++/47704 - * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5 - instead of TYPE_LANG_FLAG_3. - * pt.c (lookup_template_class): Copy over - ENUM_FIXED_UNDERLYING_TYPE_P. - -2011-02-15 Jason Merrill - - PR c++/46807 - * method.c (synthesized_method_walk): Always exit early for - trivial fn in C++98 mode. - -2011-02-14 Jason Merrill - - PR c++/47482 - * parser.c (cp_parser_enumerator_definition): Call - fold_non_dependent_expr. - -2011-02-09 Jason Merrill - - * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel. - * semantics.c (finish_fname): Only return the name if we're in - a function. - - * decl.c (build_enumerator): Don't perform integral promotions on - non-integral constants. - - * cvt.c (convert_to_void): Handle null op1. - - * class.c (type_has_constexpr_default_constructor): Make sure the - caller stripped an enclosing array. - * init.c (perform_member_init): Strip arrays before calling it. - - PR c++/47511 - * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL. - -2011-02-03 Dodji Seketeli - - PR c++/47398 - * tree.c (cp_tree_equal): Take the number of - template parameters in account. - -2011-02-03 Nathan Froyd - - PR c++/46890 - * parser.c (cp_parser_class_specifier): Fix setting of - want_semicolon. - -2011-01-31 Jakub Jelinek - - PR c++/47416 - * semantics.c (build_data_member_initialization): Handle - STATEMENT_LIST always instead of just for CLEANUP_BODY. - -2011-01-31 Rainer Orth - - * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use - LD_STATIC_OPTION, LD_DYNAMIC_OPTION. - -2011-01-29 Dodji Seketeli - - PR c++/47311 - * cp-tree.h (fixup_template_parms): Declare. - * pt.c (end_template_parm_list): Do not fixup template parms here. - (fixup_template_parms): Remove static. Fix typo in the - comments. Remove useless code statement. - (fixup_template_parm): For a template template parameter, fixup - its attributes before fixing up its type. - * parser.c - (cp_parser_template_declaration_after_export): After parsing - template parameters fixup their types. - -2011-01-26 Jakub Jelinek - - PR c++/47476 - * semantics.c (potential_constant_expression_1): Handle - TRUTH_XOR_EXPR. - -2011-01-26 Dave Korn - - PR c++/43601 - * semantics.c (expand_or_defer_fn_1): Handle it. - * decl2.c (decl_needed_p): Likewise. - -2011-01-21 Jason Merrill - - PR c++/47041 - * semantics.c (build_constexpr_constructor_member_initializers): - Handle trivial copy. - -2011-01-21 Jakub Jelinek - - PR c++/47388 - * semantics.c (begin_for_stmt): If -fno-for-scope, don't - assume init must be NULL if scope is NULL. - (begin_range_for_stmt): Likewise. - -2011-01-21 Jason Merrill - - PR c++/46552 - * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF. - - PR c++/46977 - * semantics.c (potential_constant_expression_1): Split out from - potential_constant_expression. Add want_rval parm. Handle - template expression forms. Don't enforce restriction on address - of automatic variable here. Add a couple of diagnostics that - had been missing. - (require_potential_constant_expression): New entry point. - (build_data_member_initialization, register_constexpr_fundef): Adjust. - (maybe_constant_value): Check potential_constant_expression. - * pt.c (fold_non_dependent_expr_sfinae): Likewise. - * tree.c (build_vec_init_expr): Adjust. - -2011-01-19 Jakub Jelinek - - PR c++/47303 - * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC - or DECL_EXTERNAL. - -2011-01-17 Jason Merrill - - PR c++/47067 - * semantics.c (base_field_constructor_elt): New fn. - (cxx_eval_bare_aggregate): Use it. - (build_data_member_initialization): Leave COMPONENT_REF for - vfield inits. - -2011-01-14 Rodrigo Rivas Costa - - * parser.c (cp_parser_range_for): Remove the "unused variable" warning - workaround. - -2011-01-15 Giovanni Funchal - Jonathan Wakely - - PR c++/33558 - * decl.c (grokdeclarator): Reject mutable reference members. - -2011-01-14 Jason Merrill - - PR c++/47289 - * pt.c (coerce_template_parms): Fix error recovery. - - PR c++/46903 - * typeck2.c (check_narrowing): Only check arithmetic types. - - PR c++/46688 - * tree.c (build_vec_init_expr): Handle flexible array - properly. - -2011-01-13 Kai Tietz - - PR c++/47213 - * cp-tree.h (CLASSTYPE_VISIBILITY): Use - TYPE_MAIN_DECL instead of TYPE_NAME. - (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise. - * decl2.c (determine_visibility): Add check - of CLASS_TYPE_P for underlying_type. - -2011-01-12 Rodrigo Rivas Costa - - * cp-tree.h (begin_for_scope): New prototype. - (begin_for_stmt): Update prototype. - (begin_range_for_stmt): Update prototype. - * init.c (build_vec_init): Update call to begin_for_stmt. - * parser.c (cp_parser_for): New. - (cp_parser_c_for): Add three new parameters. - (cp_parser_range_for): Likewise. Most parsing code removed. - (cp_parser_iteration_statement): Call cp_parser_for instead of - cp_parser_c_for and cp_parser_range_for. - (cp_parser_for_init_statement): Add new parameter and return type. - (cp_parser_block_declaration): Update call to - cp_parser_simple_declaration. - (cp_parser_simple_declaration): Add new parameter. - Update call to cp_parser_init_declarator. - (cp_parser_init_declarator): Add new parameter. - * pt.c (tsubst_expr): Update call to begin_for_stmt. - * semantics.c (begin_for_scope): New. - (begin_for_stmt): Add two new parameters. - (begin_range_for_stmt): Likewise. - -2011-01-12 Nicola Pero - - * parser.c (cp_parser_objc_at_property_declaration): Improved - error message. - -2011-01-11 Dodji Seketeli - - PR debug/46955 - * cp-lang.c (get_template_innermost_arguments_folded) - (get_template_argument_pack_elems_folded) - (template_arg_needs_folding, fold_cplus_constants): New static - functions. - (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to - get_template_innermost_arguments_folded. - (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to - get_template_argument_pack_elems_folded. - -2011-01-11 Jason Merrill - - PR c++/46658 - * init.c (build_new_1): Handle value-init in templates differently. - - PR c++/45520 - * tree.c (maybe_dummy_object): Check current_class_ref against - context, not current_class_type. - -2011-01-08 Nicola Pero - - PR objc/47078 - * parser.c (cp_parser_objc_typename): If the type is unknown, for - error recovery purposes behave as if it was not specified so that - the default type is used. - -2011-01-07 Jakub Jelinek - - PR c++/47022 - * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy - for the second build_x_va_arg argument. - -2011-01-05 Tom Tromey - - * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error. - (lvalue_or_else): Likewise. - -2011-01-01 Kai Tietz - - PR target/38662 - * tree.c (cxx_type_hash_eq): - Allow METHOD_TYPE, too. - -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/cp/ChangeLog-2011 b/gcc/cp/ChangeLog-2011 new file mode 100644 index 0000000..5065989 --- /dev/null +++ b/gcc/cp/ChangeLog-2011 @@ -0,0 +1,5033 @@ +2011-12-31 Paolo Carlini + + PR c++/51397 + * semantics.c (finish_static_assert): Use %s instead of %E for + the error message. + +2011-12-27 Fabien Chêne + + PR c++/23211 + * name-lookup.c (do_class_using_decl): Use dependent_scope_p + instead of dependent_type_p, to check that a non-dependent + nested-name-specifier of a class-scope using declaration refers to + a base, even if the current scope is dependent. + * parser.c (cp_parser_using_declaration): Set + USING_DECL_TYPENAME_P to 1 if the DECL is not null. Re-indent a + 'else' close to the prior modification. + +2011-12-23 Jason Merrill + + PR c++/51507 + * search.c (at_function_scope_p): Also check cfun. + * pt.c (tsubst_pack_expansion): Check it instead of + cp_unevaluated_operand. + (instantiate_template_1): Use push_to_top_level. + + * tree.c (dependent_name): OFFSET_REF and BASELINK + are not dependent names. + +2011-12-21 Jason Merrill + + PR c++/51611 + * cp-tree.h (CONVERT_EXPR_VBASE_PATH): New. + * class.c (build_base_path): Defer vbase conversion in an NSDMI. + * tree.c (bot_replace): Expand it here. + * cp-gimplify.c (cp_genericize_r): Make sure deferred conversion + doesn't leak into GENERIC. + +2011-12-21 Paolo Carlini + + PR c++/51305 + * semantics.c (massage_constexpr_body): Reorder conditionals, make + sure a BIND_EXPR embedded in a MUST_NOT_THROW_EXPR is handled. + +2011-12-20 Paolo Carlini + + PR c++/51621 + * tree.c (diagnose_non_constexpr_vec_init): For value initialization + pass void_type_node, not void_zero_node, to build_vec_init_elt. + +2011-12-20 Dodji Seketeli + + PR debug/49951 + * decl.c (cxx_maybe_build_cleanup): Don't set location of the call + to the destructor. + +2011-12-20 Paolo Carlini + + PR c++/51612 + * semantics.c (is_valid_constexpr_fn): In case of constexpr + constructors also check for virtual base classes. + +2011-12-19 Paolo Carlini + + PR c++/51328 + * pt.c (convert_template_argument): Early error out and return + error_mark_node for invalid uses of destructors as types. + +2011-12-19 Jason Merrill + + PR c++/51530 + * pt.c (unify): Handle NULLPTR_TYPE. + + PR c++/51526 + * semantics.c (build_data_member_initialization): Handle + delegating constructor. + (build_constexpr_constructor_member_initializers): Likewise. + + PR c++/51553 + * cp-tree.h (LOOKUP_LIST_INIT_CTOR): Rename from + LOOKUP_NO_COPY_CTOR_CONVERSION. + (add_list_candidates): Set it earlier. + (add_candidates): Don't check explicit on ctors when it's set. + (add_function_candidate): Check it even when LOOKUP_ONLYCONVERTING + is set. + + PR c++/51553 + * call.c (add_function_candidate): Allow conversions for the copy + parm in list-initialization unless the argument is an init-list. + +2011-12-19 Jakub Jelinek + + PR c++/51619 + * semantics.c (cxx_eval_vec_init_1): If init is NULL for + multidimensional array, just set eltinit to NULL_TREE. + + * cp-gimplify.c (gimplify_must_not_throw_expr): Use + gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt. + +2011-12-19 Dodji Seketeli + + PR c++/51477 + * search.c (lookup_member): Get out early on invalid base type. + +2011-12-19 Jason Merrill + + PR c++/51489 + * semantics.c (cxx_eval_outermost_constant_expr): Check for + conversion from pointer to integer here. + (cxx_eval_constant_expression) [NOP_EXPR]: Not here. + +2011-12-18 Paolo Carlini + + * semantics.c (finish_compound_literal): Don't call check_narrowing + if !(complain & tf_warning_or_error). + +2011-12-17 Jason Merrill + + PR c++/51588 + * parser.c (cp_parser_ptr_operator): Reject pointer to member of enum. + +2011-12-17 Richard Henderson + + PR bootstrap/51072 + * config-lang.in: Revert last change. + +2011-12-17 Jason Merrill + + PR c++/51586 + * parser.c (cp_parser_check_class_key): Handle error_mark_node. + + PR c++/51587 + * decl.c (start_enum): Avoid using ENUM_UNDERLYING_TYPE on a + non-enum. + +2011-12-16 Jason Merrill + + PR c++/51416 + * init.c (build_value_init_noctor): Check for incomplete type. + +2011-12-16 Richard Henderson + + PR bootstrap/51072 + * config-lang.in (target_libs): Include target-libitm. + +2011-12-16 Jason Merrill + + PR c++/51461 + * decl.c (check_static_variable_definition): Check COMPLETE_TYPE_P + before literal_type_p. + + PR c++/51331 + * class.c (convert_to_base_statically): Just call + build_simple_base_path. + (build_simple_base_path): Check field offset. + +2011-12-15 Jason Merrill + + PR c++/51458 + * decl.c (has_designator_problem): New. + (reshape_init_r): Check for improper use of + designated initializers. + +2011-12-15 Jakub Jelinek + + PR c++/51463 + * decl.c (grokdeclarator): Set DECL_INITIAL of decl + to error_mark_node to disallow NSDMI if declspecs->storage_class + is sc_static. + * parser.c (cp_parser_late_parse_one_default_arg): Return early + if default_arg is error_mark_node. + + PR c/51360 + * semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR + and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use. + +2011-12-15 Dodji Seketeli + + PR c++/51473 + * decl.c (check_tag_decl): Error out on auto specifier with no + declarator. + +2011-12-15 Jonathan Wakely + + PR libstdc++/51365 + * cp-tree.h (CPTK_IS_FINAL): Add. + * parser.c (cp_parser_translation_unit): Handle RID_IS_FINAL. + (cp_parser_primary_expression, cp_parser_trait_expr): Likewise. + * semantics.c (trait_expr_value, finish_trait_expr): Handle + CPTK_IS_FINAL. + * cxx-pretty-print.c (pp_cxx_trait_expression): Likewise. + +2011-12-14 Jason Merrill + + PR c++/51554 + * semantics.c (cxx_eval_indirect_ref): Fix sanity check. + + PR c++/51248 + * decl.c (copy_type_enum): Also update variants. + (finish_enum): Allow variants of complete enums. + +2011-12-14 Dodji Seketeli + + PR c++/51475 + * call.c (struct conversion): Update comment. + (next_conversion): New static function. + (convert_like_real): Use it. + + PR c++/51476 + * pt.c (convert_nontype_argument): Don't call maybe_constant_value + for PTRMEM_CST nodes. + +2011-12-13 Jason Merrill + + PR c++/51406 + PR c++/51161 + * typeck.c (build_static_cast_1): Fix cast of lvalue to + base rvalue reference. + +2011-12-13 Paolo Carlini + + PR c++/51464 + * semantics.c (begin_lambda_type): Check begin_class_definition return + value for error_mark_node. + * parser.c (cp_parser_lambda_expression): Check begin_lambda_type + return value for error_mark_node. + +2011-12-13 Fabien Chêne + + PR c++/14258 + * cp-tree.h (USING_DECL_TYPENAME_P): New macro. + * parser.c (cp_parser_nonclass_name): Handle using declarations + that refer to a dependent type. + (cp_parser_using_declaration): Set USING_DECL_TYPENAME_P to 1 if + the using declaration refers to a dependent type. + +2011-12-12 Jakub Jelinek + + PR c++/51496 + * parser.c (cp_parser_omp_for_loop): When determining whether + to use cp_parser_omp_for_incr or cp_parser_expression and when + calling cp_parser_omp_for_incr, use real_decl instead of decl. + +2011-12-12 Torvald Riegel + + * semantics.c (finish_transaction_stmt, build_transaction_expr): + Accept new noexcept parameter and handle it. + * cp-tree.h (finish_transaction_stmt, build_transaction_expr): Adapt + declarations. + * parser.c (cp_parser_exception_specification_opt): Extract + noexcept-specification parsing to ... + (cp_parser_noexcept_specification_opt): ...here. Allow for parsing + non-constexpr noexcept arguments. + (cp_parser_transaction, cp_parser_transaction_expression): Parse + and handle noexcept-specifications. + (cp_parser_function_transaction): Adapt to finish_transaction_stmt + change. + * pt.c (tsubst_expr): Adapt to new noexcept parameters when + building transactions. + +2011-12-12 Torvald Riegel + + * cp-tree.def (MUST_NOT_THROW_EXPR): Add condition parameter. + * cp-tree.h (MUST_NOT_THROW_COND): New. + (build_must_not_throw_expr): Declare. + * dump.c (cp_dump_tree): Dump MUST_NOT_THROW_EXPR condition. + * except.c (build_must_not_throw_expr): New. + (initialize_handler_parm): Use it. + (begin_eh_spec_block, wrap_cleanups_r): Adapt to condition. + * pt.c (tsubst_expr): Handle MUST_NOT_THROW_EXPR. + +2011-12-12 Richard Guenther + + PR lto/51262 + * tree.c (cp_free_lang_data): No longer clear anonymous names. + +2011-12-09 Jason Merrill + + PR c++/51151 + * call.c (perform_implicit_conversion_flags): Remove earlier kludge. + * parser.c (cp_parser_omp_for_loop): Use cp_parser_omp_for_incr + in templates even if decl isn't type-dependent. + +2011-12-09 Dodji Seketeli + + PR c++/51289 + * cp-tree.h (TYPE_TEMPLATE_INFO): Rewrite this accessor macro to + better support aliased types. + (TYPE_ALIAS_P): Don't crash on TYPE_NAME nodes that are not + TYPE_DECL. + * pt.c (find_parameter_packs_r): Handle types aliases. + (push_template_decl_real): Check for bare parameter packs in the + underlying type of an alias template. + +2011-12-08 Jason Merrill + + PR c++/51318 + * typeck.c (build_x_conditional_expr): Restrict glvalue games to C++11. + + PR c++/51459 + * pt.c (tsubst_expr) [DECL_EXPR]: Handle capture proxies properly. + * semantics.c (insert_capture_proxy): No longer static. + * cp-tree.h: Declare it. + +2011-12-07 Jakub Jelinek + + PR c++/51401 + * decl.c (grokdeclarator): Error for auto on non-static data members. + + PR c++/51429 + * typeck2.c (cxx_incomplete_type_diagnostic): Don't + ICE if TREE_OPERAND (value, 1) is overloaded. + + PR c++/51229 + * decl.c (reshape_init_class): Complain if d->cur->index is + INTEGER_CST. + * parser.c (cp_parser_initializer_list): If cp_parser_parse_definitely + fails, clear designator. + + PR c++/51369 + * init.c (build_value_init): Allow array types even when + processing_template_decl. + +2011-12-07 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/51420 + * parser.c (lookup_literal_operator): Check that declaration is an + overloaded function. + +2011-12-06 Jakub Jelinek + + PR c++/51430 + * pt.c (tsubst_decl): Don't call strip_array_domain on + error_mark_node. + +2011-12-06 Paolo Carlini + + PR c++/51431 + * init.c (build_value_init): Check build_aggr_init_expr return + value for error_mark_node. + +2011-12-06 Dodji Seketeli + + PR c++/51427 + * parser.c (cp_parser_check_class_key): Add note about earlier + declaration. + +2011-12-05 Fabien Chêne + + PR c++/51319 + * semantics.c (finish_id_expression): Strip using declarations + early in the function. + +2011-12-05 Paolo Carlini + + PR c++/51399 + * init.c (perform_member_init): Early return if init is error_mark_node. + +2011-12-05 Paolo Carlini + + PR c++/51414 + * semantics.c (finish_underlying_type): Use %qT, not %qE for the + error message. + +2011-12-05 Jason Merrill + + * init.c (expand_default_init): Unshare args in ctor delegation. + +2011-12-05 Ville Voutilainen + Pedro Lamarão + + Implement C++11 delegating constructors. + * cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS. + * error.c (maybe_warn_cpp0x): Adjust. + * parser.c (cp_parser_mem_initializer_list): Use it. Diagnose + multiple initializers if a delegating initializer is present. + * call.c (build_special_member_call): Convert an assert into an if. + * init.c (perform_target_ctor): New. + (emit_mem_initializers): Use it. + (expand_member_init, expand_default_init): Adjust. + +2011-12-05 Paolo Carlini + + PR c++/51404 + * typeck2.c (build_functional_cast): Early return error_mark_node + for invalid uses of 'auto'. + * parser.c (cp_parser_direct_declarator): When + cp_parser_constant_expression returns error do not produce further + diagnostic for the bound. + +2011-12-03 Paolo Carlini + + PR c++/51313 + * call.c (null_ptr_cst_p): STRIP_NOPS in c++11 mode too. + +2011-12-01 Jason Merrill + + * call.c (build_new_method_call_1): Handle aggregate initialization. + * tree.c (stabilize_init): Handle CONSTRUCTOR. + +2011-12-01 Paolo Carlini + + PR c++/51326 + * call.c (build_user_type_conversion_1): Early return NULL if + expr is NULL_TREE. + +2011-12-01 Paolo Carlini + + PR c++/51367 + * pt.c (unify_inconsistency): Use either %qT or %qE depending on + whether parm is a type or non-type parameter. + +2011-11-30 Jason Merrill + + PR c++/51009 + * name-lookup.c (push_to_top_level): Set stmts_are_full_exprs_p. + * decl.c (build_aggr_init_full_exprs): Just assert that it's true. + (check_initializer): Here too. + +2011-11-30 Paolo Carlini + + PR c++/51299 + * rtti.c (ifnonnull): Use nullptr_node. + (build_dynamic_cast_1): Call cp_truthvalue_conversion instead + of c_common_truthvalue_conversion. + +2011-11-24 Paolo Carlini + + PR c++/51227 + * pt.c (instantiate_class_template_1): If lambda_function (type) + is NULL_TREE do not instantiate_decl. + +2011-11-24 Paolo Carlini + + PR c++/51290 + * class.c (build_base_path): For the null pointer check use + nullptr_node instead of integer_zero_node. + +2011-11-22 Dodji Seketeli + + PR c++/51145 + * decl.c (check_elaborated_type_specifier): Gracefully handle + error_mark_node. Accept bound template template parameters. + Update diagnostics for alias template specializations. Update + comment. + * parser.c (cp_parser_elaborated_type_specifier): Use + check_elaborated_type_specifier for simple-template-ids as well. + +2011-11-22 Paolo Carlini + + PR c++/51265 + * semantics.c (finish_decltype_type): Handle PTRMEM_CST. + +2011-11-22 Dodji Seketeli + + PR c++/51143 + * parser.c (cp_parser_alias_declaration): Don't allow type + definition in templates. + +2011-11-22 Paolo Carlini + + PR c++/51196 + * typeck.c (cp_build_binary_op, [case EQ_EXPR]): For targets having + TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_delta, do here + the -Wzero-as-null-pointer-constant warning for pmf == 0. + +2011-11-21 Torvald Riegel + + * pt.c (tsubst_copy_and_build): Handle TRANSACTION_EXPR. + +2011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/50958 + * parser.c (lookup_literal_operator): New. + (cp_parser_userdef_char_literal): Use it. + (cp_parser_userdef_numeric_literal): Use it. + (cp_parser_userdef_string_literal): Use lookup_name. + +2011-11-20 Jason Merrill + + * pt.c (tsubst_pack_expansion): Fix SFINAE. + + PR c++/48322 + * cp-tree.h (PACK_EXPANSION_EXTRA_ARGS): New. + * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand for it. + * pt.c (tsubst_pack_expansion): Set and use it. + (iterative_hash_template_arg): Hash it. + (template_args_equal): Compare it. + (comp_template_args_with_info): Handle nulls. + * tree.c (cp_walk_subtrees): Walk it. + * typeck.c (structural_comptypes): Compare it. + * ptree.c (cxx_print_type): Print it. + + * pt.c (type_unification_real): Set input_location + during default arg instantiation. + +2011-11-20 Paolo Carlini + + PR c++/51230 + * pt.c (unify_inconsistency): Handle non-type parameters better. + * error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM. + +2011-11-20 Dodji Seketeli + + PR c++/51194 + * pt.c (lookup_template_class_1): Go out early if the type of the + template is error_mark_node. + +2011-11-19 Paolo Carlini + + PR c++/51216 + * semantics.c (potential_constant_expression_1): Handle IF_STMT, + DO_STMT, FOR_STMT, and WHILE_STMT. + +2011-11-18 Fabien Chêne + + PR c++/51188 + * search.c (lookup_field_1): Handle USING_DECLs for the storted + case. + +2011-11-18 Paolo Carlini + + PR c++/51150 + * pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR. + +2011-11-18 Dodji Seketeli + + PR c++/51191 + * pt.c (primary_template_instantiation_p): Don't forget to + consider alias declarations. + +2011-11-17 Jason Merrill + + PR c++/51186 + * decl.c (grokdeclarator): Improve C++98 trailing return diagnostic. + + N3203 + * class.c (add_implicitly_declared_members): Update move + conditions. + + PR c++/51137 + * class.c (build_base_path): Don't do calculation in templates. + +2011-11-15 Torvald Riegel + + * parser.c (cp_parser_transaction_expression): Require parentheses + when parsing transaction expressions. + +2011-11-14 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/51107 + * typeck.c (check_literal_operator_args): Add processing_specialization + to check for void template fn. Test for exact arity for non-template fn. + +2011-11-14 Fabien Chêne + + PR c++/6936 + PR c++/25994 + PR c++/26256 + PR c++/30195 + * search.c (lookup_field_1): Look through USING_DECL. + (lookup_field_r): Call lookup_fnfields_slot instead of + lookup_fnfields_1. + * semantics.c (finish_member_declaration): Remove the check that + prevents USING_DECLs from being verified by + pushdecl_class_level. Call add_method for using declarations that + designates functions if the using declaration is in a template + class. Set DECL_IGNORED_P on class-scope using declarations. + * typeck.c (build_class_member_access_expr): Handle USING_DECLs. + * class.c (check_field_decls): Keep using declarations. + (add_method): Remove two diagnostics about conflicting using + declarations. + * parser.c (cp_parser_nonclass_name): Handle USING_DECLs. + * decl.c (start_enum): Call xref_tag whenever possible. + * cp-tree.h (strip_using_decl): Declare, and reident the previous + function. + * name-lookup.c (strip_using_decl): New function. + (supplement_binding_1): Call strip_using_decl on decl and + bval. Perform most of the checks with USING_DECLs stripped. Also + check that the target decl and the target bval does not refer to + the same declaration. Allow pushing an enum multiple times in a + template class. Adjustment to diagnose using redeclarations. Call + diagnose_name_conflict. + (push_class_level_binding): Call strip_using_decl on decl and + bval. Perform most of the checks with USING_DECLs stripped. Return + true if both decl and bval refer to USING_DECLs and are dependent. + (diagnose_name_conflict): New function. + +2011-11-12 Jason Merrill + + PR c++/986 + * call.c (set_up_extended_ref_temp): Warn about references + bound to non-static reference members. + * init.c (perform_member_init): Pass in the member. + + PR c++/51060 + * cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone. + +2011-11-11 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/50976 + * typeck.c (check_literal_operator_args): Reorganize test for string + operators so size_t search depends on finding string first. + +2011-11-10 Jason Merrill + + PR c++/50372 + * pt.c (convert_nontype_argument_function): Allow decls with + internal linkage in C++11. + (convert_nontype_argument): Likewise. + + PR c++/50973 + * decl2.c (mark_used): Defer synthesis of virtual functions. + * method.c (use_thunk): Make sure the target function has + DECL_INTERFACE_KNOWN. + + PR c++/51079, DR 495 + * call.c (joust): Check the second conversion sequence + before checking templates. + +2011-11-09 Paolo Carlini + + PR c++/50837 + * pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode + pass allow_non_integral_constant_expression_p = true to + finish_id_expression. + +2011-11-09 Jason Merrill + + PR c++/50972 + * pt.c (maybe_instantiate_noexcept): Check the return value of + push_tinst_level. + + PR c++/51046 + * parser.c (cp_parser_range_for): check_for_bare_parameter_packs. + + PR c++/51029 + * class.c (build_base_path): Don't ICE in fold_non_dependent_expr. + + * Make-lang.in (check_g++_parallelize): Add dg-torture.exp. + (check-c++0x): Obsolete. + + * pt.c (invalid_nontype_parm_type_p): Avoid printing "". + + * pt.c (convert_nontype_argument): Only integral arguments + get early folding. + + * parser.c (cp_parser_alias_declaration): Don't do semantic + processing if parsing failed. + +2011-11-09 Paolo Carlini + + PR c++/51045 + * init.c (build_new_1, build_vec_delete_1, build_delete): + Use nullptr_node. + +2011-11-09 Paolo Carlini + + PR c++/51047 + * search.c (lookup_member): Change to take also a tsubst_flags_t + parameter. + (lookup_field, lookup_fnfields): Adjust calls. + * typeck.c (lookup_destructor, finish_class_member_access_expr, + build_ptrmemfunc_access_expr): Likewise. + * class.c (handle_using_decl, maybe_note_name_used_in_class): + Likewise. + * pt.c (resolve_typename_type): Likewise. + * semantics.c (lambda_function): Likewise. + * parser.c (cp_parser_perform_range_for_lookup, + cp_parser_lookup_name): Likewise. + * friend.c (make_friend_class): Likewise. + * name-lookup.c (pushdecl_maybe_friend_1, get_class_binding, + do_class_using_decl, lookup_qualified_name): Likewise. + * cp-tree.h (lookup_member): Adjust declaration. + +2011-11-09 Dodji Seketeli + + PR c++/51043 + * cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on + NULL TYPE_NAME. + + PR c++/51027 + * parser.c (cp_parser_alias_declaration): Require ';' at the end + of the declaration. + +2011-11-09 Dodji Seketeli + + PR debug/51032 + * decl2.c (check_member_template): Accept alias templates and ... + * parser.c (cp_parser_alias_declaration): ... use it here. + +2011-11-08 Jason Merrill + + PR c++/50835 + * typeck.c (build_x_conditional_expr): Preserve lvalue/xvalueness. + * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Return clk_ordinary + in C++98. + +2011-11-08 Richard Guenther + + PR middle-end/51010 + * error.c (dump_expr): Handle SSA_NAMEs. + +2011-11-07 Richard Henderson + Aldy Hernandez + Torvald Riegel + + Merged from transactional-memory. + + * call.c (build_new_function_call): Call tm_malloc_replacement. + * class.c (check_bases): Compute transaction attributes for the + class based on its base classes. + (look_for_tm_attr_overrides, set_one_vmethod_tm_attributes, + set_method_tm_attributes): New. + (finish_struct_1): Call set_method_tm_attributes. + * cp-tree.h (begin_transaction_stmt, finish_transaction_stmt, + build_transaction_expr): Declare. + (TRANSACTION_EXPR_IS_STMT): New. + * decl.c (push_cp_library_fn): Set attribute to transaction_safe. + * except.c (do_get_exception_ptr): Apply transaction_pure. + (do_begin_catch): Mark _ITM_cxa_begin_catch transaction_pure and + record as transactional-memory wrapper. + (do_end_catch): Similarly for _ITM_cxa_end_catch. + (do_allocate_exception): Similarly for _ITM_cxa_allocate_exception. + (build_throw): Similarly for _ITM_cxa_throw. Make __cxa_rethrow pure. + * parser.h (struct cp_parser): Add in_transaction flag. + * parser.c (enum non_integral_constant): Add NIC_TRANSACTION. + (cp_parser_non_integral_constant_expression): Handle NIC_TRANSACTION. + (enum required_token): Add transaction tokens. + (cp_parser_transaction, cp_parser_transaction_expression, + cp_parser_function_transaction, cp_parser_transaction_cancel, + cp_parser_txn_attribute_opt): New. + (cp_parser_unary_expression): Handle RID_TRANSACTION*. + (cp_parser_statement, cp_parser_function_definition_after_declarator, + cp_parser_token_starts_function_definition_p): Same. + (cp_parser_required_error): Handle RT_TRANSACTION*. + * pt.c (tsubst_expr): Handle TRANSACTION_EXPR. + * semantics.c (begin_transaction_stmt, finish_transaction_stmt, + build_transaction_expr): New. + +2011-11-08 Dodji Seketeli + + Fix context handling of alias-declaration + * decl.c (start_decl): Update comment. + * error.c (dump_alias_template_specialization): Dump the context + of the specialization. + * parser.c (cp_parser_alias_declaration): Call pop_scope on the + pushed scope yielded by start_decl. + +2011-11-08 Paolo Carlini + + PR c++/50864 + * parser.c (cp_parser_postfix_dot_deref_expression): Reject invalid + uses of '->' and '.' as postfix-expression in namespace scope. + +2011-11-07 Jason Merrill + + PR c++/50848 + * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't crash + if lookup finds a non-function. + + PR c++/50863 + * parser.c (cp_parser_initializer_list): Parse C99 + array designators tentatively. + + PR c++/50870 + * pt.c (tsubst_copy): Handle NAMESPACE_DECL. + (tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent + object. + +2011-11-07 Paolo Carlini + + * pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error + call in case COMPONENT_REF. + +2011-11-07 Jason Merrill + Dodji Seketeli + + Support C++11 alias-declaration + PR c++/45114 + * cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P) + (DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor + macros. + (TYPE_TEMPLATE_INFO): Get template info of an alias template + specializations from its TYPE_DECL. + (SET_TYPE_TEMPLATE_INFO): Set template info of alias template + specializations into its TYPE_DECL. + (DECL_CLASS_TEMPLATE_P): Re-write using the new + DECL_TYPE_TEMPLATE_P. + (enum cp_decl_spec): Add new ds_alias enumerator. + (alias_type_or_template_p, alias_template_specialization_p): + Declare new functions. + * parser.c (cp_parser_alias_declaration): New static function. + (cp_parser_check_decl_spec): Add "using" name for the `alias' + declspec. + (cp_parser_type_name): Update comment. Support simple-template-id + representing alias template specializations in c++0x mode. + (cp_parser_qualifying_entity): Update comment. Use + cp_parser_type_name. + (cp_parser_block_declaration): Handle alias-declaration in c++11. + Update comment. + (cp_parser_template_id): Handle specializations of alias + templates. + (cp_parser_member_declaration): Add alias-declaration production + to comment. Support alias-declarations. + (cp_parser_template_declaration_after_export): Handle alias + templates in c++11. + * decl.c (make_typename_type, make_unbound_class_template): Accept + alias templates. + (grokdeclarator): Set TYPE_DECL_ALIAS_P on alias + declarations. + * decl2.c (grokfield): Move template creation after setting up the + TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias + template actually carries the right type-id of the alias + declaration. + * pt.c (alias_type_or_template_p) + (alias_template_specialization_p): Define new public functions. + (maybe_process_partial_specialization): Reject partial + specializations of alias templates. + (primary_template_instantiation_p): Consider alias template + instantiations. + (push_template_decl_real): Assert that TYPE_DECLs of alias + templates are different from those of class template. Store + template info onto the TYPE_DECL of the alias template. + (convert_template_argument): Strip aliases from template + arguments. + (lookup_template_class_1): Handle the creation of the + specialization of an alias template. + (tsubst_decl): Create a substituted copy of the TYPE_DECL of an + member alias template. + (tsubst): Handle substituting into the type of an alias template. + Handle substituting UNBOUND_CLASS_TEMPLATE into + BOUND_TEMPLATE_TEMPLATE_PARM. + (do_type_instantiation): Better diagnostics when trying to + explicitely instantiate a non-class template. + * search.c (lookup_field_1, lookup_field_r): Support looking up + alias templates. + * semantics.c (finish_template_type): For instantiations of alias + templates, return the TYPE_DECL of the actual alias and not the + one of the aliased type. + * error.c (dump_alias_template_specialization): New static + function. + (dump_type): Handle printing of alias templates and their + specializations. templates. + (dump_aggr_type): For specialization of alias templates, fetch + arguments from the right place. + (dump_decl): Print an alias-declaration like `using decl = type;' + (dump_template_decl): Support printing of alias templates. + +2011-11-07 Jason Merrill + + PR c++/35688 + * decl2.c (constrain_visibility): Return void. Add tmpl parm + which gives the constraint priority over an attribute. + (constrain_visibility_for_template, determine_visibility): Adjust. + * pt.c (instantiate_class_template_1): Call determine_visibility. + + PR c++/33255 + * decl.c (save_function_data): Clear local_typedefs. + + * decl.c (cp_finish_decl): Only make_tree_vector if we're calling + check_initializer. + +2011-11-06 Jason Merrill + + PR c++/35688 + * decl2.c (constrain_visibility): Check decl_has_visibility_attr + rather than DECL_VISIBILITY_SPECIFIED. + +2011-11-06 Paolo Carlini + + PR c++/47695 + * decl2.c (mark_used): Early return false after error or sorry. + * cp-tree.h (mark_used): Adjust declaration. + * semantics.c (finish_id_expression): Check mark_used return value. + +2011-11-05 Jason Merrill + + PR c++/48370 + * decl.c (cp_finish_decl): Mostly revert previous change. + +2011-11-04 Jason Merrill + + PR c++/26714 + * init.c (perform_member_init): Strip TARGET_EXPR around NSDMI. + Do temporary lifetime extension. + + PR c++/48370 + * decl.c (cp_finish_decl): Run cleanups in the right order. + +2011-11-04 Eric Botcazou + + PR c++/50608 + * semantics.c (finish_offsetof): Adjust call to fold_offsetof. + * typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1. + +2011-11-04 Paolo Carlini + + * typeck.c (build_indirect_ref): Use ATTRIBUTE_UNUSED. + * mangle.c (write_unnamed_type_name): Likewise. + +2011-11-04 Magnus Fromreide + + * parser.c (cp_parser_enumerator_list): Do not warn about + trailing commas in C++0x mode. + +2011-11-04 Olivier Goffart + Jason Merrill + + PR c++/50965 + * class.c (check_field_decls): NSDMI makes a class non-aggregate. + +2011-11-04 Paolo Carlini + + PR c++/48420 + * call.c (conversion_null_warnings): For 'false' to NULL pointer, + just check that TREE_TYPE (expr) is a BOOLEAN_TYPE. + +2011-11-04 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/50941 + * parser.c (cp_parser_userdef_string_literal): Fix string length. + +2011-11-04 Jason Merrill + + PR c++/48370 + * call.c (extend_ref_init_temps, extend_ref_init_temps_1): New. + (set_up_extended_ref_temp): Use it. Change cleanup parm to VEC. + (initialize_reference): Just call convert_like. + * decl.c (grok_reference_init): Just call initialize_reference. + (build_init_list_var_init): Remove. + (check_initializer): Change cleanup parm to VEC. Handle references + like other types. Call perform_implicit_conversion instead + of build_init_list_var_init. Don't use build_aggr_init for + aggregate initialization of arrays. + (cp_finish_decl): Change cleanup to VEC. + * typeck2.c (store_init_value): Call extend_ref_init_temps. + Use build_vec_init for non-constant arrays. + * init.c (expand_aggr_init_1): Adjust. + (build_vec_init): Avoid re-converting an initializer + that's already digested. + * mangle.c (mangle_ref_init_variable): Add a discriminator. + * cp-tree.h: Adjust. + * typeck.c (convert_for_initialization): Adjust. + * decl2.c (maybe_emit_vtables): Adjust. + +2011-11-02 Jason Merrill + + PR c++/50930 + * init.c (build_aggr_init): Don't set LOOKUP_ONLYCONVERTING + if the initializer has TARGET_EXPR_DIRECT_INIT_P. + (expand_default_init): An initializer with TARGET_EXPR_DIRECT_INIT_P + or TARGET_EXPR_LIST_INIT_P doesn't need more processing. + * tree.c (bot_manip): Propagate TARGET_EXPR_IMPLICIT_P, + TARGET_EXPR_LIST_INIT_P, TARGET_EXPR_DIRECT_INIT_P. + * call.c (convert_like_real): Set TARGET_EXPR_DIRECT_INIT_P + as appropriate on list-value-initialization. + + * parser.c (cp_parser_decl_specifier_seq): Change "C++0x" to + "C++11" in warnings. + (cp_lexer_get_preprocessor_token): Likewise. + (cp_parser_binary_expression): Likewise. + +2011-11-02 Paolo Carlini + + PR c++/50810 + * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics. + (digest_init_r): Call check_narrowing irrespective of the C++ dialect. + * decl.c (check_initializer): Likewise. + * semantics.c (finish_compound_literal): Likewise. + +2011-11-02 Paolo Carlini + + PR c++/50956 + * typeck.c (build_const_cast_1): Fix -Wcast-qual for false + comp_ptr_ttypes_const. + +2011-11-02 Rainer Orth + + * Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK. + +2011-11-01 Paolo Carlini + + PR c++/44277 + * cvt.c (cp_convert_to_pointer): Warn for zero as null pointer + constant. + * typeck.c (cp_truthvalue_conversion): Handle pointers and member + function pointers under c_inhibit_evaluation_warnings; use + nullptr_node for data member pointers. + (cp_build_binary_op): Tweak, just forward to cp_convert op1, + either a nullptr_node or an integer_zero_node. + (build_ptrmemfunc): Use nullptr_node. + * init.c (build_zero_init_1): Likewise. + +2011-11-01 Jason Merrill + + PR c++/50500 + DR 1082 + * search.c (lookup_fnfields_idx_nolazy): Split out from... + (lookup_fnfields_1): ...here. + (lookup_fnfields_slot_nolazy): Use it. + * cp-tree.h: Declare it. + * class.c (type_has_move_assign): Use it. + (type_has_user_declared_move_assign): Likewise. + +2011-10-31 Jason Merrill + + PR c++/50920 + * class.c (check_field_decl): Change c++0x in diags to c++11. + * error.c (maybe_warn_cpp0x): Likewise. + * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. + * pt.c (check_default_tmpl_args): Likewise. + +2011-10-31 Diego Novillo + + * mangle.c (get_mangled_id): Factor from ... + (mangle_decl): ... here. + Call get_mangled_id. + +2011-10-25 Gerald Pfeifer + + * NEWS (GCC 2.95): Refer to GNU/Linux instead of Linux. + (EGCS 1.0): Ditto. + +2011-10-29 Paolo Carlini + + PR c++/50901 + * call.c (build_new_op_1): Handle ABS_EXPR together with the + other unary EXPR. + +2011-10-28 Paolo Carlini + + Revert: + 2011-10-28 Paolo Carlini + + PR c++/50864 + * pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error + call in case COMPONENT_REF. + +2011-10-28 Paolo Carlini + + * pt.c (unify_pack_expansion): Initialize bad_old_arg and bad_new_arg. + +2011-10-28 Paolo Carlini + + PR c++/50864 + * pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error + call in case COMPONENT_REF. + +2011-10-27 Jason Merrill + + * semantics.c (cxx_eval_outermost_constant_expr): Check + cp_has_mutable_p. + (cxx_eval_component_reference): Check DECL_MUTABLE_P. + +2011-10-27 Roberto Agostino Vitillo + + PR c++/30066 + * decl2.c (determine_hidden_inline): New function. + (determine_visibility): fvisibility-inlines-hidden affects inline + functions. + +2011-10-27 Dodji Seketeli + + * cp-tree.h (DECL_DECLARES_TYPE_P): Fix comment. + +2011-10-26 Jason Merrill + + * typeck.c (check_literal_operator_args): Avoid building types. + +2011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net> + + Implement C++11 user-defined literals. + * cp-objcp-common.c: (cp_tree_size) Return size of USERDEF_LITERAL tree. + * cp-tree.h: (UDLIT_OP_*, UDLIT_OPER_P): Literal operator + name tools. New tree code for user-defined literals. + * cxx-pretty-print.h: (pp_cxx_userdef_literal) New. + * cxx-pretty-print.c: (pp_cxx_userdef_literal) New. + (pp_cxx_primary_expression, pp_cxx_expression): Use it. + * decl.c: (cp_tree_node_structure): Return new tree code. + (duplicate_decls): Check for raw vs. template operator conflicts. + (grokfndecl, grokdeclarator): New checks for literal operators. + * error.c: (dump_expr): Warn about user-defined literals + in C++98 mode. (dump_function_name): Pretty printing. + * mangle.c: (write_literal_operator_name): New. + (write_unqualified_id, write_unqualified_name): Use it. + * parser.c: (cp_parser_operator): Handle operator"". + (cp_parser_userdef_char_literal, cp_parser_userdef_numeric_literal, + cp_parser_userdef_string_literal): New. + (cp_parser_primary_expression): Handle new user-defined literal tokens + with new functions. + * semantics.c: (potential_constant_expression_1): Add + user-defined literals. + * typeck.c (check_raw_literal_operator, + check_literal_operator_args): New. + +2011-10-26 Paolo Carlini + + * typeck.c (cp_build_addr_expr_1): Use BASELINK_P. + * class.c (instantiate_type): Likewise. + * pt.c (convert_nontype_argument_function, uses_template_parms, + tsubst_copy, resolve_nondeduced_context, type_dependent_expression_p): + Likewise. + * semantics.c (finish_decltype_type): Likewise. + * decl2.c (mark_used): Likewise. + * name-lookup.c (arg_assoc): Likewise. + +2011-10-26 Paolo Carlini + + PR c++/50870 + * typeck.c (non_reference): Pass NULL_TREE through. + +2011-10-25 Jason Merrill + + PR c++/50866 + PR c++/41449 + * semantics.c (maybe_cleanup_point_expr_void): No longer static. + * typeck2.c (split_nonconstant_init_1): Use it. + * cp-tree.h: Declare it. + * decl.c (wrap_cleanups_r): Stop at CLEANUP_POINT_EXPR. + + PR c++/49996 + * tree.c (stabilize_init): Stabilize scalar elements of a + CONSTRUCTOR, too. + +2011-10-25 Paolo Carlini + + PR c++/50858 + * typeck.c (composite_pointer_type_r): Check return value of + composite_pointer_type_r for error_mark_node. + +2011-10-25 Paolo Carlini + + PR c++/50861 + * pt.c (tsubst_copy_and_build): Check return value of + tsubst_copy_and_build for error_mark_node. + +2011-10-23 Paolo Carlini + + PR c++/50841 + Revert: + 2011-10-23 Paolo Carlini + + PR c++/50810 + * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics. + (digest_init_r): Call check_narrowing irrespective of the C++ dialect. + * decl.c (check_initializer): Likewise. + * semantics.c (finish_compound_literal): Likewise. + +2011-10-23 Paolo Carlini + + PR c++/50810 + * typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics. + (digest_init_r): Call check_narrowing irrespective of the C++ dialect. + * decl.c (check_initializer): Likewise. + * semantics.c (finish_compound_literal): Likewise. + +2011-10-21 Paolo Carlini + + PR c++/45385 + * init.c (build_vec_init): Early return error_mark_node if + maxindex is -1. + +2011-10-21 Paolo Carlini + + PR c++/31423 + * typeck2.c (cxx_incomplete_type_diagnostic): Improve error message + for invalid use of member function. + +2011-10-21 Ville Voutilainen + + PR c++/50811 + * parser.c (cp_parser_class_head): Parse virt-specifiers + regardless of whether an id is present + +2011-10-20 Jason Merrill + + PR c++/41449 + * typeck2.c (split_nonconstant_init_1): Handle EH cleanup of + initialized subobjects. + +2011-10-19 Paolo Carlini + + PR c++/13657 + * class.c (instantiate_type): Fix error message. + +2011-10-19 Jason Merrill + + PR c++/50793 + * tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST. + +2011-10-19 Roland Stigge + + PR translation/49704 + * semantics.c (potential_constant_expression_1): Use "AST" instead of + "ast" in sorry message. + +2011-10-19 Paolo Carlini + + PR c++/38761 + PR c++/40872 + * decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use + G_() in error message strings to facilitate translation. + * semantics.c (finish_id_expression): Likewise. + * parser.c (cp_parser_nested_name_specifier_opt, + cp_parser_parameter_declaration): Likewise. + +2011-10-18 Jason Merrill + + PR c++/50531 + * pt.c (instantiate_decl): Recognize when a function defaulted + outside the class is already instantiated. + + PR c++/50742 + * decl.c (check_previous_goto_1): Handle using-decl. + +2011-10-18 Jason Merrill + + PR c++/50500 + DR 1082 + * class.c (type_has_user_declared_move_constructor): New. + (type_has_user_declared_move_assign): New. + (add_implicitly_declared_members): Add lazy copy ops + even if there's a move. + * method.c (lazily_declare_fn): Delete implicit copies + if there's a move. + (maybe_explain_implicit_delete): Explain this. Use inform rather + than error. + * cp-tree.h: Declare new fns. + +2011-10-18 Diego Novillo + + * parser.c: Remove ENABLE_CHECKING markers around debugging + routines. + (cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN. + Make static + When printing CURR_TOKEN surround it in [[ ]]. + Start printing at START_TOKEN. + Update all users. + (cp_debug_print_tree_if_set): New. + (cp_debug_print_context): New. + (cp_debug_print_context_stack): New. + (cp_debug_print_flag): New. + (cp_debug_print_unparsed_function): New. + (cp_debug_print_unparsed_queues): New. + (cp_debug_parser_tokens): New. + (cp_debug_parser): New. + (cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr. + (cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL. + * parser.h (cp_lexer_dump_tokens): Remove declaration. + (cp_debug_parser): Declare. + +2011-10-17 Michael Spertus + + * cp-tree.def: Add BASES as a new tree code. + * cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES. + (BASES_TYPE, BASES_DIRECT): Define. + (calculate_bases, finish_bases, calculate_direct_bases): Declare. + * parser.c (cp_parser_trait_expr, cp_parser_template_argument_list, + (cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them. + * pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise. + * semantics.c (calculate_bases, finish_bases, calculate_direct_bases, + dfs_calculate_bases_pre, dfs_calculate_bases_post, + calculate_bases_helper): Define. + +2011-10-17 Jason Merrill + + PR c++/50736 + * parser.c (cp_parser_lambda_introducer): Check for more + invalid captures. + +2011-10-17 Paolo Carlini + + PR c++/44524 + * typeck.c (build_class_member_access_expr): Provide a better error + message for X.Y where X is a pointer to class type. + (finish_class_member_access_expr): Likewise. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * error.c (cp_diagnostic_starter): Pass the relevant location to + diagnostic_report_current_module. + (cp_diagnostic_finalizer): Call virt_loc_aware_diagnostic_finalizer. + +2011-10-17 Paolo Carlini + + PR c++/48489 + * typeck.c (finish_class_member_access_expr): Fix error call + for TREE_CODE (access_path) == TREE_BINFO. + +2011-10-15 Paolo Carlini + + PR c++/50732 + * semantics.c (finish_trait_expr): Do not try to instantiate the + the base type of an __is_base_of trait. + (check_trait_type): Return a tree; use complete_type_or_else. + +2011-10-14 Jason Merrill + + PR c++/50563 + * parser.c (cp_parser_cache_group): Handle end==CPP_COMMA. + (cp_parser_save_nsdmi): Pass it. + + PR c++/50707 + * method.c (walk_field_subobs): Check for NSDMI before + complaining about uninitialized fields. + + * pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node + instead of error_mark_node as a placeholder. + +2011-10-14 Paolo Carlini + + PR c++/38174 + * call.c (add_builtin_candidate): If two pointers have a composite + pointer type, generate a single candidate with that type. + +2011-10-13 Jason Merrill + + PR c++/50614 + * cp-tree.h (VAR_TEMPL_TYPE_FIELD_OR_FUNCTION_DECL_CHECK): New. + (DECL_TEMPLATE_INFO): Use it. + * pt.c (tsubst_decl) [FIELD_DECL]: Set DECL_TEMPLATE_INFO + if the decl has an NSDMI. + * init.c (perform_member_init): Use it. + + PR c++/50437 + * cp-tree.h (struct tree_lambda_expr): Add closure field. + (LAMBDA_EXPR_CLOSURE): New. + * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Likewise. + * semantics.c (build_lambda_object): Use it instead of TREE_TYPE. + (begin_lambda_type, lambda_function, add_capture): Likewise. + (add_default_capture, lambda_expr_this_capture): Likewise. + +2011-10-13 Diego Novillo + + * cp-tree.h (struct language_function): Rename in_function_try_handler + to x_in_function_try_handler. + Rename in_base_initializer to x_in_base_initializer. + Update all users. + +2011-10-13 Diego Novillo + + * class.c (sorted_fields_type_new): Factor out of ... + (finish_struct_1): ... here. + +2011-10-13 Jason Merrill + + PR c++/50618 + * init.c (expand_aggr_init_1): Don't zero-initialize virtual + bases of a base subobject. + +2011-10-12 Paolo Carlini + + PR c++/50594 + * decl.c (cxx_init_decl_processing): Add + __attribute__((externally_visible)) to operator new and + operator delete library fn. + +2011-10-11 Michael Meissner + + * decl.c (duplicate_decls): Delete old interface with two parallel + arrays to hold standard builtin declarations, and replace it with + a function based interface that can support creating builtins on + the fly in the future. Change all uses, and poison the old + names. Make sure 0 is not a legitimate builtin index. + * except.c (build_eh_type_type): Ditto. + (choose_personality_routine): Ditto. + * semantics.c (finish_omp_atomic): Ditto. + (finish_omp_barrier): Ditto. + (finish_omp_flush): Ditto. + (finish_omp_taskwait): Ditto. + +2011-10-11 Jason Merrill + + PR c++/49855 + PR c++/49896 + * cp-tree.def (IMPLICIT_CONV_EXPR): New. + * call.c (perform_implicit_conversion_flags): Build it + instead of NOP_EXPR. + * cp-objcp-common.c (cp_common_init_ts): It's typed. + * cxx-pretty-print.c (pp_cxx_cast_expression): Handle it. + (pp_cxx_expression): Likewise. + * error.c (dump_expr): Likewise. + * semantics.c (potential_constant_expression_1): Likewise. + * tree.c (cp_tree_equal): Likewise. + (cp_walk_subtrees): Likewise. + * pt.c (iterative_hash_template_arg): Likewise. + (for_each_template_parm_r): Likewise. + (type_dependent_expression_p): Likewise. + (tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR + and CONVERT_EXPR. + * cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New. + +2011-10-11 Paolo Carlini + + PR c++/50611 + * pt.c (tsubst_copy_and_build): If (complain & tf_error) is false + do not call unqualified_name_lookup_error. + +2011-10-10 Paolo Carlini + + PR c++/50660 + * call.c (conversion_null_warnings): Don't look through references. + +2011-10-09 Paolo Carlini + + PR c++/38980 + * init.c (constant_value_1): Add bool parameter. + (decl_constant_value_safe): Add. + (integral_constant_value): Adjust. + (decl_constant_value): Adjust. + * cp-tree.h (decl_constant_value_safe): Declare. + * typeck.c (decay_conversion): Use decl_constant_value_safe. + * call.c (convert_like_real): Likewise. + +2011-10-09 Jakub Jelinek + Diego Novillo + + * pt.c (reregister_specialization): Use htab_find instead of + htab_find_slot with INSERT. + (maybe_process_partial_specialization, lookup_template_class_1): Change + slot variable type to void ** to avoid aliasing problems. + (register_specialization): Likewise. Use slot != NULL instead of + more expensive !optimize_specialization_lookup_p (tmpl) test. + +2011-10-08 Paolo Carlini + + PR c++/34927 + * typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate + inform messages in case of cloned destructor. + +2011-10-06 Jason Merrill + + PR c++/39164 + * decl.c (grokfndecl): Diagnose redefinition of defaulted fn. + +2011-10-02 Jason Merrill + + * pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs. + Change unsubstituted_packs to bool. + + * parser.c (cp_parser_range_for): Don't try to deduce from {} + in a template. + + PR c++/35722 + Implement N2555 (expanding pack expansion to fixed parm list) + * pt.c (coerce_template_parms): Allow expanding a pack expansion + to a fixed-length argument list. + (unify_pack_expansion): Handle explicit args properly. + (unify) [TREE_VEC]: Handle pack expansions here. + [TYPE_ARGUMENT_PACK]: Not here. + (tsubst_pack_expansion): Don't try to do partial substitution. + (pack_deducible_p): New. + (fn_type_unification): Use it. + (find_parameter_packs_r): Take the TYPE_MAIN_VARIANT + of a type parameter. + (check_non_deducible_conversion): Split from type_unification_real. + (unify_one_argument): Split from type_unification_real... + (unify_pack_expansion): ...and here. Drop call_args_p parm. + (type_unification_real, unify, more_specialized_fn): Adjust. + + * class.c (fixed_type_or_null): Handle NSDMI. + * method.c (walk_field_subobs): Disable NSDMI noexcept checking + for now. + +2011-09-30 Jason Merrill + + * cp-tree.h (TREE_NEGATED_INT): Remove. + * semantics.c (finish_unary_op_expr): Don't set it. + +2011-09-30 Janis Johnson + + PR c++/44473 + * mangle.c (write_type): Handle CV qualifiers for decimal classes. + +2011-09-26 Andi Kleen + + * repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE. + +2011-09-28 Paolo Carlini + + PR c++/45278 + * typeck.c (cp_build_binary_op): With -Wextra, warn for ordered + comparison of pointer with zero. + +2011-09-27 Paolo Carlini + + PR c++/31489 + * parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE, + set CLASSTYPE_DECLARED_CLASS. + +2011-09-27 Jakub Jelinek + + * decl.c (duplicate_decls): If compatible stpcpy prototype + is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. + +2011-09-26 Jason Merrill + + PR c++/45012 + * pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out + constant value if we're still in a template. + + PR c++/46105 + * typeck.c (structural_comptypes): Ignore cv-quals on typename scope. + + PR c++/50508 + * semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal + rather than ==. + +2011-09-26 Paolo Carlini + + PR c++/45487 + * error.c (dump_template_bindings): Separate bindings with semicolons + instead of commas. + +2011-09-26 Jason Merrill + + PR c++/50512 + * call.c (compare_ics): Only consider rvaluedness_matches_p + if the target type is the same or it too differs in rvalueness. + + PR c++/50523 + * call.c (implicit_conversion): Mask out inappropriate LOOKUP + flags at the top of the function. + + * pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI. + +2011-09-26 Paolo Carlini + + * pt.c (convert_nontype_argument): Handle NULLPTR_TYPE. + +2011-09-26 Paolo Carlini + + PR c++/26747 + * cp-gimplify.c (get_bc_label): Remove obsolete diagnostics. + +2011-09-25 Jason Merrill + + * parser.c (inject_this_parameter): Split out from + cp_parser_late_return_type_opt. + (cp_parser_class_specifier_1): Use it for NSDMIs. + * tree.c (bot_replace): Replace NSDMI 'this' with real 'this'. + +2011-09-24 Jason Merrill + + * except.c (expr_noexcept_p): Split out from finish_noexcept_expr. + * cp-tree.h: Declare it. + * method.c (walk_field_subobs): Use it. + + * init.c (perform_member_init): Instantiate NSDMI here. + * pt.c (tsubst_decl) [FIELD_DECL]: Not here. + + Handle deferred parsing of NSDMIs. + * parser.h (cp_unparsed_functions_entry): Add nsdmis field. + * parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New. + (cp_parser_late_parse_one_default_arg): Split out from + cp_parser_late_parsing_default_args. + (cp_parser_late_parsing_nsdmi): New. + (push_unparsed_function_queues): Set it. + (cp_parser_parameter_declaration): Save the '=' token. + (cp_parser_template_parameter): Likewise. + (cp_parser_default_argument): Call cp_parser_initializer + rather than cp_parser_initializer_clause. + (cp_parser_class_specifier_1): Parse unparsed_nsdmis. + (cp_parser_member_declaration): Handle nsdmis. + * decl2.c (grokfield): Handle DEFAULT_ARG for a function. + + Implement C++11 non-static data member initializers. + * cp-tree.h (enum cpp_warn_str): Add CPP0X_NSDMI. + * error.c (maybe_warn_cpp0x): Handle it. + * call.c (convert_like_real) [ck_user]: Don't complain about + using an explicit constructor for direct-initialization. + * class.c (check_field_decl): Fix ancient typo. + (check_field_decls): NSDMIs make the default ctor non-trivial. + * decl.c (cp_finish_decl): Record NSDMI. + (grokdeclarator): Allow NSDMI. + * decl2.c (grokfield): Allow NSDMI. Correct LOOKUP flags. + * init.c (perform_member_init): Use NSDMI. + * method.c (walk_field_subobs): Check for NSDMI. + * parser.c (cp_parser_member_declaration): Parse { } init. + * semantics.c (register_constexpr_fundef): Don't talk about + a return statement in a constexpr constructor. + (cxx_eval_call_expression): Check DECL_INITIAL instead of + DECL_SAVED_TREE. + +2011-09-24 Paolo Carlini + + PR c++/44267 + * class.c (build_base_path): Add a tsubst_flags_t parameter. + (convert_to_base): Adjust call. + * typeck.c (build_class_member_access_expr, + get_member_function_from_ptrfunc, build_static_cast_1): Likewise. + * init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise. + * method.c (do_build_copy_constructor, do_build_copy_assign): Likewise. + * rtti.c (build_dynamic_cast_1): Likewise. + * typeck2.c (build_scoped_ref, build_m_component_ref): Likewise. + * call.c (build_over_call, build_special_member_call): Likewise. + * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, + build_up_reference): Likewise. + * cp-tree.h (build_base_path): Adjust declaration. + +2011-09-23 Jason Merrill + + Core 253 - allow const objects with no initializer or + user-provided default constructor if the defaulted constructor + initializes all the subobjects. + PR c++/20039 + PR c++/42844 + * class.c (default_init_uninitialized_part): New. + * cp-tree.h: Declare it. + * decl.c (check_for_uninitialized_const_var): Use it. + * init.c (perform_member_init): Likewise. + (build_new_1): Likewise. + * method.c (walk_field_subobs): Likewise. + +2011-09-23 Paolo Carlini + + PR c++/50258 + * decl.c (check_static_variable_definition): Allow in-class + initialization of static data member of non-integral type in + permissive mode. + +2011-09-22 Paolo Carlini + + PR c++/50491 + * semantics.c (potential_constant_expression_1): Handle USING_DECL. + +2011-09-22 Paolo Carlini + + PR c++/50371 + * pt.c (invalid_nontype_parm_type_p): Handle NULLPTR_TYPE. + +2011-09-22 Jonathan Wakely + Paolo Carlini + + PR c++/50344 + * friend.c (make_friend_class): cv-qualification is ok in a + friend declaration. + +2011-09-21 Paolo Carlini + + PR c++/50454 + * decl.c (grokdeclarator): Consistently handle both __int128 + and unsigned __int128 with -pedantic; suppress diagnostic in + system headers. + +2011-09-20 Jason Merrill + + * cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New. + (DECL_GENERATED_P): New. + * class.c (finalize_literal_type_property): Use them. + * semantics.c (is_instantiation_of_constexpr): Likewise. + (register_constexpr_fundef): Likewise. + + * call.c (convert_default_arg): Avoid redundant copy. + * tree.c (bot_manip): Copy everything. + +2011-09-20 Roberto Agostino Vitillo + + * call.c (build_new_method_call_1): Use non-virtual lookup + for final virtual functions. + +2011-09-16 Jason Merrill + + PR c++/50424 + * call.c (set_flags_from_callee): Split out from build_call_a. + * cp-tree.h: Declare it. + * tree.c (bot_manip): Call it. + +2011-09-15 Jason Merrill + + PR c++/50365 + * parser.c (cp_parser_late_return_type_opt): Check quals parameter + for clearing current_class_ptr, too. + +2011-09-14 Diego Novillo + + * name-lookup.c (lookup_arg_dependent): Use conditional + timevars. + * decl.c (xref_tag): Likewise. + +2011-09-14 Paolo Carlini + + PR c++/50391 + * pt.c (regenerate_decl_from_template): Don't pass an error_mark_node + to build_exception_variant. + +2011-09-13 Dodji Seketeli + + PR c++/48320 + * pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX + nodes. Add a comment. + (arg_from_parm_pack_p): New static function, factorized out from + tsubst_pack_expansion and extended to support non-type parameter + packs represented with TEMPLATE_PARM_INDEX nodes. + (tsubst_pack_expansion): Use arg_from_parm_pack_p. + +2011-09-12 Jason Merrill + + * pt.c (type_unification_real): Fix handling of DEDUCE_CONV + with no deducible template parameters. + * call.c (rejection_reason_code): Add rr_template_conversion. + (print_z_candidate): Handle it. + (template_conversion_rejection): New. + (build_user_type_conversion_1): Use it. + + * call.c (merge_conversion_sequences): Set bad_p and user_conv_p + on all of the second conversion sequence. + (build_user_type_conversion_1): Set bad_p on the ck_user conv. + (convert_like_real): Handle bad ck_ref_bind with user_conv_p in the + first section. Fix loop logic. + (initialize_reference): Call convert_like for diagnostics when + we have a (bad) conversion. + + * call.c (convert_class_to_reference) + (convert_class_to_reference_1): Remove. + (reference_binding): Use build_user_type_conversion_1 instead. + + * call.c (initialize_reference): Add flags parm. + * decl.c (grok_reference_init): Likewise. + (check_initializer): Pass it. + * typeck.c (convert_for_initialization): Likewise. + * cp-tree.h: Adjust. + + * cp-tree.h (LOOKUP_NO_RVAL_BIND): New. + * call.c (conditional_conversion): Use it. + (reference_binding): Fix handling of xvalues. + +2011-09-09 Jason Merrill + + * call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P + before forcing instantiation. + +2011-09-08 Paolo Carlini + + PR c++/50324 + * typeck2.c (digest_init_r): Call complete_type_or_maybe_complain + instead of complete_type_or_else. + +2011-09-08 Dodji Seketeli + + PR c++/33255 - Support -Wunused-local-typedefs warning + * name-lookup.c (pushdecl_maybe_friend_1): Use the new + record_locally_defined_typedef. + * decl.c (finish_function): Use the new + maybe_warn_unused_local_typedefs. + (grokfield): Use the new record_locally_defined_typedef. + * parser.c (lookup_name): Use the new maybe_record_typedef_use. + +2011-09-07 Paolo Carlini + + PR c++/50309 + * decl.c (grokdeclarator): Check u.function.exception_specification + for error_mark_node. + +2011-09-07 Jason Merrill + + PR c++/50298 + * parser.c (cp_parser_member_declaration): Don't require a constant + rvalue here in C++0x. + + * pt.c (type_unification_real): Correct complain arg for tsubsting + default template args. + + * pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting. + +2011-09-06 Jason Merrill + + PR c++/50296 + * semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn. + (cx_check_missing_mem_inits): Handle bases and empty trivial members. + (validate_constexpr_fundecl): Remove. + * decl.c (start_preparsed_function): Don't call it. + * cp-tree.h: Don't declare it. + +2011-09-04 Jason Merrill + + PR c++/49267 + * call.c (reference_binding): Don't set is_lvalue for an rvalue + reference rfrom. + + PR c++/49267 + PR c++/49458 + DR 1328 + * call.c (reference_binding): Set rvaluedness_matches_p properly + for reference to function conversion ops. + (compare_ics): Adjust. + + * class.c (trivial_default_constructor_is_constexpr): Rename from + synthesized_default_constructor_is_constexpr. + (type_has_constexpr_default_constructor): Adjust. + (add_implicitly_declared_members): Call it instead. + (explain_non_literal_class): Explain about non-constexpr default ctor. + * cp-tree.h: Adjust. + * method.c (synthesized_method_walk): Adjust. + * semantics.c (explain_invalid_constexpr_fn): Handle defaulted + functions, too. + + PR c++/50248 + Core 1358 + * init.c (perform_member_init): Don't diagnose missing inits here. + (emit_mem_initializers): Or here. + * method.c (process_subob_fn): Don't instantiate constexpr ctors. + * semantics.c (cx_check_missing_mem_inits): New. + (explain_invalid_constexpr_fn): Call it. + (register_constexpr_fundef): Likewise. Leave + DECL_DECLARED_CONSTEXPR_P set when the body is unsuitable. + (cxx_eval_call_expression): Adjust diagnostics. + (cxx_eval_constant_expression): Catch use of 'this' in a constructor. + +2011-08-30 Jason Merrill + + PR c++/50084 + * cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p + to type_definition_p. + * parser.c (cp_parser_set_decl_spec_type): Likewise. + * decl.c (grokdeclarator): Check it. + + PR c++/50089 + * semantics.c (finish_id_expression): Use + current_nonlambda_class_type for qualified-ids. + + PR c++/50114 + * decl.c (poplevel): Disable for scope compatibility hack + in C++11 mode. + + PR c++/50220 + * semantics.c (add_capture): Call complete_type for copy. + + PR c++/50234 + * semantics.c (cxx_eval_component_reference): Handle + value-initialization for omitted initializers. + +2011-08-29 Jason Merrill + + PR c++/50224 + * semantics.c (finish_id_expression): Mark captured variables used. + +2011-08-29 Jakub Jelinek + Jason Merrill + + PR c++/50207 + * class.c (finish_struct_1): Complain if the first field is + artificial. + +2011-08-29 Jason Merrill + + PR c++/50209 + Core DR 994 + * parser.c (cp_parser_default_argument): Use + cp_parser_initializer_clause. + (cp_parser_late_parsing_default_args): Likewise. + +2011-08-26 Jason Merrill + + Core DR 342 + PR c++/48582 + * pt.c (check_valid_ptrmem_cst_expr): A null member pointer value + is valid in C++11. + (convert_nontype_argument): Likewise. Implicitly convert nullptr + and do constant folding. + * mangle.c (write_template_arg_literal): Mangle null member + pointer values as 0. + * call.c (null_member_pointer_value_p): New. + * cp-tree.h: Declare it. + +2011-08-25 Jason Merrill + + * call.c (convert_like_real): Remove redundant complain checks. + + PR c++/50157 + * call.c (convert_like_real): Exit early if bad and !tf_error. + +2011-08-23 Jason Merrill + + * typeck2.c (build_functional_cast): Don't try to avoid calling + build_value_init. + * pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags. + +2011-08-23 Jason Merrill + + PR c++/49045 + Core 1321 + * tree.c (dependent_name): New. + (cp_tree_equal): Two calls with the same dependent name are + equivalent even if the overload sets are different. + +2011-08-23 Jason Merrill + + * tree.c (build_target_expr): Set TREE_CONSTANT on + literal TARGET_EXPR if the value is constant. + * typeck2.c (build_functional_cast): Don't set it here. + +2011-08-23 Jason Merrill + + Core 903 (partial) + * call.c (null_ptr_cst_p): Only 0 qualifies in C++11. + +2011-08-23 Jason Merrill + + Core 975 + * decl.c (cxx_init_decl_processing): Initialize + dependent_lambda_return_type_node. + * cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE. + (dependent_lambda_return_type_node): Define. + (DECLTYPE_FOR_LAMBDA_RETURN): Remove. + * semantics.c (lambda_return_type): Handle overloaded function. + Use dependent_lambda_return_type_node instead of + DECLTYPE_FOR_LAMBDA_RETURN. + (apply_lambda_return_type): Don't check dependent_type_p. + * pt.c (tsubst_copy_and_build): Handle lambda return type deduction. + (instantiate_class_template_1): Likewise. + (tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN. + * mangle.c (write_type): Likewise. + * typeck.c (structural_comptypes): Likewise. + (check_return_expr): Handle dependent_lambda_return_type_node. + +2011-08-23 Jason Merrill + + PR c++/50024 + * semantics.c (maybe_constant_value): Don't try to fold { }. + * pt.c (build_non_dependent_expr): Don't wrap { }. + * init.c (build_value_init): Allow scalar value-init in templates. + +2011-08-23 Jason Merrill + + * semantics.c (potential_constant_expression_1): Allow 'this'. + +2011-08-23 Jakub Jelinek + + PR c++/50158 + * typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs + if it has side-effects and needs to be preevaluated. + +2011-08-23 Siddhesh Poyarekar + + PR c++/50055 + * except.c (begin_eh_spec_block): Build EH_SPEC block on the + same line as the function. + +2011-08-23 Jakub Jelinek + + PR c++/46862 + * class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type + which doesn't have any fields, clear it and diagnose. + +2011-08-18 Rainer Orth + Marc Glisse + + PR libstdc++-v3/1773 + * mangle.c (decl_mangling_context): Call + targetm.cxx.decl_mangling_context. + (write_unscoped_name): Use decl_mangling_context. + +2011-08-18 Dodji Seketeli + + PR c++/45625 + * pt.c (parameter_of_template_p): Handle comparison with DECLs of + template parameters as created by process_template_parm. + +2011-08-16 Jason Merrill + + PR c++/50086 + * pt.c (unify_pack_expansion): Correct overloaded unification + logic. + + * pt.c (instantiate_class_template_1): If DECL_PRESERVE_P is set + on a member function or static data member, call mark_used. + + PR c++/50054 + * typeck2.c (cxx_incomplete_type_diagnostic): Handle + init_list_type_node. + +2011-08-13 Jason Merrill + + PR c++/50075 + * name-lookup.c (local_bindings_p): New. + * name-lookup.h: Declare it. + * lex.c (unqualified_name_lookup_error): Use it. + + PR c++/50059 + * error.c (dump_expr): Handle MODIFY_EXPR properly. + + * decl.c (grok_reference_init): Handle constexpr here. + * call.c (initialize_reference): Not here. + +2011-08-12 David Li + + * class.c (update_vtable_entry_for_fn): Set + LOST_PRIMARY bit properly. + +2011-08-12 Jason Merrill + + PR c++/50034 + * call.c (convert_arg_to_ellipsis): force_rvalue only in + potentially evaluated context. + +2011-08-12 Richard Guenther + + * call.c (build_over_call): Instead of memcpy use an + assignment of two MEM_REFs. + +2011-08-11 Romain Geissler + Brian Hackett + + * decl.c (cp_finish_decl): Invoke callbacks on finish_decl event. + +2011-08-10 Richard Guenther + + * call.c (build_over_call): Call memcpy unconditionally. + +2011-08-08 Jason Merrill + + PR c++/50020 + * semantics.c (finish_call_expr): Don't look at 'this' if we + had an explicit object argument. + + PR c++/50011 + * typeck2.c (check_narrowing): Fix integer logic. + +2011-08-08 Rainer Orth + + * Make-lang.in (g++$(exeext)): Add $(EXTRA_GCC_LIBS). + +2011-08-05 Jason Merrill + + PR c++/48993 + * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Sorry + on 'this' in a constructor. + + PR c++/49921 + * semantics.c (finish_decltype_type): Call invalid_nonstatic_memfn_p. + + PR c++/49669 + * init.c (perform_member_init): Handle invalid array initializer. + + PR c++/49988 + * semantics.c (cxx_eval_array_reference): Handle failure to + reduce the array operand to something we can work with. + +2011-08-05 Gabriel Charette + + * decl.c (finish_function): Remove unecessary line 0 hack. + +2011-08-05 Jason Merrill + + PR c++/47453 + * typeck.c (build_x_compound_expr_from_list): Also complain + about ({...}). + + PR c++/49812 + * typeck.c (cp_build_unary_op) [POSTINCREMENT_EXPR]: Strip cv-quals. + + PR c++/49983 + * parser.c (cp_parser_range_for): Only do auto deduction in + template if the range is non-dependent. + + * init.c (perform_member_init): Always build_aggr_init + for a class member with an explicit mem-initializer. + + * pt.c (unify) [TEMPLATE_TYPE_PARM]: Allow VLA for C++0x 'auto'. + +2011-08-04 Jakub Jelinek + + PR middle-end/49905 + * decl.c (cxx_init_decl_processing): Add alloc_size (1) attribute + for operator new and operator new []. Call init_attributes. + +2011-08-02 Jason Merrill + + PR c++/43886 + * parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p. + + PR c++/49577 + * typeck2.c (check_narrowing): Check unsigned mismatch. + * semantics.c (finish_compound_literal): check_narrowing. + + PR c++/49593 + * pt.c (find_parameter_packs_r): Handle CONSTRUCTOR. + + PR c++/49803 + * init.c (sort_mem_initializers): Initialize uses_unions_p here. + (build_field_list): Not here. + + PR c++/49834 + * parser.c (build_range_temp): Split out from... + (cp_convert_range_for): ...here. + (do_range_for_auto_deduction): New. + (cp_parser_range_for): Use it. + +2011-08-02 Jakub Jelinek + + * cp-tree.h (finish_omp_atomic): Adjust prototype. + (cxx_omp_const_qual_no_mutable): New prototype. + (finish_omp_taskyield): New prototype. + * parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle + parsing OpenMP 3.1 atomics. Adjust finish_omp_atomic caller. + (cp_parser_omp_clause_name): Handle final and mergeable clauses. + (cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New + functions. + (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL + and PRAGMA_OMP_CLAUSE_MERGEABLE. + (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. + (cp_parser_omp_taskyield): New function. + (cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. + (cp_parser_omp_clause_reduction): Handle min and max. + * pt.c (tsubst_expr) : Handle OpenMP 3.1 atomics. + (tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and + OMP_CLAUSE_MERGEABLE. + * semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1 + arguments. Handle OpenMP 3.1 atomics. Adjust c_finish_omp_atomic + caller. + (finish_omp_clauses): Don't complain about const qualified + predetermined vars and static data members in firstprivate clause. + Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR + and MAX_EXPR. + (finish_omp_taskyield): New function. + * cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function. + (cxx_omp_predetermined_sharing): Use it. + +2011-08-02 Jason Merrill + + * call.c (build_call_a): Also check at_function_scope_p. + +2011-08-01 Jason Merrill + + PR c++/49932 + * mangle.c (write_prefix): Handle decltype. + + PR c++/49924 + * semantics.c (cxx_eval_vec_init_1): Fix logic. + + PR c++/49813 + * semantics.c (potential_constant_expression_1): Allow any builtin. + (morally_constexpr_builtin_function_p): Remove. + +2011-07-29 Jason Merrill + + PR c++/49867 + * parser.c (cp_parser_lambda_expression): Also clear in_statement + and in_switch_statement_p. + (cp_parser_class_specifier): Likewise. + +2011-07-28 Jason Merrill + + PR c++/49808 + * pt.c (tsubst) [TEMPLATE_PARM_INDEX]: Call convert_from_reference. + (convert_nontype_argument, tsubst_template_arg): Handle its output. + +2011-07-28 Paolo Carlini + + PR c++/49813 + * semantics.c (potential_constant_expression_1): Handle FMA_EXPR. + +2011-07-27 Jeffrey Yasskin + + * pt.c (build_template_decl): Copy the function_decl's + source location to the new template_decl. + +2011-07-26 Paolo Carlini + + PR c++/49776 + * typeck.c (cp_build_modify_expr): Check digest_init return value + for error_mark_node. + +2011-07-25 Paolo Carlini + + PR bootstrap/49845 + * parser.c (cp_parser_perform_range_for_lookup): Always assign *being + and *end before returning. + +2011-07-25 Paolo Carlini + + PR c++/49838 + * parser.c (cp_parser_perform_range_for_lookup): Early return if + error_operand_p (range). + +2011-07-23 Jason Merrill + + PR c++/49823 + * parser.c (cp_parser_qualifying_entity): Handle templates. + +2011-07-22 Jason Merrill + + PR c++/49793 + * typeck2.c (check_narrowing): Downgrade permerror to pedwarn. + Make conditional on -Wnarrowing. + +2011-07-22 Ville Voutilainen + + Warn about the use of final/override in non-c++0x mode, and + add __final for non-c++0x mode. + * cp-tree.h (cpp0x_warn_str): Add CPP0X_OVERRIDE_CONTROLS. + * error.c (maybe_warn_cpp0x): Adjust. + * parser.c (cp_parser_virt_specifier_seq_opt): Use it. Add + '__final' as a non-c++0x alternative for 'final'. + +2011-07-22 Jason Merrill + Mark Glisse + + PR c++/30112 + * decl.c (cp_finish_decl): Apply pragma redefine_extname in + other namespaces as well. + * name-lookup.c (c_linkage_bindings): Define. + (lookup_extern_c_fun_in_all_ns): Rename from + lookup_extern_c_fun_binding_in_all_ns. Return tree. + (pushdecl_maybe_friend_1): Adjust. Copy DECL_ASSEMBLER_NAME. + +2011-07-20 Jason Merrill + + * parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]= + designated initializer syntax. + * decl.c (check_array_designated_initializer): Add index parm. + (maybe_deduce_size_from_array_init): Pass it. + (reshape_init_array_1): Likewise. + + PR c++/6709 (DR 743) + PR c++/42603 (DR 950) + * parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New. + (cp_parser_nested_name_specifier_opt): Allow decltype. + (cp_parser_qualifying_entity): Likewise. + (cp_parser_decltype): Replace source tokens with CPP_DECLTYPE. + (cp_parser_simple_type_specifier): Handle decltype as scope. + (cp_parser_base_specifier): Allow decltype. + (cp_parser_base_clause): Don't crash on null base. + * parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h. + (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise. + +2011-07-19 Jason Merrill + + PR c++/49785 + * pt.c (coerce_template_parms): Handle non-pack after pack. + +2011-07-19 Richard Guenther + + * call.c (build_special_member_call): Use fold_build_pointer_plus. + * class.c (build_base_path): Likewise. + (convert_to_base_statically): Likewise. + (dfs_accumulate_vtbl_inits): Likewise. + * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise. + * except.c (expand_start_catch_block): Likewise. + * init.c (expand_virtual_init): Likewise. + (build_new_1): Likewise. + (build_vec_delete_1): Likewise. + (build_vec_delete): Likewise. + * rtti.c (build_headof): Likewise. + (tinfo_base_init): Likewise. + * typeck.c (get_member_function_from_ptrfunc): Likewise. + (cp_build_addr_expr_1): Likewise. + * typeck2.c (build_m_component_ref): Likewise. + +2011-07-18 Martin Jambor + + * parser.c (cp_parser_parameter_declaration_list): Initialize + parenthesized_p. + +2011-07-16 Jason Merrill + + * pt.c (tinst_level_tick, last_template_error_tick): Replace with + last_error_tinst_level. + (push_tinst_level, pop_tinst_level): Adjust. + (problematic_instantiation_changed): Adjust. + (record_last_problematic_instantiation): Adjust. + * error.c (cp_print_error_function): Don't print + current_function_decl if we're in a template instantiation context. + (print_instantiation_full_context): Always print first line. + +2011-07-16 Nathan Froyd + Jason Merrill + + PR c++/45329 + PR c++/48934 + * cp-tree.h (fn_type_unification): Add `bool' parameter. + * pt.c (enum template_base_result): Define. + (unify_success, unify_unknown): Define. + (unify_parameter_deduction_failure): Define. + (unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define. + (unify_parameter_pack_mismatch): Define. + (unify_parameter_pack_inconsistent): Define. + (unify_ptrmem_cst_mismatch, unify_vla_arg): Define. + (unify_expression_unequal, unify_inconsistency): Define. + (unify_method_type_error, unify_arity): Likewise. + (unify_too_many_parameters, unify_too_few_parameters): Define. + (unify_arg_conversion, unify_no_common_base): Define. + (unify_illformed_ptrmem_cst_expr): Define. + (unify_substitution_failure): Define. + (unify_inconsistent_template_template_parameters): Define. + (unify_template_deduction_failure): Define. + (unify_template_argument_mismatch): Define. + (unify_overload_resolution_failure): Define. + (comp_template_args_with_info): New function, split out from... + (comp_template_args): ...here. Call it. + (deduction_tsubst_fntype): Add `complain' parameter'. Pass it + to tsubst. + (unify): Add `explain_p' parameter. Pass to all relevant calls. + Call above status functions when appropriate. + (resolve_overloaded_unification, try_one_overload): Likewise. + (type_unification, type_unification_real): Likewise. + (unify_pack_expansion): Likewise. + (get_template_base, try_class_unification): Likewise. + (get_bindings, more_specialized_fn): Pass false to unification + calls. + (get_class_bindings, do_auto_deduction): Likewise. + (convert_nontype_argument): Likewise. + (fn_type_unification): Likewise. Pass tf_warning_or_error if + explain_p. + (get_template_base): Add `explain_p' parameter and pass it to + try_class_unification. Return an enum template_base_result. + * class.c (resolve_address_of_overloaded_function): Pass false to + fn_type_unification. + * call.c (enum rejection_reason_code): Add new codes. + (struct rejection_reason): Add template_unification field. + Add template_instantiation field. + (template_unification_rejection): Define. + (template_unification_error_rejection): Define. + (template_instantiation_rejection): Define. + (invalid_copy_with_fn_template_rejection): Define. + (add_template_candidate): Pass false to unify. + Provide more rejection reasons when possible. + (print_template_unification_rejection): Define. + (print_arity_rejection): Define, split out from... + (print_z_candidate): ...here. Add cases for new rejection + reasons. + +2011-07-15 Jason Merrill + + * Make-lang.in (check-g++-strict-gc): New. + (cp/except.o): Depend on gt-cp-except.h + * except.c: Include gt-cp-except.h. + * config-lang.in (gtfiles): Add cp/except.c. + * decl2.c (mark_used): Adjust constexpr condition, set + function_depth around template instantiation. + * parser.c (cp_parser_lambda_body): Set function_depth. + * semantics.c (maybe_add_lambda_conv_op): Likewise. + + PR testsuite/49741 + * Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts. + +2011-07-13 Jason Merrill + + * Make-lang.in (check-c++0x): New. + +2011-07-13 Richard Sandiford + + * typeck2.c (split_nonconstant_init_1): Pass the initializer directly, + rather than a pointer to it. Return true if the whole of the value + was initialized by the generated statements. Use + complete_ctor_at_level_p instead of count_type_elements. + +2011-07-12 Diego Novillo + + * name-lookup.h (cp_binding_level): Rename from cxx_scope. + Update all users. + (struct cp_binding_level): Fix indentation. + +2011-07-11 Jason Merrill + + PR c++/49672 + * pt.c (extract_fnparm_pack): Split out from... + (make_fnparm_pack): ...here. + (instantiate_decl): Handle non-pack parms after a pack. + * semantics.c (maybe_add_lambda_conv_op): Don't in a template. + + * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p. + + PR c++/44609 + * cp-tree.h (struct tinst_level): Add errors field. + * pt.c (neglectable_inst_p, limit_bad_template_recurson): New. + (push_tinst_level): Don't start another decl in that case. + (reopen_tinst_level): Adjust errors field. + * decl2.c (cp_write_global_declarations): Don't complain about + undefined inline if its template was defined. + * mangle.c (mangle_decl_string): Handle failure from push_tinst_level. + +2011-07-10 Jason Merrill + + PR c++/49691 + * parser.c (cp_parser_late_return_type_opt): Check quals parameter + rather than current_class_type to determine whether to set 'this'. + (cp_parser_direct_declarator): Pass -1 to quals if member_p is false. + (cp_parser_init_declarator): Pass down member_p. + +2011-07-09 Jason Merrill + + * tree.c (build_vec_init_elt): Strip TARGET_EXPR. + +2011-07-08 Jason Merrill + + PR c++/45437 + * typeck.c (cp_build_modify_expr): Preevaluate RHS. + + * method.c (use_thunk): Use cgraph_add_to_same_comdat_group. + * optimize.c (maybe_clone_body): Likewise. + * semantics.c (maybe_add_lambda_conv_op): Likewise. + + PR c++/45603 + * decl.c (expand_static_init): Don't get confused by user + declaration of __cxa_guard_acquire. + + * typeck.c (cp_apply_type_quals_to_decl): Don't check + COMPLETE_TYPE_P either. + + PR c++/49673 + * typeck.c (cp_apply_type_quals_to_decl): Don't check + TYPE_NEEDS_CONSTRUCTING. + +2011-07-07 Jason Merrill + + PR c++/49663 + * pt.c (push_deduction_access_scope): Preserve + processing_template_decl across push_to_top_level. + And revert: + * class.c (pushclass): Accept NULL argument. + (popclass): Deal with popping null class. + * pt.c (push_access_scope, pop_access_scope): Use them rather than + push_to_top_level/pop_from_top_level. + * name-lookup.c (lookup_name_real_1): Check current_class_type. + +2011-07-07 Jakub Jelinek + + PR c/49644 + * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with + one non-complex and one complex argument, call save_expr on both + operands. + +2011-07-06 Jason Merrill + + PR c++/49353 + * semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL + on kept inlines. + + PR c++/49568 + * method.c (make_thunk, use_thunk): Copy DECL_COMDAT. + +2011-07-05 Jason Merrill + + PR c++/48157 + * pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in + partial instantiation. + + PR c++/49598 + * semantics.c (finish_id_expression): convert_from_reference. + +2011-07-05 Richard Guenther + + * decl.c (cxx_init_decl_processing): Defer building common + tree nodes to c_common_nodes_and_builtins. + +2011-07-04 Jason Merrill + + DR 1207 + PR c++/49589 + * mangle.c (write_expression): Handle 'this'. + * parser.c (cp_parser_postfix_dot_deref_expression): Allow + incomplete *this. + * semantics.c (potential_constant_expression_1): Check that + DECL_CONTEXT is set on 'this'. + + * error.c (dump_template_bindings): Don't print typenames + for a partial instantiation. + (dump_function_decl): If we aren't printing function arguments, + print template arguments as rather than [with ...]. + (dump_expr): Don't print return type or template header. + [BASELINK]: Use BASELINK_FUNCTIONS rather than get_first_fn. + * pt.c (dependent_template_arg_p): Handle null arg. + + * error.c (type_to_string): Avoid redundant akas. + +2011-07-01 Jonathan Wakely + + PR c++/49605 + * init.c (build_delete): Only warn for sfk_deleting_destructor. + +2011-07-01 Jakub Jelinek + + * Make-lang.in (cp/decl.o): Depend on pointer-set.h. + (cp/class.o): Likewise. + (cp/error.o): Likewise. + (cp/name-lookup.o): Likewise. + (cp/decl2.o): Likewise. Don't depend on $(POINTER_SET_H). + +2011-07-01 Jason Merrill + + PR c++/48261 + * pt.c (lookup_template_function): Handle non-function. + + PR c++/48593 + * pt.c (tsubst_qualified_id): Check PTRMEM_OK_P. + * tree.c (build_qualified_name): Set PTRMEM_OK_P. + * semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on + SCOPE_REF, too. + * cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too. + (QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1. + + PR c++/48883 + PR c++/49609 + * pt.c (resolve_nondeduced_context): Call mark_used. + + PR c++/49085 + * semantics.c (finish_offsetof): Complain about incomplete type. + +2011-06-30 Jason Merrill + + PR c++/49387 + * rtti.c (get_tinfo_decl): Call complete_type. + + PR c++/49569 + * method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and + DECL_PARM_INDEX on rhs parm. + + * pt.c (iterative_hash_template_arg): Use cp_tree_operand_length. + + PR c++/49355 + * tree.c (stabilize_init): Handle aggregate initialization. + + PR c++/48481 + * name-lookup.c (struct arg_lookup): Add fn_set. + (add_function): Check it. + (lookup_arg_dependent_1): Initialize it. + +2011-06-29 Jason Merrill + + PR c++/49216 + * init.c (build_new_1): Pass {} down to build_vec_init. + (build_vec_init): Handle it. + + DR 1207 + PR c++/49003 + * cp-tree.h (struct saved_scope): Add x_current_class_ptr, + x_current_class_ref. + (current_class_ptr, current_class_ref): Use them. + * decl.c (build_this_parm): Handle getting the class type. + * parser.c (cp_parser_late_return_type_opt): Set up 'this' + for use within the trailing return type. + + * pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand, + don't tsubst DECL_INITIAL unless our type use auto. + + PR c++/49520 + * semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here. + (massage_constexpr_body): Not here. + + PR c++/49554 + * semantics.c (lambda_proxy_type): New. + (build_capture_proxy): Use it. + * cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New. + * pt.c (tsubst) [DECLTYPE_TYPE]: Use them. + + PR c++/45923 + * class.c (explain_non_literal_class): New. + (finalize_literal_type_property): Call it. + * cp-tree.h: Declare it. + * semantics.c (ensure_literal_type_for_constexpr_object): Call it. + (is_valid_constexpr_fn): Likewise. + (massage_constexpr_body): Split out from... + (register_constexpr_fundef): ...here. + (is_instantiation_of_constexpr): New. + (expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case. + (explain_invalid_constexpr_fn): New. + (cxx_eval_call_expression): Call it. + (potential_constant_expression_1): Likewise. Avoid redundant errors. + * method.c (process_subob_fn): Diagnose non-constexpr. + (walk_field_subobs): Likewise. + (synthesized_method_walk): Don't shortcut if we want diagnostics. + (explain_implicit_non_constexpr): New. + (defaulted_late_check): Use it. + * call.c (build_cxx_call): Remember location. + + * method.c (maybe_explain_implicit_delete): Use pointer_set + instead of htab. + + * class.c (finalize_literal_type_property): Update conditions. + * method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR. + + * tree.c (build_vec_init_expr): Don't add TARGET_EXPR. + * typeck2.c (digest_init_r): Handle VEC_INIT_EXPR. + * semantics.c (cxx_eval_vec_init_1): Correct type. + + * init.c (build_value_init): Decide whether or not to zero-initialize + based on user-providedness of default ctor, not any ctor. + (build_value_init_noctor): Adjust assert. + + DR 990 + * call.c (convert_like_real) [ck_user]: Handle value-initialization. + (build_new_method_call_1): Likewise. + * init.c (expand_default_init): Handle direct list-initialization + of aggregates. + +2011-06-27 Jakub Jelinek + + * cp-tree.h (union lang_tree_node): Use it in chain_next expression. + +2011-06-26 Jason Merrill + + PR c++/49528 + * semantics.c (potential_constant_expression_1): Check + for non-literality rather than cleanup. + (cxx_eval_constant_expression): Likewise. + + PR c++/49528 + * semantics.c (potential_constant_expression_1): A TARGET_EXPR + with a cleanup isn't constant. + (cxx_eval_constant_expression): Likewise. + * init.c (expand_default_init): Use maybe_constant_init. + +2011-06-24 Jakub Jelinek + + PR c++/46400 + * cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT + instead of TYPE_CHAIN for chain_next for types. + +2011-06-23 Gabriel Charette + + * name-lookup.h (cp_binding_level): Removed unused + member names_size. Update all users. + +2011-06-23 Jason Merrill + + * typeck2.c (build_functional_cast): Strip cv-quals for value init. + * init.c (build_zero_init_1): Not here. + + PR c++/35255 + * pt.c (resolve_overloaded_unification): Fix DR 115 handling. + +2011-06-23 Paolo Carlini + + PR c++/44625 + * decl2.c (build_anon_union_vars): Early return error_mark_node + for a nested anonymous struct. + +2011-06-23 Jason Merrill + + PR c++/49507 + * decl2.c (mark_used): Don't call synthesize_method for + functions defaulted outside the class. + + * optimize.c (maybe_clone_body): Set linkage flags before + cgraph_same_body_alias. + + PR c++/49440 + * class.c (set_linkage_according_to_type): Hand off to + determine_visibility. + + PR c++/49395 + * init.c (build_zero_init_1): Strip cv-quals from scalar types. + + PR c++/36435 + * pt.c (most_specialized_instantiation): Do check return types. + +2011-06-22 Jason Merrill + + PR c++/49260 + * call.c (build_call_a): Set cp_function_chain->can_throw here. + (build_cxx_call): Not here. + +2011-06-21 Jason Merrill + + PR c++/49172 + * decl.c (cp_finish_decl): Adjust init_const_expr_p for refs. + (grokdeclarator): constexpr doesn't apply const for refs. + * parser.c (cp_parser_initializer_clause): Don't call + maybe_constant_value here. + * call.c (initialize_reference): Handle constexpr. + + PR c++/49482 + * semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for + static fn parameters. + + * call.c (add_builtin_candidates): Use cv_unqualified rather than + TYPE_MAIN_VARIANT. + * pt.c (tsubst_arg_types): Likewise. + * except.c (build_throw): Use cv_unqualified. + + PR c++/49418 + * call.c (cxx_type_promotes_to): Don't strip cv-quals. + * semantics.c (lambda_return_type): Strip them here. + +2011-06-21 Andrew MacLeod + + * semantics.c: Add sync_ or SYNC__ to builtin names. + +2011-06-20 Jason Merrill + + PR c++/49216 + * init.c (build_vec_init): Don't try to use a CONSTRUCTOR when + base is a pointer. + * typeck2.c (process_init_constructor_array): Use {} for classes, + too. + * call.c (convert_like_real): Handle substitution failure. + + PR c++/48138 + * pt.c (canonicalize_type_argument): New. + (convert_template_argument, unify): Use it. + + PR c++/47080 + * call.c (rejection_reason_code): Add rr_explicit_conversion. + (print_z_candidate): Handle it. + (explicit_conversion_rejection): New. + (build_user_type_conversion_1): Reject an explicit conversion + function that requires more than a qualification conversion. + + PR c++/47635 + * decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE. + + PR c++/48138 + * tree.c (strip_typedefs): Use build_aligned_type. + + PR c++/49205 + * call.c (sufficient_parms_p): Allow parameter packs too. + + PR c++/43321 + * semantics.c (describable_type): Remove. + * cp-tree.h: Likewise. + * decl.c (cp_finish_decl): Don't call it. + * init.c (build_new): Likewise. + * parser.c (cp_parser_omp_for_loop): Likewise. + * pt.c (tsubst_decl): Likewise. + (do_auto_deduction): If we fail in a template, try again + at instantiation time. + + PR c++/43831 + * parser.c (cp_parser_lambda_introducer): Complain about redundant + captures. + * semantics.c (add_capture): Likewise. + (register_capture_members): Clear IDENTIFIER_MARKED. + +2011-06-17 Jason Merrill + + PR c++/49458 + * call.c (convert_class_to_reference_1): Allow binding function + lvalue to rvalue reference. + + PR c++/43912 + Generate proxy VAR_DECLs for better lambda debug info. + * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator(). + (LAMBDA_EXPR_PENDING_PROXIES): New. + (struct tree_lambda_expr): Add pending_proxies. + * name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing. + (qualify_lookup): Use is_lambda_ignored_entity. + * parser.c (cp_parser_lambda_expression): Don't adjust field names. + Call insert_pending_capture_proxies. + (cp_parser_lambda_introducer): Use this_identifier. + (cp_parser_lambda_declarator_opt): Call the object parameter + of the op() "__closure" instead of "this". + (cp_parser_lambda_body): Call build_capture_proxy. + * semantics.c (build_capture_proxy, is_lambda_ignored_entity): New. + (insert_pending_capture_proxies, insert_capture_proxy): New. + (is_normal_capture_proxy, is_capture_proxy): New. + (add_capture): Add __ to field names here, return capture proxy. + (add_default_capture): Use this_identifier, adjust to expect + add_capture to return a capture proxy. + (outer_lambda_capture_p, thisify_lambda_field): Remove. + (finish_id_expression, lambda_expr_this_capture): Adjust. + (build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES. + * pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES + is null. + + * name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing + of artificial locals. + + * parser.c (cp_parser_lambda_expression): Clear + LAMBDA_EXPR_THIS_CAPTURE after parsing. + * pt.c (tsubst_copy_and_build): Make sure it isn't set. + + * cp-tree.h (struct tree_lambda_expr): Change common to typed. + Move non-pointers to end of struct. + + * pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference. + * decl.c (check_initializer): Handle DECL_VALUE_EXPR_P. + + * semantics.c (finish_non_static_data_member): Preserve dereference + in template. + +2011-06-16 Jason Merrill + + PR c++/44160 + * parser.c (cp_parser_lambda_body): Share code between + simple and complex cases instead of using cp_parser_function_body. + + PR c++/45378 + * decl.c (check_initializer): Check narrowing. + + PR c++/49229 + * pt.c (tsubst_decl) [FUNCTION_DECL]: Handle substitution failure. + + PR c++/49251 + * semantics.c (finish_id_expression): Mark even dependent + variables as used. + + PR c++/49420 + * error.c (dump_template_argument): Don't try to omit default + template args from an argument pack. + +2011-06-15 H.J. Lu + + PR c++/49412 + * decl.c (get_dso_handle_node): Mark __dso_handle hidden if + assembler supports hidden visibility. + +2011-06-14 Jason Merrill + + PR c++/49107 + * cp-tree.h (DEFERRED_NOEXCEPT_SPEC_P): Handle overload. + * method.c (defaulted_late_check): Only maybe_instantiate_noexcept + if the declaration had an exception-specifier. + (process_subob_fn): Don't maybe_instantiate_noexcept. + * pt.c (maybe_instantiate_noexcept): Handle overload. + * typeck2.c (nothrow_spec_p_uninst): New. + (merge_exception_specifiers): Add 'fn' parm. Build up overload. + * typeck.c (merge_types): Adjust. + + * pt.c (deduction_tsubst_fntype): Don't save input_location. + (maybe_instantiate_noexcept): Likewise. + +2011-06-14 Joseph Myers + + * Make-lang.in (cp/method.o): Update dependencies. + * method.c: Include common/common-target.h. + (use_thunk): Use targetm_common.have_named_sections. + +2011-06-14 Steve Ellcey + + * decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode. + +2011-06-14 Jason Merrill + + * error.c (type_to_string): Print typedef-stripped version too. + + PR c++/49117 + * call.c (perform_implicit_conversion_flags): Print source type as + well as expression. + + PR c++/49389 + * typeck2.c (build_m_component_ref): Preserve rvalueness. + + PR c++/49369 + * class.c (build_base_path): Fix cv-quals in unevaluated context. + + PR c++/49290 + * semantics.c (cxx_fold_indirect_ref): Local, more permissive copy + of fold_indirect_ref_1. + (cxx_eval_indirect_ref): Use it. + +2011-06-11 Jan Hubicka + + * decl2.c (cp_write_global_declarations): Process aliases; look trhough + same body aliases. + +2011-06-10 Paolo Carlini + + PR c++/41769 + * decl.c (grokdeclarator): Reject operator names in parameters. + +2011-06-10 Jan Hubicka + + * decl2.c (clear_decl_external): New functoin. + (cp_write_global_declarations): Use it. + +2011-06-10 Paolo Carlini + + * cp-tree.h (error_operand_p): Remove. + +2011-06-09 David Krauss + + PR c++/49118 + * typeck2.c (build_x_arrow): Push fake template context + to produce diagnostic on acyclic endless operator-> drill-down. + * call.c (build_new_op): Change Boolean overload status + value to a pointer to the overload function. + * cp-tree.h: Likewise. + * typeck.c: Likewise. + * parser.c: Likewise. + * decl2.c: Likewise. + * pt.c: Likewise. + +2011-06-09 Jason Merrill + + * semantics.c (maybe_constant_value): Handle overflowed input. + (non_const_var_error): Handle non-constant DECL_INITIAL. + + * pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae. + + * parser.c (cp_parser_constant_expression): Just return the + non-constant expression. + + * semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR. + +2011-06-09 Paolo Carlini + + PR c++/29003 + * decl.c (grokdeclarator): Reject operator names in typedefs. + +2011-06-08 Jason Merrill + + PR c++/49107 + * cp-tree.def (DEFERRED_NOEXCEPT): New. + * cp-tree.h (struct tree_deferred_noexcept): New. + (DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New. + (DEFERRED_NOEXCEPT_SPEC_P): New. + (enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT. + (union lang_tree_node): Add tree_deferred_noexcept. + (maybe_instantiate_noexcept): Declare. + * cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT. + * error.c (dump_exception_spec): Likewise. + * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise. + * ptree.c (cxx_print_xnode): Likewise. + * tree.c (cp_tree_equal): Likewise. + * decl.c (cp_tree_node_structure): Likewise. + (duplicate_decls): Call maybe_instantiate_noexcept. + * except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT. + (nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check + DEFERRED_NOEXCEPT_SPEC_P. + * typeck2.c (merge_exception_specifiers): Likewise. + * decl2.c (mark_used): Call maybe_instantiate_noexcept. + * method.c (process_subob_fn, defaulted_late_check): Likewise. + * pt.c (tsubst_exception_specification): Add defer_ok parm. + Build DEFERRED_NOEXCEPT. + (maybe_instantiate_noexcept): New. + (tsubst, regenerate_decl_from_template, instantiate_decl): Adjust. + * search.c (check_final_overrider): Call maybe_instantiate_noexcept. + + * semantics.c (potential_constant_expression_1): Handle destructor + call. + +2011-06-08 Jakub Jelinek + + * cp-tree.h (struct tinst_level): Add chain_next GTY + markup. + +2011-06-08 Jason Merrill + + PR c++/49322 + * pt.c (deduction_tsubst_fntype): Don't free the tinst entry + if a pending_template entry is pointing at it. + +2011-06-07 Jason Merrill + + PR c++/48969 + PR c++/44175 + * error.c (subst_to_string): New. + (cp_printer): Use it for 'S'. + (print_instantiation_partial_context_line): Handle subst context. + * pt.c (push_tinst_level): Handle subst context. + (deduction_tsubst_fntype): Don't track specific substitutions. + Use push_tinst_level. + + * pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope. + (fn_type_unification): Don't call push_deduction_access_scope here. + +2011-06-06 Jason Merrill + + PR c++/48780 + * typeck.c (perform_integral_promotions): Don't promote scoped enums. + * call.c (convert_arg_to_ellipsis): Promote them here in old ABI. + +2011-06-06 Nicola Pero , + + PR obj-c++/48275 + * parser.c (cp_parser_objc_at_property_declaration): Allow setter + and getter names to use all the allowed method names. + +2011-06-06 Jason Merrill + + PR c++/49298 + * semantics.c (potential_constant_expression_1): Handle FIELD_DECL. + + PR objc++/49221 + * decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than + at_function_scope_p. + + PR c++/49134 + * tree.c (build_target_expr): Deal with ARM ABI tweaks. + +2011-06-04 Jonathan Wakely + + * init.c (build_delete): Warn when deleting type with non-virtual + destructor. + +2011-06-03 Jakub Jelinek + + PR c++/49276 + * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of + DECL_CONTEXT. + +2011-06-01 Jason Merrill + + * pt.c (build_non_dependent_expr): Remove special handling of + REFERENCE_REF_P. + + PR c++/44175 + * pt.c (template_args_equal): Handle one arg being NULL_TREE. + (deduction_tsubst_fntype): Handle excessive non-infinite recursion. + + PR c++/49253 + * typeck2.c (build_x_arrow): Don't use build_min_nt. + +2010-05-31 Fabien Chêne + + PR c++/48010 + * name-lookup.c (supplement_binding_1): If the old binding was a + type name, also check that the DECL actually refers to the same + type or is not a type. + +2011-05-31 Jason Merrill + + PR c++/44870 + * tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR. Handle + ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions. + (build_min_non_dep): Preserve reference refs. + (build_min_non_dep_call_vec): Likewise + +2011-05-30 Jakub Jelinek + + PR c++/49223 + * semantics.c (finish_omp_clauses): Call require_complete_type + even for copyin/copyprivate clauses. Only call + cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P. + +2011-05-28 Jason Merrill + + PR c++/46124 + * parser.c (cp_parser_lambda_expression): Improve error recovery. + (cp_parser_lambda_declarator_opt): Likewise. Return bool. + +2011-05-27 Jason Merrill + + PR c++/47277 + * parser.c (cp_parser_pseudo_destructor_name): Commit to parse + after we see the ~. + + * mangle.c (mangle_decl_string): Make sure we don't try to mangle + templates. + + PR c++/47049 + * semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing. + * decl.c (start_preparsed_function): Don't call comdat_linkage for + a template. + + PR c++/47132 + * mangle.c (write_expression): Handle MODOP_EXPR. + + PR c++/47277 + * parser.c (cp_parser_unqualified_id): Don't check + constructor_name_p for enums. + + PR c++/47687 + * pt.c (dependent_type_p_r): Avoid infinite recursion. + + PR c++/48284 + * error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot + with INDIRECT_REF of REFERENCE_TYPE. + + PR c++/49181 + * pt.c (get_mostly_instantiated_function_type): Use push_access_scope. + +2011-05-27 Nathan Froyd + + * cp-tree.h (building_stmt_tree): Delete. + * decl.c (save_function_data): Tweak initializer for x_cur_stmt_list. + (build_aggr_init_full_exprs): Call building_stmt_list_p + instead of building_stmt_tree. + (initialize_local_var): Likewise. + (finish_function): Likewise. + * decl2.c (finish_anon_union): Likewise. + * init.c (begin_init_stmts): Likewise. + (finish_init_stmts): Likewise. + (expand_aggr_init_1): Likewise. + * name-lookup.c (do_local_using_decl): Likewise. + (do_namespace_alias): Likewise. + (do_using_directive): Likewise. + (cp_emit_debug_info_for_using): Likewise. + * semantics.c (add_stmt): Assert that stmt_list_stack is non-empty. + +2011-05-27 Paolo Carlini + + PR c++/42056 + * typeck2.c (build_functional_cast): Complain early for invalid uses + of 'auto' and set type to error_mark_node. + +2011-05-26 Jason Merrill + + PR c++/47721 + * parser.c (cp_parser_member_declaration): Allow friend T. + * friend.c (make_friend_class): Ignore non-classes. + * pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM. + + DR 1004 + * pt.c (convert_template_argument): Don't complain about using + injected-class-name as template template argument. + + PR c++/47956 + * decl.c (check_static_variable_definition): Now static. + (cp_finish_decl): Call it here. + (grokdeclarator): Not here. + * pt.c (instantiate_class_template_1): Or here. + * cp-tree.h: Don't declare it. + +2011-05-26 Janis Johnson + Nathan Froyd + + PR c++/2288 + PR c++/18770 + * name-lookup.h (enum scope_kind): Add sk_cond. + * name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local. + Detect and report error for redeclaration from for-init or if + or switch condition. + (begin_scope): Handle sk_cond. + * semantics.c (begin_if_stmt): Use sk_cond. + (begin switch_stmt): Ditto. + +2011-05-26 Jason Merrill + + PR c++/48211 + * name-lookup.h (cp_class_binding): Make base a pointer. + * name-lookup.c (new_class_binding): Adjust. + (poplevel_class): Adjust. + + PR c++/48424 + * decl.c (grokparms): Function parameter packs don't need to + go at the end. + * pt.c (type_unification_real): But they aren't deduced otherwise. + +2011-05-25 Jason Merrill + + PR c++/48536 + * decl.c (build_enumerator): If incremented enumerator won't fit in + previous integral type, find one it will fit in. + + PR c++/48599 + * decl.c (create_array_type_for_decl): Complain about array of auto. + + PR c++/44994 + PR c++/49156 + * error.c (dump_template_bindings): Set processing_template_decl + for a partial instantiation. + + PR c++/45401 + * decl.c (grokdeclarator): Don't change type when adding rvalue ref + to another reference type. + + PR c++/44311 + * decl.c (case_conversion): New. + (finish_case_label): Use it. + + * ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT. + + PR c++/45698 + * pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT. + + PR c++/46005 + * decl.c (grokdeclarator): Complain about auto typedef. + + PR c++/46245 + * decl.c (grokdeclarator): Complain later for auto parameter. + * pt.c (splice_late_return_type): Handle use in a template + type-parameter. + + PR c++/46696 + * typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN. + + PR c++/47184 + * parser.c (cp_parser_parameter_declaration): Recognize + list-initialization. + (cp_parser_direct_declarator): Check for the closing + paren before parsing definitely. + + PR c++/48935 + * parser.c (cp_parser_constructor_declarator_p): Don't check + constructor_name_p for enums. + (cp_parser_diagnose_invalid_type_name): Correct error message. + + PR c++/45418 + * init.c (perform_member_init): Handle list-initialization + of array of non-trivial class type. + + PR c++/45080 + * pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op. + * semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P. + + PR c++/48292 + * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of + function parameter pack. + (tsubst_pack_expansion): Likewise. + + * cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has + TS_COMMON. + +2011-05-25 Jakub Jelinek + + * cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER + as TS_TYPED. + + PR c++/49136 + * semantics.c (cxx_eval_bit_field_ref): Handle the + case when BIT_FIELD_REF doesn't cover only a single field. + +2011-05-24 Jason Merrill + + PR c++/49042 + * pt.c (get_mostly_instantiated_function_type): Use + push_deferring_access_checks rather than set flag_access_control. + +2011-05-24 Nicola Pero , + + * parser.c (cp_parser_objc_class_ivars): Deal gracefully with a + syntax error in declaring an ObjC instance variable. + +2011-05-24 Jason Merrill + + PR c++/48884 + * class.c (pushclass): Accept NULL argument. + (popclass): Deal with popping null class. + * pt.c (push_access_scope, pop_access_scope): Use them rather than + push_to_top_level/pop_from_top_level. + (push_deduction_access_scope, pop_defarg_context): New. + (fn_type_unification): Use them. + * name-lookup.c (lookup_name_real_1): Check current_class_type. + +2011-05-24 Paolo Carlini + + * decl.c (grokdeclarator): Use current_class_name. + +2011-05-24 Joseph Myers + + * Make-lang.in (GXX_OBJS): Remove prefix.o. + (g++$(exeext)): Use libcommon-target.a. + (CXX_C_OBJS): Remove prefix.o. + +2011-05-23 Jason Merrill + + * pt.c (tsubst_copy_and_build): Use current_class_name. + + PR c++/49102 + * call.c (convert_arg_to_ellipsis): Call force_rvalue. + + PR c++/49105 + * typeck.c (cp_build_c_cast): Don't strip cv-quals when + converting to reference. + (build_static_cast_1): Update for glvalues. + + PR c++/49105 + * typeck.c (build_const_cast_1): Handle rvalue references. + + PR c++/47263 + * decl.c (use_eh_spec_block): Do use an EH spec block for a + lambda op(). + + PR c++/49058 + * call.c (splice_viable): Be strict in templates. + + PR c++/47336 + * error.c (dump_template_bindings): Suppress access control. + + PR c++/47544 + * pt.c (instantiate_decl): Handle =default. + + PR c++/48617 + * pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE. + +2011-05-23 Nathan Froyd + + * call.c (build_over_call): Tweak call to check_function_arguments. + * typeck.c (cp_build_function_call_vec): Likewise. + +2011-05-23 Jonathan Wakely + + PR c++/18016 + * init.c (perform_member_init): Check for self-initialization. + +2011-05-22 Jason Merrill + + PR c++/48647 + * typeck.c (composite_pointer_type_r): Return error_mark_node + on error in SFINAE context. + +2011-05-20 Jason Merrill + + PR c++/48945 + * decl.c (grokdeclarator): Don't add set const function-cv-qual + for constexpr fns to memfn_quals, just add it to the type. + (revert_static_member_fn): Don't complain about quals. + (check_static_quals): New. + (grokfndecl): Call it. + (start_preparsed_function): Don't call revert_static_member_fn. + + PR c++/48945 + * decl.c (revert_static_member_fn): Ignore const on constexpr fn. + + PR c++/48780 + * cvt.c (type_promotes_to): Don't promote scoped enums. + + PR c++/49066 + * decl.c (duplicate_decls): Preserve DECL_DELETED_FN. + + PR c++/48873 + * tree.c (stabilize_expr): Fix typo. + + DR 1073 + PR c++/49082 + * typeck.c (comp_except_specs): noexcept(false) is not compatible + with throw(type-list). + * typeck2.c (merge_exception_specifiers): noexcept(false) + beats any more limited specification. + + PR c++/24163 + PR c++/29131 + * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating + unqualified lookup. + * semantics.c (perform_koenig_lookup): Add complain parm. + * cp-tree.h: Adjust. + * parser.c (cp_parser_postfix_expression): Adjust. + (cp_parser_perform_range_for_lookup): Adjust. + +2011-05-20 Jason Merrill + + * semantics.c (finish_call_expr): SET_EXPR_LOCATION. + +2011-05-20 Joseph Myers + + * Make-lang.in (GXX_OBJS): Remove intl.o and version.o. + +2011-05-19 Jakub Jelinek + + PR c++/49043 + * decl.c (check_omp_return): Stop searching on sk_function_parms. + + PR c++/48869 + * method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument, + pass it down to locate_fn_flags. + * cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes. + * semantics.c (cxx_omp_create_clause_info): Adjust callers. + * cp-gimplify.c: Include splay-tree.h. + (splay_tree_compare_decl_uid, omp_var_to_track, + omp_cxx_notice_variable): New functions. + (struct cp_genericize_omp_taskreg): New type. + (struct cp_genericize_data): Add omp_ctx field. + (cp_genericize_r): Attempt to determine implicitly determined + firstprivate class type variables. + (cp_genericize): Clear omp_ctx. + * Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H). + +2011-05-18 Jason Merrill + + PR c++/48948 + PR c++/49015 + * class.c (finalize_literal_type_property): Do check + for constexpr member functions of non-literal class. + (finish_struct): Don't call check_deferred_constexpr_decls. + * cp-tree.h: Don't declare it. + (DECL_DEFERRED_CONSTEXPR_CHECK): Remove. + * decl.c (grok_special_member_properties): Don't check it + (grokfnedcl): Don't call validate_constexpr_fundecl. + (start_preparsed_function): Do call it. + * pt.c (tsubst_decl): Don't call it. + (instantiate_class_template_1): Don't call + check_deferred_constexpr_decls. + * semantics.c (literal_type_p): Check for any incompleteness. + (ensure_literal_type_for_constexpr_object): Likewise. + (is_valid_constexpr_fn): Revert deferral changes. + (validate_constexpr_fundecl): Likewise. + (register_constexpr_fundef): Likewise. + (check_deferred_constexpr_decls): Remove. + +2011-05-16 Jason Merrill + + PR c++/48969 + * pt.c (deduction_tsubst_fntype): Use a VEC initially. + +2011-05-15 Paolo Carlini + + * cxx-pretty-print.c: Update comment. + * semantics.c (trait_expr_value, finish_trait_expr): + Reorder the cases. + * parser.c (cp_parser_primary_expression): Likewise. + +2011-05-15 Jonathan Wakely + + PR c++/48994 + * parser.c (cp_parser_perform_range_for_lookup): Call complete_type. + +2011-05-13 Ville Voutilainen + + Implement final on class. + * class.c (check_bases): Diagnose derivation from a final class. + * cp-tree.h (lang_type_class): Add is_final and adjust dummy. + (CLASSTYPE_FINAL): New. + * parser.c (cp_parser_class_head): Parse class-virt-specifier, set + CLASSTYPE_FINAL. + * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL. + +2011-05-13 Jason Merrill + + PR c++/48969 + * pt.c (deduction_tsubst_fntype): New. + (fn_type_unification): Use it. + (init_template_processing): Initialize hash table. + (print_template_statistics): Print hash table stats. + + * call.c (build_op_call): Use timevar_cond_start/stop. + (build_user_type_conversion): Likewise. + +2011-05-12 Jason Merrill + + * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New. + * semantics.c (validate_constexpr_fundecl): Set it. + (check_deferred_constexpr_decls): Clear it. + (register_constexpr_fundef): Make sure it isn't set. + * decl.c (grok_special_member_properties): Check it. + +2011-05-11 Jason Merrill + + PR c++/48948 + * semantics.c (validate_constexpr_fundecl): Defer checking if + an argument type is being defined. + (is_valid_constexpr_fn): Add defer_ok parm. + (cxx_eval_call_expression): Adjust. + (check_deferred_constexpr_decls): New. + (literal_type_p): Make sure type isn't being defined. + (ensure_literal_type_for_constexpr_object): Handle type being defined. + * cp-tree.h: Declare check_deferred_constexpr_decls. + * decl.c (grokfndecl): Call validate_constexpr_fundecl here. + (start_preparsed_function, cp_finish_decl): Not here. + * class.c (finalize_literal_type_property): Don't call + validate_constexpr_fundecl. + (finish_struct): Call check_deferred_constexpr_decls. + * pt.c (tsubst_decl): Call validate_constexpr_fundecl. + (instantiate_class_template): Call check_deferred_constexpr_decls. + + * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO + rather than DECL_TEMPLATE_INSTANTIATION. + (cxx_eval_call_expression): Likewise. + + * semantics.c (register_constexpr_fundef): Add to hash table here. + (validate_constexpr_fundecl): Not here. + + * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once. + + * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p, + do call maybe_constant_value in C++0x mode. + * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL. + + PR c++/48745 + * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR. + +2011-05-11 Nathan Froyd + + * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use + TYPE_VALUES_RAW. + (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise. + (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise. + (TEMPLATE_TYPE_PARM_INDEX): Likewise. + +2011-05-10 Jason Merrill + + PR c++/48930 + * class.c (type_build_ctor_call): New. + * cp-tree.h: Declare it. + * decl.c (check_initializer): Use it instead of + TYPE_NEEDS_CONSTRUCTING. + * init.c (build_value_init, build_value_init_noctor): Likewise. + (perform_member_init, expand_aggr_init_1, build_new_1): Likewise. + (build_vec_init): Likewise. + * typeck2.c (process_init_constructor_array): Likewise. + (process_init_constructor_record): Likewise. + + PR c++/48736 + * pt.c (tsubst_copy_and_build): Handle substitution of a pack + expansion producing another expansion. + +2011-05-10 Ville Voutilainen + + Fixes for override/final. + * class.c (check_for_override): Diagnose final on a nonvirtual + member function, diagnose override for a virtual with no matching + override. Don't fiddle around with DECL_VINDEX. + +2011-05-10 Nathan Froyd + + * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand. + * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. + * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new + operand of EXPR_PACK_EXPANSION. + (cp_tree_operand_length): Declare. + * tree.c (cp_tree_operand_length): Define. + (cp_tree_equal): Call it. + * pt.c (value_dependent_expr_P): Likewise. + * mangle.c (write_expression): Likewise. + +2011-05-09 Paolo Carlini + + PR c++/48737 + PR c++/48744 + * decl.c (reshape_init): Take a complain parameter and do + not call error if tf_error is not set. + (check_initializer, reshape_init_r, reshape_init_array, + reshape_init_array_1, reshape_init_vector, reshape_init_class): + Adjust. + * typeck2.c (digest_init_r): Take a complain parameter and + pass it to convert_for_initialization. + (digest_init, digest_init_flags, process_init_constructor_array, + process_init_constructor_record, process_init_constructor_union, + process_init_constructor, digest_init_r): Adjust. + * init.c (expand_default_init, build_new_1): Likewise. + * typeck.c (cp_build_modify_expr): Likewise. + * decl2.c (grokfield): Likewise. + * call.c (convert_like_real, convert_default_arg): Likewise. + * semantics.c (finish_compound_literal): Pass complain to + reshape_init and digest_init. + * cp-tree.h: Adjust declarations. + +2011-05-07 Fabien Chêne + + PR c++/48859 + * init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the + recursion if there is user defined constructor. + +2011-05-09 Jason Merrill + + PR c++/34772 + * decl.c (initialize_local_var): Use DECL_INITIAL for simple + initialization. + +2011-05-08 Ville Voutilainen + + Implement final/override for member functions. + * class.c (check_for_override): Check for DECL_OVERRIDE_P. + * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New. + (cp_virt_specifiers, enum virt_specifier): New. + * decl.c (set_virt_specifiers): New. + (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields. + * parser.c (make_call_declarator): add virt-specifiers parameter. + (cp_parser_lambda_declarator_opt): Adjust. + (cp_parser_direct_declarator): Likewise. + (cp_parser_virt_specifier_seq_opt): New. + * search.c (check_final_overrider): Diagnose attempts to override + a final member function. + +2011-05-09 Dodji Seketeli + + PR c++/48574 + * class.c (fixed_type_or_null): Use type_dependent_p_push to test + if the instance has a dependent initializer. + +2011-05-08 Paolo Carlini + + PR c++/48816 + * cxx-pretty-print.c (pp_cxx_template_declaration): Remove + effectively unused variable. + +2011-05-07 Eric Botcazou + + * name-lookup.h (global_bindings_p): Adjust prototype. + * name-lookup.c (global_bindings_p): Return bool. + +2011-05-06 Jason Merrill + + * decl.c (stabilize_save_expr_r): Set *walk_subtrees as + appropriate. + + PR c++/48909 + * semantics.c (cxx_eval_conditional_expression): Check + integer_zerop instead. + (potential_constant_expression_1): Likewise. + + PR c++/48911 + * semantics.c (cxx_eval_array_reference): Handle implicit + initializers. + +2011-05-06 Nathan Froyd + + * cp-tree.h (type_of_this_parm, class_of_this_parm): New functions. + * call.c (standard_conversion): Call class_of_this_parm. + * cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise. + (pp_cxx_direct_abstract_declarator): Likewise. + * decl2.c (change_return_type): Likewise. + (cp_reconstruct_complex_type): Likewise. + * error.c (dump_type_suffix, dump_function_decl): Likewise. + * mangle.c (write_function_type): Likewise. + * pt.c (unify): Likewise. + * typeck.c (merge_types, type_memfn_quals): Likewise. + * decl.c (build_this_parm): Call type_of_this_parm. + +2011-05-06 Dodji Seketeli + + PR c++/48838 + * cp-tree.h (non_static_member_function_p): Declare new function. + * tree.c (non_static_member_function_p): Define it. + * semantics.c (finish_call_expr): Use it. + +2011-05-05 Nathan Froyd + + * decl.c (finish_case_label): Omit the loc argument to + build_case_label. + +2011-05-05 Jason Merrill + + * cp-tree.h (REFERENCE_REF_P): Just check the type. + * cvt.c (convert_from_reference): Adjust. + * pt.c (build_non_dependent_expr): Adjust. + * semantics.c (finish_offsetof): Adjust. + * tree.c (lvalue_kind): Use it. + + PR c++/48873 + * tree.c (stabilize_expr): Don't make gratuitous copies of classes. + +2011-05-05 Eric Botcazou + + * decl.c (start_preparsed_function): Do not set + dont_save_pending_sizes_p. + +2011-05-05 Joseph Myers + + * parser.c (cp_parser_objc_method_definition_list): Update call to + objc_start_method_definition. + +2011-05-04 Jason Merrill + + PR c++/48749 + * class.c (resolves_to_fixed_type_p): Don't look closely + in templates. + +2011-05-03 Paolo Carlini + + PR c++/28501 + * call.c (add_builtin_candidate): Handle REALPART_EXPR and + IMAGPART_EXPR. + +2011-05-02 Lawrence Crowl + + * decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop. + (poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code. + Change TV_NAME_LOOKUP to start/stop. + (define_label): Refactor timevar calls out to a wrapper function. + Change TV_NAME_LOOKUP to start/stop. + (xref_tag): Likewise. + (lookup_label): Refactor timevar calls out to a wrapper function. + Change TV_NAME_LOOKUP to start_cond/stop_cond. + + * pt.c: (instantiate_class_template): Add a wrapper to push/pop new + TV_TEMPLATE_INST. + (instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST. + (lookup_template_class): Refactor timevar calls out to a wrapper + function. Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST. + (instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST. + + * name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop. + (poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond. + (push_namespace): Likewise. + (pop_nested_namespace): Likewise. + (pushdecl_namespace_level): Likewise. + (store_class_bindings): Likewise. + (push_to_top_level): Likewise. + (identifier_type_value): Refactor timevar calls out to a wrapper + function. Change TV_NAME_LOOKUP to start/stop. + (find_binding): Likewise. + (push_using_decl): Likewise. + (lookup_arg_dependent): Likewise. + (push_using_directive): Likewise. + (qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN + to plain code. Change TV_NAME_LOOKUP to start/stop. + (lookup_type_current_level): Likewise. Refactor inner return to + break. + (pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain + code. Change TV_NAME_LOOKUP to start_cond/stop_cond. + (pushdecl_top_level_1): Likewise. + (lookup_using_namespace): Likewise. + (pushdecl_with_scope): Refactor timevar calls out to a wrapper + function. Change TV_NAME_LOOKUP to start_cond/stop_cond. + (push_overloaded_decl): Likewise. + (push_class_level_binding): Likewise. + (namespace_binding): Likewise. + (set_namespace_binding): Likewise. + (supplement_binding): Likewise. + (unqualified_namespace_lookup): Likewise. + (lookup_name_real): Likewise. + (lookup_type_scope): Likewise. + (namespace_ancestor): Likewise. + (lookup_name_innermost_nonclass_level): Likewise. + (pushtag): Likewise. + (pop_from_top_level): Likewise. + (pushdecl_maybe_friend): Refactor timevar calls out to a wrapper + function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Wrap long + lines. + (add_using_namespace): Refactor timevar calls out to a wrapper + function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Bypass + wrapper on call to self. + + * decl2.c: (cp_write_global_declarations): Add start/stop of + new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO. + Remove push/pop calls to TV_VARCONST. + + * parser.c: Add include of "timevar.h". + (cp_parser_explicit_instantiation): Add push/pop calls to + TV_TEMPLATE_INST. + (cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM. + (cp_parser_class_specifier): Add wrapper to add push/pop calls to + TV_PARSE_STRUCT. + (cp_parser_function_definition_from_specifiers_and_declarator): Add + push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE. + (cp_parser_late_parsing_for_member): Add push/pop calls to + new TV_PARSE_INMETH. + + * call.c: Add include of "timevar.h". + (convert_class_to_reference): Wrap and add push/pop calls to + TV_OVERLOAD. + (build_op_call): Likewise. + (build_conditional_expr): Likewise. + (build_new_op): Likewise. + (build_new_method_call): Likewise. + (build_user_type_conversion): Reorganize to single return and add + push/pop calls to TV_OVERLOAD. + (perform_overload_resolution): Likewise. + + * Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H). + +2011-05-02 Jason Merrill + + * tree.c (build_vec_init_expr): Take complain parm. + (build_vec_init_elt): Likewise. Free arg vector. + (diagnose_non_constexpr_vec_init, build_array_copy): Adjust. + * cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK. + (VEC_INIT_EXPR_INIT): Likewise. + Adjust build_vec_init_expr declaration. + * init.c (perform_member_init): Adjust. + + Revert: + PR c++/40975 + * cp-tree.def (VEC_INIT_EXPR): Add third operand. + * cp-tree.h (VEC_INIT_EXPR_NELTS): New. + * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it. + * tree.c (build_vec_init_expr): Handle getting pointer/nelts. + (build_vec_init_elt): Don't expect an array type. + (build_array_copy): Adjust. + * init.c (perform_member_init): Adjust. + (build_new_1): Use build_vec_init_expr. + + PR c++/48834 + * tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS. + Protect an explicit target. + + PR c++/48446 + * decl.c (stabilize_save_expr_r, stabilize_vla_size): New. + (compute_array_index_type): Revert earlier 48446 changes. + (grokdeclarator): Use stabilize_vla_size. + +2011-05-02 Dmitry Gorbachev + Eric Botcazou + + * parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE + instead of inappropriate zero values. + +2011-05-02 Paolo Carlini + + PR c++/47969 + * decl.c (compute_array_index_type): Check build_expr_type_conversion + return value for NULL_TREE. + +2011-04-29 Paolo Carlini + + PR c++/48606 + * init.c (perform_member_init): Check build_value_init return + value for error_mark_node. + +2011-04-29 Diego Novillo + Le-Chun Wu + + * call.c (conversion_null_warnings): Also handle assignments + when warning about NULL conversions. + +2011-04-29 Le-Chun Wu + + * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define. + * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs. + (build_over_call): Use it to determine whether to emit a NULL + warning for template function instantiations. + (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if + EXPLICIT_TARGS is set. + +2011-04-29 Nicola Pero , + Mike Stump + + * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only + in maintainer mode. Use the --output-file option of gperf instead + of > to prevent creating an empty cp/cfns.h when gperf is not + available. + +2011-04-28 Paolo Carlini + + PR c++/48798 + * semantics.c (finish_base_specifier): cv-qualified base class + is fine, per DR 484. + +2011-04-28 Dodji Seketeli + + PR c++/48656 + * semantics.c (finish_call_expr): Don't forget BASELINK nodes when + considering call expressions involving a member function. + +2011-04-28 Paolo Carlini + + PR c++/48530 + * tree.c (build_cplus_new): Check build_target_expr return + value for error_mark_node. + +2011-04-28 Paolo Carlini + + PR c++/48771 + * semantics.c (literal_type_p): Reference types are literal types, + per the FDIS. + (valid_type_in_constexpr_fundecl_p): Remove. + (is_valid_constexpr_fn): Adjust. + +2011-04-27 Jason Merrill + + PR libstdc++/48760 + Implement list-initialization of _Complex. + * decl.c (reshape_init_r): Allow {real,imag} for _Complex. + (check_initializer): Likewise. + * call.c (build_complex_conv): New. + (implicit_conversion): Call it. + (convert_like_real): Handle it. + * typeck2.c (check_narrowing): Handle it. + + * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to + decide whether to delete. + (build_vec_init): Pass sfk_complete_destructor. + + PR c++/40975 + * cp-tree.def (VEC_INIT_EXPR): Add third operand. + * cp-tree.h (VEC_INIT_EXPR_NELTS): New. + * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it. + * tree.c (build_vec_init_expr): Handle getting pointer/nelts. + (build_vec_init_elt): Don't expect an array type. + (build_array_copy): Adjust. + * init.c (perform_member_init): Adjust. + (build_new_1): Use build_vec_init_expr. + + * class.c (resolve_address_of_overloaded_function): Don't + change OVERLOAD to TREE_LIST. + * pt.c (print_candidates_1): Remove nonsensical assert. + + PR c++/48046 + * parser.c (cp_parser_diagnose_invalid_type_name): Commit + to tentative parse sooner. + +2011-04-26 Jason Merrill + + PR c++/42687 + * parser.c (cp_parser_primary_expression): Set *idk to + CP_ID_KIND_NONE for a parenthesized identifier. + + * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname. + (cxx_print_identifier): Correct indentation. + + PR c++/48530 + * decl.c (cxx_maybe_build_cleanup): Add complain parm. + * tree.c (force_target_expr): Add complain parm. + (build_target_expr_with_type): Likewise. + (get_target_expr_sfinae): Split out. + (build_vec_init_expr, bot_manip): Adjust. + * init.c (build_vec_delete, build_vec_delete_1): Add complain parm. + (build_delete, build_dtor_call): Likewise. + (perform_direct_initialization_if_possible): Adjust. + (build_vec_init): Handle error return. + * cvt.c (force_rvalue): Add complain parm. + Call build_special_member_call directly. + * decl2.c (delete_sanity): Add complain parm. + (build_cleanup): Adjust. + * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust. + * semantics.c (finish_stmt_expr_expr): Adjust. + (finish_compound_literal): Adjust. + * parser.c (cp_parser_delete_expression): Adjust. + * typeck2.c (build_functional_cast): Adjust. + * cp-tree.h: Adjust. + +2011-04-26 Martin Jambor + + * class.c (cp_fold_obj_type_ref): Remove. + * cp-tree.h (cp_fold_obj_type_ref): Remove declaration. + +2011-04-25 Paolo Carlini + + * cp-tree.def: Add a new UNDERLYING_TYPE tree code. + * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy. + (UNDERLYING_TYPE_TYPE): Add. + * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE + as TS_COMMON. + * parser.c (cp_lexer_next_token_is_decl_specifier_keyword, + cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE. + (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy. + * semantics.c (finish_underlying_type): New. + * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE. + * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise. + * cxx-pretty-print.c (p_cxx_type_id): Likewise. + * tree.c (cp_walk_subtrees): Likewise. + * pt.c (for_each_template_parm_r, tsubst, unify, + dependent_type_p_r): Likewise. + * mangle.c (write_type): Sorry for __underlying_type. + +2011-04-25 Jason Merrill + + PR c++/48707 + * decl.c (type_dependent_init_p): New. + (cp_finish_decl): Check it. + * pt.c (any_type_dependent_elements_p): New. + * cp-tree.h: Declare it. + +2011-04-20 Jason Merrill + + * semantics.c (finish_compound_literal): Don't put an array + with a dtor in a static variable. + + * call.c (build_over_call): Handle trivial dtor. + + * search.c (lookup_fnfields_slot): Call complete_type. + + PR c++/48594 + * decl2.c (build_offset_ref_call_from_tree): Move + non-dependency of object outside condition. + + PR c++/48657 + * decl.c (cp_finish_decl): Simplify template handling. + +2011-04-20 Jim Meyering + + * tree.c (cxx_printable_name_internal): Remove useless if-before-free. + +2011-04-19 Jason Merrill + + PR c++/46304 + * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR. + + PR c++/45267 + * decl.c (duplicate_decls): Keep always_inline attribute + in sync with DECL_DISREGARD_INLINE_LIMITS. + +2011-04-18 Jason Merrill + + PR c++/48569 + * typeck2.c (build_functional_cast): Handle VOID_TYPE. + + PR c++/48537 + * init.c (build_value_init): Handle UNION_TYPE the same. + +2011-04-18 Jakub Jelinek + + PR c++/48632 + * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr + for type dependent pointers. + +2011-04-18 Jim Meyering + + * pt.c (type_unification_real): Fix typo in comment: s/in in/in/. + +2011-04-17 Jan Hubicka + + * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed + gotos. + +2011-04-17 Jason Merrill + + PR c++/48531 + * typeck2.c (build_functional_cast): Disallow array type. + + * tree.c (get_target_expr): Handle VEC_INIT_EXPR. + +2011-04-17 Jan Hubicka + + * class.c (cp_fold_obj_type_ref): Drop vtable_method. + +2011-04-15 Rodrigo Rivas Costa + + Implement N3271 + * parser.c (cp_convert_range_for): Split into + cp_parser_perform_range_for_lookup. + (cp_parser_perform_range_for_lookup): New. + (cp_parser_range_for_member_function): New. + (cp_parser_for_init_statement): Correct error message. + * semantics.c (finish_call_expr): Accept COMPONENT_REF. + +2011-04-14 Nicola Pero + + * parser.c (cp_parser_objc_protocol_declaration): Updated for + change from objc_declare_protocols() to objc_declare_protocol(). + +2011-04-14 Nathan Froyd + + PR objc++/48479 + * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable + and return immediately. + +2011-04-14 Nathan Froyd + + * cp-tree.def (SWITCH_STMT): Add an extra operand. + * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. + * cp-tree.h (SWITCH_STMT_SCOPE): Define. + * semantics.c (begin_switch__stmt): Pass scope to build_stmt. + (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN. + +2011-04-14 Nathan Froyd + + * cp-tree.def (IF_STMT): Add an extra operand. + * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED. + * cp-tree.h (IF_SCOPE): Define. + * semantics.c (begin_if_stmt): Pass scope to build_stmt. + (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN. + +2011-04-14 Nathan Froyd + + * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand. + * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED. + * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define. + * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt. + Use FOR_SCOPE instead of TREE_CHAIN. + (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE. + (finish_for_stmt): Likewise. + +2011-04-14 Jason Merrill + + * parser.c (cp_parser_postfix_expression): Fix flags passed to + build_new_method_call. + * semantics.c (finish_call_expr): Likewise. + + PR c++/48531 + * init.c (build_value_init_noctor): Check complain consistently. + + PR c++/48557 + * typeck.c (cp_build_binary_op): Don't decay void operands. + + PR c++/48446 + * decl.c (compute_array_index_type): Use get_temp_regvar instead + of variable_size. + * init.c (get_temp_regvar): No longer static. + * cp-tree.h: Declare it. + +2011-04-14 Nicola Pero + + * parser.c (cp_parser_objc_class_declaration): Updated for change + in objc_declare_class(). + +2011-04-14 Nathan Froyd + + * decl.c (poplevel): Use block_chainon. + +2011-04-13 Jason Merrill + + PR c++/48594 + * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor + or pointer to (non-member) function. + +2011-04-13 Jakub Jelinek + + PR c++/48570 + * semantics.c (cxx_eval_array_reference): Handle reading from + wchar_t, char16_t and char32_t STRING_CST. + +2011-04-13 Dodji Seketeli + + PR c++/48574 + * class.c (fixed_type_or_null): We cannot determine the dynamic + type of a reference variable if its initializer is dependent. + +2011-04-13 Jason Merrill + + PR c++/48581 + * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about + unqualified lookup failing if we're still in a template. + +2011-04-12 Nathan Froyd + + * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move + tree_contains_struct initialization to... + * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_* + macros. + * cp-objcp-common.h (cp_common_init_ts): Declare. + * cp-tree.h (union lang_tree_node): Check for TS_COMMON before + calling TREE_CHAIN. + +2011-04-12 Nicola Pero + + * parser.c (cp_parser_objc_message_expression): Updated call + to objc_build_message_expr. + +2011-04-12 Martin Jambor + + * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of + cgraph_get_create_node. + * decl2.c (cp_write_global_declarations): Call cgraph_get_node + instead of cgraph_get_create_node. + * method.c (make_alias_for_thunk): Call cgraph_get_node + instead of cgraph_get_create_node, assert it returns non-NULL. + (use_thunk): Likewise. + * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only + when flag_syntax_only is not set. Call cgraph_get_node instead of + cgraph_get_create_node. + (maybe_clone_body): Call cgraph_get_node instead of + cgraph_get_create_node. + +2011-04-12 Martin Jambor + + * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node + instead of cgraph_node. + * decl2.c (cxx_callgraph_analyze_expr): Likewise. + (cp_write_global_declarations): Likewise. + * optimize.c (maybe_clone_body): Likewise. + * semantics.c (maybe_add_lambda_conv_op): Likewise. + * mangle.c (mangle_decl): Likewise. + * method.c (make_alias_for_thunk): Likewise. + (use_thunk): Likewise. + +2011-04-11 Jason Merrill + + PR c++/48535 + * decl.c (cp_complete_array_type_or_error): New. + * semantics.c (finish_compound_literal): Use it. + * cp-tree.h: Declare it. + + PR c++/48535 + * semantics.c (finish_compound_literal): Handle references. + + PR c++/48535 + * semantics.c (finish_compound_literal): Take complain parm. + (build_lambda_object): Adjust. + * cp-tree.h: Adjust. + * call.c (convert_like_real): Adjust. + * decl.c (check_initializer): Adjust. + * parser.c (cp_parser_postfix_expression): Adjust. + (cp_parser_functional_cast): Adjust. + * pt.c (tsubst_copy_and_build): Adjust. + * typeck2.c (process_init_constructor_record): Adjust. + + PR c++/48534 + * cvt.c (ocp_convert): Use build_nop to convert to underlying type + of scoped enum. + + PR c++/48523 + * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather + than cp_build_indirect_ref. + + PR c++/48457, Core 1238 + * call.c (reference_binding): Allow rvalue reference to bind to + function lvalue. + * tree.c (lvalue_kind): Functions are always lvalues. + +2011-04-07 Jason Merrill + + PR c++/48500 + * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check + arguments even if we don't know the function. + + PR c++/48481 + * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL + at the end of the chain. + * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT. + (iterative_hash_template_arg): Likewise. + + PR c++/48481 + * cp-tree.h (OVL_ARG_DEPENDENT): New. + * name-lookup.c (add_function): Set it. + * semantics.c (finish_call_expr): Free OVERLOADs if it's set. + + PR c++/48481 + * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot. + Release unused vector. + + PR c++/48451 + * pt.c (fn_type_unification): Don't clear incomplete pack flag. + (type_unification_real): Clear it here instead. + + PR c++/48468 + * except.c (build_noexcept_spec): Propagate error_mark_node. + (finish_noexcept_expr): Likewise. + + PR c++/48452 + * typeck.c (build_x_compound_expr_from_list): Return error_mark_node + in SFINAE context. + + PR c++/48450 + * call.c (resolve_args): Take complain. + (build_new_function_call, build_operator_new_call): Pass it. + (build_op_call, build_new_op, build_new_method_call): Pass it. + + PR c++/48450 + * typeck.c (check_for_casting_away_constness): Take complain. + (build_static_cast_1, build_reinterpret_cast_1): Pass it. + (build_const_cast_1): Pass it. Take full complain parm. + (build_const_cast, cp_build_c_cast): Adjust. + + * tree.c (build_aggr_init_expr): Always return error_mark_node + on abstract violation. + + PR c++/48450 + * tree.c (build_cplus_new, build_aggr_init_expr): Take complain. + (bot_manip): Adjust. + * cp-tree.h: Adjust. + * call.c (convert_like_real, build_cxx_call): Adjust. + (perform_direct_initialization_if_possible): Adjust. + * cvt.c (ocp_convert): Adjust. + * init.c (build_value_init): Adjust. + * semantics.c (maybe_add_lambda_conv_op): Adjust. + * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust. + * typeck2.c (build_functional_cast): Adjust. + + * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top + level. + (perform_member_init): Not here. + * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special + case to templates. + (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case. + + PR c++/48449 + * typeck2.c (build_functional_cast): Check complain consistently. + Use build_value_init and abstract_virtuals_error_sfinae. + (abstract_virtuals_error_sfinae): Split out. + * cp-tree.h: Declare it. + * init.c (build_new_1): Use it. + (build_value_init_noctor): Handle FUNCTION_TYPE. + + * semantics.c (finish_decltype_type): Simplify handling of unknown + type. + + * semantics.c (finish_decltype_type): Add complain parm. + * cp-tree.h: Adjust. + * parser.c (cp_parser_decltype): Adjust. + * pt.c (tsubst): Adjust. + + PR c++/48450 + * cvt.c (ocp_convert): Handle converting scoped enum to bool. + +2011-03-31 Jason Merrill + + PR c++/48277 + * semantics.c (finish_call_expr): Remove assert. + + PR c++/48280 + * method.c (defaultable_fn_check): Templates are not defaultable. + + * parser.c (cp_parser_init_declarator): Avoid redundant + cp_finish_decl for member declarations. + +2011-03-30 Jason Merrill + + PR c++/48212 + * semantics.c (non_const_var_error): Just return if DECL_INITIAL + is error_mark_node. + +2011-03-30 Jason Merrill + + PR c++/48369 + * semantics.c (potential_constant_expression_1): Handle + UNORDERED_EXPR and ORDERED_EXPR. + + PR c++/48281 + * semantics.c (finish_compound_literal): Do put static/constant + arrays in static variables. + + * call.c (convert_like_real) [ck_list]: Build up the + initializer_list object directly. + * decl.c (build_init_list_var_init): Adjust. + + * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR. + * decl.c (reshape_init_array_1): Likewise. + +2011-03-29 Jason Merrill + + PR c++/48265 + * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure + the variable is constant before looking at its initializer. + + PR c++/48319 + * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR. + + PR c++/48089 + * semantics.c (potential_constant_expression_1): Change error about + use of *this in constructor into sorry. + + PR c++/48296 + * decl.c (cp_finish_decl): Defer validation of constexpr member + functions. + * class.c (finalize_literal_type_property): Validate them here. + * semantics.c (is_valid_constexpr_fn): Don't check completeness. + + * semantics.c (is_valid_constexpr_fn): Specify input location. + +2011-03-28 Jason Merrill + + PR c++/48313 + * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction + from overloaded function. + + Core 1232 + * call.c (build_array_conv): New. + (implicit_conversion): Use it. + + * call.c (reference_binding): Allow direct binding to an array + rvalue. + + Core 898 + * parser.c (cp_parser_compound_statement): Add function_body parm. + Complain about non-body compound-stmt in constexpr fn. + (cp_parser_primary_expression, cp_parser_statement): Adjust. + (cp_parser_implicitly_scoped_statement): Adjust. + (cp_parser_function_body, cp_parser_try_block): Adjust. + (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust. + (cp_parser_objc_try_catch_finally_statement): Adjust. + + Core 898 + * semantics.c (constexpr_fn_retval): New. Allow using-declaration + and using-definition. + (register_constexpr_fundef): Call it. + + * except.c (build_noexcept_spec): Call cxx_constant_value after + converting to bool. + +2011-03-25 Kai Tietz + + * lex.c (interface_strcmp): Handle dos-paths. + (handle_pragma_implementation): Use filename_cmp instead of + strcmp. + (in_main_input_context): Likewise. + +2011-03-25 Jason Merrill + + Core 1135 + * method.c (defaulted_late_check): Check for exception spec mismatch. + (defaultable_fn_check): Allow exception spec and virtual. + * class.c (check_for_override): A virtual dtor is non-trivial. + + PR c++/48289 + * pt.c (build_non_dependent_expr): Keep dereferences outside the + NON_DEPENDENT_EXPR. + +2011-03-25 Kai Tietz + + * decl.c (decls_match): Replace target hook + call of comp_type_attributes by version in tree.c file. + * search.c (check_final_overrider): Likewise. + * typeck.c (structural_comptypes): Likewise. + +2011-03-21 Kai Tietz + + PR target/12171 + * cxx-pretty-print.c (pp_cxx_ptr_operator): + Display allowed attributes for function pointer types. + * error.c (dump_type_prefix): Likewise. + + * tree.c (cxx_attribute_table): Adjust table. + +2011-03-18 Jason Merrill + + PR c++/48162 + * semantics.c (finish_call_expr): Allow TARGET_EXPR for now. + + PR c++/48118 + * call.c (build_over_call): Don't skip ck_rvalue. + +2011-03-17 Jason Merrill + + PR c++/47504 + * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let + the conversion set TREE_OVERFLOW. + + Core 1212 + * semantics.c (finish_decltype_type): Return T&& for xvalue. + * typeck.c (unlowered_expr_type): Preserve cv-quals. + + PR c++/48166 + * decl.c (revert_static_member_fn): Strip function-cv-quals. + +2011-03-16 Jason Merrill + + PR c++/48089 + * semantics.c (potential_constant_expression_1): Don't allow *this + in a constructor. + (register_constexpr_fundef): Use potential_rvalue_constant_expression. + + PR c++/47301 + * decl.c (compute_array_index_type): Don't bother trying to deal + with literal classes in ABI v1. + + PR c++/46336 + * decl.c (duplicate_decls): Return NULL_TREE for clashing + C functions. + + PR c++/47570 + * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't + use the generic binary expression handling. + +2011-03-16 Diego Novillo + + * Make-lang.in (CXX_PARSER_H): New. + (cp/parser.o): Add dependency on CXX_PARSER_H. + Add dependency on tree-pretty-print.h + (cp/cp-lang.o): Add dependency on CXX_PARSER_H. + * cp-lang.c: Include parser.h. + * parser.c: Include parser.h. + (struct cp_token): Add bitfield purged_p. + Update all users. + Move to parser.h. + (CPP_PURGED): Remove. Update all users. + (struct cp_lexer): Change field buffer to be a VEC of cp_token. + Remove field buffer_length. + Update all users. + Move to parser.h. + (struct tree_check): Move to parser.h. + (cp_token_position): Likewise. + (struct cp_token_cache): Likewise. + (CPP_KEYWORD): Likewise. + (CPP_TEMPLATE_ID): Likewise. + (CPP_NESTED_NAME_SPECIFIER): Likewise. + (N_CP_TTYPES): Likewise. + (enum cp_parser_status_kind): Likewise. + (struct cp_parser_context): Likewise. + (struct cp_default_arg_entry_d): Likewise. + (struct cp_unparsed_functions_entry_d): Likewise. + (struct cp_parser): Likewise. + (cp_lexer_dump_tokens): New. + (cp_lexer_debug_tokens): New. + (cp_lexer_finished_p): New. + (cp_lexer_alloc): Factor out of cp_lexer_new_main. + (cp_lexer_new_main): Re-write main lexing loop to push + tokens into the new VEC buffer. + (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens. + Do not abort if the token type is not recognized, just print + its code. + * parser.h: New file. + * config-lang.in (gtfiles): Add cp/parser.h. + +2011-03-16 Jason Merrill + + Core 1148 + * typeck.c (check_return_expr): Fix conditions for setting + LOOKUP_PREFER_RVALUE. + + * call.c (build_over_call): Remove require_complete_type_sfinae call. + + PR c++/48132 + * decl.c (check_array_designated_initializer): Allow integer index. + (reshape_init_array_1): Set index on the elements. + +2011-03-16 Jason Merrill + + PR c++/48113 + * typeck.c (convert_for_initialization): Use + perform_implicit_conversion_flags. + * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set + rvaluedness_matches_p on ck_rvalue. + (convert_like_real) [ck_rvalue]: And restore it here. + + PR c++/48115 + * call.c (convert_arg_to_ellipsis): Handle incomplete type. + +2011-03-16 Jason Merrill + + * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't + committed to this tentative parse. + + PR c++/47999 + * semantics.c (finish_call_expr): Preserve reference semantics + in templates. + + * call.c (convert_default_arg): Use LOOKUP_IMPLICIT. + +2011-03-16 Jakub Jelinek + + * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if + DECL_LANG_SPECIFIC is NULL. + +2011-03-15 Jason Merrill + + Core 1074 + * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't + check value_dependent_expression_p on the operand. + + * semantics.c (push_cx_call_context): Return bool. + (cxx_eval_call_expression): Handle excess depth. + + Core 1191 + * method.c (synthesized_method_walk): Cleanups don't affect the + triviality of a constructor, but do affect deletion and exception + specification. + +2011-03-15 Rodrigo Rivas Costa + + * decl2.c (cp_check_const_attributes): New. + (cplus_decl_attributes): Call cp_check_const_attributes. + +2011-03-15 Jason Merrill + + PR c++/34758 + * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for + recursion first. + (push_defarg_context, pop_defarg_context): New. + * parser.c (cp_parser_late_parsing_default_args): Use them. + * cp-tree.h: Declare them. + +2011-03-11 Dodji Seketeli + + * call.c (add_builtin_candidate): The type of + the argument of the indirection operator should not be dependent. + Fix the comment. + +2011-03-11 Jason Merrill + + PR c++/47125 + * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error. + + PR c++/47144 + * parser.c (cp_parser_template_type_arg): Set + type_definition_forbidden_message. + + PR c++/47808 + * decl.c (compute_array_index_type): Discard folding + if it didn't produce a constant. + +2011-03-11 Jakub Jelinek + + PR c++/48035 + * init.c (build_zero_init_1): Extracted from build_zero_init. + Add FIELD_SIZE argument, if non-NULL and field bit_position + as not smaller than that, don't add that field's initializer. + Pass DECL_SIZE as last argument to build_zero_init_1 + for DECL_FIELD_IS_BASE fields. + (build_zero_init): Use build_zero_init_1. + +2011-03-10 Jason Merrill + + PR c++/48029 + * pt.c (iterative_hash_template_arg): Remove special case for + ARRAY_TYPE. + + PR c++/47198 + * parser.c (cp_parser_single_declaration): Just return if + cp_parser_parse_and_diagnose_invalid_type_name complained. + +2011-03-09 Jason Merrill + + PR c++/44629 + * pt.c (unify): An unresolved overload is a nondeduced context. + +2011-03-09 Martin Jambor + + PR tree-optimization/47714 + * method.c (use_thunk): Clear addressable flag of thunk arguments. + +2011-03-08 Dodji Seketeli + + PR c++/47705 + * pt.c (convert_nontype_argument): Only call decay_conversion on + arrays. + +2011-03-08 Jason Merrill + + PR c++/47488 + * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry. + + PR c++/47705 + * pt.c (convert_nontype_argument): Don't crash on non-pointer + argument to pointer parameter. + + PR c++/45651 + * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on + !TREE_PUBLIC decls. + +2011-03-08 Dodji Seketeli + + PR c++/47957 + * name-lookup.c (binding_to_template_parms_of_scope_p): Only + consider scopes of primary template definitions. Adjust comments. + +2011-03-07 Jason Merrill + + PR c++/48003 + * pt.c (convert_nontype_argument): Fix -fpermissive allowing + integer overflow. + * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW. + + PR c++/48015 + * init.c (constant_value_1): Always require init to be TREE_CONSTANT. + + PR c++/48008 + * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here. + (write_CV_qualifiers_for_type): Not here. + +2011-03-06 Joseph Myers + + * lang-specs.h: Match -save-temps* instead of -save-temps. + +2011-03-05 Jason Merrill + + * mangle.c (write_expression): Change ABI v6 to v5. + (write_type): Likewise. + +2011-03-04 Jan Hubicka + + PR lto/47497 + * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias + and cgraph_add_thunk. + * method.c (make_alias_for_thunk, use_thunk): Likewise. + * mangle.c (mangle_decl): Likewise. + +2011-03-04 Jason Merrill + + PR c++/47971 + * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type. + (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING. + + PR c++/46220 + * search.c (check_final_overrider): Allow pointer to same incomplete + class type with different cv-quals. + +2011-03-03 Paolo Carlini + + PR c++/47974 + * pt.c (tsubst_template_args): Check argument t for error_mark_node. + +2011-03-03 Jason Merrill + + PR c++/47950 + * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT. + +2011-03-02 Jason Merrill + + PR c++/47950 + * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here. + + PR c++/47774 + * tree.c (build_vec_init_elt): Split out from... + (build_vec_init_expr): ...here. + (diagnose_non_constexpr_vec_init): New fn. + * semantics.c (potential_constant_expression_1): Use it. + * cp-tree.h: Declare it. + +2011-03-01 Jason Merrill + + PR c++/46159 + * parser.c (cp_parser_primary_expression): Don't warn about a + failed tentative parse. + + PR c++/47200 + * semantics.c (cxx_bind_parameters_in_call): Don't call + adjust_temp_type on non-constant args. + + PR c++/47851 + * call.c (standard_conversion): Provide requested cv-quals on + class rvalue conversion. + + PR c++/46282 + * decl2.c (grokbitfield): Handle type-dependent width. + +2011-02-28 Jason Merrill + + PR c++/47873 + * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P + after checking for a non-thunk. + +2011-02-26 Jason Merrill + + PR c++/47904 + * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL. + * pt.c (iterative_hash_template_arg): And hash it. + + PR c++/47897 + * semantics.c (non_const_var_error): Split out from... + (cxx_eval_constant_expression): ...here. + (potential_constant_expression_1) [VAR_DECL]: Use it. + Allow dependent variables. + +2011-02-24 Jason Merrill + + * parser.c (cp_parser_constant_expression): Set + non_integral_constant_expression correctly for C++0x too. + (cp_parser_static_assert): Allow non-constant expression. + (cp_parser_direct_declarator): Expect non_constant_p to be set + properly for C++0x. + * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR. + * semantics.c (maybe_constant_value): Check type_unknown_p too. + (potential_rvalue_constant_expression): New. + (require_potential_rvalue_constant_expression): New. + +2011-02-23 Jason Merrill + + * cp-tree.h (DECL_PARM_LEVEL): New. + (struct lang_decl_parm): Add level field. + * name-lookup.c (function_parm_depth): New fn. + * name-lookup.h: Declare it. + * parser.c (cp_parser_parameter_declaration_list): Use it. + * mangle.c (struct globals): Add parm_depth field. + (write_bare_function_type): Adjust it. + (write_expression): Include the level delta in PARM_DECL mangling + for abi >= 6. + + * semantics.c (finish_decltype_type): Remove shortcut for decltype + of id-expression. + * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6. + +2011-02-23 Nathan Froyd + + PR c++/46868 + * parser.c (cp_parser_class_specifier): Require a closing brace + to attempt error recovery. + +2011-02-23 Jakub Jelinek + + PR c++/47833 + * pt.c (struct pending_template): Add chain_next GTY option. + * decl.c (struct named_label_use_entry): Likewise. + +2011-02-22 Paolo Carlini + + PR c++/47242 + * semantics.c (build_lambda_object): Bail out if a field is + error_mark_node. + +2011-02-22 Dodji Seketeli + + PR c++/47666 + * class.c (dfs_declare_virt_assop_and_dtor) + (declare_virt_assop_and_dtor): New static functions. + (add_implicitly_declared_members): Use + declare_virt_assop_and_dtor. + +2011-02-21 Jason Merrill + + PR c++/47207 + * decl2.c (decl_constant_var_p): A constexpr var needs an + initializer to be constant. + * semantics.c (cxx_eval_constant_expression): Complain about + constexpr var used in its own initializer. + * call.c (set_up_extended_ref_temp): Set + DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too. + +2011-02-20 Jason Merrill + + PR c++/47199 + * semantics.c (cxx_eval_call_expression): Call + cxx_eval_constant_expression in trivial shortcut. + + PR c++/46831 + * call.c (convert_class_to_reference): Don't try to set up a + second conv sequence for non-viable candidates. + + PR c++/47703 + * error.c (location_of): Handle non-tagged types. + + PR c++/46472 + * method.c (process_subob_fn): Instantiate constexpr templates. + * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P. + +2011-02-20 Dodji Seketeli + + PR c++/46394 + * pt.c (tsubst_pack_expansion): do not use + cp_tree_equal/same_type_p to detect an expansion of a parameter + pack. + +2011-02-19 Jason Merrill + + PR c++/47503 + * semantics.c (cxx_eval_call_expression): Shortcut trivial copy. + +2011-02-18 Paolo Carlini + + PR c++/47795 + * semantics.c (finish_non_static_data_member): Early return if + object is error_mark_node. + +2011-02-18 Dodji Seketeli + + PR c++/47208 + * pt.c (do_auto_deduction): Do not mention error_mark_node in + diagnostics. + * semantics.c (finish_id_expression): Do not pass erroneous decl + to decl_constant_var_p. + +2011-02-17 Jakub Jelinek + + PR c++/47783 + * cvt.c (convert_from_reference): Call mark_exp_read. + +2011-02-11 Dodji Seketeli + + PR c++/47172 + * pt.c (finish_call_expr): Consider a call expression that has a + dependent "this" pointer as being dependent. Add comments. + (dependent_type_p, type_dependent_expression_p): Update comments. + +2011-02-16 Dodji Seketeli + + PR c++/47326 + * pt.c (tsubst_copy): Ensure that even pack + expansion arguments are not evaluated. + +2011-02-16 Jakub Jelinek + + PR c++/47704 + * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5 + instead of TYPE_LANG_FLAG_3. + * pt.c (lookup_template_class): Copy over + ENUM_FIXED_UNDERLYING_TYPE_P. + +2011-02-15 Jason Merrill + + PR c++/46807 + * method.c (synthesized_method_walk): Always exit early for + trivial fn in C++98 mode. + +2011-02-14 Jason Merrill + + PR c++/47482 + * parser.c (cp_parser_enumerator_definition): Call + fold_non_dependent_expr. + +2011-02-09 Jason Merrill + + * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel. + * semantics.c (finish_fname): Only return the name if we're in + a function. + + * decl.c (build_enumerator): Don't perform integral promotions on + non-integral constants. + + * cvt.c (convert_to_void): Handle null op1. + + * class.c (type_has_constexpr_default_constructor): Make sure the + caller stripped an enclosing array. + * init.c (perform_member_init): Strip arrays before calling it. + + PR c++/47511 + * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL. + +2011-02-03 Dodji Seketeli + + PR c++/47398 + * tree.c (cp_tree_equal): Take the number of + template parameters in account. + +2011-02-03 Nathan Froyd + + PR c++/46890 + * parser.c (cp_parser_class_specifier): Fix setting of + want_semicolon. + +2011-01-31 Jakub Jelinek + + PR c++/47416 + * semantics.c (build_data_member_initialization): Handle + STATEMENT_LIST always instead of just for CLEANUP_BODY. + +2011-01-31 Rainer Orth + + * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use + LD_STATIC_OPTION, LD_DYNAMIC_OPTION. + +2011-01-29 Dodji Seketeli + + PR c++/47311 + * cp-tree.h (fixup_template_parms): Declare. + * pt.c (end_template_parm_list): Do not fixup template parms here. + (fixup_template_parms): Remove static. Fix typo in the + comments. Remove useless code statement. + (fixup_template_parm): For a template template parameter, fixup + its attributes before fixing up its type. + * parser.c + (cp_parser_template_declaration_after_export): After parsing + template parameters fixup their types. + +2011-01-26 Jakub Jelinek + + PR c++/47476 + * semantics.c (potential_constant_expression_1): Handle + TRUTH_XOR_EXPR. + +2011-01-26 Dave Korn + + PR c++/43601 + * semantics.c (expand_or_defer_fn_1): Handle it. + * decl2.c (decl_needed_p): Likewise. + +2011-01-21 Jason Merrill + + PR c++/47041 + * semantics.c (build_constexpr_constructor_member_initializers): + Handle trivial copy. + +2011-01-21 Jakub Jelinek + + PR c++/47388 + * semantics.c (begin_for_stmt): If -fno-for-scope, don't + assume init must be NULL if scope is NULL. + (begin_range_for_stmt): Likewise. + +2011-01-21 Jason Merrill + + PR c++/46552 + * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF. + + PR c++/46977 + * semantics.c (potential_constant_expression_1): Split out from + potential_constant_expression. Add want_rval parm. Handle + template expression forms. Don't enforce restriction on address + of automatic variable here. Add a couple of diagnostics that + had been missing. + (require_potential_constant_expression): New entry point. + (build_data_member_initialization, register_constexpr_fundef): Adjust. + (maybe_constant_value): Check potential_constant_expression. + * pt.c (fold_non_dependent_expr_sfinae): Likewise. + * tree.c (build_vec_init_expr): Adjust. + +2011-01-19 Jakub Jelinek + + PR c++/47303 + * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC + or DECL_EXTERNAL. + +2011-01-17 Jason Merrill + + PR c++/47067 + * semantics.c (base_field_constructor_elt): New fn. + (cxx_eval_bare_aggregate): Use it. + (build_data_member_initialization): Leave COMPONENT_REF for + vfield inits. + +2011-01-14 Rodrigo Rivas Costa + + * parser.c (cp_parser_range_for): Remove the "unused variable" warning + workaround. + +2011-01-15 Giovanni Funchal + Jonathan Wakely + + PR c++/33558 + * decl.c (grokdeclarator): Reject mutable reference members. + +2011-01-14 Jason Merrill + + PR c++/47289 + * pt.c (coerce_template_parms): Fix error recovery. + + PR c++/46903 + * typeck2.c (check_narrowing): Only check arithmetic types. + + PR c++/46688 + * tree.c (build_vec_init_expr): Handle flexible array + properly. + +2011-01-13 Kai Tietz + + PR c++/47213 + * cp-tree.h (CLASSTYPE_VISIBILITY): Use + TYPE_MAIN_DECL instead of TYPE_NAME. + (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise. + * decl2.c (determine_visibility): Add check + of CLASS_TYPE_P for underlying_type. + +2011-01-12 Rodrigo Rivas Costa + + * cp-tree.h (begin_for_scope): New prototype. + (begin_for_stmt): Update prototype. + (begin_range_for_stmt): Update prototype. + * init.c (build_vec_init): Update call to begin_for_stmt. + * parser.c (cp_parser_for): New. + (cp_parser_c_for): Add three new parameters. + (cp_parser_range_for): Likewise. Most parsing code removed. + (cp_parser_iteration_statement): Call cp_parser_for instead of + cp_parser_c_for and cp_parser_range_for. + (cp_parser_for_init_statement): Add new parameter and return type. + (cp_parser_block_declaration): Update call to + cp_parser_simple_declaration. + (cp_parser_simple_declaration): Add new parameter. + Update call to cp_parser_init_declarator. + (cp_parser_init_declarator): Add new parameter. + * pt.c (tsubst_expr): Update call to begin_for_stmt. + * semantics.c (begin_for_scope): New. + (begin_for_stmt): Add two new parameters. + (begin_range_for_stmt): Likewise. + +2011-01-12 Nicola Pero + + * parser.c (cp_parser_objc_at_property_declaration): Improved + error message. + +2011-01-11 Dodji Seketeli + + PR debug/46955 + * cp-lang.c (get_template_innermost_arguments_folded) + (get_template_argument_pack_elems_folded) + (template_arg_needs_folding, fold_cplus_constants): New static + functions. + (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to + get_template_innermost_arguments_folded. + (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to + get_template_argument_pack_elems_folded. + +2011-01-11 Jason Merrill + + PR c++/46658 + * init.c (build_new_1): Handle value-init in templates differently. + + PR c++/45520 + * tree.c (maybe_dummy_object): Check current_class_ref against + context, not current_class_type. + +2011-01-08 Nicola Pero + + PR objc/47078 + * parser.c (cp_parser_objc_typename): If the type is unknown, for + error recovery purposes behave as if it was not specified so that + the default type is used. + +2011-01-07 Jakub Jelinek + + PR c++/47022 + * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy + for the second build_x_va_arg argument. + +2011-01-05 Tom Tromey + + * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error. + (lvalue_or_else): Likewise. + +2011-01-01 Kai Tietz + + PR target/38662 + * tree.c (cxx_type_hash_eq): + Allow METHOD_TYPE, too. + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 19f7d7b..656a84c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -114,4093 +114,8 @@ * gfortranspec.c (lang_specific_driver): Update copyright notice dates. - -2011-12-31 Thomas König - - PR fortran/51502 - * expr.c (gfc_check_vardef_context): When determining - implicit pure status, also check for variable definition - context. Walk up namespaces until a procedure is - found to reset the implict pure attribute. - * resolve.c (gfc_implicit_pure): Walk up namespaces - until a procedure is found. - -2011-12-29 Thomas Koenig - - * dependency.c (gfc_dep_compare_functions): Document - new behavior for REALs and complex. Add comment to cases - where only INTEGERs are handled. Compare REAL and COMPLEX - constants, returning 0 and -2 only. Add assert to make - sure that only integer constants are compared. - -2011-12-19 Tobias Burnus - - PR fortran/51605 - * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as - local symbol. - -2011-12-19 Tobias Burnus - - PR fortran/51605 - * match.c (gfc_match_select_type): Handle - scalar polymophic coarrays. - (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok. - * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok. - * resolve.c (resolve_select_type): Ditto. - (resolve_assoc_var): Fix setting the TARGET attribute for - polymorphic selectors which are pointers. - -2011-12-19 Tobias Burnus - - * check.c (coarray_check): Add class ref if needed. - * resolve.c (resolve_fl_var_and_proc, - resolve_fl_derived0, resolve_symbol): Fix checking - for BT_CLASS. - -2011-12-15 Paul Thomas - - * trans-expr.c (gfc_walk_function_expr): Detect elemental - procedure components as well as elemental procedures. - * trans-array.c (gfc_conv_procedure_call): Ditto. - * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous - break for class pointers to continue. - -2011-12-15 Toon Moene - - PR fortran/51310 - * resolve.c (build_default_init_expr): Allow non-allocatable, - non-compile-time-constant-shape arrays to have a default - initializer. - * invoke.texi: Delete the restriction on automatic arrays not - being initialized by -finit-=. - -2011-12-15 Tobias Burnus - - PR fortran/51550 - PR fortran/47545 - PR fortran/49050 - PR fortran/51075 - * resolve.c (resolve_fl_derived0): Print not-implemented error - for deferred-length character components. - -2011-12-15 Tobias Burnus - - * primary.c (gfc_match_varspec): Match array spec for - polymorphic coarrays. - (gfc_match_rvalue): If a symbol of unknown flavor has a - codimension, mark it as a variable. - * simplify.c (gfc_simplify_image_index): Directly call - simplify_cobound. - * trans-intrinsic.c (trans_this_image): Fix handling of - corank = 1 arrays. - -2011-12-15 Jakub Jelinek - - PR debug/51517 - * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span. - (gfc_trans_deferred_vars): Instead add its runtime initialization - here. - -2011-12-11 Tobias Burnus - - PR fortran/50923 - * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only - if the front end has printed a warning. - (gfc_generate_function_code): Fix unset-result warning. - -2011-12-11 Paul Thomas - Tobias Burnus - - PR fortran/41539 - PR fortran/43214 - PR fortran/43969 - PR fortran/44568 - PR fortran/46356 - PR fortran/46990 - PR fortran/49074 - * interface.c (symbol_rank): Return the rank of the _data - component of class objects. - (compare_parameter): Also compare the derived type of the class - _data component for type mismatch. Similarly, return 1 if the - formal and _data ranks match. - (compare_actual_formal): Do not compare storage sizes for class - expressions. It is an error if an actual class array, passed to - a formal class array is not full. - * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get, - gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get, - gfc_vtable_extends_get, gfc_vtable_def_init_get, - gfc_vtable_copy_get): New functions for class API. - (gfc_conv_derived_to_class): For an array reference in an - elemental procedure call retain the ss to provide the - scalarized array reference. Moved in file. - (gfc_conv_class_to_class): New function. - (gfc_conv_subref_array_arg): Use the type of the - class _data component as a basetype. - (gfc_conv_procedure_call): Ensure that class array expressions - have both the _data reference and an array reference. Use - gfc_conv_class_to_class to handle class arrays for elemental - functions in scalarized loops, class array elements and full - class arrays. Use a call to gfc_conv_subref_array_arg in order - that the copy-in/copy-out for passing class arrays to derived - type arrays occurs correctly. - (gfc_conv_expr): If it is missing, add the _data component - between a class object or component and an array reference. - (gfc_trans_class_array_init_assign): New function. - (gfc_trans_class_init_assign): Call it for array expressions. - * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for - class scalars since their size will depend on the dynamic type. - (build_class_array_ref): New function. - (gfc_conv_scalarized_array_ref): Call build_class_array_ref. - (gfc_array_init_size): Add extra argument, expr3, that represents - the SOURCE argument. If present,use this for the element size. - (gfc_array_allocate): Also add argument expr3 and use it when - calling gfc_array_init_size. - (structure_alloc_comps): Enable class arrays. - * class.c (gfc_add_component_ref): Carry over the derived type - of the _data component. - (gfc_add_class_array_ref): New function. - (class_array_ref_detected): New static function. - (gfc_is_class_array_ref): New function that calls previous. - (gfc_is_class_scalar_expr): New function. - (gfc_build_class_symbol): Throw not implemented error for - assumed size class arrays. Remove error that prevents - CLASS arrays. - (gfc_build_class_symbol): Prevent pointer/allocatable conflict. - Also unset codimension. - (gfc_find_derived_vtab): Make 'copy' elemental and set the - intent of the arguments accordingly.: - * trans-array.h: Update prototype for gfc_array_allocate. - * array.c (gfc_array_dimen_size): Return failure if class expr. - (gfc_array_size): Likewise. - * gfortran.h: New prototypes for gfc_add_class_array_ref, - gfc_is_class_array_ref and gfc_is_class_scalar_expr. - * trans-stmt.c (trans_associate_var): Exclude class targets - from test. Move the allocation of the _vptr to an earlier time - for class objects. - (trans_associate_var): Assign the descriptor directly for class - arrays. - (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments. - Convert array element references into sections. Do not invoke - gfc_conv_procedure_call, use gfc_trans_call instead. - * expr.c (gfc_get_corank): Fix for BT_CLASS. - (gfc_is_simply_contiguous): Exclude class from test. - * trans.c (gfc_build_array_ref): Include class array refs. - * trans.h: Include prototypes for class API functions that are - new in trans-expr. Define GFC_DECL_CLASS(node). - * resolve.c (check_typebound_baseobject ): Remove error for - non-scalar base object. - (resolve_allocate_expr): Ensure that class _data component is - present. If array, call gfc_expr_to_intialize. - (resolve_select): Remove scalar error for SELECT statement as a - temporary measure. - (resolve_assoc_var): Update 'target' (aka 'selector') as - needed. Ensure that the target expression has the right rank. - (resolve_select_type): Ensure that target expressions have a - valid locus. - (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS. - * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where - appropriate. - (gfc_trans_deferred_vars): Get class arrays right. - * match.c(select_type_set_tmp): Add array spec to temporary. - (gfc_match_select_type): Allow class arrays. - * check.c (array_check): Ensure that class arrays have refs. - (dim_corank_check, dim_rank_check): Retrun success if class. - * primary.c (gfc_match_varspec): Fix for class arrays and - co-arrays. Make sure that class _data is present. - (gfc_match_rvalue): Handle class arrays. - *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array - reference. - (gfc_conv_allocated): Add _data component to class expressions. - (gfc_add_intrinsic_ss_code): ditto. - * simplify.c (simplify_cobound): Fix for BT_CLASS. - (simplify_bound): Return NULL for class arrays. - (simplify_cobound): Obtain correct array_spec. Use cotype as - appropriate. Use arrayspec for bounds. - -2011-12-11 Thomas Koenig - - PR fortran/50690 - * frontend-passes.c (in_omp_workshare): New variable. - (cfe_expr_0): Don't eliminiate common function if it would put - the variable immediately into a WORKSHARE construct. - (optimize_namespace): Set in_omp_workshare. - (gfc_code_walker): Keep track of OMP PARALLEL and OMP WORKSHARE - constructs. - -2011-12-10 Tobias Burnus - - * trans-decl.c (add_argument_checking): Fix syntax. - -2011-12-10 Tobias Burnus - Kai Tietz - - * trans-decl.c (add_argument_checking): Check ts.deferred earlier. - * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long. - -2011-12-08 Tobias Burnus - - PR fortran/50815 - * trans-decl.c (add_argument_checking): Skip bound checking - for deferred-length strings. - -2011-12-08 Tobias Burnus - - PR fortran/51378 - * symbol.c (gfc_find_component): Fix access check of parent - components. - -2011-12-08 Tobias Burnus - - PR fortran/51407 - * io/transfer.c (require_numeric_type): New function. - (formatted_transfer_scalar_read, formatted_transfer_scalar_write): - Use it, allow BOZ edit descriptors with F2008. - -2011-12-08 Tobias Burnus - - PR fortran/51448 - * fortran/trans-array.c (get_std_lbound): Fix handling of - conversion functions. - -2011-12-08 Toon Moene - - PR fortran/51310 - * invoke.texi: Itemize the cases for which - -finit-= doesn't work. - -2011-12-06 Tobias Burnus - - PR fortran/51435 - * expr.c (gfc_has_default_initializer): Fix handling of - DT with initialized pointer components. - -2011-12-05 Thomas Koenig - - PR fortran/51338 - * dependency.c (are_identical_variables): Handle case where - end fields of substring references are NULL. - -2011-12-04 Tobias Burnus - - PR fortran/51383 - * resolve.c (find_array_spec): Use ref->u.c.component - directly without starting from ts.u.derived. - -2011-12-03 Tobias Burnus - - PR fortran/48887 - * match.c (select_type_set_tmp): Don't set allocatable/pointer - attribute. - * class.c (gfc_build_class_symbol): Handle - attr.select_type_temporary. - -2011-12-03 Tobias Burnus - - PR fortran/50684 - * check.c (variable_check): Fix intent(in) check. - -2011-12-03 Tobias Burnus - - * check.c (gfc_check_move_alloc): Allow nonpolymorphic - FROM with polymorphic TO. - * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle - nonpolymorphic FROM with polymorphic TO. - -2011-12-01 Janne Blomqvist - - * module.c (dt_lower_string): Make static. - (dt_upper_string): Likewise. - -2011-12-01 Janne Blomqvist - - PR fortran/25708 - * module.c (parse_string): Read string into resizable array - instead of parsing twice and seeking. - (peek_atom): New implementation avoiding seeks. - (require_atom): Save and set column and line explicitly for error - handling. - -2011-12-01 Janne Blomqvist - - * misc.c (gfc_open_file): Don't call stat. - -2011-11-29 Thomas Koenig - - PR fortran/40958 - * module.c (prev_module_line): New variable. - (prev_module_column): New variable. - (prev_character): New variable. - (module_char): Update the new variables. - (module_unget_char): New function. - (parse_string): Use module_unget_char. - (parse_integer): Likewise. - (parse_name): Likewise. - -2011-11-29 Tobias Burnus - - PR fortran/51306 - PR fortran/48700 - * check.c (gfc_check_move_alloc): Make sure that from/to - are both polymorphic or neither. - * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup, - generate inline code. - -2011-11-28 Tobias Burnus - Steven G. Kargl - - PR fortran/51308 - * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER - conflicts for ISO_C_BINDING variables. - (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null - as SAVE. - -2011-11-25 Mikael Morin - - * trans-array.c (set_loop_bounds): Remove dead conditions. - -2011-11-25 Mikael Morin - - PR fortran/51250 - PR fortran/43829 - * trans-array.c (gfc_trans_create_temp_array): Get dimension from - the right gfc_ss struct. - -2011-11-25 Tobias Burnus - - PR fortran/50408 - * trans-decl.c (gfc_get_module_backend_decl): Also copy - ts.u.derived from the gsym if the ts.type is BT_CLASS. - (gfc_get_extern_function_decl): Copy also the backend_decl - for the symbol's ts.u.{derived,cl} from the gsym. - * trans-types.c (gfc_copy_dt_decls_ifequal): Directly - return if "from" and "to" are the same. - -2011-11-25 Tobias Burnus - - PR fortran/51302 - * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert. - -2011-11-24 Tobias Burnus - - PR fortran/51218 - * resolve.c (pure_subroutine): If called subroutine is - impure, unset implicit_pure. - (resolve_function): Move impure check to simplify code. - -2011-11-19 Tobias Burnus - - PR fortran/51207 - * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER - and hence as TREE_READONLY; add subroutine attribute to - __copy_ procedure. - - PR fortran/50640 - * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7. - * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as - GFC_DECL_PUSH_TOPLEVEL. - (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there. - (build_function_decl): Push __copy_ procedure to the toplevel. - -2011-11-16 Tobias Burnus - - PR fortran/39427 - PR fortran/37829 - * decl.c (match_data_constant, match_data_constant, variable_decl, - gfc_match_decl_type_spec, access_attr_decl, - check_extended_derived_type, gfc_match_derived_decl, - gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal - with DT constructors. - * gfortran.h (gfc_find_dt_in_generic, - gfc_convert_to_structure_constructor): New function prototypes. - * interface.c (check_interface0, check_interface1, - gfc_search_interface): Ignore DT constructors in generic list. - * match.h (gfc_match_structure_constructor): Update prototype. - * match.c (match_derived_type_spec): Ensure that one uses the DT - not the generic function. - * module.c (MOD_VERSION): Bump. - (dt_lower_string, dt_upper_string): New functions. - (find_use_name_n, find_use_operator, compare_true_names, - find_true_name, add_true_name, fix_mio_expr, load_needed, - read_module, write_dt_extensions, write_symbol): Changes to deal with - different symtree vs. sym names. - (create_derived_type): Create also generic procedure. - * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic - function as the same. - * primary.c (gfc_convert_to_structure_constructor): New function. - (gfc_match_structure_constructor): Restructured; calls - gfc_convert_to_structure_constructor. - (build_actual_constructor, gfc_match_rvalue): Update for DT generic - functions. - * resolve.c (resolve_formal_arglist, resolve_structure_cons, - is_illegal_recursion, resolve_generic_f, resolve_variable, - resolve_fl_variable_derived, resolve_fl_derived0, - resolve_symbol): Handle DT and DT generic constructors. - * symbol.c (gfc_use_derived, gfc_undo_symbols, - gen_special_c_interop_ptr, gen_cptr_param, - generate_isocbinding_symbol, gfc_get_derived_super_type): Handle - derived-types, which are hidden in the generic type. - (gfc_find_dt_in_generic): New function - * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER - expr by actual value. - * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts): - Ensure that we use the DT and not the generic function. - * trans-types.c (gfc_get_derived_type): Ensure that we use the DT - and not the generic procedure. - -2011-11-14 Tobias Burnus - - PR fortran/51073 - * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays. - -2011-11-09 Tobias Burnus - - * symbol.c (clear_sym_mark, traverse_ns): Remove functions. - (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions. - (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree. - -2011-11-09 Janne Blomqvist - - PR libfortran/50016 - * gfortran.texi (Data consistency and durability): New section. - -2011-11-09 Francois-Xavier Coudert - - PR fortran/50540 - * resolve.c (resolve_forall_iterators): Transform internal errors - to normal errors. - -2011-11-09 Janus Weil - - PR fortran/50960 - * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER. - * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with - their value. - * resolve.c (resolve_values): Use-associated symbols do not need to - be resolved again. - (resolve_fl_parameter): Make sure the symbol has a value. - -2011-11-09 Francois-Xavier Coudert - - PR fortran/38718 - * intrinsic.c (add_functions): Allow dreal simplification. - * intrinsic.h (gfc_simplify_dreal): New prototype. - * simplify.c (gfc_simplify_dreal): New function. - -2011-11-09 Francois-Xavier Coudert - - PR fortran/21881 - * trans-types.c (gfc_get_dtype): Issue a fatal error instead of - an internal error. - -2011-11-08 Francois-Xavier Coudert - - PR fortran/50404 - * io.c (gfc_resolve_close): CLOSE requires a UNIT. - -2011-11-08 Francois-Xavier Coudert - - PR fortran/50409 - * expr.c (gfc_simplify_expr): Substrings can't have negative - length. - -2011-11-08 Francois-Xavier Coudert - - PR fortran/50334 - * invoke.texi (-finit-*): Document interaction with - -Wuninitialized. - -2011-11-07 François-Xavier Coudert - - PR libfortran/49188 - PR libfortran/49336 - * invoke.texi: Fix documentation of fsign-zero option. Remove - contractions. - * intrinsic.texi: Fix ATAN2 documentation for signed zeros. - Remove contractions. - * gfortran.texi: Remove contractions. - -2011-11-07 Janus Weil - - PR fortran/50919 - * class.c (add_proc_comp): Don't add non-overridable procedures to the - vtable. - * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): - Don't generate a dynamic _vptr call for non-overridable procedures. - -2011-11-07 Janne Blomqvist - - * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock - and time are part of the C standard library. - -2011-11-06 Janus Weil - - * gfortran.h (gfc_extend_expr): Modified prototype. - * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'. - Remove argument 'real_error'. - * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'. - -2011-11-06 Andrew MacLeod - Aldy Hernandez - - Merged from cxx-mem-model. - - * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT, - BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, - BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, - BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, - BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, - BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT, - BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types. - -2011-11-04 Mikael Morin - - PR fortran/43829 - * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic - case in the assertion. - * trans-intrinsic (enter_nested_loop): New function. - (gfc_conv_intrinsic_arith): Support non-scalar cases. - (nest_loop_dimension, walk_inline_intrinsic_arith): New functions. - (walk_inline_intrinsic_function): Handle sum and product. - (gfc_inline_intrinsic_function_p): Ditto. - * trans.h (gfc_get_loopinfo): New macro. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent - expression variable. Use it. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop - pointer. Use it. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling - cleanup. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions. - -2011-11-04 Mikael Morin - - * frontend-passes.c (cfe_register_funcs): Return early in the case - of an inline intrinsic function. - (optimize_binop_array_assignment): Skip optimization in the case of - an inline intrinsic function. - -2011-11-04 Mikael Morin - - * array.c (match_subscript): Skip whitespaces before setting locus. - * matchexp.c (match_level_1): Ditto. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's - temporary rank to the loop rank. Mark ss chains for multiple loop - if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop - and start another. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's - temporary rank to the loop rank. Mark ss chains for multiple loop - if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop - and start another. - -2011-11-04 Mikael Morin - - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate - offset twice in generated code. - -2011-11-04 Mikael Morin - - * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for - arguments to elemental calls. - * trans-stmt.c (replace_ss): New function. - (gfc_conv_elemental_dependencies): Remove temporary loop handling. - Create a new ss for the temporary and replace the original one with it. - Remove fake array references. Recalculate all offsets. - -2011-11-04 Mikael Morin - - * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes. - * trans-array.c (gfc_free_ss): Remove forward declaration. - Make non-static. - (set_delta, gfc_set_delta): Remove forward declaration. - Make non-static and rename the former to the later. Update uses. - -2011-11-03 Mikael Morin - - * trans.h (gfc_inline_intrinsic_function_p): Move prototype... - * gfortran.h (gfc_inline_intrinsic_function_p): ... here. - * dependency.c (gfc_check_argument_var_dependency): Check dependencies - of inline intrinsics' arguments. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): New pointers to outer - dimension's ss and loop. Use them. - -2011-11-03 Mikael Morin - - * trans-array.c (outermost_loop): New function. - (gfc_trans_array_constructor, gfc_set_vector_loop_bounds, - gfc_add_loop_ss_code): Put generated code out of the outermost loop. - -2011-11-03 Mikael Morin - - * trans-array.c (constant_array_constructor_loop_size): - Handle multiple loops. - -2011-11-03 Mikael Morin - - * trans-array.c (get_rank, get_loop_upper_bound_for_array): - New functions. - (gfc_trans_array_constructor): Handle multiple loops. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_loopinfo): New field parent. - * trans-array.c (gfc_cleanup_loop): Free nested loops. - (gfc_add_ss_to_loop): Set nested_loop's parent loop. - (gfc_trans_array_constructor): Update assertion. - (gfc_conv_loop_setup): Ditto. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss. - Call recursively gfc_add_loop_ss_code for all the nested loops. - (gfc_conv_ss_startstride): Only get the descriptor for the outermost - ss. Call recursively gfc_conv_ss_startstride for all the nested loops. - (set_loop_bounds): Call recursively for all the nested loops. - (set_delta): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_loopinfo): New fields nested and next. - * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if - ss has non-null nested_ss field. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_create_temp_array): Loop over the parents. - -2011-11-03 Mikael Morin - - * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): - Rename the former to the latter and loop over the parents. - (innermost_ss): New function. - (get_array_ref_dim_for_loop_dim): New function. - (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim. - (set_loop_bounds): Use get_array_dim_for_loop_dim). - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss): New field nested_ss. - * trans-expr.c (gfc_advance_se_ss_chain): Update assertion. - -2011-11-03 Mikael Morin - - * trans-array.c (set_vector_loop_bounds): Loop over the parents. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_array_constructor): Loop over the parents. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the - parents. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss): New field parent. - * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a - parent exists. - * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the - end of the chain. - -2011-11-03 Mikael Morin - - * trans-array.h (gfc_trans_create_temp_array): Remove loop argument. - * trans-array.c (gfc_trans_create_temp_array): Ditto. Get loop from ss. - Update reference to loop. Remove loop argument. - (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to - gfc_trans_create_temp_array. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. - * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. - Set loop before calling gfc_trans_create_temp_array. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_create_temp_array): New variable total_dim. - Set total_dim to loop's rank. Replace usages of loop's rank. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_array_constructor, trans_array_constructor): - Rename the former to the later. Get loop from ss. - Remove loop argument. - (gfc_add_loop_ss_code): Update call. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss. - Remove loop argument. - (gfc_add_loop_ss_code): Update call. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss): New field loop. - * trans-array.c (set_ss_loop): New function. - (gfc_add_ss_to_loop): Call set_ss_loop. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss_info): New field refcount. - * trans-array.c (free_ss_info): Decrement refcount. Return early if - still non-zero. - (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment - refcount. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_create_temp_array): Move invariant condition - out of the containing loop. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array): - Move specloop arrays clearing from the former to the latter. - -2011-11-03 Mikael Morin - - * trans-array.c (set_loop_bounds): Separate the beginning of - gfc_conv_loop_setup into a function of its own. - (set_delta): Separate the end of gfc_conv_loop_setup into a function - of its own. - (gfc_conv_loop_setup): Call set_loop_bounds and set delta. - (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a - pointer to the specloop field from the loop struct. - -2011-11-03 Tobias Burnus - - PR fortran/50933 - * interface.c (gfc_compare_derived_types): Fix check for BIND(C). - -2011-11-03 Tobias Burnus - - PR fortran/50960 - * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move field - gfc_ss::where into gfc_ss_info. - * trans-array.c (gfc_add_loop_ss_code): - Update reference chains. - * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move field - gfc_ss::useflags into gfc_ss_info. - * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup, - gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary): - Update reference chains. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move field - gfc_ss::data::info into gfc_ss_info::data and remove empty union - gfc_ss::data. - * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array, - gfc_trans_constant_array_constructor, gfc_trans_array_constructor, - gfc_set_vector_loop_bounds, gfc_add_loop_ss_code, - gfc_conv_ss_descriptor, gfc_trans_array_bound_check, - gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, - add_array_offset, gfc_trans_preloop_setup, - gfc_trans_scalarized_boundary, gfc_conv_section_startstride, - gfc_conv_ss_startstride, gfc_could_be_alias, - gfc_conv_loop_setup, gfc_conv_expr_descriptor, - gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref): - Update reference chains and factor them where possible. - * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg, - gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference - chains. - * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. - * trans-io.c (transfer_array_component): Ditto. - * trans-stmt.c (gfc_conv_elemental_dependencies, - gfc_trans_pointer_assign_need_temp): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct - gfc_ss::data::temp into gfc_ss_info::data. - * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference - chains. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct - gfc_ss::data::scalar into newly created union gfc_ss_info::data, - and rename subfield expr to value. - * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset, - gfc_conv_expr_descriptor): Update reference chains. - * trans-const.c (gfc_conv_constant): Ditto. - * trans-expr.c (gfc_conv_expr): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move field - string_length from the former struct to the latter. - * trans-array.c - (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code, - gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref, - gfc_conv_resolve_dependencies, gfc_conv_loop_setup, - gfc_conv_expr_descriptor): Update references to string_length and - factor common reference chains where possible. - * trans-const.c (gfc_conv_constant): Ditto. - * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg, - gfc_conv_expr): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from - the former struct to the latter. - * trans-array.c - (gfc_get_array_ss, gfc_get_scalar_ss, - gfc_trans_constant_array_constructor, gfc_trans_array_constructor, - gfc_add_loop_ss_code, gfc_conv_ss_descriptor, - gfc_trans_array_bound_check, gfc_conv_array_index_offset, - gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride, - gfc_could_be_alias, gfc_conv_resolve_dependencies, - gfc_conv_loop_setup, gfc_conv_expr_descriptor, - gfc_alloc_allocatable_for_assignment): Update references to expr and - factor common reference chains where possible. - * trans-const.c (gfc_conv_constant): Ditto. - * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call, - gfc_conv_array_constructor_expr, gfc_conv_expr, - gfc_conv_expr_reference): Ditto. - * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound, - gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall, - gfc_add_intrinsic_ss_code): Ditto. - * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss_info): New struct. - (gfc_get_ss_info): New macro. - (struct gfc_ss): Move type field to struct gfc_ss_info. - Add an info field of type gfc_ss_info. - * trans-array.c (free_ss_info): New function. - (gfc_free_ss): Call free_ss_info. - (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): - Allocate gfc_ss_info field. - (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss, - gfc_set_vector_loop_bounds, gfc_add_loop_ss_code, - gfc_conv_array_index_offset, gfc_trans_preloop_setup, - gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride, - gfc_conv_ss_startstride, gfc_conv_resolve_dependencies, - gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor, - gfc_walk_elemental_function_args): Update references to type. - * trans-const.c (gfc_conv_constant): Factor common reference chains - and update reference to type. - * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1): - Update reference to type. - (gfc_conv_array_constructor_expr, gfc_conv_expr, - gfc_conv_expr_reference): Ditto. Factor common reference chains. - * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references - to type - * trans-stmt.c (gfc_trans_where_assign): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field - from the former struct to the latter. - * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup): - Update field references. - * trans-expr.c (gfc_trans_subarray_assign): Update field references - and factor common reference chains. - * trans-io.c (transfer_array_component): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_array_info): Move dim and dimen fields... - (struct gfc_ss): ... here. Remove gfc_ss::data::temp::dimen field. - * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array - initialization. - (gfc_get_temp_ss): Initialize dim and dimen. - (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss, - gfc_set_loop_bounds_from_array_spec, get_array_ref_dim, - gfc_trans_create_temp_array, gfc_trans_constant_array_constructor, - gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref, - gfc_trans_preloop_setup, gfc_conv_ss_startstride, - gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims, - gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment, - gfc_walk_array_ref): Update field references. - * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call): - Ditto. - * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto. - * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. - -2011-11-03 Mikael Morin - - * trans.h (struct gfc_ss_info, struct gfc_array_info): - Rename the former to the latter. - * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage, - get_array_ref_dim, gfc_trans_create_temp_array, - gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds, - gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, - add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride, - gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims, - gfc_conv_expr_descriptor): Update all uses. - * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call): - Ditto. - * trans-intrinsic.c (gfc_conv_intrinsic_transfer, - walk_inline_intrinsic_transpose): Ditto. - * trans-stmt.c (gfc_conv_elemental_dependencies, - gfc_trans_pointer_assign_need_temp): Ditto. - -2011-11-03 Mikael Morin - - * trans-array.c (dim_ok, transposed_dims): Rename the former to the - latter. Change argument type. Invert return value. - (gfc_conv_expr_descriptor): Update calls. - -2011-11-03 Mikael Morin - - * trans-array.c (get_array_ref_dim): Change argument type and name. - Obtain previous argument from the new argument in the body. - (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds): - Rename the former to the latter. Change type and name of argument. - Get previous argument from the new one. - (gfc_add_loop_ss_code): Update call. - -2011-11-03 Mikael Morin - - * trans-array.h (gfc_trans_create_temp_array): Replace info argument - with ss argument. - * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss. - (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to - gfc_trans_create_temp_array. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. - * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_array_bound_check): Use ss argument - to get name. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_array_bound_check, - trans_array_bound_check): Rename the former to the latter. - Replace descriptor argument with ss argument. Get descriptor from ss. - (gfc_conv_array_index_offset, conv_array_index_offset): Rename the - former to the latter. Update call to trans_array_bound_check. - Replace info argument with ss argument. Get info from ss. - (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset. - (add_array_offset): Ditto - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_constant_array_constructor, - trans_constant_array_constructor): Rename the former to the latter. - Don't set the rank of the temporary for the loop. Remove then unused - loop argument. - (gfc_trans_array_constructor): Update call. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end - marker, not after it. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_conv_ss_startstride): Access array bounds along - array dimensions instead of loop dimensions. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Assertify one condition. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions. - -2011-11-03 Mikael Morin - - * trans-array.c (get_array_ref_dim): Remove redundant condition. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Move common code... - (add_array_offset): ...into that new function. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead - of array's dimention. Check that it is indeed the same. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion. - Special case outermost loop. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Factor loop index - initialization. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Move code earlier. - -2011-11-03 Mikael Morin - - * trans-array.c (gfc_trans_preloop_setup): Move array reference - initialisation earlier. Factor subsequent array references. - -2011-11-02 Rainer Orth - - * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK. - -2011-10-30 Steven G. Kargl - - PR fortran/50573 - * check.c (gfc_check_dshift): Update argument checking for BOZ. - Update checking SHIFT against BITSIZE of I or J. - * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR. - -2011-10-28 Steven G. Kargl - - * check.c (gfc_check_atan_2): Typo in comment. - (gfc_check_nearest): If 's' is constant, check that it is not 0. - * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits, - gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc, - gfc_simplify_nearest): Remove dead code. - -2011-10-23 Steven G. Kargl - - * simplify.c (simplify_transformation_to_array): Fix memory leak. - -2011-10-20 Steven G. Kargl - - PR fortran/50821 - * check.c (gfc_check_ishftc): Check args are constant before - extracting the integer. - -2011-10-20 Steven G. Kargl - - PR fortran/50514 - * check.c (less_than_bitsize1): Check |shift| <= bit_size(i). - (gfc_check_ishftc): Check |shift| <= bit_size(i) and check - that size is positive. - -2011-10-20 Steven G. Kargl - - PR fortran/50524 - * resolve.c (resolve_ref): Check return value of resolve_substring(). - -2011-10-20 Steven G. Kargl - - * io.c (match_dt_format): Match a user-defined operator or a kind - type prefixed string. - -2011-10-19 Janus Weil - - PR fortran/47023 - * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF. - * intrinsinc.texi (SIZEOF): Document it. - (STORAGE_SIZE): Fix special characters. Fix line breaks. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans.c (gfc_build_array_ref): If type is not an array, check that - there is nothing to do, and do nothing. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans-types.c (gfc_build_array_type): Don't force lower bound to one - in the deferred case. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays. - Don't set already set array ref. - -2011-10-18 Mikael Morin - - * array.c (gfc_find_array_ref): Remove coarray-specific handling. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * check.c (dim_corank_check): Use gfc_get_corank to get corank. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION. - - PR fortran/50420 - * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for - the scalarization chain initialization. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans-intrinsic.c (walk_coarray): Allow subreferences after a - coarray object reference. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays - if they are coarrays. - -2011-10-18 Mikael Morin - - * trans-array.h (gfc_walk_array_ref): New prototype. - * trans-array.c (gfc_walk_array_ref): New function, containing - all but the beginning of gfc_walk_variable_expr's code. - (gfc_walk_variable_expr): Use gfc_walk_array_ref. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of - ndim for the descriptor's rank. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting - from zero, and add then the relevant offset (either ndim or loop.dimen) - depending on context. - -2011-10-18 Mikael Morin - - * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space. - -2011-10-18 Mikael Morin - - * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization - earlier. - -2011-10-18 Janus Weil - - PR fortran/47023 - * decl.c (verify_c_interop_param): Renamed to - 'gfc_verify_c_interop_param'. Add error message for polymorphic - arguments. - (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject - polymorphic variables. - (verify_bind_c_sym): Renamed 'verify_c_interop'. - * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed. - * check.c (gfc_check_sizeof): Ditto. - * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto. - * symbol.c (verify_bind_c_derived_type): Ditto. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * cpp.c (print_line, cb_define): Adjust to avoid using internals - of struct line_map. Use the public API instead. - -2011-10-17 Janus Weil - - PR fortran/47023 - PR fortran/50752 - * primary.c (match_kind_param): Avoid segfault. - -2011-10-16 Thomas Koenig - - * frontend-passes.c (current_ns): Make static. - (create_var): Note parent of newly created namespace. - (optimize_namespace): Don't wak sibling namespaces - if they are EXEC_BLOCK because this is handled... - (gfc_code_walker): ... here. Also walk ASSOCIATE lists. - -2011-10-16 Janus Weil - - PR fortran/47023 - * primary.c (match_kind_param): Detect ISO_C_BINDING kinds. - (get_kind): Pass on 'is_iso_c' flag. - (match_integer_constant,match_real_constant,match_logical_constant): - Set 'ts.is_c_interop'. - -2011-10-16 Janus Weil - - PR fortran/50547 - * resolve.c (resolve_formal_arglist): Remove unneeded error message. - Some reshuffling. - -2011-10-15 Tobias Burnus - - * gfortran.texi (Fortran 2008 status, TS 29113 status, - Further Interoperability of Fortran with C): Update implementation - status, change references from TR 29113 to TS 29113. - * intrinsic.texi (RANK): Change TR 29113 to TS 29113. - * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts. - * lang.opt (std=): Ditto. - * options.c (gfc_handle_option, set_default_std_flags): Ditto and - change GFC_STD_F2008_TR to GFC_STD_F2008_TS. - * libgfortran.h: Ditto. - * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto. - * decl.c (verify_c_interop_param): Ditto. - -2011-10-14 Janus Weil - - PR fortran/50570 - * expr.c (gfc_check_vardef_context): Don't throw an error on - non-pointer assignments involving an intent(in) pointer dummy. - -2011-10-14 Tobias Burnus - - PR fortran/50718 - * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer - for dummy arguments with VALUE attribute. - -2011-10-11 Tobias Burnus - Janus Weil - - * invoke.texi (-fwhole-file): Update wording since -fwhole-file - is now enabled by default. - -2011-10-11 Michael Meissner - - * trans-expr.c (gfc_conv_power_op): Delete old interface with two - parallel arrays to hold standard builtin declarations, and replace - it with a function based interface that can support creating - builtins on the fly in the future. Change all uses, and poison - the old names. Make sure 0 is not a legitimate builtin index. - (fill_with_spaces): Ditto. - (gfc_trans_string_copy): Ditto. - (gfc_trans_zero_assign): Ditto. - (gfc_build_memcpy_call): Ditto. - (alloc_scalar_allocatable_for_assignment): Ditto. - * trans-array.c (gfc_trans_array_constructor_value): Ditto. - (duplicate_allocatable): Ditto. - (gfc_alloc_allocatable_for_assignment): Ditto. - * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto. - (gfc_omp_clause_assign_op): Ditto. - (gfc_trans_omp_atomic): Ditto. - (gfc_trans_omp_do): Ditto. - (gfc_trans_omp_task): Ditto. - * trans-stmt.c (gfc_trans_stop): Ditto. - (gfc_trans_sync): Ditto. - (gfc_trans_allocate): Ditto. - (gfc_trans_deallocate): Ditto. - * trans.c (gfc_call_malloc): Ditto. - (gfc_allocate_using_malloc): Ditto. - (gfc_call_free): Ditto. - (gfc_deallocate_with_status): Ditto. - (gfc_deallocate_scalar_with_status): Ditto. - * f95-lang.c (gfc_define_builtin): Ditto. - (gfc_init_builtin_functions): Ditto. - * trans-decl.c (create_main_function): Ditto. - * trans-intrinsic.c (builtin_decl_for_precision): Ditto. - -2011-10-10 Thomas Koenig - - PR fortran/50564 - * frontend-passes (forall_level): New variable. - (cfe_register_funcs): Don't register functions if we - are within a forall loop. - (optimize_namespace): Set forall_level to 0 before entry. - (gfc_code_walker): Increase/decrease forall_level. - -2011-10-09 Tobias Burnus - - PR fortran/50273 - * trans-common.c (translate_common): Fix -Walign-commons check. - -2011-10-09 Mikael Morin - - * interface.c (check_dummy_characteristics): Count dimensions starting - from one in diagnostic. - -2011-10-09 Tobias Burnus - - * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add - dependency on iso-c-binding.def and iso-fortran-env.def. - * module.c (import_iso_c_binding_module): Add error when - explicitly importing a nonstandard symbol; extend standard- - depending loading. - * iso-c-binding.def: Add c_float128 and c_float128_complex - integer parameters (for -std=gnu). - * intrinsic.texi (ISO_C_Binding): Document them. - * symbol.c (generate_isocbinding_symbol): Change macros - to ignore GFC_STD_* data. - * trans-types.c (gfc_init_c_interop_kinds): Ditto; make - nonstatic and renamed from "init_c_interop_kinds". - (gfc_init_kinds): Don't call it - * trans-types.h (gfc_init_c_interop_kinds): Add prototype. - * f95-lang.c (gfc_init_decl_processing): Call it. - -2011-10-09 Janus Weil - - PR fortran/50659 - * expr.c (replace_symbol): Only do replacement if the symbol is a dummy. - -2011-10-08 Paul Thomas - - PR fortran/47844 - * trans-array.c (gfc_conv_array_index_offset): Use descriptor - stride for pointer function results. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_section_startstride): Remove coarray argument. - Remove conditions on coarray. - (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. - (gfc_conv_expr_descriptor): Ditto. Add assertions before the call. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_section_startstride): Remove coarray_last - argument. Remove condition on coarray_last. - (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. - (gfc_conv_expr_descriptor): Ditto. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray - handling. Don't reset array ref's corank and codimensions' types - in the full array ref case. Update loop upper limit. - Remove DIMEN_THIS_IMAGE case. Remove unnecessary conditions. - -2011-10-07 Mikael Morin - - * trans.h (gfc_ss_info): Remove codimen field. - * trans-array.c (gfc_get_array_ss): Don't set codimen field. - (gfc_trans_create_temp_array): Don't set descriptor's cobounds. - (gfc_trans_constant_array_constructor): Update loop upper limit. - (gfc_conv_ss_startstride): Don't set codimen field. - Don't get descriptor's cobounds. - (gfc_walk_variable_expr): Update dimension index. - * trans-intrinsic.c (trans_this_image, trans_image_index, - conv_intrinsic_cobound): Don't set codimen field - -2011-10-07 Mikael Morin - - * trans.h (gfc_loopinfo): Remove codimen field. - * trans-array.c (gfc_set_vector_loop_bounds, - gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper - limit. - (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last - codimension. - (gfc_start_scalarized_body): Update loop lower limit. - (gfc_conv_ss_startstride): Don't set loop's codimen field. - (gfc_conv_loop_setup): Remove unnecessary condition. - (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank. - -2011-10-07 Mikael Morin - - * trans.h (gfc_ss): Remove data.temp.codimen field. - * trans-array.c (gfc_conv_resolve_dependencies, - gfc_conv_expr_descriptor): Don't set temp's codimen field. - -2011-10-07 Mikael Morin - - * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the - associated dimen_type) in the full array ref case. - -2011-10-07 Mikael Morin - - * trans-intrinsic.c (walk_coarray): New function. - (convert_element_to_coarray_ref): Move code to walk_coarray. Remove. - (trans-this_image, trans_image_index, conv_intrinsic_cobound): - Use walk_coarray. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer - cobounds evaluation. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_section_startstride): Move code to - evaluate_bound. Use evaluate_bound. - (evaluate_bound): New function. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_section_startstride): Update assertion to - also accept coarrays. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_section_startstride): Factor common - array ref references. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of - loop.codimen as argument to gfc_get_array_type_bounds. - -2011-10-07 Mikael Morin - - * trans-array.h (struct gfc_se): New flag want_coarray. - * trans-intrinsic.c (trans_this_image, trans_image_index, - conv_intrinsic_cobound): Set want_coarray. - * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension - earlier and without relying on the scalarizer. - -2011-10-07 Mikael Morin - - * expr.c (gfc_get_corank): Return 0 if input expression is not a - coarray. - -2011-10-07 Mikael Morin - - * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray - descriptor setup code. - -2011-10-07 Mikael Morin - - * resolve.c (compare_spec_to_ref): Move coarray ref initialization - code... - (resolve_array_ref): ... here. - -2011-10-07 Mikael Morin - - * check.c (is_coarray): Remove. - (coarray_check): Use gfc_is_coarray. - -2011-10-07 Janus Weil - - PR fortran/50625 - * class.c (gfc_build_class_symbol): Fix whitespace. - * module.c (mio_symbol): Set 'class_ok' attribute. - * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has - been built for class symbols. - -2011-10-04 Janus Weil - - PR fortran/35831 - * interface.c (check_dummy_characteristics): Check the array shape. - -2011-10-01 Janus Weil - - PR fortran/50585 - * interface.c (get_expr_storage_size): Check if 'length' component is - associated. - -2011-09-29 Janus Weil - - PR fortran/50547 - * resolve.c (resolve_formal_arglist): Fix pureness check for dummy - functions. - - PR fortran/50553 - * symbol.c (check_conflict): Forbid TARGET attribute for statement - functions. - -2011-09-27 Jakub Jelinek - - * trans-types.c (gfc_type_for_size): Return wider type - if no suitable narrower type has been found. - (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size - returned type doesn't have expected TYPE_MODE. - -2011-09-26 Janus Weil - - PR fortran/50515 - * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute. - - PR fortran/50517 - * interface.c (gfc_compare_interfaces): Bugfix in check for result type. - -2011-09-22 Janus Weil - - PR fortran/41733 - * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental - procedures. - * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check - for PURE and ELEMENTAL attributes. - (compare_actual_formal): Remove pureness check here. - -2011-09-20 Steven G. Kargl - - * check.c (gfc_check_c_sizeof): Remove redundant word. - -2011-09-20 Simon Baldwin - - * module.c (gfc_dump_module): Omit timestamp from output. - -2011-09-17 Janus Weil - - PR fortran/50403 - * symbol.c (gfc_use_derived): Fix coding style. - -2011-09-15 Janus Weil - - PR fortran/50401 - * resolve.c (resolve_transfer): Check if component 'ref' is defined. - - PR fortran/50403 - * symbol.c (gfc_use_derived): Check if argument 'sym' is defined. - -2011-09-14 Tobias Burnus - - PR fortran/34547 - PR fortran/50375 - * check.c (gfc_check_null): Allow allocatables as MOLD to NULL. - * resolve.c (resolve_transfer): Reject NULL without MOLD. - * interface.c (gfc_procedure_use): Reject NULL without MOLD - if no explicit interface is known. - (gfc_search_interface): Reject NULL without MOLD if it would - lead to ambiguity. - -2011-09-13 Janus Weil - - PR fortran/50379 - * symbol.c (check_conflict): Check conflict between GENERIC and RESULT - attributes. - -2011-09-11 Thomas Koenig - - PR fortran/50327 - * frontend-passes.c (dummy_expr_callback): New function. - (convert_do_while): New function. - (optimize_namespace): Call code walker to convert do while loops. - -2011-09-11 Janus Weil - - PR fortran/35831 - PR fortran/47978 - * interface.c (check_dummy_characteristics): New function to check the - characteristics of dummy arguments. - (gfc_compare_interfaces,gfc_check_typebound_override): Call it here. - -2011-09-08 Mikael Morin - - * trans-array.c (gfc_trans_constant_array_constructor): Remove - superfluous initialisation of DIM field. - (gfc_trans_array_constructor): Assert that DIMEN field is properly set. - (gfc_conv_expr_descriptor): Ditto. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - -2011-09-08 Mikael Morin - - * trans-array.h (gfc_get_scalar_ss): New prototype. - * trans-array.c (gfc_get_scalar_ss): New function. - (gfc_walk_variable_expr, gfc_walk_op_expr, - gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss. - * trans-expr.c (gfc_trans_subarray_assign): Ditto. - (gfc_trans_assignment_1): Ditto. - * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign, - gfc_trans_where_3): Ditto. - -2011-09-08 Mikael Morin - - * trans-array.h (gfc_get_temp_ss): New prototype. - * trans-array.c (gfc_get_temp_ss): New function. - (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss. - (gfc_conv_expr_descriptor): Ditto. - * trans-expr.c (gfc_conv_subref_array_arg): Ditto. - -2011-09-08 Mikael Morin - - * trans-array.h (gfc_get_array_ss): New prototype. - * trans-array.c (gfc_get_array_ss): New function. - (gfc_walk_variable_expr, gfc_walk_function_expr, - gfc_walk_array_constructor): Re-use gfc_get_array_ss. - * trans-expr.c (gfc_trans_subarray_assign): Ditto. - * trans-intrinsic.c (gfc_walk_intrinsic_bound, - gfc_walk_intrinsic_libfunc): Ditto. - * trans-io.c (transfer_array_component): Ditto. - -2011-09-08 Tobias Burnus - - PR fortran/44646 - * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT. - * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT. - * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT. - * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode, - lock_unlock_statement, sync_statement, gfc_match_allocate, - gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic. - (gfc_match_do): Match DO CONCURRENT. - (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator, - match_forall_iterator, match_forall_header, match_simple_forall, - gfc_match_forall): Move up in the file. - * parse.c (check_do_closure, parse_do_block): Handle do concurrent. - * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT. - * resolve.c (do_concurrent_flag): New global variable. - (resolve_function, pure_subroutine, resolve_branch, - gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent - diagnostic. - * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT. - * trans-stmt.c (gfc_trans_do_concurrent): New function. - (gfc_trans_forall_1): Handle do concurrent. - * trans-stmt.h (gfc_trans_do_concurrent): New function prototype. - * trans.c (trans_code): Call it. - * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT. - -2011-09-07 Janus Weil - - PR fortran/48095 - * primary.c (gfc_match_structure_constructor): Handle parsing of - procedure pointers components in structure constructors. - * resolve.c (resolve_structure_cons): Check interface of procedure - pointer components. Changed wording of some error messages. - -2011-09-04 Janus Weil - - PR fortran/50227 - * trans-types.c (gfc_sym_type): Check for proc_name. - -2011-08-30 Tobias Burnus - - PR fortran/45044 - * trans-common.c (build_common_decl): Warn if named common - block's size is not everywhere the same. - -2011-08-30 Steven G. Kargl - - PR fortran/45170 - * trans-stmt.c (gfc_trans_allocate): Evaluate the substring. - -2011-08-29 Janus Weil - - PR fortran/50225 - * trans-decl.c (gfc_generate_function_code): Nullify polymorphic - allocatable function results. - -2011-08-29 Tobias Burnus - - * trans-decl.c (generate_coarray_sym_init): Use - GFC_CAF_COARRAY_STATIC for static coarrays. - -2011-08-28 Dodji Seketeli - - * scanner.c (load_file): Don't abuse LC_RENAME reason while - (indirectly) calling linemap_add. - -2011-08-26 Jakub Jelinek - - * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL - if threadprivate. - * symbol.c (check_conflict): Allow threadprivate attribute with - FL_PROCEDURE if proc_pointer. - -2011-08-25 Mikael Morin - - PR fortran/50050 - * expr.c (gfc_free_shape): Do nothing if shape is NULL. - (free_expr0): Remove redundant NULL shape check. - * resolve.c (check_host_association): Ditto. - * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is - non-NULL. - * trans-io.c (transfer_array_component): Ditto. - -2011-08-25 Tobias Burnus - - * trans-array.c (gfc_conv_descriptor_token): Add assert. - * trans-decl.c (gfc_build_qualified_array, - create_function_arglist): Handle assumed-shape arrays. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't - add "caf_token" to assumed-shape descriptors, new akind argument. - (gfc_get_array_type_bounds): Pass akind. - * trans.h (lang_decl): New elements caf_offset and token. - (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros. - -2011-08-25 Tobias Burnus - - * trans-array.c (structure_alloc_comps): Fix for allocatable - scalar coarray components. - * trans-expr.c (gfc_conv_component_ref): Ditto. - * trans-type.c (gfc_get_derived_type): Ditto. - -2011-08-24 Tobias Burnus - - PR fortran/50163 - * expr.c (check_init_expr): Return when an error occured. - -2011-08-24 Joseph Myers - - * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule. - -2011-08-23 Tobias Burnus - - PR fortran/31600 - * symbol.c (gfc_add_type): Better diagnostic if redefining - use-associated symbol. - * module.c (gfc_use_module): Use module name as locus. - -2011-08-22 Gabriel Charette - - * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens - defined in cpp_define_builtins. - -2011-08-22 Mikael Morin - - PR fortran/50050 - * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes. - * expr.c (gfc_clear_shape, gfc_free_shape): New functions. - (free_expr0): Re-use gfc_free_shape. - * trans-expr.c (gfc_trans_subarray_assign): Ditto. - * trans-io.c (transfer_array_component): Ditto. - * resolve.c (check_host_association): Ditto. - (gfc_expr_to_initialize): Don't force the rank value and free the shape - after updating the expression. Recalculate shape and rank. - (resolve_where_shape): Re-use gfc_clear_shape. - * array.c (gfc_array_ref_shape): Ditto. - -2011-08-21 Thomas Koenig - - PR fortran/47659 - * expr.c (gfc_check_assign): Check for type conversions when the - right-hand side is a constant REAL/COMPLEX contstant the left-hand - side is also REAL/COMPLEX. Don't warn when a narrowing conversion - for REAL does not change the value of the constant. - -2011-08-21 Thomas Koenig - - PR fortran/50130 - * resolve.c (resolve_array_ref): Don't calculate upper bound - if the stride is zero. - -2011-08-20 Janus Weil - - PR fortran/49638 - * dependency.c (gfc_dep_compare_expr): Add new result value "-3". - (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle - result value "-3". - * frontend-passes.c (optimize_comparison): Ditto. - * interface.c (gfc_check_typebound_override): Ditto. - -2011-08-19 Mikael Morin - - PR fortran/50129 - * parse.c (parse_where): Undo changes after emitting an error. - -2011-08-19 Jakub Jelinek - - PR fortran/49792 - * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS - bit in ompws_flags only if loop.temp_ss is NULL, and clear it if - lhs needs reallocation. - * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if - code is NULL, emit a barrier if workshare emitted no code at all - and NOWAIT clause isn't present. - -2011-08-19 Mikael Morin - - PR fortran/50071 - * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK. - * parse.c (check_statement_label): Accept ST_END_BLOCK and - ST_END_ASSOCIATE as valid branch target. - (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK. - Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases. - * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to - EXEC_END_NESTED_BLOCK. - (resolve_branch): Ditto. - (resolve_code): Add EXEC_END_NESTED_BLOCK case. - * st.c (gfc_free_statement): Ditto. - * trans.c (trans_code): Ditto. - -2011-08-18 Mikael Morin - - PR fortran/50071 - * symbol.c (gfc_get_st_label): Use the derived type namespace when - we are parsing a derived type definition. - -2011-08-18 Tobias Burnus - - PR fortran/18918 - * parse.c (parse_derived): Add lock_type - checks, improve coarray_comp handling. - * resolve.c (resolve_allocate_expr, - resolve_lock_unlock, resolve_symbol): Fix lock_type - constraint checks. - -2011-08-17 Tobias Burnus - - PR fortran/31461 - * trans-decl.c (generate_local_decl): Warn about - unused explicitly imported module variables/parameters. - -2011-08-17 Janus Weil - - PR fortran/50070 - * resolve.c (resolve_fl_variable): Reject non-constant character lengths - in COMMON variables. - -2011-08-16 Tobias Burnus - Dominique Dhumieres - - PR fortran/50094 - * resolve.c (resolve_symbol): Fix stupid typo. - -2011-08-15 Tobias Burnus - - * resolve.c (resolve_symbol): Fix coarray result-var check. - -2011-08-14 Steven G. Kargl - - * module.c (use_iso_fortran_env_module): Spell 'referrenced' correctly. - -2011-08-14 Janus Weil - - PR fortran/50073 - * decl.c (check_function_name): New function, separated off from - 'variable_decl' and slightly extended. - (variable_decl,attr_decl1): Call it. - -2011-08-08 Rainer Orth - - * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS). - -2011-08-07 Janus Weil - Thomas Koenig - - PR fortran/49638 - * dependency.c (are_identical_variables): For dummy arguments only - check for equal names, not equal symbols. - * interface.c (gfc_check_typebound_override): Add checking for rank - and character length. - -2011-08-07 Janus Weil - - PR fortran/49638 - * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove - two prototypes. - * dependency.c (gfc_are_identical_variables,are_identical_variables): - Renamed the former to the latter and made static. - (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle - commutativity of multiplication. - (gfc_is_same_range,is_same_range): Renamed the former to the latter, - made static and removed argument 'def'. - (check_section_vs_section): Renamed 'gfc_is_same_range'. - * gfortran.h (gfc_check_typebound_override): New prototype. - * interface.c (gfc_check_typebound_override): Moved here from ... - * resolve.c (check_typebound_override): ... here (and renamed). - (resolve_typebound_procedure): Renamed 'check_typebound_override'. - -2011-08-06 Thomas Koenig - - PR fortran/50004 - * target-memory.c (gfc_target_expr-size): Don't clobber typespec - for derived types. - * simplify.c (gfc_simplify_transfer): Don't calculate source_size - twice. - -2011-08-05 Thomas Koenig - - PR fortran/37211 - * gfortran.h (gfc_calculate_transfer_sizes): Add prototype. - * target-memory.h (gfc_target_interpret_expr): Add boolean - argument wether to convert wide characters. - * target-memory.c (gfc_target_expr_size): Also return length - of characters for non-constant expressions if these can be - determined from the cl. - (interpret_array): Add argument for gfc_target_interpret_expr. - (gfc_interpret_derived): Likewise. - (gfc_target_interpret_expr): Likewise. - * check.c: Include target-memory.h. - (gfc_calculate_transfer_sizes): New function. - (gfc_check_transfer): When -Wsurprising is in force, calculate - sizes and warn if result is larger than size (check moved from - gfc_simplify_transfer). - * simplify.c (gfc_simplify_transfer): Use - gfc_calculate_transfer_sizes. Remove warning. - -2011-08-04 Richard Guenther - - PR fortran/49957 - * trans-array.c (add_to_offset): New function. - (gfc_conv_array_ref): Build the array index expression in optimally - associated order. - (gfc_walk_variable_expr): Adjust for the backward walk. - -2011-08-02 Daniel Kraft - - PR fortran/49885 - * trans-array.c (gfc_trans_auto_array_allocation): Change - gfc_start_block to gfc_init_block to avoid spurious extra-scope. - -2011-08-02 Tobias Burnus - - * trans-array.c (gfc_array_allocate): Pass token to - gfc_allocate_allocatable for -fcoarray=lib. - * trans-stmt.c (gfc_trans_allocate): Update - gfc_allocate_allocatable call. - * trans.h (gfc_allocate_allocatable): Update prototype. - (gfc_allocate_using_lib): Remove. - * trans.c (gfc_allocate_using_lib): Make static, handle token. - (gfc_allocate_allocatable): Ditto. - -2011-08-02 Jakub Jelinek - - PR fortran/46752 - * cpp.c (cpp_define_builtins): Change _OPENMP to 201107. - * openmp.c (gfc_free_omp_clauses): Free also final_expr. - (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define. - (gfc_match_omp_clauses): Handle parsing final and mergeable - clauses. - (OMP_TASK_CLAUSES): Allow final and mergeable clauses. - (gfc_match_omp_taskyield): New function. - (resolve_omp_clauses): Resolve final clause. Allow POINTERs and - Cray pointers in clauses other than REDUCTION. - (gfc_match_omp_atomic): Match optional - read/write/update/capture keywords after !$omp atomic. - (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms. - * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD, - print final and mergeable clauses. - (show_code_node): Handle EXEC_OMP_TASKYIELD. - * trans-openmp.c (gfc_trans_omp_clauses): Handle final and - mergeable clauses. - (gfc_trans_omp_taskyield): New function. - (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD. - (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms. - (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable. - (gfc_omp_predetermined_sharing): Adjust comment. - * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and - ST_OMP_END_ATOMIC. - (gfc_omp_clauses): Add final_expr and mergeable fields. - (gfc_exec_op): Add EXEC_OMP_TASKYIELD. - (gfc_omp_atomic_op): New enum typedef. - (struct gfc_code): Add ext.omp_atomic. - * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD. - * frontend-passes.c (gfc_code_walker): Also walk final_expr. - * resolve.c (gfc_resolve_blocks, resolve_code): Handle - EXEC_OMP_TASKYIELD. - * st.c (gfc_free_statement): Likewise. - * match.h (gfc_match_omp_taskyield): New prototype. - * parse.c (decode_omp_directive): Handle taskyield directive. - Handle !$omp end atomic. - (case_executable): Add ST_OMP_TASKYIELD case. - (gfc_ascii_statement): Handle ST_OMP_TASKYIELD. - (parse_omp_atomic): Return gfc_statement instead of void. - For !$omp atomic capture parse two assignments instead of - just one and require !$omp end atomic afterwards, for - other !$omp atomic forms just allow !$omp end atomic at the - end. - (parse_omp_structured_block, parse_executable): Adjust - parse_omp_atomic callers. - -2011-08-02 Tobias Burnus - - * intrinsic.c (OMP_LIB): Updated openmp_version's - value to 201107. - * gfortran.texi (OpenMP): Update ref to OpenMP 3.1. - * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1; - remove deleted omp_integer_kind and omp_logical_kind constants. - -2011-07-31 Janus Weil - - PR fortran/49112 - * resolve.c (resolve_structure_cons): Don't do the full dt resolution, - only call 'resolve_fl_derived0'. - (resolve_typebound_procedures): Resolve typebound procedures of - parent type. - (resolve_fl_derived0): New function, which does a part of the work - for 'resolve_fl_derived'. - (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional - things. - -2011-07-30 Thomas Koenig - - PR fortran/48876 - * expr.c (gfc_simplify_expr): If end of a string is less - than zero, set it to zero. - -2011-07-28 Jakub Jelinek - - PR fortran/31067 - * frontend-passes.c (optimize_minmaxloc): New function. - (optimize_expr): Call it. - -2011-07-27 Tobias Burnus - - PR fortran/45586 - * trans-types.c (gfc_get_derived_type): Ensure that pointer - component types are marked as nonrestricted. - -2011-07-27 Daniel Carrera - - PR fortran/49755 - * trans.c (gfc_allocate_using_malloc): Change function signature. - Return nothing. New parameter "pointer". Eliminate temorary variables. - (gfc_allocate_using_lib): Ditto. - (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib - and gfc_allocate_using_malloc. Do not free and then reallocate a - variable that is already allocated. - (gfc_likely): New function. Basedon gfc_unlikely. - * trans-array.c (gfc_array_init_size): New parameter "descriptor_block". - Instructions to modify the array descriptor are stored in this block - while other instructions continue to be stored in "pblock". - (gfc_array_allocate): Update call to gfc_array_init_size. Move the - descriptor_block so that the array descriptor is only updated if - the array was allocated successfully. - Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. - * trans.h (gfc_allocate_allocatable): Change function signature. - Function now returns void. - (gfc_allocate_using_lib): Ditto, and new function parameter. - (gfc_allocate_using_malloc): Ditto. - * trans-openmp.c (gfc_omp_clause_default_ctor, - gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call - to gfc_allocate_allocatable with gfc_allocate_using_malloc. - * trans-stmt.c (gfc_trans_allocate): Update function calls for - gfc_allocate_allocatable and gfc_allocate_using_malloc. - -2011-07-26 Tobias Burnus - - * trans-array.c (CAF_TOKEN_FIELD): New macro constant. - (gfc_conv_descriptor_token): New function. - * trans-array.h (gfc_conv_descriptor_token): New prototype. - * trans-types.c (gfc_get_array_descriptor_base): For coarrays - with -fcoarray=lib, append "void *token" to the array descriptor. - (gfc_array_descriptor_base_caf): New static variable. - * trans-expr.c (gfc_conv_procedure_call): Handle token and offset - when passing a descriptor coarray to a nondescriptor dummy. - -2011-07-23 Tobias Burnus - - * resolve.c (resolve_symbol): Fix coarray var decl check. - -2011-07-21 Daniel Carrera - - * trans.c (gfc_allocate_with_status): Split into two functions - gfc_allocate_using_malloc and gfc_allocate_usig_lib. - (gfc_allocate_using_malloc): The status parameter is now the - actual status rather than a pointer. Code cleanup. - (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and - errlen. Pass these to the coarray lib. - * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to - gfc_allocate_allocatable. - (gfc_omp_clause_copy_ctor): Ditto. - (gfc_trans_omp_array_reduction): Ditto. - * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to - gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate - fuctions. If using coarray lib, pass errmsg and errlen to the allocate - functions. Move error checking outside the if (!gfc_array_allocate) - block so that it also affects trees produced by gfc_array_allocate. - * trans-array.c (gfc_array_allocate): Add new parameters errmsg - and errlen. Replace parameter pstat by status. Code cleanup. Update - calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. - * trans-array.h (gfc_array_allocate): Update signature of - gfc_array_allocate. - -2011-07-21 Steven G. Kargl - - * gfortran.texi: Remove a duplicate word. - -2011-07-21 Tobias Burnus - - * check.c (gfc_check_present): Allow coarrays. - * trans-array.c (gfc_conv_array_ref): Avoid casting - when a pointer is wanted. - * trans-decl.c (create_function_arglist): For -fcoarray=lib, - handle hidden token and offset arguments for nondescriptor - coarrays. - * trans-expr.c (get_tree_for_caf_expr): New function. - (gfc_conv_procedure_call): For -fcoarray=lib pass the - token and offset for nondescriptor coarray dummies. - * trans.h (lang_type): Add caf_offset tree. - (GFC_TYPE_ARRAY_CAF_OFFSET): New macro. - -2011-07-19 Tobias Burnus - - * expr.c (gfc_is_coarray): New function. - * gfortran.h (gfc_is_coarray): New prototype. - * interface.c (compare_parameter): Use it. - -2011-07-19 Richard Guenther - - * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus. - (gfc_trans_string_copy): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise. - * trans-types.c (gfc_get_array_descr_info): Likewise. - * trans.c (gfc_build_array_ref): Likewise. - -2011-07-19 Janus Weil - - PR fortran/49708 - * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers. - -2011-07-18 Tobias Burnus - - * trans-decl.c (gfc_build_qualified_array): Make coarray's - token TYPE_QUAL_RESTRICT. - -2011-07-18 Tobias Burnus - - * resolve.c (resolve_transfer): Mention defined I/O - in the diagnostic for alloc_comp/pointer_comp. - -2011-07-17 Tobias Burnus - - PR fortran/34657 - * module.c (check_for_ambiguous): Check whether the name is matches - the current program unit. - -2011-07-17 Tobias Burnus - - PR fortran/49624 - * expr.c (gfc_check_pointer_assign): Fix checking for invalid - pointer bounds. - -2011-07-16 Tobias Burnus - - * expr.c (gfc_ref_this_image): New function. - (gfc_is_coindexed): Use it. - * gfortran.h (gfc_ref_this_image): New prototype. - * resolve.c (resolve_deallocate_expr, - resolve_allocate_expr): Support alloc scalar coarrays. - * trans-array.c (gfc_conv_array_ref, gfc_array_init_size, - gfc_conv_descriptor_cosize, gfc_array_allocate, - gfc_trans_deferred_array): Ditto. - * trans-expr.c (gfc_conv_variable) Ditto.: - * trans-stmt.c (gfc_trans_deallocate): Ditto. - * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds - gfc_get_array_descr_info): Ditto. - * trans-decl.c (gfc_get_symbol_decl): Ditto. - -2011-07-11 Jakub Jelinek - - PR fortran/49698 - * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize - inner_size to gfc_index_one_node instead of integer_one_node. - -2011-07-10 Tobias Burnus - - PR fortran/49690 - * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL. - -2011-07-09 Uros Bizjak - - PR fortran/48926 - * expr.c (gfc_get_corank): Change return value to int. - * gfortran.h (gfc_get_corank): Update function prototype. - -2011-07-07 Mikael Morin - - PR fortran/49648 - * resolve.c (resolve_symbol): Force resolution of function result's - array specification. - -2011-07-07 Tobias Burnus - - * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register - with NULL arguments for (new) stat=/errmsg= arguments. - -2011-07-06 Daniel Carrera - - * trans-array.c (gfc_array_allocate): Rename allocatable_array to - allocatable. Rename function gfc_allocate_array_with_status to - gfc_allocate_allocatable_with_status. Update function call for - gfc_allocate_with_status. - * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function - gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status. - * trans-stmt.c (gfc_trans_allocate): Update function call for - gfc_allocate_with_status. Rename function gfc_allocate_array_with_status - to gfc_allocate_allocatable_with_status. - * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status - so it uses the library for memory allocation when -fcoarray=lib. - (gfc_allocate_allocatable_with_status): Renamed from - gfc_allocate_array_with_status. - (gfc_allocate_allocatable_with_status): Update function call for - gfc_allocate_with_status. - * trans.h (gfc_coarray_type): New enum. - (gfc_allocate_with_status): Update prototype. - (gfc_allocate_allocatable_with_status): Renamed from - gfc_allocate_array_with_status. - * trans-decl.c (generate_coarray_sym_init): Use the new constant - GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register. - -2011-07-06 Richard Guenther - - * f95-lang.c (gfc_init_decl_processing): - Merge calls to build_common_tree_nodes and build_common_tree_nodes_2. - -2011-07-04 Jakub Jelinek - - PR fortran/49623 - * gfortranspec.c (lang_specific_driver): Ignore options with - CL_ERR_MISSING_ARG errors. - -2011-07-02 Janus Weil - - PR fortran/49562 - * expr.c (gfc_check_vardef_context): Handle type-bound procedures. - -2011-06-30 Jakub Jelinek - - PR fortran/49540 - * gfortran.h (gfc_constructor): Add repeat field. - * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1. - * array.c (current_expand): Add repeat field. - (expand_constructor): Copy repeat. - * constructor.c (node_free, node_copy, gfc_constructor_get, - gfc_constructor_lookup): Handle repeat field. - (gfc_constructor_lookup_next, gfc_constructor_remove): New functions. - * data.h (gfc_assign_data_value): Add mpz_t * argument. - (gfc_assign_data_value_range): Removed. - * constructor.h (gfc_constructor_advance): Removed. - (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes. - * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and - also handle overwriting a range with a single entry. - (gfc_assign_data_value_range): Removed. - * resolve.c (check_data_variable): Adjust gfc_assign_data_value - call. Use gfc_assign_data_value instead of - gfc_assign_data_value_expr. - -2011-06-27 Janus Weil - - PR fortran/49466 - * trans-array.c (structure_alloc_comps): Make sure sub-components - and extended types are correctly deallocated. - -2011-06-21 Andrew MacLeod - - * trans-openmp.c: Add sync_ or SYNC__ to builtin names. - * trans-stmt.c: Add sync_ or SYNC__ to builtin names. - * trans-decl.c: Add sync_ or SYNC__ to builtin names. - -2011-06-21 Janus Weil - - PR fortran/49112 - * class.c (gfc_find_derived_vtab): Make vtab and default initialization - symbols SAVE_IMPLICIT. - -2011-06-20 Tobias Burnus - - PR fortran/18918 - * gfortran.h (gfc_check_vardef_context): Update prototype. - (iso_fortran_env_symbol): Handle derived types. - (symbol_attribute): Add lock_comp. - * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check. - * interface.c (compare_parameter, gfc_procedure_use): Handle - LOCK_TYPE. - (compare_actual_formal): Update - gfc_check_vardef_context call. - * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto. - * intrinsic.c (check_arglist): Ditto. - * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto. - * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add. - * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE. - * module.c (mio_symbol_attribute): Handle lock_comp. - (create_derived_type): New function. - (use_iso_fortran_env_module): Call it to handle LOCK_TYPE. - * parse.c (parse_derived): Add constraint check for LOCK_TYPE. - * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint - checks for LOCK_TYPE. - (gfc_resolve_iterator, resolve_deallocate_expr, - resolve_allocate_expr, resolve_code, resolve_transfer): Update - gfc_check_vardef_context call. - * trans-stmt.h (gfc_trans_lock_unlock): New prototype. - * trans-stmt.c (gfc_trans_lock_unlock): New function. - * trans.c (trans_code): Handle LOCK and UNLOCK. - -2011-06-18 Janus Weil - - PR fortran/49400 - * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside - BLOCK constructs. - -2011-06-17 Janus Weil - - PR fortran/48699 - * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic, - make sure the vtab is present. - -2011-06-16 Janus Weil - - PR fortran/49074 - * interface.c (gfc_extend_assign): Propagate the locus from the - assignment to the type-bound procedure call. - -2011-06-16 Janus Weil - - PR fortran/49417 - * module.c (mio_component): Make sure the 'class_ok' attribute is set - for use-associated CLASS components. - * parse.c (parse_derived): Check for 'class_ok' attribute. - * resolve.c (resolve_fl_derived): Ditto. - -2011-06-13 Thomas Koenig - - * frontend-passes.c (remove_trim): New function. - (optimize_assignment): Use it. - (optimize_comparison): Likewise. Return correct status - for previous change. - -2011-06-12 Tobias Burnus - - PR fortran/49324 - * trans-expr.c (gfc_trans_assignment_1): Tell - gfc_trans_scalar_assign to also deep-copy RHS nonvariables - with allocatable components. - * trans-array.c (gfc_conv_expr_descriptor): Ditto. - -2011-05-11 Thomas Koenig - - * frontend-passes.c (optimize_assignment): Follow chains - of concatenation operators to the end for removing trailing - TRIMS for assignments. - -2011-06-10 Daniel Carrera - - * trans-decl.c (gfc_build_builtin_function_decls): - Updated declaration of caf_sync_all and caf_sync_images. - * trans-stmt.c (gfc_trans_sync): Function - can now handle a "stat" variable that has an integer type - different from integer_type_node. - -2011-06-09 Richard Guenther - - * trans.c (gfc_allocate_array_with_status): Mark error path - as unlikely. - -2011-06-08 Tobias Burnus - - PR fortran/18918 - * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK. - (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK. - (gfc_code): Add expr4. - * match.h (gfc_match_lock, gfc_match_unlock): New prototypes. - * match.c (gfc_match_lock, gfc_match_unlock, - lock_unlock_statement): New functions. - (sync_statement): Bug fix, avoiding double freeing. - (gfc_match_if): Handle LOCK/UNLOCK statement. - * parse.c (decode_statement, next_statement, - gfc_ascii_statement): Ditto. - * st.c (gfc_free_statement): Handle LOCK and UNLOCK. - * resolve.c (resolve_lock_unlock): New function. - (resolve_code): Call it. - * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK. - -2011-06-07 Richard Guenther - - * f95-lang.c (gfc_init_decl_processing): Do not set - size_type_node or call set_sizetype. - -2011-06-05 Tobias Burnus - - PR fortran/49255 - * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer - for F2008. - -2011-06-05 Andreas Schmidt - Thomas Koenig - - * dump-parse-tree.c (show_symbol): Don't dump namespace - for ENTRY to avoid infinite recursion. - -2011-06-02 Asher Langton - - PR fortran/49268 - * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray - pointees as AS_EXPLICIT. - -2011-06-02 Asher Langton - - PR fortran/37039 - * decl.c (variable_decl): Merge current_as before copying to cp_as. - -2011-06-02 Steven G. Kargl - - PR fortran/49265 - * decl.c (gfc_match_modproc): Allow for a double colon in a module - procedure statement. - * parse.c ( decode_statement): Deal with whitespace around :: in - gfc_match_modproc. - -2011-05-31 Tobias Burnus - - PR fortran/18918 - * intrinsic.c (klass): Add CLASS_ATOMIC. - (add_subroutines): Add atomic_ref/atomic_define. - * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document. - * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref, - gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes. - * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF - and GFC_ISYM_ATOMIC_REF. - (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars. - * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New - functions. - * check.c (gfc_check_atomic, gfc_check_atomic_def, - gfc_check_atomic_ref): New functions. - * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND, - ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value. - * trans-intrinsic.c (conv_intrinsic_atomic_def, - conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New - functions. - (conv_intrinsic_move_alloc) Renamed from - gfc_conv_intrinsic_move_alloc - and made static. - * trans.h (gfc_conv_intrinsic_move_alloc): Remove. - (gfc_conv_intrinsic_subroutine) Add prototype. - * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine. - * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New - global vars. - (gfc_init_kinds): Set them. - -2011-05-31 Tobias Burnus - - PR fortran/18918 - * trans-array.c (gfc_trans_dummy_array_bias): Handle - cobounds of assumed-shape arrays. - -2011-05-31 Tobias Burnus - - PR fortran/18918 - * resolve.c (resolve_fl_variable): Handle static coarrays - with non-constant cobounds. - -2011-05-29 Janus Weil - - PR fortran/47601 - * module.c (mio_component_ref): Handle components of extended types. - * symbol.c (gfc_find_component): Return is sym is NULL. - -2011-05-29 Tobias Burnus - - PR fortran/18918 - * interface.c (compare_parameter): Add check for passing coarray - to allocatable noncoarray dummy. - -2011-05-29 Tobias Burnus - Richard Guenther - - PR fortran/18918 - * trans-types.c (gfc_get_nodesc_array_type): Don't mess with - the type's TREE_TYPE. - * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT. - * trans.c (gfc_build_array_ref): Ditto. - -2011-05-27 Tobias Burnus - - PR fortran/18918 - * check.c (gfc_check_associated, gfc_check_null): Add coindexed check. - * match.c (gfc_match_nullify): Ditto. - * resolve.c (resolve_deallocate_expr): Ditto. - * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted - for nonpointers. - -2011-05-27 Tobias Burnus - - PR fortran/48820 - * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK. - * intrinsic.c (add_functions): Add rank intrinsic. - (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR. - * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes. - * simplify.c (gfc_simplify_rank): New function. - * intrinsic.texi (RANK): Add description for rank intrinsic. - * check.c (gfc_check_rank): New function. - -2011-05-26 Paul Thomas - Thomas Koenig - - PR fortran/48955 - * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET - changed to GFC_ENABLE_REVERSE. - * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed - to GFC_INHIBIT_REVERSE. - * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE, - GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE. - * dependency.c (gfc_dep_resolver): Change names for elements of - gfc_reverse as necessary. Change the logic so that forward - dependences are remembered as well as backward ones. When both - have appeared, force a temporary. - -2011-05-26 Tobias Burnus - - PR fortran/18918 - * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays. - * trans-decl.c (has_coarray_vars, caf_init_block, - gfor_fndecl_caf_register): New file-global variables. - (gfc_finish_var_decl): Make sure that coarrays in main are static. - (gfc_build_qualified_array): Generate coarray token variable. - (gfc_get_symbol_decl): Don't use a static initializer for coarrays. - (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register. - (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for - static coarrays. - (generate_local_decl): Check for local coarrays. - (create_main_function): SYNC ALL before calling MAIN. - (generate_coarray_sym_init): Register static coarray. - (generate_coarray_init): Generate CAF registering constructor - function. - (gfc_generate_function_code): Call it, if needed, do not create - cgraph twice. - (gfc_generate_module_vars, gfc_process_block_locals): Call - generate_coarray_init. - * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for - -fcoarray=lib. - * trans.h (gfor_fndecl_caf_register): New variable. - (lang_type): New element caf_token. - (GFC_TYPE_ARRAY_CAF_TOKEN): New macro. - -2011-05-24 Joseph Myers - - * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o. - (gfortran$(exeext)): Use libcommon-target.a. - -2011-05-22 Thomas Koenig - - * frontend-passes.c (cfe_register_funcs): Also register - character functions if their charlens are known and constant. - Also register allocatable functions. - -2011-05-21 Janus Weil - - PR fortran/48699 - * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the - selector is ALLOCATABLE. - -2011-05-20 Janus Weil - - PR fortran/48706 - * module.c (write_dt_extensions): Do not write extended types which - are local to a subroutine. - -2011-05-20 Joseph Myers - - * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o. - -2011-05-20 Janne Blomqvist - - * gfortran.texi (set_fpe): Update documentation. - * invoke.texi (-ffpe-trap): Likewise. - * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT. - * options.c (gfc_handle_fpe_trap_option): Handle inexact and make - precision an alias for it. - -2011-05-19 Tobias Burnus - - PR fortran/18918 - * trans-types.c (gfc_get_element_type): Handle scalar coarrays. - (gfc_get_nodesc_array_type): Make a variant-type copy for scalar - coarrays. - * trans.c (gfc_build_array_ref): Return original type not variant - copy for scalar coarrays. - * trans-array.c (gfc_conv_array_ref): Ditto. - -2011-05-18 Janus Weil - - PR fortran/48700 - * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO' - argument to avoid memory leaks. - -2011-05-16 Tobias Burnus - - * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR. - (Fortran 2008 status): Multi-image support for coarrays. - (TR 19113 status): New section. - -2011-05-15 Tobias Burnus - - PR fortran/18918 - actual argument is not an array; rank mismatch is diagnosted later. - * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle - scalar coarrays. - * trans-types.c (gfc_get_array_type_bounds): Ditto. - -2011-05-15 Joern Rennecke - - PR middle-end/46500 - * trans-types.c: Include "tm.h". - [0] (c_size_t_size): Remove. - -2011-05-15 Janne Blomqvist - - PR libfortran/48915 - * gfortran.texi (_gfortran_set_options): Even though -fbacktrace - is now the default, the library defaults to backtracing disabled. - -2011-05-14 Tobias Burnus - - * lang.opt (fdump-core): Re-add as ignored option - for backward compatibility. - -2011-05-14 Janne Blomqvist - - PR libfortran/48915 - * gfortran.texi: Update mixed-language programming section - reflecting the removal of the fdump-core option, and that - -fbacktrace is now enabled by default. - -2011-05-14 Thomas Koenig - - PR fortran/22572 - * frontend-passes.c (cfe_register_funcs): Also register functions - for potential elimination if the rank is > 0, the shape is unknown - and reallocate on assignment is active. - (create_var): For rank > 0 functions with unknown shape, create - an allocatable temporary. - -2011-05-14 Tobias Burnus - - PR fortran/18918 - * interface.c (compare_parameter): Skip diagnostic if - actual argument is not an array; rank mismatch is diagnosted later. - -2011-05-14 Tobias Burnus - - * options.c (gfc_init_options, gfc_post_options): Enable - -fstack-arrays by default if -Ofast is used. - * invoke.texi (-fstack-arrays): Document this. - -2011-05-14 Janne Blomqvist - - PR libfortran/48915 - * gfortran.h (gfc_option_t): Remove flag_dump_core. - * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section. - (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default. - * intrinsic.texi (ABORT): Remove explanation of -fdump-core. - * invoke.texi: Remove -fdump-core, document that -fbacktrace is - enabled by default. - * lang.opt: Remove -fdump-core. - * options.c (gfc_init_options): Make backtrace default to enabled, - remove dump_core. - (gfc_handle_option): Remove OPT_fdump-core. - * trans-decl.c: Pass a 0 to preserve ABI. - -2011-05-14 Janne Blomqvist - - * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation. - -2011-05-13 Tobias Burnus - - PR fortran/48972 - * io.c (resolve_tag_format, resolve_tag): Make sure - that the string is of default kind. - (gfc_resolve_inquire): Also resolve decimal tag. - -2011-05-12 Tobias Burnus - - PR fortran/48972 - * resolve.c (resolve_intrinsic): Don't resolve module - intrinsics multiple times. - -2011-05-11 Tobias Burnus - - PR fortran/48889 - * expr.c (gfc_is_constant_expr): Use e->value.function.esym - instead of e->symtree->n.sym, if available. - -2011-05-07 Eric Botcazou - - * f95-lang.c (global_bindings_p): Return bool and simplify. - -2011-05-07 Tobias Burnus - - PR fortran/18918 - PR fortran/48919 - * trans.h: Move gfc_init_coarray_decl prototype ... - * gfortran.h: ... to here. - * parse.c (translate_all_program_units): Call gfc_init_coarray_decl. - (gfc_parse_file): Update translate_all_program_units call. - * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration, - new argument whether DECL_EXTERNAL should be used. - (create_main_function): Update gfc_init_coarray_decl call. - * trans-intrinsic.c (trans_this_image, trans_image_index, - conv_intrinsic_cobound): Ditto. - -2011-05-06 Tobias Burnus - - PR fortran/18918 - * trans-array.c (gfc_walk_variable_expr): Continue walking - for scalar coarrays. - * trans-intrinsic.c (convert_element_to_coarray_ref): New function. - (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it. - (trans_this_image): Fix algorithm. - * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base, - gfc_sym_type): Handle scalar coarrays. - -2011-05-06 Tobias Burnus - - PR fortran/48858 - PR fortran/48820 - * lang.opt (std=f2008tr): New. - * libgfortran.h (GFC_STD_F2008_TR): New macro constant. - * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C) - procedures for -std=f2008tr/gnu/legacy. - (gfc_match_import): Set sym to NULL. - * options.c (set_default_std_flags,gfc_handle_option): Handle - -std=f2008tr. - * invoke.texi (-std=): Document -std=f2008tr. - -2011-05-05 Nathan Froyd - - * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label. - * trans-io.c (add_case): Likewise. - * trans-stmt.c (gfc_trans_integer_select): Likewise. - (gfc_trans_character_select): Likewise. - -2011-05-05 Eric Botcazou - - * trans-decl.c (trans_function_start): Do not set - dont_save_pending_sizes_p. - -2011-05-04 Nathan Froyd - - * trans.h (gfc_chainon_list): Delete. - * trans.c (gfc_chainon_list): Delete. - -2011-05-04 Tobias Burnus - - PR fortran/48864 - * invoke.texi (fno-protect-parens): Document - that -Ofast implies -fno-protect-parens. - * options.c (gfc_init_options, gfc_post_options): - Make -Ofast imply -fno-protect-parens. - -2011-05-04 Nathan Froyd - - * trans-decl.c (build_library_function_decl_1): Call - build_function_type_vec. Adjust argument list building accordingly. - * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise. - * trans-types.c (gfc_get_function_type): Likewise. - -2011-05-04 Richard Guenther - - * trans-array.c (gfc_trans_array_constructor_value): Use - size_int for bounds of range types. - (gfc_trans_array_constructor_value): Use size_type_node - for memcpy argument. - * trans-common.c (build_field): Use gfc_charlen_type_node - for lengths. - * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL - as type to build_int_cst. - * trans-const.c (gfc_build_string_const): Use size_int - for bounds of range types. - (gfc_build_wide_string_const): Likewise. - * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node - for lengths. - (gfc_trans_character_select): Likewise. - (gfc_trans_character_select): Do not pass NULL - as type to build_int_cst. - (gfc_trans_character_select): Use size_int for bounds of range types. - * trans-io.c (gfc_build_io_library_fndecls): Likewise. - (add_case): Do not pass NULL as type to build_int_cst. - (transfer_expr): Likewise. - (transfer_array_desc): Likewise. - * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node - for lengths. - (gfc_trans_assign_aux_var): Likewise. - (create_main_function): Use size_int for bounds of range types. - * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass - NULL as type to build_int_cst. - (gfc_conv_intrinsic_spacing): Likewise. - (gfc_conv_intrinsic_rrspacing): Likewise. - (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths. - -2011-05-04 Richard Guenther - - * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc - argument to int_const_binop. - -2011-05-03 Tobias Burnus - - PR fortran/18918 - * trans-intrinsic.c (trans_this_image): Implement version with - coarray argument. - (conv_intrinsic_cobound): Simplify code. - (gfc_conv_intrinsic_function): Call trans_this_image for - this_image(coarray) except for -fcoarray=single. - -2011-05-02 Steven G. Kargl - - PR fortran/48720 - * gfortran.texi: Document the 'Q' exponent-letter extension. - * invoke.texi: Document -Wreal-q-constant. - * lang.opt: Add -Wreal-q-constant option. - * gfortran.h: Add warn_real_q_constant to option struct. - * primary.c (match_real_constant): Use it. Accept 'Q' as - exponent-letter for REAL(16) real-literal-constant with a - fallback to REAL(10) or error if REAL(10) is not available. - * options.c (gfc_init_options, set_Wall) Set it. - (gfc_handle_option): Handle new option. - -2011-04-30 Thomas Koenig - - * dump-prase-tree.c (show_code_node): Set the current - namespace to the BLOCK before displaying it; restore - afterwards. - -2011-04-30 Tobias Burnus - - PR fortran/48821 - * decl.c (gfc_match_import): Don't try to find the - symbol if already found. - -2011-04-30 Paul Thomas - - PR fortran/48746 - * trans-expr.c (fcncall_realloc_result): Set the bounds and the - offset so that the lbounds are one. - (gfc_trans_arrayfunc_assign): Add rank to arguments of above. - -2011-04-29 Paul Thomas - - PR fortran/48462 - * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with - automatic reallocation when the lhs is a target. - - PR fortran/48746 - * trans-expr.c (fcncall_realloc_result): Make sure that the - result dtype field is set before the function call. - -2011-04-29 Tobias Burnus - - PR fortran/48810 - * resolve.c (resolve_typebound_generic_call): Don't check access - flags of the specific function. - - PR fortran/48800 - * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED - to AS_ASSUMED_SHAPE for function results. - (resolve_fl_var_and_proc): Print also for function results with - AS_DEFERRED an error, if they are not a pointer or allocatable. - (resolve_types): Make sure arguments of procedures in interface - blocks are resolved. - -2011-04-29 Michael Matz - - * options.c (options.c): Set warn_maybe_uninitialized. - -2011-04-28 Tobias Burnus - - PR fortran/48112 - * resolve.c (resolve_fl_var_and_proc): Print diagnostic of - function results only once. - (resolve_symbol): Always resolve function results. - - PR fortran/48279 - * expr.c (gfc_check_vardef_context): Fix handling of generic - EXPR_FUNCTION. - * interface.c (check_interface0): Reject internal functions - in generic interfaces, unless -std=gnu. - -2011-04-27 Tobias Burnus - - PR fortran/48788 - * resolve.c (resolve_global_procedure): Error recovery - - avoid segfault for (non)character-returning functions. - -2011-04-26 Thomas Koenig - - * decl.c (gfc_match_end): Check that the block name starts - with "block@". - * parse.c (gfc_build_block_ns): Make block names unique by - numbering them. - -2011-04-26 Thomas Koenig - - * frontend-passes.c (inserted_block): New variable. - (changed_statement): Likewise. - (create_var): Encase statement to be operated on in a BLOCK. - Adjust code insertion for BLOCK. - (cfe_code): Set inserted_block and changed_statement to NULL. - -2011-04-23 Tobias Burnus - - PR fortran/18918 - * module.c (mio_array_spec): Set as->cotype on reading. - * resolve.c (resolve_allocate_expr): Fix allocating coarray - components. - -2011-04-21 Thomas Koenig - - PR fortran/48405 - * frontend_passes (cfe_register_funcs): Remove workaround for DO - loops. - (gfc_code_walker): Make sure the pointer to the current - statement doen't change when other statements are inserted. - -2011-04-21 Tobias Burnus - - PR fortran/18918 - * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check. - -2011-04-20 Jim Meyering - - * expr.c (free_expr0): Remove useless if-before-free. - * gfortranspec.c (lang_specific_pre_link): Likewise. - * interface.c (gfc_extend_expr): Likewise. - * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise. - -2011-04-19 Tobias Burnus - - PR fortran/48588 - PR fortran/48692 - - * module.c (fix_mio_expr): Commit created symbol. - -2011-04-19 Janne Blomqvist - - * scanner.c (load_file): Use XCNEWVAR instead of xcalloc. - -2011-04-19 Janne Blomqvist - - * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of - free. - -2011-04-19 Janne Blomqvist - - * misc.c (gfc_getmem): Remove function. - * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem - usage with XCNEW or XCNEWVEC. - * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with - XCNEW or XCNEWVEC. - * options.c (gfc_handle_module_path_options) - (gfc_get_option_string): Likewise. - * resolve.c (gfc_resolve_forall): Likewise. - * simplify.c (simplify_transformation_to_array): Likewise. - * target-memory.c (gfc_target_interpret_expr): Likewise. - * trans-common.c (get_segment_info, copy_equiv_list_to_ns) - (get_init_field): Likewise. - * trans-expr.c (gfc_conv_statement_function): Likewise. - * trans-io.c (nml_full_name): Likewise. - * trans-stmt.c (gfc_trans_forall_1): Likewise. - * scanner.c (load_file): Replace gfc_getmem usage with xcalloc. - -2011-04-19 Tobias Burnus - - PR fortran/48588 - * parse.c (resolve_all_program_units): Skip modules. - (translate_all_program_units): Handle modules. - (gfc_parse_file): Defer code generation for modules. - -2011-04-19 Martin Jambor - - * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node - instead of cgraph_get_create_node. - -2011-04-18 Jim Meyering - - remove now-unused definition of gfc_free - * misc.c (gfc_free): Remove function. - * gfortran.h (gfc_free): Remove its prototype. - -2011-04-18 Jim Meyering - - convert each use of gfc_free (p) to free (p) - Do that by running this command: - perl -pi -e 's/\bgfc_free ?\(/free (/' \ - $(git grep -El '\bgfc_free ?\(') - which also corrects the few uses that lacked a space between - the function name and the open parenthesis. - Manually undo the change to the function definition itself - and its prototype. They'll be removed next. - * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/ - * constructor.c (node_free): Likewise. - * cpp.c (dump_queued_macros): Likewise. - * data.c (gfc_assign_data_value): Likewise. - * decl.c (free_variable, free_value, gfc_free_data): Likewise. - (gfc_free_data_all, match_old_style_init): Likewise. - (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL): - Likewise. - (gfc_match_modproc): Likewise. - * dependency.c (check_section_vs_section): Likewise. - * error.c (gfc_pop_error, gfc_free_error): Likewise. - * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise. - (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise. - (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol): - Likewise. - * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise. - (strip_function_call, optimize_comparison): Likewise. - * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise. - (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist): - Likewise. - * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise. - (gfc_convert_chartype): Likewise. - * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close): - Likewise. - (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise. - * match.c (gfc_free_iterator, gfc_match_associate): Likewise. - (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until): - Likewise. - (free_case, gfc_free_forall_iterator): Likewise. - * misc.c: Likewise. - * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise. - (free_true_name, peek_atom, mio_allocated_wide_string): Likewise. - (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise. - (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise. - (mio_full_typebound_tree, skip_list, load_equiv): Likewise. - (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise. - * openmp.c (gfc_free_omp_clauses): Likewise. - * options.c (gfc_post_options): Likewise. - * parse.c (select_type_pop, parse_omp_structured_block): Likewise. - * primary.c (gfc_free_structure_ctor_component): Likewise. - * resolve.c (resolve_structure_cons, check_host_association): Likewise. - (gfc_resolve_forall, resolve_equivalence): Likewise. - * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise. - (gfc_define_undef_line, preprocessor_line, include_line): Likewise. - (load_file, gfc_read_orig_filename): Likewise. - * simplify.c (simplify_transformation_to_array): Likewise. - (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING): - Likewise. - (gfc_simplify_compiler_options): Likewise. - * st.c (gfc_free_statement, gfc_free_statements): Likewise. - (gfc_free_association_list): Likewise. - * symbol.c (free_components, gfc_free_st_label, free_st_labels): - Likewise. - (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise. - (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise. - (free_common_tree, free_uop_tree, free_sym_tree): Likewise. - (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists): - Likewise. - (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise. - (gfc_free_namespace): Likewise. - * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise. - (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise. - (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise. - * trans-common.c (get_init_field, create_common): Likewise. - * trans-const.c (gfc_build_wide_string_const): Likewise. - (gfc_conv_string_init): Likewise. - * trans-decl.c (gfc_generate_function_code): Likewise. - * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping): - Likewise. - (SCALAR_POINTER, gfc_conv_statement_function): Likewise. - (gfc_trans_subarray_assign): Likewise. - * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise. - * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise. - (transfer_namelist_element, transfer_array_component): Likewise. - * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise. - * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise. - * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus): - Likewise. - -2011-04-15 Jim Meyering - - gfortran: remove cpp definition of free, ... - in preparation for the s/gfc_free/free/ transformation. - * gfortran.h (free): Remove macro definition that would otherwise - prevent direct use of the function. - -2011-04-18 Tobias Burnus - - PR fortran/18918 - * array.c (gfc_match_array_ref): Check for too many codimensions. - * check.c (gfc_check_image_index): Check number of elements - in SUB argument. - * simplify.c (gfc_simplify_image_index): Remove unreachable checks. - -2011-04-18 Tobias Burnus - - PR fortran/18918 - * iresolve.c (gfc_resolve_image_index): Set ts.type. - * simplify.c (gfc_simplify_image_index): Don't abort if the bounds - are not known at compile time and handle -fcoarray=lib. - * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle - IMAGE_INDEX. - (conv_intrinsic_cobound): Fix comment typo. - (trans_this_image): New function. - * trans-array.c (gfc_unlikely): Move to trans.c. - * trans.c (gfc_unlikely): Function moved from trans-array.c. - (gfc_trans_runtime_check): Use it. - * trans-io.c (gfc_trans_io_runtime_check): Ditto. - * trans.h (gfc_unlikely): Add prototype. - -2011-04-18 Paul Thomas - - PR fortran/48462 - * trans-expr.c (fcncall_realloc_result): Renamed version of - realloc_lhs_bounds_for_intrinsic_call that does not touch the - descriptor bounds anymore but makes a temporary descriptor to - hold the result. - (gfc_trans_arrayfunc_assign): Modify the reference to above - renamed function. - -2011-05-17 Tobias Burnus - - PR fortran/48624 - * trans-decl.c (gfc_get_extern_function_decl): Fix decl - for external procedures with proc arguments. - -2011-04-15 Michael Matz - - * trans-array.c (toplevel): Include gimple.h. - (gfc_trans_allocate_array_storage): Check flag_stack_arrays, - properly expand variable length arrays. - (gfc_trans_auto_array_allocation): If flag_stack_arrays create - variable length decls and associate them with their scope. - * gfortran.h (gfc_option_t): Add flag_stack_arrays member. - * options.c (gfc_init_options): Handle -fstack_arrays option. - * lang.opt (fstack-arrays): Add option. - * invoke.texi (Code Gen Options): Document it. - * Make-lang.in (trans-array.o): Depend on GIMPLE_H. - -2011-04-15 Tobias Burnus - - PR fortran/18918 - * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused - code which is also causing an ICE. - -2011-04-14 Nathan Froyd - - * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon. - -2011-04-12 Nathan Froyd - - * f95-lang.c (union lang_tree_node): Check for TS_COMMON before - calling TREE_CHAIN. - -2011-04-12 Paul Thomas - - PR fortran/48360 - PR fortran/48456 - * trans-array.c (get_std_lbound): For derived type variables - return array valued component lbound. - -2011-04-12 Martin Jambor - - * trans-decl.c (gfc_generate_function_code): Call - cgraph_get_create_node instead of cgraph_node. - -2011-04-11 Tobias Burnus - - PR fortran/18918 - * simplify.c (simplify_bound_dim): Exit for - ucobound's last dimension unless -fcoarray=single. - * trans-array (gfc_conv_descriptor_size_1): Renamed from - gfc_conv_descriptor_size, made static, has now from_dim and - to_dim arguments. - (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size. - (gfc_conv_descriptor_cosize): New function. - * trans-array.h (gfc_conv_descriptor_cosize): New prototype. - * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location - and handle last codim of ucobound for when -fcoarray is not "single". - -2011-04-08 Thomas Koenig - - PR fortran/48448 - * gfortran.h (gfc_option_t): Add warn_function_elimination and - flag_frontend_optimize. - * lang.opt (Wfunction-elimination): Add. - (ffrontend-optimize): Add. - * invoke.texi: Add documentation for -Wfunction-elimination - and -ffrontend-optimize. Add -faggressive-function-elimination - to list of code generation options. - * frontend-passes.c (gfc_run_passes): Run optimizations if - flag_frontend_optimize is set. - (warn_function_elimination): New function. - (cfe_expr_0): Call it if requested to do so. - * options.c (gfc_init_options): Initiate warn_function_elimination - and flag_frontend_optimize. - (gfc_post_options): Set flag_frontend_optimize if not specified - by user, depending on the optimization level. - (gfc_handle_option): Handle -Wfunction-elimination and - -ffrontend-optimize. - -2011-04-06 Tobias Burnus - - PR fortran/18918 - * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix - call for this_image. - -2011-04-05 Nathan Froyd - - * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use - build_function_type_list instead of build_function_type. Correct - argument order for func_frexp and func_scalbn. - -2011-04-05 Duncan Sands - - * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types. - -2011-04-04 Thomas Koenig - - * frontend-passes: (optimize_lexical_comparison): New function. - (optimize_expr): Call it. - (optimize_comparison): Also handle lexical comparison functions. - Return false instad of -2 for unequal comparison. - -2011-04-04 Thomas Koenig - - PR fortran/48412 - * frontend-passes (cfe_expr_0): Reverse the order of going - through the loops. - -2011-04-04 Tobias Burnus - Mikael Morin - - PR fortran/18918 - * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE. - * expr.c (gfc_is_coindexed): Ditto. - * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE. - * interface.c (compare_parameter): Use gfc_expr_attr and - gfc_is_coindexed. - * resolve.c (check_dimension, compare_spec_to_ref, - resolve_allocate_expr, check_data_variable): Update for - DIMEN_THIS_IMAGE. - * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image, - gfc_simplify_ucobound): Allow non-constant bounds. - * trans-array.c (gfc_set_loop_bounds_from_array_spec, - gfc_trans_create_temp_array, gfc_trans_constant_array_constructor, - gfc_set_vector_loop_bounds, gfc_conv_array_index_offset, - gfc_start_scalarized_body, gfc_trans_scalarizing_loops, - gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride, - gfc_conv_ss_startstride, gfc_conv_loop_setup, - gfc_trans_array_bounds, gfc_conv_expr_descriptor, - gfc_walk_variable_expr): Handle codimen. - * trans-decl.c (gfc_build_qualified_array): Save cobounds. - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2. - (conv_intrinsic_cobound): New function. - (gfc_conv_intrinsic_function): Call it. - (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle - ucobound, lcobound, this_image. - * fortran/trans-types.c (gfc_build_array_type): Save cobounds. - (gfc_get_dtype): Honour corank. - (gfc_get_nodesc_array_type): Save corank and codimensions. - (gfc_get_array_type_bounds): Save cobound. - * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item. - (gfc_array_kind): Add corank item. - (GFC_TYPE_ARRAY_CORANK): New macro. - -2011-04-03 Kai Tietz - - PR middle-end/48422 - * Make-lang.in (f95-lang.o): Add some missing dependencies. - -2011-04-01 Thomas Koenig - - PR fortran/48352 - * frontend-passes (cfe_register_funcs): Don't - register functions if they appear as iterators in DO loops. - -2011-03-30 Michael Matz - - PR fortran/47516 - * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter, - don't use local variable. - (gfc_trans_arrayfunc_assign): Adjust caller. - -2011-03-29 Janus Weil - - PR fortran/48095 - * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface. - * module.c (MOD_VERSION): Bump. - (mio_typespec): Read/write 'interface' field. - * primary.c (match_string_constant,match_logical_constant): Remove - unneeded code. - (match_complex_constant): Make sure to clear the typespec. - -2011-03-29 Thomas Koenig - - * frontend-passes.c (create_var): Warn about creating an - array temporary if requested. - -2011-03-27 Thomas Koenig - - PR fortran/47065 - * frontend-passes.c (optimize_trim): Also follow references, except - when they are substring references or array references. - -2011-03-27 Tobias Burnus - - PR fortran/18918 - * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to - GFC_ISYM_NUM_IMAGES. - (gfc_fcoarray): Add GFC_FCOARRAY_LIB. - * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES - rename. - * invoke.texi (-fcoarray=): Document "lib" argument. - * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE(). - * libgfortran.h (libgfortran_stat_codes): Add comments. - * options.c (gfc_handle_coarray_option): Add -fcoarray=lib. - * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image): - Handle GFC_FCOARRAY_LIB. - * trans.h (gfc_init_coarray_decl): New prototype. - (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize, - gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical, - gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images, - gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str, - gfort_gvar_caf_num_images, gfort_gvar_caf_this_image): - New global variables. - * trans-decl.c: Declare several CAF functions (cf. above). - (gfc_build_builtin_function_decls): Initialize those. - (gfc_init_coarray_decl): New function. - (create_main_function): Call CAF init/finalize functions. - * trans-intrinsic.c (trans_this_image, trans_num_images): New. - (gfc_conv_intrinsic_function): Call those. - * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical): - Add code for GFC_FCOARRAY_LIB. - -2011-03-26 Janus Weil - - PR fortran/48291 - * class.c (get_unique_hashed_string): Adjust maximum allowable length - for unique type string. - -2011-03-25 Kai Tietz - - * scanner.c (preprocessor_line): Use filename_cmp - instead of strcmp. - -2011-03-25 Tobias Burnus - - PR fortran/48174 - PR fortran/45304 - * trans-types.c (gfc_get_function_type): Don't use varargs if the - procedure is known to have no arguments. - -2011-03-21 Thomas Koenig - - PR fortran/22572 - * gfortran.h (gfc_option_t): Add - flag_aggressive_function_elimination. - (gfc_dep_compare_functions): Add prototype. - * lang.opt: Add faggressive-function-elimination. - * invoke.texi: Document -faggressive-function-elimination. - * frontend_passes (expr_array): New static variable. - (expr_size): Likewise. - (expr_count): Likewise. - (current_code): Likewise. - (current_ns): Likewise. - (gfc_run_passes): Allocate and free space for expressions. - (cfe_register_funcs): New function. - (create_var): New function. - (cfc_expr_0): New function. - (cfe_code): New function. - (optimize_namespace): Invoke gfc_code_walker with cfe_code - and cfe_expr_0. - * dependency.c (gfc_dep_compare_functions): New function. - (gfc_dep_compare_expr): Use it. - * options.c (gfc_init_options): Handle - flag_aggressive_function_elimination. - (gfc_handle_option): Likewise. - -2011-03-15 Francois-Xavier Coudert - - * arith.c (arith_power): Plug memory leak. - -2011-03-12 Janus Weil - - PR fortran/48059 - * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type - for polymorphic arguments. - -2011-03-12 Francois-Xavier Coudert - - PR fortran/48054 - * intrinsic.texi: Clarify doc of logarithm functions. - -2011-03-12 Francois-Xavier Coudert - - PR fortran/47552 - * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of - the string length variable. - -2011-03-11 Janus Weil - - PR fortran/47768 - * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP. - (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'. - -2011-03-06 Paul Thomas - Jerry DeLisle - - PR fortran/47850 - * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if - the expression has an iterator. Otherwise, iterate through the - array, checking for constant expressions for each element. - -2011-03-04 Janne Blomqvist - - PR libfortran/47802 - * intrinsic.texi: Update CTIME and FDATE documentation. - -2011-03-03 Ralf Wildenhues - - * invoke.texi (Option Summary, Fortran Dialect Options) - (Preprocessing Options, Runtime Options, Code Gen Options): - Fix vertical list spacing by using @itemx for additinoal - items, empty line before @table. Fix typos. - -2011-02-28 Francois-Xavier Coudert - - PR fortran/47894 - * intrinsic.texi: Fix doc of the VERIFY intrinsic. - -2011-02-26 Tobias Burnus - - PR fortran/47846 - * trans-stmt.c (gfc_trans_allocate): Fix allocation with - type-spec of deferred-length strings. - -2011-02-26 Tobias Burnus - - PR fortran/47886 - * openmp.c (gfc_resolve_omp_directive): Resolve if() - condition of OpenMP's task. - -2011-02-26 Francois-Xavier Coudert - - PR fortran/47894 - * intrinsic.texi: Fix doc of the VERIFY intrinsic. - -2011-02-24 Tobias Burnus - - PR fortran/47872 - * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add - multitable for linebreak between different syntax variants. - -2011-02-24 Richard Guenther - - PR fortran/47839 - * f95-lang.c (pushdecl): For externs in non-global scope push - a copy of the decl into the BLOCK. - -2011-02-23 Mikael Morin - - PR fortran/40850 - * trans.c (gfc_prepend_expr_to_block): New function. - * trans.h (gfc_prepend_expr_to_block): Declare. - * trans-array.c (gfc_conv_array_parameter): Replace - gfc_add_expr_to_block with gfc_prepend_expr_to_block. - -2011-02-22 Paul Thomas - - PR fortran/45743 - * trans-decl.c (gfc_get_extern_function_decl): Don't use the - gsymbol backend_decl if the procedure has a formal argument - that is a procedure. - -2011-02-22 Tobias Burnus - - PR fortran/41359 - * trans-stmt.c (gfc_trans_if_1): Use correct line for - expressions in the if condition. - -2011-02-20 Tobias Burnus - - PR fortran/47797 - * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and - gfc_restore_backend_locus to have better debug locations. - * trans-array.c (gfc_trans_deferred_array): Ditto. - -2011-02-20 Paul Thomas - - PR fortran/45077 - PR fortran/44945 - * trans-types.c (gfc_get_derived_type): Remove code that looks - for decls in gsym and add call to gfc_get_module_backend_decl. - * trans.h: Add prototype for gfc_get_module_backend_decl. - * trans-decl.c (gfc_get_module_backend_decl): New function. - (gfc_get_symbol_decl): Call it. - -2011-02-19 Paul Thomas - - PR fortran/47348 - * trans-array.c (get_array_ctor_all_strlen): Move up in file. - (get_array_ctor_var_strlen): Add block dummy and add call to - get_array_ctor_all_strlen instead of giving up on substrings. - Call gcc_unreachable for default case. - (get_array_ctor_strlen): Add extra argument to in call to - get_array_ctor_var_strlen. - -2011-02-18 Janus Weil - - PR fortran/47789 - * primary.c (gfc_match_structure_constructor): Handle empty parent - types. - -2011-02-18 Tobias Burnus - - PR fortran/47775 - * trans-expr.c (arrayfunc_assign_needs_temporary): Use - esym to check whether the specific procedure returns an - allocatable or pointer. - -2011-02-18 Michael Matz - - PR fortran/45586 - * gfortran.h (struct gfc_component): Add norestrict_decl member. - * trans.h (struct lang_type): Add nonrestricted_type member. - * trans-expr.c (gfc_conv_component_ref): Search fields with correct - parent type. - * trans-types.c (mirror_fields, gfc_nonrestricted_type): New. - (gfc_sym_type): Use it. - -2011-02-18 Janus Weil - - PR fortran/47768 - * resolve.c (resolve_transfer): Reject variables with procedure pointer - components. - -2011-02-18 Janus Weil - - PR fortran/47767 - * gfortran.h (gfc_check_access): Removed prototype. - (gfc_check_symbol_access): Added prototype. - * module.c (gfc_check_access): Renamed to 'check_access', made static. - (gfc_check_symbol_access): New function, basically a shortcut for - 'check_access'. - (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use - 'gfc_check_symbol_access'. - (write_operator,write_module): Renamed 'gfc_check_access'. - * resolve.c (resolve_fl_procedure,resolve_fl_derived, - resolve_fl_namelist,resolve_symbol,resolve_fntype): Use - 'gfc_check_symbol_access'. - -2011-02-16 Janus Weil - - PR fortran/47745 - * class.c (gfc_build_class_symbol): Set 'class_ok' attribute. - * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into - 'gfc_build_class_symbol'. - (gfc_match_decl_type_spec): Reject unlimited polymorphism. - * interface.c (matching_typebound_op): Check for 'class_ok' attribute. - * match.c (select_type_set_tmp): Move setting of 'class_ok' into - 'gfc_build_class_symbol'. - * primary.c (gfc_variable_attr): Check for 'class_ok' attribute. - -2011-02-15 Steven G. Kargl - - PR fortran/47633 - . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue. - -2011-02-14 Janus Weil - - PR fortran/47730 - * parse.c (gfc_build_block_ns): Commit 'block@' symbol. - -2011-02-14 Janus Weil - - PR fortran/47728 - * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic - arrays. - * primary.c (gfc_match_varspec): Avoid ICE for invalid class - declaration. - -2011-02-14 Janus Weil - - PR fortran/47349 - * interface.c (get_expr_storage_size): Handle derived-type components. - -2011-02-13 Tobias Burnus - - PR fortran/47569 - * interface.c (compare_parameter): Avoid ICE with - character components. - -2011-02-12 Janus Weil - - * class.c (gfc_build_class_symbol): Reject polymorphic arrays. - * decl.c (build_sym,build_struct,attr_decl1): Use return value of - 'gfc_build_class_symbol'. - -2011-02-12 Michael Matz - Janus Weil - Tobias Burnus - - PR fortran/45586 - * trans-expr.c (conv_parent_component_references): Avoid unintendent - skipping of parent compounds. - -2011-02-11 Tobias Burnus - - PR fortran/47550 - * resolve.c (resolve_formal_arglist): PURE with VALUE - and no INTENT: Add -std= diagnostics. - -2011-02-09 Janus Weil - - PR fortran/47352 - * resolve.c (resolve_procedure_interface): If interface has a result - variable, copy the typespec and set result pointer to self. - -2011-02-09 Janus Weil - - PR fortran/47463 - * resolve.c (resolve_typebound_subroutine): Remove erroneous line. - -2011-02-09 Janus Weil - - PR fortran/47637 - * trans-decl.c (init_intent_out_dt): Handle CLASS arguments. - -2011-02-08 Jerry DeLisle - - * io.c (match_io_element): Do not set dt if not inquire. - -2011-02-08 Janus Weil - - PR fortran/45290 - * expr.c (gfc_check_assign_symbol): Reject pointers as pointer - initialization target. - -2011-02-07 Janne Blomqvist - Ralf Wildenhues - - * gfortran.texi (Thread-safety): texinfo styling fixes. - * intrinsic.texi: Likewise. - -2011-02-06 Janne Blomqvist - - * gfortran.texi (Compiler Characteristics): Add reference to - thread-safety section. - -2011-02-06 Janne Blomqvist - - * gfortran.texi (Thread-safety): New section. - * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety. - (GETENV): Likewise. - (GET_ENVIRONMENT_VARIABLE): Likewise. - (SYSTEM): Likewise. - -2011-02-06 Paul Thomas - - PR fortran/47592 - * trans-stmt.c (gfc_trans_allocate): For deferred character - length allocations with SOURCE, store to the values and string - length to avoid calculating twice. Replace gfc_start_block - with gfc_init_block to avoid unnecessary contexts and to keep - declarations of temporaries where they should be. Tidy up the - code a bit. - -2011-02-05 Janne Blomqvist - - PR fortran/42434 - * intrinsic.texi (SYSTEM_CLOCK): Update documentation. - -2011-02-02 Janus Weil - Paul Thomas - - PR fortran/47082 - * trans-expr.c (gfc_trans_class_init_assign): Add call to - gfc_get_derived_type. - * module.c (read_cleanup): Do not use unique_symtrees for vtabs - or vtypes. - -2011-02-02 Janus Weil - - PR fortran/47572 - * resolve.c (resolve_fl_variable): Handle polymorphic allocatables. - -2011-02-01 Janus Weil - - PR fortran/47565 - * trans-expr.c (gfc_conv_structure): Handle constructors for procedure - pointer components with allocatable result. - -2011-01-31 Janus Weil - - PR fortran/47455 - * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers - with pointer or allocatable result. - -2011-01-31 Paul Thomas - - PR fortran/47519 - * trans-stmt.c (gfc_trans_allocate): Improve handling of - deferred character lengths with SOURCE. - * iresolve.c (gfc_resolve_repeat): Calculate character - length from source length and ncopies. - * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE - expressions for ALLOCATE. - -2011-01-31 Janus Weil - - PR fortran/47463 - * resolve.c (resolve_typebound_subroutine): Bug fix for the case of - an argument of a typebound assignment being a component. - -2011-01-31 Rainer Orth - - * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use - LD_STATIC_OPTION, LD_DYNAMIC_OPTION. - -2011-01-31 Tobias Burnus - - PR fortran/47042 - * resolve.c (resolve_fl_procedure): Reject stmt functions - with pointer/allocatable attribute. - -2011-01-31 Tobias Burnus - - PR fortran/47042 - * interface.c (gfc_procedure_use): Add explicit interface check for - pointer/allocatable functions. - -2011-01-30 Paul Thomas - - PR fortran/47523 - * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op - expr and is assigned to a deferred character length scalar, - make sure that the function is called before reallocation, - so that the length is available. Include procedure pointer - and procedure pointer component rhs as well. - - PR fortran/45170 - PR fortran/35810 - PR fortran/47350 - * gfortran.dg/allocatable_function_5.f90: New test not added by - mistake on 2011-01-28. - -2011-01-29 Tobias Burnus - - PR fortran/47531 - * check.c (gfc_check_shape): Support kind argument in SHAPE. - * intrinsic.c (add_functions): Ditto. - * resolve.c (gfc_resolve_shape): Ditto. - * simplify.c (gfc_simplify_shape): Ditto. - * intrinsic.h (gfc_check_shape, gfc_resolve_shape, - gfc_simplify_shape): Update prototypes. - * intrinisc.text (SHAPE): Document kind argument. - -2011-01-28 Tobias Burnus - - PR fortran/47507 - * resolve.c (resolve_formal_arglist): Allow arguments with VALUE - attribute also without INTENT. - -2011-01-28 Tobias Burnus - - * gfortran.texi (Fortran 2003 status): Mention support for - nonconstant namelist variables. - -2011-01-28 Paul Thomas - Tobias Burnus - - PR fortran/45170 - PR fortran/35810 - PR fortran/47350 - * interface.c (compare_actual_formal): An allocatable or pointer - deferred length actual is only allowed if the formal argument - is also deferred length. Clean up whitespace. - * trans-expr.c (gfc_conv_procedure_call): Pass string length for - deferred character length formal arguments by reference. Do the - same for function results. - (gfc_trans_pointer_assignment): Do not do runtime check of lhs - and rhs character lengths, if deferred length lhs. In this case - set the lhs character length to that of the rhs. - (gfc_conv_string_parameter): Remove assert that string length is - an integer type. - (is_scalar_reallocatable_lhs): New function. - (alloc_scalar_allocatable_for_assignment): New function. - (gfc_trans_assignment_1): Call above new function. If the rhs is - a deferred character length itself, makes ure that the function - is called before reallocation, so that the length is available. - (gfc_trans_asssignment): Remove error about assignment to - deferred length character variables. - * gfortran.texi: Update entry about (re)allocation on - assignment. - * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred - length character variables. - * module.c (mio_typespec): Transfer deferred characteristic. - * trans-types.c (gfc_get_function_type): New code to generate - hidden typelist, so that those character lengths that are - passed by reference get the right type. - * resolve.c (resolve_contained_fntype): Supress error for - deferred character length functions. - (resolve_function, resolve_fl_procedure) The same. - (check_symbols): Remove the error that support for - entity with deferred type parameter is not yet implemented. - (resolve_fl_derived): The same. - match.c (alloc_opt_list): Allow MOLD for deferred length object. - * trans-decl.c (gfc_get_symbol_decl): For deferred character - length dummies, generate a local variable for string length. - (create_function_arglist): Hidden length can be a pointer. - (gfc_trans_deferred_vars): For deferred character length - results and dummies, assign the string length to the local - variable from the hidden argument on entry and the other way - round on exit, as appropriate. - -2011-01-27 Tobias Burnus - - PR fortran/47474 - * trans-decl.c (gfc_generate_function_code): Fix init - of allocatable result variable with allocatable components. - -2011-01-27 Tobias Burnus - - PR fortran/47472 - * options.c (gfc_handle_module_path_options): Save - module path without trailing slash as include path. - -2011-01-25 Tobias Burnus - - PR fortran/47448 - * interface.c (gfc_check_operator_interface): Fix - defined-assignment check. - -2011-01-23 Tobias Burnus - - PR fortran/47421 - * trans-decl.c (gfc_trans_deferred_vars): Do not nullify - scalar allocatable dummy arguments. - -2011-01-22 Thomas Koenig - - PR fortran/38536 - * resolve.c (gfc_iso_c_func_interface): For C_LOC, - check for array sections followed by component references - which are illegal. Also check for coindexed arguments. - -2011-01-22 Tobias Burnus - - PR fortran/47399 - * primary.c (gfc_match_varspec): Relax gcc_assert to allow for - PARAMETER TBP. - -2011-01-21 Tobias Burnus - - PR fortran/47394 - * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check): - Use defined instead of magic number exit status codes. - * scanner.c (include_line, gfc_new_file): Ditto. - -2011-01-21 Tobias Burnus - - PR fortran/47377 - * expr.c (gfc_check_pointer_assign): Reject expr data-targets - without pointer attribute. - -2011-01-18 Janus Weil - - PR fortran/47240 - * resolve.c (expression_rank): Fix rank of procedure poiner components. - * trans-expr.c (gfc_conv_procedure_call): Take care of procedure - pointer components as actual arguments. - -2011-01-17 Jakub Jelinek - - PR fortran/47331 - * gfortran.h (struct gfc_omp_saved_state): New type. - (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes. - * resolve.c (resolve_global_procedure): Call it around gfc_resolve - call. - * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New - functions. - -2011-01-17 Tobias Burnus - - PR fortran/47327 - * invoke.texi (Options to request or suppress errors - and warnings): Fix cross link. - -2011-01-15 Tobias Burnus - - * gfortran.texi: Update Fortran 2003 Status section. - - PR fortran/47177 - * invoke.texi: Add missing "-E" to the -dM example. - -2011-01-13 Tobias Burnus - - PR fortran/47268 - * intrinsic.texi (get_command_argument, get_environment_variable): - Mark arguments as optional in the Arguments section. - -2011-01-13 Kai Tietz - Tobias Burnus - - PR fortran/47260 - * trans-decl.c (gfc_get_extern_function_decl, - build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before - calling decl_attributes. - -2011-01-13 Tobias Burnus - Mikael Morin - - PR fortran/45848 - PR fortran/47204 - * gfortran.h (gfc_code): Move union ext's case_list into - the struct block. - * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list - by "block.". - * frontend-passes.c (gfc_code_walker): Ditto. - * match.c (gfc_match_goto, gfc_match_call, gfc_match_case, - gfc_match_type_is, gfc_match_class_is): Ditto. - * resolve.c (resolve_select, resolve_select_type): Ditto. - * st.c (gfc_free_statement): Ditto. - * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select, - gfc_trans_character_select): Ditto. - * parse.c (resolve_all_program_units): For error recovery, avoid - segfault is proc_name is NULL. - -2011-01-11 Paul Thomas - - PR fortran/47051 - * trans-array.c (gfc_alloc_allocatable_for_assignment): Change - to be standard compliant by testing for shape rather than size - before skipping reallocation. Improve comments. - -2011-01-09 Janus Weil - - PR fortran/47224 - * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece - of code. - -2011-01-09 Thomas Koenig - - PR fortran/38536 - * resolve.c (is_scalar_expr_ptr): For a substring reference, - use gfc_dep_compare_expr to compare start and end expession. - Add FIXME for using gfc_deb_compare_expr elsewhere. - -2011-01-09 Janus Weil - - PR fortran/46313 - * class.c (get_unique_type_string): Make type name start with upper - case letter. - -2011-01-08 Thomas Koenig - - PR fortran/46405 - * invoke.texi: Mention -ffree-line-length-none and - -ffixed-line-length-none for preprocessing. - -2011-01-08 Paul Thomas - - PR fortran/46896 - * trans-expr.c (gfc_conv_procedure_call): With a non-copying - procedure argument (eg TRANSPOSE) use a temporary if there is - any chance of aliasing due to host or use association. - (arrayfunc_assign_needs_temporary): Correct logic for function - results and do not use a temporary for implicitly PURE - variables. Use a temporary for Cray pointees. - * symbol.c (gfc_add_save): Explicit SAVE not compatible with - implicit pureness of containing procedure. - * decl.c (match_old_style_init, gfc_match_data): Where decl - would fail in PURE procedure, set implicit_pure to zero. - * gfortran.h: Add implicit_pure to structure symbol_attr and - add prototype for function gfc_implicit_pure. - * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context): - Where decl would fail in PURE procedure, reset implicit_pure. - * io.c (match_vtag, gfc_match_open, gfc_match_close, - gfc_match_print, gfc_match_inquire, gfc_match_wait): The same. - * match.c (gfc_match_critical, gfc_match_stopcode, - sync_statement, gfc_match_allocate, gfc_match_deallocate): The - same. - * parse.c (decode_omp_directive): The same. - (parse_contained): If not PURE, set implicit pure attribute. - * resolve.c (resolve_formal_arglist, resolve_structure_cons, - resolve_function, resolve_ordinary_assign): The same. - (gfc_implicit_pure): New function. - * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE - to ab_attribute enum and use it in this function. - -2011-01-08 Thomas Koenig - - PR fortran/45777 - * symbol.c (gfc_symbols_could_alias): Strip gfc_ prefix, - make static and move in front of its only caller, to ... - * trans-array.c (symbols_could_alias): ... here. - Pass information about pointer and target status as - arguments. Allocatable arrays don't alias anything - unless they have the POINTER attribute. - (gfc_could_be_alias): Keep track of pointer and target - status when following references. Also check if typespecs - of components match those of other components or symbols. - -2011-01-07 Tobias Burnus - - PR fortran/41580 - * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab. - * intrinsic.c (add_functions): Use simplify functions for - EXTENDS_TYPE_OF and SAME_TYPE_AS. - * intrinsic.h (gfc_simplify_extends_type_of, - gfc_simplify_same_type_as): New prototypes. - * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of, - gfc_simplify_same_type_as): New functions. - -2011-01-07 Janus Weil - - PR fortran/47189 - PR fortran/47194 - * gfortran.h (gfc_lval_expr_from_sym): Moved prototype. - * class.c (gfc_class_null_initializer): Initialize _vptr to declared - type. - * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c. - * resolve.c (resolve_deallocate_expr): _data component will be added - at translation stage. - * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c. - * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type. - -2011-01-06 Daniel Franke - - PR fortran/33117 - PR fortran/46478 - * parse.c (parse_interface): Remove check for procedure types. - * interface.c (check_interface0): Verify that procedures are - either all SUBROUTINEs or all FUNCTIONs. - -2011-01-05 Janus Weil - - PR fortran/47180 - * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure - 'vtab' is initialized). - -2011-01-05 Janus Weil - - PR fortran/47180 - * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer - assignment, set the _vptr component to the declared type. - -2011-01-05 Thomas Koenig - - PR fortran/46017 - * resolve.c (resolve_allocate_deallocate): Follow references to - check for duplicate occurence of allocation/deallocation objects. - -2011-01-05 Janus Weil - - PR fortran/47024 - * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component - of polymorphic allocatables according to their declared type. - -2011-01-04 Janus Weil - - PR fortran/46448 - * class.c (gfc_find_derived_vtab): Set the module field for the copying - routine to make sure it receives module name mangling. - -2011-01-03 Jakub Jelinek - - * gfortranspec.c (lang_specific_driver): Update copyright notice - dates. - -2011-01-03 Janus Weil - - * intrinsic.texi (LEADZ): Fix example. - -2011-01-02 Janus Weil - - PR fortran/46408 - * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_ - routine. - -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/fortran/ChangeLog-2011 b/gcc/fortran/ChangeLog-2011 new file mode 100644 index 0000000..c7ac160 --- /dev/null +++ b/gcc/fortran/ChangeLog-2011 @@ -0,0 +1,4090 @@ +2011-12-31 Thomas König + + PR fortran/51502 + * expr.c (gfc_check_vardef_context): When determining + implicit pure status, also check for variable definition + context. Walk up namespaces until a procedure is + found to reset the implict pure attribute. + * resolve.c (gfc_implicit_pure): Walk up namespaces + until a procedure is found. + +2011-12-29 Thomas Koenig + + * dependency.c (gfc_dep_compare_functions): Document + new behavior for REALs and complex. Add comment to cases + where only INTEGERs are handled. Compare REAL and COMPLEX + constants, returning 0 and -2 only. Add assert to make + sure that only integer constants are compared. + +2011-12-19 Tobias Burnus + + PR fortran/51605 + * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as + local symbol. + +2011-12-19 Tobias Burnus + + PR fortran/51605 + * match.c (gfc_match_select_type): Handle + scalar polymophic coarrays. + (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok. + * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok. + * resolve.c (resolve_select_type): Ditto. + (resolve_assoc_var): Fix setting the TARGET attribute for + polymorphic selectors which are pointers. + +2011-12-19 Tobias Burnus + + * check.c (coarray_check): Add class ref if needed. + * resolve.c (resolve_fl_var_and_proc, + resolve_fl_derived0, resolve_symbol): Fix checking + for BT_CLASS. + +2011-12-15 Paul Thomas + + * trans-expr.c (gfc_walk_function_expr): Detect elemental + procedure components as well as elemental procedures. + * trans-array.c (gfc_conv_procedure_call): Ditto. + * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous + break for class pointers to continue. + +2011-12-15 Toon Moene + + PR fortran/51310 + * resolve.c (build_default_init_expr): Allow non-allocatable, + non-compile-time-constant-shape arrays to have a default + initializer. + * invoke.texi: Delete the restriction on automatic arrays not + being initialized by -finit-=. + +2011-12-15 Tobias Burnus + + PR fortran/51550 + PR fortran/47545 + PR fortran/49050 + PR fortran/51075 + * resolve.c (resolve_fl_derived0): Print not-implemented error + for deferred-length character components. + +2011-12-15 Tobias Burnus + + * primary.c (gfc_match_varspec): Match array spec for + polymorphic coarrays. + (gfc_match_rvalue): If a symbol of unknown flavor has a + codimension, mark it as a variable. + * simplify.c (gfc_simplify_image_index): Directly call + simplify_cobound. + * trans-intrinsic.c (trans_this_image): Fix handling of + corank = 1 arrays. + +2011-12-15 Jakub Jelinek + + PR debug/51517 + * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span. + (gfc_trans_deferred_vars): Instead add its runtime initialization + here. + +2011-12-11 Tobias Burnus + + PR fortran/50923 + * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only + if the front end has printed a warning. + (gfc_generate_function_code): Fix unset-result warning. + +2011-12-11 Paul Thomas + Tobias Burnus + + PR fortran/41539 + PR fortran/43214 + PR fortran/43969 + PR fortran/44568 + PR fortran/46356 + PR fortran/46990 + PR fortran/49074 + * interface.c (symbol_rank): Return the rank of the _data + component of class objects. + (compare_parameter): Also compare the derived type of the class + _data component for type mismatch. Similarly, return 1 if the + formal and _data ranks match. + (compare_actual_formal): Do not compare storage sizes for class + expressions. It is an error if an actual class array, passed to + a formal class array is not full. + * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get, + gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get, + gfc_vtable_extends_get, gfc_vtable_def_init_get, + gfc_vtable_copy_get): New functions for class API. + (gfc_conv_derived_to_class): For an array reference in an + elemental procedure call retain the ss to provide the + scalarized array reference. Moved in file. + (gfc_conv_class_to_class): New function. + (gfc_conv_subref_array_arg): Use the type of the + class _data component as a basetype. + (gfc_conv_procedure_call): Ensure that class array expressions + have both the _data reference and an array reference. Use + gfc_conv_class_to_class to handle class arrays for elemental + functions in scalarized loops, class array elements and full + class arrays. Use a call to gfc_conv_subref_array_arg in order + that the copy-in/copy-out for passing class arrays to derived + type arrays occurs correctly. + (gfc_conv_expr): If it is missing, add the _data component + between a class object or component and an array reference. + (gfc_trans_class_array_init_assign): New function. + (gfc_trans_class_init_assign): Call it for array expressions. + * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for + class scalars since their size will depend on the dynamic type. + (build_class_array_ref): New function. + (gfc_conv_scalarized_array_ref): Call build_class_array_ref. + (gfc_array_init_size): Add extra argument, expr3, that represents + the SOURCE argument. If present,use this for the element size. + (gfc_array_allocate): Also add argument expr3 and use it when + calling gfc_array_init_size. + (structure_alloc_comps): Enable class arrays. + * class.c (gfc_add_component_ref): Carry over the derived type + of the _data component. + (gfc_add_class_array_ref): New function. + (class_array_ref_detected): New static function. + (gfc_is_class_array_ref): New function that calls previous. + (gfc_is_class_scalar_expr): New function. + (gfc_build_class_symbol): Throw not implemented error for + assumed size class arrays. Remove error that prevents + CLASS arrays. + (gfc_build_class_symbol): Prevent pointer/allocatable conflict. + Also unset codimension. + (gfc_find_derived_vtab): Make 'copy' elemental and set the + intent of the arguments accordingly.: + * trans-array.h: Update prototype for gfc_array_allocate. + * array.c (gfc_array_dimen_size): Return failure if class expr. + (gfc_array_size): Likewise. + * gfortran.h: New prototypes for gfc_add_class_array_ref, + gfc_is_class_array_ref and gfc_is_class_scalar_expr. + * trans-stmt.c (trans_associate_var): Exclude class targets + from test. Move the allocation of the _vptr to an earlier time + for class objects. + (trans_associate_var): Assign the descriptor directly for class + arrays. + (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments. + Convert array element references into sections. Do not invoke + gfc_conv_procedure_call, use gfc_trans_call instead. + * expr.c (gfc_get_corank): Fix for BT_CLASS. + (gfc_is_simply_contiguous): Exclude class from test. + * trans.c (gfc_build_array_ref): Include class array refs. + * trans.h: Include prototypes for class API functions that are + new in trans-expr. Define GFC_DECL_CLASS(node). + * resolve.c (check_typebound_baseobject ): Remove error for + non-scalar base object. + (resolve_allocate_expr): Ensure that class _data component is + present. If array, call gfc_expr_to_intialize. + (resolve_select): Remove scalar error for SELECT statement as a + temporary measure. + (resolve_assoc_var): Update 'target' (aka 'selector') as + needed. Ensure that the target expression has the right rank. + (resolve_select_type): Ensure that target expressions have a + valid locus. + (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS. + * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where + appropriate. + (gfc_trans_deferred_vars): Get class arrays right. + * match.c(select_type_set_tmp): Add array spec to temporary. + (gfc_match_select_type): Allow class arrays. + * check.c (array_check): Ensure that class arrays have refs. + (dim_corank_check, dim_rank_check): Retrun success if class. + * primary.c (gfc_match_varspec): Fix for class arrays and + co-arrays. Make sure that class _data is present. + (gfc_match_rvalue): Handle class arrays. + *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array + reference. + (gfc_conv_allocated): Add _data component to class expressions. + (gfc_add_intrinsic_ss_code): ditto. + * simplify.c (simplify_cobound): Fix for BT_CLASS. + (simplify_bound): Return NULL for class arrays. + (simplify_cobound): Obtain correct array_spec. Use cotype as + appropriate. Use arrayspec for bounds. + +2011-12-11 Thomas Koenig + + PR fortran/50690 + * frontend-passes.c (in_omp_workshare): New variable. + (cfe_expr_0): Don't eliminiate common function if it would put + the variable immediately into a WORKSHARE construct. + (optimize_namespace): Set in_omp_workshare. + (gfc_code_walker): Keep track of OMP PARALLEL and OMP WORKSHARE + constructs. + +2011-12-10 Tobias Burnus + + * trans-decl.c (add_argument_checking): Fix syntax. + +2011-12-10 Tobias Burnus + Kai Tietz + + * trans-decl.c (add_argument_checking): Check ts.deferred earlier. + * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long. + +2011-12-08 Tobias Burnus + + PR fortran/50815 + * trans-decl.c (add_argument_checking): Skip bound checking + for deferred-length strings. + +2011-12-08 Tobias Burnus + + PR fortran/51378 + * symbol.c (gfc_find_component): Fix access check of parent + components. + +2011-12-08 Tobias Burnus + + PR fortran/51407 + * io/transfer.c (require_numeric_type): New function. + (formatted_transfer_scalar_read, formatted_transfer_scalar_write): + Use it, allow BOZ edit descriptors with F2008. + +2011-12-08 Tobias Burnus + + PR fortran/51448 + * fortran/trans-array.c (get_std_lbound): Fix handling of + conversion functions. + +2011-12-08 Toon Moene + + PR fortran/51310 + * invoke.texi: Itemize the cases for which + -finit-= doesn't work. + +2011-12-06 Tobias Burnus + + PR fortran/51435 + * expr.c (gfc_has_default_initializer): Fix handling of + DT with initialized pointer components. + +2011-12-05 Thomas Koenig + + PR fortran/51338 + * dependency.c (are_identical_variables): Handle case where + end fields of substring references are NULL. + +2011-12-04 Tobias Burnus + + PR fortran/51383 + * resolve.c (find_array_spec): Use ref->u.c.component + directly without starting from ts.u.derived. + +2011-12-03 Tobias Burnus + + PR fortran/48887 + * match.c (select_type_set_tmp): Don't set allocatable/pointer + attribute. + * class.c (gfc_build_class_symbol): Handle + attr.select_type_temporary. + +2011-12-03 Tobias Burnus + + PR fortran/50684 + * check.c (variable_check): Fix intent(in) check. + +2011-12-03 Tobias Burnus + + * check.c (gfc_check_move_alloc): Allow nonpolymorphic + FROM with polymorphic TO. + * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle + nonpolymorphic FROM with polymorphic TO. + +2011-12-01 Janne Blomqvist + + * module.c (dt_lower_string): Make static. + (dt_upper_string): Likewise. + +2011-12-01 Janne Blomqvist + + PR fortran/25708 + * module.c (parse_string): Read string into resizable array + instead of parsing twice and seeking. + (peek_atom): New implementation avoiding seeks. + (require_atom): Save and set column and line explicitly for error + handling. + +2011-12-01 Janne Blomqvist + + * misc.c (gfc_open_file): Don't call stat. + +2011-11-29 Thomas Koenig + + PR fortran/40958 + * module.c (prev_module_line): New variable. + (prev_module_column): New variable. + (prev_character): New variable. + (module_char): Update the new variables. + (module_unget_char): New function. + (parse_string): Use module_unget_char. + (parse_integer): Likewise. + (parse_name): Likewise. + +2011-11-29 Tobias Burnus + + PR fortran/51306 + PR fortran/48700 + * check.c (gfc_check_move_alloc): Make sure that from/to + are both polymorphic or neither. + * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup, + generate inline code. + +2011-11-28 Tobias Burnus + Steven G. Kargl + + PR fortran/51308 + * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER + conflicts for ISO_C_BINDING variables. + (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null + as SAVE. + +2011-11-25 Mikael Morin + + * trans-array.c (set_loop_bounds): Remove dead conditions. + +2011-11-25 Mikael Morin + + PR fortran/51250 + PR fortran/43829 + * trans-array.c (gfc_trans_create_temp_array): Get dimension from + the right gfc_ss struct. + +2011-11-25 Tobias Burnus + + PR fortran/50408 + * trans-decl.c (gfc_get_module_backend_decl): Also copy + ts.u.derived from the gsym if the ts.type is BT_CLASS. + (gfc_get_extern_function_decl): Copy also the backend_decl + for the symbol's ts.u.{derived,cl} from the gsym. + * trans-types.c (gfc_copy_dt_decls_ifequal): Directly + return if "from" and "to" are the same. + +2011-11-25 Tobias Burnus + + PR fortran/51302 + * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert. + +2011-11-24 Tobias Burnus + + PR fortran/51218 + * resolve.c (pure_subroutine): If called subroutine is + impure, unset implicit_pure. + (resolve_function): Move impure check to simplify code. + +2011-11-19 Tobias Burnus + + PR fortran/51207 + * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER + and hence as TREE_READONLY; add subroutine attribute to + __copy_ procedure. + + PR fortran/50640 + * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7. + * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as + GFC_DECL_PUSH_TOPLEVEL. + (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there. + (build_function_decl): Push __copy_ procedure to the toplevel. + +2011-11-16 Tobias Burnus + + PR fortran/39427 + PR fortran/37829 + * decl.c (match_data_constant, match_data_constant, variable_decl, + gfc_match_decl_type_spec, access_attr_decl, + check_extended_derived_type, gfc_match_derived_decl, + gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal + with DT constructors. + * gfortran.h (gfc_find_dt_in_generic, + gfc_convert_to_structure_constructor): New function prototypes. + * interface.c (check_interface0, check_interface1, + gfc_search_interface): Ignore DT constructors in generic list. + * match.h (gfc_match_structure_constructor): Update prototype. + * match.c (match_derived_type_spec): Ensure that one uses the DT + not the generic function. + * module.c (MOD_VERSION): Bump. + (dt_lower_string, dt_upper_string): New functions. + (find_use_name_n, find_use_operator, compare_true_names, + find_true_name, add_true_name, fix_mio_expr, load_needed, + read_module, write_dt_extensions, write_symbol): Changes to deal with + different symtree vs. sym names. + (create_derived_type): Create also generic procedure. + * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic + function as the same. + * primary.c (gfc_convert_to_structure_constructor): New function. + (gfc_match_structure_constructor): Restructured; calls + gfc_convert_to_structure_constructor. + (build_actual_constructor, gfc_match_rvalue): Update for DT generic + functions. + * resolve.c (resolve_formal_arglist, resolve_structure_cons, + is_illegal_recursion, resolve_generic_f, resolve_variable, + resolve_fl_variable_derived, resolve_fl_derived0, + resolve_symbol): Handle DT and DT generic constructors. + * symbol.c (gfc_use_derived, gfc_undo_symbols, + gen_special_c_interop_ptr, gen_cptr_param, + generate_isocbinding_symbol, gfc_get_derived_super_type): Handle + derived-types, which are hidden in the generic type. + (gfc_find_dt_in_generic): New function + * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER + expr by actual value. + * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts): + Ensure that we use the DT and not the generic function. + * trans-types.c (gfc_get_derived_type): Ensure that we use the DT + and not the generic procedure. + +2011-11-14 Tobias Burnus + + PR fortran/51073 + * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays. + +2011-11-09 Tobias Burnus + + * symbol.c (clear_sym_mark, traverse_ns): Remove functions. + (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions. + (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree. + +2011-11-09 Janne Blomqvist + + PR libfortran/50016 + * gfortran.texi (Data consistency and durability): New section. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/50540 + * resolve.c (resolve_forall_iterators): Transform internal errors + to normal errors. + +2011-11-09 Janus Weil + + PR fortran/50960 + * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER. + * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with + their value. + * resolve.c (resolve_values): Use-associated symbols do not need to + be resolved again. + (resolve_fl_parameter): Make sure the symbol has a value. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/38718 + * intrinsic.c (add_functions): Allow dreal simplification. + * intrinsic.h (gfc_simplify_dreal): New prototype. + * simplify.c (gfc_simplify_dreal): New function. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/21881 + * trans-types.c (gfc_get_dtype): Issue a fatal error instead of + an internal error. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50404 + * io.c (gfc_resolve_close): CLOSE requires a UNIT. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50409 + * expr.c (gfc_simplify_expr): Substrings can't have negative + length. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50334 + * invoke.texi (-finit-*): Document interaction with + -Wuninitialized. + +2011-11-07 François-Xavier Coudert + + PR libfortran/49188 + PR libfortran/49336 + * invoke.texi: Fix documentation of fsign-zero option. Remove + contractions. + * intrinsic.texi: Fix ATAN2 documentation for signed zeros. + Remove contractions. + * gfortran.texi: Remove contractions. + +2011-11-07 Janus Weil + + PR fortran/50919 + * class.c (add_proc_comp): Don't add non-overridable procedures to the + vtable. + * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): + Don't generate a dynamic _vptr call for non-overridable procedures. + +2011-11-07 Janne Blomqvist + + * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock + and time are part of the C standard library. + +2011-11-06 Janus Weil + + * gfortran.h (gfc_extend_expr): Modified prototype. + * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'. + Remove argument 'real_error'. + * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'. + +2011-11-06 Andrew MacLeod + Aldy Hernandez + + Merged from cxx-mem-model. + + * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT, + BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, + BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, + BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, + BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, + BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT, + BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types. + +2011-11-04 Mikael Morin + + PR fortran/43829 + * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic + case in the assertion. + * trans-intrinsic (enter_nested_loop): New function. + (gfc_conv_intrinsic_arith): Support non-scalar cases. + (nest_loop_dimension, walk_inline_intrinsic_arith): New functions. + (walk_inline_intrinsic_function): Handle sum and product. + (gfc_inline_intrinsic_function_p): Ditto. + * trans.h (gfc_get_loopinfo): New macro. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent + expression variable. Use it. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop + pointer. Use it. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling + cleanup. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions. + +2011-11-04 Mikael Morin + + * frontend-passes.c (cfe_register_funcs): Return early in the case + of an inline intrinsic function. + (optimize_binop_array_assignment): Skip optimization in the case of + an inline intrinsic function. + +2011-11-04 Mikael Morin + + * array.c (match_subscript): Skip whitespaces before setting locus. + * matchexp.c (match_level_1): Ditto. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's + temporary rank to the loop rank. Mark ss chains for multiple loop + if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop + and start another. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's + temporary rank to the loop rank. Mark ss chains for multiple loop + if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop + and start another. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate + offset twice in generated code. + +2011-11-04 Mikael Morin + + * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for + arguments to elemental calls. + * trans-stmt.c (replace_ss): New function. + (gfc_conv_elemental_dependencies): Remove temporary loop handling. + Create a new ss for the temporary and replace the original one with it. + Remove fake array references. Recalculate all offsets. + +2011-11-04 Mikael Morin + + * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes. + * trans-array.c (gfc_free_ss): Remove forward declaration. + Make non-static. + (set_delta, gfc_set_delta): Remove forward declaration. + Make non-static and rename the former to the later. Update uses. + +2011-11-03 Mikael Morin + + * trans.h (gfc_inline_intrinsic_function_p): Move prototype... + * gfortran.h (gfc_inline_intrinsic_function_p): ... here. + * dependency.c (gfc_check_argument_var_dependency): Check dependencies + of inline intrinsics' arguments. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): New pointers to outer + dimension's ss and loop. Use them. + +2011-11-03 Mikael Morin + + * trans-array.c (outermost_loop): New function. + (gfc_trans_array_constructor, gfc_set_vector_loop_bounds, + gfc_add_loop_ss_code): Put generated code out of the outermost loop. + +2011-11-03 Mikael Morin + + * trans-array.c (constant_array_constructor_loop_size): + Handle multiple loops. + +2011-11-03 Mikael Morin + + * trans-array.c (get_rank, get_loop_upper_bound_for_array): + New functions. + (gfc_trans_array_constructor): Handle multiple loops. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_loopinfo): New field parent. + * trans-array.c (gfc_cleanup_loop): Free nested loops. + (gfc_add_ss_to_loop): Set nested_loop's parent loop. + (gfc_trans_array_constructor): Update assertion. + (gfc_conv_loop_setup): Ditto. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss. + Call recursively gfc_add_loop_ss_code for all the nested loops. + (gfc_conv_ss_startstride): Only get the descriptor for the outermost + ss. Call recursively gfc_conv_ss_startstride for all the nested loops. + (set_loop_bounds): Call recursively for all the nested loops. + (set_delta): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_loopinfo): New fields nested and next. + * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if + ss has non-null nested_ss field. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_create_temp_array): Loop over the parents. + +2011-11-03 Mikael Morin + + * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): + Rename the former to the latter and loop over the parents. + (innermost_ss): New function. + (get_array_ref_dim_for_loop_dim): New function. + (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim. + (set_loop_bounds): Use get_array_dim_for_loop_dim). + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss): New field nested_ss. + * trans-expr.c (gfc_advance_se_ss_chain): Update assertion. + +2011-11-03 Mikael Morin + + * trans-array.c (set_vector_loop_bounds): Loop over the parents. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_array_constructor): Loop over the parents. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the + parents. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss): New field parent. + * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a + parent exists. + * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the + end of the chain. + +2011-11-03 Mikael Morin + + * trans-array.h (gfc_trans_create_temp_array): Remove loop argument. + * trans-array.c (gfc_trans_create_temp_array): Ditto. Get loop from ss. + Update reference to loop. Remove loop argument. + (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to + gfc_trans_create_temp_array. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. + * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. + Set loop before calling gfc_trans_create_temp_array. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_create_temp_array): New variable total_dim. + Set total_dim to loop's rank. Replace usages of loop's rank. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_array_constructor, trans_array_constructor): + Rename the former to the later. Get loop from ss. + Remove loop argument. + (gfc_add_loop_ss_code): Update call. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss. + Remove loop argument. + (gfc_add_loop_ss_code): Update call. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss): New field loop. + * trans-array.c (set_ss_loop): New function. + (gfc_add_ss_to_loop): Call set_ss_loop. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss_info): New field refcount. + * trans-array.c (free_ss_info): Decrement refcount. Return early if + still non-zero. + (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment + refcount. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_create_temp_array): Move invariant condition + out of the containing loop. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array): + Move specloop arrays clearing from the former to the latter. + +2011-11-03 Mikael Morin + + * trans-array.c (set_loop_bounds): Separate the beginning of + gfc_conv_loop_setup into a function of its own. + (set_delta): Separate the end of gfc_conv_loop_setup into a function + of its own. + (gfc_conv_loop_setup): Call set_loop_bounds and set delta. + (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a + pointer to the specloop field from the loop struct. + +2011-11-03 Tobias Burnus + + PR fortran/50933 + * interface.c (gfc_compare_derived_types): Fix check for BIND(C). + +2011-11-03 Tobias Burnus + + PR fortran/50960 + * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move field + gfc_ss::where into gfc_ss_info. + * trans-array.c (gfc_add_loop_ss_code): + Update reference chains. + * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move field + gfc_ss::useflags into gfc_ss_info. + * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup, + gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary): + Update reference chains. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move field + gfc_ss::data::info into gfc_ss_info::data and remove empty union + gfc_ss::data. + * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array, + gfc_trans_constant_array_constructor, gfc_trans_array_constructor, + gfc_set_vector_loop_bounds, gfc_add_loop_ss_code, + gfc_conv_ss_descriptor, gfc_trans_array_bound_check, + gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, + add_array_offset, gfc_trans_preloop_setup, + gfc_trans_scalarized_boundary, gfc_conv_section_startstride, + gfc_conv_ss_startstride, gfc_could_be_alias, + gfc_conv_loop_setup, gfc_conv_expr_descriptor, + gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref): + Update reference chains and factor them where possible. + * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg, + gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference + chains. + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. + * trans-io.c (transfer_array_component): Ditto. + * trans-stmt.c (gfc_conv_elemental_dependencies, + gfc_trans_pointer_assign_need_temp): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct + gfc_ss::data::temp into gfc_ss_info::data. + * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference + chains. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct + gfc_ss::data::scalar into newly created union gfc_ss_info::data, + and rename subfield expr to value. + * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset, + gfc_conv_expr_descriptor): Update reference chains. + * trans-const.c (gfc_conv_constant): Ditto. + * trans-expr.c (gfc_conv_expr): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move field + string_length from the former struct to the latter. + * trans-array.c + (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code, + gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref, + gfc_conv_resolve_dependencies, gfc_conv_loop_setup, + gfc_conv_expr_descriptor): Update references to string_length and + factor common reference chains where possible. + * trans-const.c (gfc_conv_constant): Ditto. + * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg, + gfc_conv_expr): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from + the former struct to the latter. + * trans-array.c + (gfc_get_array_ss, gfc_get_scalar_ss, + gfc_trans_constant_array_constructor, gfc_trans_array_constructor, + gfc_add_loop_ss_code, gfc_conv_ss_descriptor, + gfc_trans_array_bound_check, gfc_conv_array_index_offset, + gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride, + gfc_could_be_alias, gfc_conv_resolve_dependencies, + gfc_conv_loop_setup, gfc_conv_expr_descriptor, + gfc_alloc_allocatable_for_assignment): Update references to expr and + factor common reference chains where possible. + * trans-const.c (gfc_conv_constant): Ditto. + * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call, + gfc_conv_array_constructor_expr, gfc_conv_expr, + gfc_conv_expr_reference): Ditto. + * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound, + gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall, + gfc_add_intrinsic_ss_code): Ditto. + * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss_info): New struct. + (gfc_get_ss_info): New macro. + (struct gfc_ss): Move type field to struct gfc_ss_info. + Add an info field of type gfc_ss_info. + * trans-array.c (free_ss_info): New function. + (gfc_free_ss): Call free_ss_info. + (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): + Allocate gfc_ss_info field. + (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss, + gfc_set_vector_loop_bounds, gfc_add_loop_ss_code, + gfc_conv_array_index_offset, gfc_trans_preloop_setup, + gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride, + gfc_conv_ss_startstride, gfc_conv_resolve_dependencies, + gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor, + gfc_walk_elemental_function_args): Update references to type. + * trans-const.c (gfc_conv_constant): Factor common reference chains + and update reference to type. + * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1): + Update reference to type. + (gfc_conv_array_constructor_expr, gfc_conv_expr, + gfc_conv_expr_reference): Ditto. Factor common reference chains. + * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references + to type + * trans-stmt.c (gfc_trans_where_assign): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field + from the former struct to the latter. + * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup): + Update field references. + * trans-expr.c (gfc_trans_subarray_assign): Update field references + and factor common reference chains. + * trans-io.c (transfer_array_component): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_array_info): Move dim and dimen fields... + (struct gfc_ss): ... here. Remove gfc_ss::data::temp::dimen field. + * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array + initialization. + (gfc_get_temp_ss): Initialize dim and dimen. + (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss, + gfc_set_loop_bounds_from_array_spec, get_array_ref_dim, + gfc_trans_create_temp_array, gfc_trans_constant_array_constructor, + gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref, + gfc_trans_preloop_setup, gfc_conv_ss_startstride, + gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims, + gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment, + gfc_walk_array_ref): Update field references. + * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call): + Ditto. + * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto. + * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss_info, struct gfc_array_info): + Rename the former to the latter. + * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage, + get_array_ref_dim, gfc_trans_create_temp_array, + gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds, + gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, + add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride, + gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims, + gfc_conv_expr_descriptor): Update all uses. + * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call): + Ditto. + * trans-intrinsic.c (gfc_conv_intrinsic_transfer, + walk_inline_intrinsic_transpose): Ditto. + * trans-stmt.c (gfc_conv_elemental_dependencies, + gfc_trans_pointer_assign_need_temp): Ditto. + +2011-11-03 Mikael Morin + + * trans-array.c (dim_ok, transposed_dims): Rename the former to the + latter. Change argument type. Invert return value. + (gfc_conv_expr_descriptor): Update calls. + +2011-11-03 Mikael Morin + + * trans-array.c (get_array_ref_dim): Change argument type and name. + Obtain previous argument from the new argument in the body. + (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds): + Rename the former to the latter. Change type and name of argument. + Get previous argument from the new one. + (gfc_add_loop_ss_code): Update call. + +2011-11-03 Mikael Morin + + * trans-array.h (gfc_trans_create_temp_array): Replace info argument + with ss argument. + * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss. + (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to + gfc_trans_create_temp_array. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto. + * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_array_bound_check): Use ss argument + to get name. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_array_bound_check, + trans_array_bound_check): Rename the former to the latter. + Replace descriptor argument with ss argument. Get descriptor from ss. + (gfc_conv_array_index_offset, conv_array_index_offset): Rename the + former to the latter. Update call to trans_array_bound_check. + Replace info argument with ss argument. Get info from ss. + (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset. + (add_array_offset): Ditto + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_constant_array_constructor, + trans_constant_array_constructor): Rename the former to the latter. + Don't set the rank of the temporary for the loop. Remove then unused + loop argument. + (gfc_trans_array_constructor): Update call. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end + marker, not after it. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_conv_ss_startstride): Access array bounds along + array dimensions instead of loop dimensions. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Assertify one condition. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions. + +2011-11-03 Mikael Morin + + * trans-array.c (get_array_ref_dim): Remove redundant condition. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Move common code... + (add_array_offset): ...into that new function. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead + of array's dimention. Check that it is indeed the same. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion. + Special case outermost loop. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Factor loop index + initialization. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Move code earlier. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Move array reference + initialisation earlier. Factor subsequent array references. + +2011-11-02 Rainer Orth + + * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK. + +2011-10-30 Steven G. Kargl + + PR fortran/50573 + * check.c (gfc_check_dshift): Update argument checking for BOZ. + Update checking SHIFT against BITSIZE of I or J. + * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR. + +2011-10-28 Steven G. Kargl + + * check.c (gfc_check_atan_2): Typo in comment. + (gfc_check_nearest): If 's' is constant, check that it is not 0. + * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits, + gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc, + gfc_simplify_nearest): Remove dead code. + +2011-10-23 Steven G. Kargl + + * simplify.c (simplify_transformation_to_array): Fix memory leak. + +2011-10-20 Steven G. Kargl + + PR fortran/50821 + * check.c (gfc_check_ishftc): Check args are constant before + extracting the integer. + +2011-10-20 Steven G. Kargl + + PR fortran/50514 + * check.c (less_than_bitsize1): Check |shift| <= bit_size(i). + (gfc_check_ishftc): Check |shift| <= bit_size(i) and check + that size is positive. + +2011-10-20 Steven G. Kargl + + PR fortran/50524 + * resolve.c (resolve_ref): Check return value of resolve_substring(). + +2011-10-20 Steven G. Kargl + + * io.c (match_dt_format): Match a user-defined operator or a kind + type prefixed string. + +2011-10-19 Janus Weil + + PR fortran/47023 + * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF. + * intrinsinc.texi (SIZEOF): Document it. + (STORAGE_SIZE): Fix special characters. Fix line breaks. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans.c (gfc_build_array_ref): If type is not an array, check that + there is nothing to do, and do nothing. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-types.c (gfc_build_array_type): Don't force lower bound to one + in the deferred case. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays. + Don't set already set array ref. + +2011-10-18 Mikael Morin + + * array.c (gfc_find_array_ref): Remove coarray-specific handling. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * check.c (dim_corank_check): Use gfc_get_corank to get corank. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION. + + PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for + the scalarization chain initialization. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Allow subreferences after a + coarray object reference. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays + if they are coarrays. + +2011-10-18 Mikael Morin + + * trans-array.h (gfc_walk_array_ref): New prototype. + * trans-array.c (gfc_walk_array_ref): New function, containing + all but the beginning of gfc_walk_variable_expr's code. + (gfc_walk_variable_expr): Use gfc_walk_array_ref. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of + ndim for the descriptor's rank. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting + from zero, and add then the relevant offset (either ndim or loop.dimen) + depending on context. + +2011-10-18 Mikael Morin + + * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space. + +2011-10-18 Mikael Morin + + * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization + earlier. + +2011-10-18 Janus Weil + + PR fortran/47023 + * decl.c (verify_c_interop_param): Renamed to + 'gfc_verify_c_interop_param'. Add error message for polymorphic + arguments. + (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject + polymorphic variables. + (verify_bind_c_sym): Renamed 'verify_c_interop'. + * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed. + * check.c (gfc_check_sizeof): Ditto. + * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto. + * symbol.c (verify_bind_c_derived_type): Ditto. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * cpp.c (print_line, cb_define): Adjust to avoid using internals + of struct line_map. Use the public API instead. + +2011-10-17 Janus Weil + + PR fortran/47023 + PR fortran/50752 + * primary.c (match_kind_param): Avoid segfault. + +2011-10-16 Thomas Koenig + + * frontend-passes.c (current_ns): Make static. + (create_var): Note parent of newly created namespace. + (optimize_namespace): Don't wak sibling namespaces + if they are EXEC_BLOCK because this is handled... + (gfc_code_walker): ... here. Also walk ASSOCIATE lists. + +2011-10-16 Janus Weil + + PR fortran/47023 + * primary.c (match_kind_param): Detect ISO_C_BINDING kinds. + (get_kind): Pass on 'is_iso_c' flag. + (match_integer_constant,match_real_constant,match_logical_constant): + Set 'ts.is_c_interop'. + +2011-10-16 Janus Weil + + PR fortran/50547 + * resolve.c (resolve_formal_arglist): Remove unneeded error message. + Some reshuffling. + +2011-10-15 Tobias Burnus + + * gfortran.texi (Fortran 2008 status, TS 29113 status, + Further Interoperability of Fortran with C): Update implementation + status, change references from TR 29113 to TS 29113. + * intrinsic.texi (RANK): Change TR 29113 to TS 29113. + * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts. + * lang.opt (std=): Ditto. + * options.c (gfc_handle_option, set_default_std_flags): Ditto and + change GFC_STD_F2008_TR to GFC_STD_F2008_TS. + * libgfortran.h: Ditto. + * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto. + * decl.c (verify_c_interop_param): Ditto. + +2011-10-14 Janus Weil + + PR fortran/50570 + * expr.c (gfc_check_vardef_context): Don't throw an error on + non-pointer assignments involving an intent(in) pointer dummy. + +2011-10-14 Tobias Burnus + + PR fortran/50718 + * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer + for dummy arguments with VALUE attribute. + +2011-10-11 Tobias Burnus + Janus Weil + + * invoke.texi (-fwhole-file): Update wording since -fwhole-file + is now enabled by default. + +2011-10-11 Michael Meissner + + * trans-expr.c (gfc_conv_power_op): Delete old interface with two + parallel arrays to hold standard builtin declarations, and replace + it with a function based interface that can support creating + builtins on the fly in the future. Change all uses, and poison + the old names. Make sure 0 is not a legitimate builtin index. + (fill_with_spaces): Ditto. + (gfc_trans_string_copy): Ditto. + (gfc_trans_zero_assign): Ditto. + (gfc_build_memcpy_call): Ditto. + (alloc_scalar_allocatable_for_assignment): Ditto. + * trans-array.c (gfc_trans_array_constructor_value): Ditto. + (duplicate_allocatable): Ditto. + (gfc_alloc_allocatable_for_assignment): Ditto. + * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto. + (gfc_omp_clause_assign_op): Ditto. + (gfc_trans_omp_atomic): Ditto. + (gfc_trans_omp_do): Ditto. + (gfc_trans_omp_task): Ditto. + * trans-stmt.c (gfc_trans_stop): Ditto. + (gfc_trans_sync): Ditto. + (gfc_trans_allocate): Ditto. + (gfc_trans_deallocate): Ditto. + * trans.c (gfc_call_malloc): Ditto. + (gfc_allocate_using_malloc): Ditto. + (gfc_call_free): Ditto. + (gfc_deallocate_with_status): Ditto. + (gfc_deallocate_scalar_with_status): Ditto. + * f95-lang.c (gfc_define_builtin): Ditto. + (gfc_init_builtin_functions): Ditto. + * trans-decl.c (create_main_function): Ditto. + * trans-intrinsic.c (builtin_decl_for_precision): Ditto. + +2011-10-10 Thomas Koenig + + PR fortran/50564 + * frontend-passes (forall_level): New variable. + (cfe_register_funcs): Don't register functions if we + are within a forall loop. + (optimize_namespace): Set forall_level to 0 before entry. + (gfc_code_walker): Increase/decrease forall_level. + +2011-10-09 Tobias Burnus + + PR fortran/50273 + * trans-common.c (translate_common): Fix -Walign-commons check. + +2011-10-09 Mikael Morin + + * interface.c (check_dummy_characteristics): Count dimensions starting + from one in diagnostic. + +2011-10-09 Tobias Burnus + + * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add + dependency on iso-c-binding.def and iso-fortran-env.def. + * module.c (import_iso_c_binding_module): Add error when + explicitly importing a nonstandard symbol; extend standard- + depending loading. + * iso-c-binding.def: Add c_float128 and c_float128_complex + integer parameters (for -std=gnu). + * intrinsic.texi (ISO_C_Binding): Document them. + * symbol.c (generate_isocbinding_symbol): Change macros + to ignore GFC_STD_* data. + * trans-types.c (gfc_init_c_interop_kinds): Ditto; make + nonstatic and renamed from "init_c_interop_kinds". + (gfc_init_kinds): Don't call it + * trans-types.h (gfc_init_c_interop_kinds): Add prototype. + * f95-lang.c (gfc_init_decl_processing): Call it. + +2011-10-09 Janus Weil + + PR fortran/50659 + * expr.c (replace_symbol): Only do replacement if the symbol is a dummy. + +2011-10-08 Paul Thomas + + PR fortran/47844 + * trans-array.c (gfc_conv_array_index_offset): Use descriptor + stride for pointer function results. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_section_startstride): Remove coarray argument. + Remove conditions on coarray. + (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. + (gfc_conv_expr_descriptor): Ditto. Add assertions before the call. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_section_startstride): Remove coarray_last + argument. Remove condition on coarray_last. + (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. + (gfc_conv_expr_descriptor): Ditto. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray + handling. Don't reset array ref's corank and codimensions' types + in the full array ref case. Update loop upper limit. + Remove DIMEN_THIS_IMAGE case. Remove unnecessary conditions. + +2011-10-07 Mikael Morin + + * trans.h (gfc_ss_info): Remove codimen field. + * trans-array.c (gfc_get_array_ss): Don't set codimen field. + (gfc_trans_create_temp_array): Don't set descriptor's cobounds. + (gfc_trans_constant_array_constructor): Update loop upper limit. + (gfc_conv_ss_startstride): Don't set codimen field. + Don't get descriptor's cobounds. + (gfc_walk_variable_expr): Update dimension index. + * trans-intrinsic.c (trans_this_image, trans_image_index, + conv_intrinsic_cobound): Don't set codimen field + +2011-10-07 Mikael Morin + + * trans.h (gfc_loopinfo): Remove codimen field. + * trans-array.c (gfc_set_vector_loop_bounds, + gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper + limit. + (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last + codimension. + (gfc_start_scalarized_body): Update loop lower limit. + (gfc_conv_ss_startstride): Don't set loop's codimen field. + (gfc_conv_loop_setup): Remove unnecessary condition. + (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank. + +2011-10-07 Mikael Morin + + * trans.h (gfc_ss): Remove data.temp.codimen field. + * trans-array.c (gfc_conv_resolve_dependencies, + gfc_conv_expr_descriptor): Don't set temp's codimen field. + +2011-10-07 Mikael Morin + + * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the + associated dimen_type) in the full array ref case. + +2011-10-07 Mikael Morin + + * trans-intrinsic.c (walk_coarray): New function. + (convert_element_to_coarray_ref): Move code to walk_coarray. Remove. + (trans-this_image, trans_image_index, conv_intrinsic_cobound): + Use walk_coarray. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer + cobounds evaluation. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_section_startstride): Move code to + evaluate_bound. Use evaluate_bound. + (evaluate_bound): New function. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_section_startstride): Update assertion to + also accept coarrays. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_section_startstride): Factor common + array ref references. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of + loop.codimen as argument to gfc_get_array_type_bounds. + +2011-10-07 Mikael Morin + + * trans-array.h (struct gfc_se): New flag want_coarray. + * trans-intrinsic.c (trans_this_image, trans_image_index, + conv_intrinsic_cobound): Set want_coarray. + * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension + earlier and without relying on the scalarizer. + +2011-10-07 Mikael Morin + + * expr.c (gfc_get_corank): Return 0 if input expression is not a + coarray. + +2011-10-07 Mikael Morin + + * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray + descriptor setup code. + +2011-10-07 Mikael Morin + + * resolve.c (compare_spec_to_ref): Move coarray ref initialization + code... + (resolve_array_ref): ... here. + +2011-10-07 Mikael Morin + + * check.c (is_coarray): Remove. + (coarray_check): Use gfc_is_coarray. + +2011-10-07 Janus Weil + + PR fortran/50625 + * class.c (gfc_build_class_symbol): Fix whitespace. + * module.c (mio_symbol): Set 'class_ok' attribute. + * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has + been built for class symbols. + +2011-10-04 Janus Weil + + PR fortran/35831 + * interface.c (check_dummy_characteristics): Check the array shape. + +2011-10-01 Janus Weil + + PR fortran/50585 + * interface.c (get_expr_storage_size): Check if 'length' component is + associated. + +2011-09-29 Janus Weil + + PR fortran/50547 + * resolve.c (resolve_formal_arglist): Fix pureness check for dummy + functions. + + PR fortran/50553 + * symbol.c (check_conflict): Forbid TARGET attribute for statement + functions. + +2011-09-27 Jakub Jelinek + + * trans-types.c (gfc_type_for_size): Return wider type + if no suitable narrower type has been found. + (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size + returned type doesn't have expected TYPE_MODE. + +2011-09-26 Janus Weil + + PR fortran/50515 + * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute. + + PR fortran/50517 + * interface.c (gfc_compare_interfaces): Bugfix in check for result type. + +2011-09-22 Janus Weil + + PR fortran/41733 + * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental + procedures. + * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check + for PURE and ELEMENTAL attributes. + (compare_actual_formal): Remove pureness check here. + +2011-09-20 Steven G. Kargl + + * check.c (gfc_check_c_sizeof): Remove redundant word. + +2011-09-20 Simon Baldwin + + * module.c (gfc_dump_module): Omit timestamp from output. + +2011-09-17 Janus Weil + + PR fortran/50403 + * symbol.c (gfc_use_derived): Fix coding style. + +2011-09-15 Janus Weil + + PR fortran/50401 + * resolve.c (resolve_transfer): Check if component 'ref' is defined. + + PR fortran/50403 + * symbol.c (gfc_use_derived): Check if argument 'sym' is defined. + +2011-09-14 Tobias Burnus + + PR fortran/34547 + PR fortran/50375 + * check.c (gfc_check_null): Allow allocatables as MOLD to NULL. + * resolve.c (resolve_transfer): Reject NULL without MOLD. + * interface.c (gfc_procedure_use): Reject NULL without MOLD + if no explicit interface is known. + (gfc_search_interface): Reject NULL without MOLD if it would + lead to ambiguity. + +2011-09-13 Janus Weil + + PR fortran/50379 + * symbol.c (check_conflict): Check conflict between GENERIC and RESULT + attributes. + +2011-09-11 Thomas Koenig + + PR fortran/50327 + * frontend-passes.c (dummy_expr_callback): New function. + (convert_do_while): New function. + (optimize_namespace): Call code walker to convert do while loops. + +2011-09-11 Janus Weil + + PR fortran/35831 + PR fortran/47978 + * interface.c (check_dummy_characteristics): New function to check the + characteristics of dummy arguments. + (gfc_compare_interfaces,gfc_check_typebound_override): Call it here. + +2011-09-08 Mikael Morin + + * trans-array.c (gfc_trans_constant_array_constructor): Remove + superfluous initialisation of DIM field. + (gfc_trans_array_constructor): Assert that DIMEN field is properly set. + (gfc_conv_expr_descriptor): Ditto. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + +2011-09-08 Mikael Morin + + * trans-array.h (gfc_get_scalar_ss): New prototype. + * trans-array.c (gfc_get_scalar_ss): New function. + (gfc_walk_variable_expr, gfc_walk_op_expr, + gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss. + * trans-expr.c (gfc_trans_subarray_assign): Ditto. + (gfc_trans_assignment_1): Ditto. + * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign, + gfc_trans_where_3): Ditto. + +2011-09-08 Mikael Morin + + * trans-array.h (gfc_get_temp_ss): New prototype. + * trans-array.c (gfc_get_temp_ss): New function. + (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss. + (gfc_conv_expr_descriptor): Ditto. + * trans-expr.c (gfc_conv_subref_array_arg): Ditto. + +2011-09-08 Mikael Morin + + * trans-array.h (gfc_get_array_ss): New prototype. + * trans-array.c (gfc_get_array_ss): New function. + (gfc_walk_variable_expr, gfc_walk_function_expr, + gfc_walk_array_constructor): Re-use gfc_get_array_ss. + * trans-expr.c (gfc_trans_subarray_assign): Ditto. + * trans-intrinsic.c (gfc_walk_intrinsic_bound, + gfc_walk_intrinsic_libfunc): Ditto. + * trans-io.c (transfer_array_component): Ditto. + +2011-09-08 Tobias Burnus + + PR fortran/44646 + * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT. + * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT. + * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT. + * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode, + lock_unlock_statement, sync_statement, gfc_match_allocate, + gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic. + (gfc_match_do): Match DO CONCURRENT. + (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator, + match_forall_iterator, match_forall_header, match_simple_forall, + gfc_match_forall): Move up in the file. + * parse.c (check_do_closure, parse_do_block): Handle do concurrent. + * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT. + * resolve.c (do_concurrent_flag): New global variable. + (resolve_function, pure_subroutine, resolve_branch, + gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent + diagnostic. + * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT. + * trans-stmt.c (gfc_trans_do_concurrent): New function. + (gfc_trans_forall_1): Handle do concurrent. + * trans-stmt.h (gfc_trans_do_concurrent): New function prototype. + * trans.c (trans_code): Call it. + * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT. + +2011-09-07 Janus Weil + + PR fortran/48095 + * primary.c (gfc_match_structure_constructor): Handle parsing of + procedure pointers components in structure constructors. + * resolve.c (resolve_structure_cons): Check interface of procedure + pointer components. Changed wording of some error messages. + +2011-09-04 Janus Weil + + PR fortran/50227 + * trans-types.c (gfc_sym_type): Check for proc_name. + +2011-08-30 Tobias Burnus + + PR fortran/45044 + * trans-common.c (build_common_decl): Warn if named common + block's size is not everywhere the same. + +2011-08-30 Steven G. Kargl + + PR fortran/45170 + * trans-stmt.c (gfc_trans_allocate): Evaluate the substring. + +2011-08-29 Janus Weil + + PR fortran/50225 + * trans-decl.c (gfc_generate_function_code): Nullify polymorphic + allocatable function results. + +2011-08-29 Tobias Burnus + + * trans-decl.c (generate_coarray_sym_init): Use + GFC_CAF_COARRAY_STATIC for static coarrays. + +2011-08-28 Dodji Seketeli + + * scanner.c (load_file): Don't abuse LC_RENAME reason while + (indirectly) calling linemap_add. + +2011-08-26 Jakub Jelinek + + * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL + if threadprivate. + * symbol.c (check_conflict): Allow threadprivate attribute with + FL_PROCEDURE if proc_pointer. + +2011-08-25 Mikael Morin + + PR fortran/50050 + * expr.c (gfc_free_shape): Do nothing if shape is NULL. + (free_expr0): Remove redundant NULL shape check. + * resolve.c (check_host_association): Ditto. + * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is + non-NULL. + * trans-io.c (transfer_array_component): Ditto. + +2011-08-25 Tobias Burnus + + * trans-array.c (gfc_conv_descriptor_token): Add assert. + * trans-decl.c (gfc_build_qualified_array, + create_function_arglist): Handle assumed-shape arrays. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't + add "caf_token" to assumed-shape descriptors, new akind argument. + (gfc_get_array_type_bounds): Pass akind. + * trans.h (lang_decl): New elements caf_offset and token. + (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros. + +2011-08-25 Tobias Burnus + + * trans-array.c (structure_alloc_comps): Fix for allocatable + scalar coarray components. + * trans-expr.c (gfc_conv_component_ref): Ditto. + * trans-type.c (gfc_get_derived_type): Ditto. + +2011-08-24 Tobias Burnus + + PR fortran/50163 + * expr.c (check_init_expr): Return when an error occured. + +2011-08-24 Joseph Myers + + * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule. + +2011-08-23 Tobias Burnus + + PR fortran/31600 + * symbol.c (gfc_add_type): Better diagnostic if redefining + use-associated symbol. + * module.c (gfc_use_module): Use module name as locus. + +2011-08-22 Gabriel Charette + + * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens + defined in cpp_define_builtins. + +2011-08-22 Mikael Morin + + PR fortran/50050 + * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes. + * expr.c (gfc_clear_shape, gfc_free_shape): New functions. + (free_expr0): Re-use gfc_free_shape. + * trans-expr.c (gfc_trans_subarray_assign): Ditto. + * trans-io.c (transfer_array_component): Ditto. + * resolve.c (check_host_association): Ditto. + (gfc_expr_to_initialize): Don't force the rank value and free the shape + after updating the expression. Recalculate shape and rank. + (resolve_where_shape): Re-use gfc_clear_shape. + * array.c (gfc_array_ref_shape): Ditto. + +2011-08-21 Thomas Koenig + + PR fortran/47659 + * expr.c (gfc_check_assign): Check for type conversions when the + right-hand side is a constant REAL/COMPLEX contstant the left-hand + side is also REAL/COMPLEX. Don't warn when a narrowing conversion + for REAL does not change the value of the constant. + +2011-08-21 Thomas Koenig + + PR fortran/50130 + * resolve.c (resolve_array_ref): Don't calculate upper bound + if the stride is zero. + +2011-08-20 Janus Weil + + PR fortran/49638 + * dependency.c (gfc_dep_compare_expr): Add new result value "-3". + (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle + result value "-3". + * frontend-passes.c (optimize_comparison): Ditto. + * interface.c (gfc_check_typebound_override): Ditto. + +2011-08-19 Mikael Morin + + PR fortran/50129 + * parse.c (parse_where): Undo changes after emitting an error. + +2011-08-19 Jakub Jelinek + + PR fortran/49792 + * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS + bit in ompws_flags only if loop.temp_ss is NULL, and clear it if + lhs needs reallocation. + * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if + code is NULL, emit a barrier if workshare emitted no code at all + and NOWAIT clause isn't present. + +2011-08-19 Mikael Morin + + PR fortran/50071 + * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK. + * parse.c (check_statement_label): Accept ST_END_BLOCK and + ST_END_ASSOCIATE as valid branch target. + (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK. + Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases. + * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to + EXEC_END_NESTED_BLOCK. + (resolve_branch): Ditto. + (resolve_code): Add EXEC_END_NESTED_BLOCK case. + * st.c (gfc_free_statement): Ditto. + * trans.c (trans_code): Ditto. + +2011-08-18 Mikael Morin + + PR fortran/50071 + * symbol.c (gfc_get_st_label): Use the derived type namespace when + we are parsing a derived type definition. + +2011-08-18 Tobias Burnus + + PR fortran/18918 + * parse.c (parse_derived): Add lock_type + checks, improve coarray_comp handling. + * resolve.c (resolve_allocate_expr, + resolve_lock_unlock, resolve_symbol): Fix lock_type + constraint checks. + +2011-08-17 Tobias Burnus + + PR fortran/31461 + * trans-decl.c (generate_local_decl): Warn about + unused explicitly imported module variables/parameters. + +2011-08-17 Janus Weil + + PR fortran/50070 + * resolve.c (resolve_fl_variable): Reject non-constant character lengths + in COMMON variables. + +2011-08-16 Tobias Burnus + Dominique Dhumieres + + PR fortran/50094 + * resolve.c (resolve_symbol): Fix stupid typo. + +2011-08-15 Tobias Burnus + + * resolve.c (resolve_symbol): Fix coarray result-var check. + +2011-08-14 Steven G. Kargl + + * module.c (use_iso_fortran_env_module): Spell 'referrenced' correctly. + +2011-08-14 Janus Weil + + PR fortran/50073 + * decl.c (check_function_name): New function, separated off from + 'variable_decl' and slightly extended. + (variable_decl,attr_decl1): Call it. + +2011-08-08 Rainer Orth + + * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS). + +2011-08-07 Janus Weil + Thomas Koenig + + PR fortran/49638 + * dependency.c (are_identical_variables): For dummy arguments only + check for equal names, not equal symbols. + * interface.c (gfc_check_typebound_override): Add checking for rank + and character length. + +2011-08-07 Janus Weil + + PR fortran/49638 + * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove + two prototypes. + * dependency.c (gfc_are_identical_variables,are_identical_variables): + Renamed the former to the latter and made static. + (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle + commutativity of multiplication. + (gfc_is_same_range,is_same_range): Renamed the former to the latter, + made static and removed argument 'def'. + (check_section_vs_section): Renamed 'gfc_is_same_range'. + * gfortran.h (gfc_check_typebound_override): New prototype. + * interface.c (gfc_check_typebound_override): Moved here from ... + * resolve.c (check_typebound_override): ... here (and renamed). + (resolve_typebound_procedure): Renamed 'check_typebound_override'. + +2011-08-06 Thomas Koenig + + PR fortran/50004 + * target-memory.c (gfc_target_expr-size): Don't clobber typespec + for derived types. + * simplify.c (gfc_simplify_transfer): Don't calculate source_size + twice. + +2011-08-05 Thomas Koenig + + PR fortran/37211 + * gfortran.h (gfc_calculate_transfer_sizes): Add prototype. + * target-memory.h (gfc_target_interpret_expr): Add boolean + argument wether to convert wide characters. + * target-memory.c (gfc_target_expr_size): Also return length + of characters for non-constant expressions if these can be + determined from the cl. + (interpret_array): Add argument for gfc_target_interpret_expr. + (gfc_interpret_derived): Likewise. + (gfc_target_interpret_expr): Likewise. + * check.c: Include target-memory.h. + (gfc_calculate_transfer_sizes): New function. + (gfc_check_transfer): When -Wsurprising is in force, calculate + sizes and warn if result is larger than size (check moved from + gfc_simplify_transfer). + * simplify.c (gfc_simplify_transfer): Use + gfc_calculate_transfer_sizes. Remove warning. + +2011-08-04 Richard Guenther + + PR fortran/49957 + * trans-array.c (add_to_offset): New function. + (gfc_conv_array_ref): Build the array index expression in optimally + associated order. + (gfc_walk_variable_expr): Adjust for the backward walk. + +2011-08-02 Daniel Kraft + + PR fortran/49885 + * trans-array.c (gfc_trans_auto_array_allocation): Change + gfc_start_block to gfc_init_block to avoid spurious extra-scope. + +2011-08-02 Tobias Burnus + + * trans-array.c (gfc_array_allocate): Pass token to + gfc_allocate_allocatable for -fcoarray=lib. + * trans-stmt.c (gfc_trans_allocate): Update + gfc_allocate_allocatable call. + * trans.h (gfc_allocate_allocatable): Update prototype. + (gfc_allocate_using_lib): Remove. + * trans.c (gfc_allocate_using_lib): Make static, handle token. + (gfc_allocate_allocatable): Ditto. + +2011-08-02 Jakub Jelinek + + PR fortran/46752 + * cpp.c (cpp_define_builtins): Change _OPENMP to 201107. + * openmp.c (gfc_free_omp_clauses): Free also final_expr. + (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define. + (gfc_match_omp_clauses): Handle parsing final and mergeable + clauses. + (OMP_TASK_CLAUSES): Allow final and mergeable clauses. + (gfc_match_omp_taskyield): New function. + (resolve_omp_clauses): Resolve final clause. Allow POINTERs and + Cray pointers in clauses other than REDUCTION. + (gfc_match_omp_atomic): Match optional + read/write/update/capture keywords after !$omp atomic. + (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms. + * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD, + print final and mergeable clauses. + (show_code_node): Handle EXEC_OMP_TASKYIELD. + * trans-openmp.c (gfc_trans_omp_clauses): Handle final and + mergeable clauses. + (gfc_trans_omp_taskyield): New function. + (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD. + (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms. + (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable. + (gfc_omp_predetermined_sharing): Adjust comment. + * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and + ST_OMP_END_ATOMIC. + (gfc_omp_clauses): Add final_expr and mergeable fields. + (gfc_exec_op): Add EXEC_OMP_TASKYIELD. + (gfc_omp_atomic_op): New enum typedef. + (struct gfc_code): Add ext.omp_atomic. + * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD. + * frontend-passes.c (gfc_code_walker): Also walk final_expr. + * resolve.c (gfc_resolve_blocks, resolve_code): Handle + EXEC_OMP_TASKYIELD. + * st.c (gfc_free_statement): Likewise. + * match.h (gfc_match_omp_taskyield): New prototype. + * parse.c (decode_omp_directive): Handle taskyield directive. + Handle !$omp end atomic. + (case_executable): Add ST_OMP_TASKYIELD case. + (gfc_ascii_statement): Handle ST_OMP_TASKYIELD. + (parse_omp_atomic): Return gfc_statement instead of void. + For !$omp atomic capture parse two assignments instead of + just one and require !$omp end atomic afterwards, for + other !$omp atomic forms just allow !$omp end atomic at the + end. + (parse_omp_structured_block, parse_executable): Adjust + parse_omp_atomic callers. + +2011-08-02 Tobias Burnus + + * intrinsic.c (OMP_LIB): Updated openmp_version's + value to 201107. + * gfortran.texi (OpenMP): Update ref to OpenMP 3.1. + * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1; + remove deleted omp_integer_kind and omp_logical_kind constants. + +2011-07-31 Janus Weil + + PR fortran/49112 + * resolve.c (resolve_structure_cons): Don't do the full dt resolution, + only call 'resolve_fl_derived0'. + (resolve_typebound_procedures): Resolve typebound procedures of + parent type. + (resolve_fl_derived0): New function, which does a part of the work + for 'resolve_fl_derived'. + (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional + things. + +2011-07-30 Thomas Koenig + + PR fortran/48876 + * expr.c (gfc_simplify_expr): If end of a string is less + than zero, set it to zero. + +2011-07-28 Jakub Jelinek + + PR fortran/31067 + * frontend-passes.c (optimize_minmaxloc): New function. + (optimize_expr): Call it. + +2011-07-27 Tobias Burnus + + PR fortran/45586 + * trans-types.c (gfc_get_derived_type): Ensure that pointer + component types are marked as nonrestricted. + +2011-07-27 Daniel Carrera + + PR fortran/49755 + * trans.c (gfc_allocate_using_malloc): Change function signature. + Return nothing. New parameter "pointer". Eliminate temorary variables. + (gfc_allocate_using_lib): Ditto. + (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib + and gfc_allocate_using_malloc. Do not free and then reallocate a + variable that is already allocated. + (gfc_likely): New function. Basedon gfc_unlikely. + * trans-array.c (gfc_array_init_size): New parameter "descriptor_block". + Instructions to modify the array descriptor are stored in this block + while other instructions continue to be stored in "pblock". + (gfc_array_allocate): Update call to gfc_array_init_size. Move the + descriptor_block so that the array descriptor is only updated if + the array was allocated successfully. + Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. + * trans.h (gfc_allocate_allocatable): Change function signature. + Function now returns void. + (gfc_allocate_using_lib): Ditto, and new function parameter. + (gfc_allocate_using_malloc): Ditto. + * trans-openmp.c (gfc_omp_clause_default_ctor, + gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call + to gfc_allocate_allocatable with gfc_allocate_using_malloc. + * trans-stmt.c (gfc_trans_allocate): Update function calls for + gfc_allocate_allocatable and gfc_allocate_using_malloc. + +2011-07-26 Tobias Burnus + + * trans-array.c (CAF_TOKEN_FIELD): New macro constant. + (gfc_conv_descriptor_token): New function. + * trans-array.h (gfc_conv_descriptor_token): New prototype. + * trans-types.c (gfc_get_array_descriptor_base): For coarrays + with -fcoarray=lib, append "void *token" to the array descriptor. + (gfc_array_descriptor_base_caf): New static variable. + * trans-expr.c (gfc_conv_procedure_call): Handle token and offset + when passing a descriptor coarray to a nondescriptor dummy. + +2011-07-23 Tobias Burnus + + * resolve.c (resolve_symbol): Fix coarray var decl check. + +2011-07-21 Daniel Carrera + + * trans.c (gfc_allocate_with_status): Split into two functions + gfc_allocate_using_malloc and gfc_allocate_usig_lib. + (gfc_allocate_using_malloc): The status parameter is now the + actual status rather than a pointer. Code cleanup. + (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and + errlen. Pass these to the coarray lib. + * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to + gfc_allocate_allocatable. + (gfc_omp_clause_copy_ctor): Ditto. + (gfc_trans_omp_array_reduction): Ditto. + * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to + gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate + fuctions. If using coarray lib, pass errmsg and errlen to the allocate + functions. Move error checking outside the if (!gfc_array_allocate) + block so that it also affects trees produced by gfc_array_allocate. + * trans-array.c (gfc_array_allocate): Add new parameters errmsg + and errlen. Replace parameter pstat by status. Code cleanup. Update + calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. + * trans-array.h (gfc_array_allocate): Update signature of + gfc_array_allocate. + +2011-07-21 Steven G. Kargl + + * gfortran.texi: Remove a duplicate word. + +2011-07-21 Tobias Burnus + + * check.c (gfc_check_present): Allow coarrays. + * trans-array.c (gfc_conv_array_ref): Avoid casting + when a pointer is wanted. + * trans-decl.c (create_function_arglist): For -fcoarray=lib, + handle hidden token and offset arguments for nondescriptor + coarrays. + * trans-expr.c (get_tree_for_caf_expr): New function. + (gfc_conv_procedure_call): For -fcoarray=lib pass the + token and offset for nondescriptor coarray dummies. + * trans.h (lang_type): Add caf_offset tree. + (GFC_TYPE_ARRAY_CAF_OFFSET): New macro. + +2011-07-19 Tobias Burnus + + * expr.c (gfc_is_coarray): New function. + * gfortran.h (gfc_is_coarray): New prototype. + * interface.c (compare_parameter): Use it. + +2011-07-19 Richard Guenther + + * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus. + (gfc_trans_string_copy): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise. + * trans-types.c (gfc_get_array_descr_info): Likewise. + * trans.c (gfc_build_array_ref): Likewise. + +2011-07-19 Janus Weil + + PR fortran/49708 + * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers. + +2011-07-18 Tobias Burnus + + * trans-decl.c (gfc_build_qualified_array): Make coarray's + token TYPE_QUAL_RESTRICT. + +2011-07-18 Tobias Burnus + + * resolve.c (resolve_transfer): Mention defined I/O + in the diagnostic for alloc_comp/pointer_comp. + +2011-07-17 Tobias Burnus + + PR fortran/34657 + * module.c (check_for_ambiguous): Check whether the name is matches + the current program unit. + +2011-07-17 Tobias Burnus + + PR fortran/49624 + * expr.c (gfc_check_pointer_assign): Fix checking for invalid + pointer bounds. + +2011-07-16 Tobias Burnus + + * expr.c (gfc_ref_this_image): New function. + (gfc_is_coindexed): Use it. + * gfortran.h (gfc_ref_this_image): New prototype. + * resolve.c (resolve_deallocate_expr, + resolve_allocate_expr): Support alloc scalar coarrays. + * trans-array.c (gfc_conv_array_ref, gfc_array_init_size, + gfc_conv_descriptor_cosize, gfc_array_allocate, + gfc_trans_deferred_array): Ditto. + * trans-expr.c (gfc_conv_variable) Ditto.: + * trans-stmt.c (gfc_trans_deallocate): Ditto. + * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds + gfc_get_array_descr_info): Ditto. + * trans-decl.c (gfc_get_symbol_decl): Ditto. + +2011-07-11 Jakub Jelinek + + PR fortran/49698 + * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize + inner_size to gfc_index_one_node instead of integer_one_node. + +2011-07-10 Tobias Burnus + + PR fortran/49690 + * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL. + +2011-07-09 Uros Bizjak + + PR fortran/48926 + * expr.c (gfc_get_corank): Change return value to int. + * gfortran.h (gfc_get_corank): Update function prototype. + +2011-07-07 Mikael Morin + + PR fortran/49648 + * resolve.c (resolve_symbol): Force resolution of function result's + array specification. + +2011-07-07 Tobias Burnus + + * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register + with NULL arguments for (new) stat=/errmsg= arguments. + +2011-07-06 Daniel Carrera + + * trans-array.c (gfc_array_allocate): Rename allocatable_array to + allocatable. Rename function gfc_allocate_array_with_status to + gfc_allocate_allocatable_with_status. Update function call for + gfc_allocate_with_status. + * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function + gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status. + * trans-stmt.c (gfc_trans_allocate): Update function call for + gfc_allocate_with_status. Rename function gfc_allocate_array_with_status + to gfc_allocate_allocatable_with_status. + * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status + so it uses the library for memory allocation when -fcoarray=lib. + (gfc_allocate_allocatable_with_status): Renamed from + gfc_allocate_array_with_status. + (gfc_allocate_allocatable_with_status): Update function call for + gfc_allocate_with_status. + * trans.h (gfc_coarray_type): New enum. + (gfc_allocate_with_status): Update prototype. + (gfc_allocate_allocatable_with_status): Renamed from + gfc_allocate_array_with_status. + * trans-decl.c (generate_coarray_sym_init): Use the new constant + GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register. + +2011-07-06 Richard Guenther + + * f95-lang.c (gfc_init_decl_processing): + Merge calls to build_common_tree_nodes and build_common_tree_nodes_2. + +2011-07-04 Jakub Jelinek + + PR fortran/49623 + * gfortranspec.c (lang_specific_driver): Ignore options with + CL_ERR_MISSING_ARG errors. + +2011-07-02 Janus Weil + + PR fortran/49562 + * expr.c (gfc_check_vardef_context): Handle type-bound procedures. + +2011-06-30 Jakub Jelinek + + PR fortran/49540 + * gfortran.h (gfc_constructor): Add repeat field. + * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1. + * array.c (current_expand): Add repeat field. + (expand_constructor): Copy repeat. + * constructor.c (node_free, node_copy, gfc_constructor_get, + gfc_constructor_lookup): Handle repeat field. + (gfc_constructor_lookup_next, gfc_constructor_remove): New functions. + * data.h (gfc_assign_data_value): Add mpz_t * argument. + (gfc_assign_data_value_range): Removed. + * constructor.h (gfc_constructor_advance): Removed. + (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes. + * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and + also handle overwriting a range with a single entry. + (gfc_assign_data_value_range): Removed. + * resolve.c (check_data_variable): Adjust gfc_assign_data_value + call. Use gfc_assign_data_value instead of + gfc_assign_data_value_expr. + +2011-06-27 Janus Weil + + PR fortran/49466 + * trans-array.c (structure_alloc_comps): Make sure sub-components + and extended types are correctly deallocated. + +2011-06-21 Andrew MacLeod + + * trans-openmp.c: Add sync_ or SYNC__ to builtin names. + * trans-stmt.c: Add sync_ or SYNC__ to builtin names. + * trans-decl.c: Add sync_ or SYNC__ to builtin names. + +2011-06-21 Janus Weil + + PR fortran/49112 + * class.c (gfc_find_derived_vtab): Make vtab and default initialization + symbols SAVE_IMPLICIT. + +2011-06-20 Tobias Burnus + + PR fortran/18918 + * gfortran.h (gfc_check_vardef_context): Update prototype. + (iso_fortran_env_symbol): Handle derived types. + (symbol_attribute): Add lock_comp. + * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check. + * interface.c (compare_parameter, gfc_procedure_use): Handle + LOCK_TYPE. + (compare_actual_formal): Update + gfc_check_vardef_context call. + * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto. + * intrinsic.c (check_arglist): Ditto. + * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto. + * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add. + * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE. + * module.c (mio_symbol_attribute): Handle lock_comp. + (create_derived_type): New function. + (use_iso_fortran_env_module): Call it to handle LOCK_TYPE. + * parse.c (parse_derived): Add constraint check for LOCK_TYPE. + * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint + checks for LOCK_TYPE. + (gfc_resolve_iterator, resolve_deallocate_expr, + resolve_allocate_expr, resolve_code, resolve_transfer): Update + gfc_check_vardef_context call. + * trans-stmt.h (gfc_trans_lock_unlock): New prototype. + * trans-stmt.c (gfc_trans_lock_unlock): New function. + * trans.c (trans_code): Handle LOCK and UNLOCK. + +2011-06-18 Janus Weil + + PR fortran/49400 + * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside + BLOCK constructs. + +2011-06-17 Janus Weil + + PR fortran/48699 + * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic, + make sure the vtab is present. + +2011-06-16 Janus Weil + + PR fortran/49074 + * interface.c (gfc_extend_assign): Propagate the locus from the + assignment to the type-bound procedure call. + +2011-06-16 Janus Weil + + PR fortran/49417 + * module.c (mio_component): Make sure the 'class_ok' attribute is set + for use-associated CLASS components. + * parse.c (parse_derived): Check for 'class_ok' attribute. + * resolve.c (resolve_fl_derived): Ditto. + +2011-06-13 Thomas Koenig + + * frontend-passes.c (remove_trim): New function. + (optimize_assignment): Use it. + (optimize_comparison): Likewise. Return correct status + for previous change. + +2011-06-12 Tobias Burnus + + PR fortran/49324 + * trans-expr.c (gfc_trans_assignment_1): Tell + gfc_trans_scalar_assign to also deep-copy RHS nonvariables + with allocatable components. + * trans-array.c (gfc_conv_expr_descriptor): Ditto. + +2011-05-11 Thomas Koenig + + * frontend-passes.c (optimize_assignment): Follow chains + of concatenation operators to the end for removing trailing + TRIMS for assignments. + +2011-06-10 Daniel Carrera + + * trans-decl.c (gfc_build_builtin_function_decls): + Updated declaration of caf_sync_all and caf_sync_images. + * trans-stmt.c (gfc_trans_sync): Function + can now handle a "stat" variable that has an integer type + different from integer_type_node. + +2011-06-09 Richard Guenther + + * trans.c (gfc_allocate_array_with_status): Mark error path + as unlikely. + +2011-06-08 Tobias Burnus + + PR fortran/18918 + * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK. + (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK. + (gfc_code): Add expr4. + * match.h (gfc_match_lock, gfc_match_unlock): New prototypes. + * match.c (gfc_match_lock, gfc_match_unlock, + lock_unlock_statement): New functions. + (sync_statement): Bug fix, avoiding double freeing. + (gfc_match_if): Handle LOCK/UNLOCK statement. + * parse.c (decode_statement, next_statement, + gfc_ascii_statement): Ditto. + * st.c (gfc_free_statement): Handle LOCK and UNLOCK. + * resolve.c (resolve_lock_unlock): New function. + (resolve_code): Call it. + * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK. + +2011-06-07 Richard Guenther + + * f95-lang.c (gfc_init_decl_processing): Do not set + size_type_node or call set_sizetype. + +2011-06-05 Tobias Burnus + + PR fortran/49255 + * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer + for F2008. + +2011-06-05 Andreas Schmidt + Thomas Koenig + + * dump-parse-tree.c (show_symbol): Don't dump namespace + for ENTRY to avoid infinite recursion. + +2011-06-02 Asher Langton + + PR fortran/49268 + * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray + pointees as AS_EXPLICIT. + +2011-06-02 Asher Langton + + PR fortran/37039 + * decl.c (variable_decl): Merge current_as before copying to cp_as. + +2011-06-02 Steven G. Kargl + + PR fortran/49265 + * decl.c (gfc_match_modproc): Allow for a double colon in a module + procedure statement. + * parse.c ( decode_statement): Deal with whitespace around :: in + gfc_match_modproc. + +2011-05-31 Tobias Burnus + + PR fortran/18918 + * intrinsic.c (klass): Add CLASS_ATOMIC. + (add_subroutines): Add atomic_ref/atomic_define. + * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document. + * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref, + gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes. + * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF + and GFC_ISYM_ATOMIC_REF. + (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars. + * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New + functions. + * check.c (gfc_check_atomic, gfc_check_atomic_def, + gfc_check_atomic_ref): New functions. + * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND, + ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value. + * trans-intrinsic.c (conv_intrinsic_atomic_def, + conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New + functions. + (conv_intrinsic_move_alloc) Renamed from + gfc_conv_intrinsic_move_alloc - and made static. + * trans.h (gfc_conv_intrinsic_move_alloc): Remove. + (gfc_conv_intrinsic_subroutine) Add prototype. + * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine. + * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New + global vars. + (gfc_init_kinds): Set them. + +2011-05-31 Tobias Burnus + + PR fortran/18918 + * trans-array.c (gfc_trans_dummy_array_bias): Handle + cobounds of assumed-shape arrays. + +2011-05-31 Tobias Burnus + + PR fortran/18918 + * resolve.c (resolve_fl_variable): Handle static coarrays + with non-constant cobounds. + +2011-05-29 Janus Weil + + PR fortran/47601 + * module.c (mio_component_ref): Handle components of extended types. + * symbol.c (gfc_find_component): Return is sym is NULL. + +2011-05-29 Tobias Burnus + + PR fortran/18918 + * interface.c (compare_parameter): Add check for passing coarray + to allocatable noncoarray dummy. + +2011-05-29 Tobias Burnus + Richard Guenther + + PR fortran/18918 + * trans-types.c (gfc_get_nodesc_array_type): Don't mess with + the type's TREE_TYPE. + * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT. + * trans.c (gfc_build_array_ref): Ditto. + +2011-05-27 Tobias Burnus + + PR fortran/18918 + * check.c (gfc_check_associated, gfc_check_null): Add coindexed check. + * match.c (gfc_match_nullify): Ditto. + * resolve.c (resolve_deallocate_expr): Ditto. + * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted + for nonpointers. + +2011-05-27 Tobias Burnus + + PR fortran/48820 + * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK. + * intrinsic.c (add_functions): Add rank intrinsic. + (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR. + * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes. + * simplify.c (gfc_simplify_rank): New function. + * intrinsic.texi (RANK): Add description for rank intrinsic. + * check.c (gfc_check_rank): New function. + +2011-05-26 Paul Thomas + Thomas Koenig + + PR fortran/48955 + * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET + changed to GFC_ENABLE_REVERSE. + * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed + to GFC_INHIBIT_REVERSE. + * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE, + GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE. + * dependency.c (gfc_dep_resolver): Change names for elements of + gfc_reverse as necessary. Change the logic so that forward + dependences are remembered as well as backward ones. When both + have appeared, force a temporary. + +2011-05-26 Tobias Burnus + + PR fortran/18918 + * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays. + * trans-decl.c (has_coarray_vars, caf_init_block, + gfor_fndecl_caf_register): New file-global variables. + (gfc_finish_var_decl): Make sure that coarrays in main are static. + (gfc_build_qualified_array): Generate coarray token variable. + (gfc_get_symbol_decl): Don't use a static initializer for coarrays. + (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register. + (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for + static coarrays. + (generate_local_decl): Check for local coarrays. + (create_main_function): SYNC ALL before calling MAIN. + (generate_coarray_sym_init): Register static coarray. + (generate_coarray_init): Generate CAF registering constructor + function. + (gfc_generate_function_code): Call it, if needed, do not create + cgraph twice. + (gfc_generate_module_vars, gfc_process_block_locals): Call + generate_coarray_init. + * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for + -fcoarray=lib. + * trans.h (gfor_fndecl_caf_register): New variable. + (lang_type): New element caf_token. + (GFC_TYPE_ARRAY_CAF_TOKEN): New macro. + +2011-05-24 Joseph Myers + + * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o. + (gfortran$(exeext)): Use libcommon-target.a. + +2011-05-22 Thomas Koenig + + * frontend-passes.c (cfe_register_funcs): Also register + character functions if their charlens are known and constant. + Also register allocatable functions. + +2011-05-21 Janus Weil + + PR fortran/48699 + * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the + selector is ALLOCATABLE. + +2011-05-20 Janus Weil + + PR fortran/48706 + * module.c (write_dt_extensions): Do not write extended types which + are local to a subroutine. + +2011-05-20 Joseph Myers + + * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o. + +2011-05-20 Janne Blomqvist + + * gfortran.texi (set_fpe): Update documentation. + * invoke.texi (-ffpe-trap): Likewise. + * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT. + * options.c (gfc_handle_fpe_trap_option): Handle inexact and make + precision an alias for it. + +2011-05-19 Tobias Burnus + + PR fortran/18918 + * trans-types.c (gfc_get_element_type): Handle scalar coarrays. + (gfc_get_nodesc_array_type): Make a variant-type copy for scalar + coarrays. + * trans.c (gfc_build_array_ref): Return original type not variant + copy for scalar coarrays. + * trans-array.c (gfc_conv_array_ref): Ditto. + +2011-05-18 Janus Weil + + PR fortran/48700 + * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO' + argument to avoid memory leaks. + +2011-05-16 Tobias Burnus + + * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR. + (Fortran 2008 status): Multi-image support for coarrays. + (TR 19113 status): New section. + +2011-05-15 Tobias Burnus + + PR fortran/18918 + actual argument is not an array; rank mismatch is diagnosted later. + * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle + scalar coarrays. + * trans-types.c (gfc_get_array_type_bounds): Ditto. + +2011-05-15 Joern Rennecke + + PR middle-end/46500 + * trans-types.c: Include "tm.h". + [0] (c_size_t_size): Remove. + +2011-05-15 Janne Blomqvist + + PR libfortran/48915 + * gfortran.texi (_gfortran_set_options): Even though -fbacktrace + is now the default, the library defaults to backtracing disabled. + +2011-05-14 Tobias Burnus + + * lang.opt (fdump-core): Re-add as ignored option + for backward compatibility. + +2011-05-14 Janne Blomqvist + + PR libfortran/48915 + * gfortran.texi: Update mixed-language programming section + reflecting the removal of the fdump-core option, and that + -fbacktrace is now enabled by default. + +2011-05-14 Thomas Koenig + + PR fortran/22572 + * frontend-passes.c (cfe_register_funcs): Also register functions + for potential elimination if the rank is > 0, the shape is unknown + and reallocate on assignment is active. + (create_var): For rank > 0 functions with unknown shape, create + an allocatable temporary. + +2011-05-14 Tobias Burnus + + PR fortran/18918 + * interface.c (compare_parameter): Skip diagnostic if + actual argument is not an array; rank mismatch is diagnosted later. + +2011-05-14 Tobias Burnus + + * options.c (gfc_init_options, gfc_post_options): Enable + -fstack-arrays by default if -Ofast is used. + * invoke.texi (-fstack-arrays): Document this. + +2011-05-14 Janne Blomqvist + + PR libfortran/48915 + * gfortran.h (gfc_option_t): Remove flag_dump_core. + * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section. + (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default. + * intrinsic.texi (ABORT): Remove explanation of -fdump-core. + * invoke.texi: Remove -fdump-core, document that -fbacktrace is + enabled by default. + * lang.opt: Remove -fdump-core. + * options.c (gfc_init_options): Make backtrace default to enabled, + remove dump_core. + (gfc_handle_option): Remove OPT_fdump-core. + * trans-decl.c: Pass a 0 to preserve ABI. + +2011-05-14 Janne Blomqvist + + * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation. + +2011-05-13 Tobias Burnus + + PR fortran/48972 + * io.c (resolve_tag_format, resolve_tag): Make sure + that the string is of default kind. + (gfc_resolve_inquire): Also resolve decimal tag. + +2011-05-12 Tobias Burnus + + PR fortran/48972 + * resolve.c (resolve_intrinsic): Don't resolve module + intrinsics multiple times. + +2011-05-11 Tobias Burnus + + PR fortran/48889 + * expr.c (gfc_is_constant_expr): Use e->value.function.esym + instead of e->symtree->n.sym, if available. + +2011-05-07 Eric Botcazou + + * f95-lang.c (global_bindings_p): Return bool and simplify. + +2011-05-07 Tobias Burnus + + PR fortran/18918 + PR fortran/48919 + * trans.h: Move gfc_init_coarray_decl prototype ... + * gfortran.h: ... to here. + * parse.c (translate_all_program_units): Call gfc_init_coarray_decl. + (gfc_parse_file): Update translate_all_program_units call. + * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration, + new argument whether DECL_EXTERNAL should be used. + (create_main_function): Update gfc_init_coarray_decl call. + * trans-intrinsic.c (trans_this_image, trans_image_index, + conv_intrinsic_cobound): Ditto. + +2011-05-06 Tobias Burnus + + PR fortran/18918 + * trans-array.c (gfc_walk_variable_expr): Continue walking + for scalar coarrays. + * trans-intrinsic.c (convert_element_to_coarray_ref): New function. + (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it. + (trans_this_image): Fix algorithm. + * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base, + gfc_sym_type): Handle scalar coarrays. + +2011-05-06 Tobias Burnus + + PR fortran/48858 + PR fortran/48820 + * lang.opt (std=f2008tr): New. + * libgfortran.h (GFC_STD_F2008_TR): New macro constant. + * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C) + procedures for -std=f2008tr/gnu/legacy. + (gfc_match_import): Set sym to NULL. + * options.c (set_default_std_flags,gfc_handle_option): Handle + -std=f2008tr. + * invoke.texi (-std=): Document -std=f2008tr. + +2011-05-05 Nathan Froyd + + * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label. + * trans-io.c (add_case): Likewise. + * trans-stmt.c (gfc_trans_integer_select): Likewise. + (gfc_trans_character_select): Likewise. + +2011-05-05 Eric Botcazou + + * trans-decl.c (trans_function_start): Do not set + dont_save_pending_sizes_p. + +2011-05-04 Nathan Froyd + + * trans.h (gfc_chainon_list): Delete. + * trans.c (gfc_chainon_list): Delete. + +2011-05-04 Tobias Burnus + + PR fortran/48864 + * invoke.texi (fno-protect-parens): Document + that -Ofast implies -fno-protect-parens. + * options.c (gfc_init_options, gfc_post_options): + Make -Ofast imply -fno-protect-parens. + +2011-05-04 Nathan Froyd + + * trans-decl.c (build_library_function_decl_1): Call + build_function_type_vec. Adjust argument list building accordingly. + * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise. + * trans-types.c (gfc_get_function_type): Likewise. + +2011-05-04 Richard Guenther + + * trans-array.c (gfc_trans_array_constructor_value): Use + size_int for bounds of range types. + (gfc_trans_array_constructor_value): Use size_type_node + for memcpy argument. + * trans-common.c (build_field): Use gfc_charlen_type_node + for lengths. + * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL + as type to build_int_cst. + * trans-const.c (gfc_build_string_const): Use size_int + for bounds of range types. + (gfc_build_wide_string_const): Likewise. + * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node + for lengths. + (gfc_trans_character_select): Likewise. + (gfc_trans_character_select): Do not pass NULL + as type to build_int_cst. + (gfc_trans_character_select): Use size_int for bounds of range types. + * trans-io.c (gfc_build_io_library_fndecls): Likewise. + (add_case): Do not pass NULL as type to build_int_cst. + (transfer_expr): Likewise. + (transfer_array_desc): Likewise. + * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node + for lengths. + (gfc_trans_assign_aux_var): Likewise. + (create_main_function): Use size_int for bounds of range types. + * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass + NULL as type to build_int_cst. + (gfc_conv_intrinsic_spacing): Likewise. + (gfc_conv_intrinsic_rrspacing): Likewise. + (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths. + +2011-05-04 Richard Guenther + + * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc + argument to int_const_binop. + +2011-05-03 Tobias Burnus + + PR fortran/18918 + * trans-intrinsic.c (trans_this_image): Implement version with + coarray argument. + (conv_intrinsic_cobound): Simplify code. + (gfc_conv_intrinsic_function): Call trans_this_image for + this_image(coarray) except for -fcoarray=single. + +2011-05-02 Steven G. Kargl + + PR fortran/48720 + * gfortran.texi: Document the 'Q' exponent-letter extension. + * invoke.texi: Document -Wreal-q-constant. + * lang.opt: Add -Wreal-q-constant option. + * gfortran.h: Add warn_real_q_constant to option struct. + * primary.c (match_real_constant): Use it. Accept 'Q' as + exponent-letter for REAL(16) real-literal-constant with a + fallback to REAL(10) or error if REAL(10) is not available. + * options.c (gfc_init_options, set_Wall) Set it. + (gfc_handle_option): Handle new option. + +2011-04-30 Thomas Koenig + + * dump-prase-tree.c (show_code_node): Set the current + namespace to the BLOCK before displaying it; restore + afterwards. + +2011-04-30 Tobias Burnus + + PR fortran/48821 + * decl.c (gfc_match_import): Don't try to find the + symbol if already found. + +2011-04-30 Paul Thomas + + PR fortran/48746 + * trans-expr.c (fcncall_realloc_result): Set the bounds and the + offset so that the lbounds are one. + (gfc_trans_arrayfunc_assign): Add rank to arguments of above. + +2011-04-29 Paul Thomas + + PR fortran/48462 + * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with + automatic reallocation when the lhs is a target. + + PR fortran/48746 + * trans-expr.c (fcncall_realloc_result): Make sure that the + result dtype field is set before the function call. + +2011-04-29 Tobias Burnus + + PR fortran/48810 + * resolve.c (resolve_typebound_generic_call): Don't check access + flags of the specific function. + + PR fortran/48800 + * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED + to AS_ASSUMED_SHAPE for function results. + (resolve_fl_var_and_proc): Print also for function results with + AS_DEFERRED an error, if they are not a pointer or allocatable. + (resolve_types): Make sure arguments of procedures in interface + blocks are resolved. + +2011-04-29 Michael Matz + + * options.c (options.c): Set warn_maybe_uninitialized. + +2011-04-28 Tobias Burnus + + PR fortran/48112 + * resolve.c (resolve_fl_var_and_proc): Print diagnostic of + function results only once. + (resolve_symbol): Always resolve function results. + + PR fortran/48279 + * expr.c (gfc_check_vardef_context): Fix handling of generic + EXPR_FUNCTION. + * interface.c (check_interface0): Reject internal functions + in generic interfaces, unless -std=gnu. + +2011-04-27 Tobias Burnus + + PR fortran/48788 + * resolve.c (resolve_global_procedure): Error recovery - + avoid segfault for (non)character-returning functions. + +2011-04-26 Thomas Koenig + + * decl.c (gfc_match_end): Check that the block name starts + with "block@". + * parse.c (gfc_build_block_ns): Make block names unique by + numbering them. + +2011-04-26 Thomas Koenig + + * frontend-passes.c (inserted_block): New variable. + (changed_statement): Likewise. + (create_var): Encase statement to be operated on in a BLOCK. + Adjust code insertion for BLOCK. + (cfe_code): Set inserted_block and changed_statement to NULL. + +2011-04-23 Tobias Burnus + + PR fortran/18918 + * module.c (mio_array_spec): Set as->cotype on reading. + * resolve.c (resolve_allocate_expr): Fix allocating coarray + components. + +2011-04-21 Thomas Koenig + + PR fortran/48405 + * frontend_passes (cfe_register_funcs): Remove workaround for DO + loops. + (gfc_code_walker): Make sure the pointer to the current + statement doen't change when other statements are inserted. + +2011-04-21 Tobias Burnus + + PR fortran/18918 + * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check. + +2011-04-20 Jim Meyering + + * expr.c (free_expr0): Remove useless if-before-free. + * gfortranspec.c (lang_specific_pre_link): Likewise. + * interface.c (gfc_extend_expr): Likewise. + * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise. + +2011-04-19 Tobias Burnus + + PR fortran/48588 + PR fortran/48692 + + * module.c (fix_mio_expr): Commit created symbol. + +2011-04-19 Janne Blomqvist + + * scanner.c (load_file): Use XCNEWVAR instead of xcalloc. + +2011-04-19 Janne Blomqvist + + * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of + free. + +2011-04-19 Janne Blomqvist + + * misc.c (gfc_getmem): Remove function. + * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem + usage with XCNEW or XCNEWVEC. + * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with + XCNEW or XCNEWVEC. + * options.c (gfc_handle_module_path_options) + (gfc_get_option_string): Likewise. + * resolve.c (gfc_resolve_forall): Likewise. + * simplify.c (simplify_transformation_to_array): Likewise. + * target-memory.c (gfc_target_interpret_expr): Likewise. + * trans-common.c (get_segment_info, copy_equiv_list_to_ns) + (get_init_field): Likewise. + * trans-expr.c (gfc_conv_statement_function): Likewise. + * trans-io.c (nml_full_name): Likewise. + * trans-stmt.c (gfc_trans_forall_1): Likewise. + * scanner.c (load_file): Replace gfc_getmem usage with xcalloc. + +2011-04-19 Tobias Burnus + + PR fortran/48588 + * parse.c (resolve_all_program_units): Skip modules. + (translate_all_program_units): Handle modules. + (gfc_parse_file): Defer code generation for modules. + +2011-04-19 Martin Jambor + + * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node + instead of cgraph_get_create_node. + +2011-04-18 Jim Meyering + + remove now-unused definition of gfc_free + * misc.c (gfc_free): Remove function. + * gfortran.h (gfc_free): Remove its prototype. + +2011-04-18 Jim Meyering + + convert each use of gfc_free (p) to free (p) + Do that by running this command: + perl -pi -e 's/\bgfc_free ?\(/free (/' \ + $(git grep -El '\bgfc_free ?\(') + which also corrects the few uses that lacked a space between + the function name and the open parenthesis. + Manually undo the change to the function definition itself + and its prototype. They'll be removed next. + * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/ + * constructor.c (node_free): Likewise. + * cpp.c (dump_queued_macros): Likewise. + * data.c (gfc_assign_data_value): Likewise. + * decl.c (free_variable, free_value, gfc_free_data): Likewise. + (gfc_free_data_all, match_old_style_init): Likewise. + (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL): + Likewise. + (gfc_match_modproc): Likewise. + * dependency.c (check_section_vs_section): Likewise. + * error.c (gfc_pop_error, gfc_free_error): Likewise. + * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise. + (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise. + (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol): + Likewise. + * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise. + (strip_function_call, optimize_comparison): Likewise. + * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise. + (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist): + Likewise. + * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise. + (gfc_convert_chartype): Likewise. + * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close): + Likewise. + (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise. + * match.c (gfc_free_iterator, gfc_match_associate): Likewise. + (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until): + Likewise. + (free_case, gfc_free_forall_iterator): Likewise. + * misc.c: Likewise. + * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise. + (free_true_name, peek_atom, mio_allocated_wide_string): Likewise. + (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise. + (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise. + (mio_full_typebound_tree, skip_list, load_equiv): Likewise. + (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise. + * openmp.c (gfc_free_omp_clauses): Likewise. + * options.c (gfc_post_options): Likewise. + * parse.c (select_type_pop, parse_omp_structured_block): Likewise. + * primary.c (gfc_free_structure_ctor_component): Likewise. + * resolve.c (resolve_structure_cons, check_host_association): Likewise. + (gfc_resolve_forall, resolve_equivalence): Likewise. + * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise. + (gfc_define_undef_line, preprocessor_line, include_line): Likewise. + (load_file, gfc_read_orig_filename): Likewise. + * simplify.c (simplify_transformation_to_array): Likewise. + (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING): + Likewise. + (gfc_simplify_compiler_options): Likewise. + * st.c (gfc_free_statement, gfc_free_statements): Likewise. + (gfc_free_association_list): Likewise. + * symbol.c (free_components, gfc_free_st_label, free_st_labels): + Likewise. + (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise. + (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise. + (free_common_tree, free_uop_tree, free_sym_tree): Likewise. + (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists): + Likewise. + (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise. + (gfc_free_namespace): Likewise. + * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise. + (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise. + (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise. + * trans-common.c (get_init_field, create_common): Likewise. + * trans-const.c (gfc_build_wide_string_const): Likewise. + (gfc_conv_string_init): Likewise. + * trans-decl.c (gfc_generate_function_code): Likewise. + * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping): + Likewise. + (SCALAR_POINTER, gfc_conv_statement_function): Likewise. + (gfc_trans_subarray_assign): Likewise. + * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise. + * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise. + (transfer_namelist_element, transfer_array_component): Likewise. + * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise. + * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise. + * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus): + Likewise. + +2011-04-15 Jim Meyering + + gfortran: remove cpp definition of free, ... + in preparation for the s/gfc_free/free/ transformation. + * gfortran.h (free): Remove macro definition that would otherwise + prevent direct use of the function. + +2011-04-18 Tobias Burnus + + PR fortran/18918 + * array.c (gfc_match_array_ref): Check for too many codimensions. + * check.c (gfc_check_image_index): Check number of elements + in SUB argument. + * simplify.c (gfc_simplify_image_index): Remove unreachable checks. + +2011-04-18 Tobias Burnus + + PR fortran/18918 + * iresolve.c (gfc_resolve_image_index): Set ts.type. + * simplify.c (gfc_simplify_image_index): Don't abort if the bounds + are not known at compile time and handle -fcoarray=lib. + * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle + IMAGE_INDEX. + (conv_intrinsic_cobound): Fix comment typo. + (trans_this_image): New function. + * trans-array.c (gfc_unlikely): Move to trans.c. + * trans.c (gfc_unlikely): Function moved from trans-array.c. + (gfc_trans_runtime_check): Use it. + * trans-io.c (gfc_trans_io_runtime_check): Ditto. + * trans.h (gfc_unlikely): Add prototype. + +2011-04-18 Paul Thomas + + PR fortran/48462 + * trans-expr.c (fcncall_realloc_result): Renamed version of + realloc_lhs_bounds_for_intrinsic_call that does not touch the + descriptor bounds anymore but makes a temporary descriptor to + hold the result. + (gfc_trans_arrayfunc_assign): Modify the reference to above + renamed function. + +2011-05-17 Tobias Burnus + + PR fortran/48624 + * trans-decl.c (gfc_get_extern_function_decl): Fix decl + for external procedures with proc arguments. + +2011-04-15 Michael Matz + + * trans-array.c (toplevel): Include gimple.h. + (gfc_trans_allocate_array_storage): Check flag_stack_arrays, + properly expand variable length arrays. + (gfc_trans_auto_array_allocation): If flag_stack_arrays create + variable length decls and associate them with their scope. + * gfortran.h (gfc_option_t): Add flag_stack_arrays member. + * options.c (gfc_init_options): Handle -fstack_arrays option. + * lang.opt (fstack-arrays): Add option. + * invoke.texi (Code Gen Options): Document it. + * Make-lang.in (trans-array.o): Depend on GIMPLE_H. + +2011-04-15 Tobias Burnus + + PR fortran/18918 + * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused + code which is also causing an ICE. + +2011-04-14 Nathan Froyd + + * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon. + +2011-04-12 Nathan Froyd + + * f95-lang.c (union lang_tree_node): Check for TS_COMMON before + calling TREE_CHAIN. + +2011-04-12 Paul Thomas + + PR fortran/48360 + PR fortran/48456 + * trans-array.c (get_std_lbound): For derived type variables + return array valued component lbound. + +2011-04-12 Martin Jambor + + * trans-decl.c (gfc_generate_function_code): Call + cgraph_get_create_node instead of cgraph_node. + +2011-04-11 Tobias Burnus + + PR fortran/18918 + * simplify.c (simplify_bound_dim): Exit for + ucobound's last dimension unless -fcoarray=single. + * trans-array (gfc_conv_descriptor_size_1): Renamed from + gfc_conv_descriptor_size, made static, has now from_dim and + to_dim arguments. + (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size. + (gfc_conv_descriptor_cosize): New function. + * trans-array.h (gfc_conv_descriptor_cosize): New prototype. + * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location + and handle last codim of ucobound for when -fcoarray is not "single". + +2011-04-08 Thomas Koenig + + PR fortran/48448 + * gfortran.h (gfc_option_t): Add warn_function_elimination and + flag_frontend_optimize. + * lang.opt (Wfunction-elimination): Add. + (ffrontend-optimize): Add. + * invoke.texi: Add documentation for -Wfunction-elimination + and -ffrontend-optimize. Add -faggressive-function-elimination + to list of code generation options. + * frontend-passes.c (gfc_run_passes): Run optimizations if + flag_frontend_optimize is set. + (warn_function_elimination): New function. + (cfe_expr_0): Call it if requested to do so. + * options.c (gfc_init_options): Initiate warn_function_elimination + and flag_frontend_optimize. + (gfc_post_options): Set flag_frontend_optimize if not specified + by user, depending on the optimization level. + (gfc_handle_option): Handle -Wfunction-elimination and + -ffrontend-optimize. + +2011-04-06 Tobias Burnus + + PR fortran/18918 + * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix + call for this_image. + +2011-04-05 Nathan Froyd + + * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use + build_function_type_list instead of build_function_type. Correct + argument order for func_frexp and func_scalbn. + +2011-04-05 Duncan Sands + + * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types. + +2011-04-04 Thomas Koenig + + * frontend-passes: (optimize_lexical_comparison): New function. + (optimize_expr): Call it. + (optimize_comparison): Also handle lexical comparison functions. + Return false instad of -2 for unequal comparison. + +2011-04-04 Thomas Koenig + + PR fortran/48412 + * frontend-passes (cfe_expr_0): Reverse the order of going + through the loops. + +2011-04-04 Tobias Burnus + Mikael Morin + + PR fortran/18918 + * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE. + * expr.c (gfc_is_coindexed): Ditto. + * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE. + * interface.c (compare_parameter): Use gfc_expr_attr and + gfc_is_coindexed. + * resolve.c (check_dimension, compare_spec_to_ref, + resolve_allocate_expr, check_data_variable): Update for + DIMEN_THIS_IMAGE. + * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image, + gfc_simplify_ucobound): Allow non-constant bounds. + * trans-array.c (gfc_set_loop_bounds_from_array_spec, + gfc_trans_create_temp_array, gfc_trans_constant_array_constructor, + gfc_set_vector_loop_bounds, gfc_conv_array_index_offset, + gfc_start_scalarized_body, gfc_trans_scalarizing_loops, + gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride, + gfc_conv_ss_startstride, gfc_conv_loop_setup, + gfc_trans_array_bounds, gfc_conv_expr_descriptor, + gfc_walk_variable_expr): Handle codimen. + * trans-decl.c (gfc_build_qualified_array): Save cobounds. + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2. + (conv_intrinsic_cobound): New function. + (gfc_conv_intrinsic_function): Call it. + (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle + ucobound, lcobound, this_image. + * fortran/trans-types.c (gfc_build_array_type): Save cobounds. + (gfc_get_dtype): Honour corank. + (gfc_get_nodesc_array_type): Save corank and codimensions. + (gfc_get_array_type_bounds): Save cobound. + * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item. + (gfc_array_kind): Add corank item. + (GFC_TYPE_ARRAY_CORANK): New macro. + +2011-04-03 Kai Tietz + + PR middle-end/48422 + * Make-lang.in (f95-lang.o): Add some missing dependencies. + +2011-04-01 Thomas Koenig + + PR fortran/48352 + * frontend-passes (cfe_register_funcs): Don't + register functions if they appear as iterators in DO loops. + +2011-03-30 Michael Matz + + PR fortran/47516 + * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter, + don't use local variable. + (gfc_trans_arrayfunc_assign): Adjust caller. + +2011-03-29 Janus Weil + + PR fortran/48095 + * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface. + * module.c (MOD_VERSION): Bump. + (mio_typespec): Read/write 'interface' field. + * primary.c (match_string_constant,match_logical_constant): Remove + unneeded code. + (match_complex_constant): Make sure to clear the typespec. + +2011-03-29 Thomas Koenig + + * frontend-passes.c (create_var): Warn about creating an + array temporary if requested. + +2011-03-27 Thomas Koenig + + PR fortran/47065 + * frontend-passes.c (optimize_trim): Also follow references, except + when they are substring references or array references. + +2011-03-27 Tobias Burnus + + PR fortran/18918 + * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to + GFC_ISYM_NUM_IMAGES. + (gfc_fcoarray): Add GFC_FCOARRAY_LIB. + * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES + rename. + * invoke.texi (-fcoarray=): Document "lib" argument. + * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE(). + * libgfortran.h (libgfortran_stat_codes): Add comments. + * options.c (gfc_handle_coarray_option): Add -fcoarray=lib. + * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image): + Handle GFC_FCOARRAY_LIB. + * trans.h (gfc_init_coarray_decl): New prototype. + (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize, + gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical, + gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images, + gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str, + gfort_gvar_caf_num_images, gfort_gvar_caf_this_image): + New global variables. + * trans-decl.c: Declare several CAF functions (cf. above). + (gfc_build_builtin_function_decls): Initialize those. + (gfc_init_coarray_decl): New function. + (create_main_function): Call CAF init/finalize functions. + * trans-intrinsic.c (trans_this_image, trans_num_images): New. + (gfc_conv_intrinsic_function): Call those. + * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical): + Add code for GFC_FCOARRAY_LIB. + +2011-03-26 Janus Weil + + PR fortran/48291 + * class.c (get_unique_hashed_string): Adjust maximum allowable length + for unique type string. + +2011-03-25 Kai Tietz + + * scanner.c (preprocessor_line): Use filename_cmp + instead of strcmp. + +2011-03-25 Tobias Burnus + + PR fortran/48174 + PR fortran/45304 + * trans-types.c (gfc_get_function_type): Don't use varargs if the + procedure is known to have no arguments. + +2011-03-21 Thomas Koenig + + PR fortran/22572 + * gfortran.h (gfc_option_t): Add + flag_aggressive_function_elimination. + (gfc_dep_compare_functions): Add prototype. + * lang.opt: Add faggressive-function-elimination. + * invoke.texi: Document -faggressive-function-elimination. + * frontend_passes (expr_array): New static variable. + (expr_size): Likewise. + (expr_count): Likewise. + (current_code): Likewise. + (current_ns): Likewise. + (gfc_run_passes): Allocate and free space for expressions. + (cfe_register_funcs): New function. + (create_var): New function. + (cfc_expr_0): New function. + (cfe_code): New function. + (optimize_namespace): Invoke gfc_code_walker with cfe_code + and cfe_expr_0. + * dependency.c (gfc_dep_compare_functions): New function. + (gfc_dep_compare_expr): Use it. + * options.c (gfc_init_options): Handle + flag_aggressive_function_elimination. + (gfc_handle_option): Likewise. + +2011-03-15 Francois-Xavier Coudert + + * arith.c (arith_power): Plug memory leak. + +2011-03-12 Janus Weil + + PR fortran/48059 + * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type + for polymorphic arguments. + +2011-03-12 Francois-Xavier Coudert + + PR fortran/48054 + * intrinsic.texi: Clarify doc of logarithm functions. + +2011-03-12 Francois-Xavier Coudert + + PR fortran/47552 + * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of + the string length variable. + +2011-03-11 Janus Weil + + PR fortran/47768 + * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP. + (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'. + +2011-03-06 Paul Thomas + Jerry DeLisle + + PR fortran/47850 + * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if + the expression has an iterator. Otherwise, iterate through the + array, checking for constant expressions for each element. + +2011-03-04 Janne Blomqvist + + PR libfortran/47802 + * intrinsic.texi: Update CTIME and FDATE documentation. + +2011-03-03 Ralf Wildenhues + + * invoke.texi (Option Summary, Fortran Dialect Options) + (Preprocessing Options, Runtime Options, Code Gen Options): + Fix vertical list spacing by using @itemx for additinoal + items, empty line before @table. Fix typos. + +2011-02-28 Francois-Xavier Coudert + + PR fortran/47894 + * intrinsic.texi: Fix doc of the VERIFY intrinsic. + +2011-02-26 Tobias Burnus + + PR fortran/47846 + * trans-stmt.c (gfc_trans_allocate): Fix allocation with + type-spec of deferred-length strings. + +2011-02-26 Tobias Burnus + + PR fortran/47886 + * openmp.c (gfc_resolve_omp_directive): Resolve if() + condition of OpenMP's task. + +2011-02-26 Francois-Xavier Coudert + + PR fortran/47894 + * intrinsic.texi: Fix doc of the VERIFY intrinsic. + +2011-02-24 Tobias Burnus + + PR fortran/47872 + * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add + multitable for linebreak between different syntax variants. + +2011-02-24 Richard Guenther + + PR fortran/47839 + * f95-lang.c (pushdecl): For externs in non-global scope push + a copy of the decl into the BLOCK. + +2011-02-23 Mikael Morin + + PR fortran/40850 + * trans.c (gfc_prepend_expr_to_block): New function. + * trans.h (gfc_prepend_expr_to_block): Declare. + * trans-array.c (gfc_conv_array_parameter): Replace + gfc_add_expr_to_block with gfc_prepend_expr_to_block. + +2011-02-22 Paul Thomas + + PR fortran/45743 + * trans-decl.c (gfc_get_extern_function_decl): Don't use the + gsymbol backend_decl if the procedure has a formal argument + that is a procedure. + +2011-02-22 Tobias Burnus + + PR fortran/41359 + * trans-stmt.c (gfc_trans_if_1): Use correct line for + expressions in the if condition. + +2011-02-20 Tobias Burnus + + PR fortran/47797 + * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and + gfc_restore_backend_locus to have better debug locations. + * trans-array.c (gfc_trans_deferred_array): Ditto. + +2011-02-20 Paul Thomas + + PR fortran/45077 + PR fortran/44945 + * trans-types.c (gfc_get_derived_type): Remove code that looks + for decls in gsym and add call to gfc_get_module_backend_decl. + * trans.h: Add prototype for gfc_get_module_backend_decl. + * trans-decl.c (gfc_get_module_backend_decl): New function. + (gfc_get_symbol_decl): Call it. + +2011-02-19 Paul Thomas + + PR fortran/47348 + * trans-array.c (get_array_ctor_all_strlen): Move up in file. + (get_array_ctor_var_strlen): Add block dummy and add call to + get_array_ctor_all_strlen instead of giving up on substrings. + Call gcc_unreachable for default case. + (get_array_ctor_strlen): Add extra argument to in call to + get_array_ctor_var_strlen. + +2011-02-18 Janus Weil + + PR fortran/47789 + * primary.c (gfc_match_structure_constructor): Handle empty parent + types. + +2011-02-18 Tobias Burnus + + PR fortran/47775 + * trans-expr.c (arrayfunc_assign_needs_temporary): Use + esym to check whether the specific procedure returns an + allocatable or pointer. + +2011-02-18 Michael Matz + + PR fortran/45586 + * gfortran.h (struct gfc_component): Add norestrict_decl member. + * trans.h (struct lang_type): Add nonrestricted_type member. + * trans-expr.c (gfc_conv_component_ref): Search fields with correct + parent type. + * trans-types.c (mirror_fields, gfc_nonrestricted_type): New. + (gfc_sym_type): Use it. + +2011-02-18 Janus Weil + + PR fortran/47768 + * resolve.c (resolve_transfer): Reject variables with procedure pointer + components. + +2011-02-18 Janus Weil + + PR fortran/47767 + * gfortran.h (gfc_check_access): Removed prototype. + (gfc_check_symbol_access): Added prototype. + * module.c (gfc_check_access): Renamed to 'check_access', made static. + (gfc_check_symbol_access): New function, basically a shortcut for + 'check_access'. + (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use + 'gfc_check_symbol_access'. + (write_operator,write_module): Renamed 'gfc_check_access'. + * resolve.c (resolve_fl_procedure,resolve_fl_derived, + resolve_fl_namelist,resolve_symbol,resolve_fntype): Use + 'gfc_check_symbol_access'. + +2011-02-16 Janus Weil + + PR fortran/47745 + * class.c (gfc_build_class_symbol): Set 'class_ok' attribute. + * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into + 'gfc_build_class_symbol'. + (gfc_match_decl_type_spec): Reject unlimited polymorphism. + * interface.c (matching_typebound_op): Check for 'class_ok' attribute. + * match.c (select_type_set_tmp): Move setting of 'class_ok' into + 'gfc_build_class_symbol'. + * primary.c (gfc_variable_attr): Check for 'class_ok' attribute. + +2011-02-15 Steven G. Kargl + + PR fortran/47633 + . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue. + +2011-02-14 Janus Weil + + PR fortran/47730 + * parse.c (gfc_build_block_ns): Commit 'block@' symbol. + +2011-02-14 Janus Weil + + PR fortran/47728 + * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic + arrays. + * primary.c (gfc_match_varspec): Avoid ICE for invalid class + declaration. + +2011-02-14 Janus Weil + + PR fortran/47349 + * interface.c (get_expr_storage_size): Handle derived-type components. + +2011-02-13 Tobias Burnus + + PR fortran/47569 + * interface.c (compare_parameter): Avoid ICE with + character components. + +2011-02-12 Janus Weil + + * class.c (gfc_build_class_symbol): Reject polymorphic arrays. + * decl.c (build_sym,build_struct,attr_decl1): Use return value of + 'gfc_build_class_symbol'. + +2011-02-12 Michael Matz + Janus Weil + Tobias Burnus + + PR fortran/45586 + * trans-expr.c (conv_parent_component_references): Avoid unintendent + skipping of parent compounds. + +2011-02-11 Tobias Burnus + + PR fortran/47550 + * resolve.c (resolve_formal_arglist): PURE with VALUE + and no INTENT: Add -std= diagnostics. + +2011-02-09 Janus Weil + + PR fortran/47352 + * resolve.c (resolve_procedure_interface): If interface has a result + variable, copy the typespec and set result pointer to self. + +2011-02-09 Janus Weil + + PR fortran/47463 + * resolve.c (resolve_typebound_subroutine): Remove erroneous line. + +2011-02-09 Janus Weil + + PR fortran/47637 + * trans-decl.c (init_intent_out_dt): Handle CLASS arguments. + +2011-02-08 Jerry DeLisle + + * io.c (match_io_element): Do not set dt if not inquire. + +2011-02-08 Janus Weil + + PR fortran/45290 + * expr.c (gfc_check_assign_symbol): Reject pointers as pointer + initialization target. + +2011-02-07 Janne Blomqvist + Ralf Wildenhues + + * gfortran.texi (Thread-safety): texinfo styling fixes. + * intrinsic.texi: Likewise. + +2011-02-06 Janne Blomqvist + + * gfortran.texi (Compiler Characteristics): Add reference to + thread-safety section. + +2011-02-06 Janne Blomqvist + + * gfortran.texi (Thread-safety): New section. + * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety. + (GETENV): Likewise. + (GET_ENVIRONMENT_VARIABLE): Likewise. + (SYSTEM): Likewise. + +2011-02-06 Paul Thomas + + PR fortran/47592 + * trans-stmt.c (gfc_trans_allocate): For deferred character + length allocations with SOURCE, store to the values and string + length to avoid calculating twice. Replace gfc_start_block + with gfc_init_block to avoid unnecessary contexts and to keep + declarations of temporaries where they should be. Tidy up the + code a bit. + +2011-02-05 Janne Blomqvist + + PR fortran/42434 + * intrinsic.texi (SYSTEM_CLOCK): Update documentation. + +2011-02-02 Janus Weil + Paul Thomas + + PR fortran/47082 + * trans-expr.c (gfc_trans_class_init_assign): Add call to + gfc_get_derived_type. + * module.c (read_cleanup): Do not use unique_symtrees for vtabs + or vtypes. + +2011-02-02 Janus Weil + + PR fortran/47572 + * resolve.c (resolve_fl_variable): Handle polymorphic allocatables. + +2011-02-01 Janus Weil + + PR fortran/47565 + * trans-expr.c (gfc_conv_structure): Handle constructors for procedure + pointer components with allocatable result. + +2011-01-31 Janus Weil + + PR fortran/47455 + * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers + with pointer or allocatable result. + +2011-01-31 Paul Thomas + + PR fortran/47519 + * trans-stmt.c (gfc_trans_allocate): Improve handling of + deferred character lengths with SOURCE. + * iresolve.c (gfc_resolve_repeat): Calculate character + length from source length and ncopies. + * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE + expressions for ALLOCATE. + +2011-01-31 Janus Weil + + PR fortran/47463 + * resolve.c (resolve_typebound_subroutine): Bug fix for the case of + an argument of a typebound assignment being a component. + +2011-01-31 Rainer Orth + + * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use + LD_STATIC_OPTION, LD_DYNAMIC_OPTION. + +2011-01-31 Tobias Burnus + + PR fortran/47042 + * resolve.c (resolve_fl_procedure): Reject stmt functions + with pointer/allocatable attribute. + +2011-01-31 Tobias Burnus + + PR fortran/47042 + * interface.c (gfc_procedure_use): Add explicit interface check for + pointer/allocatable functions. + +2011-01-30 Paul Thomas + + PR fortran/47523 + * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op + expr and is assigned to a deferred character length scalar, + make sure that the function is called before reallocation, + so that the length is available. Include procedure pointer + and procedure pointer component rhs as well. + + PR fortran/45170 + PR fortran/35810 + PR fortran/47350 + * gfortran.dg/allocatable_function_5.f90: New test not added by + mistake on 2011-01-28. + +2011-01-29 Tobias Burnus + + PR fortran/47531 + * check.c (gfc_check_shape): Support kind argument in SHAPE. + * intrinsic.c (add_functions): Ditto. + * resolve.c (gfc_resolve_shape): Ditto. + * simplify.c (gfc_simplify_shape): Ditto. + * intrinsic.h (gfc_check_shape, gfc_resolve_shape, + gfc_simplify_shape): Update prototypes. + * intrinisc.text (SHAPE): Document kind argument. + +2011-01-28 Tobias Burnus + + PR fortran/47507 + * resolve.c (resolve_formal_arglist): Allow arguments with VALUE + attribute also without INTENT. + +2011-01-28 Tobias Burnus + + * gfortran.texi (Fortran 2003 status): Mention support for + nonconstant namelist variables. + +2011-01-28 Paul Thomas + Tobias Burnus + + PR fortran/45170 + PR fortran/35810 + PR fortran/47350 + * interface.c (compare_actual_formal): An allocatable or pointer + deferred length actual is only allowed if the formal argument + is also deferred length. Clean up whitespace. + * trans-expr.c (gfc_conv_procedure_call): Pass string length for + deferred character length formal arguments by reference. Do the + same for function results. + (gfc_trans_pointer_assignment): Do not do runtime check of lhs + and rhs character lengths, if deferred length lhs. In this case + set the lhs character length to that of the rhs. + (gfc_conv_string_parameter): Remove assert that string length is + an integer type. + (is_scalar_reallocatable_lhs): New function. + (alloc_scalar_allocatable_for_assignment): New function. + (gfc_trans_assignment_1): Call above new function. If the rhs is + a deferred character length itself, makes ure that the function + is called before reallocation, so that the length is available. + (gfc_trans_asssignment): Remove error about assignment to + deferred length character variables. + * gfortran.texi: Update entry about (re)allocation on + assignment. + * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred + length character variables. + * module.c (mio_typespec): Transfer deferred characteristic. + * trans-types.c (gfc_get_function_type): New code to generate + hidden typelist, so that those character lengths that are + passed by reference get the right type. + * resolve.c (resolve_contained_fntype): Supress error for + deferred character length functions. + (resolve_function, resolve_fl_procedure) The same. + (check_symbols): Remove the error that support for + entity with deferred type parameter is not yet implemented. + (resolve_fl_derived): The same. + match.c (alloc_opt_list): Allow MOLD for deferred length object. + * trans-decl.c (gfc_get_symbol_decl): For deferred character + length dummies, generate a local variable for string length. + (create_function_arglist): Hidden length can be a pointer. + (gfc_trans_deferred_vars): For deferred character length + results and dummies, assign the string length to the local + variable from the hidden argument on entry and the other way + round on exit, as appropriate. + +2011-01-27 Tobias Burnus + + PR fortran/47474 + * trans-decl.c (gfc_generate_function_code): Fix init + of allocatable result variable with allocatable components. + +2011-01-27 Tobias Burnus + + PR fortran/47472 + * options.c (gfc_handle_module_path_options): Save + module path without trailing slash as include path. + +2011-01-25 Tobias Burnus + + PR fortran/47448 + * interface.c (gfc_check_operator_interface): Fix + defined-assignment check. + +2011-01-23 Tobias Burnus + + PR fortran/47421 + * trans-decl.c (gfc_trans_deferred_vars): Do not nullify + scalar allocatable dummy arguments. + +2011-01-22 Thomas Koenig + + PR fortran/38536 + * resolve.c (gfc_iso_c_func_interface): For C_LOC, + check for array sections followed by component references + which are illegal. Also check for coindexed arguments. + +2011-01-22 Tobias Burnus + + PR fortran/47399 + * primary.c (gfc_match_varspec): Relax gcc_assert to allow for + PARAMETER TBP. + +2011-01-21 Tobias Burnus + + PR fortran/47394 + * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check): + Use defined instead of magic number exit status codes. + * scanner.c (include_line, gfc_new_file): Ditto. + +2011-01-21 Tobias Burnus + + PR fortran/47377 + * expr.c (gfc_check_pointer_assign): Reject expr data-targets + without pointer attribute. + +2011-01-18 Janus Weil + + PR fortran/47240 + * resolve.c (expression_rank): Fix rank of procedure poiner components. + * trans-expr.c (gfc_conv_procedure_call): Take care of procedure + pointer components as actual arguments. + +2011-01-17 Jakub Jelinek + + PR fortran/47331 + * gfortran.h (struct gfc_omp_saved_state): New type. + (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes. + * resolve.c (resolve_global_procedure): Call it around gfc_resolve + call. + * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New + functions. + +2011-01-17 Tobias Burnus + + PR fortran/47327 + * invoke.texi (Options to request or suppress errors + and warnings): Fix cross link. + +2011-01-15 Tobias Burnus + + * gfortran.texi: Update Fortran 2003 Status section. + + PR fortran/47177 + * invoke.texi: Add missing "-E" to the -dM example. + +2011-01-13 Tobias Burnus + + PR fortran/47268 + * intrinsic.texi (get_command_argument, get_environment_variable): + Mark arguments as optional in the Arguments section. + +2011-01-13 Kai Tietz + Tobias Burnus + + PR fortran/47260 + * trans-decl.c (gfc_get_extern_function_decl, + build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before + calling decl_attributes. + +2011-01-13 Tobias Burnus + Mikael Morin + + PR fortran/45848 + PR fortran/47204 + * gfortran.h (gfc_code): Move union ext's case_list into + the struct block. + * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list + by "block.". + * frontend-passes.c (gfc_code_walker): Ditto. + * match.c (gfc_match_goto, gfc_match_call, gfc_match_case, + gfc_match_type_is, gfc_match_class_is): Ditto. + * resolve.c (resolve_select, resolve_select_type): Ditto. + * st.c (gfc_free_statement): Ditto. + * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select, + gfc_trans_character_select): Ditto. + * parse.c (resolve_all_program_units): For error recovery, avoid + segfault is proc_name is NULL. + +2011-01-11 Paul Thomas + + PR fortran/47051 + * trans-array.c (gfc_alloc_allocatable_for_assignment): Change + to be standard compliant by testing for shape rather than size + before skipping reallocation. Improve comments. + +2011-01-09 Janus Weil + + PR fortran/47224 + * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece + of code. + +2011-01-09 Thomas Koenig + + PR fortran/38536 + * resolve.c (is_scalar_expr_ptr): For a substring reference, + use gfc_dep_compare_expr to compare start and end expession. + Add FIXME for using gfc_deb_compare_expr elsewhere. + +2011-01-09 Janus Weil + + PR fortran/46313 + * class.c (get_unique_type_string): Make type name start with upper + case letter. + +2011-01-08 Thomas Koenig + + PR fortran/46405 + * invoke.texi: Mention -ffree-line-length-none and + -ffixed-line-length-none for preprocessing. + +2011-01-08 Paul Thomas + + PR fortran/46896 + * trans-expr.c (gfc_conv_procedure_call): With a non-copying + procedure argument (eg TRANSPOSE) use a temporary if there is + any chance of aliasing due to host or use association. + (arrayfunc_assign_needs_temporary): Correct logic for function + results and do not use a temporary for implicitly PURE + variables. Use a temporary for Cray pointees. + * symbol.c (gfc_add_save): Explicit SAVE not compatible with + implicit pureness of containing procedure. + * decl.c (match_old_style_init, gfc_match_data): Where decl + would fail in PURE procedure, set implicit_pure to zero. + * gfortran.h: Add implicit_pure to structure symbol_attr and + add prototype for function gfc_implicit_pure. + * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context): + Where decl would fail in PURE procedure, reset implicit_pure. + * io.c (match_vtag, gfc_match_open, gfc_match_close, + gfc_match_print, gfc_match_inquire, gfc_match_wait): The same. + * match.c (gfc_match_critical, gfc_match_stopcode, + sync_statement, gfc_match_allocate, gfc_match_deallocate): The + same. + * parse.c (decode_omp_directive): The same. + (parse_contained): If not PURE, set implicit pure attribute. + * resolve.c (resolve_formal_arglist, resolve_structure_cons, + resolve_function, resolve_ordinary_assign): The same. + (gfc_implicit_pure): New function. + * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE + to ab_attribute enum and use it in this function. + +2011-01-08 Thomas Koenig + + PR fortran/45777 + * symbol.c (gfc_symbols_could_alias): Strip gfc_ prefix, + make static and move in front of its only caller, to ... + * trans-array.c (symbols_could_alias): ... here. + Pass information about pointer and target status as + arguments. Allocatable arrays don't alias anything + unless they have the POINTER attribute. + (gfc_could_be_alias): Keep track of pointer and target + status when following references. Also check if typespecs + of components match those of other components or symbols. + +2011-01-07 Tobias Burnus + + PR fortran/41580 + * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab. + * intrinsic.c (add_functions): Use simplify functions for + EXTENDS_TYPE_OF and SAME_TYPE_AS. + * intrinsic.h (gfc_simplify_extends_type_of, + gfc_simplify_same_type_as): New prototypes. + * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of, + gfc_simplify_same_type_as): New functions. + +2011-01-07 Janus Weil + + PR fortran/47189 + PR fortran/47194 + * gfortran.h (gfc_lval_expr_from_sym): Moved prototype. + * class.c (gfc_class_null_initializer): Initialize _vptr to declared + type. + * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c. + * resolve.c (resolve_deallocate_expr): _data component will be added + at translation stage. + * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c. + * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type. + +2011-01-06 Daniel Franke + + PR fortran/33117 + PR fortran/46478 + * parse.c (parse_interface): Remove check for procedure types. + * interface.c (check_interface0): Verify that procedures are + either all SUBROUTINEs or all FUNCTIONs. + +2011-01-05 Janus Weil + + PR fortran/47180 + * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure + 'vtab' is initialized). + +2011-01-05 Janus Weil + + PR fortran/47180 + * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer + assignment, set the _vptr component to the declared type. + +2011-01-05 Thomas Koenig + + PR fortran/46017 + * resolve.c (resolve_allocate_deallocate): Follow references to + check for duplicate occurence of allocation/deallocation objects. + +2011-01-05 Janus Weil + + PR fortran/47024 + * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component + of polymorphic allocatables according to their declared type. + +2011-01-04 Janus Weil + + PR fortran/46448 + * class.c (gfc_find_derived_vtab): Set the module field for the copying + routine to make sure it receives module name mangling. + +2011-01-03 Jakub Jelinek + + * gfortranspec.c (lang_specific_driver): Update copyright notice + dates. + +2011-01-03 Janus Weil + + * intrinsic.texi (LEADZ): Fix example. + +2011-01-02 Janus Weil + + PR fortran/46408 + * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_ + routine. + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 06ad7c6..2d78cb5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -339,15873 +339,8 @@ PR tree-optimization/51683 * gcc.dg/pr51683.c: New test. - -2011-12-31 Paolo Carlini - - PR c++/51397 - * g++.dg/cpp0x/static_assert6.C: New. - -2011-12-31 Uros Bizjak - - * gcc.dg/tree-ssa/vrp47: Pass -march=i586 for ia32 target. - -2011-12-31 Thomas König - - PR fortran/51502 - * lib/gcc-dg.exp (scan-module-absence): New function. - * gfortran.dg/implicit_pure_2.f90: New test. - -2011-12-30 Paolo Carlini - - PR c++/51316 - * g++.dg/cpp0x/alignof4.C: New. - -2011-12-29 Michael Meissner - - PR testsuite/51702 - * gcc.dg/scal-to-vec1.c: If 32-bit powerpc-linux, add the - -mabi=altivec option, which suppresses a warning message about - passing vectors by reference. The extra warning causes some tests - to fail. - * gcc.dg/scal-to-vec2.c: Likewise. - * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Likewise. - * gcc.dg/pr35442.c: Likewise. - * gcc.dg/vector-compare-1.c: Likewise. - * gcc.dg/vector-compare-2.c: Likewise. - * gcc.dg/torture/pr36891.c: Likewise. - -2012-12-29 Kai Tietz - - * g++.dg/abi/bitfield3.C: Make sure test runs - for windows targets without activated ms-bitfields option. - - * g++.old-deja/g++.brendan/new3.C: Adjust test for mingw - targets to use static-version. - * g++.old-deja/g++.abi/cxa_vec.C: Likewise. - * g++.old-deja/g++.abi/arraynew.C: Likewise. - * g++.old-deja/g++.eh/new1.C: Likewise. - * g++.old-deja/g++.eh/new2.C: Likewise. - -2011-12-29 Thomas Koenig - - * gfortran.dg/function_optimize_9.f90: New test. - -2011-12-27 Fabien Chêne - - PR c++/23211 - * g++.dg/template/using18.C: New. - * g++.dg/template/using19.C: New. - * g++.dg/template/nested3.C: Remove dg-message at instantiation. - * g++.dg/template/crash13.C: Likewise. - -2011-12-28 Michael Meissner - - PR target/51623 - * gcc.target/powerpc/pr51623.c: New file. - -2011-12-28 Uros Bizjak - - * gcc.dg/torture/pr50396.c: Use dg-add-options ieee. - -2011-12-27 Paolo Carlini - - PR c++/51547 - * g++.dg/cpp0x/pr51547.C: New. - -2011-12-27 Eric Botcazou - - * gcc.c-torture/execute/20111227-1.c: New test. - -2011-12-25 Jan Hubicka - - PR middle-end/48641 - * gcc.dg/compile/pr48641.c: New file. - -2011-12-26 Joey Ye - - PR middle-end/51200 - * gcc.dg/volatile-bitfields-2.c: New test. - -2011-12-23 Jason Merrill - - PR c++/51507 - * g++.dg/cpp0x/variadic121.C: New. - -2011-12-23 Uros Bizjak - - * gcc.dg/vect/fast-math-pr35982.c: Fix parenthesis in target selectors. - -2011-12-23 Dmitry Plotnikov - - * gcc.target/arm/vect-vcvt.c: New test. - * gcc.target/arm/vect-vcvtq.c: New test. - - * gcc.dg/vect/fast-math-pr35982.c: Added vect_strided2 alternative - in final check. - - * lib/target-supports.exp (check_effective_target_vect_intfloat_cvt): - True for ARM NEON. - (check_effective_target_vect_uintfloat_cvt): Likewise. - (check_effective_target_vect_floatuint_cvt): Likewise. - (check_effective_target_vect_floatint_cvt): Likewise. - -2011-12-23 Richard Guenther - - PR rtl-optimization/50396 - * gcc.dg/torture/pr50396.c: New testcase. - -2011-12-22 Bin Cheng - - PR tree-optimization/43491 - * gcc.dg/tree-ssa/pr43491.c: New test. - -2011-12-22 John David Anglin - - PR testsuite/50722 - * gcc.dg/pr49994-3.c: Skip on ia64-*-*-*, hppa*-*-* and *-*-hpux*. - -2011-12-22 Richard Guenther - - PR lto/51650 - * g++.dg/lto/pr51650-1_0.C: New testcase. - * g++.dg/lto/pr51650-2_0.C: Likewise. - -2011-12-21 Richard Earnshaw - - PR target/51643 - * gcc.target/arm/sibcall-2.c: New test. - -2011-12-22 Uros Bizjak - - PR testsuite/51645 - * g++.dg/cpp0x/alias-decl-debug-0.C: Add dg-skip-if. - -2011-12-21 Uros Bizjak - - * gcc.dg/pr50038.c: Move to ... - * gcc.target/i386/pr50038.c: ... here. Test on all targets. - -2011-12-21 Jason Merrill - - PR c++/51611 - * g++.dg/cpp0x/nsdmi-virtual1.C: New. - -2011-12-21 Paolo Carlini - - PR c++/51305 - * g++.dg/cpp0x/constexpr-noexcept6.C: New. - -2011-12-21 Jakub Jelinek - - PR middle-end/51644 - PR middle-end/51647 - * gcc.dg/pr51644.c: New test. - * g++.dg/warn/Wreturn-4.C: New test. - -2011-12-21 Michael Zolotukhin - - * gcc.dg/vect/no-section-anchors-vect-31.c: Adjust array size and test - diag-scans to fix fail on AVX. - * gcc.dg/vect/no-section-anchors-vect-36.c: Ditto. - * gcc.dg/vect/no-section-anchors-vect-64.c: Ditto. - * gcc.dg/vect/no-section-anchors-vect-66.c: Ditto. - * gcc.dg/vect/no-section-anchors-vect-68.c: Ditto. - * gcc.dg/vect/no-section-anchors-vect-69.c: Ditto. - * gcc.dg/vect/no-vfa-vect-dv-2.c: Adjust dg-scans. - * gcc.dg/vect/pr45752.c: Ditto. - * gcc.dg/vect/slp-perm-4.c: Ditto. - * gcc.dg/vect/slp-perm-9.c: Ditto. - * gcc.dg/vect/vect-33.c: Ditto. - * gcc.dg/vect/vect-35.c: Ditto. - * gcc.dg/vect/vect-6-big-array.c: Ditto. - * gcc.dg/vect/vect-6.c: Ditto. - * gcc.dg/vect/vect-91.c: Ditto. - * gcc.dg/vect/vect-all-big-array.c: Ditto. - * gcc.dg/vect/vect-all.c: Ditto. - * gcc.dg/vect/vect-multitypes-1.c: Ditto. - * gcc.dg/vect/vect-outer-4c.c: Ditto. - * gcc.dg/vect/vect-outer-5.c: Ditto. - * gcc.dg/vect/vect-over-widen-1.c: Ditto. - * gcc.dg/vect/vect-over-widen-3.c: Ditto. - * gcc.dg/vect/vect-over-widen-4.c: Ditto. - * gcc.dg/vect/vect-peel-1.c: Ditto. - * gcc.dg/vect/vect-peel-2.c: Ditto. - * gcc.dg/vect/vect-peel-3.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1b.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1c.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-2b.c: Ditto. - * gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c: Ditto. - * lib/target-supports.exp (check_avx_available): New function. - (check_effective_target_vect_sizes_32B_16B): Ditto. - (check_prefer_avx128): Ditto. - (check_effective_target_vect_aligned_arrays): Add handling of AVX. - (check_effective_target_vect_multiple_sizes): Ditto. - -2011-12-21 Enkovich Ilya - - PR target/50038 - * gcc.dg/pr50038.c: New test. - -2011-12-20 Paolo Carlini - - PR c++/51621 - * g++.dg/cpp0x/constexpr-ice5.C: New. - -2011-12-20 Joseph Myers - - * gcc.dg/c11-version-1.c, gcc.dg/c11-version-2.c, - gcc.dg/c94-version-1.c, gcc.dg/c99-version-1.c, - gcc.dg/gnu11-version-1.c: New tests. - -2011-12-20 Bernd Schmidt - - PR middle-end/51200 - * gcc.target/arm/volatile-bitfields-4.c: New test. - * c-c++-common/abi-bf.c: New test. - -2011-12-20 Dodji Seketeli - - PR debug/49951 - * g++.dg/gcov/gcov-2.C: Adjust. - -2011-12-20 Paolo Carlini - - PR c++/51612 - * g++.dg/cpp0x/constexpr-ice4.C: New. - -2011-12-19 Paolo Carlini - - PR c++/51328 - * g++.dg/template/crash109.C: New. - -2011-12-19 Jason Merrill - - PR c++/51530 - * g++.dg/cpp0x/nullptr26.C: New. - -2011-12-19 Richard Sandiford - - * gcc.target/mips/mult-1.c: Require -O2. - -2011-12-19 Richard Sandiford - - * gcc.target/mips/ext-2.c: Add NOMIPS16. - -2011-12-19 Jason Merrill - - PR c++/51526 - * g++.dg/cpp0x/constexpr-delegating.C: New. - -2011-12-19 Sandra Loosemore - Tom de Vries - - PR rtl-opt/50380 - * gcc.c-torture/compile/pr50380.c: New testcase. - -2011-12-19 Tobias Burnus - - PR fortran/51605 - * gfortran.dg/block_10.f90: New. - -2011-12-19 Jason Merrill - - PR c++/51553 - * g++.dg/cpp0x/initlist64.C: New. - - PR c++/51228 - * c-c++-common/transparent-union-1.c: New. - -2011-12-19 Eric Botcazou - - PR tree-optimization/51580 - * gnat.dg/specs/loop_optimization1.ads: New test. - * gnat.dg/specs/loop_optimization1_pkg.ad[sb]: New helper. - -2011-12-19 Richard Guenther - - PR lto/51573 - * gcc.dg/lto/20111207-2_0.c: Adjust. - * g++.dg/lto/pr51573-1_0.C: New testcase. - -2011-12-19 Jakub Jelinek - - PR c++/51619 - * g++.dg/cpp0x/pr51619.C: New test. - -2011-12-19 Tobias Burnus - - PR fortran/51605 - * gfortran.dg/select_type_25.f90: New. - -2011-12-19 Martin Jambor - - PR tree-optimization/51583 - * gcc.dg/tree-ssa/pr51583.c: New test. - -2011-12-19 Jakub Jelinek - - PR tree-optimization/51596 - * g++.dg/opt/pr51596.C: New test. - - PR middle-end/51590 - PR tree-optimization/51606 - * gcc.dg/vect/pr51590.c: New test. - -2011-12-19 Richard Guenther - - PR lto/51572 - * g++.dg/lto/pr51572-2_0.C: New testcase. - -2011-12-19 Dodji Seketeli - - PR c++/51477 - * g++.dg/cpp0x/nsdmi6.C: New test. - -2011-12-19 Tobias Burnus - - * gfortran.dg/coarray_poly_3.f90: New. - * coarray/poly_run_1.f90: Enable some previously commented code. - -2011-12-19 Jason Merrill - - PR c++/51489 - * g++.dg/cpp0x/constexpr-ptrsub.C: New. - -2011-12-18 Hans-Peter Nilsson - - * gcc.dg/pr51491-2.c: Fix "cleanup-treee-dump" typo. - -2011-12-17 Jason Merrill - - PR c++/51588 - * g++.dg/parse/enum7.C: New. - - PR c++/51586 - * g++.dg/lookup/nested2.C: New. - - PR c++/51587 - * g++.dg/parse/enum6.C: New. - -2011-12-17 Tom de Vries - - PR tree-optimization/51491 - * gcc.dg/pr51491.c: New test. - * gcc.dg/pr51491-2.c: Same. - -2011-12-16 Jason Merrill - - PR c++/51416 - * g++.dg/cpp0x/auto31.C: New. - -2011-12-16 Ian Lance Taylor - - PR middle-end/51592 - * gcc.dg/20111216-1.c: New test. - -2011-12-16 Jason Merrill - - PR c++/51461 - * g++.dg/init/static4.C: New. - -2011-12-16 Jason Merrill - - PR c++/51331 - * g++.dg/init/value10.C: New. - -2011-12-16 Jakub Jelinek - - PR testsuite/50803 - * gcc.dg/ipa/inline-5.c: XFAIL for 32-bit hppa. - - PR tree-optimization/51575 - * g++.dg/opt/pr51575.C: New test. - - PR debug/51557 - * gcc.dg/pr51557.c: New test. - -2011-12-16 Richard Guenther - - PR lto/51572 - * gcc.dg/lto/pr51572-1_0.c: New testcase. - -2011-12-15 Jason Merrill - - PR c++/51458 - * g++.dg/ext/desig4.C: New. - -2011-12-15 Paul Thomas - - * gfortran.dg/class_array_3.f03: Remove explicit indexing of - A%disp() to use scalarizer. - * gfortran.dg/class_array_9.f03: New. - -2011-12-15 Jakub Jelinek - - * gcc.dg/vect/vect-sdivmod-1.c: New test. - - PR c++/51463 - * g++.dg/cpp0x/pr51463.C: New test. - - PR c/51360 - * c-c++-common/gomp/pr51360.c: New test. - * g++.dg/gomp/pr51360.C: New test. - - PR middle-end/49806 - * gcc.dg/tree-ssa/vrp47.c: Add -fdump-tree-dom2 to dg-options. - Check for x_? & y in dom2 dump and xfail the check in dom1 dump. - - PR tree-optimization/51117 - * g++.dg/opt/pr51117.C: New test. - -2011-12-15 Romain Geissler - - * gcc.c-torture/execute/builtins/chk.h (stpncpy, stpncpy_disallowed): - New definitions. - * gcc.c-torture/execute/builtins/lib/chk.c (stpncpy_disallowed): - Likewise. - (stpncpy, __stpncpy_chk): New functions. - * gcc.c-torture/execute/builtins/stpncpy-chk-lib.c: New file. - * gcc.c-torture/execute/builtins/stpncpy-chk.c: Likewise. - -2011-12-15 Richard Guenther - - PR lto/51567 - * g++.dg/lto/pr51567-1_0.C: New testcase. - -2011-12-15 Dodji Seketeli - - PR c++/51473 - * g++.dg/cpp0x/auto30.C: New test. - -2011-12-15 Tobias Burnus - - * gfortran.dg/coarray/poly_run_3.f90: New. - * gfortran.dg/coarray/poly_run_2.f90: Enable comment-out test. - -2011-12-15 Richard Guenther - - PR lto/51564 - * g++.dg/lto/pr51564-1_0.C: New testcase. - -2011-12-15 Jonathan Wakely - - PR libstdc++/51365 - * g++.dg/ext/is_final.C: New. - -2012-12-15 Richard Guenther - - PR lto/48508 - * g++.dg/lto/pr48508-1_0.C: New testcase. - * g++.dg/lto/pr48508-1_1.C: Likewise. - -2011-12-14 Jason Merrill - - PR c++/51554 - * g++.dg/init/constant1.C: New. - - PR c++/51248 - * g++.dg/other/enum2.C: New. - -2011-12-14 Dodji Seketeli - - PR c++/51475 - * g++.dg/cpp0x/initlist63.C: New test. - -2011-12-14 Georg-Johann Lay - - PR target/50931 - * gcc.target/avr/torture/int24-mul.c: New. - -2011-12-14 Dodji Seketeli - - PR c++/51476 - * g++.dg/cpp0x/ptrmem-cst-arg1.C: New test. - -2011-12-13 Jason Merrill - - PR c++/51406 - PR c++/51161 - * g++.dg/cpp0x/rv-cast3.C: New. - * g++.dg/cpp0x/rv-cast4.C: New. - -2011-12-13 Paolo Carlini - - PR c++/51464 - * g++.dg/cpp0x/lambda/lambda-ice6.C: New. - -2011-12-13 Andrew Pinski - Adam Nemet - - * gcc.target/mips/mips.exp (mips_option_groups): Fix debug. Add - -fdump-* options. - * gcc.target/mips/octeon2-pipe-1.c: New testcase. - * gcc.target/mips/octeon-pipe-1.c: New testcase. - -2011-12-11 Fabien Chêne - - PR c++/14258 - * g++.dg/template/using16.C: New. - * g++.dg/template/using17.C: New. - -2011-12-13 Martin Jambor - - PR tree-optimization/51362 - * gcc.dg/ipa/pr51362.c: New test. - -2011-12-13 Uros Bizjak - - PR testsuite/51524 - * gcc.target/i386/bmi2-mulx32-1.c (gen_mulx): Add attribute regparm(2). - * gcc.target/i386/bmi2-mulx32-2.c (calc_mulx_u32): Ditto. - -2011-12-13 Richard Guenther - - PR lto/48354 - * g++.dg/lto/pr48354-1_0.C: New testcase. - -2011-12-13 Richard Guenther - - PR tree-optimization/51519 - * gcc.dg/pr51519.c: New testcase. - -2011-12-13 Richard Guenther - - * gcc.dg/lto/20111213-1_0.c: New testcase. - -2011-12-13 Eric Botcazou - - * gnat.dg/vect1.ad[sb]: Add more tests. - * gnat.dg/vect2.ad[sb]: Likewise. - * gnat.dg/vect3.ad[sb]: Likewise. - * gnat.dg/vect4.ad[sb]: Likewise. - * gnat.dg/vect5.ad[sb]: Likewise. - * gnat.dg/vect6.ad[sb]: Likewise. - -2011-12-12 Jakub Jelinek - - PR rtl-optimization/51495 - * gcc.c-torture/compile/pr51495.c: New test. - - PR tree-optimization/51481 - * gcc.dg/pr51481.c: New test. - -2011-12-12 Georg-Johann Lay - - PR tree-optimization/45830 - * gcc.c-torture/execute/pr45830.c: Move from here to... - * gcc.dg/torture/pr45830.c: ...this new file. Add dg-do and - dg-additional-options magic. - -2011-12-12 Janne Blomqvist - - * gfortran.dg/nested_modules_2.f90: Tighten test. - -2011-12-12 Eric Botcazou - - * gcc.c-torture/execute/20111212-1.c: New test. - -2011-12-12 Jakub Jelinek - - PR testsuite/51511 - * gcc.dg/pr45819.c: Add -w to dg-options. - -2011-12-12 Torvald Riegel - - * g++.dg/tm/noexcept-1.C: New test. - * g++.dg/tm/noexcept-2.C: New test. - * g++.dg/tm/noexcept-3.C: New test. - * g++.dg/tm/noexcept-4.C: New test. - * g++.dg/tm/noexcept-5.C: New test. - -2011-12-12 Torvald Riegel - - * c-c++-common/tm/20111206.c: New test. - -2011-12-12 Richard Guenther - - PR lto/51262 - * g++.dg/opt/pr51262.C: New testcase. - -2011-12-12 Revital Eres - - PR rtl-optimization/47013 - * gcc.dg/sms-2.c: Change scan-tree-dump-times and the code itself - to preserve the function. - * gcc.dg/sms-6.c: Add --param sms-min-sc=1. Add dg-options for - powerpc*-*-*. Avoid superfluous spaces in dg-final. - * gcc.dg/sms-3.c: Add --param sms-min-sc=1 and - -fmodulo-sched-allow-regmoves flags. - * gcc.dg/sms-7.c: Likewise. Remove dg-final for powerpc*-*-* - and avoid superfluous spaces in dg-final for spu-*-*. - * gcc.dg/sms-4.c: Add dg-options for powerpc*-*-*. - * gcc.dg/sms-8.c: Add --param sms-min-sc=1. Add dg-options and - change scan-rtl-dump-times for powerpc*-*-*. - * gcc.dg/sms-5.c: Add --param sms-min-sc=1 flag, remove - powerpc*-*-* from dg-final and avoid superfluous spaces in dg-final. - * gcc.dg/sms-9.c: Remove -fno-auto-inc-dec. - -2011-12-11 Jakub Jelinek - - PR tree-optimization/51485 - * g++.dg/vect/pr51485.cc: New test. - -2011-12-11 Tobias Burnus - - PR fortran/50923 - * gfortran.dg/warn_function_without_result_2.f90: New. - -2011-12-11 Paul Thomas - Tobias Burnus - - PR fortran/41539 - PR fortran/43214 - PR fortran/43969 - PR fortran/44568 - PR fortran/46356 - PR fortran/46990 - PR fortran/49074 - * gfortran.dg/class_array_1.f03: New. - * gfortran.dg/class_array_2.f03: New. - * gfortran.dg/class_array_3.f03: New. - * gfortran.dg/class_array_4.f03: New. - * gfortran.dg/class_array_5.f03: New. - * gfortran.dg/class_array_6.f03: New. - * gfortran.dg/class_array_7.f03: New. - * gfortran.dg/class_array_8.f03: New. - * gfortran.dg/coarray_poly_1.f90: New. - * gfortran.dg/coarray_poly_2.f90: New. - * gfortran.dg/coarray/poly_run_1.f90: New. - * gfortran.dg/coarray/poly_run_2.f90: New. - * gfortran.dg/class_to_type_1.f03: New. - * gfortran.dg/type_to_class_1.f03: New. - * gfortran.dg/typebound_assignment_3.f03: Remove the error. - * gfortran.dg/auto_dealloc_2.f90: Occurences of __builtin_free now 2. - * gfortran.dg/class_19.f03: Occurences of __builtin_free now 8. - -2011-12-11 Thomas Koenig - - PR fortran/50690 - * gfortran.dg/gomp/workshare2.f90: New test. - * gfortran.dg/gomp/workshare3.f90: New test. - -2011-12-11 Eric Botcazou - - * gnat.dg/specs/elab3.ads: New test. - -2011-12-10 Richard Henderson - - * gcc.target/powerpc/altivec-perm-1.c: New. - * gcc.target/powerpc/altivec-perm-2.c: New. - * gcc.target/powerpc/altivec-perm-4.c: New. - -2011-12-10 Joern Rennecke - - * gcc.target/epiphany/interrupt.c: Add dg-options "-g". - Add a scan-assembler-time clause to test for the interupt vector jump. - (f): Rename to ... - (dma0_handler): ... this. - -2011-12-10 Nathan Sidwell - - PR gcov-profile/51449 - * g++.dg/gcov/gcov-14.C: New. - -2011-12-09 Eric Botcazou - - * gcc.c-torture/compile/20111209-1.c: New test. - -2011-12-09 Jason Merrill - - PR c++/51151 - * g++.dg/warn/Woverflow-4.C: New. - -2011-12-09 Dodji Seketeli - - PR c++/51289 - * g++.dg/cpp0x/alias-decl-17.C: New test. - -2011-12-09 Michael Meissner - - * gcc.target/powerpc/recip-5.c: Disable running on any system that - does not support VSX. - - * gcc.target/powerpc/ppc-target-4.c: New file to test target - specific functions enabling target specific builtins. - -2011-12-09 Michael Zolotukhin - - * gcc.dg/vect/slp-13.c: Array size increase reverted. - * gcc.dg/vect/slp-24.c: Ditto. - * gcc.dg/vect/slp-3.c: Ditto. - * gcc.dg/vect/slp-34.c: Ditto. - * gcc.dg/vect/slp-4.c: Ditto. - * gcc.dg/vect/slp-cond-2.c: Ditto. - * gcc.dg/vect/slp-multitypes-11.c: Ditto. - * gcc.dg/vect/vect-1.c: Ditto. - * gcc.dg/vect/vect-10.c: Ditto. - * gcc.dg/vect/vect-105.c: Ditto. - * gcc.dg/vect/vect-112.c: Ditto. - * gcc.dg/vect/vect-15.c: Ditto. - * gcc.dg/vect/vect-2.c: Ditto. - * gcc.dg/vect/vect-31.c: Ditto. - * gcc.dg/vect/vect-32.c: Ditto. - * gcc.dg/vect/vect-33.c: Ditto. - * gcc.dg/vect/vect-34.c: Ditto. - * gcc.dg/vect/vect-35.c: Ditto. - * gcc.dg/vect/vect-36.c: Ditto. - * gcc.dg/vect/vect-6.c: Ditto. - * gcc.dg/vect/vect-73.c: Ditto. - * gcc.dg/vect/vect-74.c: Ditto. - * gcc.dg/vect/vect-75.c: Ditto. - * gcc.dg/vect/vect-76.c: Ditto. - * gcc.dg/vect/vect-80.c: Ditto. - * gcc.dg/vect/vect-85.c: Ditto. - * gcc.dg/vect/vect-89.c: Ditto. - * gcc.dg/vect/vect-97.c: Ditto. - * gcc.dg/vect/vect-98.c: Ditto. - * gcc.dg/vect/vect-all.c: Ditto. - * gcc.dg/vect/vect-double-reduc-6.c: Ditto. - * gcc.dg/vect/vect-iv-8.c: Ditto. - * gcc.dg/vect/vect-iv-8a.c: Ditto. - * gcc.dg/vect/vect-outer-1.c: Ditto. - * gcc.dg/vect/vect-outer-1a.c: Ditto. - * gcc.dg/vect/vect-outer-1b.c: Ditto. - * gcc.dg/vect/vect-outer-2.c: Ditto. - * gcc.dg/vect/vect-outer-2a.c: Ditto. - * gcc.dg/vect/vect-outer-2c.c: Ditto. - * gcc.dg/vect/vect-outer-3.c: Ditto. - * gcc.dg/vect/vect-outer-3a.c: Ditto. - * gcc.dg/vect/vect-outer-4a.c: Ditto. - * gcc.dg/vect/vect-outer-4b.c: Ditto. - * gcc.dg/vect/vect-outer-4c.c: Ditto. - * gcc.dg/vect/vect-outer-4d.c: Ditto. - * gcc.dg/vect/vect-outer-4m.c: Ditto. - * gcc.dg/vect/vect-outer-fir-lb.c: Ditto. - * gcc.dg/vect/vect-outer-fir.c: Ditto. - * gcc.dg/vect/vect-over-widen-1.c: Ditto. - * gcc.dg/vect/vect-over-widen-2.c: Ditto. - * gcc.dg/vect/vect-over-widen-3.c: Ditto. - * gcc.dg/vect/vect-over-widen-4.c: Ditto. - * gcc.dg/vect/vect-reduc-1char.c: Ditto. - * gcc.dg/vect/vect-reduc-2char.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1b.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1c.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-2b.c: Ditto. - * gcc.dg/vect/vect-shift-2.c: Ditto. - * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Ditto. - * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Ditto. - * gcc.dg/vect/slp-13-big-array.c: New test. - * gcc.dg/vect/slp-24-big-array.c: Ditto. - * gcc.dg/vect/slp-3-big-array.c: Ditto. - * gcc.dg/vect/slp-34-big-array.c: Ditto. - * gcc.dg/vect/slp-4-big-array.c: Ditto. - * gcc.dg/vect/slp-cond-2-big-array.c: Ditto. - * gcc.dg/vect/slp-multitypes-11-big-array.c: Ditto. - * gcc.dg/vect/vect-1-big-array.c: Ditto. - * gcc.dg/vect/vect-10-big-array.c: Ditto. - * gcc.dg/vect/vect-105-big-array.c: Ditto. - * gcc.dg/vect/vect-112-big-array.c: Ditto. - * gcc.dg/vect/vect-15-big-array.c: Ditto. - * gcc.dg/vect/vect-2-big-array.c: Ditto. - * gcc.dg/vect/vect-31-big-array.c: Ditto. - * gcc.dg/vect/vect-32-big-array.c: Ditto. - * gcc.dg/vect/vect-33-big-array.c: Ditto. - * gcc.dg/vect/vect-34-big-array.c: Ditto. - * gcc.dg/vect/vect-35-big-array.c: Ditto. - * gcc.dg/vect/vect-36-big-array.c: Ditto. - * gcc.dg/vect/vect-6-big-array.c: Ditto. - * gcc.dg/vect/vect-73-big-array.c: Ditto. - * gcc.dg/vect/vect-74-big-array.c: Ditto. - * gcc.dg/vect/vect-75-big-array.c: Ditto. - * gcc.dg/vect/vect-76-big-array.c: Ditto. - * gcc.dg/vect/vect-80-big-array.c: Ditto. - * gcc.dg/vect/vect-85-big-array.c: Ditto. - * gcc.dg/vect/vect-89-big-array.c: Ditto. - * gcc.dg/vect/vect-97-big-array.c: Ditto. - * gcc.dg/vect/vect-98-big-array.c: Ditto. - * gcc.dg/vect/vect-all-big-array.c: Ditto. - * gcc.dg/vect/vect-double-reduc-6-big-array.c: Ditto. - * gcc.dg/vect/vect-iv-8-big-array.c: Ditto. - * gcc.dg/vect/vect-iv-8a-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-1-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-1a-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-1b-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-2-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-2a-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-2c-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-3-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-3a-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-4a-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-4b-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-4c-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-4d-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-4m-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-fir-lb-big-array.c: Ditto. - * gcc.dg/vect/vect-outer-fir-big-array.c: Ditto. - * gcc.dg/vect/vect-over-widen-1-big-array.c: Ditto. - * gcc.dg/vect/vect-over-widen-2-big-array.c: Ditto. - * gcc.dg/vect/vect-over-widen-3-big-array.c: Ditto. - * gcc.dg/vect/vect-over-widen-4-big-array.c: Ditto. - * gcc.dg/vect/vect-reduc-1char-big-array.c: Ditto. - * gcc.dg/vect/vect-reduc-2char-big-array.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Ditto. - * gcc.dg/vect/vect-shift-2-big-array.c: Ditto. - * gcc.dg/vect/vect-strided-a-u8-i8-gap2-big-array.c: Ditto. - * gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap2-big-array.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c: Ditto. - -2011-12-09 Richard Guenther - - PR lto/48042 - * g++.dg/lto/pr48042_0.C: New testcase. - -2011-12-09 Richard Guenther - - PR tree-optimization/51482 - * g++.dg/torture/pr51482.C: New testcase. - -2011-12-08 Andrew Pinski - - * gcc.target/mips/mult-1.c: Forbid all Octeon processors. - * gcc.target/mips/dmult-1.c: Likewise. - * gcc.target/mips/branch-1.c: Likewise. - * gcc.target/mips/extend-1.c: Likewise. - -2011-12-08 Jason Merrill - - PR c++/51318 - * g++.dg/template/cond8.C: New. - - PR c++/51459 - * g++.dg/cpp0x/lambda/lambda-template4.C: New. - -2011-12-08 Jakub Jelinek - - PR tree-optimization/51466 - * gcc.c-torture/execute/pr51466.c: New test. - -2011-12-08 Tobias Burnus - - PR fortran/50815 - * gfortran.dg/bounds_check_16.f90: New. - -2011-12-08 Tobias Burnus - - PR fortran/51378 - * gfortran.dg/private_type_14.f90: New. - -2011-12-08 Tobias Burnus - - PR fortran/51407 - * gfortran.dg/io_real_boz_3.f90: New. - * gfortran.dg/io_real_boz_4.f90: New. - * gfortran.dg/io_real_boz_5.f90: New. - -2011-12-08 Tobias Burnus - - PR fortran/51448 - * gfortran.dg/realloc_on_assign_8.f90: New. - -2011-12-08 Teresa Johnson - - * gcc.target/i386/movdi-rex64.c: Remove unnecessary unused label. - -2011-12-08 Teresa Johnson - - * gcc.target/i386/movdi-rex64.c: Remove unnecessary - -Wwrite-strings option. - -2011-12-08 Teresa Johnson - - * gcc.target/i386/movdi-rex64.c: New. - -2011-12-08 Richard Guenther - - * gcc.dg/volatile3.c: New testcase. - -2011-12-08 Georg-Johann Lay - - PR tree-optimization/51315 - * gcc.c-torture/execute/20111208-1.c (int16_t): Use __INT16_TYPE__ - for typedef. - (int32_t): Use __INT32_TYPE__ for typedef. - -2011-12-08 Georg-Johann Lay - - PR tree-optimization/51315 - * gcc.c-torture/execute/20111208-1.c: Fix wrong assumption - sizeof(int)==4. - -2011-12-08 Richard Guenther - - PR lto/50747 - * g++.dg/opt/pr50747-1_0.C: New testcase. - * g++.dg/opt/pr50747-2_0.C: Likewise. - -2011-12-08 Eric Botcazou - - * gcc.c-torture/execute/20111208-1.c: New test. - -2011-12-08 Richard Guenther - - PR lto/48437 - * gcc.dg/lto/20111207-2_0.c: New testcase. - * gcc.dg/guality/pr48437.c: Likewise. - -2011-12-07 Jakub Jelinek - - PR c++/51401 - * g++.dg/cpp0x/auto7.C: Adjust expected error message. - * g++.dg/cpp0x/auto29.C: New test. - - PR c++/51429 - * g++.dg/parse/error45.C: New test. - - PR c++/51229 - * g++.dg/ext/desig3.C: New test. - - PR c++/51369 - * g++.dg/cpp0x/constexpr-51369.C: New test. - -2011-12-07 Andrew Pinski - - PR middle-end/45416 - * gcc.dg/pr45416.c: New testcase. - -2011-12-07 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/51420 - * g++.dg/cpp0x/pr51420.C: New. - -2011-12-07 Richard Guenther - - PR lto/48100 - * gcc.dg/lto/20111207-1_0.c: New testcase. - * gcc.dg/lto/20111207-1_1.c: Likewise. - * gcc.dg/lto/20111207-1_2.c: Likewise. - * gcc.dg/lto/20111207-1_3.c: Likewise. - -2011-12-07 Richard Guenther - - PR tree-optimization/50823 - * gcc.dg/torture/pr50823.c: New testcase. - -2011-12-07 Martin Jambor - - PR tree-optimization/50744 - * gcc.dg/ipa/pr50744.c: New test. - -2011-12-06 Jakub Jelinek - - PR c++/51430 - * g++.dg/template/static32.C: New test. - -2011-12-06 Uros Bizjak - - * g++.dg/opt/pr51396.C: Use dg-additional-options. - -2011-12-06 Tobias Burnus - - PR fortran/51435 - * gfortran.dg/default_initialization_5.f90: New. - -2011-12-06 Jakub Jelinek - - PR target/51354 - * gcc.c-torture/compile/pr51354.c: New test. - -2011-12-06 Paolo Carlini - - PR c++/51431 - * g++.dg/other/abstract3.C: New. - -2011-12-06 Richard Guenther - - PR tree-optimization/49997 - * gcc.dg/torture/pr49997.c: New testcase. - -2011-12-06 Richard Guenther - - PR middle-end/51436 - * g++.dg/torture/pr51436.C: New testcase. - -2011-12-06 Richard Guenther - - PR tree-optimization/51245 - * gcc.dg/torture/pr51245.c: New testcase. - -2011-12-06 Dodji Seketeli - - PR c++/51427 - * g++.dg/diagnostic/wrong-tag-1.C - -2011-12-05 Fabien Chêne - - PR c++/51319 - * g++.dg/lookup/using50.C: New. - * g++.dg/lookup/using51.C: New. - -2011-12-05 Jakub Jelinek - - PR tree-optimization/51396 - * g++.dg/opt/pr51396.C: New test. - - PR debug/51410 - * gcc.dg/debug/dwarf2/pr51410.c: New test. - - PR c/51339 - * gcc.dg/gomp/pr51339.c: New test. - -2011-12-05 Paolo Carlini - - PR c++/51399 - * g++.dg/cpp0x/initlist62.C: New. - -2011-12-05 Thomas Koenig - - PR fortran/51338 - * gfortran.dg/assumed_charlen_substring_1.f90: New test. - -2011-12-05 Richard Sandiford - - * g++.dg/debug/pr46338.C: Add dg-require-profiling. - * g++.dg/torture/pr39732.C: Likewise. - * g++.dg/torture/pr40642.C: Likewise. - * gcc.c-torture/compile/pr44686.c: Likewise. - * gcc.dg/20050309-1.c: Likewise. - * gcc.dg/20050330-2.c: Likewise. - * gcc.dg/20051201-1.c: Likewise. - * gcc.dg/gomp/pr27573.c: Likewise. - * gcc.dg/pr46255.c: Likewise. - * gcc.dg/profile-dir-1.c: Likewise. - * gcc.dg/profile-dir-2.c: Likewise. - * gcc.dg/profile-dir-3.c: Likewise. - * gcc.dg/profile-generate-1.c: Likewise. - * gfortran.dg/gomp/pr27573.f90: Likewise. - * gcc.dg/profile-generate-3.c: Be specific about the type of - profiling required. - -2011-12-05 Paolo Carlini - - PR c++/51414 - * g++.dg/ext/underlying_type11.C: New. - -2011-12-05 Uros Bizjak - - PR testsuite/51128 - * gcc.dg/torture/pr23821.c: Skip if -fno-fat-lto-objects was passed. - * gcc.dg/torture/pr39074.c: Ditto. - * gcc.dg/torture/pr39074-2.c: Ditto. - * gcc.dg/torture/pr42898.c: Ditto. - * gcc.dg/torture/pr42898-2.c: Ditto. - * gcc.dg/torture/pr45704.c: Ditto. - * gcc.dg/torture/pr50472.c: Ditto. - * gcc.dg/torture/pta-callused-1.c: Ditto. - * gcc.dg/torture/pta-ptrarith-1.c: Ditto. - * gcc.dg/torture/pta-ptrarith-2.c: Ditto. - * gcc.dg/torture/pta-ptrarith-3.c: Ditto. - * gcc.dg/torture/pta-escape-1.c: Ditto. - * gcc.dg/torture/ipa-pta-1.c: Ditto. - * gcc.dg/torture/ssa-pta-fn-1.c: Ditto. - -2011-12-05 Kazu Hirata - - PR target/51408 - * gcc.dg/pr51408.c: New. - -2011-12-05 Jason Merrill - - * g++.dg/cpp0x/dc6.C: New. - -2011-12-05 Ville Voutilainen - Pedro Lamarão - - * g++.dg/cpp0x/dc1.C: New test. - * g++.dg/cpp0x/dc2.C: New test. - * g++.dg/cpp0x/dc3.C: New test. - * g++.dg/cpp0x/dc4.C: New test. - * g++.dg/cpp0x/dc5.C: New test. - * g++.dg/template/meminit1.C: Adjust expected error. - -2011-12-05 Paolo Carlini - - PR c++/51404 - * g++.dg/cpp0x/auto28.C: New. - -2011-12-05 Matthew Gretton-Dann - - * gcc.dg/torture/vec-cvt-1.c (FLTTEST): Call rand instead of random. - -2011-12-05 Jakub Jelinek - Eric Botcazou - - PR middle-end/51323 - PR middle-end/50074 - * gcc.c-torture/execute/pr51323.c: New test. - -2011-12-04 Tobias Burnus - - PR fortran/51383 - * gfortran.dg/associate_10.f90: New. - -2011-12-04 Ira Rosen - - PR middle-end/51285 - * gfortran.dg/vect/pr51285.f90: New test. - -2011-12-04 Uros Bizjak - Jérémie Detrey - - PR target/51393 - * gcc.target/i386/pr51393.c: New test. - -2011-12-03 Dominique d'Humieres - - PR obj-c++/51349 - * obj-c++.dg/naming-3.mm: Adjust for changing error messages. - * obj-c++.dg/naming-4.mm: Likewise. - -2011-12-03 Jack Howarth - - * gcc.dg/darwin-segaddr.c: Use -no-pie. - -2011-12-03 Paolo Carlini - - PR c++/51313 - * g++.dg/cpp0x/pr51313.C: New. - -2011-12-03 Tobias Burnus - - PR fortran/48887 - * gfortran.dg/select_type_24.f90: New. - * gfortran.dg/select_type_23.f03: Add dg-error. - * gfortran.dg/class_45a.f03: Add missing TARGET attribute. - -2011-12-03 Jakub Jelinek - - * gcc.dg/vect/vect-122.c: New test. - -2011-12-03 Tobias Burnus - - PR fortran/50684 - * gfortran.dg/move_alloc_8.f90: New. - -2011-12-03 Tobias Burnus - - * gfortran.dg/select_type_23.f03: Revert Rev. 181801, - i.e. remove the dg-error line. - * gfortran.dg/move_alloc_5.f90: Ditto and change back to dg-do run. - * gfortran.dg/move_alloc_9.f90: New. - * gfortran.dg/move_alloc_10.f90: New - -2011-12-02 Nathan Sidwell - - * lib/gcov.exp (verify-lines): Allow = as a count char. - * g++.dg/gcov/gcov-13.C: New. - -2011-12-02 Michael Zolotukhin - - * gcc.dg/vect/slp-13.c: Increase array size, add initialization. - * gcc.dg/vect/slp-24.c: Ditto. - * gcc.dg/vect/slp-3.c: Likewise and fix scans. - * gcc.dg/vect/slp-34.c: Ditto. - * gcc.dg/vect/slp-4.c: Ditto. - * gcc.dg/vect/slp-cond-2.c: Ditto. - * gcc.dg/vect/slp-multitypes-11.c: Ditto. - * gcc.dg/vect/vect-1.c: Ditto. - * gcc.dg/vect/vect-10.c: Ditto. - * gcc.dg/vect/vect-105.c: Ditto. - * gcc.dg/vect/vect-112.c: Ditto. - * gcc.dg/vect/vect-15.c: Ditto. - * gcc.dg/vect/vect-2.c: Ditto. - * gcc.dg/vect/vect-31.c: Ditto. - * gcc.dg/vect/vect-32.c: Ditto. - * gcc.dg/vect/vect-33.c: Ditto. - * gcc.dg/vect/vect-34.c: Ditto. - * gcc.dg/vect/vect-35.c: Ditto. - * gcc.dg/vect/vect-36.c: Ditto. - * gcc.dg/vect/vect-6.c: Ditto. - * gcc.dg/vect/vect-73.c: Ditto. - * gcc.dg/vect/vect-74.c: Ditto. - * gcc.dg/vect/vect-75.c: Ditto. - * gcc.dg/vect/vect-76.c: Ditto. - * gcc.dg/vect/vect-80.c: Ditto. - * gcc.dg/vect/vect-85.c: Ditto. - * gcc.dg/vect/vect-89.c: Ditto. - * gcc.dg/vect/vect-97.c: Ditto. - * gcc.dg/vect/vect-98.c: Ditto. - * gcc.dg/vect/vect-all.c: Ditto. - * gcc.dg/vect/vect-double-reduc-6.c: Ditto. - * gcc.dg/vect/vect-iv-8.c: Ditto. - * gcc.dg/vect/vect-iv-8a.c: Ditto. - * gcc.dg/vect/vect-outer-1.c: Ditto. - * gcc.dg/vect/vect-outer-1a.c: Ditto. - * gcc.dg/vect/vect-outer-1b.c: Ditto. - * gcc.dg/vect/vect-outer-2.c: Ditto. - * gcc.dg/vect/vect-outer-2a.c: Ditto. - * gcc.dg/vect/vect-outer-2c.c: Ditto. - * gcc.dg/vect/vect-outer-3.c: Ditto. - * gcc.dg/vect/vect-outer-3a.c: Ditto. - * gcc.dg/vect/vect-outer-4a.c: Ditto. - * gcc.dg/vect/vect-outer-4b.c: Ditto. - * gcc.dg/vect/vect-outer-4c.c: Ditto. - * gcc.dg/vect/vect-outer-4d.c: Ditto. - * gcc.dg/vect/vect-outer-4m.c: Ditto. - * gcc.dg/vect/vect-outer-fir-lb.c: Ditto. - * gcc.dg/vect/vect-outer-fir.c: Ditto. - * gcc.dg/vect/vect-over-widen-1.c: Ditto. - * gcc.dg/vect/vect-over-widen-2.c: Ditto. - * gcc.dg/vect/vect-over-widen-3.c: Ditto. - * gcc.dg/vect/vect-over-widen-4.c: Ditto. - * gcc.dg/vect/vect-reduc-1char.c: Ditto. - * gcc.dg/vect/vect-reduc-2char.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1b.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-1c.c: Ditto. - * gcc.dg/vect/vect-reduc-pattern-2b.c: Ditto. - * gcc.dg/vect/vect-shift-2.c: Ditto. - * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Ditto. - * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Ditto. - * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Ditto. - -2011-12-02 Georg-Johann Lay - - * gcc.c-torture/execute/vector-subscript-1.c (main): Fix - __builtin_memcpy arguments to honor sizeof(a). - -2011-12-02 Joseph Myers - - * gcc.c-torture/execute/doloop-1.c, - gcc.c-torture/execute/doloop-2.c: New tests. - -2011-12-02 Martin Jambor - - PR tree-optimization/50622 - * g++.dg/tree-ssa/pr50622.C: New test. - -2011-12-01 Jason Merrill - - * g++.dg/cpp0x/initlist61.C: New. - -2011-12-01 Paolo Carlini - - PR c++/51326 - * g++.dg/inherit/crash3.C: New. - -2011-12-01 Nathan Sidwell - - PR gcov-profile/51113 - * lib/gcov.exp (verify-lines): Add support for xfailing. - (run-gcov): Likewise. - * gcc.misc-tests/gcov-13.c: Xfail weak function. - * gcc.misc-tests/gcov-16.c: Remove. - * gcc.misc-tests/gcov-17.c: Remove. - * g++.dg/gcov-8.C: Remove. - * g++.dg/gcov-9.C: Remove. - * g++.dg/gcovpart-12b.C: New. - * g++.dg/gcov-12.C: New. - -2011-12-01 Andrew Pinski - - PR lto/51198 - * g++.dg/torture/pr51198.C: New testcase. - -2011-12-01 Jakub Jelinek - - PR tree-optimization/51246 - * gcc.c-torture/compile/pr51246.c: New test. - - PR rtl-optimization/51014 - * g++.dg/opt/pr51014.C: New test. - -2011-12-01 Paolo Carlini - - PR c++/51367 - * g++.dg/template/error47.C: New. - -2011-11-30 Jason Merrill - - PR c++/51009 - * g++.dg/init/aggr8.C: New. - -2011-11-30 Jakub Jelinek - - PR target/50725 - * gcc.target/i386/pr50725.c: New test. - - PR middle-end/51089 - * gfortran.dg/gomp/pr51089.f90: New test. - -2011-11-30 Andrew Pinski - - * gcc.dg/pr51321.c: New testcase. - -2011-11-30 Jakub Jelinek - - PR rtl-optimization/48721 - * gcc.target/i386/pr48721.c: New test. - -2011-11-30 Paolo Carlini - - PR c++/51299 - * g++.dg/warn/Wzero-as-null-pointer-constant-4.C: New. - -2011-11-29 Jakub Jelinek - - PR tree-optimization/51247 - * gcc.c-torture/compile/pr51247.c: New test. - -2011-11-29 Andrew MacLeod - - PR target/50123 - * gcc.dg/atomic-op-optimize.c: New. Test for optimizations. - -2011-11-29 Yufeng Zhang - - Use complex floating-point constant in CDBL. - - * gcc.dg/compat/compat-common.h (CDBL): Replace 1i with 1.0i. - -2011-11-29 Tobias Burnus - - PR fortran/51306 - PR fortran/48700 - * gfortran.dg/move_alloc_5.f90: Add dg-error. - * gfortran.dg/select_type_23.f03: Add dg-error. - * gfortran.dg/move_alloc_6.f90: New. - * gfortran.dg/move_alloc_7.f90: New. - -2011-11-29 Ira Rosen - - PR tree-optimization/51301 - * gcc.dg/vect/pr51301.c: New test. - -2011-11-28 Uros Bizjak - - * g++.dg/cdce3.C: Use dg-additional-options. - -2011-11-28 Jakub Jelinek - - PR middle-end/50907 - * gcc.dg/tree-prof/pr50907.c: New test. - - PR tree-optimization/50078 - * gcc.dg/pr50078.c: New test. - - PR tree-optimization/50682 - * g++.dg/opt/pr50682.C: New test. - -2011-11-28 Tobias Burnus - - PR fortran/51308 - * gfortran.dg/iso_c_binding_compiler_4.f90: New. - -2011-11-27 Aldy Hernandez - Iain Sandoe - - * gcc.dg/lto/trans-mem-2_0.c: Add dg-lto-do link. Add dummy - functions for _ITM_registerTMCloneTable, _ITM_deregisterTMCloneTable. - * gcc.dg/lto/trans-mem-1_0.c: Add dg-lto-do link. - * gcc.dg/lto/trans-mem-1_1.c: Add dummy functions for - _ITM_registerTMCloneTable, _ITM_deregisterTMCloneTable. - -2011-11-27 Richard Sandiford - - * gcc.target/mips/mult-2.c, gcc.target/mips/mult-3.c, - gcc.target/mips/mult-4.c, gcc.target/mips/mult-5.c, - gcc.target/mips/mult-6.c, gcc.target/mips/mult-7.c, - gcc.target/mips/mult-8.c, gcc.target/mips/mult-9.c, - gcc.target/mips/mult-10.c, gcc.target/mips/mult-11.c, - gcc.target/mips/mult-12.c, gcc.target/mips/mult-13.c, - gcc.target/mips/mult-14.c, gcc.target/mips/mult-15.c, - gcc.target/mips/mult-16.c, gcc.target/mips/mult-17.c, - gcc.target/mips/mult-18.c, gcc.target/mips/mult-19.c, - gcc.target/mips/div-1.c, gcc.target/mips/div-2.c, - gcc.target/mips/div-3.c, gcc.target/mips/div-4.c, - gcc.target/mips/div-5.c, gcc.target/mips/div-6.c, - gcc.target/mips/div-7.c, gcc.target/mips/div-8.c, - gcc.target/mips/div-9.c, gcc.target/mips/div-10.c, - gcc.target/mips/div-11.c, gcc.target/mips/div-12.c: New tests. - * gcc.target/mips/fix-r4000-1.c (foo, bar): Add NOMIPS16. - * gcc.target/mips/fix-r4000-2.c (foo): Likewise. - * gcc.target/mips/fix-r4000-3.c (foo): Likewise. - * gcc.target/mips/fix-r4000-4.c (foo): Likewise. - * gcc.target/mips/fix-r4000-5.c (foo): Likewise. - * gcc.target/mips/fix-r4000-6.c (foo): Likewise. - * gcc.target/mips/fix-r4000-7.c (foo): Likewise. - * gcc.target/mips/fix-r4000-8.c (foo): Likewise. - * gcc.target/mips/fix-r4000-9.c (foo): Likewise. - * gcc.target/mips/fix-r4000-10.c (foo): Likewise. - * gcc.target/mips/fix-r4000-11.c (foo): Likewise. - * gcc.target/mips/fix-r4000-12.c (foo): Likewise. - -2011-11-27 Richard Sandiford - - * gcc.target/mips/mips.exp (mips-dg-options): Make -mno-dsp - imply -mno-dspr2. - * gcc.target/mips/no-dsp-1.c: New test. - * gcc.target/mips/soft-float-1.c: Likewise. - -2011-11-26 Jakub Jelinek - - PR rtl-optimization/49912 - * g++.dg/other/pr49912.C: New test. - -2011-11-26 Uros Bizjak - - * gcc.dg/vect/fast-math-vect-call-2.c: Require vect_double - effective target. - * gcc.dg/vect/fast-math-bb-slp-call-2.c: Ditto. - -2011-11-25 Mikael Morin - - PR fortran/51250 - PR fortran/43829 - * gfortran.dg/inline_sum_3.f90: New test. - -2011-11-25 Uros Bizjak - - PR testsuite/51258 - * lib/target-supports.exp - (check_effective_target_sync_long_long): Also supported on 32bit - x86 targets. Add comment about required dg-options. - Add alpha*-*-* targets. - (check_effective_target_sync_long_long_runtime): Ditto. - - * gcc.dg/atomic-op-4.c (dg-options): Add -march=pentium for - 32bit x86 targets. - * gcc.dg/atomic-compare-exchange-4.c: Ditto. - * gcc.dg/atomic-exchange-4.c: Ditto. - * gcc.dg/atomic-load-4.c: Ditto. - * gcc.dg/atomic-store-4.c: Ditto. - * gcc.dg/di-longlong64-sync-1.c: Ditto. - * gcc.dg/di-sync-multithread.c: Ditto. - * gcc.dg/simulate-thread/atomic-load-longlong.c: Ditto. - * gcc.dg/simulate-thread/atomic-other-longlong.c: Ditto. - -2011-11-25 Uros Bizjak - - PR testsuite/51258 - * lib/target-supports.exp - (check_effective_target_sync_int_128_runtime): New procedure. - (check_effective_target_sync_long_long_runtime): Ditto. - (check_effective_target_sync_long_long): Add arm*-*-*. - (check_effective_target_sync_longlong): Remove. - - * gcc.dg/atomic-op-5.c: Require sync_int_128_runtime effective target. - * gcc.dg/atomic-compare-exchange-5.c: Ditto. - * gcc.dg/atomic-exchange-5.c: Ditto. - * gcc.dg/atomic-load-5.c: Ditto. - * gcc.dg/atomic-store-5.c: Ditto. - * gcc.dg/simulate-thread/atomic-load-int128.c: Ditto. - * gcc.dg/simulate-thread/atomic-other-int128.c: Ditto. - * gcc.dg/atomic-op-4.c: Require sync_long_long_runtime - effective target. - * gcc.dg/atomic-compare-exchange-4.c: Ditto. - * gcc.dg/atomic-exchange-4.c: Ditto. - * gcc.dg/atomic-load-4.c: Ditto. - * gcc.dg/atomic-store-4.c: Ditto. - * gcc.dg/di-longlong64-sync-1.c: Ditto. - * gcc.dg/di-sync-multithread.c: Ditto. - * gcc.dg/simulate-thread/atomic-load-longlong.c: Ditto. - * gcc.dg/simulate-thread/atomic-other-longlong.c: Ditto. - -2011-11-25 Tobias Burnus - - PR fortran/50408 - * gfortran.dg/whole_file_35.f90: New. - -2011-11-25 Tobias Burnus - - PR fortran/51302 - * gfortran.dg/volatile13.f90: New. - -2011-11-24 Andrew MacLeod - - PR c/51256 - * gcc.dg/atomic-pr51256.c: New. Test error conditions. - -2011-11-24 Paolo Carlini - - PR c++/51227 - * g++.dg/cpp0x/lambda/lambda-ice5.C: New. - -2011-11-24 H.J. Lu - - PR target/51134 - * gcc.target/i386/sw-1.c: Revert revision 181357. - -2011-11-24 Tobias Burnus - - PR fortran/51218 - * gfortran.dg/implicit_pure_1.f90: New. - -2011-11-24 Rainer Orth - - PR testsuite/51258 - * gcc.dg/atomic-compare-exchange-5.c: Add -mcx16 on i?86-*-*. - * gcc.dg/atomic-exchange-5.c: Likewise. - * gcc.dg/atomic-load-5.c: Likewise. - * gcc.dg/atomic-op-5.c: Likewise. - * gcc.dg/atomic-store-5.c: Likewise. - * gcc.dg/simulate-thread/atomic-other-int128.c: Fix typo. - -2011-11-24 Jakub Jelinek - - PR rtl-optimization/50290 - * gcc.dg/pr50290.c: New test. - -2011-11-24 Paolo Carlini - - PR c++/51290 - * g++.dg/warn/Wzero-as-null-pointer-constant-3.C: New. - -2011-11-23 Jakub Jelinek - - PR target/51261 - * gcc.dg/pr51261.c: New test. - -2011-11-22 Dodji Seketeli - - PR c++/51145 - * g++.dg/cpp0x/alias-decl-14.C: New test. - * g++.dg/cpp0x/alias-decl-2.C: Adjust for tests that were wrongly - passing before. - * g++.dg/cpp0x/alias-decl-10.C: Likewise and adjust for diagnostic - change. - * g++.dg/ext/attrib27.C: Adjust for diagnostic change. - * g++.dg/lookup/struct1.C: Likewise. - * g++.dg/parse/elab1.C: Likewise. - * g++.dg/parse/elab2.C: Likewise. - * g++.dg/parse/int-as-enum1.C: Likewise. - * g++.dg/parse/typedef1.C: Likewise. - * g++.dg/parse/typedef3.C: Likewise. - * g++.dg/parse/typedef4.C: Likewise. - * g++.dg/parse/typedef5.C: Likewise. - * g++.dg/template/crash26.C: Likewise. - * g++.dg/template/nontype4.C: Likewise. - * g++.old-deja/g++.benjamin/typedef01.C: Likewise. - * g++.old-deja/g++.brendan/line1.C: Likewise. - * g++.old-deja/g++.other/elab1.C: Likewise. - * g++.old-deja/g++.other/syntax4.C: Likewise. - -2011-11-22 Tom de Vries - - PR rtl-optimization/50764 - * gcc.dg/pr50764.c: New test. - -2011-11-22 Paolo Carlini - - PR c++/51265 - * g++.dg/cpp0x/decltype36.C: New. - -2011-11-22 Jakub Jelinek - - PR tree-optimization/51074 - * gcc.dg/vect/pr51074.c: New test. - -2011-11-22 Dodji Seketeli - - PR c++/51143 - * g++.dg/cpp0x/alias-decl-16.C: New test. - -2011-11-22 Jakub Jelinek - - PR tree-optimization/50765 - * gcc.dg/pr50765.c: New test. - -2011-11-22 Matthew Gretton-Dann - - * gcc.dg/vshift-1.c (main): Call rand instead of random. - * gcc.dg/vshift-3.c (main): Likewise. - -2011-11-22 Iain Sandoe - - * gcc.dg/tm/20100615.c: Adjust for Darwin tm_clone_table section name. - -2011-11-22 Iain Sandoe - - * gcc.misc-tests/gcov-16.c: Adjust scan-assembler for Darwin. - * gcc.misc-tests/gcov-17.c: Likewise. - * g++.dg/gcov/gcov-8.C: Likewise. - * g++.dg/gcov/gcov-9.C: Likewise. - -2011-11-21 Torvald Riegel - - * g++.dg/tm/pr47747.C: New test. - -2011-11-21 Torvald Riegel - - * g++.dg/tm/template-2.C: New test. - -2011-11-21 Jakub Jelinek - - PR debug/50827 - * gcc.dg/pr50827.c: New test. - -2011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/50958 - * g++.dg/cpp0x/udlit-declare-neg.C: Adjust. - * g++.dg/cpp0x/udlit-implicit-conv-neg.C: New. - * g++.dg/cpp0x/udlit-member.C: Adjust. - * g++.dg/cpp0x/udlit-raw-length.C: New. - * g++.dg/cpp0x/udlit-raw-op-string-neg.C: Adjust. - * g++.dg/cpp0x/udlit-resolve.C: New. - * c-c++-common/dfp/pr33466.c: Adjust. - -2011-11-21 Rainer Orth - - * lib/target-supports.exp - (check_effective_target_ultrasparc_vis2_hw): Call check_runtime - with ultrasparc_vis2_hw. - (check_effective_target_ultrasparc_vis3_hw): Call check_runtime - with ultrasparc_vis3_hw. - -2011-11-21 Rainer Orth - - * c-c++-common/tm/malloc.c: Scan tree dumps for std::malloc if - *-*-solaris2* && c++. - -2011-11-20 Joey Ye - - * gcc.dg/volatile-bitfields-1.c: New. - -2011-11-20 Jason Merrill - - PR c++/48322 - * g++.dg/cpp0x/variadic120.C: New. - * g++.dg/cpp0x/sfinae26.C: Adjust. - - * g++.dg/cpp0x/sfinae11.C: Adjust. - * g++.dg/cpp0x/sfinae26.C: Adjust. - * g++.dg/template/unify11.C: Adjust. - -2011-11-20 Paolo Carlini - - PR c++/51230 - * g++.dg/template/error46.C: New. - -2011-11-20 Uros Bizjak - - PR target/51235 - * gcc.target/i386/pr51235.c: New test. - - PR target/51236 - * gcc.target/i386/pr51236.c: New test. - -2011-11-20 Eric Botcazou - - * gnat.dg/discr32.adb: New test. - * gnat.dg/discr32_pkg.ads: New helper. - -2011-11-20 Nathan Sidwell - - PR gcov-profile/51113 - * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage - * gcc.misc-tests/gcov-16.c: New. - * gcc.misc-tests/gcov-17.c: New. - * g++.dg/gcov/gcov-8.C: New. - * g++.dg/gcov/gcov-9.C: New. - * g++.dg/gcov/gcov-10.C: New. - -2011-11-20 Dodji Seketeli - - PR c++/51194 - * g++.dg/cpp0x/alias-decl-15.C: New test. - -2011-11-19 Paolo Carlini - - PR c++/51216 - * g++.dg/cpp0x/pr51216.C: New. - -2011-11-19 Eric Botcazou - - * gcc.dg/delay-slot-2.c: New test. - -2011-11-18 Joseph Myers - - * gcc.dg/cpp/assert4.c: Test __linux__, not __gnu_linux__. - -2011-11-18 Fabien Chêne - - PR c++/51188 - * g++.dg/lookup/using46.C: New. - * g++.dg/lookup/using47.C: New. - * g++.dg/lookup/using48.C: New. - * g++.dg/lookup/using49.C: New. - * g++.dg/lookup/using50.C: New. - -2011-11-18 Ulrich Weigand - - * gcc.c-torture/compile/pr44707.c: Do not assume assembler - supports /* ... */ comments. - -2011-11-18 Paolo Carlini - - PR c++/51150 - * g++.dg/cpp0x/pr51150.C: New. - -2011-11-18 Martin Jambor - - PR tree-optimization/50605 - * g++.dg/ipa/pr50605.C: New test. - -2011-11-18 Dodji Seketeli - - PR c++/51191 - * g++.dg/cpp0x/alias-decl-13.C: New test. - -2011-11-17 Jason Merrill - - PR c++/51186 - * g++.dg/cpp0x/auto27.C: New. - * g++.dg/cpp0x/trailing2.C: Adjust messages. - -2011-11-17 Andrew MacLeod - - * gcc.dg/atomic-generic-aux.c (__atomic_compare_exchange): Fail if - memory model parameters don't match expected values. - * gcc.dg/atomic-generic.c: Pass specific memory model parameters to - __atomic_compare_exchange. - * gcc.dg/atomic-noinline.c: Pass specific memory model parameters to - __atomic_compare_exchange_n. - * gcc.dg/atomic-noinline-aux.c (__atomic_compare_exchange_2): Remove - weak/strong parameter and fail if memory models aren't correct. - -2011-10-17 Uros Bizjak - - * lib/gcc-simulate-thread.exp (simulate-thread): Run on all targets. - Look for simulate_thread_done to determine working gdb. Reduce timeout - to 10 seconds and fail when timeout occurs. Improve error messages. - -2011-11-17 Jason Merrill - - PR c++/51137 - * g++.dg/template/virtual2.C: New. - -2011-11-17 Michael Matz - - PR middle-end/50644 - PR middle-end/50741 - * g++.dg/tree-ssa/pr50741.C: New. - -2011-11-17 Rainer Orth - - * lib/gcc-simulate-thread.exp (simulate-thread): Skip on alpha*-*-*. - -2011-10-16 Uros Bizjak - - * gcc.dg/tm/memopt-6.c: Cleanup tmedge tree dump. - * gcc.dg/tm/memopt-13.c: Cleanup tmmark tree dump. - * g++.dg/eh/array1.C: Cleanup gimple tree dump. - -2011-11-16 Tobias Burnus - - PR fortran/39427 - PR fortran/37829 - * gfortran.dg/constructor_1.f90: New. - * gfortran.dg/constructor_2.f90: New. - * gfortran.dg/constructor_3.f90: New. - * gfortran.dg/constructor_4.f90: New. - * gfortran.dg/constructor_5.f90: New. - * gfortran.dg/constructor_6.f90: New. - * gfortran.dg/use_only_5.f90: New. - * gfortran.dg/c_ptr_tests_17.f90: New. - * gfortran.dg/c_ptr_tests_18.f90: New. - * gfortran.dg/used_types_25.f90: New. - * gfortran.dg/used_types_26.f90: New - * gfortran.dg/type_decl_3.f90: New. - * gfortran.dg/function_types_3.f90: Update dg-error. - * gfortran.dg/result_1.f90: Ditto. - * gfortran.dg/structure_constructor_3.f03: Ditto. - * gfortran.dg/structure_constructor_4.f03: Ditto. - -2011-10-16 Matthew Gretton-Dann - - * gcc.dg/vect/pr30858.c: Update expected output for - architectures with multiple vector sizes. - -2011-11-16 Richard Earnshaw - Bernd Schmidt - Sebastian Huber - - PR target/49641 - * gcc.target/arm/pr49641.c: New test. - -2011-11-16 Razya Ladelsky - - PR tree-optimization/49960 - * gcc.dg/autopar/pr49960.c: New test. - * gcc.dg/autopar/pr49960-1.c: New test. - - -2011-11-16 Tom de Vries - - * gcc.dg/pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump. - * gcc.dg/pr43864-2.c: Same. - * gcc.dg/pr43864-3.c: Same. - * gcc.dg/pr43864-4.c: Same. - -2011-11-15 Uros Bizjak - - * gcc.target/i386/sse2-cvt-vec.c: New test. - * gcc.target/i386/avx-cvt-vec.c: Ditto. - * gcc.target/i386/avx-cvt-2-vec.c: Ditto. - * gcc.target/i386/avx-floor-sfix-2-vec.c: Ditto. - * gcc.target/i386/avx-ceil-sfix-2-vec.c: Ditto. - * gcc.target/i386/avx-rint-sfix-2-vec.c: Ditto. - * gcc.target/i386/avx-round-sfix-2-vec.c: Ditto. - -2011-11-15 Iain Sandoe - - * lib/gcc-simulate-thread.exp (simulate-thread): Do not run on - powerpc*-*-darwin* targets. - -2011-11-15 Torvald Riegel - - * c-c++-common/tm/trxn-expr-3.c: New test. - -2011-11-14 Torvald Riegel - - * g++.dg/tm/template-1.C: Add cleanup-tree-dump. Fix typo in comment. - -2011-11-14 Uros Bizjak - - * gcc.target/i386/avx-recip-vec.c: New test. - * gcc.target/i386/avx-lrintf-vec.c: Ditto. - * gcc.target/i386/avx-lrint-vec.c: Ditto. - * gcc.target/i386/avx-floorf-vec.c: Include sse4_1-floorf-vec.c. - * gcc.target/i386/avx-floor-vec.c: Include sse4_1-floor-vec.c. - * gcc.target/i386/avx-ceilf-vec.c: Include sse4_1-ceilf-vec.c. - * gcc.target/i386/avx-ceil-vec.c: Include sse4_1-ceil-vec.c. - * gcc.target/i386/avx-rintf-vec.c: Include sse4_1-rintf-vec.c. - * gcc.target/i386/avx-rint-vec.c: Include sse4_1-rint-vec.c. - * gcc.target/i386/avx-roundf-vec.c: Include sse4_1-roundf-vec.c. - * gcc.target/i386/avx-round-vec.c: Include sse4_1-round-vec.c. - * gcc.target/i386/avx-truncf-vec.c: Include sse4_1-truncf-vec.c. - * gcc.target/i386/avx-trunc-vec.c: Include sse4_1-trunc-vec.c. - * gcc.target/i386/avx-copysignf-vec.c: Include sse-copysignf-vec.c. - * gcc.target/i386/avx-copysign-vec.c: Include sse2-copysign-vec.c. - -2011-11-14 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/51107 - * g++.dg/cpp0x/udlit-args-neg.C: Add check for void argument - non-template literal operator. - -2011-11-14 Uros Bizjak - - * gcc.target/i386/sse4_1-floor-sfix-vec.c: New test. - * gcc.target/i386/sse4_1-floorf-sfix-vec.c: Ditto. - * gcc.target/i386/avx-floor-sfix-vec.c: Ditto. - * gcc.target/i386/avx-floorf-sfix-vec.c: Ditto. - * gcc.target/i386/sse4_1-ceil-sfix-vec.c: Ditto. - * gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Ditto. - * gcc.target/i386/avx-ceil-sfix-vec.c: Ditto. - * gcc.target/i386/avx-ceilf-sfix-vec.c: Ditto. - * gcc.target/i386/sse4_1-rint-sfix-vec.c: Ditto. - * gcc.target/i386/sse4_1-rintf-sfix-vec.c: Ditto. - * gcc.target/i386/avx-rint-sfix-vec.c: Ditto. - * gcc.target/i386/avx-rintf-sfix-vec.c: Ditto. - * gcc.target/i386/sse4_1-round-sfix-vec.c: Ditto. - * gcc.target/i386/sse4_1-roundf-sfix-vec.c: Ditto. - * gcc.target/i386/avx-round-sfix-vec.c: Ditto. - * gcc.target/i386/avx-roundf-sfix-vec.c: Ditto. - -2011-11-14 Fabien Chêne - - PR c++/6936 - PR c++/25994 - PR c++/26256 - PR c++/30195 - * g++.old-deja/g++.brendan/misc14.C: Adjust. - * g++.old-deja/g++.jason/scoping16.C: Likewise. - * g++.old-deja/g++.other/anon7.C: Likewise. - * g++.old-deja/g++.other/using1.C: Likewise. - * g++.old-deja/g++.other/redecl1.C: Likewise. - * g++.old-deja/g++.other/typedef7.C: Likewise. - * g++.old-deja/g++.bugs/900127_02.C: Likewise. - * g++.dg/template/using2.C: Likewise. - * g++.dg/template/static4.C: Likewise. - * g++.dg/template/typedef1.C: Likewise. - * g++.dg/lookup/name-clash9.C: Likewise. - * g++.dg/abi/mangle41.C: Likewise. - * g++.dg/parse/ctor5.C: Likewise. - * g++.dg/inherit/using4.C: Likewise. - * g++.dg/lookup/using24.C: New. - * g++.dg/lookup/using25.C: New. - * g++.dg/lookup/using26.C: New. - * g++.dg/lookup/using27.C: New. - * g++.dg/lookup/using28.C: New. - * g++.dg/lookup/using29.C: New. - * g++.dg/lookup/using30.C: New. - * g++.dg/lookup/using31.C: New. - * g++.dg/lookup/using32.C: New. - * g++.dg/lookup/using33.C: New. - * g++.dg/lookup/using34.C: New. - * g++.dg/lookup/using35.C: New. - * g++.dg/lookup/using36.C: New. - * g++.dg/lookup/using37.C: New. - * g++.dg/lookup/using38.C: New. - * g++.dg/lookup/using39.C: New. - * g++.dg/lookup/using40.C: New. - * g++.dg/lookup/using41.C: New. - * g++.dg/lookup/using42.C: New. - * g++.dg/lookup/using43.C: New. - * g++.dg/lookup/using44.C: New. - * g++.dg/lookup/using45.C: New. - * g++.dg/lookup/pr6936.C: New. - * g++.dg/debug/using4.C: New. - * g++.dg/debug/using5.C: New. - * g++.dg/cpp0x/forw_enum10.C: New. - -2011-11-14 Zolotukhin Michael - Jan Hubicka - - * gcc.target/i386/sw-1.c: Force rep;movsb. - -2011-11-14 Iain Sandoe - - PR testsuite/51059 - * gcc.misc-tests/gcov-14.c (dg-options): Adjust to use - dg-additional-options. - -2011-11-13 Oleg Endo - - * gcc.target/sh/pr21255-2-ml.c: Skip if -mb or -m5* is - specified. Remove redundant runtime checks. - * gcc.target/sh/20080410-1.c: Skip if -mb is specified. - Allow for other than -m4. Fix typos in comments. - -2011-11-12 Jason Merrill - - PR c++/986 - * g++.dg/warn/ref-temp1.C: New. - - PR c++/51060 - * g++.dg/opt/stack2.C: New. - -2011-11-12 Uros Bizjak - - * lib/gcc-simulate-thread.exp (simulate-thread): Do not run on - alpha*-*-linux* targets. - -2011-11-12 Iain Sandoe - - PR testsuite/51059 - * gcc.misc-tests/gcov-14.c (dg-options): Force flat namespace for - Darwin targets and allow external symbols to be undefined. - -2011-11-12 Nathan Sidwell - - * gcc.misc-tests/gcov-15.c: New. - -2011-11-11 Jakub Jelinek - - PR tree-optimization/51058 - * gcc.dg/vect/fast-math-vect-call-1.c: Add f4 test. - * gfortran.dg/vect/pr51058-2.f90: New test. - -2011-11-10 Jason Merrill - - * g++.dg/template/linkage1.C: New. - * g++.dg/ext/visibility/anon8.C: Adjust for C++11. - * g++.old-deja/g++.other/linkage4.C: Likewise. - - PR c++/50973 - * g++.dg/cpp0x/defaulted33.C: New. - -2011-11-10 Andrew MacLeod - - PR middle-end/51038 - * gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models. - * gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and - __atomic_clear. - -2011-11-10 Andrew MacLeod - - PR rtl-optimization/51040 - * testsuite/gcc.dg/atomic-noinline[-aux].c: Test no-inline NAND and - patchup code. - -2011-11-10 Jason Merrill - - PR c++/51079 - * g++.dg/template/conv12.C: New. - - PR debug/50983 - * gcc.dg/debug/dwarf2/asm-line1.c: New. - -2011-11-10 Eric Botcazou - - * gnat.dg/atomic6_1.adb: New test. - * gnat.dg/atomic6_2.adb: Likewise. - * gnat.dg/atomic6_3.adb: Likewise. - * gnat.dg/atomic6_4.adb: Likewise. - * gnat.dg/atomic6_5.adb: Likewise. - * gnat.dg/atomic6_6.adb: Likewise. - * gnat.dg/atomic6_7.adb: Likewise. - * gnat.dg/atomic6_8.adb: Likewise. - * gnat.dg/atomic6_pkg.ads: New helper. - -2011-11-10 Jakub Jelinek - - PR middle-end/51077 - * gcc.c-torture/compile/pr51077.c: New test. - - PR rtl-optimization/51023 - * gcc.c-torture/execute/pr51023.c: New test. - -2011-11-10 Richard Guenther - - PR tree-optimization/51042 - * gcc.dg/torture/pr51042.c: New testcase. - -2011-11-10 Richard Guenther - - PR tree-optimization/51070 - * gcc.dg/torture/pr51070.c: New testcase. - -2011-11-10 Richard Guenther - - PR tree-optimization/51030 - * gcc.dg/tree-ssa/phi-opt-6.c: New testcase. - -2011-11-10 Richard Guenther - - PR middle-end/51071 - * gcc.dg/torture/pr51071.c: New testcase. - -2011-11-10 Eric Botcazou - - * gnat.dg/loop_optimization9.ad[sb]: New test. - -2011-11-10 Ira Rosen - - PR tree-optimization/51058 - * gfortran.dg/vect/pr51058.f90: New test. - -2011-11-10 Jakub Jelinek - - PR tree-optimization/51000 - * gcc.dg/vect/pr51000.c: New test. - -2011-11-09 Paolo Carlini - - PR c++/50837 - * g++.dg/cpp0x/static_assert5.C: New. - * g++.dg/template/nontype13.C: Tweak. - -2011-11-09 Jason Merrill - - PR c++/50972 - * g++.dg/cpp0x/noexcept16.C: New. - - PR c++/51046 - * g++.dg/cpp0x/variadic119.C: New. - -2011-11-09 Jakub Jelinek - - PR target/50911 - * gcc.dg/torture/vshuf-16.inc: Add interleave low and high - permutations. - * gcc.dg/torture/vshuf-32.inc: Likewise. - * gcc.dg/torture/vshuf-4.inc: Likewise. - * gcc.dg/torture/vshuf-8.inc: Likewise. - - * gcc.dg/tm/memopt-1.c: Fix up regexp. - -2011-11-09 Ian Lance Taylor - - * lib/target-supports.exp (check_effective_target_ucontext_h): New - procedure. - * gcc.dg/split-5.c: New test. - -2011-11-09 Patrick Marlier - - * gcc.dg/tm/memopt-1.c: Adjust regexp. - -2011-11-09 Jason Merrill - - PR c++/51029 - * g++.dg/template/virtual1.C: New. - -2011-11-08 Jason Merrill - - Run most C++ tests in both C++98 and C++11 modes. - * lib/target-supports.exp (check_effective_target_c++11): New. - (check_effective_target_c++98): New. - * lib/g++-dg.exp (g++-dg-runtest): New. - * g++.dg/dg.exp: Use g++-dg-runtest. - * g++.dg/charset/charset.exp: Likewise. - * g++.dg/debug/dwarf2/dwarf2.exp: Likewise. - * g++.dg/dfp/dfp.exp: Likewise. - * g++.dg/gcov/gcov.exp: Likewise. - * g++.dg/gomp/gomp.exp: Likewise. - * g++.dg/graphite/graphite.exp: Likewise. - * g++.dg/tls/tls.exp: Likewise. - * g++.dg/tm/tm.exp: Likewise. - * g++.dg/vect/vect.exp: Likewise. - * g++.old-deja/old-deja.exp: Likewise. - * g++.dg/simulate-thread/simulate-thread.exp: Pass -std flags - with some of the torture options. - * g++.dg/abi/mangle4.C: Move to template/nontype25.C. - * g++.dg/template/sfinae6_neg.C: Add C++11 error. - * g++.dg/init/null1.C: Only run in C++98. - * g++.dg/warn/Wconversion-null-3.C: Likewise. - * g++.old-deja/g++.benjamin/p12475.C: Likewise. - * g++.old-deja/g++.brendan/crash64.C: Likewise. - * g++.old-deja/g++.other/anon9.C: Likewise. - * g++.old-deja/g++.other/linkage1.C: Likewise. - * g++.old-deja/g++.other/linkage2.C: Likewise. - * g++.old-deja/g++.pt/t29.C: Likewise. - * g++.old-deja/g++.pt/t30.C: Likewise. - * g++.dg/cpp0x/variadic60.C: Only error in C++98. - * g++.dg/ext/anon-struct4.C: Likewise. - * g++.dg/init/brace2.C: Likewise. - * g++.dg/init/brace6.C: Likewise. - * g++.dg/other/anon3.C: Likewise. - * g++.dg/template/arg2.C: Likewise. - * g++.old-deja/g++.brendan/cvt1.C: Likewise. - * g++.old-deja/g++.brendan/enum11.C: Likewise. - * g++.old-deja/g++.brendan/enum8.C: Likewise. - * g++.old-deja/g++.brendan/enum9.C: Likewise. - * g++.old-deja/g++.brendan/friend3.C: Likewise. - * g++.old-deja/g++.brendan/init2.C: Likewise. - * g++.old-deja/g++.brendan/init4.C: Likewise. - * g++.old-deja/g++.brendan/misc14.C: Likewise. - * g++.old-deja/g++.jason/cond.C: Likewise. - * g++.old-deja/g++.law/init1.C: Likewise. - * g++.old-deja/g++.law/operators32.C: Likewise. - * g++.old-deja/g++.pt/enum6.C: Likewise. - * g++.old-deja/g++.pt/explicit70.C: Likewise. - * g++.old-deja/g++.pt/ptrmem6.C: Likewise. - - * g++.dg/eh/new1.C: Adjust for C++11 mode. - * g++.dg/init/new11.C: Likewise. - * g++.dg/init/pr29571.C: Likewise. - * g++.dg/lookup/forscope2.C: Likewise. - * g++.dg/parse/linkage1.C: Likewise. - * g++.dg/parse/typedef8.C: Likewise. - * g++.dg/template/error44.C: Likewise. - * g++.dg/tls/diag-2.C: Likewise. - * g++.dg/tls/diag-4.C: Likewise. - * g++.dg/warn/anonymous-namespace-3.C: Likewise. - * g++.old-deja/g++.abi/arraynew.C: Likewise. - * g++.old-deja/g++.abi/cxa_vec.C: Likewise. - * g++.old-deja/g++.brendan/new3.C: Likewise. - * g++.old-deja/g++.eh/new1.C: Likewise. - * g++.old-deja/g++.eh/new2.C: Likewise. - * g++.old-deja/g++.jason/new.C: Likewise. - * g++.old-deja/g++.law/friend1.C: Likewise. - * g++.old-deja/g++.mike/net46.C: Likewise. - * g++.old-deja/g++.mike/p755.C: Likewise. - * g++.old-deja/g++.other/new6.C: Likewise. - - * g++.dg/cpp0x/variadic74.C: Adjust diags. - * g++.dg/template/crash53.C: Likewise. - * g++.dg/template/void9.C: Likewise. - -2011-11-09 Paolo Carlini - - PR c++/51045 - * g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New. - -2011-11-09 Paolo Carlini - - PR c++/51047 - * g++.dg/cpp0x/sfinae29.C: New. - -2011-11-09 Janus Weil - - PR fortran/50960 - * gfortran.dg/typebound_call_22.f03: New test case. - -2011-11-09 Janne Blomqvist - - PR libfortran/50016 - * gfortran.dg/inquire_size.f90: Don't flush the unit. - -2011-11-09 Richard Guenther - - PR tree-optimization/51039 - * gcc.dg/pr51039.c: New testcase. - -2011-11-09 Jakub Jelinek - - * lib/target-supports.exp (check_effective_target_vect_cond_mixed): - Enable also for powerpc*-*-*. - -2011-11-09 Francois-Xavier Coudert - - PR fortran/50540 - * gfortran.dg/forall_16.f90: New test. - -2011-11-09 Francois-Xavier Coudert - - PR fortran/38718 - * gfortran.dg/initialization_29.f90: Expand test. - -2011-11-09 Dodji Seketeli - - PR c++/51027 - * g++.dg/cpp0x/alias-decl-12.C: New test. - * g++.dg/ext/alias-decl-attr4.C: Append missing ';'. - -2011-11-09 Dodji Seketeli - - PR debug/51032 - * g++.dg/cpp0x/alias-decl-debug-0.C: New test. - -2011-11-09 Ira Rosen - - PR tree-optimization/51015 - * gcc.dg/vect/pr51015.c: New test. - -2011-11-08 David S. Miller - - * lib/target-supports.exp (check_effective_target_sparc_vis): New. - (check_effective_target_vect_cmdline_needed): Use it when sparc*-*-* - -2011-11-08 Francois-Xavier Coudert - - PR fortran/50404 - * gfortran.dg/io_constraints_3.f90: Improve testcase. - -2011-11-08 Francois-Xavier Coudert - - PR fortran/50409 - * gfortran.dg/string_5.f90: Improve testcase. - -2011-10-23 Jason Merrill - - PR c++/50835 - * g++.dg/template/lvalue2.C: New. - -2011-11-08 Michael Matz - - * gcc.dg/tree-ssa/20031015-1.c: Adjust. - * g++.dg/tree-ssa/ehcleanup-1.C: Ditto. - * g++.dg/eh/builtin1.C: Rewrite to not use local variables. - * g++.dg/eh/builtin2.C: Ditto. - * g++.dg/eh/builtin3.C: Ditto. - -2011-11-08 Jakub Jelinek - - * gcc.target/i386/avx-cvt-2.c: Adjust for 32-byte integer vectors - being prefered even for -mavx. - * gcc.target/i386/avx-cvt-3.c: New test. - -2011-11-08 Richard Guenther - - PR tree-optimization/51012 - * gcc.dg/pr51012-1.c: New testcase. - * gcc.dg/pr51012-2.c: Likewise. - -2011-11-08 Richard Guenther - - PR middle-end/51010 - * c-c++-common/uninit-pr51010.c: New testcase. - -2011-11-08 Jakub Jelinek - - * lib/target-supports.exp (check_effective_target_vect_call_sqrtf, - check_effective_target_vect_call_copysignf, - check_effective_target_vect_call_lrint): New procedures. - * gcc.dg/vect/vect.exp: Run fast-math-bb-slp* tests using - $VECT_SLP_CFLAGS with -ffast-math. - * gcc.dg/vect/fast-math-vect-call-1.c: New test. - * gcc.dg/vect/fast-math-vect-call-2.c: New test. - * gcc.dg/vect/fast-math-bb-slp-call-1.c: New test. - * gcc.dg/vect/fast-math-bb-slp-call-2.c: New test. - -2011-11-07 Richard Henderson - Aldy Hernandez - Torvald Riegel - - Merged from transactional-memory. - - * g++.dg/dg.exp: Run transactional memory tests. - * g++.dg/tm: New directory with new tests. - * gcc.dg/tm: New directory with new tests. - * c-c++-common/tm: New directory with new tests. - -2011-11-08 Dodji Seketeli - - Fix context handling of alias-declaration - * g++.dg/cpp0x/alias-decl-11.C: New test. - -2011-11-08 Paolo Carlini - - PR c++/50864 - * g++.dg/parse/template26.C: New. - * g++.dg/template/crash45.C: Adjust dg-error string. - -2011-11-07 Jason Merrill - - PR c++/50848 - * g++.dg/template/lookup9.C: New. - - PR c++/50863 - * g++.dg/cpp0x/lambda/lambda-initlist1.C: New. - - PR c++/50870 - * g++.dg/cpp0x/decltype35.C: New. - -2011-11-07 Dodji Seketeli - - Support C++11 alias-declaration - PR c++/45114 - * g++.dg/cpp0x/alias-decl-0.C: New test case. - * g++.dg/cpp0x/alias-decl-1.C: Likewise. - * g++.dg/cpp0x/alias-decl-3.C: Likewise. - * g++.dg/cpp0x/alias-decl-4.C: Likewise. - * g++.dg/cpp0x/alias-decl-6.C: Likewise. - * g++.dg/cpp0x/alias-decl-7.C: Likewise. - * g++.dg/cpp0x/alias-decl-8.C: Likewise. - * g++.dg/cpp0x/alias-decl-9.C: Likewise. - * g++.dg/cpp0x/alias-decl-10.C: Likewise. - * g++.dg/ext/alias-decl-attr1.C: Likewise. - * g++.dg/ext/alias-decl-attr2.C: Likewise. - * g++.dg/ext/alias-decl-attr3.C: Likewise. - * g++.dg/ext/alias-decl-attr4.C: Likewise. - -2011-11-07 Eric Botcazou - - * gcc.dg/pragma-align-2.c: Compile with -std=gnu99. - -2011-11-07 Janus Weil - - PR fortran/50919 - * gfortran.dg/typebound_call_21.f03: New. - -2011-11-07 Nathan Sidwell - - * gcc.dg/profile-dir-1.c: Adjust final scan. - * gcc.dg/profile-dir-2.c: Adjust final scan. - * gcc.dg/profile-dir-3.c: Adjust final scan. - * gcc.misc-tests/gcov.exp: Adjust regexp. - * gcc.misc-tests/gcov-12.c: New. - * gcc.misc-tests/gcov-13.c: New. - * gcc.misc-tests/gcovpart-13b.c: New. - * gcc.misc-tests/gcov-14.c: New. - -2011-11-07 Jason Merrill - - PR c++/35688 - * g++.dg/ext/visibility/template8.C: New. - -2011-11-07 Jakub Jelinek - - PR tree-optimization/50789 - * gcc.target/i386/avx2-gather-1.c: New test. - * gcc.target/i386/avx2-gather-2.c: New test. - * gcc.target/i386/avx2-gather-3.c: New test. - * gcc.target/i386/avx2-gather-4.c: New test. - -2011-11-07 Uros Bizjak - - * gcc.target/i386/pr49781-1.c (dg-options): Add -mtune=generic. - -2011-11-07 Janne Blomqvist - - PR libfortran/45723 - * gfortran.dg/open_dev_null.f90: Remove testcase. - -2011-11-07 Uros Bizjak - - * lib/target-supports.exp (check_effective_target_sync_int_128): - Don't cache the result. - (check_effective_target_sync_long_long): Ditto. - -2011-11-07 Sergey Ostanevich - - PR rtl-optimization/47698 - * gcc.target/i386/47698.c: New test. - -2011-11-06 Jason Merrill - - PR c++/35688 - * g++.dg/ext/visibility/template7.C: New. - -2011-11-07 Terry Guo - - * gcc.target/arm/wmul-1.c: Adjust optimization level. - * gcc.target/arm/wmul-2.c: Ditto. - * gcc.target/arm/wmul-3.c: Ditto. - * gcc.target/arm/wmul-4.c: Ditto. - -2011-11-06 Joseph Myers - - * g++.dg/cpp0x/alignof3.C, gcc.dg/c1x-align-1.c, - gcc.dg/c1x-align-2.c, gcc.dg/c1x-align-3.c, gcc.dg/c1x-align-4.c, - gcc.dg/c90-align-1.c, gcc.dg/c99-align-1.c: New tests. - * gcc.dg/gnu89-const-expr-1.c, gcc.dg/gnu90-const-expr-1.c, - gcc.dg/gnu99-const-expr-1.c, gcc.dg/gnu99-static-1.c: Update - expected diagnostics. - -2011-11-06 Andrew MacLeod - Richard Henderson - Aldy Hernandez - - Merged from cxx-mem-model. - - * lib/target-supports.exp (check_effective_target_sync_int_128, - check_effective_target_sync_long_long): Check whether the target - supports 64 and 128 bit __sync builtins. - (check_effective_target_cas_char): New. - (check_effective_target_cas_int): New. - * gcc.dg/dg.exp: Exclude simulate-thread tests. - * gcc.dg/atomic-noinline[-aux].c: New. Make a variety of atomics calls. - * gcc.dg/atomic-generic[-aux].c: New. Test that generic functions - produce the expected library calls. - * gcc.dg/atomic-fence.c: New functional tests. - * gcc.dg/atomic-param.c: New. Checl for illegal number of parameters. - * gcc.dg/atomic-invalid.c: New. Test invalid parameters. - * gcc.dg/atomic-lockfree[-aux].c: New tests. - * gcc.dg/atomic-compare-exchange-{1-5}.c: New functional tests. - * gcc.dg/atomic-op-[1-5].c: New. Test atomic fetch functionality. - * gcc.dg/atomic-exchange-{1-5}.c: New functional tests. - * gcc.dg/atomic-load-{1-5}.c: New functional tests. - * gcc.dg/atomic-store-{1-5}.c: New functional tests. - * gcc.dg/simulate-thread/atomic-load-int128.c: New. Verify int128 loads - are atomic. - * gcc.dg/simulate-thread/atomic-load-longlong.c: New. Verify 8 byte - loads are atomic. - * gcc.dg/simulate-thread/atomic-load-int.c: New. Verify 4 byte loads - are atomic. - * gcc.dg/simulate-thread/atomic-load-short.c: New. Verify 2 byte loads - are atomic. - * gcc.dg/simulate-thread/atomic-other-int128.c: New. Verify other - int128 operations are atomic. - * gcc.dg/simulate-thread/atomic-other-int.c: New. Verify other 4 byte - operations are atomic. - * gcc.dg/simulate-thread/atomic-other-longlong.c: New. Verify 8 byte - operations are atomic. - * gcc.dg/simulate-thread/atomic-other-short.c: New. Verify other 2 byte - operations are atomic. - * gcc.dg/simulate-thread/speculative-store.c: New. Verify speculative - stores aren't moved out of a loop. - * gcc.dg/simulate-thread/strict-align-global.c: New. Verify small - globals don't overwrite neighbouring globals. - * gcc.dg/simulate-thread/subfields.c: New. Verify struct component - writes dont overwrite neighbouring components. - * c-c++-common/gomp/atomic-10.c: Use cas_int; match __atomic builtin. - * c-c++-common/gomp/atomic-3.c: Likewise. - * c-c++-common/gomp/atomic-9.c: Likewise. - * gcc.dg/gomp/atomic-1.c, gcc.dg/gomp/atomic-2.c, - gcc.dg/gomp/atomic-3.c, gcc.dg/gomp/atomic-4.c, gcc.dg/gomp/atomic-7.c, - gcc.dg/gomp/atomic-8.c, gcc.dg/gomp/atomic-9.c, - gcc.dg/gomp/atomic-10.c, gcc.dg/gomp/atomic-12.c, - gcc.dg/gomp/atomic-13.c, gcc.dg/gomp/atomic-14.c, - gcc.dg/gomp/atomic-15.c: Move to c-c++-common/gomp/. - * g++.dg/gomp/atomic-1.C, g++.dg/gomp/atomic-2.C, - g++.dg/gomp/atomic-3.C, g++.dg/gomp/atomic-4.C, g++.dg/gomp/atomic-7.C, - g++.dg/gomp/atomic-8.C, g++.dg/gomp/atomic-9.C, - g++.dg/gomp/atomic-10.C, g++.dg/gomp/atomic-11.C, - g++.dg/gomp/atomic-12.C, g++.dg/gomp/atomic-13.C, - g++.dg/gomp/atomic-15.C: Remove. - * gcc.dg/gomp/gomp.exp, g++.dg/gomp/gomp.exp: Run c-c++-common tests. - * gcc.dg/gomp/atomic-11.c: Remove test. - -2011-11-06 Ira Rosen - - * gcc.dg/vect/bb-slp-cond-1.c: New test. - * gcc.dg/vect/slp-cond-1.c: New test. - * gcc.dg/vect/slp-cond-2.c: New test. - -2011-11-05 David S. Miller - - * lib/test-supports.exp - (check_effective_target_ultrasparc_vis2_hw): New proc. - (check_effective_target_ultrasparc_vis3_hw): New proc. - * gcc.target/sparc/vec-init-1.inc: New vector init common code. - * gcc.target/sparc/vec-init-2.inc: Likewise. - * gcc.target/sparc/vec-init-3.inc: Likewise. - * gcc.target/sparc/vec-init-1-vis1.c: New test. - * gcc.target/sparc/vec-init-1-vis2.c: New test. - * gcc.target/sparc/vec-init-1-vis3.c: New test. - * gcc.target/sparc/vec-init-2-vis1.c: New test. - * gcc.target/sparc/vec-init-2-vis2.c: New test. - * gcc.target/sparc/vec-init-2-vis3.c: New test. - * gcc.target/sparc/vec-init-3-vis1.c: New test. - * gcc.target/sparc/vec-init-3-vis2.c: New test. - * gcc.target/sparc/vec-init-3-vis3.c: New test. - -2011-11-05 Joern Rennecke - - * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: - Disable test on Epiphany. - * gcc.c-torture/execute/20101011-1.c: Disable test on Epiphany. - * gcc.dg/stack-usage-1.c [__epiphany__] (SIZE): Define. - * gcc.dg/pragma-pack-3.c: Disable test on Epiphany. - * g++.dg/parse/pragma3.C: Likewise. - * stackalign/builtin-apply-2.c (STACK_ARGUMENTS_SIZE): Define. - (bar): Use it. - * gcc.dg/weak/typeof-2.c [epiphany-*-*]: Add option -mshort-calls. - * gcc.dg/tls/thr-cse-1.c: Likewise. - * g++.dg/opt/devirt2.C: Likewise. - * gcc.dg/20020312-2.c [epiphany-*-*] (PIC_REG): Define. - * gcc.dg/builtin-apply2.c [__epiphany__]: (STACK_ARGUMENTS_SIZE): 20. - * gcc.target/epiphany: New directory. - -2011-11-05 Tobias Burnus - - * gfortran.dg/quad_2.f90: New. - -2011-11-05 Eric Botcazou - - * gcc.dg/strlenopt-22g.c: New wrapper around... - * gcc.dg/strlenopt-22.c: ...this. Do not define USE_GNU and adjust. - -2011-11-04 Jason Merrill - - PR c++/26714 - * g++.dg/init/lifetime2.C: New. - * g++.dg/cpp0x/initlist-lifetime2.C: New. - - PR c++/48370 - * g++.dg/init/lifetime1.C: Test cleanup order. - -2011-11-04 Eric Botcazou - - * g++.dg/other/offsetof7.C: New test. - -2011-11-04 Hans-Peter Nilsson - - * lib/gcc-dg.exp (gcc_force_conventional_output): New global - variable, default empty, -ffat-lto-objects for effective_target_lto. - (gcc-dg-test-1): Add options from dg-final methods. - * lib/scanasm.exp (scan-assembler_required_options) - (scan-assembler-not_required_options): New procs. - -2011-10-09 Magnus Fromreide - - * g++.dg/cpp0x/enum21a.C: Test that enum x { y, } does - generate a pedwarn in c++98-mode. - * g++.dg/cpp0x/enum21b.C: Test that enum x { y, } - don't generate a pedwarn in c++0x-mode. - -2011-11-04 Olivier Goffart - - PR c++/50965 - * g++.dg/cpp0x/nsdmi1.C: Add more cases. - -2011-11-04 Jiangning Liu - - PR rtl-optimization/38644 - * gcc.target/arm/stack-red-zone.c: New. - -2011-11-04 Paolo Carlini - - PR c++/48420 - * g++.dg/warn/Wconversion-null-3.C: New. - -2011-11-04 Ed Smith-Rowland <3dw4rd@verizon.net> - - PR c++/50941 - * g++.dg/cpp0x/udlit-strint-length.C: New. - -2011-11-04 Jason Merrill - - PR c++/48370 - * g++.dg/cpp0x/initlist-lifetime1.C: New. - * g++.dg/init/lifetime1.C: New. - * g++.dg/init/ref21.C: New. - * g++.dg/eh/array1.C: New. - -2011-11-04 Tom de Vries - - PR tree-optimization/50763 - * gcc.dg/pr50763-5.c: New test. - -2011-11-04 Tom de Vries - - PR tree-optimization/50763 - * g++.dg/pr50763-4.C: New test. - -2011-11-04 Jakub Jelinek - - * gcc.dg/torture/vec-cvt-1.c: Enable commented out inttoflttestui - test. - - * gcc.dg/torture/vec-cvt-1.c: Enable flttointtestui test. - - * gcc.dg/torture/vec-cvt-1.c: New test. - -2011-11-04 Eric Botcazou - - * gnat.dg/specs/private1[-sub].ads: New test. - -2011-11-04 Mikael Morin - - PR fortran/43829 - * gfortran.dg/function_optimize_7.f90: Disable sum inlining. - * gfortran.dg/inline_sum_1.f90: New. - * gfortran.dg/inline_sum_2.f90: New. - * gfortran.dg/inline_sum_bounds_check_1.f90: New. - * gfortran.dg/inline_sum_bounds_check_2.f90: New. - * gfortran.dg/inline_product_1.f90: New. - -2011-11-03 Tobias Burnus - - PR fortran/50933 - * gfortran.dg/bind_c_dts_5.f90: New. - -2011-11-03 Tobias Burnus - - PR fortran/50960 - * gfortran.dg/module_parameter_array_refs_2.f90: New. - -2011-11-03 Richard Guenther - - PR middle-end/50079 - * g++.dg/init/copy7.C: Remove testcase. - -2011-11-03 Martin Jambor - - * g++.dg/ipa/devirt-c-1.C: Add dump scans. - * g++.dg/ipa/devirt-c-2.C: Likewise. - * g++.dg/ipa/devirt-c-7.C: New test. - * g++.dg/ipa/devirt-c-8.C: Likewise. - -2011-11-03 Ira Rosen - - PR tree-optimization/50912 - * gnat.dg/loop_optimization10.ad[sb]: New test. - * gnat.dg/loop_optimization10_pkg.ads: New helper. - -2011-11-02 Jason Merrill - - PR c++/50930 - * g++.dg/cpp0x/nsdmi-list2.C: New. - -2011-11-02 Paolo Carlini - - PR c++/50810 - * g++.dg/cpp0x/warn_cxx0x2.C: New. - * g++.dg/cpp0x/warn_cxx0x3.C: Likewise. - -2011-11-02 Tom de Vries - - PR tree-optimization/50769 - * gfortran.dg/pr50769.f90: New test. - -2011-11-02 Eric Botcazou - - * gcc.target/sparc/20111102-1.c: New test. - -2011-11-02 Paolo Carlini - - PR c++/50956 - * g++.dg/warn/Wcast-qual2.C: New. - -2011-11-02 Tom de Vries - - PR tree-optimization/50763 - * g++.dg/pr50763-3.C: New test. - -2011-11-02 Tom de Vries - - PR tree-optimization/50672 - * g++.dg/pr50672.C: New test. - -2011-11-02 Uros Bizjak - - * gcc.target/i386/avx-cvt-2.c (dg-options): Add -mtune=generic. - * gcc.target/i386/avx2-cvt-2.c (dg-options): Ditto. - * gcc.target/i386/sse2-cvt-2.c (dg-options): Ditto. - - * gcc.target/i386/vectorize4-avx.c (scan-assembler): Remove xfail. - -2011-11-02 Richard Guenther - - PR tree-optimization/50902 - * gcc.dg/torture/pr50902.c: New testcase. - -2010-11-02 Richard Guenther - - PR tree-optimization/50890 - * gcc.dg/torture/pr50890.c: New testcase. - -2011-11-01 Paolo Carlini - - PR c++/44277 - * g++.dg/warn/Wzero-as-null-pointer-constant-1.C: New. - * g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C: Likewise. - -2011-11-01 Tom de Vries - - PR tree-optimization/50908 - * gcc.dg/pr50908.c: New test. - * gcc.dg/pr50908-2.c: Same. - * gcc.dg/pr50908-3.c: Same. - -2011-11-01 Ira Rosen - - * gcc.dg/vect/no-scevccp-outer-6-global.c: Expect to vectorize - the outer loop. Remove comment. Don't check for widen-mult. - -2011-10-31 Martin Jambor - - * gcc.dg/ipa/ipcp-4.c: New test. - -2011-10-31 Jakub Jelinek - - * gcc.dg/vshift-3.c: New test. - * gcc.dg/vshift-4.c: New test. - * gcc.dg/vshift-5.c: New test. - -2011-10-31 Janne Blomqvist - - * gfortran.dg/inquire_5.f90: Update testcase to match the standard - and current implementation. - -2011-10-31 Paul Brook - - * gcc.dg/constructor-1.c: New test. - -2011-10-30 Steven G. Kargl - - PR fortran/50753 - * gfortran.dg/dshift_3.f90: New test. - -2011-10-30 John David Anglin - - * gcc.dg/scal-to-vec2.c (dg-options): Add -fno-common to options on - hppa*-*-hpux*. - * gcc.dg/torture/vshuf-v8hi.c: Likewise. - * gcc.dg/torture/vshuf-v4si.c: Likewise. - * gcc.dg/torture/vshuf-v8si.c: Likewise. - * gcc.dg/torture/vshuf-v32qi.c: Likewise. - * gcc.dg/torture/vshuf-v4di.c: Likewise. - * gcc.dg/torture/vshuf-v2df.c: Likewise. - * gcc.dg/torture/vshuf-v16qi.c: Likewise. - * gcc.dg/torture/vshuf-v4sf.c: Likewise. - * gcc.dg/torture/vshuf-v8sf.c: Likewise. - * gcc.dg/torture/vshuf-v2di.c: Likewise. - * gcc.dg/torture/vshuf-v16hi.c: Likewise. - * gcc.dg/torture/vshuf-v4df.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-31.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-33.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-34.c: Likewise. - * gcc.dg/vector-compare-2.c: Likewise. - -2011-10-29 Paolo Carlini - - PR c++/50901 - * g++.dg/cpp0x/pr50901.C: New. - -2011-10-29 Uros Bizjak - - * gcc.target/i386/fma-check.h (main): Use return 0 instead of exit (0). - * gcc.target/i386/fma4-check.h (main): Ditto. - * gcc.target/i386/xop-check.h (main): Ditto. - -2011-10-28 Paolo Carlini - - Revert: - 2011-10-28 Paolo Carlini - - PR c++/50864 - * g++.dg/template/crash109.C: New. - -2011-10-28 Jason Merrill - - * c-c++-common/dfp/pr33466.c: Adjust for user-defined literals. - -2011-10-28 Paolo Carlini - - PR c++/50864 - * g++.dg/template/crash109.C: New. - -2011-10-28 Steven G. Kargl - - * gfortran.dg/nearest_5.f90: New test. - -2011-10-28 Jakub Jelinek - - * gcc.dg/vshift-1.c: New test. - * gcc.dg/vshift-2.c: New test. - * gcc.target/i386/xop-vshift-1.c: New test. - * gcc.target/i386/xop-vshift-2.c: New test. - * gcc.target/i386/avx2-vshift-1.c: New test. - -2011-10-28 Chung-Lin Tang - - PR rtl-optimization/49720 - * g++.dg/torture/pr49720.C: New test. - -2011-10-27 David S. Miller - - * gcc.target/sparc/setcc-3.c: New test. - -2011-10-27 Roberto Agostino Vitillo - - PR c++/30066 - * g++.dg/ext/visibility/fvisibility-inlines-hidden-4.C: New test. - -2011-10-27 Jakub Jelinek - - * gcc.target/i386/sse2-cvt-1.c: New test. - * gcc.target/i386/sse2-cvt-2.c: New test. - * gcc.target/i386/avx-cvt-1.c: New test. - * gcc.target/i386/avx-cvt-2.c: New test. - * gcc.target/i386/avx2-cvt-1.c: New test. - * gcc.target/i386/avx2-cvt-2.c: New test. - -2011-10-27 Martin Jambor - - * g++.dg/tree-ssa/pr45605.C: Scan fre1 dump and unxfail. - -2011-10-27 Uros Bizjak - Steven G. Kargl - - PR target/50875 - * gfortran.dg/pr50875.f90: New test. - -2011-10-26 David S. Miller - - * gcc.target/sparc/fmaf-1.c: New test. - - * gcc.target/sparc/setcc-1.c: New test. - * gcc.target/sparc/setcc-2.c: New test. - -2011-10-26 Joseph Myers - - * gcc.dg/tls/thr-cse-1.c: For i?86-*-mingw*, check for multiple calls. - -2011-10-26 Joseph Myers - - * gcc.dg/graphite/run-id-1.c: Pass -Wl,--stack,12582912 option for - Windows targets. - -2011-10-26 Joseph Myers - - * gcc.target/i386/pr37843-4.c: Allow for leading underscores on - symbol names. - -2011-10-26 Joseph Myers - - * gcc.target/i386/pad-4.c: Skip for Windows targets. - -2011-10-26 Eric Botcazou - - * gnat.dg/specs/discr1.ads: New test. - * gnat.dg/specs/discr1_pkg.ads: New helper. - -2011-10-26 Eric Botcazou - - * gnat.dg/specs/unchecked_union.ads: Rename to... - * gnat.dg/specs/unchecked_union1.ads: ...this. - * gnat.dg/specs/unchecked_union2.ads: New test. - -2011-10-26 Eric Botcazou - - * gnat.dg/specs/atomic1.ads: New test. - -2011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net> - - Implement C++11 user-defined literals. - * g++.dg/cpp0x/udlit-addr.C: New. - * g++.dg/cpp0x/udlit-args.C: New. - * g++.dg/cpp0x/udlit-args-neg.C: New. - * g++.dg/cpp0x/udlit-clink-neg.C: New. - * g++.dg/cpp0x/udlit-concat.C: New. - * g++.dg/cpp0x/udlit-concat-neg.C: New. - * g++.dg/cpp0x/udlit-constexpr.C: New. - * g++.dg/cpp0x/udlit-cpp98-neg.C: New. - * g++.dg/cpp0x/udlit-declare-neg.C: New. - * g++.dg/cpp0x/udlit-friend.C: New. - * g++.dg/cpp0x/udlit-general.C: New. - * g++.dg/cpp0x/udlit-inline.C: New. - * g++.dg/cpp0x/udlit-linkage-neg.C: New. - * g++.dg/cpp0x/udlit-member-neg.C: New. - * g++.dg/cpp0x/udlit-namespace.C: New. - * g++.dg/cpp0x/udlit-nofunc-neg.C: New. - * g++.dg/cpp0x/udlit-nonempty-str-neg.C: New. - * g++.dg/cpp0x/udlit-nospace-neg.C: New. - * g++.dg/cpp0x/udlit-nosuffix-neg.C: New. - * g++.dg/cpp0x/udlit-nounder-neg.C: New. - * g++.dg/cpp0x/udlit-operator-neg.C: New. - * g++.dg/cpp0x/udlit-raw-str.C: New. - * g++.dg/cpp0x/udlit-shadow-neg.C: New. - * g++.dg/cpp0x/udlit-suffix-neg.C: New. - * g++.dg/cpp0x/udlit-systemheader.C: New. - * g++.dg/cpp0x/udlit-template.C: New. - * g++.dg/cpp0x/udlit-tmpl-arg.C: New. - * g++.dg/cpp0x/udlit-tmpl-arg-neg.C: New. - * g++.dg/cpp0x/udlit-tmpl-parms.C: New. - * g++.dg/cpp0x/udlit-tmpl-parms-neg.C: New. - * g++.dg/cpp0x/udlit_system_header: New. - -2011-10-26 Paolo Carlini - - PR c++/50870 - * g++.dg/cpp0x/decltype34.C: New. - -2011-10-26 Tom de Vries - - * gcc.c-torture/unsorted/HIcmp.c: Fix unaligned pointer. - * gcc.c-torture/unsorted/HIset.c: Same. - * gcc.c-torture/unsorted/SIcmp.c: Same. - * gcc.c-torture/unsorted/SIset.c: Same. - * gcc.c-torture/unsorted/SFset.c: Same. - * gcc.c-torture/unsorted/UHIcmp.c: Same. - * gcc.c-torture/unsorted/USIcmp.c: Same. - * gcc.c-torture/unsorted/DFcmp.c: Same. - -2011-10-26 Jakub Jelinek - - * gcc.target/i386/avx2-i32gatherd-1.c: Adjust scan-assembler regex - to work also with -masm=intel and additionally test the xmm vs. ymm - register type combination on mask/dest and in vsib. - * gcc.target/i386/avx2-i32gatherd256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherd256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherd-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherps-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherps256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherps256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherps-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherq-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherq256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherq256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherq-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherd-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherd256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherd256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherd-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherps-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherps256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherps256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherps-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherq-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherq256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherq256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherq-3.c: Likewise. - -2011-10-26 Tom de Vries - - PR tree-optimization/50763 - * gcc.dg/pr50763-2.c: New test. - -2011-10-25 Joseph Myers - - * gcc.dg/format/ms_c90-printf-1.c, gcc.dg/format/ms_c90-scanf-1.c: - Update expected messages. - -2011-10-25 Eric Botcazou - - * gcc.dg/vect/slp-multitypes-2.c: Do not XFAIL on SPARC 32-bit. - -2011-10-25 Jason Merrill - - PR c++/50866 - * g++.dg/init/aggr7.C: New. - - PR c++/49996 - * g++.dg/cpp0x/initlist59.C: New. - -2011-10-25 Paolo Carlini - - PR c++/50858 - * g++.dg/overload/operator5.C: New. - -2011-10-25 Paolo Carlini - - PR c++/50861 - * g++.dg/template/crash108.C: New. - -2011-10-25 Jakub Jelinek - - PR tree-optimization/50596 - * gcc.dg/vect/vect-cond-10.c: New test. - -2011-10-24 Joey Ye - - * gcc.target/arm/pr42575.c: Remove architecture option. - -2011-10-24 David S. Miller - - * gcc.target/sparc/vis3move-1.c: New test. - * gcc.target/sparc/vis3move-2.c: New test. - * gcc.target/sparc/vis3move-3.c: New test. - -2011-10-24 Andreas Krebbel - - * gcc.dg/strlenopt-22.c: New testcase. - * gcc.dg/strlenopt-4.c: Change scan value for s390(x). - -2011-10-24 Uros Bizjak - - * gcc.target/i386/sse-5.c (dg-options): Add -mno-sse. - Remove -march=i386. - (dg-skip-if): Remove. - * gcc.target/i386/funcspec-1.c: Ditto. - * gcc.target/i386/funcspec-3.c (dg-options): Add -mno-sse3. - -2011-10-24 Richard Guenther - - * gcc.dg/vect/vect-bool-1.c: New testcase. - -2011-10-24 Richard Guenther - - PR tree-optimization/50838 - * gcc.dg/torture/pr50838.c: New testcase. - -2011-10-24 Ira Rosen - - PR tree-optimization/50730 - * gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: New test. - * gcc.dg/vect/vect.exp: Run no-tree-sra-bb-slp* tests with - -fno-tree-sra and SLP flags. - -2011-10-23 Paolo Carlini - - PR c++/50841 - Revert: - 2011-10-23 Paolo Carlini - - PR c++/50810 - * g++.dg/cpp0x/warn_cxx0x2.C: New. - * g++.dg/cpp0x/warn_cxx0x3.C: Likewise. - -2011-10-23 Paolo Carlini - - PR c++/50810 - * g++.dg/cpp0x/warn_cxx0x2.C: New. - * g++.dg/cpp0x/warn_cxx0x3.C: Likewise. - -2011-10-23 Tom de Vries - - PR tree-optimization/50763 - * gcc.dg/pr50763.c: New test. - -2011-10-23 Uros Bizjak - - PR target/50788 - * gcc.target/i386/pr50788.c: New test. - -2011-10-23 Ira Rosen - - PR tree-optimization/50819 - * g++.dg/vect/vect.exp: Set target dependent flags for slp-* tests. - * g++.dg/vect/slp-pr50819.cc: New test. - -2011-10-21 Paolo Carlini - - PR c++/45385 - * g++.dg/warn/Wconversion4.C: New. - -2011-10-21 Jakub Jelinek - - PR target/50813 - * gcc.dg/torture/vshuf-32.inc: Add broadcast permutation - from element other than first and reverse permutation. - * gcc.dg/torture/vshuf-16.inc: Likewise. - * gcc.dg/torture/vshuf-8.inc: Likewise. - * gcc.dg/torture/vshuf-4.inc: Likewise. - -2011-10-21 Paolo Carlini - - PR c++/31423 - * g++.dg/parse/error43.C: New. - * g++.dg/parse/error44.C: Likewise. - -2011-10-21 H.J. Lu - Kirill Yukhin - - PR target/50740 - * gcc.target/i386/avx2-check.h (main): Check CPUID level correctly. - * gcc.target/i386/bmi2-check.h: Ditto. - -2011-10-21 Ville Voutilainen - - PR c++/50811 - * g++.dg/cpp0x/override2.C: Add test. - -2011-10-21 Rainer Orth - - * lib/gcc-dg.exp (GCC_UNDER_TEST): Set before calling - check_linker_plugin_available. - -2011-10-21 Kai Tietz - - * gcc.target/i386/branch-cost1.c: New test. - * gcc.target/i386/branch-cost2.c: New test. - * gcc.target/i386/branch-cost3.c: New test. - * gcc.target/i386/branch-cost4.c: New test. - -2011-10-20 Steve Ellcey - - * gcc.dg/vect/vect-120.c: Add vect_floatint_cvt requirement. - -2011-10-20 Steve Ellcey - - PR testsuite/50722 - * gcc.dg/pr49994-3.c: Skip on HP-UX. - -2011-10-20 Joseph Myers - - * gcc.dg/lto/pr46940_0.c (ASMNAME, ASMNAME2, STRING): Define. - (_moz_foo, EXT__foo): Use ASMNAME. - -2011-10-20 Joseph Myers - - * lib/lto.exp (lto-execute): Use .exe suffix for test executable - names. - -2011-10-20 Kirill Yukhin - - PR target/50766 - * gcc.target/i386/pr50766.c: New test. - -2011-10-20 Jason Merrill - - PR c++/41449 - * g++.dg/eh/partial1.C: New. - -2011-10-20 Richard Henderson - - * gcc.target/i386/vperm-v2df.c, gcc.target/i386/vperm-v2di.c, - gcc.target/i386/vperm-v4sf-1.c, gcc.target/i386/vperm-v4sf-2.c, - gcc.target/i386/vperm-v4si-1.c, gcc.target/i386/vperm-v4si-2.c: - Use __builtin_shuffle. - -2011-10-20 Steven G. Kargl - - PR fortran/50514 - * gfortran.dg/ishft_3.f90: Update test. - -2011-10-20 Steven G. Kargl - - PR fortran/50524 - * gfortran.dg/substring_integer_index.f90: New test. - -2011-10-20 Steven G. Kargl - - * gfortran.dg/format_string.f: New test. - -2011-10-20 Uros Bizjak - - * gcc.dg/ipa/ipa-sra-2.c: Add dg-require-effective-target - non_strict_align. - * gcc.dg/ipa/ipa-sra-6.c: Ditto. - -2011-10-20 Joseph Myers - - * gcc.target/i386/pr40906-1.c, gcc.target/i386/pr40906-2.c, - gcc.target/i386/pr46226.c: Do not use - -mno-accumulate-outgoing-args. - -2011-10-20 Joseph Myers - - * gcc.dg/tree-prof/val-prof-7.c: Declare bzero instead of - including . - -2011-10-19 Jan Hubicka - - * lib/lto.exp (lto_init): Test slim lto and no-linker-plugin path. - * lib/gcc-dg.exp (check_effective_target_lto): Likewise. - * lib/c-torture.exp: Likewise. - * gcc.c-torture/execute/builtins/strstr-asm.c: Force fat LTO. - * gcc.c-torture/compile/sync-1.c: Likewise. - * gcc.c-torture/compile/sync-1.c: Likewise. - * gcc.c-torture/compile/sync-3.c: Likewise. - * gcc.dg/noncompile/invalid_asm.c: Likewise. - * gcc.dg/noncompile/920507-1.c: Likewise. - * gcc.dg/torture/pr36400.c: Likewise. - * g++.dg/torture/pr34850.C: Likewise. - -2011-10-20 Eric Botcazou - - * gnat.dg/source_ref1.adb: New test. - * gnat.dg/source_ref2.adb: Likewise. - -2011-10-19 Paolo Carlini - - PR c++/13657 - * g++.dg/parse/error42.C: New. - * g++.old-deja/g++.other/ptrmem7.C: Tweak dg-errors. - -2011-10-19 Jason Merrill - - PR c++/50793 - * g++.dg/init/value9.C: New. - -2011-10-19 Jakub Jelinek - - * gcc.dg/torture/vshuf-32.inc: Add interleave permutations. - * gcc.dg/torture/vshuf-16.inc: Likewise. - * gcc.dg/torture/vshuf-8.inc: Likewise. - * gcc.dg/torture/vshuf-4.inc: Likewise. - -2011-10-19 Janus Weil - - PR fortran/47023 - * gfortran.dg/sizeof_proc.f90: New. - -2011-10-19 Joseph Myers - - * g++.dg/compat/struct-layout-1_generate.c: Also pass -mno-mmx - -Wno-abi for i?86-*-mingw32* x86_64-*-mingw32* i?86-*-cygwin*. - -2011-10-19 Uros Bizjak - - PR testsuite/50796 - * gcc.dg/plugin/plugindir?.c Update dg-prune-output. - -2011-10-19 Jason Merrill - - PR c++/50787 - * g++.dg/init/ref20.C: New. - -2011-10-19 Kai Tietz - - PR middle-end/50795 - * gcc.dg/tree-ssa/builtin-expect-1.c: Adjust test. - * gcc.dg/tree-ssa/builtin-expect-2.c: Adjust test. - * gcc.dg/tree-ssa/builtin-expect-3.c: Adjust test. - * gcc.dg/tree-ssa/builtin-expect-4.c: Adjust test. - * gcc.dg/tree-ssa/builtin-expect-5.c: Adjust test. - -2011-10-19 Richard Guenther - - PR middle-end/50768 - * gcc.dg/torture/pr50768.c: New testcase. - -2011-10-19 Alexander Monakov - - PR rtl-optimization/50340 - * gcc.dg/pr50340.c: New. - -2011-10-18 Andrew Stubbs - - PR tree-optimization/50717 - - * gcc.dg/pr50717-1.c: New file. - * gcc.target/arm/wmul-12.c: Correct types. - * gcc.target/arm/wmul-8.c: Correct types. - -2011-10-18 Jason Merrill - - PR c++/50531 - * g++.dg/cpp0x/defaulted32.C: New. - - PR c++/50742 - * g++.dg/lookup/using23.C: New. - - PR c++/50500 - * g++.dg/cpp0x/implicit12.C: New. - * g++.dg/cpp0x/defaulted20.C: Adjust. - * g++.dg/cpp0x/defaulted21.C: Adjust. - * g++.dg/cpp0x/implicit-copy.C: Adjust. - * g++.dg/cpp0x/implicit4.C: Adjust. - * g++.dg/cpp0x/implicit5.C: Adjust. - * g++.dg/cpp0x/implicit8.C: Adjust. - * g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust. - * g++.dg/cpp0x/not_special.C: Adjust. - * g++.dg/cpp0x/rv-trivial-bug.C: Adjust. - * g++.dg/cpp0x/rv1n.C: Adjust. - * g++.dg/cpp0x/rv2n.C: Adjust. - * g++.dg/cpp0x/rv3n.C: Adjust. - * g++.dg/cpp0x/rv4n.C: Adjust. - * g++.dg/cpp0x/rv5n.C: Adjust. - * g++.dg/cpp0x/rv6n.C: Adjust. - * g++.dg/cpp0x/rv7n.C: Adjust. - -2011-10-18 Kirill Yukhin - - * gcc.target/i386/avx2-vpop-check.h: New header. - * gcc.target/i386/avx2-vpaddd-3.c: New test. - * gcc.target/i386/avx2-vpaddw-3.c: Ditto. - * gcc.target/i386/avx2-vpaddb-3.c: Ditto. - * gcc.target/i386/avx2-vpaddq-3.c: Ditto. - * gcc.target/i386/avx2-vpand-3.c: Ditto. - * gcc.target/i386/avx2-vpmulld-3.c: Ditto. - * gcc.target/i386/avx2-vpmullw-3.c: Ditto. - * gcc.target/i386/avx2-vpsrad-3.c: Ditto. - * gcc.target/i386/avx2-vpsraw-3.c: Ditto. - * gcc.target/i386/avx2-vpsrld-3.c: Ditto. - * gcc.target/i386/avx2-vpsrlw-3.c: Ditto. - * gcc.target/i386/avx2-vpsubb-3.c: Ditto. - * gcc.target/i386/avx2-vpsubd-3.c: Ditto. - * gcc.target/i386/avx2-vpsubq-3.c: Ditto. - * gcc.target/i386/avx2-vpsubw-3.c: Ditto. - -2011-10-18 Mikael Morin - - PR fortran/50420 - * gfortran.dg/coarray_subobject_1.f90: New test. - * gfortran.dg/coarray/subobject_1.f90: New test. - -2011-10-18 Alexander Monakov - - PR rtl-optimization/50205 - * gcc.dg/pr50205.c: New. - -2011-10-18 Richard Guenther - - PR tree-optimization/50767 - * gcc.dg/torture/pr50767.c: New testcase. - -2011-10-18 Julian Brown - - * lib/target-supports.exp (check_effective_target_arm_unaligned): New. - * gcc.target/arm/unaligned-memcpy-1.c: New. - * gcc.target/arm/unaligned-memcpy-2.c: New. - * gcc.target/arm/unaligned-memcpy-3.c: New. - * gcc.target/arm/unaligned-memcpy-4.c: New. - -2011-10-18 Janus Weil - - PR fortran/47023 - * gfortran.dg/iso_c_binding_class.f03: New. - -2011-10-18 Ira Rosen - - * testsuite/lib/target-supports.exp - (check_effective_target_vect_widen_shift): New. - * gcc.dg/vect/vect-widen-shift-s16.c: New. - * gcc.dg/vect/vect-widen-shift-s8.c: New. - * gcc.dg/vect/vect-widen-shift-u16.c: New. - * gcc.dg/vect/vect-widen-shift-u8.c: New. - -2011-10-18 Richard Guenther - - * gcc.dg/torture/restrict-1.c: New testcase. - -2011-10-17 Michael Spertus - - * g++.dg/ext/bases.C: New test. - -2011-10-17 David S. Miller - - * gcc.target/sparc/fand.c: Remove __LP64__ ifdefs and expect - all operations to emit VIS instructions. - * gcc.target/sparc/fandnot.c: Likewise. - * gcc.target/sparc/fnot.c: Likewise. - * gcc.target/sparc/for.c: Likewise. - * gcc.target/sparc/fornot.c: Likewise. - * gcc.target/sparc/fxnor.c: Likewise. - * gcc.target/sparc/fxor.c: Likewise. - * gcc.target/sparc/combined-1.c: Revert change to use -O2, no longer - needed. - -2011-10-17 Jakub Jelinek - - * gcc.c-torture/execute/vshuf-v16hi.c: New test. - * gcc.dg/torture/vshuf-16.inc: New file. - * gcc.dg/torture/vshuf-2.inc: New file. - * gcc.dg/torture/vshuf-32.inc: New file. - * gcc.dg/torture/vshuf-4.inc: New file. - * gcc.dg/torture/vshuf-8.inc: New file. - * gcc.dg/torture/vshuf-main.inc: New file. - * gcc.dg/torture/vshuf-v16hi.c: New test. - * gcc.dg/torture/vshuf-v16qi.c: New test. - * gcc.dg/torture/vshuf-v2df.c: New test. - * gcc.dg/torture/vshuf-v2di.c: New test. - * gcc.dg/torture/vshuf-v2sf.c: New test. - * gcc.dg/torture/vshuf-v2si.c: New test. - * gcc.dg/torture/vshuf-v32qi.c: New test. - * gcc.dg/torture/vshuf-v4df.c: New test. - * gcc.dg/torture/vshuf-v4di.c: New test. - * gcc.dg/torture/vshuf-v4hi.c: New test. - * gcc.dg/torture/vshuf-v4sf.c: New test. - * gcc.dg/torture/vshuf-v4si.c: New test. - * gcc.dg/torture/vshuf-v8hi.c: New test. - * gcc.dg/torture/vshuf-v8qi.c: New test. - * gcc.dg/torture/vshuf-v8sf.c: New test. - * gcc.dg/torture/vshuf-v8si.c: New test. - -2011-10-17 Ira Rosen - - PR tree-optimization/50746 - * gcc.dg/vect/vect-114.c: Remove vect_hw_misalign. - -2011-10-17 Jason Merrill - - PR c++/50736 - * g++.dg/cpp0x/lambda/lambda-capture-neg.C: New. - -2011-10-17 Paolo Carlini - - PR c++/44524 - * g++.dg/parse/error41.C: New. - * g++.dg/parse/error20.C: Adjust. - -2011-10-17 Paolo Carlini - - PR c++/50757 - * g++.dg/warn/format7.C: New. - * obj-c++.dg/warn7.mm: Likewise. - -2011-10-17 Richard Guenther - - PR tree-optimization/50729 - * gcc.dg/torture/pr50729.c: New testcase. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * lib/prune.exp (prune_gcc_output): Prune output referring to - included files. - * gcc.dg/cpp/macro-exp-tracking-1.c: New test. - * gcc.dg/cpp/macro-exp-tracking-2.c: Likewise. - * gcc.dg/cpp/macro-exp-tracking-3.c: Likewise. - * gcc.dg/cpp/pragma-diagnostic-2.c: Likewise. - -2011-10-15 Tom Tromey - Dodji Seketeli - - * gcc.dg/cpp/pragma-diagnostic-1.c: New test. - -2011-10-17 Paolo Carlini - - PR c++/48489 - * g++.dg/inherit/error5.C: New. - -2011-10-17 Janus Weil - - PR fortran/47023 - PR fortran/50752 - * gfortran.dg/kind_tests_4.f90: New. - -2011-10-17 Ira Rosen - - * gcc.dg/vect/vect-21.c: Expect the loops to get vectorized on - targets that support vector condition. - -2011-10-16 Janus Weil - - PR fortran/47023 - * gfortran.dg/c_kind_tests_3.f03: New. - -2011-10-16 Janus Weil - - PR fortran/50547 - * gfortran.dg/elemental_args_check_4.f90: New. - -2011-10-16 Ira Rosen - - PR tree-optimization/50727 - * gcc.dg/vect/pr50727.c: New test. - -2011-10-16 Eric Botcazou - - * gcc.dg/vla-23.c: New test. - -2011-10-16 Jakub Jelinek - - PR tree-optimization/50596 - * gcc.dg/vect/vect-cond-9.c: New test. - -2011-10-16 Ira Rosen - - * gcc.dg/vect/bb-slp-29.c: New test. - -2011-10-15 Paolo Carlini - - PR c++/50732 - * g++.dg/ext/is_base_of_incomplete.C: New. - * g++.dg/ext/is_base_of_diagnostic.C: Adjust dg-errors. - * g++.dg/ext/unary_trait_incomplete.C: Likewise. - -2011-10-15 Eric Botcazou - - * gcc.target/sparc/combined-1.c: Compile at -O2. - -2011-10-15 Uros Bizjak - - * gcc.target/i386/fma_float_?.c (dg-prune_output): Remove. - (dg-options): Add -Wno-attributes. - * gcc.target/i386/fma_double_?.c: Ditto. - * gcc.target/i386/fma_run_float_?.c: Ditto. - * gcc.target/i386/fma_run_double_?.c: Ditto. - * gcc.target/i386/l_fma_float_?.c: Dtto. - * gcc.target/i386/l_fma_double_?.c: Ditto. - * gcc.target/i386/l_fma_run_float_?.c: Ditto. - * gcc.target/i386/l_fma_run_double_?.c: Ditto. - -2011-10-15 Tobias Burnus - - * gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113 in - the comments. - * gfortran.dg/bind_c_usage_24.f90: Ditto. - * gfortran.dg/rank_3.f90: Ditto. - * gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to - -std=f2008ts in dg-options. - * gfortran.dg/rank_4.f90: Ditto. - -2011-10-15 Oleg Endo - - PR target/49263 - * gcc.target/sh/pr49263.c: New. - -2011-10-14 Eric Botcazou - - * gnat.dg/specs/debug1.ads: Tweak. - -2011-10-14 Kai Tietz - - * gfortran.fortran-torture/compile/logical-2.f90: New test. - -2011-10-14 Jakub Jelinek - - * gcc.target/i386/sse2-mul-1.c: New test. - * gcc.target/i386/sse4_1-mul-1.c: New test. - * gcc.target/i386/avx-mul-1.c: New test. - * gcc.target/i386/xop-mul-1.c: New test. - * gcc.target/i386/avx2-mul-1.c: New test. - -2011-10-14 Jason Merrill - - PR c++/50563 - * g++.dg/cpp0x/nsdmi-list1.C: New. - - PR c++/50707 - * g++.dg/cpp0x/nsdmi-const1.C: New. - -2011-10-14 Janus Weil - - PR fortran/50570 - * gfortran.dg/pointer_intent_5.f90: New. - -2011-10-14 Artjoms Sinkarovs - - * gcc.target/i386/warn-vect-op-3.c: Exclude 32-bit architectures. - * gcc.target/i386/warn-vect-op-1.c: Ditto. - * gcc.target/i386/warn-vect-op-2.c: Ditto. - -2011-10-14 Tobias Burnus - - PR fortran/50718 - * gfortran.dg/pointer_check_11.f90: New. - * gfortran.dg/pointer_check_12.f90: New. - -2011-10-14 Paolo Carlini - - PR c++/38174 - * g++.dg/overload/operator4.C: New. - -2011-10-14 David Alan Gilbert - - * gcc.dg/di-longlong64-sync-1.c: New test. - * gcc.dg/di-sync-multithread.c: New test. - * gcc.target/arm/di-longlong64-sync-withhelpers.c: New test. - * gcc.target/arm/di-longlong64-sync-withldrexd.c: New test. - * lib/target-supports.exp: (arm_arch_*_ok): Series of effective-target - tests for v5, v6, v6k, and v7-a, and add-options helpers. - (check_effective_target_arm_arm_ok): New helper. - (check_effective_target_sync_longlong): New helper. - -2011-10-14 Richard Guenther - - PR tree-optimization/50723 - * gcc.dg/torture/pr50723.c: New testcase. - -2011-10-14 Paolo Carlini - - PR c++/17212 - * g++.dg/warn/format6.C: New. - * obj-c++.dg/warn6.mm: Likewise. - -2011-10-13 Richard Henderson - - * lib/target-supports.exp (check_effective_target_vect_shift_scalar): - Delete. - * gcc.dg/vect/vec-scal-opt.c: Don't test vect_shift_scalar. - * gcc.dg/vect/vec-scal-opt1.c: Likewise. - * gcc.dg/vect/vec-scal-opt2.c: Likewise. - -2011-10-13 Jason Merrill - - PR c++/50614 - * g++.dg/cpp0x/nsdmi-template2.C: New. - - PR c++/50437 - * g++.dg/cpp0x/lambda/lambda-auto1.C: New. - - PR c++/50618 - * g++.dg/init/vbase1.C: New. - -2011-10-13 Jakub Jelinek - - * gcc.target/i386/sse4_1-phminposuw-2.c: New test. - * gcc.target/i386/sse4_1-phminposuw-3.c: New test. - * gcc.target/i386/avx-vphminposuw-2.c: New test. - * gcc.target/i386/avx-vphminposuw-3.c: New test. - -2011-10-13 H.J. Lu - - * gcc.target/i386/pr50712.c: Check ia32 instead of ilp32. - -2011-10-13 Eric Botcazou - - * gcc.dg/builtins-67.c: Guard iround and irint with HAVE_C99_RUNTIME. - -2011-10-13 Richard Guenther - - PR tree-optimization/50712 - * gcc.target/i386/pr50712.c: New testcase. - -2011-10-13 Tom de Vries - - * gcc.dg/memcpy-4.c: New test. - -2011-10-13 Richard Guenther - - PR tree-optimization/50698 - * g++.dg/vect/pr50698.cc: New testcase. - -2011-10-12 Janis Johnson - - * gcc.target/powerpc/warn-1.c: Skip if not powerpc_vsx_ok. - * gcc.target/powerpc/warn-2.c: Ditto. - - * gcc.target/powerpc/ppc-fma-3.c: Require powerpc_fprs. - * gcc.target/powerpc/ppc-fma-4.c: Likewise. - * gcc.target/powerpc/ppc-fma-5.c: Likewise. - * gcc.target/powerpc/ppc-fma-7.c: Likewise. - * gcc.target/powerpc/ppc-fpconv-11.c: Likewise. - * gcc.target/powerpc/ppc-fpconv-3.c: Likewise. - * gcc.target/powerpc/ppc-fpconv-7.c: Likewise. - * gcc.target/powerpc/ppc-fpconv-8.c: Likewise. - * gcc.target/powerpc/ppc-pow.c: Likewise. - * gcc.target/powerpc/recip-1.c: Likewise. - * gcc.target/powerpc/recip-2.c: Likewise. - * gcc.target/powerpc/recip-3.c: Likewise. - * gcc.target/powerpc/recip-4.c: Likewise. - * gcc.target/powerpc/recip-5.c: Likewise. - -2011-10-12 David S. Miller - - * gcc.target/sparc/cmask.c: Remove 'vis3' target check and specify - '-mvis3' instead of 'mcpu=niagara3' in options. - * gcc.target/sparc/fhalve.c: Likewise. - * gcc.target/sparc/fnegop.c: Likewise. - * gcc.target/sparc/fpadds.c: Likewise. - * gcc.target/sparc/fshift.c: Likewise. - * gcc.target/sparc/fucmp.c: Likewise. - * gcc.target/sparc/lzd.c: Likewise. - * gcc.target/sparc/vis3misc.c: Likewise. - * gcc.target/sparc/xmul.c: Likewise. - -2011-10-12 Eric Botcazou - - * gnat.dg/vect1.ad[sb]: New test. - * gnat.dg/vect1_pkg.ads: New helper. - * gnat.dg/vect2.ad[sb]: New test. - * gnat.dg/vect2_pkg.ads: New helper. - * gnat.dg/vect3.ad[sb]: New test. - * gnat.dg/vect3_pkg.ads: New helper. - * gnat.dg/vect4.ad[sb]: New test. - * gnat.dg/vect4_pkg.ads: New helper. - * gnat.dg/vect5.ad[sb]: New test. - * gnat.dg/vect5_pkg.ads: New helper. - * gnat.dg/vect6.ad[sb]: New test. - * gnat.dg/vect6_pkg.ads: New helper. - -2011-10-12 H.J. Lu - - * gcc.target/i386/fma_run_double_1.c: Add -mfpmath=sse. - * gcc.target/i386/fma_run_double_2.c: Likewise. - * gcc.target/i386/fma_run_double_3.c: Likewise. - * gcc.target/i386/fma_run_double_4.c: Likewise. - * gcc.target/i386/fma_run_double_5.c: Likewise. - * gcc.target/i386/fma_run_double_6.c: Likewise. - * gcc.target/i386/fma_run_float_1.c: Likewise. - * gcc.target/i386/fma_run_float_2.c: Likewise. - * gcc.target/i386/fma_run_float_3.c: Likewise. - * gcc.target/i386/fma_run_float_4.c: Likewise. - * gcc.target/i386/fma_run_float_5.c: Likewise. - * gcc.target/i386/fma_run_float_6.c: Likewise. - - * gcc.target/i386/l_fma_double_1.c: Add -mtune=generic and - remove the extra dg-options. - * gcc.target/i386/l_fma_double_2.c: Likewise. - * gcc.target/i386/l_fma_double_3.c: Likewise. - * gcc.target/i386/l_fma_double_4.c: Likewise. - * gcc.target/i386/l_fma_double_5.c: Likewise. - * gcc.target/i386/l_fma_double_6.c: Likewise. - * gcc.target/i386/l_fma_float_1.c: Likewise. - * gcc.target/i386/l_fma_float_2.c: Likewise. - * gcc.target/i386/l_fma_float_3.c: Likewise. - * gcc.target/i386/l_fma_float_4.c: Likewise. - * gcc.target/i386/l_fma_float_5.c: Likewise. - * gcc.target/i386/l_fma_float_6.c: Likewise. - -2011-10-12 Paul Koning - - PR tree-optimization/50189 - * g++.dg/torture/pr50189.C: New testcase. - -2011-10-12 Richard Guenther - - PR tree-optimization/50700 - * gcc.dg/builtin-object-size-12.c: New testcase. - -2011-10-12 Joseph Myers - - PR c/50565 - * gcc.c-torture/compile/pr50565-1.c, - gcc.c-torture/compile/pr50565-2.c: New tests. - -2011-10-11 Jason Merrill - - PR c++/49855 - PR c++/49896 - * g++.dg/template/constant1.C: New. - * g++.dg/template/constant2.C: New. - * g++.dg/cpp0x/constexpr-template3.C: New. - -2011-10-11 Artjoms Sinkarovs - - * gcc.target/i386/warn-vect-op-3.c: New test. - * gcc.target/i386/warn-vect-op-1.c: New test. - * gcc.target/i386/warn-vect-op-2.c: New test. - -2011-10-11 Andreas Krebbel - - * gcc.dg/pr49994-3.c: Add -mbackchain for s390 and s390x. - -2011-10-11 Richard Guenther - - PR tree-optimization/50204 - * gcc.dg/tree-ssa/ssa-fre-36.c: New testcase. - -2011-10-11 Andreas Krebbel - - * gcc.target/s390/20090223-1.c: Add -Wno-attributes. - -2011-10-11 Kirill Yukhin - - * gcc.target/i386/fma_double_1.c: Add -mfpmath=sse. - * gcc.target/i386/fma_double_2.c: Ditto. - * gcc.target/i386/fma_double_3.c: Ditto. - * gcc.target/i386/fma_double_4.c: Ditto. - * gcc.target/i386/fma_double_5.c: Ditto. - * gcc.target/i386/fma_double_6.c: Ditto. - * gcc.target/i386/fma_float_1.c: Ditto. - * gcc.target/i386/fma_float_2.c: Ditto. - * gcc.target/i386/fma_float_3.c: Ditto. - * gcc.target/i386/fma_float_4.c: Ditto. - * gcc.target/i386/fma_float_5.c: Ditto. - * gcc.target/i386/fma_float_6.c: Ditto. - * gcc.target/i386/l_fma_double_1.c: Ditto. - * gcc.target/i386/l_fma_double_2.c: Ditto. - * gcc.target/i386/l_fma_double_3.c: Ditto. - * gcc.target/i386/l_fma_double_4.c: Ditto. - * gcc.target/i386/l_fma_double_5.c: Ditto. - * gcc.target/i386/l_fma_double_6.c: Ditto. - * gcc.target/i386/l_fma_float_1.c: Ditto. - * gcc.target/i386/l_fma_float_2.c: Ditto. - * gcc.target/i386/l_fma_float_3.c: Ditto. - * gcc.target/i386/l_fma_float_4.c: Ditto. - * gcc.target/i386/l_fma_float_5.c: Ditto. - * gcc.target/i386/l_fma_float_6.c: Ditto. - * gcc.target/i386/l_fma_run_double_1.c: Ditto. - * gcc.target/i386/l_fma_run_double_2.c: Ditto. - * gcc.target/i386/l_fma_run_double_3.c: Ditto. - * gcc.target/i386/l_fma_run_double_4.c: Ditto. - * gcc.target/i386/l_fma_run_double_5.c: Ditto. - * gcc.target/i386/l_fma_run_double_6.c: Ditto. - * gcc.target/i386/l_fma_run_float_1.c: Ditto. - * gcc.target/i386/l_fma_run_float_2.c: Ditto. - * gcc.target/i386/l_fma_run_float_3.c: Ditto. - * gcc.target/i386/l_fma_run_float_4.c: Ditto. - * gcc.target/i386/l_fma_run_float_5.c: Ditto. - * gcc.target/i386/l_fma_run_float_6.c: Ditto. - -2011-10-11 Tristan Gingold - - * gcc.dg/va-arg-4.c: New test. - * gcc.dg/va-arg-5.c: Ditto. - -2011-10-11 Uros Bizjak - - * lib/target-supports.exp (check_effective_target_fd_truncate): - Close and unlink test file before exit. - -2011-10-10 Thomas Koenig - - PR fortran/50564 - * gfortran.dg/forall_15.f90: New test case. - -2011-10-10 Aldy Hernandez - Andrew Macleod - - * gcc.dg/simulate-thread/simulate-thread.gdb: Call - wrappers for *other_threads() and *final_verify(). - * gcc.dg/simulate-thread/simulate-thread.h - (simulate_thread_wrapper_other_threads): New. - (simulate_thread_wrapper_final_verify): New. - -2011-10-10 Uros Bizjak - - * lib/gcc-gdb-test.exp (gdb-test): Delete $cmd_file before return. - -2011-10-10 Janis Johnson - - * gcc.dg/graphite/id-pr46845.c: Include powerpc for warning options. - -2011-10-10 Kirill Yukhin - Yakovlev Vladimir - - * gcc.target/i386/fma_1.h: New file. - * gcc.target/i386/fma_2.h: Likewise. - * gcc.target/i386/fma_3.h: Likewise. - * gcc.target/i386/fma_4.h: Likewise. - * gcc.target/i386/fma_5.h: Likewise. - * gcc.target/i386/fma_6.h: Likewise. - * gcc.target/i386/fma_double_1.c: Likewise. - * gcc.target/i386/fma_double_2.c: Likewise. - * gcc.target/i386/fma_double_3.c: Likewise. - * gcc.target/i386/fma_double_4.c: Likewise. - * gcc.target/i386/fma_double_5.c: Likewise. - * gcc.target/i386/fma_double_6.c: Likewise. - * gcc.target/i386/fma_float_1.c: Likewise. - * gcc.target/i386/fma_float_2.c: Likewise. - * gcc.target/i386/fma_float_3.c: Likewise. - * gcc.target/i386/fma_float_4.c: Likewise. - * gcc.target/i386/fma_float_5.c: Likewise. - * gcc.target/i386/fma_float_6.c: Likewise. - * gcc.target/i386/fma_main.h: Likewise. - * gcc.target/i386/fma_run_double_1.c: Likewise. - * gcc.target/i386/fma_run_double_2.c: Likewise. - * gcc.target/i386/fma_run_double_3.c: Likewise. - * gcc.target/i386/fma_run_double_4.c: Likewise. - * gcc.target/i386/fma_run_double_5.c: Likewise. - * gcc.target/i386/fma_run_double_6.c: Likewise. - * gcc.target/i386/fma_run_double_results_1.h: Likewise. - * gcc.target/i386/fma_run_double_results_2.h: Likewise. - * gcc.target/i386/fma_run_double_results_3.h: Likewise. - * gcc.target/i386/fma_run_double_results_4.h: Likewise. - * gcc.target/i386/fma_run_double_results_5.h: Likewise. - * gcc.target/i386/fma_run_double_results_6.h: Likewise. - * gcc.target/i386/fma_run_float_1.c: Likewise. - * gcc.target/i386/fma_run_float_2.c: Likewise. - * gcc.target/i386/fma_run_float_3.c: Likewise. - * gcc.target/i386/fma_run_float_4.c: Likewise. - * gcc.target/i386/fma_run_float_5.c: Likewise. - * gcc.target/i386/fma_run_float_6.c: Likewise. - * gcc.target/i386/fma_run_float_results_1.h: Likewise. - * gcc.target/i386/fma_run_float_results_2.h: Likewise. - * gcc.target/i386/fma_run_float_results_3.h: Likewise. - * gcc.target/i386/fma_run_float_results_4.h: Likewise. - * gcc.target/i386/fma_run_float_results_5.h: Likewise. - * gcc.target/i386/fma_run_float_results_6.h: Likewise. - * gcc.target/i386/l_fma_1.h: Likewise. - * gcc.target/i386/l_fma_2.h: Likewise. - * gcc.target/i386/l_fma_3.h: Likewise. - * gcc.target/i386/l_fma_4.h: Likewise. - * gcc.target/i386/l_fma_5.h: Likewise. - * gcc.target/i386/l_fma_6.h: Likewise. - * gcc.target/i386/l_fma_double_1.c: Likewise. - * gcc.target/i386/l_fma_double_2.c: Likewise. - * gcc.target/i386/l_fma_double_3.c: Likewise. - * gcc.target/i386/l_fma_double_4.c: Likewise. - * gcc.target/i386/l_fma_double_5.c: Likewise. - * gcc.target/i386/l_fma_double_6.c: Likewise. - * gcc.target/i386/l_fma_float_1.c: Likewise. - * gcc.target/i386/l_fma_float_2.c: Likewise. - * gcc.target/i386/l_fma_float_3.c: Likewise. - * gcc.target/i386/l_fma_float_4.c: Likewise. - * gcc.target/i386/l_fma_float_5.c: Likewise. - * gcc.target/i386/l_fma_float_6.c: Likewise. - * gcc.target/i386/l_fma_main.h: Likewise. - * gcc.target/i386/l_fma_run_double_1.c: Likewise. - * gcc.target/i386/l_fma_run_double_2.c: Likewise. - * gcc.target/i386/l_fma_run_double_3.c: Likewise. - * gcc.target/i386/l_fma_run_double_4.c: Likewise. - * gcc.target/i386/l_fma_run_double_5.c: Likewise. - * gcc.target/i386/l_fma_run_double_6.c: Likewise. - * gcc.target/i386/l_fma_run_float_1.c: Likewise. - * gcc.target/i386/l_fma_run_float_2.c: Likewise. - * gcc.target/i386/l_fma_run_float_3.c: Likewise. - * gcc.target/i386/l_fma_run_float_4.c: Likewise. - * gcc.target/i386/l_fma_run_float_5.c: Likewise. - * gcc.target/i386/l_fma_run_float_6.c: Likewise. - -2011-10-10 Richard Guenther - - PR middle-end/50389 - * gcc.dg/torture/pr50389.c: New testcase. - -2011-10-10 Richard Guenther - - PR middle-end/50195 - * gcc.dg/builtins-47.c: Optimize. - -2011-10-10 Aldy Hernandez - - * lib/gcc-simulate-thread.exp: New. - * gcc.dg/simulate-thread/guality.h: New. - * gcc.dg/simulate-thread/simulate-thread.h: New. - * gcc.dg/simulate-thread/simulate-thread.exp: New. - * gcc.dg/simulate-thread/simulate-thread.gdb: New. - * gcc.dg/simulate-thread/README: New. - * g++.dg/simulate-thread/guality.h: New. - * g++.dg/simulate-thread/simulate-thread.h: New. - * g++.dg/simulate-thread/simulate-thread.exp: New. - * g++.dg/simulate-thread/simulate-thread.gdb: New. - * c-c++-common/cxxbitfields-2.c: Remove. - * c-c++-common/cxxbitfields.c: Remove. - * c-c++-common/cxxbitfields-4.c: Remove. - * c-c++-common/cxxbitfields-5.c: Remove. - * c-c++-common/simulate-thread/bitfields-1.c: New. - * c-c++-common/simulate-thread/bitfields-2.c: New. - * c-c++-common/simulate-thread/bitfields-3.c: New. - * c-c++-common/simulate-thread/bitfields-4.c: New. - -2011-10-09 Paolo Carlini - - PR c++/38980 - * g++.dg/warn/format5.C: New. - -2011-10-09 Tobias Burnus - - PR fortran/50273 - * gfortran.dg/common_14.f90: Compile with -Wno-align-commons. - * gfortran.dg/common_16.f90: New. - -2011-10-09 Tobias Burnus - - * gfortran.dg/iso_c_binding_param_1.f90: New. - * gfortran.dg/iso_c_binding_param_2.f90: New. - * gfortran.dg/c_sizeof_2.f90: Update dg-error. - -2011-10-09 Ira Rosen - - PR tree-optimization/50635 - * gcc.dg/vect/pr50635.c: New test. - -2011-10-09 Janus Weil - - PR fortran/50659 - * gfortran.dg/proc_decl_27.f90: New. - -2011-10-08 Nicola Pero - - PR libobjc/50428 - * objc/execute/initialize-1.m: New test. - -2011-10-08 Paul Thomas - - PR fortran/47844 - * gfortran.dg/pointer_function_result_1.f90 : New test. - -2011-10-07 David S. Miller - - PR 50655 - * gcc.target/sparc/sparc.exp: Add vis3 target test. - * gcc.target/sparc/cmask.c: Use it. - * gcc.target/sparc/fhalve.c: Likewise. - * gcc.target/sparc/fnegop.c: Likewise. - * gcc.target/sparc/fpadds.c: Likewise. - * gcc.target/sparc/fshift.c: Likewise. - * gcc.target/sparc/fucmp.c: Likewise. - * gcc.target/sparc/lzd.c: Likewise. - * gcc.target/sparc/vis3misc.c: Likewise. - * gcc.target/sparc/xmul.c: Likewise. - -2011-10-07 Richard Henderson - - * gcc.target/i386/avx256-unaligned-load-2.c: Tweek vinsert pattern - match for avx2. - * gcc.target/i386/avx256-unaligned-store-2.c: Similarly. - -2011-10-07 Andrew Stubbs - - * gcc.dg/pr50193-1.c: New file. - * gcc.target/arm/shiftable.c: New file. - -2011-10-07 Janus Weil - - PR fortran/50625 - * gfortran.dg/class_46.f03: New. - -2011-10-06 Joern Rennecke - - * gcc.dg/pr47276.c (ASMNAME, ASMNAME2, STRING): Define. - (__EI___vsyslog_chk, __EI_syslog, __EI_vsyslog): Use ASMNAME. - (syslog, vsyslog, __vsyslog_chk): Likewise. - - * gcc.dg/lto/20081222_1.c (ASMNAME, ASMNAME2, STRING): Define. - (x, EXT_x): Use ASMNAME. - - * gcc.dg/torture/pr48044.c (ASMNAME, ASMNAME2, STRING): Define. - (a, c): Use ASMNAME. - -2011-10-07 Tom de Vries - - PR middle-end/50527 - * gcc.dg/pr50527.c: New test. - -2011-10-07 Jakub Jelinek - - PR tree-optimization/50650 - * gcc.c-torture/compile/pr50650.c: New test. - -2011-10-07 Rainer Orth - - PR tree-optimization/50575 - * gcc.c-torture/execute/vector-compare-2.x: New file. - -2011-10-07 Rainer Orth - - PR middle-end/50125 - * gcc.dg/uninit-B.c (baz): Remove xfail *-*-*. - * gcc.dg/uninit-pr19430.c (main): Remove xfail *-*-*. - (bar3): Likewise. - -2011-10-07 Richard Guenther - - PR testsuite/50637 - * gcc.dg/vect/vect-align-2.c: Increase array size. - -2011-10-07 Uros Bizjak - H.J. Lu - - PR target/50603 - * gcc.target/i386/pr50603.c: New test. - -2011-10-06 Jason Merrill - - PR c++/39164 - * g++.dg/cpp0x/default31.C: New. - -2011-10-06 Jakub Jelinek - - PR tree-optimization/50596 - * lib/target-supports.exp (check_effective_target_vect_cond_mixed): - New. - * gcc.dg/vect/vect-cond-8.c: New test. - -2011-10-06 Richard Henderson - - * gcc.c-torture/execute/vect-shuffle-1.c: Remove. - * gcc.c-torture/execute/vect-shuffle-2.c: Remove. - * gcc.c-torture/execute/vect-shuffle-3.c: Remove. - * gcc.c-torture/execute/vect-shuffle-4.c: Remove. - * gcc.c-torture/execute/vect-shuffle-5.c: Remove. - * gcc.c-torture/execute/vect-shuffle-6.c: Remove. - * gcc.c-torture/execute/vect-shuffle-7.c: Remove. - * gcc.c-torture/execute/vect-shuffle-8.c: Remove. - * gcc.c-torture/execute/vshuf-16.inc: New file. - * gcc.c-torture/execute/vshuf-2.inc: New file. - * gcc.c-torture/execute/vshuf-4.inc: New file. - * gcc.c-torture/execute/vshuf-8.inc: New file. - * gcc.c-torture/execute/vshuf-main.inc: New file. - * gcc.c-torture/execute/vshuf-v16qi.c: New test. - * gcc.c-torture/execute/vshuf-v2df.c: New test. - * gcc.c-torture/execute/vshuf-v2di.c: New test. - * gcc.c-torture/execute/vshuf-v2sf.c: New test. - * gcc.c-torture/execute/vshuf-v2si.c: New test. - * gcc.c-torture/execute/vshuf-v4df.c: New test. - * gcc.c-torture/execute/vshuf-v4di.c: New test. - * gcc.c-torture/execute/vshuf-v4hi.c: New test. - * gcc.c-torture/execute/vshuf-v4sf.c: New test. - * gcc.c-torture/execute/vshuf-v4si.c: New test. - * gcc.c-torture/execute/vshuf-v8hi.c: New test. - * gcc.c-torture/execute/vshuf-v8qi.c: New test. - * gcc.c-torture/execute/vshuf-v8si.c: New test. - -2011-10-06 Jakub Jelinek - - PR tree-optimization/49279 - * gcc.dg/tree-ssa/restrict-4.c: XFAIL. - * gcc.c-torture/execute/pr49279.c: New test. - -2011-10-06 Bernd Schmidt - - PR target/49049 - * gcc.c-torture/compile/pr49049.c: New test. - -2011-10-06 Ulrich Weigand - - PR target/50305 - * gcc.target/arm/pr50305.c: New test. - -2011-10-06 Richard Guenther - - PR tree-optimization/38884 - * gcc.dg/tree-ssa/ssa-fre-34.c: New testcase. - * gcc.dg/tree-ssa/ssa-fre-35.c: Likewise. - -2011-10-05 David S. Miller - - * gcc.target/sparc/lzd.c: New test. - * gcc.target/sparc/popc.c: New test. - -2011-10-05 Uros Bizjak - - * gcc.dg/strlenopt-21.c (dg-options): Remove -fdump-tree-optimized. - * gcc.dg/ipa/inline-5.c: Cleanup inline ipa dump. - * g++.dg/other/final1.C: Cleanup original tree dump. - -2011-10-05 Jakub Jelinek - - PR tree-optimization/50613 - * gcc.dg/pr50613.c: New test. - -2011-10-05 Richard Henderson - - * gcc.c-torture/execute/vect-shuffle-1.c: Rewrite. - * gcc.c-torture/execute/vect-shuffle-2.c: Rewrite. - * gcc.c-torture/execute/vect-shuffle-3.c: Rewrite. - * gcc.c-torture/execute/vect-shuffle-4.c: Rewrite. - * gcc.c-torture/execute/vect-shuffle-5.c: Rewrite. - * gcc.c-torture/execute/vect-shuffle-6.c: New test. - * gcc.c-torture/execute/vect-shuffle-7.c: New test. - * gcc.c-torture/execute/vect-shuffle-8.c: New test. - -2011-10-05 Uros Bizjak - - * gcc.dg/vect/vect.exp (VEC_CFLAGS): Move initialization after - DEFAULT_VECTFLAGS initialization. Append "-fdump-tree-veclower2". - * gcc.dg/vect/vec-scal-opt.c: Scan and cleanup veclower2 tree dump. - * gcc.dg/vect/vec-scal-opt1.c: Ditto. - * gcc.dg/vect/vec-scal-opt2.c: Ditto. - -2011-10-05 Richard Guenther - - PR tree-optimization/38885 - * gcc.dg/tree-ssa/ssa-fre-33.c: New testcase. - -2011-10-05 Bernd Schmidt - - * gcc.target/i386/sw-1.c: New test. - -2011-10-05 Uros Bizjak - - * gcc.target/i386/avx256-unaligned-load-3.c (dg-options): Add - -mtune=generic. - * gcc.target/i386/avx256-unaligned-store-3.c (dg-options): Ditto. - -2011-10-05 Uros Bizjak - - * gcc.dg/torture/builtin-complex-1.c: Use dg-add-options ieee. - -2011-10-04 David S. Miller - - * gcc.target/sparc/fhalve.c: New test. - * gcc.target/sparc/fnegop.c: New test. - * gcc.target/sparc/xmul.c: New test. - -2011-10-04 Janus Weil - - PR fortran/35831 - * gfortran.dg/dummy_procedure_6.f90: New. - -2011-10-04 Jakub Jelinek - - PR tree-optimization/50604 - * gcc.dg/pr50604.c: New test. - -2011-10-04 Rainer Orth - - PR tree-optimization/49662 - * gcc.dg/graphite/interchange-14.c: Remove xfail *-*-*. - * gcc.dg/graphite/interchange-15.c: Likewise. - * gcc.dg/graphite/interchange-mvt.c: Likewise. - -2011-10-04 Jakub Jelinek - - * gcc.dg/tree-ssa/restrict-4.c: New test. - -2011-10-04 Artem Shinkarov - - * gcc.c-torture/execute/vector-compare-1.c: Fix trailing white spaces. - (main): Use __typeof to get result type of comparison. - -2011-10-04 Ira Rosen - - * lib/target-supports.exp (check_effective_target_vect_multiple_sizes): - Make et_vect_multiple_sizes_saved global. - (check_effective_target_vect64): Make et_vect64_saved global. - -2011-10-03 Artjoms Sinkarovs - - * gcc.c-torture/execute/vect-shuffle-2.c: New test. - * gcc.c-torture/execute/vect-shuffle-4.c: New test. - * gcc.c-torture/execute/vect-shuffle-1.c: New test. - * gcc.dg/builtin-complex-err-1.c: Adjust. - -2011-10-02 Jason Merrill - - * g++.dg/cpp0x/range-for22.C: New. - - * g++.dg/cpp0x/variadic65.C: Remove xfails. - * g++.dg/cpp0x/variadic82.C: Remove xfails. - * g++.dg/cpp0x/variadic83.C: Remove xfails. - * g++.dg/cpp0x/variadic105.C: Remove xfails. - - * g++.dg/cpp0x/nsdmi5.C: New. - -2011-10-02 Richard Sandiford - - PR target/50579 - * gcc.target/mips/mips.exp (mips_long32_abi_p, mips_long64_abi_p): - New procedures. - (mips-dg-options): Force an ABI option if the current ABI is - incompatible with the required -mlong setting. Likewise force - a long setting if the current one is incompatible with the - chosen ABI. Keep abi_test_option_p, abi and eabi_p updated - throughout procedure. - * gcc.target/mips/abi-o64-long64.c: Require -mno-abicalls - instead of addressing=absolute. - -2011-10-02 Richard Sandiford - - * gcc.target/mips/stack-1.c: New test. - -2011-10-02 Richard Sandiford - - * gcc.dg/pr49696.c: New test. - -2011-10-02 Jan Hubicka - - * gcc.dg/ipa/ctor-empty-1.c: Update dump file. - -2011-10-01 David S. Miller - - * gcc.target/sparc/cmask.c: New test. - * gcc.target/sparc/fpadds.c: New test. - * gcc.target/sparc/fshift.c: New test. - * gcc.target/sparc/fucmp.c: New test. - * gcc.target/sparc/vis3misc.c: New test. - -2011-10-01 Janus Weil - - PR fortran/50585 - * gfortran.dg/assumed_charlen_arg_2.f90: New. - -2011-09-30 Janis Johnson - - PR c++/44473 - * g++.dg/dfp/44473-1.C: New test. - * g++.dg/dfp/44473-2.C: New test. - * g++.dg/dfp/mangle-1.C: New test. - * g++.dg/dfp/mangle-2.C: New test. - * g++.dg/dfp/mangle-3.C: New test. - * g++.dg/dfp/mangle-4.C: New test. - * g++.dg/dfp/mangle-5.C: New test. - -2011-09-30 Jakub Jelinek - - PR inline-asm/50571 - * gcc.dg/pr50571.c: New test. - - PR tree-optimization/46309 - * gcc.dg/pr46309.c: New test. - -2011-09-30 Jakub Jelinek - - * gcc.dg/strlenopt-21.c: New test. - -2011-09-30 Revital Eres - - * gcc.dg/sms-10.c: New file. - -2011-09-30 Ramana Radhakrishnan - - * gcc.target/arm/pr50099.c: New test. - -2011-09-30 Matthew Gretton-Dann - - * gcc.target/arm/pr42835.c: Add -fno-tree-tail-merge. - -2011-09-30 David S. Miller - - * gcc.target/sparc/bmaskbshuf.c: New test. - * gcc.target/sparc/edgen.c: New test. - -2011-09-29 Janus Weil - - PR fortran/50547 - * gfortran.dg/pure_formal_proc_3.f90: New. - - PR fortran/50553 - * gfortran.dg/stfunc_7.f90: New. - -2011-09-29 Artjoms Sinkarovs - - * gcc.c-torture/execute/vector-compare-1.c: New testcase. - * gcc.c-torture/execute/vector-compare-2.c: Likewise. - * gcc.dg/vector-compare-1.c: Likewise. - * gcc.dg/vector-compare-2.c: Likewise. - -2011-09-29 David S. Miller - - * gcc.target/sparc/array.c: New test. - -2011-09-29 Jiangning Liu - - * gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c: Explicitly turn on - loop unroll and set max unroll times to 8. - * gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c: Likewise. - * gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c: Likewise. - * gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c: Likewise. - * gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c: Likewise. - -2011-09-28 Paolo Carlini - - PR c++/40145 - * g++.dg/ext/visibility/warn5.C: New. - -2011-09-28 Paolo Carlini - - PR c++/45278 - * g++.dg/warn/Wextra-3.C: New. - -2011-09-28 Oleg Endo - - PR target/49486 - * gcc.target/sh/pr49468-si.c: New. - -2011-09-28 Tom de Vries - - PR testsuite/50485 - * gcc.target/i386/sse4_1-blendps.c: Include . - (TEST): Initialize src3 with random floats. - * gcc.target/i386/sse4_1-blendps-2.c (sse4_1_test): Remove field i - from union src3. Initialize src3 with random floats. - -2011-09-27 Oleg Endo - - * gcc.target/sh/mfmovd.c: Extend list of supported targets. - * gcc.target/sh/struct-arg-dw2.c: Fix typo. - * gcc.target/sh/sh4a-sincos.c: Make test SH4A only. - * gcc.target/sh/sh4a-sincosf.c: Ditto. - * gcc.target/sh/sh4a-cos.c: Ditto. - * gcc.target/sh/sh4a-cosf.c: Ditto. - * gcc.target/sh/sh4a-sin.c: Ditto. - * gcc.target/sh/sh4a-sinf.c: Ditto. - * gcc.target/sh/sh4a-fsrra.c: Ditto. - * gcc.target/sh/sh4a-memmovua.c: Ditto. - * gcc.target/sh/sh4a-bitmovua.c: Ditto. - -2011-09-27 Paolo Carlini - - PR c++/31489 - * g++.dg/parse/error40.C: New. - * g++.dg/warn/incomplete1.C: Adjust. - -2011-09-27 Jan Hubicka - - PR middle-end/49463 - * gcc.c-torture/execute/builtins/strstr-asm-lib.c (my_strstr): - Mark used. - -2011-09-27 Jakub Jelinek - - * gcc.dg/strlenopt-1.c: New test. - * gcc.dg/strlenopt-1f.c: New test. - * gcc.dg/strlenopt-2.c: New test. - * gcc.dg/strlenopt-2f.c: New test. - * gcc.dg/strlenopt-3.c: New test. - * gcc.dg/strlenopt-4.c: New test. - * gcc.dg/strlenopt-4g.c: New test. - * gcc.dg/strlenopt-4gf.c: New test. - * gcc.dg/strlenopt-5.c: New test. - * gcc.dg/strlenopt-6.c: New test. - * gcc.dg/strlenopt-7.c: New test. - * gcc.dg/strlenopt-8.c: New test. - * gcc.dg/strlenopt-9.c: New test. - * gcc.dg/strlenopt-10.c: New test. - * gcc.dg/strlenopt-11.c: New test. - * gcc.dg/strlenopt-12.c: New test. - * gcc.dg/strlenopt-12g.c: New test. - * gcc.dg/strlenopt-13.c: New test. - * gcc.dg/strlenopt-14g.c: New test. - * gcc.dg/strlenopt-14gf.c: New test. - * gcc.dg/strlenopt-15.c: New test. - * gcc.dg/strlenopt-16g.c: New test. - * gcc.dg/strlenopt-17g.c: New test. - * gcc.dg/strlenopt-18g.c: New test. - * gcc.dg/strlenopt.h: New file. - -2011-09-27 Tom de Vries - - PR middle-end/43864 - * gcc.dg/fold-compare-2.c (dg-options): Add -fno-tree-tail-merge. - * gcc/testsuite/gcc.dg/uninit-pred-2_c.c: Same. - * gcc.dg/pr43864.c: New test. - * gcc.dg/pr43864-2.c: Same. - * gcc.dg/pr43864-3.c: Same. - * gcc.dg/pr43864-4.c: Same. - -2011-09-27 Jan Hubicka - - * gcc.dg/ipa/inline-5.c: New testcase. - -2011-09-27 Ira Rosen - - * gcc.dg/vect/bb-slp-11.c: Expect to get vectorized with 64-bit - vectors. - * gcc.dg/vect/bb-slp-27.c: New. - * gcc.dg/vect/bb-slp-28.c: New. - -2011-09-27 Bernd Schmidt - - * testsuite/lib/target-supports.exp (check_profiling_available): - Don't rely solely on TLS tests for -fprofile-generate, fall - through to the other code. - -2011-09-27 Richard Guenther - - PR tree-optimization/50363 - * gcc.dg/torture/pr50363.c: New testcase. - -2011-09-26 Jason Merrill - - PR c++/45012 - * g++.dg/template/partial13.C: New. - - PR c++/46105 - * g++.dg/template/partial12.C: New. - - PR c++/50508 - * g++.dg/cpp0x/constexpr-typedef1.C: New. - -2011-09-26 Paolo Carlini - - PR c++/45487 - * g++.dg/diagnostic/bindings1.C: New. - * g++.old-deja/g++.pt/memtemp77.C: Adjust. - -2011-09-26 David S. Miller - - * gcc.target/sparc/wrgsr.c: New test. - * gcc.target/sparc/rdgsr.c: New test. - * gcc.target/sparc/edge.c: New test. - * gcc.target/sparc/fcmp.c: New test. - - * gcc.target/sparc/edge.c: Update for new return types. - * gcc.target/sparc/fcmp.c: Likewise. - - * gcc.target/sparc/fpaddsubi.c: New test. - -2011-09-26 Janus Weil - - PR fortran/50515 - * gfortran.dg/common_15.f90: New. - - PR fortran/50517 - * gfortran.dg/dummy_procedure_5.f90: New. - * gfortran.dg/interface_26.f90: Modified error message. - * gfortran.dg/proc_ptr_11.f90: Ditto. - * gfortran.dg/proc_ptr_15.f90: Ditto. - * gfortran.dg/proc_ptr_comp_20.f90: Ditto. - * gfortran.dg/proc_ptr_result_5.f90: Ditto. - -2011-09-26 Jason Merrill - - PR c++/50512 - * g++.dg/overload/rvalue3.C: New. - - PR c++/50523 - * g++.dg/overload/ref-conv2.C: New. - - * g++.dg/cpp0x/nsdmi-template1.C: New. - -2011-09-26 Paolo Carlini - - * g++.dg/cpp0x/nullptr25.C: New. - -2011-09-26 Richard Guenther - - PR tree-optimization/50472 - * gcc.dg/torture/pr50472.c: New testcase. - -2011-09-26 Eric Botcazou - - * gnat.dg/opt22.adb: New test. - * gnat.dg/opt22_pkg.ad[sb]: New helper. - -2011-09-26 Eric Botcazou - - * gnat.dg/opt21.adb: New test. - * gnat.dg/opt21_pkg.ad[sb]: New helper. - -2011-09-26 Eric Botcazou - - * gnat.dg/opt20.ad[sb]: New test. - * gnat.dg/opt20_pkg.ads: New helper. - -2011-09-26 Eric Botcazou - - * gnat.dg/array17.adb: New test. - * gnat.dg/array17_pkg.ads: New helper. - -2011-09-25 Jason Merrill - - * g++.dg/cpp0x/nsdmi-defer4.C: New. - -2011-09-25 Eric Botcazou - - * gnat.dg/frame_overflow.ads: New. - * gnat.dg/frame_overflow.adb: Adjust. - * gnat.dg/specs/addr1.ads: Likewise. - -2011-09-25 Jakub Jelinek - - * g++.dg/tree-ssa/restrict2.C: New test. - -2011-09-25 Ira Rosen - - * lib/target-supports.exp (check_effective_target_vect64): New. - * gcc.dg/vect/bb-slp-11.c: Expect the error message twice in case - of multiple vector sizes. - * gcc.dg/vect/bb-slp-26.c: New. - -2011-09-25 Paolo Carlini - - PR c++/50280 - * g++.dg/template/bitfield1.C: New. - -2011-09-25 Ira Rosen - - * gcc.dg/vect/bb-slp-24.c: New. - -2011-09-24 Jason Merrill - - * g++.dg/cpp0x/nsdmi-eh1.C: New. - - * g++.dg/cpp0x/nsdmi-defer3.C: New. - - * g++.dg/cpp0x/nsdmi-defer1.C: New. - * g++.dg/cpp0x/nsdmi-defer2.C: New. - - * g++.dg/cpp0x/nsdmi1.C: New. - * g++.dg/cpp0x/nsdmi2.C: New. - * g++.dg/cpp0x/nsdmi3.C: New. - * g++.dg/cpp0x/nsdmi4.C: New. - * g++.old-deja/g++.other/init4.C: New. - -2011-09-24 Paolo Carlini - - PR c++/44267 - * g++.dg/template/sfinae28.C: New. - -2011-09-23 Ian Lance Taylor - - * go.test/go-test.exp (errchk): Handle more cases of getting - correct Tcl backslash quoting in regular expressions in test file. - -2011-09-23 Jason Merrill - - Core 253 - * g++.dg/init/const8.C: New. - * g++.dg/cpp0x/constexpr-object1.C: Add a data member. - * g++.dg/cpp0x/defaulted2.C: Likewise. - * g++.dg/cpp0x/pr42844-2.C: Likewise. - * g++.dg/init/pr20039.C: Likewise. - * g++.dg/init/pr42844.C: Likewise. - -2011-09-23 Jan Hubicka - - * gcc.dg/ipa/inline-1.c: new testcase. - * gcc.dg/ipa/inline-2.c: new testcase. - * gcc.dg/ipa/inline-3.c: new testcase. - * gcc.dg/ipa/inline-4.c: new testcase. - -2011-09-23 Paolo Carlini - - PR c++/50258 - * g++.dg/cpp0x/constexpr-static8.C: New. - -2011-09-23 Jakub Jelinek - - * gcc.target/i386/avxfp-1.c: New test. - * gcc.target/i386/avxfp-2.c: New test. - -2011-09-23 Terry Guo - - * gcc.c-torture/execute/941014-1.x: Deleted. - -2011-09-22 Paolo Carlini - - PR c++/50491 - * g++.dg/cpp0x/pr50491.C: New. - -2011-09-22 Steven G. Kargl - - PR testsuite/50487 - * gfortran.dg/bessel_6.f90: Fix tolerance test. - -2011-09-22 Paolo Carlini - - PR c++/50371 - * g++.dg/cpp0x/nullptr24.C: New. - -2011-09-22 Uros Bizjak - - PR target/50482 - * gcc.target/i386/pr50482.c: New test. - -2011-09-22 Joseph Myers - - * gcc.target/i386/pad-2.c, gcc.target/i386/pad-3.c, - gcc.target/i386/pad-4.c, gcc.target/i386/pad-5a.c, - gcc.target/i386/pad-5b.c, gcc.target/i386/pad-6a.c, - gcc.target/i386/pad-6b.c, gcc.target/i386/pad-7.c, - gcc.target/i386/pad-8.c, gcc.target/i386/pad-9.c, - gcc.target/i386/pad-10.cm gcc.target/i386/vect-double-1.c: Skip if - multilib options contain different -march= from dg-options. - -2011-09-22 Jonathan Wakely - Paolo Carlini - - PR c++/50344 - * g++.dg/template/friend52.C: New. - -2011-09-22 Richard Sandiford - - * gcc.target/arm/cmp-1.c: New test. - * gcc.target/arm/cmp-2.c: Likewise. - -2011-09-22 Janus Weil - - PR fortran/41733 - * gfortran.dg/impure_actual_1.f90: Modified error message. - * gfortran.dg/proc_ptr_32.f90: New. - * gfortran.dg/proc_ptr_33.f90: New. - -2011-09-22 Ira Rosen - - PR tree-optimization/50451 - * gcc.dg/vect/pr50451.c: New test. - -2011-09-21 Ian Lance Taylor - - * go.test/go-test.exp (errchk): Add special case for bug332. - (go-gc-tests): Add special cases for bug347 and bug348. Recognize - some more test lines. - -2011-09-21 Uros Bizjak - - * g++.dg/other/i386-3.C: Remove duplicated dg-options. - * g++.dg/other/i386-4.C: Remove dg-require-effective-target directive. - * g++.dg/other/i386-8.C: Ditto. - * g++.dg/other/pr34435.C: Ditto. - * g++.dg/other/pr39496.C: Ditto. - * g++.dg/other/mmintrin.C: Ditto. - -2011-09-21 Jakub Jelinek - - * gcc.dg/vect/vect-cond-7.c: New test. - * gcc.target/i386/sse4_1-cond-1.c: New test. - * gcc.target/i386/avx-cond-1.c: New test. - -2011-09-21 Uros Bizjak - - PR target/50464 - * g++.dg/other/pr50464.C: New test. - -2011-09-21 Kirill Yukhin - - * gcc.target/i386/bmi2-mulx32-2.c: New test. - * gcc.target/i386/bmi2-mulx32-2a.c: Ditto. - * gcc.target/i386/bmi2-mulx64-2.c: Ditto. - * gcc.target/i386/bmi2-mulx64-2a.c: Ditto. - -2011-09-21 Eric Botcazou - - * gnat.dg/opt19.adb: New test. - -2011-09-21 Terry Guo - - * gcc.target/arm/neon-thumb2-move.c: Skip the warning message - on arch conflict when testing case on targets other than armv7-a. - -2011-09-21 Paolo Carlini - - PR c++/50454 - * g++.dg/ext/int128-1.C: New. - * g++.dg/ext/int128-2.C: Likewise. - * g++.dg/ext/int128-2.h: Likewise. - -2011-09-20 H.J. Lu - - PR testsuite/50469 - * gfortran.dg/storage_size_2.f08: Replace "must be be" with "must be". - -2011-09-20 Jason Merrill - - * g++.dg/cpp0x/constexpr-generated1.C: New. - - PR c++/50442 - * g++.dg/overload/ref-conv1.C: New. - -2011-09-20 Roberto Agostino Vitillo - - * g++.dg/other/final1.C: New. - -2011-09-20 Ira Rosen - - * g++.dg/vect/slp-pr50413.cc: Don't run the test. Remove main () - and get_bit (). - -2011-09-19 Ian Bolton - - * gcc.dg/20100906-1.c: Use -fno-short-enums option for - "target arm_eabi". - -2011-09-19 Ira Rosen - - PR tree-optimization/50413 - * g++.dg/vect/vect.exp: Run slp-pr* tests with - -fdump-tree-slp-details. Run other tests with - -fdump-tree-vect-details. - * g++.dg/vect/slp-pr50413.cc: New. - -2011-09-18 Dominique d'Humieres - Ira Rosen - - PR testsuite/50435 - * gcc.dg/vect/bb-slp-25.c: Add an if to avoid loop vectorization. - Fix underscores around restrict. - -2011-09-18 Ira Rosen - - PR tree-optimization/50414 - * gfortran.dg/vect/Ofast-pr50414.f90: New. - * gfortran.dg/vect/vect.exp: Run Ofast-* tests with -Ofast. - * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: New. - -2011-09-18 Ira Rosen - - PR tree-optimization/50412 - * gfortran.dg/vect/pr50412.f90: New. - -2011-09-16 Jason Merrill - - PR c++/50424 - * g++.dg/eh/defarg1.C: New. - -2011-09-16 Jakub Jelinek - - * gcc.dg/vect/vect-reduc-10.c: New test. - * gcc.target/i386/avx-reduc-1.c: New test. - - * gcc.target/i386/sse2-extract-1.c: New test. - * gcc.target/i386/avx-extract-1.c: New test. - -2011-09-16 Terry Guo - - * gcc.dg/tree-ssa/foldconst-3.c: Don't use short enums. - -2011-09-15 Diego Novillo - - * lib/g++.exp (g++_init): Add $TEST_ALWAYS_FLAGS to - ALWAYS_CXXFLAGS, if defined. - * lib/gfortran.exp (gfortran_init): Add $TEST_ALWAYS_FLAGS to - ALWAYS_GFORTRANFLAGS, if defined. - * lib/go.exp (go_target_compile): Add $TEST_ALWAYS_FLAGS to - ALWAYS_GOCFLAGS, if defined. - * lib/obj-c++.exp (obj-c++_init): Add $TEST_ALWAYS_FLAGS to - ALWAYS_OBJCXXFLAGS, if defined. - * lib/gcc.exp (gcc_target_compile): Add $TEST_ALWAYS_FLAGS to - additional_flags, if defined. - * lib/gnat.exp (gnat_target_compile): Likewise. - * lib/objc.exp (objc_target_compile): Likewise. - * lib/target-supports-dg.exp (dg-add-options): Handle - TEST_ALWAYS_FLAGS. - -2011-09-15 Tom de Vries - - PR testsuite/50322 - * gcc.dg/tree-ssa/ivopts-lt.c: require stdint_types. include stdint.h. - Use uintptr_t in f1. Undo avr xfails. - -2011-09-15 Janus Weil - - PR fortran/50401 - PR fortran/50403 - * gfortran.dg/function_types_3.f90: New. - -2011-09-15 Jason Merrill - - PR c++/50365 - * g++.dg/cpp0x/trailing7.C: New. - - PR c++/50361 - * g++.dg/cpp0x/nullptr23.C: New. - -2011-09-15 Ira Rosen - - * gcc.dg/vect/bb-slp-25.c: New. - -2011-09-14 Paolo Carlini - - PR c++/50391 - * g++.dg/cpp0x/noexcept15.C: New. - -2011-09-14 Tom de Vries - - PR middle-end/50251 - * gcc.dg/pr50251.c: New test. - -2011-09-14 Tobias Burnus - - PR fortran/34547 - PR fortran/50375 - * gfortran.dg/null_5.f90: New. - * gfortran.dg/null_6.f90: New. - -2011-09-13 Bernd Schmidt - - * gcc.c-torture/compile/20110913-1.c: New test. - -2011-09-13 Janus Weil - - PR fortran/50379 - * gfortran.dg/result_2.f90: New. - -2011-09-13 Sevak Sargsyan - - * gcc.target/arm/neon-combine-sub-abs-into-vabd.c: New test. - -2011-09-13 Dodji Seketeli - - PR c++/48320 - * g++.dg/cpp0x/variadic116.C: New test case. - -2011-09-12 Richard Sandiford - - * gcc.target/mips/mips.exp (mips_option_groups): Add debug options. - * gcc.target/mips/interrupt_handler-2.c: New test. - * gcc.target/mips/interrupt_handler-3.c: Likewise. - -2011-09-12 Jason Merrill - - * g++.dg/cpp0x/fntmpdefarg2.C: Add more tests. - - * g++.dg/cpp0x/explicit7.C: New. - -2011-09-12 Jakub Jelinek - - PR rtl-optimization/50212 - * g++.dg/other/pr50212.C: New test. - -2011-09-12 Georg-Johann Lay - - PR target/43746 - * testsuite/gcc.target/avr/torture/avr-torture.exp - (AVR_TORTURE_OPTIONS): Add test cases "-O2 -fdata-sections" and - "-O2 -fmerge-all-constants". - -2011-09-11 Thomas Koenig - - PR fortran/50327 - * gfortran.dg/do_while_1.f90: New test. - -2011-09-11 Janus Weil - - PR fortran/35831 - PR fortran/47978 - * gfortran.dg/dynamic_dispatch_5.f03: Fix invalid test case. - * gfortran.dg/proc_decl_26.f90: New. - * gfortran.dg/typebound_override_2.f90: New. - * gfortran.dg/typebound_proc_6.f03: Changed wording in error message. - -2011-09-11 Eric Botcazou - - * gnat.dg/cond_expr2.ad[sb]: New test. - -2011-09-11 Eric Botcazou - - * gnat.dg/atomic5.ad[sb]: New test. - -2011-09-10 H.J. Lu - - * gcc.dg/sibcall-6.c: Check ia32 instead of ilp32. - -2011-09-09 Georg-Johann Lay - - PR target/49030 - * gcc.dg/torture/pr49030.c: Run only if target int32plus. - -2011-09-09 Iain Sandoe - - PR target/49614 - * gcc.dg/vmx/gcc-bug-i.c (inline_me): Declare 'inline'. - -2011-09-09 Richard Guenther - - PR tree-optimization/50328 - * gcc.dg/vect/fast-math-vect-outer-7.c: New testcase. - -2011-09-09 Richard Guenther - - PR middle-end/50333 - * gcc.dg/torture/pr50333.c: New testcase. - -2011-09-08 Andrew Stubbs - - PR tree-optimization/50318 - * gcc.target/arm/pr50318-1.c: New file. - -2011-09-08 Uros Bizjak - - * gcc.target/i386/all_one_m256i.c: New test. - -2011-09-08 Paolo Carlini - - PR c++/50324 - * g++.dg/cpp0x/sfinae28.C: New. - -2011-09-08 Dodji Seketeli - - PR c/50332 - * gcc.dg/attr-invalid.c: Adjust as __attribute__((used) is no - longer ignored on typedefs. - - PR c++/33255 - Support -Wunused-local-typedefs warning - * g++.dg/warn/Wunused-local-typedefs.C: New test file. - * c-c++-common/Wunused-local-typedefs.c: Likewise. - -2011-09-08 Martin Jambor - - PR tree-optimization/50287 - * gcc.dg/torture/pr50287.c: New test. - -2011-09-08 Richard Guenther - - PR tree-optimization/19831 - * gcc.dg/tree-ssa/pr19831-1.c: New testcase. - * gcc.dg/tree-ssa/pr19831-2.c: Likewise. - * gcc.dg/tree-ssa/pr19831-3.c: Likewise. - * gcc.dg/errno-1.c: Adjust. - -2011-09-08 Richard Guenther - - PR tree-optimization/19831 - * gcc.dg/tree-ssa/ssa-dce-8.c: New testcase. - -2011-09-08 Tobias Burnus - - PR fortran/44646 - * gfortran.dg/do_concurrent_1.f90: New. - * gfortran.dg/do_concurrent_2.f90: New. - -2011-09-08 Jakub Jelinek - - PR target/50310 - * gcc.c-torture/execute/ieee/pr50310.c: New test. - * gcc.dg/pr50310-2.c: New test. - -2011-09-07 Janus Weil - - PR fortran/48095 - * gfortran.dg/derived_constructor_comps_2.f90: Modified. - * gfortran.dg/impure_constructor_1.f90: Modified. - * gfortran.dg/proc_ptr_comp_33.f90: New. - -2011-09-07 Jakub Jelinek - - PR target/50310 - * gcc.dg/pr50310-1.c: New test. - -2011-09-07 Georg-Johann Lay - - PR middle-end/48571 - * gcc.c-torture/execute/pr48571-1.c (bar): Use offsets sizeof(int) - instead of 4. - -2011-09-07 Paolo Carlini - - PR c++/50309 - * g++.dg/cpp0x/noexcept14.C: New. - -2011-09-07 Jason Merrill - - * g++.dg/cpp0x/constexpr-ref3.C: New. - - * g++.dg/cpp0x/sfinae11.C: Check for explanatory diagnostic. - -2011-09-07 Georg-Johann Lay - - * gcc.dg/section1.c: Don't xfail for avr. - -2011-09-07 Georg-Johann Lay - - PR tree-optimization/50322 - * gcc.dg/tree-ssa/ivopts-lt.c: Add xfails for avr. - -2011-09-07 Martin Jambor - - * g++.dg/tree-ssa/pr49911.C: Added flag -fstrict-enums. - -2011-09-07 Martin Jambor - - PR tree-optimization/49911 - * g++.dg/tree-ssa/pr49911.C: New test. - -2011-09-07 Richard Sandiford - - PR target/49030 - * gcc.dg/torture/pr49030.c: New test. - -2011-09-07 Janus Weil - - PR fortran/50288 - * gfortran.dg/class_4c.f03: Modified ("dg-do link" and "dg-final"). - * gfortran.dg/class_4d.f03: Deleted. - * gfortran.dg/class_45b.f03: Modififed ("dg-do link"). - -2011-09-07 Richard Guenther - - * gcc.dg/tree-ssa/forwprop-16.c: New testcase. - -2011-09-07 Jiangning Liu - - PR tree-optimization/46021 - * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL on arm*-*-*. - -2011-09-06 Michael Meissner - - * g++.dg/ext/altivec-17.C: Fix dg-error to match current compiler. - -2011-09-06 Eric Botcazou - - * gcc.c-torture/compile/20110906-1.c: New test. - -2011-09-06 Uros Bizjak - - * gcc.target/i386/builtin-apply-mmx.c: Require ia32 effective target. - -2011-09-06 Enkovich Ilya - - * gcc.dg/tree-ssa/pr38533.c (dg-options): Added option - --param tree-reassoc-width=1. - - * gcc.dg/tree-ssa/reassoc-24.c: New test. - * gcc.dg/tree-ssa/reassoc-25.c: Likewise. - -2011-09-06 Richard Guenther - - PR tree-optimization/48149 - * gcc.dg/tree-ssa/ssa-fre-32.c: New testcase. - -2011-09-06 Richard Guenther - - PR tree-optimization/48317 - * gcc.dg/tree-ssa/ssa-fre-31.c: New testcase. - -2011-09-06 Ira Rosen - - * lib/target-supports.exp (check_effective_target_vect_multiple_sizes): - New procedure. - (add_options_for_quad_vectors): Replace with ... - (add_options_for_double_vectors): ... this. - * gfortran.dg/vect/pr19049.f90: Expect more printings on targets that - support multiple vector sizes since the vectorizer attempts to - vectorize with both vector sizes. - * gcc.dg/vect/no-vfa-vect-79.c, - gcc.dg/vect/no-vfa-vect-102a.c, gcc.dg/vect/vect-outer-1a.c, - gcc.dg/vect/vect-outer-1b.c, gcc.dg/vect/vect-outer-2b.c, - gcc.dg/vect/vect-outer-3a.c, gcc.dg/vect/no-vfa-vect-37.c, - gcc.dg/vect/vect-outer-3b.c, gcc.dg/vect/no-vfa-vect-101.c, - gcc.dg/vect/no-vfa-vect-102.c, gcc.dg/vect/vect-reduc-dot-s8b.c, - gcc.dg/vect/vect-outer-1.c, gcc.dg/vect/vect-104.c: Likewise. - * gcc.dg/vect/vect-42.c: Run with 64 bit vectors if applicable. - * gcc.dg/vect/vect-multitypes-6.c, gcc.dg/vect/vect-52.c, - gcc.dg/vect/vect-54.c, gcc.dg/vect/vect-46.c, gcc.dg/vect/vect-48.c, - gcc.dg/vect/vect-96.c, gcc.dg/vect/vect-multitypes-3.c, - gcc.dg/vect/vect-40.c: Likewise. - * gcc.dg/vect/vect-outer-5.c: Remove quad-vectors option as redundant. - * gcc.dg/vect/vect-109.c, gcc.dg/vect/vect-peel-1.c, - gcc.dg/vect/vect-peel-2.c, gcc.dg/vect/slp-25.c, - gcc.dg/vect/vect-multitypes-1.c, gcc.dg/vect/slp-3.c, - gcc.dg/vect/no-vfa-pr29145.c, gcc.dg/vect/vect-multitypes-4.c: - Likewise. - * gcc.dg/vect/vect-peel-4.c: Make ia global. - -2011-09-05 Richard Sandiford - - PR target/49606 - * gcc.target/mips/abi-main.h: New file. - * gcc.target/mips/abi-o32-long32.c: New test. - * gcc.target/mips/abi-o32-long64.c: Likewise. - * gcc.target/mips/abi-o64-long32.c: Likewise. - * gcc.target/mips/abi-o64-long64.c: Likewise. - * gcc.target/mips/abi-n32-long32.c: Likewise. - * gcc.target/mips/abi-n32-long64.c: Likewise. - * gcc.target/mips/abi-n64-long32.c: Likewise. - * gcc.target/mips/abi-n64-long64.c: Likewise. - * gcc.target/mips/abi-o32-long32-no-shared.c: Likewise. - * gcc.target/mips/abi-o32-long64-no-shared.c: Likewise. - * gcc.target/mips/abi-o64-long32-no-shared.c: Likewise. - * gcc.target/mips/abi-o64-long64-no-shared.c: Likewise. - * gcc.target/mips/abi-n32-long32-no-shared.c: Likewise. - * gcc.target/mips/abi-n32-long64-no-shared.c: Likewise. - * gcc.target/mips/abi-n64-long32-no-shared.c: Likewise. - * gcc.target/mips/abi-n64-long64-no-shared.c: Likewise. - * gcc.target/mips/abi-o32-long32-pic.c: Likewise. - * gcc.target/mips/abi-o32-long64-pic.c: Likewise. - * gcc.target/mips/abi-o64-long32-pic.c: Likewise. - * gcc.target/mips/abi-o64-long64-pic.c: Likewise. - * gcc.target/mips/abi-n32-long32-pic.c: Likewise. - * gcc.target/mips/abi-n32-long64-pic.c: Likewise. - * gcc.target/mips/abi-n64-long32-pic.c: Likewise. - * gcc.target/mips/abi-n64-long64-pic.c: Likewise. - * gcc.target/mips/abi-eabi32-long32.c: Likewise. - * gcc.target/mips/abi-eabi32-long64.c: Likewise. - * gcc.target/mips/abi-eabi64-long32.c: Likewise. - * gcc.target/mips/abi-eabi64-long64.c: Likewise. - * gcc.target/mips/mips.exp: Make -mshared implied -mabicalls. - * gcc.target/mips/branch-2.c: Remove -mabicalls. - * gcc.target/mips/branch-3.c: Likewise. - * gcc.target/mips/branch-4.c: Likewise. - * gcc.target/mips/branch-5.c: Likewise. - * gcc.target/mips/branch-6.c: Likewise. - * gcc.target/mips/branch-7.c: Likewise. - * gcc.target/mips/branch-8.c: Likewise. - * gcc.target/mips/branch-9.c: Likewise. - * gcc.target/mips/branch-10.c: Likewise. - * gcc.target/mips/branch-11.c: Likewise. - * gcc.target/mips/branch-12.c: Likewise. - * gcc.target/mips/branch-13.c: Likewise. - * gcc.target/mips/lazy-binding-1.c: Likewise. - -2011-09-05 Georg-Johann Lay - - * gcc.dg/ipa/ipcp-3.c (mark_cell): Use mask 1 << 14 instead of 1 << 18 - to avoid warning on int=16 platforms.. - -2011-09-05 Jakub Jelinek - - * gcc.dg/compat/struct-layout-1_test.h: Decrease bitfield size - to work even with -fshort-enums. - -2011-09-04 Jan Hubicka - - * gcc.c-torture/compile/20110902.c: new testcase. - -2011-09-04 Jason Merrill - - PR c++/49267 - * g++.dg/cpp0x/rv-conv1.C: New. - - DR 1328 - * g++.dg/cpp0x/rv-func3.C: New. - - * g++.dg/cpp0x/constexpr-default-ctor.C: New. - - PR c++/50248 - Core 1358 - * g++.dg/cpp0x/constexpr-template1.C: New. - * g++.dg/cpp0x/constexpr-template2.C: New. - * g++.dg/cpp0x/constexpr-48089.C: Adjust error markup. - * g++.dg/cpp0x/constexpr-ex1.C: Adjust error markup. - -2011-09-04 Eric Botcazou - - * gnat.dg/specs/debug1.ads: Tweak pattern. - -2011-09-04 Janus Weil - - PR fortran/50227 - * gfortran.dg/class_45a.f03: New. - * gfortran.dg/class_45b.f03: New. - -2011-09-04 Jakub Jelinek - Ira Rosen - - PR tree-optimization/50208 - * gcc.dg/vect/no-fre-pre-pr50208.c: New test. - * gcc.dg/vect/vect.exp: Run no-fre-pre-*.c tests with - -fno-tree-fre -fno-tree-pre. - -2011-09-02 Martin Jambor - - * gcc.dg/ipa/ipcp-3.c: New test. - -2011-09-02 Richard Guenther - - PR tree-optimization/27460 - PR middle-end/29269 - * gcc.dg/vect/vect-cond-7.c: New testcase. - -2011-09-02 Martin Jambor - - * g++.dg/ipa/devirt-3.C: Added a distraction method. - * g++.dg/ipa/ivinline-7.C: Added a test for direct call discovery, - xfailed test for inlining. - * g++.dg/ipa/ivinline-9.C: Likewise. - -2011-09-01 Ira Rosen - - PR tree-optimization/50178 - * gfortran.dg/vect/pr50178.f90: New test. - -2011-08-31 Martin Jambor - - PR middle-end/49886 - * gcc.c-torture/execute/pr49886.c: New testcase. - -2011-08-31 Tom de Vries - - PR middle-end/43513 - * gcc.dg/pr43513.c: New test. - -2011-08-30 Tobias Burnus - - PR fortran/45044 - * gfortran.dg/common_14.f90: New. - * gfortran.dg/common_resize_1.f: Add two dg-warning. - -2011-08-30 Jason Merrill - - PR c++/50084 - * g++.dg/cpp0x/decltype33.C: New. - - PR c++/50089 - * g++.dg/cpp0x/lambda/lambda-qualified.C: New. - - PR c++/50114 - * g++.dg/cpp0x/lambda/lambda-for.C: New. - -2011-08-30 Uros Bizjak - - * gcc.target/i386/fma-compile.c: Escape [ and ] in scan strings. - -2011-08-30 Eric Botcazou - - * gnat.dg/specs/aggr3.ads: New test. - * gnat.dg/specs/aggr3_pkg.ads: New helper. - - * gnat.dg/specs/aggr1.ads: Remove superfluous space. - * gnat.dg/specs/aggr2.ads: Likewise. - -2011-08-30 Steven G. Kargl - - PR fortran/45170 - * gfortran.dg/allocate_with_source_2.f90: New test - -2011-08-30 Jason Merrill - - PR c++/50220 - * g++.dg/cpp0x/lambda/lambda-50220.C: New. - - PR c++/50234 - * g++.dg/cpp0x/constexpr-value3.C: New. - -2011-08-30 Richard Guenther - - PR middle-end/48571 - * gcc.c-torture/execute/pr48571-1.c: New testcase. - * gcc.dg/tree-ssa/ssa-ccp-25.c: Remove. - * gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise. - * gcc.dg/pr36902.c: XFAIL. - -2011-08-30 Ilya Tocar - - * gcc.target/i386/fma-check.h: New. - * gcc.target/i386/fma-256-fmaddXX.c: New testcase. - * gcc.target/i386/fma-256-fmaddsubXX.c: Likewise. - * gcc.target/i386/fma-256-fmsubXX.c: Likewise. - * gcc.target/i386/fma-256-fmsubaddXX.c: Likewise. - * gcc.target/i386/fma-256-fnmaddXX.c: Likewise. - * gcc.target/i386/fma-256-fnmsubXX.c: Likewise. - * gcc.target/i386/fma-fmaddXX.c: Likewise. - * gcc.target/i386/fma-fmaddsubXX.c: Likewise. - * gcc.target/i386/fma-fmsubXX.c: Likewise. - * gcc.target/i386/fma-fmsubaddXX.c: Likewise. - * gcc.target/i386/fma-fnmaddXX.c: Likewise. - * gcc.target/i386/fma-fnmsubXX.c: Likewise. - * gcc.target/i386/fma-compile.c: Likewise. - * gcc.target/i386/i386.exp (check_effective_target_fma): New. - * gcc.target/i386/sse-12.c: Add -mfma. - * gcc.target/i386/sse-13.c: Likewise. - * gcc.target/i386/sse-14.c: Likewise. - * gcc.target/i386/sse-22.c: Likewise. - * gcc.target/i386/sse-23.c: Likewise. - * g++.dg/other/i386-2.C: Likewise. - * g++.dg/other/i386-3.C: Likewise. - -2011-08-30 Kirill Yukhin - - PR testsuite/50185 - * gcc.target/i386/avx2-vmovmskb-2.c: Rename to ... - * gcc.target/i386/avx2-vpmovmskb-2.c: ... this. Update. - -2011-08-30 Christian Bruel - - * g++.dg/bprob/bprob.exp (feedback_options): Set - -fbranch-probabilities. - * gcc.misc-tests/bprob.exp (feedback_options): Likewise. - -2011-08-29 Jason Merrill - - PR c++/50224 - * g++.dg/cpp0x/lambda/lambda-use2.C: New. - -2011-08-29 Jakub Jelinek - Jason Merrill - - * g++.dg/dfp/base.C: New test. - -2011-08-29 Jason Merrill - - Core DR 994 - PR c++/50209 - * g++.dg/cpp0x/initlist58.C: New. - -2011-08-29 Janus Weil - - PR fortran/50225 - * gfortran.dg/class_result_1.f03: New. - -2011-08-29 Jakub Jelinek - - PR middle-end/48722 - * gcc.target/i386/pr48722.c: New test. - -2011-08-29 Thomas Koenig - - PR libfortran/50192 - * gfortran.dg/widechar_compare_1.f90: New test. - -2011-08-26 Jason Merrill - - Core DR 342 - PR c++/48582 - * g++.dg/abi/mangle50.C: New. - -2011-08-27 Uros Bizjak - - PR target/50202 - * gcc.target/i386/pr50202.c: New test. - -2011-08-26 Uros Bizjak - - * gcc.target/i386/sse_4_1-round-vec.c: New test. - * gcc.target/i386/sse_4_1-roundf-vec.c: New test. - * gcc.target/i386/avx-round-vec.c: New test. - * gcc.target/i386/avx-roundf-vec.c: New test. - -2011-08-26 Jakub Jelinek - - * gcc.target/i386/cmpxchg16b-1.c: Match also space after the - instruction. - - PR c/50179 - * c-c++-common/Wunused-var-14.c: New test. - -2011-08-26 Tom de Vries - - * gcc.dg/tree-ssa/ivopts-lt.c: New test. - -2011-08-26 Jiangning Liu - - * gcc.target/arm/thumb2-cond-cmp-1.c: New. - * gcc.target/arm/thumb2-cond-cmp-2.c: Likewise. - * gcc.target/arm/thumb2-cond-cmp-3.c: Likewise. - * gcc.target/arm/thumb2-cond-cmp-4.c: Likewise. - -2011-08-26 Andrew Stubbs - - * gcc.target/arm/thumb2-replicated-constant1.c: New file. - * gcc.target/arm/thumb2-replicated-constant2.c: New file. - * gcc.target/arm/thumb2-replicated-constant3.c: New file. - * gcc.target/arm/thumb2-replicated-constant4.c: New file. - -2011-08-25 Mikael Morin - - PR fortran/50050 - * gfortran.dg/pointer_comp_init_1.f90: New test. - -2011-08-25 Jason Merrill - - PR c++/50157 - * g++.dg/cpp0x/sfinae27.C: New. - -2011-08-25 Tobias Burnus - - * gfortran.dg/coarray_lib_token_4.f90: New. - -2011-08-25 Tobias Burnus - - * gfortran.dg/coarray/alloc_comp_1.f90: New. - -2011-08-25 Richard Guenther - - * gcc.dg/Wshadow-3.c: Restore original content destroyed by r148442. - -2011-08-24 Tobias Burnus - - PR fortran/50163 - * gfortran.dg/initialization_28.f90: New. - -2011-08-24 Richard Guenther - - PR tree-optimization/50067 - * gcc.dg/torture/pr50067-3.c: New testcase. - * gcc.dg/torture/pr50067-4.c: Likewise. - * gcc.dg/torture/pr50067-5.c: Likewise. - -2011-08-23 Kirill Yukhin - - * g++.dg/other/i386-2.C: Add -mavx2 check. - * g++.dg/other/i386-3.C: Likewise. - * gcc.target/i386/avx-1.c: Add AVX2. - * gcc.target/i386/avx-2.c: Likewise. - * gcc.target/i386/funcspec-5.c: Likewise. - * gcc.target/i386/sse-12.c: Likewise. - * gcc.target/i386/sse-13.c: Likewise. - * gcc.target/i386/sse-14.c: Likewise. - * gcc.target/i386/sse-22.c: Likewise. - * gcc.target/i386/sse-23.c: Likewise. - * gcc.target/i386/i386.exp (check_effective_target_avx2): Likewise. - * gcc.target/i386/avx2-check.h: New. - * gcc.target/i386/avx2-i32gatherd-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherd-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherd-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherd-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherd256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherd256-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherd256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherd256-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd256-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherpd256-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherps-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherps-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherps-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherps-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherps256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherps256-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherps256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherps256-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherq-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherq-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherq-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherq-4.c: Likewise. - * gcc.target/i386/avx2-i32gatherq256-1.c: Likewise. - * gcc.target/i386/avx2-i32gatherq256-2.c: Likewise. - * gcc.target/i386/avx2-i32gatherq256-3.c: Likewise. - * gcc.target/i386/avx2-i32gatherq256-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherd-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherd-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherd-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherd-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherd256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherd256-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherd256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherd256-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd256-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherpd256-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherps-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherps-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherps-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherps-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherps256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherps256-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherps256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherps256-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherq-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherq-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherq-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherq-4.c: Likewise. - * gcc.target/i386/avx2-i64gatherq256-1.c: Likewise. - * gcc.target/i386/avx2-i64gatherq256-2.c: Likewise. - * gcc.target/i386/avx2-i64gatherq256-3.c: Likewise. - * gcc.target/i386/avx2-i64gatherq256-4.c: Likewise. - * gcc.target/i386/avx2-mpsadbw-1.c: Likewise. - * gcc.target/i386/avx2-mpsadbw-2.c: Likewise. - * gcc.target/i386/avx2-vbroadcastsd_pd-1.c: Likewise. - * gcc.target/i386/avx2-vbroadcastsd_pd-2.c: Likewise. - * gcc.target/i386/avx2-vbroadcastsi128-1.c: Likewise. - * gcc.target/i386/avx2-vbroadcastsi128-2.c: Likewise. - * gcc.target/i386/avx2-vbroadcastss_ps-1.c: Likewise. - * gcc.target/i386/avx2-vbroadcastss_ps-2.c: Likewise. - * gcc.target/i386/avx2-vbroadcastss_ps256-1.c: Likewise. - * gcc.target/i386/avx2-vbroadcastss_ps256-2.c: Likewise. - * gcc.target/i386/avx2-vextracti128-1.c: Likewise. - * gcc.target/i386/avx2-vextracti128-2.c: Likewise. - * gcc.target/i386/avx2-vinserti128-1.c: Likewise. - * gcc.target/i386/avx2-vinserti128-2.c: Likewise. - * gcc.target/i386/avx2-vmovmskb-2.c: Likewise. - * gcc.target/i386/avx2-vmovntdqa-1.c: Likewise. - * gcc.target/i386/avx2-vmovntdqa-2.c: Likewise. - * gcc.target/i386/avx2-vpabsb256-1.c: Likewise. - * gcc.target/i386/avx2-vpabsb256-2.c: Likewise. - * gcc.target/i386/avx2-vpabsd256-1.c: Likewise. - * gcc.target/i386/avx2-vpabsd256-2.c: Likewise. - * gcc.target/i386/avx2-vpabsw256-1.c: Likewise. - * gcc.target/i386/avx2-vpabsw256-2.c: Likewise. - * gcc.target/i386/avx2-vpackssdw-1.c: Likewise. - * gcc.target/i386/avx2-vpackssdw-2.c: Likewise. - * gcc.target/i386/avx2-vpacksswb-1.c: Likewise. - * gcc.target/i386/avx2-vpacksswb-2.c: Likewise. - * gcc.target/i386/avx2-vpackusdw-1.c: Likewise. - * gcc.target/i386/avx2-vpackusdw-2.c: Likewise. - * gcc.target/i386/avx2-vpackuswb-1.c: Likewise. - * gcc.target/i386/avx2-vpackuswb-2.c: Likewise. - * gcc.target/i386/avx2-vpaddb-1.c: Likewise. - * gcc.target/i386/avx2-vpaddb-2.c: Likewise. - * gcc.target/i386/avx2-vpaddd-1.c: Likewise. - * gcc.target/i386/avx2-vpaddd-2.c: Likewise. - * gcc.target/i386/avx2-vpaddq-1.c: Likewise. - * gcc.target/i386/avx2-vpaddq-2.c: Likewise. - * gcc.target/i386/avx2-vpaddsb-1.c: Likewise. - * gcc.target/i386/avx2-vpaddsb-2.c: Likewise. - * gcc.target/i386/avx2-vpaddsw-1.c: Likewise. - * gcc.target/i386/avx2-vpaddsw-2.c: Likewise. - * gcc.target/i386/avx2-vpaddusb-1.c: Likewise. - * gcc.target/i386/avx2-vpaddusb-2.c: Likewise. - * gcc.target/i386/avx2-vpaddusw-1.c: Likewise. - * gcc.target/i386/avx2-vpaddusw-2.c: Likewise. - * gcc.target/i386/avx2-vpaddw-1.c: Likewise. - * gcc.target/i386/avx2-vpaddw-2.c: Likewise. - * gcc.target/i386/avx2-vpalignr256-1.c: Likewise. - * gcc.target/i386/avx2-vpalignr256-2.c: Likewise. - * gcc.target/i386/avx2-vpand-1.c: Likewise. - * gcc.target/i386/avx2-vpand-2.c: Likewise. - * gcc.target/i386/avx2-vpandn-1.c: Likewise. - * gcc.target/i386/avx2-vpandn-2.c: Likewise. - * gcc.target/i386/avx2-vpavgb-1.c: Likewise. - * gcc.target/i386/avx2-vpavgb-2.c: Likewise. - * gcc.target/i386/avx2-vpavgw-1.c: Likewise. - * gcc.target/i386/avx2-vpavgw-2.c: Likewise. - * gcc.target/i386/avx2-vpblendd128-1.c: Likewise. - * gcc.target/i386/avx2-vpblendd128-2.c: Likewise. - * gcc.target/i386/avx2-vpblendd256-1.c: Likewise. - * gcc.target/i386/avx2-vpblendd256-2.c: Likewise. - * gcc.target/i386/avx2-vpblendvb-1.c: Likewise. - * gcc.target/i386/avx2-vpblendvb-2.c: Likewise. - * gcc.target/i386/avx2-vpblendw-1.c: Likewise. - * gcc.target/i386/avx2-vpblendw-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastb128-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastb128-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastb256-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastb256-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastd128-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastd128-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastd256-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastd256-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastq128-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastq128-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastq256-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastq256-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastw128-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastw128-2.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastw256-1.c: Likewise. - * gcc.target/i386/avx2-vpbroadcastw256-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqb-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqb-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqd-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqd-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqq-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqq-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqw-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpeqw-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtb-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtb-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtd-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtd-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtq-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtq-2.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtw-1.c: Likewise. - * gcc.target/i386/avx2-vpcmpgtw-2.c: Likewise. - * gcc.target/i386/avx2-vperm2i128-1.c: Likewise. - * gcc.target/i386/avx2-vperm2i128-2.c: Likewise. - * gcc.target/i386/avx2-vpermd-1.c: Likewise. - * gcc.target/i386/avx2-vpermd-2.c: Likewise. - * gcc.target/i386/avx2-vpermpd-1.c: Likewise. - * gcc.target/i386/avx2-vpermpd-2.c: Likewise. - * gcc.target/i386/avx2-vpermps-1.c: Likewise. - * gcc.target/i386/avx2-vpermps-2.c: Likewise. - * gcc.target/i386/avx2-vpermq-1.c: Likewise. - * gcc.target/i386/avx2-vpermq-2.c: Likewise. - * gcc.target/i386/avx2-vphaddd-1.c: Likewise. - * gcc.target/i386/avx2-vphaddd-2.c: Likewise. - * gcc.target/i386/avx2-vphaddsw-1.c: Likewise. - * gcc.target/i386/avx2-vphaddsw-2.c: Likewise. - * gcc.target/i386/avx2-vphaddw-1.c: Likewise. - * gcc.target/i386/avx2-vphaddw-2.c: Likewise. - * gcc.target/i386/avx2-vphsubd-1.c: Likewise. - * gcc.target/i386/avx2-vphsubd-2.c: Likewise. - * gcc.target/i386/avx2-vphsubsw-1.c: Likewise. - * gcc.target/i386/avx2-vphsubsw-2.c: Likewise. - * gcc.target/i386/avx2-vphsubw-1.c: Likewise. - * gcc.target/i386/avx2-vpmaddubsw-1.c: Likewise. - * gcc.target/i386/avx2-vpmaddubsw-2.c: Likewise. - * gcc.target/i386/avx2-vpmaddwd-1.c: Likewise. - * gcc.target/i386/avx2-vpmaddwd-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadd-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadd-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadd256-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadd256-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadq-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadq-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadq256-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskloadq256-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskstored-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskstored-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskstored256-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskstored256-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskstoreq-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskstoreq-2.c: Likewise. - * gcc.target/i386/avx2-vpmaskstoreq256-1.c: Likewise. - * gcc.target/i386/avx2-vpmaskstoreq256-2.c: Likewise. - * gcc.target/i386/avx2-vpmaxsb-1.c: Likewise. - * gcc.target/i386/avx2-vpmaxsb-2.c: Likewise. - * gcc.target/i386/avx2-vpmaxsd-1.c: Likewise. - * gcc.target/i386/avx2-vpmaxsd-2.c: Likewise. - * gcc.target/i386/avx2-vpmaxsw-1.c: Likewise. - * gcc.target/i386/avx2-vpmaxsw-2.c: Likewise. - * gcc.target/i386/avx2-vpmaxub-1.c: Likewise. - * gcc.target/i386/avx2-vpmaxub-2.c: Likewise. - * gcc.target/i386/avx2-vpmaxud-1.c: Likewise. - * gcc.target/i386/avx2-vpmaxud-2.c: Likewise. - * gcc.target/i386/avx2-vpmaxuw-1.c: Likewise. - * gcc.target/i386/avx2-vpmaxuw-2.c: Likewise. - * gcc.target/i386/avx2-vpminsb-1.c: Likewise. - * gcc.target/i386/avx2-vpminsb-2.c: Likewise. - * gcc.target/i386/avx2-vpminsd-1.c: Likewise. - * gcc.target/i386/avx2-vpminsd-2.c: Likewise. - * gcc.target/i386/avx2-vpminsw-1.c: Likewise. - * gcc.target/i386/avx2-vpminsw-2.c: Likewise. - * gcc.target/i386/avx2-vpminub-1.c: Likewise. - * gcc.target/i386/avx2-vpminub-2.c: Likewise. - * gcc.target/i386/avx2-vpminud-1.c: Likewise. - * gcc.target/i386/avx2-vpminud-2.c: Likewise. - * gcc.target/i386/avx2-vpminuw-1.c: Likewise. - * gcc.target/i386/avx2-vpminuw-2.c: Likewise. - * gcc.target/i386/avx2-vpmovmskb-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxbd-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxbd-2.c: Likewise. - * gcc.target/i386/avx2-vpmovsxbq-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxbq-2.c: Likewise. - * gcc.target/i386/avx2-vpmovsxbw-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxbw-2.c: Likewise. - * gcc.target/i386/avx2-vpmovsxdq-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxdq-2.c: Likewise. - * gcc.target/i386/avx2-vpmovsxwd-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxwd-2.c: Likewise. - * gcc.target/i386/avx2-vpmovsxwq-1.c: Likewise. - * gcc.target/i386/avx2-vpmovsxwq-2.c: Likewise. - * gcc.target/i386/avx2-vpmovzxbd-1.c: Likewise. - * gcc.target/i386/avx2-vpmovzxbd-2.c: Likewise. - * gcc.target/i386/avx2-vpmovzxbq-1.c: Likewise. - * gcc.target/i386/avx2-vpmovzxbq-2.c: Likewise. - * gcc.target/i386/avx2-vpmovzxbw-1.c: Likewise. - * gcc.target/i386/avx2-vpmovzxbw-2.c: Likewise. - * gcc.target/i386/avx2-vpmovzxdq-1.c: Likewise. - * gcc.target/i386/avx2-vpmovzxdq-2.c: Likewise. - * gcc.target/i386/avx2-vpmovzxwd-1.c: Likewise. - * gcc.target/i386/avx2-vpmovzxwd-2.c: Likewise. - * gcc.target/i386/avx2-vpmovzxwq-1.c: Likewise. - * gcc.target/i386/avx2-vpmovzxwq-2.c: Likewise. - * gcc.target/i386/avx2-vpmuldq-1.c: Likewise. - * gcc.target/i386/avx2-vpmuldq-2.c: Likewise. - * gcc.target/i386/avx2-vpmulhrsw-1.c: Likewise. - * gcc.target/i386/avx2-vpmulhrsw-2.c: Likewise. - * gcc.target/i386/avx2-vpmulhuw-1.c: Likewise. - * gcc.target/i386/avx2-vpmulhuw-2.c: Likewise. - * gcc.target/i386/avx2-vpmulhw-1.c: Likewise. - * gcc.target/i386/avx2-vpmulhw-2.c: Likewise. - * gcc.target/i386/avx2-vpmulld-1.c: Likewise. - * gcc.target/i386/avx2-vpmulld-2.c: Likewise. - * gcc.target/i386/avx2-vpmullw-1.c: Likewise. - * gcc.target/i386/avx2-vpmullw-2.c: Likewise. - * gcc.target/i386/avx2-vpmuludq-1.c: Likewise. - * gcc.target/i386/avx2-vpmuludq-2.c: Likewise. - * gcc.target/i386/avx2-vpor-1.c: Likewise. - * gcc.target/i386/avx2-vpor-2.c: Likewise. - * gcc.target/i386/avx2-vpsadbw-1.c: Likewise. - * gcc.target/i386/avx2-vpsadbw-2.c: Likewise. - * gcc.target/i386/avx2-vpshufb-1.c: Likewise. - * gcc.target/i386/avx2-vpshufb-2.c: Likewise. - * gcc.target/i386/avx2-vpshufd-1.c: Likewise. - * gcc.target/i386/avx2-vpshufd-2.c: Likewise. - * gcc.target/i386/avx2-vpshufhw-1.c: Likewise. - * gcc.target/i386/avx2-vpshufhw-2.c: Likewise. - * gcc.target/i386/avx2-vpshuflw-1.c: Likewise. - * gcc.target/i386/avx2-vpshuflw-2.c: Likewise. - * gcc.target/i386/avx2-vpsignb-1.c: Likewise. - * gcc.target/i386/avx2-vpsignb-2.c: Likewise. - * gcc.target/i386/avx2-vpsignd-1.c: Likewise. - * gcc.target/i386/avx2-vpsignd-2.c: Likewise. - * gcc.target/i386/avx2-vpsignw-1.c: Likewise. - * gcc.target/i386/avx2-vpsignw-2.c: Likewise. - * gcc.target/i386/avx2-vpslld-1.c: Likewise. - * gcc.target/i386/avx2-vpslld-2.c: Likewise. - * gcc.target/i386/avx2-vpslldi-1.c: Likewise. - * gcc.target/i386/avx2-vpslldi-2.c: Likewise. - * gcc.target/i386/avx2-vpslldq-1.c: Likewise. - * gcc.target/i386/avx2-vpslldq-2.c: Likewise. - * gcc.target/i386/avx2-vpsllq-1.c: Likewise. - * gcc.target/i386/avx2-vpsllq-2.c: Likewise. - * gcc.target/i386/avx2-vpsllqi-1.c: Likewise. - * gcc.target/i386/avx2-vpsllqi-2.c: Likewise. - * gcc.target/i386/avx2-vpsllvd128-1.c: Likewise. - * gcc.target/i386/avx2-vpsllvd128-2.c: Likewise. - * gcc.target/i386/avx2-vpsllvd256-1.c: Likewise. - * gcc.target/i386/avx2-vpsllvd256-2.c: Likewise. - * gcc.target/i386/avx2-vpsllvq128-1.c: Likewise. - * gcc.target/i386/avx2-vpsllvq128-2.c: Likewise. - * gcc.target/i386/avx2-vpsllvq256-1.c: Likewise. - * gcc.target/i386/avx2-vpsllvq256-2.c: Likewise. - * gcc.target/i386/avx2-vpsllw-1.c: Likewise. - * gcc.target/i386/avx2-vpsllw-2.c: Likewise. - * gcc.target/i386/avx2-vpsllwi-1.c: Likewise. - * gcc.target/i386/avx2-vpsllwi-2.c: Likewise. - * gcc.target/i386/avx2-vpsrad-1.c: Likewise. - * gcc.target/i386/avx2-vpsrad-2.c: Likewise. - * gcc.target/i386/avx2-vpsradi-1.c: Likewise. - * gcc.target/i386/avx2-vpsradi-2.c: Likewise. - * gcc.target/i386/avx2-vpsravd128-1.c: Likewise. - * gcc.target/i386/avx2-vpsravd128-2.c: Likewise. - * gcc.target/i386/avx2-vpsravd256-1.c: Likewise. - * gcc.target/i386/avx2-vpsravd256-2.c: Likewise. - * gcc.target/i386/avx2-vpsraw-1.c: Likewise. - * gcc.target/i386/avx2-vpsraw-2.c: Likewise. - * gcc.target/i386/avx2-vpsrawi-1.c: Likewise. - * gcc.target/i386/avx2-vpsrawi-2.c: Likewise. - * gcc.target/i386/avx2-vpsrld-1.c: Likewise. - * gcc.target/i386/avx2-vpsrld-2.c: Likewise. - * gcc.target/i386/avx2-vpsrldi-1.c: Likewise. - * gcc.target/i386/avx2-vpsrldi-2.c: Likewise. - * gcc.target/i386/avx2-vpsrldq-1.c: Likewise. - * gcc.target/i386/avx2-vpsrldq-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlq-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlq-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlqi-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlqi-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlvd128-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlvd128-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlvd256-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlvd256-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlvq128-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlvq128-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlvq256-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlvq256-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlw-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlw-2.c: Likewise. - * gcc.target/i386/avx2-vpsrlwi-1.c: Likewise. - * gcc.target/i386/avx2-vpsrlwi-2.c: Likewise. - * gcc.target/i386/avx2-vpsubb-1.c: Likewise. - * gcc.target/i386/avx2-vpsubb-2.c: Likewise. - * gcc.target/i386/avx2-vpsubd-1.c: Likewise. - * gcc.target/i386/avx2-vpsubd-2.c: Likewise. - * gcc.target/i386/avx2-vpsubq-1.c: Likewise. - * gcc.target/i386/avx2-vpsubq-2.c: Likewise. - * gcc.target/i386/avx2-vpsubsb-1.c: Likewise. - * gcc.target/i386/avx2-vpsubsb-2.c: Likewise. - * gcc.target/i386/avx2-vpsubsw-1.c: Likewise. - * gcc.target/i386/avx2-vpsubsw-2.c: Likewise. - * gcc.target/i386/avx2-vpsubusb-1.c: Likewise. - * gcc.target/i386/avx2-vpsubusb-2.c: Likewise. - * gcc.target/i386/avx2-vpsubusw-1.c: Likewise. - * gcc.target/i386/avx2-vpsubusw-2.c: Likewise. - * gcc.target/i386/avx2-vpunpckhbw-1.c: Likewise. - * gcc.target/i386/avx2-vpunpckhbw-2.c: Likewise. - * gcc.target/i386/avx2-vpunpckhdq-1.c: Likewise. - * gcc.target/i386/avx2-vpunpckhdq-2.c: Likewise. - * gcc.target/i386/avx2-vpunpckhqdq-1.c: Likewise. - * gcc.target/i386/avx2-vpunpckhqdq-2.c: Likewise. - * gcc.target/i386/avx2-vpunpckhwd-1.c: Likewise. - * gcc.target/i386/avx2-vpunpckhwd-2.c: Likewise. - * gcc.target/i386/avx2-vpunpcklbw-1.c: Likewise. - * gcc.target/i386/avx2-vpunpcklbw-2.c: Likewise. - * gcc.target/i386/avx2-vpunpckldq-1.c: Likewise. - * gcc.target/i386/avx2-vpunpckldq-2.c: Likewise. - * gcc.target/i386/avx2-vpunpcklqdq-1.c: Likewise. - * gcc.target/i386/avx2-vpunpcklqdq-2.c: Likewise. - * gcc.target/i386/avx2-vpunpcklwd-1.c: Likewise. - * gcc.target/i386/avx2-vpunpcklwd-2.c: Likewise. - * gcc.target/i386/avx2-vpxor-1.c: Likewise. - * gcc.target/i386/avx2-vpxor-2.c: Likewise. - * gcc.target/i386/testimm-9.c: Likewise. - -2011-08-23 Kirill Yukhin - - * g++.dg/other/i386-2.C: Add -mbmi2 check. - * g++.dg/other/i386-3.C: Likewise. - * gcc.target/i386/bmi2-bzhi32-1.c: New testcase. - * gcc.target/i386/bmi2-bzhi32-1a.c: Likewise. - * gcc.target/i386/bmi2-bzhi64-1.c: Likewise. - * gcc.target/i386/bmi2-bzhi64-1a.c: Likewise. - * gcc.target/i386/bmi2-mulx32-1.c: Likewise. - * gcc.target/i386/bmi2-mulx32-1a.c: Likewise. - * gcc.target/i386/bmi2-mulx64-1.c: Likewise. - * gcc.target/i386/bmi2-mulx64-1a.c: Likewise. - * gcc.target/i386/bmi2-pdep32-1.c: Likewise. - * gcc.target/i386/bmi2-pdep32-1a.c: Likewise. - * gcc.target/i386/bmi2-pdep64-1.c: Likewise. - * gcc.target/i386/bmi2-pdep64-1a.c: Likewise. - * gcc.target/i386/bmi2-pext32-1.c: Likewise. - * gcc.target/i386/bmi2-pext32-1a.c: Likewise. - * gcc.target/i386/bmi2-pext64-1.c: Likewise. - * gcc.target/i386/bmi2-pext64-1a.c: Likewise. - * gcc.target/i386/bmi2-rorx32-1.c: Likewise. - * gcc.target/i386/bmi2-rorx32-1a.c: Likewise. - * gcc.target/i386/bmi2-rorx64-1.c: Likewise. - * gcc.target/i386/bmi2-rorx64-1a.c: Likewise. - * gcc.target/i386/bmi2-sarx32-1.c: Likewise. - * gcc.target/i386/bmi2-sarx32-1a.c: Likewise. - * gcc.target/i386/bmi2-sarx64-1.c: Likewise. - * gcc.target/i386/bmi2-sarx64-1a.c: Likewise. - * gcc.target/i386/bmi2-shlx32-1.c: Likewise. - * gcc.target/i386/bmi2-shlx32-1a.c: Likewise. - * gcc.target/i386/bmi2-shlx64-1.c: Likewise. - * gcc.target/i386/bmi2-shlx64-1a.c: Likewise. - * gcc.target/i386/bmi2-shrx32-1.c: Likewise. - * gcc.target/i386/bmi2-shrx32-1a.c: Likewise. - * gcc.target/i386/bmi2-shrx64-1.c: Likewise. - * gcc.target/i386/bmi2-shrx64-1a.c: Likewise. - * gcc.target/i386/i386.exp (check_effective_target_bmi2): New. - * gcc.target/i386/sse-12.c: Add BMI2. - * gcc.target/i386/sse-13.c: Likewise. - * gcc.target/i386/sse-14.c: Likewise. - * gcc.target/i386/sse-22.c: Likewise. - * gcc.target/i386/sse-23.c: Likewise. - -2011-08-23 Jason Merrill - - * g++.dg/template/crash7.C: Adjust expected errors. - -2011-08-23 Jason Merrill - - PR c++/49045 - Core 1321 - * g++.dg/cpp0x/overload2.C: New. - -2011-08-23 Jason Merrill - - Core 903 - * g++.dg/cpp0x/constexpr-nullptr.C: Now ill-formed. - -2011-08-23 Jason Merrill - - Core 975 - * g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C: Now accepted. - * g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C: Adjust. - * g++.dg/cpp0x/lambda/lambda-deduce2.C: Test returning overload. - * g++.dg/cpp0x/lambda/lambda-deduce-neg.C: Remove #include. - -2011-08-23 Jason Merrill - - PR c++/50024 - * g++.dg/cpp0x/constexpr-initlist5.C: New. - -2011-08-23 Jakub Jelinek - - PR c++/50158 - * g++.dg/warn/Wunused-var-16.C: New test. - - PR middle-end/50161 - * gcc.dg/pr50161.c: New test. - -2011-08-23 Siddhesh Poyarekar - - PR c++/50055 - * g++.dg/gcov/gcov-7.C: New test. - -2011-08-23 Jakub Jelinek - - PR c++/46862 - * g++.dg/dfp/nofields.C: New test. - -2011-08-23 Tobias Burnus - - PR fortran/31600 - * gfortran.dg/use_16.f90: New. - -2011-08-22 Uros Bizjak - Kirill Yukhin - - PR target/50155 - * gcc.target/i386/pr50155.c: New test. - -2011-08-22 Jakub Jelinek - - PR tree-optimization/50133 - * gcc.dg/pr50133.c: New test. - - PR middle-end/50141 - * c-c++-common/cxxbitfields-6.c: New test. - -2011-08-22 Mikael Morin - - PR fortran/50050 - * gfortran.dg/alloc_comp_initializer_3.f90: New test. - -2011-08-22 Georg-Johann Lay - - * gcc.dg/pr49994-2.c: Add dg-require-effective-target scheduling. - * gcc.dg/pr49994-3.c: Ditto. - -2011-08-22 Richard Guenther - - PR testsuite/50145 - * gcc.dg/torture/pr50067-1.c: Run on little-endian systems only. - * gcc.dg/torture/pr50067-2.c: Likewise. - -2011-08-21 Thomas Koenig - - PR fortran/47659 - * gfortran.dg/warn_conversion_2.f90: Also warn about conversion - of a constant resulting from simplification. - * gfortran.dg/warn_conversion_3.f90: New test. - -2011-08-21 Thomas Koenig - - PR fortran/50130 - * gfortran.dg/zero_stride_1.f90: New test. - -2011-08-20 Janus Weil - - PR fortran/49638 - * gfortran.dg/typebound_override_1.f90: Modified. - -2011-08-20 Jakub Jelinek - - PR tree-optimization/48739 - * gcc.dg/pr48739-1.c: New test. - * gcc.dg/pr48739-2.c: New test. - -2011-08-20 Tobias Burnus - - * gfortran.dg/graphite/interchange-1.f: Remove xfail. - -2011-08-19 Mikael Morin - - PR fortran/50129 - * gfortran.dg/where_3.f90: New test. - -2011-08-19 H.J. Lu - - PR middle-end/49721 - * gfortran.dg/pr49721-1.f: New. - * gfortran.fortran-torture/compile/pr49721-1.f: Likewise. - -2011-08-19 Joseph Myers - - * gcc.dg/builtin-complex-err-1.c, gcc.dg/builtin-complex-err-2.c, - gcc.dg/dfp/builtin-complex.c, gcc.dg/torture/builtin-complex-1.c: - New tests. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-11.c: New file. - * gcc.target/arm/wmul-12.c: New file. - * gcc.target/arm/wmul-13.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-10.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-9.c: New file. - * gcc.target/arm/wmul-bitfield-2.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-8.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-7.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-6.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-5.c: New file. - * gcc.target/arm/no-wmla-1.c: New file. - -2011-08-19 Andrew Stubbs - - * gcc.target/arm/wmul-bitfield-1.c: New file. - -2011-08-19 Joseph Myers - - * gcc.dg/c90-noreturn-1.c, gcc.dg/c99-noreturn-1.c: New tests. - -2011-08-19 Rainer Orth - - * gcc.dg/builtins-67.c: Use dg-add-options c99_runtime. - * gcc.target/i386/conversion.c: Likewise. - -2011-08-19 Richard Guenther - - * gcc.dg/torture/pr50067-1.c: New testcase. - * gcc.dg/torture/pr50067-2.c: Likewise. - -2011-08-19 Joey Ye - - PR target/49437 - * gcc.target/arm/handler-align.c: New test. - * lib/target-supports.exp (check_effective_target_arm_cortex_m): - New Function. - -2011-08-19 Joey Ye - - * gcc.c-torture/execute/20101011-1.c (DO_TEST): Skip on ARM. - -2011-08-19 Mikael Morin - - PR fortran/50071 - * gfortran.dg/end_block_label_1.f90: New test. - * gfortran.dg/end_associate_label_1.f90: New test. - -2011-08-18 Joseph Myers - - * gcc.dg/c1x-pointer-float-1.c: New test. - -2011-08-18 Mikael Morin - - PR fortran/50071 - * gfortran.dg/duplicate_labels_2.f: New test. - -2011-08-18 Joseph Myers - - * gcc.dg/c1x-noreturn-1.c, gcc.dg/c1x-noreturn-2.c, - gcc.dg/c1x-noreturn-3.c, gcc.dg/c1x-noreturn-4.c, - gcc.dg/c1x-noreturn-5.c: New tests. - -2011-08-18 Joseph Myers - - * gcc.dg/c1x-uni-string-1.c, gcc.dg/c1x-uni-string-2.c: New tests. - -2011-08-18 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_lock_1.f90: Update dg-error. - * gfortran.dg/coarray_lock_3.f90: Fix test. - * gfortran.dg/coarray_lock_4.f90: New. - * gfortran.dg/coarray_lock_5.f90: New. - -2011-08-18 Jakub Jelinek - - PR target/50009 - * gcc.c-torture/compile/pr50009.c: New test. - - PR target/50092 - * gcc.dg/torture/pr50092.c: New test. - -2011-08-18 Tobias Burnus - - PR fortran/50109 - * gfortran.dg/namelist_73.f90: New. - -2011-08-18 Jakub Jelinek - - * g++.dg/plugin/decl_plugin.c: Include diagnostic.h. - - PR debug/50017 - * gcc.dg/pr50017.c: New test. - -2011-08-18 Dodji Seketeli - - PR c++/45625 - * g++.dg/lookup/hidden-var1.C: New test case. - -2011-08-17 Tobias Burnus - - PR fortran/31461 - * gfortran.dg/warn_unused_var_2.f90: New. - * gfortran.dg/warn_unused_var_3.f90: New. - -2011-08-17 Tom de Vries - - PR target/43597 - * gcc.target/arm/pr43597.c: New test. - -2011-08-17 Janus Weil - - PR fortran/50070 - * gfortran.dg/common_13.f90: New. - -2011-08-16 Jason Merrill - - PR c++/50086 - * g++.dg/cpp0x/variadic-unresolved.C: New. - - * g++.old-deja/g++.brendan/README: Add R.I.P. - - * g++.dg/ext/attr-used-1.C: New. - - PR c++/50054 - * g++.dg/cpp0x/initlist56.C: New. - -2011-08-15 H.J. Lu - - PR testsuite/50085 - * g++.dg/opt/life1.C: Only run on Linux. - -2011-08-15 Tobias Burnus - - * gfortran.dg/coarray_26.f90: New. - -2011-08-15 Hans-Peter Nilsson - - * gcc.dg/tree-ssa/vrp61.c: Use -fdump-tree-vrp1-nouid instead of - -fdump-tree-vrp1. - -2011-08-14 Janus Weil - - PR fortran/50073 - * gfortran.dg/func_result_7.f90: New. - -2011-08-13 Jason Merrill - - PR c++/50075 - * g++.dg/cpp0x/decltype32.C: New. - - PR c++/50059 - * g++.dg/diagnostic/expr1.C: New. - -2011-08-12 David Li - - * g++.dg/abi/vbase15.C: New test. - -2011-08-12 Jason Merrill - - PR c++/50034 - * g++.dg/cpp0x/defaulted28.C: Add unevaluated case. - -2011-08-12 Uros Bizjak - - * gcc.dg/builtins-67.c: New test. - * gcc.target/i386/conversion.c: Ditto. - -2011-08-11 Romain Geissler - Brian Hackett - - * g++.dg/plugin/decl_plugin.c: New. - * g++.dg/plugin/decl-plugin-test.C: New. - * g++.dg/plugin/plugin.exp: Add above testcase. - -2011-08-11 Richard Guenther - - * g++.dg/tree-ssa/pr41186.C: Un-XFAIL. - -2011-08-11 Michael Matz - - * gcc.dg/graphite/run-id-pr47593.c: Remove -m32. - -2011-08-11 Ira Rosen - - PR tree-optimization/50039 - * gcc.dg/vect/vect.exp: Run no-tree-fre-* tests with -fno-tree-fre. - * gcc.dg/vect/no-tree-fre-pr50039.c: New test. - -2011-08-10 H.J. Lu - - * gcc.target/i386/sse4_1-blendps-2.c: Include . - (sse4_1_test): Initialize src3 with random value. - -2011-08-10 Artjoms Sinkarovs - - * gcc.c-torture/execute/scal-to-vec1.c: New test. - * gcc.c-torture/execute/scal-to-vec2.c: New test. - * gcc.c-torture/execute/scal-to-vec3.c: New test. - * gcc.dg/scal-to-vec1.c: New test. - * gcc.dg/scal-to-vec2.c: New test. - -2011-08-09 Richard Guenther - - * gcc.dg/tree-ssa/vrp57.c: Disable CCP. - * gcc.dg/tree-ssa/vrp60.c: New testcase. - * gcc.dg/tree-ssa/vrp61.c: Likewise. - * gcc.dg/tree-ssa/vrp62.c: Likewise. - -2011-08-09 Ulrich Weigand - - * gfortran.dg/scratch_1.f90: Skip on spu-*-*. - -2011-08-09 Ulrich Weigand - - * gcc.dg/pr49948.c: Require pthread effective target. - -2011-08-09 Ulrich Weigand - - * gcc.dg/lto/20110201-1_0.c: Provide dummy sqrt. - -2011-08-09 Uros Bizjak - - * gcc.target/i386/sse-22a.c: New test. - -2011-08-09 Ira Rosen - - PR tree-optimization/50014 - * gcc.dg/vect/pr50014.c: New test. - -2011-08-08 Martin Jambor - - PR middle-end/49923 - * gcc.dg/tree-ssa/pr49923.c: New test. - -2011-08-08 H.J. Lu - - PR target/49781 - * gcc.target/i386/pr49781-1.c: New. - -2011-08-08 Jason Merrill - - * g++.dg/cpp0x/range-for20.C: Adjust to test 50020 as well. - - * g++.dg/cpp0x/initlist5.C: Add 50011 test. - -2011-08-07 Janus Weil - - PR fortran/49638 - * gfortran.dg/typebound_override_1.f90: New. - -2011-08-07 Kai Tietz - - * gcc.dg/tree-ssa/pr23455.c: Adjust testcases for LLP64 for - x86_64 mingw target. - * gcc.dg/tree-ssa/loop-1.c: Likewise. - * gcc.dg/tree-ssa/ssa-store-ccp-2.c: Likewise. - * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Likewise. - * gcc.dg/tree-ssa/loop-33.c: Likewise. - * gcc.dg/tree-ssa/ssa-store-ccp-4.c: Likewise. - * gcc.dg/tree-ssa/loop-35.c: Likewise. - * gcc.dg/tree-ssa/stdarg-2.c: Likewise. - * gcc.dg/tree-ssa/stdarg-4.c: Likewise. - * gcc.dg/tree-ssa/stdarg-5.c: Likewise. - * gcc.dg/tree-ssa/gen-vect-11c.c: Likewise. - -2011-08-06 Uros Bizjak - - PR testsuite/48727 - * g++.dg/opt/devirt2.C: Use specific pattern for alpha*-*-*. - -2011-08-06 Uros Bizjak - - * gcc.dg/pr48770.c: Cleanup coverage files. - * gfortran.dg/vect/O3-pr49957.f: Cleanup vect tree dump. - -2011-08-06 Uros Bizjak - - * gcc.target/i386/sse-22.c (dg-options): Add -march=k8. - (pragma GCC target): Add avx, fma4, lzcnt and bmi options. - * gcc.target/i386/sse-23.c (pragma GCC target): Add avx, fma4, - lzcnt and bmi options. - -2011-08-06 H.J. Lu - - PR target/47381 - * gcc.dg/pr47381-1.c: New. - * gcc.dg/pr47381-2.c: Likewise. - * gcc.target/i386/pr47381.c: Likewise. - -2011-08-06 H.J. Lu - - PR middle-end/47727 - * gcc.dg/pr47727.c: New. - - PR target/47372 - * gcc.dg/pr47372-1.c: New. - * gcc.dg/pr47372-2.c: Likewise. - -2011-08-06 H.J. Lu - - PR middle-end/47449 - * gcc.target/i386/pr47449.c: New. - - PR target/47446 - * gcc.dg/pr47446-1.c: New. - * gcc.dg/pr47446-2.c: Likewise. - -2011-08-06 H.J. Lu - - PR target/47766 - * gcc.dg/pr47766.c: New. - - PR target/47715 - * gcc.dg/tls/pr47715-1.c: New. - * gcc.dg/tls/pr47715-2.c: Likewise. - * gcc.dg/tls/pr47715-3.c: Likewise. - * gcc.dg/tls/pr47715-4.c: Likewise. - * gcc.dg/tls/pr47715-5.c: Likewise. - -2011-08-06 Nicola Pero - - PR libobjc/50002 - * objc.dg/gnu-api-2-class.m: Updated comments. - * obj-c++.dg/gnu-api-2-class.mm: Likewise. - * objc.dg/gnu-api-2-class-meta.m: New test. - * obj-c++.dg/gnu-api-2-class-meta.mm: Likewise. - -2011-08-06 Nicola Pero - - PR libobjc/49882 - * obj-c++.dg/gnu-api-2-class.mm (main): Test class_getSuperclass() - with classes that are in construction. - -2011-08-06 H.J. Lu - - PR target/48084 - * gcc.target/i386/pr48084-1.c: New. - * gcc.target/i386/pr48084-2.c: Likewise. - * gcc.target/i386/pr48084-3.c: Likewise. - * gcc.target/i386/pr48084-4.c: Likewise. - * gcc.target/i386/pr48084-5.c: Likewise. - - PR rtl-optimization/49504 - * gcc.target/i386/pr49504.c: New. - - PR target/49860 - * gcc.dg/pr49860.c: New. - -2011-08-06 Nicola Pero - - PR libobjc/49882 - * objc.dg/gnu-api-2-class.m (main): Test class_getSuperclass() - with classes that are in construction. - -2011-08-05 Jason Merrill - - PR c++/48993 - * g++.dg/cpp0x/constexpr-48089.C: Add cases. - - PR c++/49921 - * g++.dg/cpp0x/decltype31.C: New. - - PR c++/49669 - * g++.dg/init/array28.C: New. - - PR c++/49988 - * g++.dg/cpp0x/constexpr-non-const-arg3.C: New. - -2011-08-05 H.J. Lu - - PR target/47369 - * gcc.dg/pr47369-1.c: New. - -2011-08-05 H.J. Lu - - PR middle-end/47364 - * gcc.dg/torture/pr47364-1.c: New. - * gcc.c-torture/compile/pr47364-1.c: Likewise. - * gcc.c-torture/compile/pr47364-2.c: Likewise. - -2011-08-05 Thomas Koenig - - PR fortran/37211 - * gfortran.dg/transfer_check_2.f90: New test case. - -2011-08-05 Jan Hubicka - - PR middle-end/49494 - * gfortran.dg/pr49494.f90: New testcase. - -2011-08-05 Jan Hubicka - - PR middle-end/49735 - * gcc.c-torture/compile/pr49735.c: New testcase. - -2011-08-05 Jason Merrill - - PR c++/47453 - * g++.dg/cpp0x/initlist56.C: New. - - PR c++/49812 - * g++.dg/overload/rvalue2.C: New. - - PR c++/49983 - * g++.dg/cpp0x/range-for21.C: New. - - * g++.dg/ext/vla11.C: New. - -2011-08-05 Richard Guenther - - PR tree-optimization/49984 - * gcc.dg/tree-ssa/vrp59.c: New testcase. - -2011-08-05 Richard Guenther - - * gcc.dg/tree-ssa/vrp51.c: Disable CCP. - * gcc.dg/tree-ssa/vrp52.c: Likewise. - * gcc.dg/tree-ssa/vrp53.c: Likewise. - -2011-08-04 Mikael Morin - - * gfortran.dg/dependency_26.f90: Add a module to the cleanup directive. - * gfortran.dg/trim_optimize_2.f90: Add a module cleanup directive. - * gfortran.dg/ldist-pr43023.f90: Ditto. - * gfortran.dg/namelist_52.f90: Ditto. - * gfortran.dg/interface_proc_end.f90: Ditto. - * gfortran.dg/vector_subscript_bound_1.f90: Ditto. - * gfortran.dg/generic_typebound_operator_1.f90: Ditto. - -2011-08-04 Ira Rosen - - * gcc.dg/vect/vect-over-widen-1.c: New test. - * gcc.dg/vect/vect-over-widen-2.c: New test. - * gcc.dg/vect/vect-over-widen-3.c: New test. - * gcc.dg/vect/vect-over-widen-4.c: New test. - -2011-08-04 Richard Guenther - - PR fortran/49957 - * gfortran.dg/vect/O3-pr49957.f: New testcase. - -2011-08-04 Ian Bolton - - * gcc.target/arm/vfp-1.c: no large negative offsets on Thumb2. - -2011-08-04 Jakub Jelinek - - PR middle-end/49905 - * g++.dg/ext/builtin-object-size3.C: New test. - -2011-08-03 Jakub Jelinek - - PR tree-optimization/49948 - * gcc.dg/pr49948.c: New test. - -2011-08-03 H.J. Lu - - PR middle-end/47383 - * gcc.dg/torture/pr47383.c: New. - -2011-08-03 Arnaud Charlet - - * gnat.dg/specs/debug1.ads: Add missing -margs switch. - -2011-08-03 Arnaud Charlet - - * lib/gnat-dg.exp: Use gnatmake -c -u to compile a single file. - -2011-08-03 H.J. Lu - - PR target/47744 - * gcc.dg/torture/pr47744-1.c: New. - * gcc.dg/torture/pr47744-2.c: Likewise. - * gcc.dg/torture/pr47744-3.c: Likewise. - -2011-08-03 Richard Guenther - - PR middle-end/49958 - * gcc.dg/torture/pr49958.c: New testcase. - -2011-08-03 Richard Guenther - - PR tree-optimization/49938 - * g++.dg/torture/pr49938.C: New testcase. - -2011-08-02 Jason Merrill - - PR c++/43886 - * g++.dg/cpp0x/lambda/lambda-defarg2.C: New. - - PR c++/49577 - * g++.dg/cpp0x/initlist5.C: Add additional cases. - - PR c++/49593 - * g++.dg/cpp0x/variadic115.C: New. - - PR c++/49803 - * g++.dg/cpp0x/union5.C: New. - -2011-08-02 Daniel Kraft - - PR fortran/49885 - * gfortran.dg/auto_char_dummy_array_3.f90: New test. - -2011-08-02 Kai Tietz - - PR middle-end/49947 - * gcc.dg/tree-ssa/forwprop-15.c - -2011-08-02 Jason Merrill - - PR c++/49834 - * g++.dg/cpp0x/range-for20.C: New. - -2011-08-02 Tobias Burnus - - * gfortran.dg/coarray_lib_token_3.f90: New. - -2011-08-02 Jakub Jelinek - - PR fortran/46752 - * gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics. - * gcc.dg/gomp/atomic-15.c: New test. - * g++.dg/gomp/atomic-5.C: Adjust expected diagnostics. - * g++.dg/gomp/atomic-15.C: New test. - * g++.dg/gomp/private-1.C: New test. - * g++.dg/gomp/sharing-2.C: New test. - * gfortran.dg/gomp/crayptr1.f90: Don't expect error - about Cray pointer in FIRSTPRIVATE/LASTPRIVATE. - * gfortran.dg/gomp/omp_atomic2.f90: New test. - -2011-08-02 Tobias Burnus - - * gfortran.dg/trim_optimize_5.f90: Remove spurious "use foo". - * gfortran.dg/actual_array_vect_1.f90: Fix or add dg-final - cleanup-module. - * gfortran.dg/alloc_comp_assign_7.f90: Ditto. - * gfortran.dg/allocatable_function_5.f90: Ditto. - * gfortran.dg/allocate_stat.f90: Ditto. - * gfortran.dg/array_constructor_20.f90: Ditto. - * gfortran.dg/array_constructor_21.f90: Ditto. - * gfortran.dg/array_constructor_22.f90: Ditto. - * gfortran.dg/array_constructor_26.f03: Ditto. - * gfortran.dg/array_function_4.f90: Ditto. - * gfortran.dg/assumed_charlen_function_1.f90: Ditto. - * gfortran.dg/assumed_size_dt_dummy.f90: Ditto. - * gfortran.dg/bind_c_usage_15.f90: Ditto. - * gfortran.dg/bind_c_usage_16.f03: Ditto. - * gfortran.dg/bind_c_usage_3.f03: Ditto. - * gfortran.dg/binding_label_tests_7.f03: Ditto. - * gfortran.dg/class_15.f03: Ditto. - * gfortran.dg/class_27.f03: Ditto. - * gfortran.dg/class_33.f90: Ditto. - * gfortran.dg/class_37.f03: Ditto. - * gfortran.dg/class_40.f03: Ditto. - * gfortran.dg/class_42.f03: Ditto. - * gfortran.dg/class_defined_operator_1.f03: Ditto. - * gfortran.dg/coarray/registering_1.f90: Ditto. - * gfortran.dg/convert_1.f90: Ditto. - * gfortran.dg/default_initialization_3.f90: Ditto. - * gfortran.dg/dependency_25.f90: Ditto. - * gfortran.dg/dependency_26.f90: Ditto. - * gfortran.dg/dependency_36.f90: Ditto. - * gfortran.dg/dependency_37.f90: Ditto. - * gfortran.dg/derived_array_intrinisics_1.f90: Ditto. - * gfortran.dg/dynamic_dispatch_10.f03: Ditto. - * gfortran.dg/elemental_non_intrinsic_dummy_1.f90 |: Ditto. - * gfortran.dg/elemental_pointer_1.f90: Ditto. - * gfortran.dg/elemental_result_1.f90: Ditto. - * gfortran.dg/empty_derived_type.f90: Ditto. - * gfortran.dg/entry_7.f90: Ditto. - * gfortran.dg/entry_dummy_ref_2.f90: Ditto. - * gfortran.dg/equiv_constraint_3.f90: Ditto. - * gfortran.dg/error_recovery_3.f90: Ditto. - * gfortran.dg/extends_4.f03: Ditto. - * gfortran.dg/func_assign.f90: Ditto. - * gfortran.dg/func_assign_3.f90: Ditto. - * gfortran.dg/generic_1.f90: Ditto. - * gfortran.dg/generic_18.f90: Ditto. - * gfortran.dg/generic_22.f03: Ditto. - * gfortran.dg/generic_4.f90: Ditto. - * gfortran.dg/generic_6.f90: Ditto. - * gfortran.dg/generic_actual_arg.f90: Ditto. - * gfortran.dg/graphite/id-21.f: Ditto. - * gfortran.dg/graphite/pr45758.f90: Ditto. - * gfortran.dg/host_assoc_call_2.f90: Ditto. - * gfortran.dg/host_assoc_call_3.f90: Ditto. - * gfortran.dg/host_assoc_call_4.f90: Ditto. - * gfortran.dg/host_assoc_function_4.f90: Ditto. - * gfortran.dg/host_used_types_1.f90: Ditto. - * gfortran.dg/implicit_1.f90: Ditto. - * gfortran.dg/implicit_11.f90: Ditto. - * gfortran.dg/implicit_derived_type_1.f90: Ditto. - * gfortran.dg/impure_actual_1.f90: Ditto. - * gfortran.dg/impure_assignment_1.f90: Ditto. - * gfortran.dg/impure_constructor_1.f90: Ditto. - * gfortran.dg/initialization_10.f90: Ditto. - * gfortran.dg/initialization_12.f90: Ditto. - * gfortran.dg/interface_14.f90: Ditto. - * gfortran.dg/interface_15.f90: Ditto. - * gfortran.dg/interface_2.f90: Ditto. - * gfortran.dg/interface_25.f90: Ditto. - * gfortran.dg/interface_26.f90: Ditto. - * gfortran.dg/interface_29.f90: Ditto. - * gfortran.dg/interface_assignment_1.f90: Ditto. - * gfortran.dg/internal_pack_6.f90: Ditto. - * gfortran.dg/internal_pack_7.f90: Ditto. - * gfortran.dg/internal_pack_8.f90: Ditto. - * gfortran.dg/lto/pr45586_0.f90: Ditto. - * gfortran.dg/lto/pr47839_0.f90: Ditto. - * gfortran.dg/module_commons_3.f90: Ditto. - * gfortran.dg/module_equivalence_4.f90: Ditto. - * gfortran.dg/module_equivalence_6.f90: Ditto. - * gfortran.dg/module_function_type_1.f90: Ditto. - * gfortran.dg/module_naming_1.f90: Ditto. - * gfortran.dg/namelist_4.f90: Ditto. - * gfortran.dg/operator_c1202.f90: Ditto. - * gfortran.dg/parens_7.f90: Ditto. - * gfortran.dg/pr32921.f: Ditto. - * gfortran.dg/pr33646.f90: Ditto. - * gfortran.dg/pr41928.f90: Ditto. - * gfortran.dg/pr42119.f90: Ditto. - * gfortran.dg/pr43984.f90: Ditto. - * gfortran.dg/present_1.f90: Ditto. - * gfortran.dg/private_type_2.f90: Ditto. - * gfortran.dg/proc_decl_2.f90: Ditto. - * gfortran.dg/proc_ptr_10.f90: Ditto. - * gfortran.dg/proc_ptr_22.f90: Ditto. - * gfortran.dg/proc_ptr_8.f90: Ditto. - * gfortran.dg/proc_ptr_comp_12.f90: Ditto. - * gfortran.dg/proc_ptr_comp_pass_6.f90: Ditto. - * gfortran.dg/pure_formal_proc_2.f90: Ditto. - * gfortran.dg/realloc_on_assign_4.f03: Ditto. - * gfortran.dg/substring_equivalence.f90: Ditto. - * gfortran.dg/transfer_assumed_size_1.f90: Ditto. - * gfortran.dg/transpose_optimization_1.f90: Ditto. - * gfortran.dg/trim_optimize_6.f90: Ditto. - * gfortran.dg/typebound_call_12.f03: Ditto. - * gfortran.dg/typebound_operator_5.f03: Ditto. - * gfortran.dg/typebound_operator_6.f03: Ditto. - * gfortran.dg/typebound_proc_18.f03: Ditto. - * gfortran.dg/unreferenced_use_assoc_1.f90: Ditto. - * gfortran.dg/use_1.f90: Ditto. - * gfortran.dg/use_10.f90: Ditto. - * gfortran.dg/use_11.f90: Ditto. - * gfortran.dg/use_14.f90: Ditto. - * gfortran.dg/use_only_2.f90: Ditto. - * gfortran.dg/use_rename_4.f90: Ditto. - * gfortran.dg/use_rename_5.f90: Ditto. - * gfortran.dg/used_dummy_types_3.f90: Ditto. - * gfortran.dg/used_interface_ref.f90: Ditto. - * gfortran.dg/used_types_11.f90: Ditto. - * gfortran.dg/used_types_3.f90: Ditto. - * gfortran.dg/used_types_4.f90: Ditto. - * gfortran.dg/userdef_operator_2.f90: Ditto. - * gfortran.dg/vect/fast-math-vect-8.f90: Ditto. - * gfortran.dg/vect/pr46213.f90: Ditto. - * gfortran.dg/whole_file_21.f90: Ditto. - * gfortran.dg/whole_file_22.f90: Ditto. - * gfortran.dg/coarray_lib_token_1.f90: Ditto. Add space before "}". - * gfortran.dg/coarray_lib_token_2.f90: Ditto. - -2011-08-02 Kai Tietz - - * gcc.dg/tree-ssa/forwprop-15.c: New testcase. - -2011-08-01 Jason Merrill - - PR c++/49932 - * g++.dg/abi/mangle49.C: New. - - PR c++/49924 - * g++.dg/cpp0x/constexpr-array4.C: New. - - PR c++/49813 - * g++.dg/cpp0x/constexpr-builtin1.C: New. - -2011-08-01 Uros Bizjak - - PR target/49927 - * gcc.target/i386/pr49927.c: New test. - -2011-08-01 Ira Rosen - - PR tree-optimization/49926 - * gcc.dg/vect/pr49926.c: New test. - -2011-08-01 Kirill Yukhin - - * gcc.target/i386/i386.exp (check_effective_target_lzcnt): New. - * gcc.target/i386/lzcnt-1.c: New test. - * gcc.target/i386/lzcnt-2.c: Likewise. - * gcc.target/i386/lzcnt-2a.c: Likewise. - * gcc.target/i386/lzcnt-3.c: Likewise. - * gcc.target/i386/lzcnt-4.c: Likewise. - * gcc.target/i386/lzcnt-4a.c: Likewise. - * gcc.target/i386/lzcnt-5.c: Likewise. - * gcc.target/i386/lzcnt-6.c: Likewise. - * gcc.target/i386/lzcnt-6a.c: Likewise. - * gcc.target/i386/lzcnt-check.h: Likewise. - - * gcc.target/i386/sse-12.c (dg-compile): Add -mlzcnt. - * gcc.target/i386/sse-13.c: Likewise. - * gcc.target/i386/sse-14.c: Likewise. - * g++.dg/other/i386-2.C: Likewise. - * g++.dg/other/i386-3.C: Likewise. - -2011-08-01 Julian Brown - - * gcc.target/arm/fixed-point-exec.c: New test. - -2011-07-31 Uros Bizjak - - PR target/49920 - * gcc.target/i386/pr49920.c: New test. - -2011-07-31 Uros Bizjak - - * gcc.dg/tree-ssa/20050314-1.c: Dump and cleanup lim1 pass only. - * gcc.dg/tree-ssa/pr23109.c: Ditto. - * gcc.dg/tree-ssa/loop-7.c: Ditto. - * gcc.dg/tree-ssa/loop-32.c: Ditto. - * gcc.dg/tree-ssa/loop-33.c: Ditto. - * gcc.dg/tree-ssa/loop-34.c: Ditto. - * gcc.dg/tree-ssa/loop-35.c: Ditto. - * gcc.dg/tree-ssa/restrict-3.c: Ditto. - * gcc.dg/tree-ssa/ssa-lim-2.c: Ditto. - * gcc.dg/tree-ssa/ssa-lim-1.c: Ditto. - * gcc.dg/tree-ssa/ssa-lim-3.c: Ditto. - * gcc.dg/tree-ssa/ssa-lim-6.c: Ditto. - * gcc.dg/tree-ssa/structopt-1.c: Ditto. - * g++.dg/tree-ssa/pr33615.C: Ditto. - * g++.dg/tree-ssa/restrict1.C: Ditto. - * c-c++-common/restrict-2.c: Ditto. - * gfortran.dg/pr32921.f: Ditto. - * gcc.dg/tree-ssa/ssa-dse-10.c: Dump and cleanup dse1 pass only. - * gcc.dg/fold-compare-2.c: Dump and cleanup vrp1 pass only. - * gcc.dg/tree-ssa/vrp47.c: Ditto. - * gcc.dg/tree-ssa/pr25501.c: Dump and cleanup mergephi1 pass only. - * gcc.dg/tree-ssa/pr15349.c: Dump and cleanup mergephi2 pass only. - * gcc.dg/tree-ssa/tailrecursion-1.c: Dump and cleanup tailr1 pass only. - * gcc.dg/tree-ssa/tailrecursion-2.c: Ditto. - * gcc.dg/tree-ssa/tailrecursion-3.c: Ditto. - * gcc.dg/tree-ssa/tailrecursion-4.c: Ditto. - * gcc.dg/tree-ssa/tailrecursion-6.c: Ditto. - -2011-07-31 Uros Bizjak - - * lib/gcc-dg.exp (cleanup-dump): Also remove .exe. and - .exe.ltrans[0-9]*. dump files. - -2011-07-31 Janus Weil - - PR fortran/49112 - * gfortran.dg/abstract_type_6.f03: Modified. - * gfortran.dg/typebound_proc_24.f03: New. - -2011-07-30 Paolo Carlini - - PR testsuite/49917 - * g++.dg/init/for1.C: Fix. - -2011-07-30 Thomas Koenig - - PR fortran/48876 - * gfortran.dg/string_5.f90: New test. - -2011-07-29 Jason Merrill - - PR c++/49867 - * g++.dg/cpp0x/lambda/lambda-switch.C: New. - -2011-07-29 Rainer Orth - - PR tree-optimization/47407 - * gcc.dg/tree-ssa/pr42585.c: XFAIL scan-tree-dump-times on - alpha*-dec-osf*. - Sort target list. - -2011-07-29 Richard Guenther - - * gcc.dg/uninit-suppress.c: Also disable VRP. - * gcc.dg/uninit-suppress_2.c: Likewise. - -2011-07-28 Jason Merrill - - PR c++/49808 - * g++.dg/template/nontype24.C: New. - -2011-07-28 H.J. Lu - - PR rtl-optimization/47958 - * gcc.dg/torture/pr47958-1.c: New. - -2011-07-29 Wei Guozhi - - PR rtl-optimization/49799 - * gcc.dg/pr49799.c: New test case. - -2011-07-22 Sebastian Pop - - PR middle-end/48648 - * gcc.dg/graphite/id-pr48648.c: New. - -2011-07-28 Jakub Jelinek - - PR fortran/31067 - * gfortran.dg/maxloc_2.f90: New test. - * gfortran.dg/maxloc_3.f90: New test. - * gfortran.dg/minloc_1.f90: New test. - * gfortran.dg/minloc_2.f90: New test. - * gfortran.dg/minloc_3.f90: New test. - * gfortran.dg/minmaxloc_7.f90: New test. - - PR debug/49871 - * gcc.dg/debug/dwarf2/pr49871.c: New test. - -2011-07-28 Jakub Jelinek - - * gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure - the builtin isn't optimized away. - -2011-07-27 Tobias Burnus - - PR fortran/45586 - * gfortran.dg/lto/pr45586-2_0.f90: New. - -2011-07-27 Aldy Hernandez - - PR middle-end/49875 - * c-c++-common/cxxbitfields-4.c: Check for smaller than long moves. - * c-c++-common/cxxbitfields-5.c: Same. - -2011-07-27 Ulrich Weigand - - * lib/target-supports.exp (check_effective_target_mmap): Use - check_function_available. - -2011-07-27 Jeffrey Yasskin - - * g++.old-deja/g++.pt/crash60.C: Updated. - -2011-07-27 Jakub Jelinek - - PR target/49866 - * gcc.target/i386/pr49866.c: New test. - -2011-07-27 Yukhin Kirill - - * gcc.target/i386/i386.exp (check_effective_target_bmi): New. - * gcc.target/i386/bmi-andn-1.c: New test. - * gcc.target/i386/bmi-andn-1a.c: Likewise. - * gcc.target/i386/bmi-andn-2.c: Likewise. - * gcc.target/i386/bmi-andn-2a.c: Likewise. - * gcc.target/i386/bmi-bextr-1.c: Likewise. - * gcc.target/i386/bmi-bextr-1a.c: Likewise. - * gcc.target/i386/bmi-bextr-2.c: Likewise. - * gcc.target/i386/bmi-bextr-2a.c: Likewise. - * gcc.target/i386/bmi-blsi-1.c: Likewise. - * gcc.target/i386/bmi-blsi-1a.c: Likewise. - * gcc.target/i386/bmi-blsi-2.c: Likewise. - * gcc.target/i386/bmi-blsi-2a.c: Likewise. - * gcc.target/i386/bmi-blsmsk-1.c: Likewise. - * gcc.target/i386/bmi-blsmsk-1a.c: Likewise. - * gcc.target/i386/bmi-blsmsk-2.c: Likewise. - * gcc.target/i386/bmi-blsmsk-2a.c: Likewise. - * gcc.target/i386/bmi-blsr-1.c: Likewise. - * gcc.target/i386/bmi-blsr-1a.c: Likewise. - * gcc.target/i386/bmi-blsr-2.c: Likewise. - * gcc.target/i386/bmi-blsr-2a.c: Likewise. - * gcc.target/i386/bmi-tzcnt-1.c: Likewise. - * gcc.target/i386/bmi-tzcnt-1a.c: Likewise. - * gcc.target/i386/bmi-tzcnt-2.c: Likewise. - * gcc.target/i386/bmi-tzcnt-2a.c: Likewise. - -2011-07-27 Sebastian Pop - - PR middle-end/47691 - * gfortran.dg/graphite/id-pr47691.f: New. - -2011-07-27 Uros Bizjak - - * gcc.target/i386/avx-os-support.h: New. - * gcc.target/i386/avx-check.h: Include avx-os-support.h - (main): Check avx_os_support before the test is run. - * gcc.target/i386/aes-avx-check.h: Ditto. - * gcc.target/i386/pclmul-avx-check.h: Ditto. - -2011-07-27 Kai Tietz - - * gcc.target/i386/aggregate-ret3.c: New test. - * gcc.target/i386/aggregate-ret4.c: New test. - -2011-07-27 Daniel Carrera - - PR fortran/49755 - * gfortran.dg/multiple_allocation_1.f90: Fix test. Allocating an - allocated array should *not* change its size. - * gfortran.dg/multiple_allocation_3.f90: New test. - -2011-07-26 Paolo Carlini - - PR c++/49776 - * g++.dg/cpp0x/constexpr-49776.C: New. - -2011-07-26 Sebastian Pop - - PR middle-end/47046 - * gcc.dg/graphite/id-pr47046.c: New. - -2011-07-26 Sebastian Pop - - PR middle-end/47653 - * gcc.dg/graphite/run-id-pr47593.c: New. - -2011-07-26 Sebastian Pop - - PR middle-end/47653 - * gcc.dg/graphite/run-id-pr47653.c: New. - * gcc.dg/graphite/interchange-3.c: Do not use unsigned types for - induction variables. - * gcc.dg/graphite/scop-16.c: Same. - * gcc.dg/graphite/scop-17.c: Same. - * gcc.dg/graphite/scop-21.c: Same. - -2011-07-26 Sebastian Pop - - PR middle-end/48805 - * gcc.dg/graphite/id-pr48805.c: New. - -2011-07-26 Tobias Burnus - - * gfortran.dg/coarray_lib_token_2.f90: New. - -2011-07-26 Ira Rosen - - * gcc.dg/vect/vect-70.c: Reduce the data size to fit - SPU local store. - -2011-07-25 Andrew Pinski - - PR tree-opt/49671 - * gcc.dg/tree-ssa/pr49671-1.c: New testcase. - * gcc.dg/tree-ssa/pr49671-2.c: New testcase. - -2011-07-25 Rainer Orth - - * lib/target-supports.exp (check_effective_target_mmap): New proc. - - * gcc.c-torture/execute/loop-2f.c: Remove #ifdef __unix__. - * gcc.c-torture/execute/loop-2g.c: Likewise. - * gcc.c-torture/execute/loop-2f.x: Load target-supports.exp. - Require mmap support. - * gcc.c-torture/execute/loop-2g.x: Likewise. - * gcc.dg/20030711-1.c: Replace dg-do target list by mmap. - (MAP_ANON): Provide default. - * gcc.dg/20050826-1.c: Likewise. - * gcc.target/i386/pr36533.c: Likewise. - * gcc.dg/vect/pr49038.c: Remove dg-do run. - Use dg-require-effective-target mmap. - -2011-07-25 Paolo Carlini - - PR c++/49838 - * g++.dg/cpp0x/range-for19.C: New. - -2011-07-25 Rainer Orth - - PR testsuite/49753 - * g++.dg/torture/pr49309.C: Add -fpreprocessed to dg-options. - - Revert: - 2011-07-15 Jakub Jelinek - - PR testsuite/49753 - * g++.dg/torture/pr49309.C: Remove. - -2011-07-25 Richard Sandiford - - PR tree-optimization/49809 - * gnat.dg/opt18.adb, gnat.dg/opt18.ads, gnat.dg/opt18_pkg.ads: New - test. - -2011-07-25 Richard Guenther - - PR tree-optimization/49715 - * gcc.target/i386/pr49715-1.c: New testcase. - * gcc.target/i386/pr49715-2.c: Likewise. - -2011-07-23 Jason Merrill - - * g++.dg/cpp0x/decltype21.C: Add 49823 examples. - -2011-07-22 Jason Merrill - - PR c++/49793 - * g++.dg/cpp0x/initlist55.C: New. - -2011-07-23 Tobias Burnus - - PR fortran/49791 - * gfortran.dg/namelist_72.f: New. - -2011-07-23 Tobias Burnus - - * gfortran.dg/coarray_25.f90: New. - -2011-07-22 Ville Voutilainen - - * override1.C: This test should use c++0x mode. - * override3.C: New. Test the diagnostics in c++98 mode. - -2011-07-22 Jason Merrill - Mark Glisse - - PR c++/30112 - * g++.dg/other/pragma-re-1.C: Add namespace cases. - - PR c++/49813 - * g++.dg/opt/builtins2.C: New. - * g++.dg/other/error27.C: Don't rely on __builtin. - -2011-07-22 H.J. Lu - - * gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c: Only run - on lp64 targets. - * gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c: Likewise. - * gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c: Likewise. - * gcc/testsuite/gcc.target/i386/pr43662.c: Likewise. - * gcc/testsuite/gcc.target/i386/pr43869.c: Likewise. - - * gcc.target/x86_64/abi/callabi/callabi.exp: Check ilp32 - instead of ia32. - -2011-07-22 Richard Guenther - - PR tree-optimization/45819 - * gcc.dg/pr45819.c: New testcase. - -2011-07-22 Uros Bizjak - - * lib/target-supports.exp (check_ifunc_available): Rewrite. - -2011-07-21 Sebastian Pop - - PR middle-end/47654 - PR middle-end/49649 - * gcc.dg/graphite/run-id-pr47654.c: New. - -2011-07-21 Ian Lance Taylor - - PR middle-end/49705 - * gcc.dg/pr49705.c: New test. - -2011-07-21 Uros Bizjak - - * lib/target-supports.exp (check_avx_os_support_available): New. - (check_effective_target_avx_runtime): Use it. - -2011-07-21 Richard Guenther - - PR tree-optimization/49770 - * g++.dg/torture/pr49770.C: New testcase. - -2011-07-21 Kai Tietz - - * gcc.dg/tree-ssa/pr30978.c: adjusted. - * gcc.dg/tree-ssa/ssa-fre-6.c: Likewise. - -2011-07-21 Tobias Burnus - - * gfortran.dg/coarray_lib_token_1.f90: New. - -2011-07-21 Georg-Johann Lay - - * gcc.dg/pr32912-2.c: Skip for AVR. - * gcc.dg/pr44674.c: Add dg-require-profiling. - -2011-07-20 Jason Merrill - - * g++.dg/ext/desig2.C: New. - -2011-07-20 Michael Meissner - - * gcc.target/powerpc/ppc-fma-1.c: Adjust to allow non-VSX fmas to - be generated. - * gcc.target/powerpc/ppc-fma-2.c: Ditto. - * gcc.target/powerpc/recip-3.c: Ditto. - -2011-07-19 Jason Merrill - - PR c++/6709 (DR 743) - PR c++/42603 (DR 950) - * g++.dg/cpp0x/decltype21.C: New. - -2011-07-20 Richard Guenther - - PR middle-end/18908 - * gcc.dg/tree-ssa/pr18908.c: New testcase. - * gcc.dg/tree-ssa/bitwise-sink.c: Adjust. - -2011-07-20 Chung-Lin Tang - - * gcc.target/arm/combine-movs.c: New. - * gcc.target/arm/unsigned-extend-2.c: New. - -2011-07-19 Jason Merrill - - PR c++/49785 - * g++.dg/cpp0x/variadic114.C: New. - -2011-07-19 Tobias Burnus - - * gfortran.dg/coarray_args_1.f90: New. - * gfortran.dg/coarray_args_2.f90: New. - -2011-07-19 Janus Weil - - PR fortran/49708 - * gfortran.dg/allocate_error_3.f90: New. - -2011-07-19 Richard Guenther - - * gcc.dg/tree-ssa/bool-10.c: Adjust expected pattern. - * gcc.dg/tree-ssa/bool-11.c: Likewise. - * gcc.dg/torture/20110719-1.c: New testcase. - -2011-07-19 Jakub Jelinek - - PR tree-optimization/49768 - * gcc.c-torture/execute/pr49768.c: New test. - -2011-07-19 Ira Rosen - - PR tree-optimization/49771 - * gcc.dg/vect/pr49771.c: New test. - -2011-07-18 Martin Jambor - - * gcc.dg/ipa/ipa-1.c: Updated testcase dump scan. - * gcc.dg/ipa/ipa-2.c: Likewise. - * gcc.dg/ipa/ipa-3.c: Likewise and made functions static. - * gcc.dg/ipa/ipa-4.c: Updated testcase dump scan. - * gcc.dg/ipa/ipa-5.c: Likewise. - * gcc.dg/ipa/ipa-7.c: Likewise. - * gcc.dg/ipa/ipa-8.c: Updated testcase dump scan. - * gcc.dg/ipa/ipacost-1.c: Likewise. - * gcc.dg/ipa/ipacost-2.c: Likewise and increased sizes of some - functions. - * gcc.dg/ipa/ipcp-1.c: New test. - * gcc.dg/ipa/ipcp-2.c: Likewise. - * gcc.dg/tree-ssa/ipa-cp-1.c: Updated testcase. - -2011-07-18 Jakub Jelinek - - PR middle-end/49675 - * gfortran.dg/pr49675.f90: New test. - -2011-07-18 Richard Guenther - - * gcc.dg/torture/20110718-1.c: New testcase. - -2011-07-18 Rainer Orth - - * g++.dg/ext/bitfield2.C: Remove i?86-*-netware support. - * g++.dg/ext/bitfield3.C: Likewise. - * g++.dg/ext/bitfield4.C: Likewise. - * g++.dg/ext/bitfield5.C: Likewise. - * g++.dg/other/PR23205.C: Remove *-*-netware* support. - * g++.dg/other/pr23205-2.C: Likewise. - * gcc.c-torture/compile/20001109-1.c: Remove dg-xfail-if. - * gcc.c-torture/compile/20001109-2.c: Likewise. - * gcc.dg/20040813-1.c: Remove *-*-netware* support. - * gcc.dg/bitfld-15.c: Remove i?86-*-netware support. - * gcc.dg/bitfld-16.c: Likewise. - * gcc.dg/bitfld-17.c: Likewise. - * gcc.dg/bitfld-18.c: Likewise. - * gcc.dg/builtins-config.h: Remove Netware support. - * gcc.dg/cdce1.c: Remove *-*-netware* support. Update line number. - * gcc.dg/cdce2.c: Likewise. - * gcc.dg/cpp/assert4.c: Remove netware support. - * gcc.dg/debug/pr35154.c: Remove *-*-netware* support. - * gfortran.dg/debug/pr35154-stabs.f: Remove *-*-netware* support. - - * lib/target-supports.exp (check_visibility_available): Remove - NetWare support. - (check_profiling_available): Likewise. - -2011-07-18 Ira Rosen - - * gcc.dg/vect/pr49038.c: Run only on targets that support mmap. - -2011-07-17 Tobias Burnus - Thomas Koenig - - PR fortran/34657 - * gfortran.dg/generic_17.f90: Fix testcase. - * gfortran.dg/interface_3.f90: Add dg-error. - * gfortran.dg/use_14.f90: New. - * gfortran.dg/use_15.f90: New. - -2011-07-17 Eric Botcazou - - * gnat.dg/pointer_controlled.adb: New test. - -2011-07-17 Tobias Burnus - - PR fortran/49624 - * gfortran.dg/pointer_remapping_7.f90: New. - -2011-07-16 Jason Merrill - - * lib/prune.exp (prune_gcc_output): Prune "In substitution" too. - -2011-07-16 Nathan Froyd - Jason Merrill - - PR c++/45329 - PR c++/48934 - * g++.dg/cpp0x/decltype29.C: Adjust. - * g++.dg/cpp0x/error4.C: Adjust. - * g++.dg/cpp0x/sfinae26.C: Adjust. - * g++.dg/cpp0x/variadic105.C: Adjust. - * g++.dg/template/deduce3.C: Adjust. - * g++.dg/template/error45.C: Adjust. - * g++.dg/template/ptrmem2.C: Adjust. - * g++.dg/template/sfinae2.C: Adjust. - * g++.old-deja/g++.pt/crash60.C: Adjust. - * g++.old-deja/g++.pt/unify6.C: Adjust. - * g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust. - * g++.dg/cpp0x/nullptr15.C: Adjust. - * g++.dg/cpp0x/pr31431-2.C: Adjust. - * g++.dg/cpp0x/pr31431.C: Adjust. - * g++.dg/cpp0x/pr31434.C: Adjust. - * g++.dg/cpp0x/sfinae11.C: Adjust - * g++.dg/cpp0x/temp_default2.C: Adjust. - * g++.dg/cpp0x/trailing4.C: Adjust. - * g++.dg/cpp0x/variadic-ex3.C: Adjust. - * g++.dg/cpp0x/variadic-ex4.C: Adjust. - * g++.dg/cpp0x/variadic105.C: Adjust. - * g++.dg/cpp0x/vt-37737-2.C: Adjust. - * g++.dg/ext/vla2.C: Adjust. - * g++.dg/other/ptrmem10.C: Adjust. - * g++.dg/other/ptrmem11.C: Adjust. - * g++.dg/overload/unknown1.C: Adjust. - * g++.dg/template/conv11.C: Adjust. - * g++.dg/template/dependent-expr5.C: Adjust. - * g++.dg/template/friend.C: Adjust. - * g++.dg/template/incomplete2.C: Adjust. - * g++.dg/template/local4.C: Adjust. - * g++.dg/template/local6.C: Adjust. - * g++.dg/template/operator9.C: Adjust. - * g++.dg/template/ttp25.C: Adjust. - * g++.dg/template/unify10.C: Adjust. - * g++.dg/template/unify11.C: Adjust. - * g++.dg/template/unify6.C: Adjust. - * g++.dg/template/unify9.C: Adjust. - * g++.dg/template/varmod1.C: Adjust. - * g++.old-deja/g++.brendan/crash56.C: Adjust. - * g++.old-deja/g++.pt/crash28.C: Adjust. - * g++.old-deja/g++.pt/explicit41.C: Adjust. - * g++.old-deja/g++.pt/explicit77.C: Adjust. - * g++.old-deja/g++.pt/expr2.C: Adjust. - * g++.old-deja/g++.pt/ptrmem6.C: Adjust. - * g++.old-deja/g++.pt/spec5.C: Adjust. - * g++.old-deja/g++.pt/spec6.C: Adjust. - * g++.old-deja/g++.pt/unify4.C: Adjust. - * g++.old-deja/g++.pt/unify8.C: Adjust. - * g++.old-deja/g++.robertl/eb98.C: Adjust. - * g++.dg/overload/template5.C: New testcase. - * g++.dg/template/overload12.C: New testcase. - -2011-07-11 Tobias Burnus - - * gfortran.dg/coarray_14.f90: Remove dg-error "sorry not implemented". - * gfortran.dg/coarray_7.f90: Ditto. - * gfortran.dg/coarray/scalar_alloc_1.f90: New. - * gfortran.dg/coarray/scalar_alloc_2.f90: New. - -2011-07-16 Bernd Schmidt - - * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Add tic6x-*-* - case. - * gcc.c-torture/execute/ieee/20000320-1.x: Likewise. - * gcc.c-torture/execute/ieee/hugeval.x: Likewise. - * gcc.c-torture/execute/ieee/mzero2.c: Comment out the divide tests for - C67X. - * gcc.c-torture/execute/ieee/pr29302.x: New file. - * gcc.dg/torture/type-generic-1.c: Add -DUNSAFE for tic6x-*-*. - * gcc.dg/torture/builtin-math-7.c: Add a comment. - -2011-07-15 Jason Merrill - - PR testsuite/49741 - * lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Restore. - Use --extra_opts instead of --additional_options. - -2011-07-15 Jakub Jelinek - - PR testsuite/49753 - * g++.dg/torture/pr49309.C: Remove. - -2011-07-15 Bernd Schmidt - - * gcc.target/tic6x/weak-call.c: New test. - * gcc.target/tic6x/fpcmp.c: New test. - * gcc.target/tic6x/fpdiv.c: New test. - * gcc.target/tic6x/rotdi16-scan.c: New test. - * gcc.target/tic6x/ffssi.c: New test. - * gcc.target/tic6x/fpdiv-lib.c: New test. - * gcc.target/tic6x/cold-lc.c: New test. - * gcc.target/tic6x/longcalls.c: New test. - * gcc.target/tic6x/abi-align-1.c: New test. - * gcc.target/tic6x/fpcmp-finite.c: New test. - * gcc.target/tic6x/rotdi16.c: New test. - * gcc.target/tic6x/bswapl.c: New test. - * gcc.target/tic6x/ffsdi.c: New test. - * gcc.target/tic6x/tic6x.exp: New file. - * gcc.target/tic6x/builtins/arith24.c: New test. - * gcc.target/tic6x/builtins/smpy.c: New test. - * gcc.target/tic6x/builtins/smpylh.c: New test. - * gcc.target/tic6x/builtins/smpyh.c: New test. - * gcc.target/tic6x/builtins/sarith1.c: New test. - * gcc.target/tic6x/builtins/extclr.c: New test - * gcc.target/tic6x/builtins/c6x-builtins.exp: New file. - * gcc.target/tic6x/builtin-math-7.c: New test, adapted from gcc.dg. - * lib/target-supports.exp (chck_profiling_available): Not on tic6x. - (check_effective_target_ti_c67x, check_effective_target_ti_c64xp): - New functions. - * gcc.c-torture/execute/20101011-1.c: Add a condition for - __TMS320C6X__. - * gcc.dg/20020312-2.c: Likewise. - * gcc.dg/pr27095.c: Handle tic6x like hppa. - * gcc.dg/torture/pr37868.c: Skip on tic6x. - * gcc.dg/torture/builtin-math-7.c: Likewise. - - PR testsuite/49757 - * gcc.target/tic6x/builtins/c6x-builtins.exp: Return if - not testing tic6x-*-*. - -2011-07-14 Andrew Pinski - - PR tree-opt/49309 - * g++.dg/torture/pr49309.C: New testcase. - -2011-07-14 Bernd Schmidt - - * gcc.dg/pr48770.c: Add dg-require-effective-target fpic. - -2011-07-14 Richard Guenther - - PR tree-optimization/49651 - * gcc.dg/torture/pr49651.c: New testcase. - -2011-07-14 Georg-Johann Lay - - PR target/43746 - * gcc.dg/array-quals-1.c: Don't xfail on AVR. - -2011-07-13 Michael Meissner - - * gcc.target/powerpc/no-r11-1.c: Change -mno-r11 to - -mno-pointers-to-nested-functions. - * gcc.target/powerpc/no-r11-2.c: Ditto. - * gcc.target/powerpc/no-r11-3.c: Ditto. - -2011-07-13 Jason Merrill - - * lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Remove. - * lib/lto.exp (lto_prune_warns): Prune warning about -std=c++0x - when compiling C files. - * g++.dg/debug/dwarf2/lineno-simple1.C: Avoid constexpr ctor. - * g++.dg/debug/dwarf2/pr44641.C: Avoid constexpr ctor. - * g++.dg/ext/utf-dflt.C: Specify -std=c++98. - * g++.dg/lookup/anon2.C: Likewise. - * g++.dg/tree-ssa/copyprop.C: Likewise. - * g++.old-deja/g++.jason/rfg27.C: Likewise. - * g++.dg/init/vector1.C: Ignore narrowing errors. - * g++.dg/torture/pr35526.C: Likewise. - * g++.old-deja/g++.ext/arrnew.C: Prune C++0x warning. - -2011-07-13 Janne Blomqvist - - PR libfortran/49296 - * gfortran.dg/read_list_eof_1.f90: Add tests for integer, real, - and logical reads. - -2011-07-13 Rainer Orth - - * gcc.c-torture/execute/990127-2.x: Use -mpc64 on i?86-*-darwin*, - i?86-*-solaris2*, x86_64-*-darwin*, x86_64-*-solaris2*. - -2011-07-13 Uros Bizjak - - * lib/g++.exp (g++_init): Use istarget. Remove target_triplet global. - * lib/obj-c++.exp (obj-c++_init): Ditto. - * lib/file-format.exp (gcc_target_object_format): Ditto. - * lib/target-supports-dg.exp (dg-require-dll): Ditto. - * lib/target-supports-dg-exp (check_weak_available): Ditto. - (check_visibility_available): Ditto. - (check_effective_target_tls_native): Ditto. - (check_effective_target_tls_emulated): Ditto. - (check_effective_target_function_sections): Ditto. - -2011-07-13 Chung-Lin Tang - - * gcc.target/arm/pr48183.c: New test. - -2011-07-13 Richard Guenther - - * gcc.dg/torture/20110713-1.c: New testcase. - -2011-07-12 Andrew Pinski - - PR rtl-opt/49474 - * gcc.c-torture/compile/pr49474.c: New testcase. - -2011-07-12 Jakub Jelinek - - PR tree-optimization/49712 - * gcc.c-torture/execute/pr49712.c: New test. - -2011-07-11 Jason Merrill - - PR c++/44609 - * g++.dg/template/recurse3.C: New. - -2011-07-11 Jakub Jelinek - - PR debug/49676 - * gcc.dg/guality/csttest.c: New test. - - PR fortran/49698 - * gfortran.dg/pr49698.f90: New test. - -2011-07-11 Jeff Law - - * gcc.dg/uninit-pred-8_b.c: Disable dominator optimizations. - -2011-07-11 H.J. Lu - - * gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Check ia32. - * go.test/go-test.exp (go-set-goarch): Likewise. - -2011-07-11 Georg-Johann Lay - - PR target/39633 - * gcc.target/avr/torture/pr39633.c: New test case. - -2011-07-11 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_lock_3.f90: Remove bogus dg-error. - -2011-07-11 Georg-Johann Lay - - * lib/target-supports.exp (check_effective_target_scheduling): - New Function. - * gcc.dg/pr46614.c: Add dg-require-effective-target scheduling. - * gcc.dg/pr45055.c: Ditto. - * gcc.dg/pr45353.c: Ditto. - * g++.dg/pr45056.C: Ditto. - -2011-07-11 Georg-Johann Lay - - * gcc.dg/compat/struct-by-value-16_main.c: Skip AVR. - * gcc.dg/compat/struct-by-value-17_main.c: Skip AVR. - * gcc.dg/compat/struct-by-value-18_main.c: Skip AVR. - * g++.dg/torture/pr31863.C: Skip AVR. - -2011-07-10 Tobias Burnus - - PR fortran/49690 - * gfortran.dg/intrinsic_signal.f90: New. - -2011-07-09 Jason Merrill - - * g++.dg/cpp0x/regress/regress6.C: New. - * g++.dg/parse/crash45.C: Adjust message. - * g++.dg/template/crash38.C: Adjust message. - * g++.dg/template/crash64.C: Adjust message. - -2011-07-09 H.J. Lu - - * c-c++-common/dfp/func-vararg-alternate-d128-2.c: Support x32. - * c-c++-common/dfp/func-vararg-mixed-2.c: Likewise. - * g++.dg/abi/bitfield3.C: Likewise. - * g++.dg/eh/pr38662.C: Likewise. - * g++.dg/ext/attrib36.C: Likewise. - * g++.dg/ext/attrib37.C: Likewise. - * g++.dg/ext/attrib8.C: Likewise. - * g++.dg/ext/tmplattr1.C: Likewise. - * g++.dg/inherit/override-attribs.C: Likewise. - * g++.dg/opt/inline9.C: Likewise. - * g++.dg/opt/life1.C: Likewise. - * g++.dg/opt/longbranch2.C: Likewise. - * g++.dg/opt/nrv12.C: Likewise. - * g++.dg/opt/reg-stack4.C: Likewise. - * g++.dg/other/pr35504.C: Likewise. - * g++.dg/other/pr39496.C: Likewise. - * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise. - * g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise. - * g++.dg/torture/stackalign/stdcall-1.C: Likewise. - * g++.dg/torture/stackalign/unwind-0.C: Likewise. - * g++.dg/torture/stackalign/unwind-1.C: Likewise. - * g++.dg/torture/stackalign/unwind-2.C: Likewise. - * g++.dg/torture/stackalign/unwind-3.C: Likewise. - * g++.dg/torture/stackalign/unwind-4.C: Likewise. - * g++.dg/torture/stackalign/unwind-5.C: Likewise. - * g++.dg/torture/stackalign/unwind-6.C: Likewise. - * g++.dg/warn/pr15774-1.C: Likewise. - * g++.dg/warn/pr15774-2.C: Likewise. - * g++.old-deja/g++.ext/attrib1.C: Likewise. - * g++.old-deja/g++.ext/attrib2.C: Likewise. - * g++.old-deja/g++.ext/attrib3.C: Likewise. - * g++.old-deja/g++.pt/asm2.C: Likewise. - * gcc.c-torture/compile/20000804-1.c: Likewise. - * gcc.c-torture/compile/pr16566-2.c: Likewise. - * gcc.c-torture/execute/ieee/ieee.exp: Likewise. - * gcc.dg/20020108-1.c: Likewise. - * gcc.dg/20020122-2.c: Likewise. - * gcc.dg/20020122-3.c: Likewise. - * gcc.dg/20020206-1.c: Likewise. - * gcc.dg/20020219-1.c: Likewise. - * gcc.dg/20020310-1.c: Likewise. - * gcc.dg/20020411-1.c: Likewise. - * gcc.dg/20020418-2.c: Likewise. - * gcc.dg/20020426-2.c: Likewise. - * gcc.dg/20020517-1.c: Likewise. - * gcc.dg/20030204-1.c: Likewise. - * gcc.dg/20030826-2.c: Likewise. - * gcc.dg/20031102-1.c: Likewise. - * gcc.dg/20031202-1.c: Likewise. - * gcc.dg/20050111-1.c: Likewise. - * gcc.dg/20050503-1.c: Likewise. - * gcc.dg/array-init-1.c: Likewise. - * gcc.dg/builtin-apply4.c: Likewise. - * gcc.dg/dfp/pr31344.c: Likewise. - * gcc.dg/gomp/atomic-11.c: Likewise. - * gcc.dg/graphite/pr40281.c: Likewise. - * gcc.dg/ia64-sync-1.c: Likewise. - * gcc.dg/ia64-sync-2.c: Likewise. - * gcc.dg/ia64-sync-3.c: Likewise. - * gcc.dg/ia64-sync-4.c: Likewise. - * gcc.dg/ifcvt-fabs-1.c: Likewise. - * gcc.dg/invalid-call-1.c: Likewise. - * gcc.dg/loop-3.c: Likewise. - * gcc.dg/lower-subreg-1.c: Likewise. - * gcc.dg/lto/pr47259_0.c: Likewise. - * gcc.dg/nested-calls-1.c: Likewise. - * gcc.dg/pr20017.c: Likewise. - * gcc.dg/pr25023.c: Likewise. - * gcc.dg/pr27671-2.c: Likewise. - * gcc.dg/pr32176.c: Likewise. - * gcc.dg/pr33676.c: Likewise. - * gcc.dg/pr35045.c: Likewise. - * gcc.dg/pr36015.c: Likewise. - * gcc.dg/pr36584.c: Likewise. - * gcc.dg/pr36998.c: Likewise. - * gcc.dg/pr37438.c: Likewise. - * gcc.dg/pr37908.c: Likewise. - * gcc.dg/pr41241.c: Likewise. - * gcc.dg/pr41340.c: Likewise. - * gcc.dg/pr44136.c: Likewise. - * gcc.dg/pr44194-1.c: Likewise. - * gcc.dg/pr46212.c: Likewise. - * gcc.dg/prefetch-loop-arrays-1.c: Likewise. - * gcc.dg/setjmp-2.c: Likewise. - * gcc.dg/short-compare-1.c: Likewise. - * gcc.dg/short-compare-2.c: Likewise. - * gcc.dg/smod-1.c: Likewise. - * gcc.dg/sync-2.c: Likewise. - * gcc.dg/sync-3.c: Likewise. - * gcc.dg/tls/opt-1.c: Likewise. - * gcc.dg/tls/opt-2.c: Likewise. - * gcc.dg/tls/opt-3.c: Likewise. - * gcc.dg/torture/badshift.c: Likewise. - * gcc.dg/torture/fp-int-convert-float80-timode.c: Likewise. - * gcc.dg/torture/pr20314-2.c: Likewise. - * gcc.dg/torture/pr36891.c: Likewise. - * gcc.dg/torture/pr38774.c: Likewise. - * gcc.dg/torture/stackalign/alloca-2.c: Likewise. - * gcc.dg/torture/stackalign/alloca-4.c: Likewise. - * gcc.dg/torture/stackalign/alloca-5.c: Likewise. - * gcc.dg/torture/stackalign/alloca-6.c: Likewise. - * gcc.dg/torture/stackalign/fastcall-1.c: Likewise. - * gcc.dg/torture/stackalign/push-1.c: Likewise. - * gcc.dg/torture/stackalign/regparm-1.c: Likewise. - * gcc.dg/torture/stackalign/thiscall-1.c: Likewise. - * gcc.dg/tree-ssa/loop-28.c: Likewise. - * gcc.dg/tree-ssa/prefetch-3.c: Likewise. - * gcc.dg/tree-ssa/prefetch-4.c: Likewise. - * gcc.dg/tree-ssa/prefetch-5.c: Likewise. - * gcc.dg/tree-ssa/prefetch-6.c: Likewise. - * gcc.dg/tree-ssa/prefetch-7.c: Likewise. - * gcc.dg/tree-ssa/prefetch-8.c: Likewise. - * gcc.dg/tree-ssa/prefetch-9.c: Likewise. - * gcc.dg/tree-ssa/stdarg-2.c: Likewise. - * gcc.dg/tree-ssa/stdarg-3.c: Likewise. - * gcc.dg/tree-ssa/stdarg-4.c: Likewise. - * gcc.dg/tree-ssa/stdarg-5.c: Likewise. - * gcc.dg/tree-ssa/update-unroll-1.c: Likewise. - * gcc.dg/unroll-1.c: Likewise. - * gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Likewise. - * gcc.misc-tests/i386-pf-3dnow-1.c: Likewise. - * gcc.misc-tests/i386-pf-athlon-1.c: Likewise. - * gcc.misc-tests/i386-pf-none-1.c: Likewise. - * gcc.misc-tests/i386-pf-sse-1.c: Likewise. - * gcc.target/i386/20000609-1.c: Likewise. - * gcc.target/i386/20000720-1.c: Likewise. - * gcc.target/i386/20000724-1.c: Likewise. - * gcc.target/i386/20011107-1.c: Likewise. - * gcc.target/i386/20011119-1.c: Likewise. - * gcc.target/i386/20020201-3.c: Likewise. - * gcc.target/i386/20020218-1.c: Likewise. - * gcc.target/i386/20020729-1.c: Likewise. - * gcc.target/i386/20030926-1.c: Likewise. - * gcc.target/i386/20060125-1.c: Likewise. - * gcc.target/i386/20060125-2.c: Likewise. - * gcc.target/i386/20060512-1.c: Likewise. - * gcc.target/i386/20060512-2.c: Likewise. - * gcc.target/i386/20060512-3.c: Likewise. - * gcc.target/i386/20060512-4.c: Likewise. - * gcc.target/i386/387-1.c: Likewise. - * gcc.target/i386/387-2.c: Likewise. - * gcc.target/i386/387-5.c: Likewise. - * gcc.target/i386/387-6.c: Likewise. - * gcc.target/i386/980312-1.c: Likewise. - * gcc.target/i386/980313-1.c: Likewise. - * gcc.target/i386/990117-1.c: Likewise. - * gcc.target/i386/990424-1.c: Likewise. - * gcc.target/i386/990524-1.c: Likewise. - * gcc.target/i386/991129-1.c: Likewise. - * gcc.target/i386/991214-1.c: Likewise. - * gcc.target/i386/991230-1.c: Likewise. - * gcc.target/i386/addr-sel-1.c: Likewise. - * gcc.target/i386/aggregate-ret1.c: Likewise. - * gcc.target/i386/aggregate-ret2.c: Likewise. - * gcc.target/i386/align-main-3.c: Likewise. - * gcc.target/i386/amd64-abi-1.c: Likewise. - * gcc.target/i386/amd64-abi-2.c: Likewise. - * gcc.target/i386/amd64-abi-4.c: Likewise. - * gcc.target/i386/amd64-abi-5.c: Likewise. - * gcc.target/i386/amd64-abi-6.c: Likewise. - * gcc.target/i386/asm-1.c: Likewise. - * gcc.target/i386/asm-3.c: Likewise. - * gcc.target/i386/asm-5.c: Likewise. - * gcc.target/i386/attributes-error.c: Likewise. - * gcc.target/i386/avx-vcvtsd2si-2.c: Likewise. - * gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise. - * gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise. - * gcc.target/i386/avx-vcvtss2si-2.c: Likewise. - * gcc.target/i386/avx-vcvttsd2si-2.c: Likewise. - * gcc.target/i386/avx-vcvttss2si-2.c: Likewise. - * gcc.target/i386/avx-vinsertps-3.c: Likewise. - * gcc.target/i386/avx-vmovd-2.c: Likewise. - * gcc.target/i386/avx-vmovq-2.c: Likewise. - * gcc.target/i386/avx-vmovq-3.c: Likewise. - * gcc.target/i386/avx-vpextrq-1.c: Likewise. - * gcc.target/i386/avx-vpinsrq-1.c: Likewise. - * gcc.target/i386/avx-vzeroupper-16.c: Likewise. - * gcc.target/i386/avx-vzeroupper-17.c: Likewise. - * gcc.target/i386/avx-vzeroupper-18.c: Likewise. - * gcc.target/i386/bitfield1.c: Likewise. - * gcc.target/i386/bitfield2.c: Likewise. - * gcc.target/i386/bmi-2.c: Likewise. - * gcc.target/i386/bmi-5.c: Likewise. - * gcc.target/i386/builtin-unreachable.c: Likewise. - * gcc.target/i386/cleanup-2.c: Likewise. - * gcc.target/i386/clobbers.c: Likewise. - * gcc.target/i386/cmov8.c: Likewise. - * gcc.target/i386/cmpxchg16b-1.c: Likewise. - * gcc.target/i386/compress-float-387-pic.c: Likewise. - * gcc.target/i386/compress-float-387.c: Likewise. - * gcc.target/i386/compress-float-sse-pic.c: Likewise. - * gcc.target/i386/compress-float-sse.c: Likewise. - * gcc.target/i386/crc32-2.c: Likewise. - * gcc.target/i386/crc32-3.c: Likewise. - * gcc.target/i386/divmod-7.c: Likewise. - * gcc.target/i386/divmod-8.c: Likewise. - * gcc.target/i386/fastcall-sseregparm.c: Likewise. - * gcc.target/i386/fma3-builtin.c: Likewise. - * gcc.target/i386/fma3-fma.c: Likewise. - * gcc.target/i386/fma4-256-vector.c: Likewise. - * gcc.target/i386/fma4-builtin.c: Likewise. - * gcc.target/i386/fma4-fma-2.c: Likewise. - * gcc.target/i386/fma4-fma.c: Likewise. - * gcc.target/i386/fma4-vector-2.c: Likewise. - * gcc.target/i386/fma4-vector.c: Likewise. - * gcc.target/i386/funcspec-1.c: Likewise. - * gcc.target/i386/funcspec-10.c: Likewise. - * gcc.target/i386/funcspec-11.c: Likewise. - * gcc.target/i386/funcspec-2.c: Likewise. - * gcc.target/i386/funcspec-5.c: Likewise. - * gcc.target/i386/funcspec-6.c: Likewise. - * gcc.target/i386/gcc-have-sync-compare-and-swap-1.c: Likewise. - * gcc.target/i386/gcc-have-sync-compare-and-swap-2.c: Likewise. - * gcc.target/i386/gcc-have-sync-compare-and-swap-3.c: Likewise. - * gcc.target/i386/gcc-have-sync-compare-and-swap-4.c: Likewise. - * gcc.target/i386/incoming-1.c: Likewise. - * gcc.target/i386/incoming-10.c: Likewise. - * gcc.target/i386/incoming-11.c: Likewise. - * gcc.target/i386/incoming-12.c: Likewise. - * gcc.target/i386/incoming-13.c: Likewise. - * gcc.target/i386/incoming-14.c: Likewise. - * gcc.target/i386/incoming-15.c: Likewise. - * gcc.target/i386/incoming-2.c: Likewise. - * gcc.target/i386/incoming-3.c: Likewise. - * gcc.target/i386/incoming-4.c: Likewise. - * gcc.target/i386/incoming-5.c: Likewise. - * gcc.target/i386/incoming-6.c: Likewise. - * gcc.target/i386/incoming-7.c: Likewise. - * gcc.target/i386/incoming-8.c: Likewise. - * gcc.target/i386/incoming-9.c: Likewise. - * gcc.target/i386/lea.c: Likewise. - * gcc.target/i386/local.c: Likewise. - * gcc.target/i386/loop-1.c: Likewise. - * gcc.target/i386/loop-2.c: Likewise. - * gcc.target/i386/loop-3.c: Likewise. - * gcc.target/i386/max-stack-align.c: Likewise. - * gcc.target/i386/memcpy-1.c: Likewise. - * gcc.target/i386/movbe-2.c: Likewise. - * gcc.target/i386/movq-2.c: Likewise. - * gcc.target/i386/movq.c: Likewise. - * gcc.target/i386/nrv1.c: Likewise. - * gcc.target/i386/pad-4.c: Likewise. - * gcc.target/i386/pad-5a.c: Likewise. - * gcc.target/i386/pad-5b.c: Likewise. - * gcc.target/i386/pad-6a.c: Likewise. - * gcc.target/i386/pad-6b.c: Likewise. - * gcc.target/i386/pad-7.c: Likewise. - * gcc.target/i386/pad-9.c: Likewise. - * gcc.target/i386/pentium4-not-mull.c: Likewise. - * gcc.target/i386/pic-1.c: Likewise. - * gcc.target/i386/pr12092-1.c: Likewise. - * gcc.target/i386/pr12329.c: Likewise. - * gcc.target/i386/pr21518.c: Likewise. - * gcc.target/i386/pr22362.c: Likewise. - * gcc.target/i386/pr22585.c: Likewise. - * gcc.target/i386/pr23098.c: Likewise. - * gcc.target/i386/pr25196.c: Likewise. - * gcc.target/i386/pr25293.c: Likewise. - * gcc.target/i386/pr25654.c: Likewise. - * gcc.target/i386/pr26449.c: Likewise. - * gcc.target/i386/pr26778.c: Likewise. - * gcc.target/i386/pr26826.c: Likewise. - * gcc.target/i386/pr27266.c: Likewise. - * gcc.target/i386/pr29978.c: Likewise. - * gcc.target/i386/pr30505.c: Likewise. - * gcc.target/i386/pr30961-1.c: Likewise. - * gcc.target/i386/pr31628.c: Likewise. - * gcc.target/i386/pr32000-2.c: Likewise. - * gcc.target/i386/pr32661-1.c: Likewise. - * gcc.target/i386/pr32708-2.c: Likewise. - * gcc.target/i386/pr32708-3.c: Likewise. - * gcc.target/i386/pr34256.c: Likewise. - * gcc.target/i386/pr34312.c: Likewise. - * gcc.target/i386/pr34522.c: Likewise. - * gcc.target/i386/pr35160.c: Likewise. - * gcc.target/i386/pr35281.c: Likewise. - * gcc.target/i386/pr36246.c: Likewise. - * gcc.target/i386/pr36786.c: Likewise. - * gcc.target/i386/pr37275.c: Likewise. - * gcc.target/i386/pr37843-3.c: Likewise. - * gcc.target/i386/pr37843-4.c: Likewise. - * gcc.target/i386/pr39082-1.c: Likewise. - * gcc.target/i386/pr39431.c: Likewise. - * gcc.target/i386/pr39496.c: Likewise. - * gcc.target/i386/pr39543-2.c: Likewise. - * gcc.target/i386/pr39911.c: Likewise. - * gcc.target/i386/pr40718.c: Likewise. - * gcc.target/i386/pr40906-1.c: Likewise. - * gcc.target/i386/pr40906-2.c: Likewise. - * gcc.target/i386/pr40906-3.c: Likewise. - * gcc.target/i386/pr40934.c: Likewise. - * gcc.target/i386/pr41900.c: Likewise. - * gcc.target/i386/pr42589.c: Likewise. - * gcc.target/i386/pr43662.c: Likewise. - * gcc.target/i386/pr43671.c: Likewise. - * gcc.target/i386/pr43766.c: Likewise. - * gcc.target/i386/pr43869.c: Likewise. - * gcc.target/i386/pr44942.c: Likewise. - * gcc.target/i386/pr44948-2a.c: Likewise. - * gcc.target/i386/pr45234.c: Likewise. - * gcc.target/i386/pr45336-2.c: Likewise. - * gcc.target/i386/pr45336-4.c: Likewise. - * gcc.target/i386/pr45852.c: Likewise. - * gcc.target/i386/pr46470.c: Likewise. - * gcc.target/i386/pr48037-1.c: Likewise. - * gcc.target/i386/pr48389.c: Likewise. - * gcc.target/i386/pr49095.c: Likewise. - * gcc.target/i386/pr9771-1.c: Likewise. - * gcc.target/i386/rdfsbase-1.c: Likewise. - * gcc.target/i386/rdfsbase-2.c: Likewise. - * gcc.target/i386/rdgsbase-1.c: Likewise. - * gcc.target/i386/rdgsbase-2.c: Likewise. - * gcc.target/i386/rdrand-3.c: Likewise. - * gcc.target/i386/regparm-stdcall.c: Likewise. - * gcc.target/i386/regparm.c: Likewise. - * gcc.target/i386/reload-1.c: Likewise. - * gcc.target/i386/rotate-2.c: Likewise. - * gcc.target/i386/sibcall-5.c: Likewise. - * gcc.target/i386/signbit-1.c: Likewise. - * gcc.target/i386/signbit-2.c: Likewise. - * gcc.target/i386/signbit-3.c: Likewise. - * gcc.target/i386/sse-5.c: Likewise. - * gcc.target/i386/sse-8.c: Likewise. - * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise. - * gcc.target/i386/sse-cvtss2si-2.c: Likewise. - * gcc.target/i386/sse-cvttss2si-2.c: Likewise. - * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise. - * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise. - * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise. - * gcc.target/i386/sse2-init-v2di-2.c: Likewise. - * gcc.target/i386/sse2-movq-2.c: Likewise. - * gcc.target/i386/sse2-movq-3.c: Likewise. - * gcc.target/i386/sse4_1-insertps-3.c: Likewise. - * gcc.target/i386/sse4_1-pextrq.c: Likewise. - * gcc.target/i386/sse4_1-pinsrq.c: Likewise. - * gcc.target/i386/sse4_2-crc32q.c: Likewise. - * gcc.target/i386/sse4_2-popcntq.c: Likewise. - * gcc.target/i386/ssefn-1.c: Likewise. - * gcc.target/i386/ssefn-2.c: Likewise. - * gcc.target/i386/sseregparm-1.c: Likewise. - * gcc.target/i386/sseregparm-2.c: Likewise. - * gcc.target/i386/sseregparm-3.c: Likewise. - * gcc.target/i386/sseregparm-4.c: Likewise. - * gcc.target/i386/sseregparm-5.c: Likewise. - * gcc.target/i386/sseregparm-6.c: Likewise. - * gcc.target/i386/sseregparm-7.c: Likewise. - * gcc.target/i386/sseregparm-8.c: Likewise. - * gcc.target/i386/stack-realign.c: Likewise. - * gcc.target/i386/stack-usage-realign.c: Likewise. - * gcc.target/i386/stackalign/asm-1.c: Likewise. - * gcc.target/i386/stackalign/longlong-1.c: Likewise. - * gcc.target/i386/stackalign/longlong-2.c: Likewise. - * gcc.target/i386/stackalign/return-1.c: Likewise. - * gcc.target/i386/stackalign/return-2.c: Likewise. - * gcc.target/i386/stackalign/return-3.c: Likewise. - * gcc.target/i386/tailcall-1.c: Likewise. - * gcc.target/i386/tbm-2.c: Likewise. - * gcc.target/i386/udivmod-7.c: Likewise. - * gcc.target/i386/udivmod-8.c: Likewise. - * gcc.target/i386/unroll-1.c: Likewise. - * gcc.target/i386/vararg-1.c: Likewise. - * gcc.target/i386/vararg-2.c: Likewise. - * gcc.target/i386/vect8-ret.c: Likewise. - * gcc.target/i386/vectorize5.c: Likewise. - * gcc.target/i386/wmul-1.c: Likewise. - * gcc.target/i386/wmul-2.c: Likewise. - * gcc.target/i386/wrfsbase-1.c: Likewise. - * gcc.target/i386/wrfsbase-2.c: Likewise. - * gcc.target/i386/wrgsbase-1.c: Likewise. - * gcc.target/i386/wrgsbase-2.c: Likewise. - * gcc.target/i386/xop-pcmov.c: Likewise. - * gcc.target/i386/xop-pcmov2.c: Likewise. - * gcc.target/i386/xop-rotate1-vector.c: Likewise. - * gcc.target/i386/xop-rotate2-vector.c: Likewise. - * gcc.target/i386/xop-rotate3-vector.c: Likewise. - * gcc.target/i386/xop-shift1-vector.c: Likewise. - * gcc.target/i386/xop-shift2-vector.c: Likewise. - * gcc.target/i386/xop-shift3-vector.c: Likewise. - * gcc.target/i386/zee.c: Likewise. - * gcc.target/x86_64/abi/callabi/callabi.exp: Likewise. - * gfortran.dg/compiler-directive_2.f: Likewise. - * gfortran.dg/g77/20010216-1.f: Likewise. - * gfortran.dg/gomp/pr39152.f90: Likewise. - * gfortran.dg/pr33794.f90: Likewise. - -2011-07-09 Jason Merrill - - * g++.dg/cpp0x/regress/regress5.C: New. - -2011-07-08 Jason Merrill - - PR c++/45437 - * g++.dg/expr/compound-asn1.C: New. - * g++.dg/warn/sequence-pt-1.C: Change one dg-error to dg-bogus. - -2011-07-08 Jakub Jelinek - - PR target/49621 - * gcc.target/powerpc/altivec-34.c: New test. - -2011-07-08 Jason Merrill - - PR c++/45603 - * g++.dg/abi/guard3.C: New. - -2011-07-08 Julian Brown - - * lib/target-supports.exp - (check_effective_target_arm_little_endian): New. - (check_effective_target_vect_pack_trunc): Use above. - (check_effective_target_vect_unpack): Likewise. - (check_effective_target_vect_element_align): Test - check_effective_target_arm_vect_no_misalign for ARM. - -2011-07-08 Jason Merrill - - PR c++/49673 - * g++.dg/cpp0x/constexpr-rom.C: New. - -2011-07-08 Kirill Yukhin - - PR middle-end/49519 - * g++.dg/torture/pr49519.C: New test. - -2011-07-08 Martin Jambor - - * gcc.dg/tree-ssa/sra-12.c: Skip dump scan on avr targets. - -2011-07-08 Rainer Orth - - PR testsuite/48727 - * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*. - -2011-07-08 Richard Guenther - - PR tree-optimization/49662 - * gcc.dg/graphite/interchange-14.c: XFAIL. - * gcc.dg/graphite/interchange-15.c: Likewise. - * gcc.dg/graphite/interchange-mvt.c: Likewise. - -2011-07-06 Jason Merrill - - PR c++/49663 - * g++.dg/cpp0x/regress/regress4.C: New. - -2011-07-07 Mikael Morin - - PR fortran/49648 - * gfortran.dg/result_in_spec_4.f90: New test. - -2011-07-07 Rainer Orth - - * gcc.target/sparc/cas64.c: New test. - -2011-07-07 Jakub Jelinek - - PR c/49644 - * g++.dg/torture/pr49644.C: New test. - - PR c/49644 - * gcc.c-torture/execute/pr49644.c: New test. - -2011-07-07 H.J. Lu - - * lib/target-supports.exp (check_effective_target_ia32): New. - (check_effective_target_x32): Likewise. - (check_effective_target_vect_cmdline_needed): Also check x32. - -2011-07-07 Janis Johnson - - * gcc.target/arm/pr40657-2.c: Remove -march option and unneeded - dg-prune-output. - * gcc.target/arm/pr42235.c: Likewise. - * gcc.target/arm/pr42495.c: Likewise. - * gcc.target/arm/pr42574.c: Likewise. - * gcc.target/arm/thumb-branch1.c: Likewise. - - * gcc.target/arm/pr39839.c: Don't specify -mthumb or -march, remove - unneeded prune of possible warning. - * gcc.target/arm/pr40956.c: Likewise. - * gcc.target/arm/pr42505.c: Likewise. - - * gcc.c-torture/compile/pr41679.c: Move from gcc.target/arm. - * gcc.c-torture/compile/pr46883.c: Likewise. - * gcc.c-torture/compile/pr46934.c: Likewise. - - * gcc.target/arm/pr41679.c: Remove test directives in preparation - for move to ../../gcc.c-torture/compile. - * gcc.target/arm/pr46883.c: Likewise. - * gcc.target/arm/pr46934.c: Likewise. - - * lib/target-supports.exp (check_effective_target_arm_dsp): New. - * gcc.target/arm/mla-2.c: Use it instead of specific -march. - * gcc.target/arm/wmul-1.c: Likewise. - * gcc.target/arm/wmul-2.c: Likewise. - * gcc.target/arm/wmul-3.c: Likewise. - * gcc.target/arm/wmul-4.c: Likewise. - * gcc.target/arm/smlaltb-1.c: Require arm_dsp, don't specify -march, - add tab after scan target. - * gcc.target/arm/smlaltt-1.c: Likewise. - * gcc.target/arm/smlatb-1.c: Likewise. - * gcc.target/arm/smlatt-1.c: Likewise. - -2011-07-07 Jakub Jelinek - - PR debug/49522 - * gcc.dg/debug/pr49522.c: New test. - -2011-07-07 Georg-Johann Lay - - * gcc.dg/pragma-align.c: Run only if target !default_packed. - * gcc.dg/pr46212.c: Run only if target int32plus. - * gcc.dg/torture/pr48146.c: Ditto. - * gcc.dg/tree-ssa/vrp51.c: Ditto. - * c-c++-common/pr44832.c: Ditto. - * gcc.dg/pr49544.c: Run only if target ptr32plus. - * gcc.dg/pr31490.c: Ditto. - * gcc.dg/torture/builtin-math-7.c: Run only if target - large_double. - * gcc.dg/torture/pr45764.c: Skip for AVR. - * gcc.dg/pr47893.c: Ditto. - -2011-07-07 Janis Johnson - - * lib/target-supports.exp (check_effective_target_arm_thumb1): New. - (check_effective_target_arm_thumb2): Clarify comment, add valid code. - * gcc.target/arm/mla-1.c: Skip for arm_thumb1, don't specify -march, - add tab to scan target. - -2011-07-07 Richard Sandiford - - * gcc.target/arm/neon-modes-3.c: New test. - -2011-07-07 Uros Bizjak - - * gcc.dg/graphite/pr37485.c (dg-options): Add -fno-loop-strip-mine - -fno-loop-interchange -ffast-math. - -2011-07-07 Richard Guenther - - * gcc.dg/ftrapv-3.c: New testcase. - -2011-07-07 Richard Guenther - - * gcc.dg/tree-ssa/vrp58.c: New testcase. - * gcc.dg/tree-ssa/scev-cast.c: Adjust. - -2011-07-07 Kai Tietz - - * gcc.dg/binop-notxor1.c: New test. - * gcc.dg/binop-notand4a.c: New test. - * gcc.dg/binop-notxor2.c: New test. - * gcc.dg/binop-notand3a.c: New test. - * gcc.dg/binop-notand2a.c: New test. - * gcc.dg/binop-notand6a.c: New test. - * gcc.dg/binop-notor1.c: New test. - * gcc.dg/binop-notand1a.c: New test. - * gcc.dg/binop-notand5a.c: New test. - * gcc.dg/binop-notor2.c: New test. - -2011-07-07 Jakub Jelinek - - PR middle-end/49640 - * gcc.dg/gomp/pr49640.c: New test. - -2011-07-07 Richard Guenther - - * gcc.dg/graphite/pr37485.c: Add -floop-block. - -2011-07-07 Rainer Orth - - PR target/39150 - * gcc.misc-tests/linkage.exp: Handle x86_64-*-solaris2.1[0-9]*. - -2011-07-06 Michael Meissner - - * gcc.target/powerpc/no-r11-1.c: New test for -mr11, -mno-r11. - * gcc.target/powerpc/no-r11-2.c: Ditto. - * gcc.target/powerpc/no-r11-3.c: Ditto. - -2011-07-06 Uros Bizjak - - * gcc.dg/stack-layout-2.c: Cleanup expand rtl dump. - * gfortran.dg/move_alloc_4.f90: Cleanup original tree dump. - -2011-07-06 Georg-Johann Lay - - * lib/target-supports.exp (check_profiling_available): Disable - profiling with -fprofile-generate for target avr. - -2011-07-06 Richard Guenther - - PR tree-optimization/49645 - * g++.dg/tree-ssa/pr8781.C: Disable SRA. - -2011-07-06 H.J. Lu - - PR middle-end/47383 - * gcc.dg/pr47383.c: New. - -2011-07-06 Rainer Orth - - PR tree-optimization/49647 - * gcc.dg/tree-ssa/20030807-7.c: Remove xfail *-*-*. - -2011-07-06 Eric Botcazou - - PR testsuite/49542 - * gcc.dg/vect/pr33804.c: XFAIL if vect_no_align unconditionally. - * gcc.dg/vect/slp-multitypes-3.c: XFAIL on SPARC unconditionally. - -2011-07-05 Jason Merrill - - PR c++/48157 - * g++.dg/template/template-id-4.C: New. - -2011-07-05 Georg-Johann Lay - - * gcc.dg/pr44023.c: Add dg-require-effective-target int32plus - * gcc.dg/pr43402.c: Ditto. - -2011-07-05 Georg-Johann Lay - - * gcc.dg/cpp/pragma-3.c: Add dg-require-effective-target fopenmp. - -2011-07-05 Michael Meissner - - * gcc.target/powerpc/ppc-switch-1.c: New test for - --param case-values-threshold. - * gcc.target/powerpc/ppc-switch-2.c: Ditto. - -2011-07-05 Janis Johnson - - * gcc.target/arm/pr42093.c: Use "-fno-reorder-blocks". - -2011-07-05 Jason Merrill - - * g++.dg/rtti/anon-ns1.C: Allow for null-termination. - -2011-07-05 Sebastian Pop - - PR tree-optimization/47654 - * gcc.dg/graphite/block-pr47654.c: New. - -2011-07-05 Jason Merrill - - * g++.dg/cpp0x/lambda/lambda-ref2.C: New. - -2011-07-05 Razya Ladelsky - - PR tree-optimization/49580 - * gcc.dg/autopar/pr49580.c: New test. - -2011-07-05 Richard Guenther - - PR tree-optimization/49518 - PR tree-optimization/49628 - * g++.dg/torture/pr49628.C: New testcase. - * gcc.dg/torture/pr49518.c: Likewise. - -2011-07-05 Rainer Orth - - * ada/acats/run_acats (which): Extract last field from type -p, - type output only if command succeeded. - -2011-07-04 Jason Merrill - - * g++.dg/abi/mangle48.C: New. - - * g++.dg/cpp0x/diag1.C: New. - - * g++.dg/diagnostic/aka1.C: New. - -2011-07-04 Jakub Jelinek - - PR rtl-optimization/49619 - * gcc.dg/pr49619.c: New test. - - PR rtl-optimization/49472 - * gfortran.dg/pr49472.f90: New test. - - PR debug/49602 - * gcc.dg/pr49602.c: New test. - -2011-07-04 Georg-Johann Lay - - PR target/34734 - PR target/44643 - * gcc.target/avr/avr.exp: Run over cpp files, too. - * gcc.target/avr/torture/avr-torture.exp: Ditto. - * gcc.target/avr/progmem.h: New file. - * gcc.target/avr/exit-abort.h: New file. - * gcc.target/avr/progmem-error-1.c: New file. - * gcc.target/avr/progmem-error-1.cpp: New file. - * gcc.target/avr/progmem-warning-1.c: New file. - * gcc.target/avr/torture/progmem-1.c: New file. - * gcc.target/avr/torture/progmem-1.cpp: New file. - -2011-07-04 Richard Guenther - - PR tree-optimization/49615 - * g++.dg/torture/pr49615.C: New testcase. - -2011-07-03 Ira Rosen - - PR tree-optimization/49610 - * gcc.dg/vect/pr49610.c: New test. - -2011-07-02 Eric Botcazou - - * gnat.dg/specs/debug1.ads: New test. - -2011-07-02 Janus Weil - - PR fortran/49562 - * gfortran.dg/typebound_proc_23.f90: New. - -2011-07-01 Jonathan Wakely - - PR c++/49605 - * g++.dg/warn/delete-non-virtual-dtor.C: Adjust. - -2011-07-01 Jason Merrill - - PR c++/48261 - * g++.dg/template/template-id-3.C: New. - - PR c++/48593 - * g++.dg/template/qualified-id4.C: New. - - PR c++/48883 - * g++.dg/template/explicit-args4.C: New. - - PR c++/49085 - * g++.dg/template/offsetof2.C: New. - -2011-07-01 Kai Tietz - - * gcc.dg/tree-ssa/bitwise-sink.c: New test. - -2011-07-01 Rainer Orth - - PR libmudflap/49549 - * lib/target-supports.exp (check_effective_target_gld): New proc. - -2011-07-01 Richard Guenther - - PR tree-optimization/49603 - * gcc.dg/torture/pr49603.c: New testcase. - -2011-06-30 Jason Merrill - - PR c++/49387 - * g++.dg/rtti/template1.C: New. - - PR c++/49569 - * g++.dg/cpp0x/regress/ctor1.C: New. - - PR c++/49355 - * g++.dg/cpp0x/initlist54.C: New. - -2011-06-30 Martin Jambor - - * gcc.dg/tree-ssa/sra-12.c: New test. - -2011-06-29 Jason Merrill - - * g++.dg/cpp0x/named.C: Test subobject of xvalue. - -2011-06-30 Richard Guenther - - PR tree-optimization/46787 - * gcc.dg/vect/vect-121.c: New testcase. - -2011-06-30 Martin Jambor - - PR tree-optimization/49094 - * gcc.dg/tree-ssa/pr49094.c: New test. - -2011-06-30 Jakub Jelinek - - PR fortran/49540 - * gfortran.dg/pr49540-1.f90: New test. - * gfortran.dg/pr49540-2.f90: New test. - -2011-06-30 Rainer Orth - - PR ada/49511 - * ada/acats/run_acats (which): Use last field of type -p output. - -2011-06-30 Dominique d'Humieres - Iain Sandoe - - PR libobjc/36610 - * objc.dg/torture/forward-1.m: Remove dg-xfail-run-if. - Only skip on 64-bit *-*-darwin8* && !objc2. - -2011-06-30 Richard Guenther - - PR tree-optimization/38752 - * gcc.c-torture/compile/pr38752.c: New testcase. - -2011-06-30 Ira Rosen - - * gcc.dg/vect/slp-widen-mult-half.c: New test. - * gcc.dg/vect/vect-widen-mult-half.c: New test. - -2011-06-29 Jason Merrill - - PR c++/49216 - * g++.dg/cpp0x/initlist53.C: Use placement new. - * g++.dg/cpp0x/initlist-value.C: Use placement new. - * g++.old-deja/g++.ext/arrnew2.C: Remove xfail. - - PR c++/49003 - * g++.dg/cpp0x/trailing6.C: New. - * g++.dg/cpp0x/pr45908.C: No error. - - PR c++/49272 - * g++.old-deja/g++.jason/rfg10.C: Accept other overflow error too. - - PR c++/49520 - * g++.dg/cpp0x/constexpr-using2.C: New. - - * g++.dg/cpp0x/lambda/lambda-template3.C: New. - - PR c++/45923 - * g++.dg/cpp0x/constexpr-diag3.C: New. - * g++.dg/cpp0x/constexpr-diag1.C: Adjust error message. - * g++.dg/cpp0x/constexpr-ex1.C: Adjust error message. - * g++.dg/cpp0x/constexpr-friend.C: Adjust error message. - * g++.dg/cpp0x/constexpr-incomplete2.C: Adjust error message. - -2011-06-29 Jason Merrill - - * g++.dg/cpp0x/constexpr-is_literal.C: Adjust. - -2011-06-29 Richard Guenther - - * gcc.dg/tree-ssa/loop-17.c: Adjust. - -2011-06-29 Jason Merrill - - * g++.dg/cpp0x/initlist-value2.C: New. - - * g++.dg/cpp0x/constexpr-initlist4.C: New. - * g++.dg/cpp0x/initlist-value.C: New. - -2011-06-29 Richard Sandiford - - * gcc.dg/torture/pr49169.c: Restrict to ARM and MIPS targets. - -2011-06-29 Rainer Orth - - * gcc.dg/inline_1.c: Remove dg-excess-errors. - * gcc.dg/inline_2.c: Likewise. - * gcc.dg/unroll_1.c: Likewise. - -2011-06-29 Jakub Jelinek - - PR debug/49567 - * gcc.target/i386/pr49567.c: New test. - -2011-06-28 Eric Botcazou - - * gnat.dg/opt17.ad[sb]: New test. - -2011-06-28 Janis Johnson - Tom de Vries - - * lib/target-supports.exp (check_effective_target_arm_nothumb) - (check_effective_target_arm_thumb2): New effective targets. - * gcc.target/arm/ivopts.c: Remove -mthumb/-marm. Guard object-size - properly. Clean up temporary files. - * gcc.target/arm/ivopts-2.c: Likewise. - * gcc.target/arm/ivopts-3.c: Likewise. - * gcc.target/arm/ivopts-4.c: Likewise. - * gcc.target/arm/ivopts-5.c: Likewise. - * gcc.target/arm/ivopts-6.c: Remove duplicate of ivopts.c. - -2011-06-28 Thomas Koenig - - PR fortran/49479 - * gfortran.dg/reshape_zerosize_3.f90: New test. - -2011-06-28 Janis Johnson - - * gcc.target/arm/vfp-ldmdbs.c: Skip for soft float. - * gcc.target/arm/vfp-ldmias.c: Likewise. - * gcc.target/arm/vfp-ldmdbd.c: Likewise. - * gcc.target/arm/vfp-stmdbs.c: Likewise. - * gcc.target/arm/vfp-ldmiad.c: Likewise. - * gcc.target/arm/vfp-stmias.c: Likewise. - * gcc.target/arm/vfp-stmdbd.c: Likewise. - * gcc.target/arm/vfp-stmiad.c: Likewise. - -2011-06-27 Janis Johnson - - * gcc.target/arm/pr45701-1.c: Don't specify -march; remove - dg-prune-output. - * gcc.target/arm/pr45701-2.c: Ditto. - -2011-06-27 Janus Weil - - PR fortran/49466 - * gfortran.dg/allocatable_scalar_9.f90: Modified. - * gfortran.dg/extends_14.f03: Modified. - -2011-06-27 Janis Johnson - - * lib/target-supports-dg.exp (dg-require-effective-target): Return - early if the test is already being skipped. - - * lib/scanasm.exp (dg-scan, scan-assembler-times, scan-assembler-dem, - scan-assembler-dem-not): For missing file, report unresolved with - same message as for pass/fail, with reason reported in log file. - - * lib/target-supports.exp (add_options_for_arm_fp16): Renamed - from add_options_for_arm_neon_fp16. - (check_effective_target_arm_fp16_ok_nocache): Renamed from - check_effective_target_arm_neon_fp16_ok_nocache. - Check -mfpu and -mfloat-abi options from current multilib. - Do not require neon support. - (check_effective_target_arm_fp16_ok): Renamed from - check_effecitve_target_arm_neon_fp16_ok. - * g++.dg/ext/arm-fp16/arm-fp16-ops-5.C: Use new names for - arm_neon_fp16_ok and arm_fp16. - * g++.dg/ext/arm-fp16/arm-fp16-ops-6.C: Likewise. - * gcc.dg/torture/arm-fp16-ops-5.c: Likewise. - * gcc.dg/torture/arm-fp16-ops-6.c: Likewise. - * gcc.target/arm/fp16-compile-vcvt.c: Likewise. - -2011-06-27 Jakub Jelinek - - * gcc.dg/builtin-assume-aligned-1.c: New test. - * gcc.dg/builtin-assume-aligned-2.c: New test. - * gcc.target/i386/builtin-assume-aligned-1.c: New test. - - PR debug/49544 - * gcc.dg/pr49544.c: New test. - -2011-06-27 Richard Guenther - - PR tree-optimization/49394 - * g++.dg/torture/pr49394.C: New testcase. - -2011-06-27 Kai Tietz - - * gcc.dg/optimize-bswapdi-2.c: New test. - -2011-06-27 Michael Hope - Richard Sandiford - - PR tree-optimization/49169 - * gcc.dg/torture/pr49169.c: New test. - -2011-06-26 John David Anglin - - PR testsuite/49529 - * gcc.dg/ipa/ipa-pta-17.c: Use dg-require-alias. - - * gcc.dg/debug/pr49294.c (dg-options): Add -fno-common to options on - hppa*-*-hpux*. - -2011-06-26 Jason Merrill - - * g++.dg/cpp0x/constexpr-cleanup.C: Tweak error message. - - PR c++/49528 - * g++.dg/init/ref19.C: New. - * g++.dg/cpp0x/constexpr-cleanup.C: New. - -2011-06-26 Jakub Jelinek - - PR tree-optimization/48377 - * gcc.dg/vect/pr48377.c: Add dg-require-effective-target - non_strict_align. - -2011-06-26 Steve Ellcey - - PR middle-end/49191 - * lib/target-supports.exp (check_effective_target_non_strict_align): - New. - * gcc.dg/memcpy-3.c: Add dg-require-effective-target non_strict_align. - -2011-06-24 Martin Jambor - - PR tree-optimizations/49516 - * g++.dg/tree-ssa/pr49516.C: New test. - -2011-06-23 Jason Merrill - - PR c++/35255 - * g++.dg/template/partial10.C: New. - * g++.dg/template/partial11.C: New. - -2011-06-23 Jeff Law - - PR middle-end/48770 - * gcc.dg/pr48770.c: New test. - -2011-06-23 Jan Hubicka - - PR middle-end/49373 - * g++.dg/torture/pr43879-1_1.C: Revert the xfail introduced yesterday. - -2011-06-23 Jakub Jelinek - - PR testsuite/49512 - * gcc.dg/tree-ssa/asm-1.c: Use -fdump-tree-optimized-nouid - instead of -fdump-tree-optimized. - -2011-06-23 Paolo Carlini - - PR c++/44625 - * g++.dg/template/crash107.C: New. - * g++.dg/template/error17.C: Adjust. - -2011-06-23 Jason Merrill - - PR c++/49507 - * g++.dg/cpp0x/defaulted30.C: New. - - PR c++/49440 - * g++.dg/rtti/anon-ns1.C: New. - - PR c++/49395 - * g++.dg/init/ref18.C: New. - - PR c++/36435 - * g++.dg/template/partial9.C: New. - -2011-06-22 Hans-Peter Nilsson - - PR middle-end/49373 - * g++.dg/torture/pr43879-1_1.C: Xfail for -O1 and above, except -flto. - -2011-06-22 Jakub Jelinek - - PR debug/49496 - * gcc.dg/pr49496.c: New test. - -2011-06-22 Janis Johnson - - * gcc.target/arm/scd42-3.c: Allow -march-xscale; skip if -mcpu - is not xscale. - - * gcc.target/arm/thumb-bitfld1.c: Don't specify -march, require thumb1. - - * gcc.target/arm/ctz.c: Don't specify -march, require thumb2. - * gcc.target/arm/pr42879.c: Likewise. - * gcc.target/arm/pr45701-3.c: Likewise. - - * gcc.target/arm/20031108-1.c: Require thumb1 or thumb2. - * gcc.target/arm/pr40482.c: Likewise. - * gcc.target/arm/stack-corruption.c: Likewise. - -2011-06-22 Richard Guenther - - PR tree-optimization/49493 - * gcc.dg/ipa/ipa-pta-17.c: New testcase. - -2011-06-22 Jason Merrill - - PR c++/49260 - * g++.dg/cpp0x/lambda/lambda-eh2.C: Change options. - -2011-06-22 Dmitry Plotnikov - Dmitry Melnik - - * gcc.target/arm/neon-vshr-imm-1.c: New testcase. - * gcc.target/arm/neon-vshl-imm-1.c: New testcase. - * gcc.target/arm/neon-vlshr-imm-1.c: New testcase. - -2011-06-22 Nathan Sidwell - - * gcc.target/arm/tlscall.c: New. - -2011-06-21 Jason Merrill - - PR c++/49172 - * g++.dg/cpp0x/constexpr-ref1.C: New. - * g++.dg/cpp0x/constexpr-ref2.C: New. - * g++.dg/cpp0x/constexpr-ice2.C: Remove dg-error tag. - - PR c++/49482 - * g++.dg/cpp0x/lambda/lambda-warn3.C: New. - - PR c++/49418 - * g++.dg/template/param3.C: New. - -2011-06-21 Bernd Schmidt - - * gcc.c-torture/excute/builtin-bitops-1.c (MAKE_FUNS): Make - my_clrsb test functions. - (main): Test clrsb. - * gcc.dg/builtin-protos-1.c (test_s, test_u, test_sl, test_ul, - test_sll, test_ull): Add clrsb tests. - * gcc.dg/torture/builtin-attr-1.c: Add tests for clrsb, clrsbl, - clrsbll. - -2011-06-21 Janus Weil - - PR fortran/49112 - * gfortran.dg/class_44.f03: New. - -2011-06-21 Ira Rosen - - PR tree-optimization/49478 - * gcc.dg/vect/pr49478.c - -2011-06-21 Richard Guenther - - PR tree-optimization/49483 - * gcc.dg/vect/vect-120.c: New testcase. - -2011-06-21 Ira Rosen - - PR testsuite/49443 - * gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align targets. - * gcc.dg/vect/vect-peel-4.c: Likewise. - -2011-06-22 Christian Bruel - - PR middle-end/49139 - * gcc.dg/always_inline.c: Removed -Winline. Update checks - * gcc.dg/always_inline2.c: Likewise. - * gcc.dg/always_inline3.c: Likewise. - * gcc.dg/debug/pr41264-1.c: Add -Wno-attributes. - * gcc.dg/inline_1.c: Likewise. - * gcc.dg/inline_2.c: Likewise. - * gcc.dg/inline_3.c: Likewise. - * gcc.dg/inline_4.c: Likewise. - * gcc.dg/20051201-1.c: Likewise. - * gcc.dg/pr40087.c: Likewise. - * gcc.dg/torture/pta-structcopy-1.c: Likewise. - * gcc.dg/inline-22.c: Likewise. - * gcc.dg/lto/20090218-1_0.c: Set inline keyword. - * gcc.dg/lto/20090218-1_1.c: Likewise. - * g++.dg/ipa/devirt-7.C: Likewise. - * gcc.dg/uninit-pred-5_a.c: Likewise. - * gcc.dg/uninit-pred-5_b.c: Likewise. - * gcc.dg/fail_always_inline.c: New. - -2011-06-21 Jakub Jelinek - - * Make-lang.in (check_gfortran_parallelize): Parallelize dg.exp - into 6 jobs instead of 3. - -2011-06-20 Jason Merrill - - PR c++/49216 - * g++.dg/cpp0x/initlist53.C: New. - -2011-06-20 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_lock_1.f90: Update dg-error. - * gfortran.dg/coarray_lock_3.f90: New. - * gfortran.dg/coarray/lock_1.f90: New. - -2011-06-20 Janis Johnson - - * lib/scandump.exp (scan-dump, scan-dump-times, scan-dump-not, - scan-dump-dem, scan-dump-dem-not): Treat a missing dump file as - unresolved and report the reason to the log file. - - * lib/scanasm.exp (object-size): Move argument processing earlier - to report errors before verifying that the file exists. Report - problems detected at runtime as unresolved instead of error and - report their reasons to the log file. - -2011-06-20 Jason Merrill - - PR c++/47080 - * g++.dg/cpp0x/explicit6.C: New. - - PR c++/47635 - * g++.dg/cpp0x/enum20.C: New. - - PR c++/48138 - * g++.dg/ext/attr-aligned01.C: New. - - PR c++/49205 - * g++.dg/cpp0x/variadic-default.C: New. - - PR c++/43321 - * g++.dg/cpp0x/auto26.C: New. - - PR c++/43831 - * g++.dg/cpp0x/lambda/lambda-capture-reduncancy.C: New. - -2011-06-20 Kai Tietz - - * gcc.dg/binop-notand1.c: New test. - * gcc.dg/binop-notand2.c: New test. - * gcc.dg/binop-notand3.c: New test. - * gcc.dg/binop-notand4.c: New test. - * gcc.dg/binop-notand5.c: New test. - * gcc.dg/binop-notand6.c: New test. - -2011-06-18 Jakub Jelinek - - PR testsuite/49432 - * obj-c++.dg/invalid-type-1.mm: Adjust for new error wording. - -2011-06-18 Janus Weil - - PR fortran/49400 - * gfortran.dg/proc_ptr_31.f90: New. - -2011-06-18 Eric Botcazou - - * gnat.dg/volatile6.adb: New test. - * gnat.dg/volatile7.adb: Likewise. - * gnat.dg/volatile8.adb: Likewise. - * gnat.dg/volatile9.adb: Likewise. - -2011-06-18 Eric Botcazou - - * gnat.dg/constant3.adb: New test. - -2011-06-18 Janne Blomqvist - - PR libfortran/49296 - * gfortran.dg/read_list_eof_1.f90: New test. - -2011-06-18 Jakub Jelinek - - PR target/49411 - * gcc.target/i386/testimm-1.c: New test. - * gcc.target/i386/testimm-2.c: New test. - * gcc.target/i386/testimm-3.c: New test. - * gcc.target/i386/testimm-4.c: New test. - * gcc.target/i386/testimm-5.c: New test. - * gcc.target/i386/testimm-6.c: New test. - * gcc.target/i386/testimm-7.c: New test. - * gcc.target/i386/testimm-8.c: New test. - * gcc.target/i386/xop-vpermil2px-2.c: New test. - * gcc.target/i386/xop-rotate1-int.c: New test. - * gcc.target/i386/xop-rotate2-int.c: New test. - -2011-06-17 Jason Merrill - - * g++.dg/cpp0x/rv-func2.C: New. - - * g++.dg/debug/dwarf2/lambda1.C: New. - * g++.dg/warn/Wshadow-6.C: Adjust. - -2011-06-17 Janus Weil - - PR fortran/48699 - * gfortran.dg/move_alloc_5.f90: New. - -2011-06-17 Hans-Peter Nilsson - - PR rtl-optimization/48542 - * gcc.dg/torture/pr48542.c: New test. - -2011-06-16 Jason Merrill - - PR c++/44160 - * g++.dg/cpp0x/lambda/lambda-__func__.C: New. - - PR c++/45378 - * g++.dg/cpp0x/initlist52.C New. - - PR c++/45399 - * c-c++-common/raw-string-12.c: New. - - PR c++/49229 - * g++.dg/cpp0x/sfinae26.C: New. - - PR c++/49251 - * g++.dg/cpp0x/variadic113.C: New. - - PR c++/49420 - * g++.dg/cpp0x/variadic112.C: New. - -2011-06-16 Jeff Law - - * gcc.dg/builtin-object-size-1.c: Update to handle chances from - improved jump threading. - * gcc.dg/builtin-object-size-2.c: Likewise. - * gcc.dg/tree-ssa/20030728-1.c: Likewise. - -2011-06-16 Janus Weil - - PR fortran/49074 - * gfortran.dg/typebound_assignment_3.f03: New. - -2011-06-16 Steve Ellcey - - PR testsuite/48727 - * g++.dg/opt/devirt2.C: Change xfail rule to target. - -2011-06-16 Martin Jambor - - PR tree-optimization/49343 - * gnat.dg/discr31.ad[sb]: New test. - -2011-06-16 Rainer Orth - - * gcc.dg/debug/pr49032.c: Prune mips-tfile warning. - -2011-06-16 Tom de Vries - - PR target/45098 - * gcc.target/arm/ivopts-3.c: Update test. - * gcc.target/arm/ivopts-5.c: Same. - -2011-06-16 Ramana Radhakrishnan - - Revert: - 2011-06-10 Wei Guozhi - - PR target/45335 - * gcc.target/arm/pr45335.c: New test. - * gcc.target/arm/pr45335-2.c: New test. - * gcc.target/arm/pr45335-3.c: New test. - * gcc.target/arm/pr40457-1.c: Add another possible output "ldrd". - * gcc.target/arm/pr40457-2.c: Changed to store 3 words. - * gcc.target/arm/pr40457-3.c: Changed to store 3 words. - -2011-06-16 Ira Rosen - - * gcc.dg/vect/vect-widen-mult-half-u8.c: New test. - -2011-06-16 Janus Weil - - PR fortran/49417 - * gfortran.dg/class_43.f03: New. - -2011-06-16 Jakub Jelinek - - PR tree-optimization/49419 - * gcc.c-torture/execute/pr49419.c: New test. - -2011-06-16 Revital Eres - - * gcc.dg/sms-9.c: New file. - -2011-06-15 Easwaran Raman - - PR rtl-optimization/49414 - * gcc.dg/pr44194-1.c: Restrict test to 64-bit targets. - -2011-06-14 Jason Merrill - - * g++.dg/cpp0x/noexcept13.C: New. - -2011-06-14 Easwaran Raman - - PR rtl-optimization/44194 - * gcc.dg/pr44194-1.c: New test. - * gcc.dg/pr44194-2.c: New test. - -2011-06-14 Janis Johnson - - * gcc.target/arm/pr45701-1.c: Ignore warnings about conflicting - switches. - * gcc.target/arm/pr45701-2.c: Likewise. - * gcc.target/arm/thumb-branch1.c: Likewise. - -2011-06-14 Steve Ellcey - - PR testsuite/48727 - * g++.dg/opt/devirt2.C: Fix scan rules for ia64*-*-hpux* and hppa*-*-*. - -2011-06-14 Janis Johnson - - * gcc.target/arm/pr45701-1.c: Require thumb support. - * gcc.target/arm/pr45701-2.c: Likewise. - * gcc.target/arm/thumb-branch1.c: Likewise. - - * gcc.target/arm/mla-1.c: Ignore warnings about conflicting switches. - * gcc.target/arm/pr39839.c: Likewise. - * gcc.target/arm/pr40657-2.c: Likewise. - * gcc.target/arm/pr40956.c: Likewise. - * gcc.target/arm/pr41679.c: Likewise. - * gcc.target/arm/pr42235.c: Likewise. - * gcc.target/arm/pr42495.c: Likewise. - * gcc.target/arm/pr42505.c: Likewise. - * gcc.target/arm/pr42574.c: Likewise. - * gcc.target/arm/pr46883.c: Likewise. - * gcc.target/arm/pr46934.c: Likewise. - * gcc.target/arm/xor-and.c: Likewise. - -2011-06-14 Jason Merrill - - * g++.dg/other/error23.C: Adjust error message. - * g++.dg/other/error32.C: Likewise. - - PR c++/49389 - * g++.dg/cpp0x/rv-dotstar.C: New. - - PR c++/49369 - * g++.dg/cpp0x/decltype30.C: New. - - * g++.dg/cpp0x/constexpr-array-ptr7.C: New. - -2011-06-14 Jakub Jelinek - - PR fortran/49103 - * gfortran.dg/pr49103.f90: New test. - -2011-06-14 Tom de Vries - - PR target/45098 - * gcc.target/arm/ivopts-3.c: New test. - * gcc.target/arm/ivopts-4.c: New test. - * gcc.target/arm/ivopts-5.c: New test. - -2011-06-14 Jakub Jelinek - - PR rtl-optimization/49390 - * gcc.c-torture/execute/pr49390.c: New test. - -2011-06-14 Rainer Orth - - * g++.dg/torture/pr48954.C: Use dg-require-effective-target lto. - -2011-06-14 Georg-Johann Lay - - * gcc.c-torture/execute/cmpsi-2.c: Undo 172757. - * gcc.c-torture/execute/cmpsi-2.x: New file. - * gcc.c-torture/execute/pr45262.c: Undo 172757. - * gcc.c-torture/execute/pr45262.x: New file. - * gcc.c-torture/compile/pr46534.c: Skip for AVR. - * gcc.c-torture/compile/pr49029.c: Add dg-require-effective-target - int32plus - * gcc.c-torture/compile/pr49163.c: Ditto. - -2011-06-14 Ira Rosen - - * gcc.dg/vect/vect-16.c: Rename to... - * gcc.dg/vect/no-fast-math-vect16.c: ...this. - * gcc.dg/vect/vect-peel-3.c: Adjust misalignment values - for double-word vectors. - * gcc.dg/vect/vect-peel-4.c: Likewise. - * gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with - vect_element_align. - * gcc.dg/vect/vect.exp: Run no-fast-math-* tests with - -fno-fast-math. - -2011-06-13 Edmar Wienskoski - - PR target/44618 - * gcc.target/powerpc/outofline_rnreg.c: New testcase. - -2011-06-13 H.J. Lu - - * gcc.dg/h8300-bit-insn-ice2.c: Remove duplicated lines. - -2011-06-13 Kaushik Phatak - - * gcc.dg/h8300-bit-insn-ice2.c: New testcase. - -2011-06-13 Thomas Koenig - - * gfortran.dg/trim_optimize_8.f90: New test case. - -2011-06-13 Jakub Jelinek - Ira Rosen - - PR tree-optimization/49352 - * gcc.dg/vect/pr49352.c: New test. - -2011-06-12 Tobias Burnus - - PR fortran/49324 - * gfortran.dg/alloc_comp_assign_11.f90: New. - -2011-05-11 Thomas Koenig - - * gfortran.dg/trim_optimize_7.f90: New test. - -2011-06-10 Wei Guozhi - - PR target/45335 - * gcc.target/arm/pr45335.c: New test. - * gcc.target/arm/pr45335-2.c: New test. - * gcc.target/arm/pr45335-3.c: New test. - * gcc.target/arm/pr40457-1.c: Add another possible output "ldrd". - * gcc.target/arm/pr40457-2.c: Changed to store 3 words. - * gcc.target/arm/pr40457-3.c: Changed to store 3 words. - -2011-06-10 Paolo Carlini - - PR c++/41769 - * g++.dg/parse/error39.C: New. - -2011-06-10 Janis Johnson - - * gcc.target/arm/20090811-1.c: Skip for incompatible - options, do not override other options. - * gcc.target/arm/combine-cmp-shift.c: Skip for - incompatible options. - * gcc.target/arm/pr45094.c: Likewise. - * gcc.target/arm/scd42-1.c: Likewise. - * gcc.target/arm/scd42-3.c: Likewise. - * gcc.target/arm/thumb-ltu.c: Likewise. - - * lib/target-supports.exp - (check_effective_target_arm_neon_fp16_ok_nocache): Return 0 if - multilib flags use -mfpu with a value other than neon-fp16. - -2011-06-10 Rainer Orth - - * gcc.dg/torture/tls/tls.exp: Load torture-options.exp. - Run tests with -fpic/-fPIC, -pie -fpie/-fPIE if supported. - -2011-06-10 Rainer Orth - - * lib/target-supports.exp (check_effective_target_pie): New proc. - * gcc.dg/pie-link.c: Use target pie. - -2011-06-10 Eric Botcazou - Laurent Roug� - - * gcc.dg/20020503-1.c: Add back -mflat option on the SPARC. - * gcc.target/sparc/sparc-ret.c: Skip if -mflat is passed. - -2011-06-10 Daniel Carrera - - * gfortran.dg/coarray/sync_1.f90: New test for - "SYNC ALL", "SYNC MEMORY" and "SYNC IMAGES". - -2011-06-10 Ira Rosen - - PR tree-optimization/49318 - * gcc.dg/vect/pr49318.c: New test. - -2011-06-09 David Krauss - - * g++.dg/template/arrow1.C: New. - -2011-06-09 Jason Merrill - - * lib/prune.exp: Prune "note"s. - * g++.dg/uninit-pred-3_b.C: Remove dg-excess-errors. - - * g++.dg/ext/injected-ttp.C: Specify -std=c++98. - * g++.dg/template/dependent-expr3.C: Likewise. - * g++.dg/parse/template7.C: Likewise. - * g++.old-deja/g++.bugs/900119_01.C: Likewise. - * g++.old-deja/g++.jason/rfg10.C: Likewise. - * g++.old-deja/g++.pt/friend38.C: Likewise. - * g++.old-deja/g++.pt/crash32.C: Likewise. - * g++.old-deja/g++.other/init4.C: Likewise. - * g++.old-deja/g++.other/friend8.C: Likewise. - - * g++.dg/ext/complex7.C: Adjust expected output. - * g++.dg/diagnostic/method1.C: Likewise. - * g++.dg/parse/parameter-declaration-2.C: Likewise. - * g++.dg/parse/crash33.C: Likewise. - * g++.dg/other/warning1.C: Likewise. - * g++.dg/init/pr29571.C: Likewise. - * g++.dg/warn/overflow-warn-1.C: Likewise. - * g++.dg/warn/overflow-warn-3.C: Likewise. - * g++.dg/warn/overflow-warn-4.C: Likewise. - * g++.old-deja/g++.oliva/template1.C: Likewise. - - * g++.dg/cpp0x/regress/error-recovery1.C: Adjust. - * g++.dg/parse/template7.C: Adjust. - -2011-06-09 Kaz Kojima - - PR target/49307 - * gcc.dg/pr49307.c: New. - -2011-06-09 Wei Guozhi - - PR target/46975 - * gcc.target/arm/pr46975.c: New testcase. - -2011-06-09 Nicola Pero - - * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h - (PMETH, arglist_t): Removed. - (method_get_number_of_arguments): Removed. - (method_get_nth_argument): Removed. - (method_get_first_argument): Removed. - (method_get_next_argument): Removed. - (method_get_sizeof_arguments): Removed. - * objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h - (PMETH): Removed. - (method_get_number_of_arguments): Removed. - (method_get_nth_argument): Removed. - (method_get_first_argument): Removed. - (method_get_next_argument): Removed. - (method_get_sizeof_arguments): Removed. - * objc-obj-c++-shared/objc-test-suite-types.h (PMETH): Removed. - -2011-06-09 David Li - - * gcc.dg/dump-pass.c: New test. - -2011-06-09 Paolo Carlini - - PR c++/29003 - * g++.dg/parse/error38.C: New. - -2011-06-09 Jakub Jelinek - - PR middle-end/49308 - * gfortran.dg/pr49308.f90: New test. - -2011-06-08 Jason Merrill - - * g++.dg/cpp0x/noexcept11.C: New. - * g++.dg/cpp0x/noexcept12.C: New. - * g++.dg/cpp0x/sfinae11.C: Adjust. - -2011-06-08 Jakub Jelinek - - PR testsuite/49323 - * g++.dg/debug/dwarf2/integer-typedef.C: Add -fno-merge-debug-strings - to dg-options, match also DW_AT_linkage_name. - -2011-06-08 Rainer Orth - - PR middle-end/21953 - * gcc.dg/compat/struct-layout-1_generate.c (dg-options): Use - -fno-common on alpha*-dec-osf*. - * g++.dg/compat/struct-layout-1_generate.c (dg-options): Likewise. - -2011-06-08 Alexander Monakov - - PR rtl-optimization/49303 - * gcc.target/ia64/pr49303.c: New test. - -2011-06-08 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_lock_1.f90: New. - * gfortran.dg/coarray_lock_2.f90: New. - -2011-06-07 Jason Merrill - - * lib/prune.exp: Look for "required" rather than "instantiated". - * g++.dg/abi/mangle11.C: Likewise. - * g++.dg/abi/mangle12.C: Likewise. - * g++.dg/abi/mangle17.C: Likewise. - * g++.dg/abi/mangle20-2.C: Likewise. - * g++.dg/abi/pragma-pack1.C: Likewise. - * g++.dg/cpp0x/decltype26.C: Likewise. - * g++.dg/cpp0x/decltype28.C: Likewise. - * g++.dg/cpp0x/decltype29.C: Likewise. - * g++.dg/cpp0x/enum11.C: Likewise. - * g++.dg/cpp0x/forw_enum8.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-errloc2.C: Likewise. - * g++.dg/cpp0x/pr47416.C: Likewise. - * g++.dg/ext/case-range2.C: Likewise. - * g++.dg/ext/case-range3.C: Likewise. - * g++.dg/gomp/for-19.C: Likewise. - * g++.dg/gomp/pr37533.C: Likewise. - * g++.dg/gomp/pr38639.C: Likewise. - * g++.dg/gomp/tpl-parallel-2.C: Likewise. - * g++.dg/inherit/base3.C: Likewise. - * g++.dg/inherit/using6.C: Likewise. - * g++.dg/init/placement4.C: Likewise. - * g++.dg/init/reference3.C: Likewise. - * g++.dg/lookup/scoped6.C: Likewise. - * g++.dg/lookup/using7.C: Likewise. - * g++.dg/other/abstract1.C: Likewise. - * g++.dg/other/error10.C: Likewise. - * g++.dg/other/error5.C: Likewise. - * g++.dg/other/field1.C: Likewise. - * g++.dg/other/offsetof5.C: Likewise. - * g++.dg/parse/bitfield2.C: Likewise. - * g++.dg/parse/constant4.C: Likewise. - * g++.dg/parse/crash20.C: Likewise. - * g++.dg/parse/invalid-op1.C: Likewise. - * g++.dg/parse/non-dependent2.C: Likewise. - * g++.dg/parse/template18.C: Likewise. - * g++.dg/tc1/dr152.C: Likewise. - * g++.dg/tc1/dr166.C: Likewise. - * g++.dg/tc1/dr176.C: Likewise. - * g++.dg/tc1/dr213.C: Likewise. - * g++.dg/template/access11.C: Likewise. - * g++.dg/template/access2.C: Likewise. - * g++.dg/template/access3.C: Likewise. - * g++.dg/template/access7.C: Likewise. - * g++.dg/template/arg7.C: Likewise. - * g++.dg/template/cond2.C: Likewise. - * g++.dg/template/crash13.C: Likewise. - * g++.dg/template/crash40.C: Likewise. - * g++.dg/template/crash7.C: Likewise. - * g++.dg/template/crash84.C: Likewise. - * g++.dg/template/ctor5.C: Likewise. - * g++.dg/template/defarg13.C: Likewise. - * g++.dg/template/defarg14.C: Likewise. - * g++.dg/template/dtor7.C: Likewise. - * g++.dg/template/eh2.C: Likewise. - * g++.dg/template/error2.C: Likewise. - * g++.dg/template/error43.C: Likewise. - * g++.dg/template/friend32.C: Likewise. - * g++.dg/template/injected1.C: Likewise. - * g++.dg/template/instantiate1.C: Likewise. - * g++.dg/template/instantiate3.C: Likewise. - * g++.dg/template/instantiate5.C: Likewise. - * g++.dg/template/instantiate7.C: Likewise. - * g++.dg/template/local6.C: Likewise. - * g++.dg/template/lookup2.C: Likewise. - * g++.dg/template/member5.C: Likewise. - * g++.dg/template/memfriend15.C: Likewise. - * g++.dg/template/memfriend16.C: Likewise. - * g++.dg/template/memfriend17.C: Likewise. - * g++.dg/template/memfriend7.C: Likewise. - * g++.dg/template/meminit1.C: Likewise. - * g++.dg/template/nested3.C: Likewise. - * g++.dg/template/non-type-template-argument-1.C: Likewise. - * g++.dg/template/nontype12.C: Likewise. - * g++.dg/template/nontype13.C: Likewise. - * g++.dg/template/nontype6.C: Likewise. - * g++.dg/template/pr23510.C: Likewise. - * g++.dg/template/pr35240.C: Likewise. - * g++.dg/template/ptrmem15.C: Likewise. - * g++.dg/template/ptrmem6.C: Likewise. - * g++.dg/template/qualified-id1.C: Likewise. - * g++.dg/template/qualttp20.C: Likewise. - * g++.dg/template/qualttp3.C: Likewise. - * g++.dg/template/qualttp4.C: Likewise. - * g++.dg/template/qualttp5.C: Likewise. - * g++.dg/template/qualttp6.C: Likewise. - * g++.dg/template/qualttp7.C: Likewise. - * g++.dg/template/qualttp8.C: Likewise. - * g++.dg/template/recurse.C: Likewise. - * g++.dg/template/recurse2.C: Likewise. - * g++.dg/template/ref5.C: Likewise. - * g++.dg/template/scope2.C: Likewise. - * g++.dg/template/sfinae10.C: Likewise. - * g++.dg/template/sfinae3.C: Likewise. - * g++.dg/template/sizeof3.C: Likewise. - * g++.dg/template/static9.C: Likewise. - * g++.dg/template/template-id-2.C: Likewise. - * g++.dg/template/typedef13.C: Likewise. - * g++.dg/template/typename4.C: Likewise. - * g++.dg/template/using14.C: Likewise. - * g++.dg/template/using2.C: Likewise. - * g++.dg/template/warn1.C: Likewise. - * g++.dg/warn/Wparentheses-13.C: Likewise. - * g++.dg/warn/Wparentheses-15.C: Likewise. - * g++.dg/warn/Wparentheses-16.C: Likewise. - * g++.dg/warn/Wparentheses-17.C: Likewise. - * g++.dg/warn/Wparentheses-18.C: Likewise. - * g++.dg/warn/Wparentheses-19.C: Likewise. - * g++.dg/warn/Wparentheses-20.C: Likewise. - * g++.dg/warn/Wparentheses-23.C: Likewise. - * g++.dg/warn/Wstrict-aliasing-3.C: Likewise. - * g++.dg/warn/noeffect2.C: Likewise. - * g++.dg/warn/noeffect4.C: Likewise. - * g++.dg/warn/pr8570.C: Likewise. - * g++.old-deja/g++.brendan/init2.C: Likewise. - * g++.old-deja/g++.eh/spec6.C: Likewise. - * g++.old-deja/g++.pt/crash10.C: Likewise. - * g++.old-deja/g++.pt/crash36.C: Likewise. - * g++.old-deja/g++.pt/derived3.C: Likewise. - * g++.old-deja/g++.pt/error2.C: Likewise. - * g++.old-deja/g++.pt/explicit70.C: Likewise. - * g++.old-deja/g++.pt/infinite1.C: Likewise. - * g++.old-deja/g++.pt/memtemp89.C: Likewise. - * g++.old-deja/g++.pt/overload7.C: Likewise. - * g++.old-deja/g++.pt/vaarg3.C: Likewise. - -2011-06-07 Nicola Pero - Iain Sandoe - - * objc-obj-c++-shared/runtime.h (protocol_getMethodDescription): - Added code to deal with the case when [Protocol - -descriptionForInstanceMethod:] or [Protocol - -descriptionForClassMethod:] returns NULL. - -2011-06-07 Nicola Pero - Iain Sandoe - - * objc-obj-c++-shared/TestsuiteObject.h ([-free]): Return 'id'. - * objc-obj-c++-shared/TestsuiteObject.m ([-free]): Return 'id'. - Added cast. - -2011-06-07 Xinliang David Li - - * gcc.dg/inline_2.c: New test. - * gcc.dg/unroll_2.c: New test. - * gcc.dg/inline_3.c: New test. - * gcc.dg/unroll_3.c: New test. - * gcc.dg/inline_4.c: New test. - * gcc.dg/unroll_4.c: New test. - * gcc.dg/inline_1.c: New test. - * gcc.dg/unroll_1.c: New test. - -2011-06-07 Rainer Orth - - PR tree-optimization/48497 - * lib/gcc-defs.exp (dg-additional-options): New proc. - * gfortran.dg/graphite/vect-pr40979.f90: Use dg-additional-options - -msse2 on 32-bit x86. - -2011-06-06 Jason Merrill - - * g++.dg/cpp0x/enum19.C: New. - -2011-06-07 Sergey Grechanik - - * gcc.target/arm/neon-reload-class.c: New test. - -2011-06-07 Dodji Seketeli - - PR debug/49130 - * g++.dg/debug/dwarf2/integer-typedef.C: New test. - -2011-06-07 Andrew Stubbs - - * gcc.target/arm/smlatb-1.c: New file. - * gcc.target/arm/smlatt-1.c: New file. - * gcc.target/arm/smlaltb-1.c: New file. - * gcc.target/arm/smlaltt-1.c: New file. - -2011-06-07 Andrew Stubbs - - * gcc.target/arm/mla-2.c: New test. - -2011-06-07 Jakub Jelinek - - PR gcov-profile/49299 - * gcc.dg/tree-prof/pr49299-1.c: New test. - * gcc.dg/tree-prof/pr49299-2.c: New test. - -2011-06-07 Ira Rosen - - * lib/target-supports.exp - (check_effective_target_vect_widen_mult_qi_to_hi): - Add NEON as supporting target. - (check_effective_target_vect_widen_mult_hi_to_si): Likewise. - (check_effective_target_vect_widen_mult_qi_to_hi_pattern): New. - (check_effective_target_vect_widen_mult_hi_to_si_pattern): New. - * gcc.dg/vect/vect-widen-mult-u8.c: Expect to be vectorized - using widening multiplication on targets that support it. - * gcc.dg/vect/vect-widen-mult-u16.c: Likewise. - * gcc.dg/vect/vect-widen-mult-const-s16.c: New test. - * gcc.dg/vect/vect-widen-mult-const-u16.c: New test. - -2011-06-06 Nicola Pero - - Updated all testcases in the ObjC/ObjC++ testsuites to use the - Modern Objective-C runtime API. - * objc/execute/next_mapping.h: Removed. - * objc-obj-c++-shared/next-mapping.h: Removed. - * objc-obj-c++-shared/Object1.h: Removed. - * objc-obj-c++-shared/Object1.m: Removed. - * objc-obj-c++-shared/Object1.mm: Removed. - * objc-obj-c++-shared/Object1-implementation.h: Removed. - * objc-obj-c++-shared/Protocol1.h: Removed. - * objc-obj-c++-shared/objc-test-suite-types.h: Removed definition - of ProtoBool, IVAR_T and METHOD. - * objc-obj-c++-shared/runtime.h: New. - * objc-obj-c++-shared/TestsuiteObject.h: New. - * objc-obj-c++-shared/TestsuiteObject.m: New. - - * objc/compile/trivial.m: Use TestsuiteObject instead of Object. - * objc/execute/IMP.m: Include ../../objc-obj-c++-shared/runtime.h. - Use the Modern Objective-C runtime API. ([TestClass -next:]): Made - it a class method. - * objc/execute/_cmd.m: Include - ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C - runtime API. ([TestClass +initialize]): Include this method also - with the GNU runtime. - * objc/execute/accessing_ivars.m: Use TestsuiteObject instead of - Object. ([-setValue:]): Return void. - * objc/execute/bf-common.h: Do not include objc/objc-encoding.h - with the GNU runtime. Include - ../../objc-obj-c++-shared/runtime.h. Do not define objc_get_class - for the NeXT runtime. Use the existing print_ivars() and - compare_structures() implementations for the old NeXT runtime. - Added new implementations for the Modern GNU and NeXT runtimes. - Enable the testcase (and hence all the bf-* ones) for __OBJC2__ as - well. (main): Use objc_getClass(). Use return instead of exit. - * objc/execute/bycopy-1.m: Include objc/objc.h instead of - ../../objc-obj-c++-shared/Protocol1.h. (main): Use return instead - of exit(). - * objc/execute/bycopy-2.m: Include objc/objc.h instead of - ../../objc-obj-c++-shared/Protocol1.h. Use TestsuiteObject - instead of Object. (main): Use return instead of exit(). - * objc/execute/bycopy-3.m: Updated includes. Use TestsuiteObject - instead of Object. Removed prototype for exit(). (main): Use - return instead of exit(). Use the Modern Objective-C runtime API. - * objc/execute/cascading-1.m: Use TestsuiteObject instead of - Object. - * objc/execute/class-tests-1.h: Include - ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C - runtime API. (test_class_with_superclass): Do not call [Object - class]. There is no need to with the current libobjc. - * objc/execute/class-tests-2.h: Include - ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C - runtime API. - * objc/execute/class-1.m: Do not include and - ../../objc-obj-c++-shared/next-mapping.h. - * objc/execute/class-2.m: Likewise. - * objc/execute/class-3.m: Likewise. - * objc/execute/class-4.m: Do not include and - ../../objc-obj-c++-shared/next-mapping.h. ([RootClass - +initialize]): Include this method also with the GNU - runtime. (main): Use the Modern Objective-C runtime API. - * objc/execute/class-5.m: Likewise. - * objc/execute/class-6.m: Likewise. - * objc/execute/class-7.m: Likewise. - * objc/execute/class-8.m: Likewise. - * objc/execute/class-9.m: Likewise. - * objc/execute/class-10.m: Likewise. - * objc/execute/class-11.m: Likewise. - * objc/execute/class-12.m: Likewise. - * objc/execute/class-13.m: Likewise. - * objc/execute/class-14.m: Likewise. - * objc/execute/class_self-1.m ([TestClass +initialize]): Include - this method also with the GNU runtime. - * objc/execute/class_self-2.m: ([TestClass +initialize], [ClassA - +initialize]): Include this method also with the GNU runtime. - * objc/execute/compatibility_alias.m: Use TestsuiteObject instead - of Object. - * objc/execute/encode-1.m: Likewise. - * objc/execute/enumeration-1.m: Likewise. - * objc/execute/enumeration-2.m: Likewise. - * objc/execute/exceptions/catchall-1.m: Likewise. - * objc/execute/exceptions/finally-1.m: Likewise. - * objc/execute/exceptions/foward-1.m: Likewise. - * objc/execute/exceptions/local-variables-1.m: Likewise. - * objc/execute/exceptions/throw-nil.m: Likewise. - * objc/execute/exceptions/trivial.m: Likewise. - * objc/execute/exceptions/handler-1.m: Use TestsuiteObject instead - of Object. Include objc/runtime.h instead of objc/objc-api.h. - * objc/execute/exceptions/matcher-1.m: Likewise. - * objc/execute/formal_protocol-1.m: Use TestsuiteObject instead of - Object. - * objc/execute/formal_protocol-2.m: Likewise. - * objc/execute/formal_protocol-3.m: Likewise. - * objc/execute/formal_protocol-4.m: Likewise. - * objc/execute/formal_protocol-5.m: Include - ../../objc-obj-c++-shared/runtime.h. (main): Always use - protocol_getName(). - * objc/execute/formal_protocol-6.m: Likewise. - * objc/execute/formal_protocol-7.m: Use TestsuiteObject instead of - Object. Include instead of - ../../objc-obj-c++-shared/Protocol1.h. - * objc/execute/function-message-1.m: Use TestsuiteObject intead of - Object. - * objc/execute/informal_protocol.m: Likewise. - * objc/execute/load-3.m: Likewise. - * objc/execute/many_args_method.m ([TestClass +initialize]): - Include this method with the GNU runtime as well. - * objc/execute/nested-3.m ([Test +initialize]): Likewise. - * objc/execute/nested-func-1.m: Use TestsuiteObject - instead of Object. - * objc/execute/nil_method-1.m: Likewise. - * objc/execute/no_clash.m: Likewise. - * objc/execute/np-1.m: Do not include - ../../objc-obj-c++-shared/Protocol1.h. - (main): Use return instead of exit(). - * objc/execute/np-2.m: Do not include - ../../objc-obj-c++-shared/Protocol1.h. - ([MyObject +initialize]): Include this method also with the GNU - runtime. (main): Use return instead of exit(). - * objc/execute/object_is_class.m: Include - ../../objc-obj-c++-shared/runtime.h. Use TestsuiteObject instead - of Object. (main): Use the Modern Objective-C runtime API. - * objc/execute/object_is_meta_class.m: Likewise. - * objc/execute/private.m: Use TestsuiteObject instead of Object. - * objc/execute/protocol-isEqual-1.m: Include objc/Protocol.h - instead of ../objc-obj-c++-shared/Protocol1.h. Include - ../../objc-obj-c++-shared/runtime.h. (main): Use the Modern - Objective-C runtime API. - * objc/execute/protocol-isEqual-2.m: Likewise. - * objc/execute/protocol-isEqual-3.m: Likewise. - * objc/execute/protocol-isEqual-4.m: Likewise. - * objc/execute/redefining_self.m ([TestClass +initialize]): - Include this method with the GNU runtime as well. - * objc/execute/root_methods.m: Include - ../../objc-obj-c++-shared/runtime.h. ([RootClass +initialize]): - Include this method with the GNU runtime as well. - (main): Use the Modern Objective-C runtime API. - * objc/execute/selector-1.m: Include - ../../objc-obj-c++-shared/runtime.h. Use TestsuiteObject instead - of Object. (main): Use the Modern Objective-C runtime API. - * objc/execute/static-1.m ([Test +initialize]): Include this - method with the GNU runtime as well. - * objc/execute/static-2.m: Likewise. - * objc/execute/trivial.m: Use TestsuiteObject instead of Object. - * objc/execute/va_method.m: Do not include objc/objc-api.h. - ([MathClass +initialize]): Include this method with the GNU - runtime as well. - * objc.dg/attributes/categ-attribute-1.m: Use TestsuiteObject - instead of Object. - * obj-c++.dg/attributes/categ-attribute-1.mm: Likewise. - * objc.dg/attributes/categ-attributes-2.m: Likewise. - * obj-c++.dg/attributes/categ-attributes-2.mm: Likewise. - * objc.dg/attributes/method-attribute-1.m: Likewise. - * obj-c++.dg/attributes/method-attribute-1.mm: Likewise. - * objc.dg/attributes/method-attribute-2.m: Likewise. - * obj-c++.dg/attributes/method-attribute-2.mm: Likewise. - * objc.dg/attributes/method-attribute-3.m: Likewise. - * obj-c++.dg/attributes/method-attribute-3.mm: Likewise. - * obj-c++.dg/basic.mm: Use TestsuiteObject instead of Object. - * objc.dg/bitfield-1.m: Use TestsuiteObject instead of Object. - * obj-c++.dg/bitfield-1.mm: Likewise. - * obj-c++.dg/bitfield-2.mm: Likewise - * objc.dg/bitfield-3.m: Likewise. - * obj-c++.dg/bitfield-4.mm: Likewise. - * objc.dg/bitfield-5.m: Likewise - * objc.dg/call-super-1.m: Likewise. - * objc.dg/call-super-2.m: Use TestsuiteObject instead of Object. - Use objc_getClass() instead of objc_get_class(), but for the GNU - runtime redefine objc_getClass as objc_get_class. Include - ../objc-obj-c++-shared/runtime.h. - * objc.dg/call-super-3.m: Use TestsuiteObject instead of Object. - * objc.dg/category-1.m: Use TestsuiteObject instead of Object. - Use the Modern Objective-C runtime API. - * objc.dg/class-protocol-1.m: Include - ../objc-obj-c++-shared/runtime.h instead of objc/objc-api.h. - * obj-c++.dg/class-protocol-1.mm: Likewise. - * objc.dg/comp-types-8.m: Use TestsuiteObject instead of Object. - * objc.dg/comp-types-10.m: Likewise. - * objc.dg/comp-types-11.m: Likewise. - * objc.dg/comp-types-12.m: Likewise. - * obj-c++.dg/comp-types-9.mm: Likewise. - * obj-c++.dg/comp-types-11.mm: Likewise. - * obj-c++.dg/comp-types-12.mm: Likewise. - * obj-c++.dg/comp-types-13.mm: Likewise. - * obj-c++.dg/cxx-ivars-1.mm: Likewise. - * obj-c++.dg/cxx-ivars-2.mm: Likewise. - * obj-c++.dg/cxx-scope-1.mm: Likewise. - * obj-c++.dg/cxx-scope-2.mm: Likewise. - * objc.dg/defs.m: Use TestsuiteObject instead of Object. - * objc.dg/desig-init-1.m: Likewise. - * obj-c++.dg/defs.mm: Likewise. - * objc.dg/exceptions-2.m: Likewise. - * obj-c++.dg/except-1.mm: Likewise. - * obj-c++.dg/exceptions-2.mm: Likewise. - * objc.dg/encode-2.m: Use TestsuiteObject instead of Object. - Use the Modern Objective-C runtime API. - * objc.dg/encode-3.m: Use TestsuiteObject instead of Object. Use - the Modern Objective-C runtime API. Do not include - ../objc-obj-c++-shared/objc-test-suite-types.h. Define ProtoBool. - * objc.dg/encode-4.m: Use TestsuiteObject instead of Object. Use - the Modern Objective-C runtime API except when using an older NeXT - runtime. - * objc.dg/encode-5.m: Use TestsuiteObject instead of Object. Use - the Modern Objective-C runtime API. - * objc.dg/encode-7.m: Include objc/runtime.h instead of - objc/encoding.h. - * objc.dg/encode-7-next.m: Use TestsuiteObject instead of Object. - * objc.dg/encode-7-next-64bit.m: Updated include. - * objc.dg/encode-8.m: Include objc/runtime.h instead of - objc/encoding.h. - * obj-c++.dg/encode-4.mm: Use TestsuiteObject instead of Object. Use - the Modern Objective-C runtime API. - * obj-c++.dg/encode-5.mm: Use TestsuiteObject instead of Object. - Use the Modern Objective-C runtime API. Include objc/Protocol.h - instead of ../objc-obj-c++-shared/Protocol1.h. - * obj-c++.dg/encode-6.mm: Use TestsuiteObject instead of Object. Use - the Modern Objective-C runtime API except when using an older NeXT - runtime. - * obj-c++.dg/encode-7.mm: Use TestsuiteObject instead of Object. Use - the Modern Objective-C runtime API. - * objc.dg/fix-and-continue-1.m: Use TestsuiteObject instead of - Object. - * obj-c++.dg/fix-and-continue-2.mm: Likewise. - * objc.dg/fix-and-continue-2.m: Likewise. - * objc.dg/foreach-1.m: Likewise. - * objc.dg/foreach-2.m: Likewise. - * objc.dg/foreach-3.m: Likewise. - * objc.dg/foreach-4.m: Likewise. - * objc.dg/foreach-5.m: Likewise. - * objc.dg/foreach-6.m: Likewise. - * objc.dg/foreach-7.m: Likewise. - * objc.dg/func-ptr-1.m: Use TestsuiteObject instead of - Object. - * objc.dg/func-ptr-2.m: Likewise. - * objc.dg/fsf-package-0.m: Use TestsuiteObject instead of Object. - Do not include objc/objc-api.h. - * obj-c++.dg/fsf-package-0.mm: Likewise. - * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c - (switchfiles): Include objc/runtime.h instead of objc/encoding.h. - * objc.dg/gnu-runtime-1.m: Updated to use TestsuiteObject instead - of Object. - * obj-c++.dg/gnu-runtime-1.mm: Likewise. - * objc.dg/gnu-runtime-3.m: Likewise. - * obj-c++.dg/gnu-runtime-3.mm: Likewise. - * objc.dg/headers.m: Include objc/runtime.h instead of - objc/encoding.h for the GNU runtime. Include objc/objc-api.h only - for the NeXT runtime. - * objc.dg/isa-field-1.m: Use TestsuiteObject instead of Object. - * obj-c++.dg/isa-field-1.mm: Likewise. - * obj-c++.dg/ivar-list-semi.mm: Likewise. - * objc.dg/layout-1.m: Likewise. - * objc.dg/layout-2.m: Likewise. - * objc.dg/local-decl-2.m: Likewise. - * objc.dg/lookup-1.m: Use TestsuiteObject instead of - Object. ([Container +elementForView:]): Use - class_conformsToProtocol(). - * obj-c++.dg/lookup-2.mm: Likewise. - * obj-c++.dg/layout-1.mm: Use TestsuiteObject instead of Object. - * obj-c++.dg/local-decl-1.mm: Likewise. - * objc.dg/method-3.m: Likewise. - * objc.dg/method-4.m: Likewise. - * objc.dg/method-6.m: Include objc/Protocol.h instead of - ../objc-obj-c++-shared/Protocol1.h. - * objc.dg/method-7.m: Use TestsuiteObject instead of Object. - * objc.dg/method-9.m: Likewise. - * objc.dg/method-10.m: Likewise. - * objc.dg/method-13.m ([Root +initialize]): Include this method - also for the GNU runtime. (main): Use objc_getClass() also for - the GNU runtime. - * objc.dg/method-15.m: Use TestsuiteObject instead of Object. - * objc.dg/method-17.m: Likewise. - * objc.dg/method-19.m: Likewise. - * objc.dg/method-20b.m: Likewise. - * obj-c++.dg/method-2.mm: Likewise. - * obj-c++.dg/method-6.mm: Likewise. - * obj-c++.dg/method-10.mm: Likewise. - * obj-c++.dg/method-11.mm: Likewise. - * obj-c++.dg/method-12.mm: Include objc/Protocol.h instead of - ../objc-obj-c++-shared/Protocol1.h. - * obj-c++.dg/method-13.mm: Use TestsuiteObject instead of Object. - * obj-c++.dg/method-15.mm: Likewise. - * obj-c++.dg/method-17.mm: Likewise. - * obj-c++.dg/method-19.mm: Updated includes. ([Root - +initialize]): Include this method also for the GNU - runtime. (main): Use objc_getClass() also for the GNU runtime. - * obj-c++.dg/method-21.mm: Use TestsuiteObject instead of Object. - * obj-c++.dg/method-22.mm: Likewise. - * obj-c++.dg/method-23.mm: Likewise. - * obj-c++.dg/no-extra-load.mm: Likewise. - * objc.dg/objc-fast-4.m: Likewise. - * objc.dg/objc-gc-4.m: Likewise. - * obj-c++.dg/objc-gc-3.mm: Likewise. - * objc.dg/pr18255.m: Include objc/runtime.h. (main): Use - protocol_getMethodDescription() instead of [Protocol - -descriptionForInstanceMethod]. - * objc.dg/pr23214.m ([Object(TS_CAT) -class]): Renamed to test. - Made it available with all runtimes. (main): Call -test instead - of -class. - * objc.dg/pr45878.m ([Object -isEqual:]): Renamed to testIsEqual, - and put into a category. - * objc.dg/proto-lossage-2.m: Use TestsuiteObject instead of - Object. Include objc/objc.h. - * obj-c++.dg/proto-lossage-2.mm: Likewise. - * objc.dg/proto-lossage-3.m: Updated includes. (MyClass): - New. (main): Use protocol_getMethodDescription() instead - of [Protocol -descriptionForInstanceMethod] and [Protocol - -descriptionForClassMethod]. - * obj-c++.dg/proto-lossage-3.mm: Likewise. - * objc.dg/proto-qual-1.m: Updated includes. Use the Modern - Objective-C runtime API. - * obj-c++.dg/proto-qual-1.mm: Likewise. - * objc.dg/property/property-1.m: Use TestsuiteObject instead of - Object. - * obj-c++.dg/property/property-1.mm: Likewise. - * obj-c++.dg/qual-types-1.mm: Likewise. - * objc.dg/selector-2.m: Include objc/objc.h instead of - ../objc-obj-c++-shared/Object1.h. - * obj-c++.dg/selector-2.mm: Likewise. - * obj-c++.dg/selector-5.mm: Likewise. - * obj-c++.dg/selector-6.mm: Likewise. - * objc.dg/set-not-used-1.m: Use TestsuiteObject instead of - Object. Do not include objc/objc-api.h. - * obj-c++.dg/set-not-used-1.mm: Likewise. - * objc.dg/sizeof-1.m: Use TestsuiteObject instead of Object. - * objc.dg/stret-1.m: Likewise. - * objc.dg/stret-2.m: Likewise. - * obj-c++.dg/super-class-2.mm: Likewise. - * objc.dg/super-class-3.m: Likewise. - * objc.dg/super-class-4.m: Likewise. - * objc.dg/sync-2.m: Likewise. - * obj-c++.dg/sync-2.mm: Likewise. - * objc.dg/sync-1.m: Include objc/objc.h instead of - ../objc-obj-c++-shared/Object1.h. - * objc.dg/special/unclaimed-category-1.h (TestClass): Always use - 'Class' as the type of 'isa'. - * objc.dg/special/unclaimed-category-1.m: Use the Modern - Objective-C runtime API. ([TestClass +initialize]): Include this - method with the GNU runtime as well. - * objc.dg/strings/strings-1.m: Updated includes. - * obj-c++.dg/strings/strings-1.mm: Likewise. - * obj-c++.dg/strings/const-str-12.mm: Updated to be identical to - objc.dg/strings/const-str-12b.m. - * obj-c++.dg/template-1.mm: Use TestsuiteObject intead of Object. - * obj-c++.dg/template-3.mm: Likewise. - * obj-c++.dg/template-4.mm: Likewise. - * objc.dg/threedotthree-abi-1.m: Updated includes. Use Modern - Objective-C runtime API. - * obj-c++.dg/threedotthree-abi-1.mm: Likewise. - * objc.dg/try-catch-1.m: Use TestsuiteObject instead of Object. - * obj-c++.dg/try-catch-1.mm: Likewise. - * obj-c++.dg/try-catch-2.mm: Likewise. - * objc.dg/try-catch-3.m: Likewise. - * obj-c++.dg/try-catch-3.mm: Likewise. - * objc.dg/try-catch-6.m: Likewise. - * objc.dg/try-catch-7.m: Likewise. - * obj-c++.dg/try-catch-7.mm: Likewise. - * obj-c++.dg/try-catch-8.mm: Likewise. - * obj-c++.dg/try-catch-9.mm: Likewise. - * objc.dg/try-catch-10.m: Likewise. - * obj-c++.dg/try-catch-11.mm: Likewise. - * objc.dg/typedef-alias-1.m: Use TestsuiteObject instead of - Object. Include objc/objc.h. - * obj-c++.dg/typedef-alias-1.mm: Likewise. - * objc.dg/type-size-2.m: Use the Modern Objective-C runtime API. - * objc.dg/torture/forward-1.m: Use TestsuiteObject intead of - Object. Use Modern Objective-C runtime API. Do not use - performv::. - * objc.dg/torture/trivial.m: Use TestsuiteObject intead of Object. - * obj-c++.dg/torture/trivial.mm: Likewise. - * objc.dg/torture/strings/const-str-10.m: Include objc/Object.h - instead of ../objc-obj-c++-shared/Object1.h. Include - ../objc-obj-c++-shared/runtime.h. - * obj-c++.dg/torture/strings/const-str-10.mm: Likewise. - * objc.dg/torture/strings/const-str-11.m: Likewise. - * obj-c++.dg/torture/strings/const-str-11.mm: Likewise. - * objc.dg/torture/strings/const-str-9.m: Likewise. - * obj-c++.dg/torture/strings/const-str-9.mm: Likewise. - * objc.dg/torture/strings/const-str-7.m: Use TestsuiteObject - instead of Object. Only add _FooClassReference if - __NEXT_RUNTIME__. - * obj-c++.dg/torture/strings/const-str-7.mm: Likewise. - * objc.dg/torture/strings/const-str-8.m: Likewise. - * obj-c++.dg/torture/strings/const-str-8.mm: Likewise. - * obj-c++.dg/torture/strings/string1.mm: Updated includes and - additional sources. - * objc.dg/torture/tls/thr-init-3.m: Use TestsuiteObject instead of - Object. - * obj-c++.dg/torture/tls/thr-init-3.mm: Likewise. - * objc.dg/va-meth-1.m: Use TestsuiteObject instead of Object. - * obj-c++.dg/va-meth-1.mm: Likewise. - * objc.dg/zero-link-1.m: Include objc/Object.h instead of - ../objc-obj-c++-shared/Object1.h. - * objc.dg/zero-link-3.m: Likewise. - -2011-06-06 Nicola Pero - - * obj-c++.dg/try-catch-2.mm: Fixed unterminated comment. - -2011-06-06 Nicola Pero - - PR obj-c++/48275 - * obj-c++.dg/property/cxx-property-1.mm: New. - * obj-c++.dg/property/cxx-property-2.mm: New. - -2011-06-06 Jason Merrill - - * g++.dg/cpp0x/regress/ptrmem1.C: New. - -2011-06-06 Richard Sandiford - - PR rtl-optimization/49145 - From Ryan Mansfield - * gcc.c-torture/compile/pr49145.c: New test. - -2011-06-06 Jakub Jelinek - - PR testsuite/49288 - * g++.dg/debug/dwarf2/cdtor-1.C: Add -fno-merge-debug-strings - to dg-options, match also DW_AT_linkage_name. - - PR debug/49294 - * gcc.dg/debug/pr49294.c: New test. - - PR c++/49264 - * g++.dg/opt/pr49264.C: New test. - -2011-06-06 Mikael Pettersson - - PR tree-optimization/49243 - * gcc.dg/pr49243.c: New. - -2011-06-06 Eric Botcazou - - * gnat.dg/specs/cond_expr1.ads: New test. - -2011-06-06 Eric Botcazou - - * gnat.dg/deferred_const4.ad[sb]: New test. - * gnat.dg/deferred_const4_pkg.ads: New helper. - -2011-06-06 Eric Botcazou - - * gnat.dg/test_tamdt.adb: Rename to... - * gnat.dg/taft_type1.adb: ...this. - * gnat.dg/tamdt.ad[sb]: Rename to... - * gnat.dg/taft_type1_pkg1.ad[sb]: ...this. - * gnat.dg/tamdt_aux.ads: Rename to... - * gnat.dg/taft_type1_pkg2.ads: ...this. - * gnat.dg/taft_type2.ad[sb]: New test. - * gnat.dg/taft_type2_pkg.ads: New helper. - * gnat.dg/taft_type3.adb: New test. - * gnat.dg/taft_type3_pkg.ads: New helper. - -2011-06-05 Tobias Burnus - - PR fortran/49255 - * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer - for F2008. - -2011-06-05 Nicola Pero - - PR testsuite/49287 - * objc.dg/gnu-api-2-class.m: Updated testcase silencing compiler - warning. - * objc.dg/gnu-api-2-objc.m: Likewise. - * obj-c++.dg/gnu-api-2-class.mm: Likewise - * obj-c++.dg/gnu-api-2-objc.mm: Likewise. - -2011-06-05 Nicola Pero - - * objc.dg/gnu-api-2-objc.m: Fixed testcase. Use log2 of the - alignment, not the alignment, when calling class_addIvar(). Add - an 'isa' instance variable to the test root class. - * obj-c++.dg/gnu-api-2-objc.mm: Likewise. - -2011-06-04 Jan Hubicka - - PR tree-optimization/48893 - PR tree-optimization/49091 - PR tree-optimization/49179 - * gfortran.dg/pr49179.f90: New testcase - -2011-06-04 Jan Hubicka - - PR lto/48954 - * g++.dg/torture/pr48954.C: New testcase. - -2011-06-04 Jonathan Wakely - - * g++.dg/warn/delete-non-virtual-dtor.C: New. - -2011-06-04 Jonathan Wakely - - PR c++/33840 - * g++.dg/diagnostic/bitfld2.C: New. - -2011-06-04 Jakub Jelinek - - PR target/49281 - * gcc.c-torture/execute/pr49281.c: New test. - -2011-06-04 Jan Hubicka - - PR tree-optimize/48929 - * gcc.c-torture/compile/pr48929.c: New testcase. - -2011-06-04 Jakub Jelinek - - * gcc.dg/guality/rotatetest.c (f5, f6): Fix up pastos. - -2011-06-03 Jakub Jelinek - - PR c++/49276 - * g++.dg/cpp0x/lambda/lambda-mangle2.C: New test. - -2011-06-03 Nicola Pero - - * objc.dg/headers.m: Do not include sarray.h and hash.h. - -2011-06-03 Richard Henderson - Rainer Orth - - * lib/target-supports.exp (check_sse_os_support_available): Use movaps. - -2011-06-03 Nicola Pero - - * objc.dg/headers.m: Do not include objc-list.h. - -2011-06-03 Nicola Pero - - * objc.dg/type-stream-1.m: Test removed. - * objc.dg/headers.m: Do not include typedstream.h. - -2011-06-02 Nicola Pero - - * objc.dg/torture/forward-1.m (main): Updated testcase. - -2011-06-02 Kaz Kojima - - PR target/49163 - * gcc.c-torture/compile/pr49163.c: New. - -2011-06-02 Asher Langton - - PR fortran/49268 - * gfortran.dg/PR49268.f90: New test. - -2011-06-02 Asher Langton - - PR fortran/37039 - * gfortran.dg/PR37039.f90: New test. - -2011-06-02 Nicola Pero - - PR objc/48539 - * objc.dg/method-5.m: Updated. - * objc.dg/method-19.m: Updated. - * objc.dg/method-lookup-1.m: New. - * obj-c++.dg/method-6.mm: Updated. - * obj-c++.dg/method-7.mm: Updated. - * obj-c++.dg/method-lookup-1.mm: New. - -2011-06-02 DJ Delorie - - * lib/timeout.exp (timeout): Add board_info support. - -2011-06-02 Uros Bizjak - - * gcc.target/i386/sse2-init-v2di-2: Update scan-assembler-times string. - -2011-06-02 Steven G. Kargl - - PR fortran/49265 - * gfortran.dg/module_procedure_double_colon_1.f90: New test. - * gfortran.dg/module_procedure_double_colon_2.f90: New test. - -2011-06-02 Eric Botcazou - Hans-Peter Nilsson - - PR rtl-optimization/48840 - * gcc.target/sparc/ultrasp13.c: New test. - -2011-06-01 Kaz Kojima - - PR target/49238 - * gcc.c-torture/compile/pr49238.c: New. - -2011-06-01 Sofiane Naci - - * gcc.target/arm/g2.c: Skip test in -mthumb. - Skip test unless cpu is xscale. - * gcc.target/arm/scd42-2.c: Likewise. - * gcc.target/arm/mmx-1.c: Skip test in -mthumb. - -2011-06-01 Jason Merrill - - * g++.dg/cpp0x/decltype28.C: New. - * g++.dg/cpp0x/decltype29.C: New. - -2011-06-01 Richard Sandiford - - PR target/45074 - * gcc.target/mips/pr45074.c: New test. - -2011-06-01 Eric Botcazou - Hans-Peter Nilsson - - PR rtl-optimization/48830 - * gcc.target/sparc/ultrasp12.c: New test. - -2011-06-01 David Li - - * gcc.dg/profile-dir-1.c: Change pass name. - * gcc.dg/profile-dir-2.c: Ditto. - * gcc.dg/tree-ssa/dump-1.c: Ditto. - * gcc.dg/tree-ssa/loop-25.c: Ditto. - * gcc.dg/tree-prof/stringop-1.c: Ditto. - * gcc.dg/tree-prof/update-loopch.c: Ditto. - * gcc.dg/tree-prof/stringop-2.c: Ditto. - * gcc.dg/tree-prof/ic-misattribution-1.c: Ditto. - * gcc.dg/tree-prof/ic-misattribution-1a.c: Ditto. - * gcc.dg/tree-prof/indir-call-prof.c: Ditto. - * gcc.dg/tree-prof/val-prof-1.c: Ditto. - * gcc.dg/tree-prof/val-prof-2.c: Ditto. - * gcc.dg/tree-prof/val-prof-3.c: Ditto. - * gcc.dg/tree-prof/val-prof-4.c: Ditto. - * gcc.dg/tree-prof/val-prof-5.c: Ditto. - * gcc.dg/tree-prof/val-prof-7.c: Ditto. - * gcc.dg/profile-dir-3.c: Ditto. - * g++.dg/tree-prof/indir-call-prof.C: Ditto. - -2011-06-01 Nicola Pero - - * objc.dg/attributes/method-nonnull-1.m: New test. - * obj-c++.dg/attributes/method-nonnull-1.mm: New test. - -2011-05-31 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_atomic_1.f90: New. - * gfortran.dg/coarray/atomic_1.f90: New. - -2011-05-31 Jakub Jelinek - - * gcc.dg/guality/bswaptest.c: New test. - * gcc.dg/guality/clztest.c: New test. - * gcc.dg/guality/ctztest.c: New test. - * gcc.dg/guality/rotatetest.c: New test. - - PR target/48688 - * gcc.target/i386/pr48688.c: New test. - -2010-11-15 Fabien Chêne - - PR c++/48010 - * g++.dg/lookup/name-clash9.C: New. - -2011-05-31 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/dummy_1.f90: New. - -2011-05-31 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/save_1.f90: New. - * gfortran.dg/coarray_4.f90: Update dg-error. - -2011-05-31 Jason Merrill - - * g++.dg/cpp0x/rv-template1.C: New. - -2011-05-31 Jakub Jelinek - - PR rtl-optimization/49235 - * gcc.dg/pr49235.c: New test. - -2011-05-31 Ira Rosen - - PR tree-optimization/49093 - * gcc.dg/vect/pr49093.c: New test. - -2011-05-31 Dodji Seketeli - - PR debug/49047 - * g++.dg/debug/dwarf2/cdtor-1.C: New test. - -2011-05-31 Ira Rosen - - PR testsuite/49239 - * gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: Initialize the - output array. - -2011-05-30 Kaz Kojima - - PR target/49186 - * gcc.c-torture/execute/pr49186.c: New. - -2011-05-30 H.J. Lu - - PR target/49168 - * gcc.target/i386/pr49168-1.c: New. - -2011-05-30 Jakub Jelinek - Eric Botcazou - - * gcc.dg/guality/drap.c: New test. - -2011-05-30 Richard Guenther - - PR tree-optimization/49210 - * gnat.dg/boolean_subtype2.ad[sb]: New testcase. - * gnat.dg/boolean_subtype2_pkg.ads: New helper. - -2011-05-30 Jakub Jelinek - - PR c++/49223 - * g++.dg/gomp/pr49223-1.C: New test. - * g++.dg/gomp/pr49223-2.C: New test. - -2011-05-30 Richard Guenther - - PR tree-optimization/49218 - * gcc.c-torture/execute/pr49218.c: New testcase. - -2011-05-30 Ira Rosen - - PR tree-optimization/49199 - * gcc.dg/vect/no-scevccp-pr49199.c: New test. - * gcc.dg/vect/vect.exp: Run no-scevccp-pr* tests with - -fno-tree-scev-cprop. - -2011-05-29 Janus Weil - - PR fortran/47601 - * gfortran.dg/extends_13.f03: New. - -2011-05-29 Jakub Jelinek - - PR rtl-optimization/49095 - * gcc.target/i386/pr49095.c: New test. - -2011-05-29 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_24.f90: New. - -2011-05-29 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_23.f90: New. - -2011-05-29 Richard Sandiford - - From Ryan Mansfield - * gcc.dg/pr48826.c: New test. - -2011-05-29 Richard Guenther - - PR tree-optimization/49217 - * gcc.dg/torture/pr49217.c: New testcase. - -2011-05-29 Ira Rosen - - PR testsuite/49222 - * gcc.dg/vect/pr49038.c: Use MAP_ANON if MAP_ANONYMOUS is not defined. - -2011-05-29 Eric Botcazou - - * gnat.dg/boolean_subtype.adb: Rename to... - * gnat.dg/boolean_subtype1.adb: ...this. - -2011-05-28 Jason Merrill - - * g++.dg/cpp0x/lambda/lambda-syntax1.C: New. - -2011-05-27 Jason Merrill - - * g++.dg/cpp0x/enum18.C: Adjust. - - * g++.dg/cpp0x/lambda/lambda-template2.C: New. - -2011-05-27 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_22.f90: New. - -2011-05-27 Bill Schmidt - - PR tree-optimization/46728 - * gcc.target/powerpc/pr46728-1.c: New. - * gcc.target/powerpc/pr46728-2.c: New. - * gcc.target/powerpc/pr46728-3.c: New. - * gcc.target/powerpc/pr46728-4.c: New. - * gcc.target/powerpc/pr46728-5.c: New. - * gcc.dg/pr46728-6.c: New. - * gcc.target/powerpc/pr46728-7.c: New. - * gcc.target/powerpc/pr46728-8.c: New. - * gcc.dg/pr46728-9.c: New. - * gcc.target/powerpc/pr46728-10.c: New. - * gcc.target/powerpc/pr46728-11.c: New. - * gcc.dg/pr46728-12.c: New. - * gcc.target/powerpc/pr46728-13.c: New. - * gcc.target/powerpc/pr46728-14.c: New. - * gcc.target/powerpc/pr46728-15.c: New. - * gcc.target/powerpc/pr46728-16.c: New. - -2011-05-27 Jason Merrill - - * g++.dg/abi/mangle47.C: New. - - PR c++/49176 - * g++.dg/template/const5.C: New. - - * g++.dg/cpp0x/enum18.C: New. - - * g++.dg/cpp0x/lambda/lambda-nested4.C: New. - - * g++.dg/cpp0x/error6.C: New. - - * g++.dg/cpp0x/error5.C: New. - -2011-05-27 Jakub Jelinek - - PR c++/49165 - * g++.dg/eh/cond6.C: New test. - -2011-05-27 Tobias Burnus - - PR fortran/48820 - * gfortran.dg/rank_3.f90: New. - * gfortran.dg/rank_4.f90: New. - -2011-05-27 Janis Johnson - - * g++.dg/tree-ssa-pr43411.C: Rename function to be inlined and - replace dump search. - -2011-05-27 Eric Botcazou - - * gnat.dg/bit_packed_array5.ads: Move dg directive to... - * gnat.dg/bit_packed_array5.adb: ...here. - -2011-05-27 Paolo Carlini - - PR c++/42056 - * g++.dg/cpp0x/auto25.C: New. - -2011-05-27 Richard Guenther - - * gcc.c-torture/execute/920711-1.x: Add -fwrapv. - -2011-05-27 Richard Guenther - - * gcc.c-torture/execute/920612-1.x: Add -fwrapv. - -2011-05-27 Richard Guenther - - PR middle-end/49189 - * gnat.dg/bit_packed_array5.ad[sb]: New testcase. - -2011-05-26 Jason Merrill - - * g++.dg/cpp0x/friend1.C: New. - * g++.dg/cpp0x/friend2.C: New. - - * g++.dg/cpp0x/auto7.C: Update. - * g++.dg/template/crash50.C: Adjust. - * g++.dg/template/static9.C: Adjust. - * g++.old-deja/g++.ext/memconst.C: Adjust. - -2011-05-26 Janis Johnson - - * gcc.dg/march.c: Ignore a note for some targets. - -2011-05-26 Janis Johnson - Nathan Froyd - - PR c++/2288 - PR c++/18770 - * g++.old-deja/g++.jason/cond.C: Remove xfails. - * g++.dg/parse/pr18770.C: New test. - * g++.dg/cpp0x/range-for5.C: Add dg-error marker. - -2011-05-26 Thomas Koenig - - PR fortran/48955 - * gfortran.dg/dependency_40.f90 : New test. - -2011-05-26 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/registering_1.f90: New. - -2011-05-26 Jason Merrill - - * g++.dg/cpp0x/variadic111.C: New. - * g++.dg/cpp0x/variadic41.C: Adjust. - -2011-05-26 Richard Guenther - - PR tree-optimization/48702 - * gcc.dg/torture/pr48702.c: New testcase. - -2011-05-26 Rainer Orth - - PR gcov-profile/48845 - * g++.dg/tree-prof/tree-prof.exp: Check for -fprofile-generate - support. - * gcc.dg/matrix/matrix.exp: Likewise. - * gcc.dg/tree-prof/tree-prof.exp: Likewise. - * lib/target-supports-dg.exp (dg-require-profiling): Don't pass - line number to check_profiling_available. - * lib/target-supports.exp (check_profiling_available): Account for - this. - Require TLS runtime support with -fprofile-generate. - * lib/profopt.exp (profopt-execute): Add TLS options for - -fprofile-generate. - * gcc.dg/pr47793.c: Add dg-require-profiling "-fprofile-generate". - -2011-05-26 Jakub Jelinek - - PR c++/49165 - * g++.dg/eh/cond5.C: New test. - - PR tree-optimization/49161 - * gcc.c-torture/execute/pr49161.c: New test. - -2011-05-26 Ramana Radhakrishnan - - * gcc.target/arm/neon-vorn-vbic.c: New test. - -2011-05-26 Ira Rosen - - PR tree-optimization/49038 - * gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: New test. - * gcc.dg/vect/pr49038.c: New test. - -2011-05-26 Fabien Chêne - - * g++.dg/init/pr25811-3.C: New. - * g++.dg/init/pr25811-4.C: New. - -2011-05-25 Jason Merrill - - * g++.dg/cpp0x/enum17.C: New. - * g++.old-deja/g++.jason/rfg10.C: Adjust. - - * g++.dg/cpp0x/auto24.C: New. - - * g++.dg/cpp0x/error4.C: New. - - * g++.dg/cpp0x/rv-restrict.C: New. - - * g++.dg/cpp0x/enum15.C: New. - * g++.dg/cpp0x/constexpr-switch2.C: New. - - * g++.dg/cpp0x/variadic110.C: New. - - * g++.dg/cpp0x/auto9.C: Add typedef test. - - * g++.dg/cpp0x/auto23.C: New. - * g++.dg/cpp0x/auto9.C: Adjust. - - * g++.dg/cpp0x/defaulted29.C: New. - - * g++.dg/cpp0x/initlist51.C: New. - -2011-05-25 Janis Johnson - - * gcc.target/arm/fp16-compile-none-1.c: Update expected error. - * g++.dg/abi/packed1.C: Suppress warning. - * g++.dg/warn/Wunused-parm-3.C: Likewise. - * g++.dg/template/stdarg1.C: Likewise. - * g++.dg/other/packed1.C: Remove arm from xfail list. - -2011-05-25 Jason Merrill - - * g++.dg/cpp0x/enum16.C: New. - * g++.dg/parse/error15.C: Adjust. - - * g++.dg/cpp0x/initlist50.C: New. - - * g++.dg/cpp0x/lambda/lambda-conv5.C: New. - - * g++.dg/cpp0x/variadic109.C: New. - -2011-05-25 H.J. Lu - - * gcc.target/i386/pause-1.c: New. - -2011-05-25 Eric Botcazou - - * gcc.dg/stack-usage-1.c: Adjust comment. - * gcc.dg/stack-usage-2.c: New test. - -2011-05-25 Jakub Jelinek - - PR c++/49136 - * g++.dg/cpp0x/constexpr-bitfield2.C: New test. - * g++.dg/cpp0x/constexpr-bitfield3.C: New test. - -2011-05-24 Vladimir Makarov - - PR rtl-optimization/48757 - * gfortran.dg/pr48757.f: New test case. - -2011-05-24 Jason Merrill - - * g++.dg/cpp0x/access01.C: New. - -2011-05-24 Nicola Pero - - PR libobjc/48177 - * objc.dg/pr48177.m: New testcase. - -2011-05-24 Nicola Pero - - PR objc/48187 - * objc.dg/pr48187.m: New testcase. - * obj-c++.dg/pr48187.mm: New testcase. - * objc.dg/ivar-extra-semicolon.m: New testcase. - -2011-05-24 Jason Merrill - - * g++.dg/template/access21.C: New. - * g++.dg/template/access22.C: New. - -2011-05-24 Michael Matz - - PR rtl-optimization/48633 - * g++.dg/pr48633.C: New test. - -2011-05-24 Uros Bizjak - - PR target/49133 - * g++.dg/other/pr49133.C: New test. - -2011-05-24 Uros Bizjak - Rainer Orth - - * gcc.dg/torture/tls/run-gd.c: New test. - * gcc.dg/torture/tls/run-ie.c: New test. - * gcc.dg/torture/tls/run-ld.c: New test. - * gcc.dg/torture/tls/run-le.c: New test. - * lib/target-supports.exp (check_effective_target_tls_runtime): - Build testcase with TLS options. - -2011-05-24 Rainer Orth - - * gcc.dg/vect/pr48172.c: Remove dg-do run. - -2011-05-24 Tom de Vries - - PR tree-optimization/49121 - * gcc.dg/tree-ssa/ivopt_infer_2.c: Adapt test. - -2011-05-23 Jason Merrill - - * g++.dg/cpp0x/defaulted28.C: New. - - * g++.dg/cpp0x/sfinae25.C: New. - - * g++.dg/cpp0x/rv-cast2.C: New. - - * g++.dg/cpp0x/enum14.C: New. - -2011-05-23 Jakub Jelinek - - PR lto/49123 - * gcc.c-torture/execute/pr49123.c: New test. - - PR debug/49032 - * gcc.dg/debug/pr49032.c: New test. - - PR c/49120 - * gcc.dg/pr49120.c: New test. - -2011-05-23 H.J. Lu - - PR target/47315 - * gcc.target/i386/pr47315.c: New test. - -2011-05-23 Jason Merrill - - * g++.dg/cpp0x/lambda/lambda-eh2.C: New. - - * g++.dg/cpp0x/sfinae24.C: New. - - * g++.dg/cpp0x/error3.C: New. - - * g++.dg/cpp0x/defaulted27.C: New. - - * g++.dg/cpp0x/decltype27.C: New. - -2011-05-23 Richard Guenther - - * gcc.dg/tree-ssa/forwprop-11.c: Adjust and un-XFAIL. - -2011-05-23 Richard Guenther - - PR tree-optimization/40874 - * g++.dg/tree-ssa/pr40874.C: New testcase. - -2011-05-23 Richard Guenther - - PR tree-optimization/49115 - * g++.dg/torture/pr49115.C: New testcase. - -2011-05-23 Richard Guenther - - PR middle-end/15419 - * gcc.dg/memcpy-3.c: New testcase. - -2011-05-23 Jakub Jelinek - - PR middle-end/48973 - * gcc.c-torture/execute/pr48973-1.c: New test. - * gcc.c-torture/execute/pr48973-2.c: New test. - -2011-05-23 Jonathan Wakely - - PR c++/18016 - * g++.dg/warn/pr18016.C: New. - -2011-05-23 Tom de Vries - - PR target/45098 - * gcc.target/arm/ivopts-6.c: New test. - -2011-05-22 Jakub Jelinek - - PR middle-end/49029 - * gcc.c-torture/compile/pr49029.c: New test. - -2011-05-22 Jason Merrill - - * g++.dg/cpp0x/sfinae23.C: New. - * g++.dg/cpp0x/sfinae8.C: Correct. - -2011-05-22 Thomas Koenig - - * gfortran.dg/function_optimize_8.f90: New test case. - -2011-05-22 Ira Rosen - - PR tree-optimization/49087 - * gcc.dg/vect/O3-pr49087.c: New test. - -2011-05-21 Jason Merrill - - * g++.dg/debug/const5.C: New. - -2011-05-20 Jason Merrill - - * g++.dg/cpp0x/constexpr-static7.C: Extend. - - * g++.dg/cpp0x/constexpr-static7.C: New. - - * g++.dg/cpp0x/enum12.C: New. - * g++.dg/cpp0x/enum13.C: New. - -2011-05-21 Janus Weil - - PR fortran/48699 - * gfortran.dg/select_type_23.f03: New. - -2011-05-20 Jason Merrill - - * g++.dg/cpp0x/defaulted26.C: New. - - * g++.dg/cpp0x/noexcept02.C: Fix. - * g++.dg/cpp0x/noexcept03.C: Fix. - * g++.dg/cpp0x/noexcept08.C: Fix. - * g++.dg/cpp0x/noexcept10.C: New. - -2011-05-20 Janus Weil - - PR fortran/48706 - * gfortran.dg/extends_12.f03: New. - -2011-05-20 Jason Merrill - - * g++.dg/template/koenig9.C: New. - * g++.dg/opt/pr47615.C: Fix. - * g++.dg/overload/defarg1.C: Fix. - * g++.dg/tc1/dr213.C: Remove xfail. - * g++.dg/torture/pr34850.C: Fix. - * g++.dg/torture/pr39362.C: Fix. - * g++.old-deja/g++.brendan/crash56.C: Fix. - * g++.old-deja/g++.pt/memtemp47.C: Fix. - -2011-05-20 Richard Guenther - - PR tree-optimization/49079 - * gcc.dg/torture/pr49079.c: New testcase. - -2011-05-20 Jakub Jelinek - - PR tree-optimization/49073 - * gcc.c-torture/execute/pr49073.c: New test. - -2011-06-19 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_21.f90: New. - -2011-05-19 Joseph Myers - - * lib/prune.exe (prune_gcc_output): Expect "error:" in collect2 - output. - -2011-05-19 Richard Guenther - - PR testsuite/49063 - * gcc.dg/builtin-object-size-11.c: Use -std=gnu89. - -2011-05-19 Richard Guenther - - PR middle-end/48985 - * gcc.dg/builtin-object-size-11.c: New testcase. - -2011-05-19 Tom de Vries - - PR target/45098 - * gcc.target/arm/ivopts.c: New test. - * gcc.target/arm/ivopts-2.c: New test. - -2011-05-19 Tom de Vries - - * lib/lib/scanasm.exp (object-size): Fix target selector handling. - -2011-05-19 Rainer Orth - - * gcc.c-torture/execute/960321-1.x: Remove. - -2011-05-18 Janus Weil - - PR fortran/48700 - * gfortran.dg/move_alloc_4.f90: New. - -2011-05-18 H.J. Lu - - PR target/49002 - * gcc.target/i386/pr49002-1.c: New test. - * gcc.target/i386/pr49002-2.c: Likewise. - -2011-05-18 Jakub Jelinek - - PR tree-optimization/49039 - * gcc.c-torture/execute/pr49039.c: New test. - * gcc.dg/tree-ssa/pr49039.c: New test. - * g++.dg/torture/pr49039.C: New test. - -2011-05-18 Jason Merrill - - * g++.dg/cpp0x/constexpr-incomplete3.C: New. - * g++.dg/cpp0x/constexpr-incomplete2.C: Adjust. - * g++.dg/cpp0x/constexpr-memfn1.C: Adjust. - -2011-05-18 Stuart Henderson - - * gcc.target/bfin/mcpu-bf592.c: New test. - -2011-05-18 Ira Rosen - - PR tree-optimization/41881 - * gcc.dg/vect/O3-pr41881.c: New test. - * gcc.dg/vect/O3-slp-reduc-10.c: New test. - -2011-05-18 Jakub Jelinek - - PR tree-optimization/49000 - * gcc.dg/pr49000.c: New test. - -2011-05-17 Eric Botcazou - - * gnat.dg/invalid1.adb: New test. - -2011-05-16 Uros Bizjak - - * gcc.target/i386/avx-vzeroupper-16.c: Update scan-assembler-times - scan pattern. - * gcc.target/i386/avx-vzeroupper-17.c: Ditto. - * gcc.target/i386/avx-vzeroupper-18.c: Ditto. - -2011-05-15 Jonathan Wakely - - PR c++/48994 - * g++.dg/cpp0x/range-for18.C: New. - -2011-05-15 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/image_index_2.f90: New. - -2011-05-13 Ville Voutilainen - - * g++.dg/cpp0x/override1.C: Move from inherit/virtual9.C. - * g++.dg/cpp0x/override2.C: New. - -2011-05-14 Tobias Burnus - - PR fortran/18918 - * gfortran.de/coarray_20.f90: New. - -2011-05-14 Thomas Koenig - - PR fortran/22572 - * function_optimize_7.f90: New test case. - -2011-05-13 Jason Merrill - - * g++.dg/cpp0x/decltype26.C: New. - * g++.dg/cpp0x/enum11.C: New. - -2011-05-13 Tobias Burnus - - PR fortran/48972 - PR fortran/48991 - * gfortran.dg/assign_8.f90: Update dg-error. - -2011-05-13 Tobias Burnus - - PR fortran/48972 - * gfortran.dg/io_constraints_8.f90: New. - * gfortran.dg/io_constraints_9.f90: New. - -2011-05-13 Martin Thuresson - - PR gcov-profile/47793 - * gcc.dg/pr47793.c: New. - -2011-05-12 Jakub Jelinek - - PR tree-optimization/48975 - * gcc.dg/pr48975.c: New test. - -2011-05-12 Tobias Burnus - - PR fortran/48972 - * gfortran.dg/iso_c_binding_compiler_3.f90: New. - -2011-05-12 Jason Merrill - - * g++.dg/cpp0x/constexpr-incomplete2.C: New. - -2011-05-12 Geert Bosch - - * gnat.dg/view_conversion1.adb: New test. - -2011-05-12 Richard Guenther - - PR tree-optimization/48172 - * gcc.dg/vect/pr48172.c: New testcase. - -2011-05-12 Jakub Jelinek - - PR debug/48967 - * g++.dg/opt/pr48967.C: New test. - -2011-05-11 Jason Merrill - - * g++.dg/cpp0x/constexpr-friend.C: New. - * g++.dg/cpp0x/constexpr-incomplete1.C: New. - - * g++.dg/cpp0x/sfinae22.C: New. - -2011-05-11 Tobias Burnus - - PR fortran/48889 - * gfortran.dg/generic_24.f90: New. - -2011-05-11 Richard Guenther - - PR tree-optimization/15256 - * gcc.dg/tree-ssa/forwprop-14.c: New testcase. - -2011-05-11 Jakub Jelinek - - PR debug/48159 - * gcc.dg/pr48159-1.c: New test. - * gcc.dg/pr48159-2.c: New test. - -2011-05-11 Richard Guenther - - PR middle-end/48953 - * gcc.dg/torture/pr48953.c: New testcase. - -2011-05-11 Richard Guenther - - PR tree-optimization/18041 - * gcc.dg/tree-ssa/forwprop-13.c: New testcase. - -2011-05-11 Alan Modra - - PR target/47755 - * gcc.target/powerpc/pr47755-2.c: Require vsx_hw. - -2011-05-10 Jason Merrill - - * g++.dg/cpp0x/defaulted25.C: New. - * g++.dg/template/crash7.C: Adjust. - - * g++.dg/cpp0x/variadic108.C: New. - -2011-05-10 Ville Voutilainen - - * g++.dg/inherit/virtual9.C: Extend. - -2011-05-10 Michael Meissner - - PR target/48857 - * gcc.target/powerpc/pr48857.c: New file, make sure V2DI arguments - are passed and returned in vector registers. - -2011-05-10 Richard Guenther - - * gcc.dg/tree-ssa/ssa-fre-2.c: Disable forwprop. - * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. - * gcc.dg/tree-ssa/scev-cast.c: Adjust. Note what transformation - applies. - -2011-05-10 Jakub Jelinek - - PR tree-optimization/48611 - PR tree-optimization/48794 - * gfortran.dg/gomp/pr48611.f90: New test. - * gfortran.dg/gomp/pr48794.f90: New test. - - PR debug/48928 - * gcc.dg/dfp/pr48928.c: New test. - -2011-05-09 Paolo Carlini - - PR c++/48522 - * g++.dg/cpp0x/pr48522.C: New. - -2011-05-09 Paolo Carlini - - PR c++/48735 - * g++.dg/cpp0x/sfinae21.C: New. - -2011-05-09 Paolo Carlini - - * g++.dg/template/sfinae28.C: Rename to... - * g++.dg/cpp0x/sfinae19.C: ... this. - * g++.dg/template/sfinae29.C: Rename to... - * g++.dg/cpp0x/sfinae20.C: ... this. - -2011-05-09 Jeff Law - - * lib/gcc-gdb-test.exp (gdb-test): Reorder matchers to give more - consistent results. - -2011-05-09 Fabien Chêne - - PR c++/20039 - * g++.dg/init/pr20039.C: New. - -2011-05-09 Paolo Carlini - - PR c++/48737 - PR c++/48744 - * g++.dg/template/sfinae28.C: New. - * g++.dg/template/sfinae29.C: Likewise. - -2011-05-09 Jason Merrill - - * g++.dg/template/nontype23.C: New. - -2011-05-07 Fabien Chêne - PR c++/48859 - * g++.dg/init/pr48859.C: New. - -2011-05-09 Jason Merrill - - * gcc.dg/gcc.dg/uninit-D.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-D-O0.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-E.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-E-O0.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-F.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-F-O0.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-G.c: Move to c-c++-common. - * gcc.dg/gcc.dg/uninit-G-O0.c: Move to c-c++-common. - -2011-05-08 Ville Voutilainen - - * g++.dg/inherit/virtual9.C: New. - -2011-05-09 Dodji Seketeli - - PR c++/48574 - * g++.dg/template/dependent-expr8.C: New test case. - -2011-05-07 Zdenek Dvorak - - PR tree-optimization/48837 - * gcc.dg/pr48837.c: New testcase. - -2011-05-06 Jason Merrill - - * g++.dg/cpp0x/constexpr-condition2.C: New. - - * g++.dg/cpp0x/constexpr-missing.C: New. - -2011-05-06 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/this_image_2.f90: New. - -2011-05-06 Tobias Burnus - - PR fortran/48858 - PR fortran/48820 - * gfortran.dg/bind_c_usage_22.f90: New. - * gfortran.dg/bind_c_usage_23.f90: New. - * gfortran.dg/bind_c_usage_24.f90: New. - * gfortran.dg/bind_c_usage_24_c.c: New. - -2011-05-06 Dodji Seketeli - - PR c++/48838 - * g++.dg/template/member9.C: New test case. - -2011-05-05 Eric Botcazou - - * gnat.dg/discr29.ad[sb]: New test. - * gnat.dg/discr30.adb: Likewise. - -2011-05-05 Julian Brown - - * gcc.target/arm/neon-vset_lanes8.c: New test. - -2011-05-05 Jason Merrill - - * g++.dg/init/new32.C: New. - -2011-05-05 Rainer Orth - - * gfortran.dg/fmt_g0_6.f08: Use dg-options "-ffloat-store". - Fix typo. - -2011-05-05 Jakub Jelinek - - PR rtl-optimization/48381 - * gcc.c-torture/compile/pr48381.c: New test. - -2011-05-05 Uros Bizjak - - * gcc.target/i386/opt-1.c: Add --param min-insn-to-prefetch -ratio=0 - to dg-options. - * gcc.target/i386/opt-1.c: Ditto. - -2011-05-04 Jason Merrill - - * g++.dg/conversion/base1.C: New. - -2011-05-04 Jerry DeLisle - - PR libgfortran/48787 - * gfortran.dg/round_3.f08: Add more checks to test case. - -2011-05-04 Hans-Peter Nilsson - - * gfortran.dg/pr47878.f90, gfortran.dg/endfile_3.f90, - gfortran.dg/endfile_4.f90, gfortran.dg/ftell_3.f90, - gfortran.dg/fmt_cache_1.f, gfortran.dg/namelist_66.f90: - Gate test on effective_target fd_truncate. - -2011-05-04 Uros Bizjak - - * gcc.target/i386/recip-vec-divf.c: Decrease array sizes. - * gcc.target/i386/recip-vec-sqrtf.c: Ditto. - * gcc.target/i386/recip-vec-divf-avx.c: Increase array sizes. - * gcc.target/i386/recip-vec-sqrtf-avx.c: Ditto. Update scan times. - * gcc.target/i386/ssefn-1.c: Add -mno-sse2 to dg-options. - * gcc.target/i386/pr38824.c: Ditto. - * gcc.target/i386/vecinit-1.c: Add -mno-sse4 to dg-options. - * gcc.target/i386/vecinit-2.c: Ditto. - * gcc.target/i386/sse-19.c: Add -mno-ssse3 to dg-options. - * gcc.target/i386/parity-1.c: Add -mno-popcnt to dg-options. - * gcc.target/i386/parity-2.c: Ditto. - * gcc.target/i386/incoming-8.c: Add -mno-avx to dg-options. - -2011-05-04 Stuart Henderson - - * gcc.target/bfin/mcpu-bf512.c: Update to latest silicon revision and - remove duplication. - * gcc.target/bfin/mcpu-bf514.c: Likewise. - * gcc.target/bfin/mcpu-bf516.c: Likewise. - * gcc.target/bfin/mcpu-bf518.c: Likewise. - -2011-05-03 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/this_image_1.f90: Remove dg-options. - -2011-05-03 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/this_image_1.f90: New. - -2011-05-03 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray/caf.dg: New. - * gfortran.dg/coarray/image_index_1.f90: New, copied - from ../coarray_16.f90. - -2011-05-03 Paolo Carlini - - PR c++/28501 - * g++.dg/ext/complex9.C: New. - -2011-05-03 Stuart Henderson - - From Mike Frysinger - * gcc.target/bfin/mcpu-bf542.c: Check SILICON_REVISION is 0x0004. - * gcc.target/bfin/mcpu-bf544.c, gcc.target/bfin/mcpu-bf547.c, - gcc.target/bfin/mcpu-bf548.c, gcc.target/bfin/mcpu-bf549.c: Likewise. - -2011-05-03 Stuart Henderson - - * gcc.target/bfin/builtins: Created. - * gcc.target/bfin/hisilh-O0.c: Deleted. - * gcc.target/bfin/hisilh.c: Moved to... - * gcc.target/bfin/builtins/hisilh.c: ...here. - * gcc.target/bfin/builtins/shl_fr1x16-6.c: New test. - * gcc.target/bfin/builtins/shr_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-9.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-4.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-8.c: Ditto. - * gcc.target/bfin/builtins/lshl_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/abs_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/norm32-1.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr1x16-3.c: Ditto. - * gcc.target/bfin/builtins/norm_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/bfin-builtins.exp: Ditto. - * gcc.target/bfin/builtins/norm16-2.c: Ditto. - * gcc.target/bfin/builtins/norm32-5.c: Ditto. - * gcc.target/bfin/builtins/norm_fr1x16-3.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x32x32-2.c: Ditto. - * gcc.target/bfin/builtins/norm16-6.c: Ditto. - * gcc.target/bfin/builtins/norm32-9.c: Ditto. - * gcc.target/bfin/builtins/mult_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/dspsubaddsat_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/min_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/max_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/norm32-10.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-3.c: Ditto. - * gcc.target/bfin/builtins/mulhisihh_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/diff_hl_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-7.c: Ditto. - * gcc.target/bfin/builtins/shr_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/mulhisilh_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/lshl_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/cpmlx_mul_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/negate_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/negate_fr1x16-3.c: Ditto. - * gcc.target/bfin/builtins/abs_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr2x16-4.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/max_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/min_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/max_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-3.c: Ditto. - * gcc.target/bfin/builtins/add_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-6.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-7.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-5.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-9.c: Ditto. - * gcc.target/bfin/builtins/abs_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/lshl_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/abs_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/cpmlx_msu_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/norm32-2.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr1x16-4.c: Ditto. - * gcc.target/bfin/builtins/norm16-3.c: Ditto. - * gcc.target/bfin/builtins/norm32-6.c: Ditto. - * gcc.target/bfin/builtins/norm16-7.c: Ditto. - * gcc.target/bfin/builtins/mult_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/min_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/add_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/norm32-11.c: Ditto. - * gcc.target/bfin/builtins/sub_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-4.c: Ditto. - * gcc.target/bfin/builtins/mulhisihh_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/diff_lh_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-8.c: Ditto. - * gcc.target/bfin/builtins/shr_fr2x16-3.c: Ditto. - * gcc.target/bfin/builtins/mulhisilh_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/lshl_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/cpmlx_mac_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/min_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/dspaddsubsat_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/max_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/min_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-3.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-4.c: Ditto. - * gcc.target/bfin/builtins/sub_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/add_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-7.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-8.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x16-3.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-6.c: Ditto. - * gcc.target/bfin/builtins/circptr.c: Ditto. - * gcc.target/bfin/builtins/negate_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/abs_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/multr_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/sum_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/cpmlx_msu_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/norm32-3.c: Ditto. - * gcc.target/bfin/builtins/norm_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/norm16-4.c: Ditto. - * gcc.target/bfin/builtins/norm32-7.c: Ditto. - * gcc.target/bfin/builtins/norm16-8.c: Ditto. - * gcc.target/bfin/builtins/add_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/add_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-5.c: Ditto. - * gcc.target/bfin/builtins/norm32-12.c: Ditto. - * gcc.target/bfin/builtins/sub_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/diff_lh_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/mulhisihl_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shr_fr2x16-4.c: Ditto. - * gcc.target/bfin/builtins/mulhisill_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/negate_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/multr_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/cpmlx_mac_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x32x32NS-1.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/min_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/dspaddsubsat_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/sub_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-4.c: Ditto. - * gcc.target/bfin/builtins/sub_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-5.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-8.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-3.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x16-4.c: Ditto. - * gcc.target/bfin/builtins/shr_fr1x32-7.c: Ditto. - * gcc.target/bfin/builtins/negate_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/multr_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/sum_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/norm_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/norm16-1.c: Ditto. - * gcc.target/bfin/builtins/norm_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x32x32-1.c: Ditto. - * gcc.target/bfin/builtins/norm32-4.c: Ditto. - * gcc.target/bfin/builtins/norm16-5.c: Ditto. - * gcc.target/bfin/builtins/norm32-8.c: Ditto. - * gcc.target/bfin/builtins/dspsubaddsat_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/max_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/add_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr2x16-6.c: Ditto. - * gcc.target/bfin/builtins/diff_hl_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shr_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/mulhisihl_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/negate_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/cpmlx_mul_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/multr_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/mulhisill_fr2x16-2.c: Ditto. - * gcc.target/bfin/builtins/negate_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/abs_fr2x16-1.c: Ditto. - * gcc.target/bfin/builtins/shrl_fr2x16-3.c: Ditto. - * gcc.target/bfin/builtins/mult_fr1x32x32NS-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-1.c: Ditto. - * gcc.target/bfin/builtins/max_fr1x16-1.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x16-2.c: Ditto. - * gcc.target/bfin/builtins/sub_fr1x32-2.c: Ditto. - * gcc.target/bfin/builtins/shl_fr1x32-5.c: Ditto. - -2011-05-03 Bernd Schmidt - - * gcc.target/arm/cold-lc.c: New test. - -2011-05-03 Jakub Jelinek - - PR target/48774 - * gcc.dg/pr48774.c: New test. - -2011-05-03 Richard Guenther - - * gcc.dg/large-size-array-5.c: New testcase. - -2011-05-03 Richard Sandiford - - * gcc.dg/vect/vect-strided-u16-i3.c: New test. - -2011-05-03 Richard Sandiford - - * lib/target-supports.exp (check_effective_target_vect_strided): - Replace with... - (check_effective_target_vect_strided2) - (check_effective_target_vect_strided3) - (check_effective_target_vect_strided4) - (check_effective_target_vect_strided8): ...these new functions. - - * gcc.dg/vect/O3-pr39675-2.c: Update accordingly. - * gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Likewise. - * gcc.dg/vect/fast-math-slp-27.c: Likewise. - * gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Likewise. - * gcc.dg/vect/pr37539.c: Likewise. - * gcc.dg/vect/slp-11a.c: Likewise. - * gcc.dg/vect/slp-11b.c: Likewise. - * gcc.dg/vect/slp-11c.c: Likewise. - * gcc.dg/vect/slp-12a.c: Likewise. - * gcc.dg/vect/slp-12b.c: Likewise. - * gcc.dg/vect/slp-18.c: Likewise. - * gcc.dg/vect/slp-19a.c: Likewise. - * gcc.dg/vect/slp-19b.c: Likewise. - * gcc.dg/vect/slp-21.c: Likewise. - * gcc.dg/vect/slp-23.c: Likewise. - * gcc.dg/vect/vect-cselim-1.c: Likewise. - - * gcc.dg/vect/fast-math-vect-complex-3.c: Use vect_stridedN - instead of vect_interleave && vect_extract_even_odd. - * gcc.dg/vect/no-scevccp-outer-10a.c: Likewise. - * gcc.dg/vect/no-scevccp-outer-10b.c: Likewise. - * gcc.dg/vect/no-scevccp-outer-20.c: Likewise. - * gcc.dg/vect/vect-1.c: Likewise. - * gcc.dg/vect/vect-10.c: Likewise. - * gcc.dg/vect/vect-98.c: Likewise. - * gcc.dg/vect/vect-107.c: Likewise. - * gcc.dg/vect/vect-strided-a-mult.c: Likewise. - * gcc.dg/vect/vect-strided-a-u16-i2.c: Likewise. - * gcc.dg/vect/vect-strided-a-u16-i4.c: Likewise. - * gcc.dg/vect/vect-strided-a-u16-mult.c: Likewise. - * gcc.dg/vect/vect-strided-a-u32-mult.c: Likewise. - * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise. - * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Likewise. - * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise. - * gcc.dg/vect/vect-strided-float.c: Likewise. - * gcc.dg/vect/vect-strided-mult-char-ls.c: Likewise. - * gcc.dg/vect/vect-strided-mult.c: Likewise. - * gcc.dg/vect/vect-strided-same-dr.c: Likewise. - * gcc.dg/vect/vect-strided-u16-i2.c: Likewise. - * gcc.dg/vect/vect-strided-u16-i4.c: Likewise. - * gcc.dg/vect/vect-strided-u32-i4.c: Likewise. - * gcc.dg/vect/vect-strided-u32-i8.c: Likewise. - * gcc.dg/vect/vect-strided-u32-mult.c: Likewise. - * gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise. - * gcc.dg/vect/vect-strided-u8-i2.c: Likewise. - * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Likewise. - * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Likewise. - * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Likewise. - * gcc.dg/vect/vect-strided-u8-i8.c: Likewise. - * gcc.dg/vect/vect-vfa-03.c: Likewise. - - * gcc.dg/vect/no-scevccp-outer-18.c: Add vect_stridedN to the - target condition. - * gcc.dg/vect/pr30843.c: Likewise. - * gcc.dg/vect/pr33866.c: Likewise. - * gcc.dg/vect/slp-reduc-6.c: Likewise. - * gcc.dg/vect/vect-strided-store-a-u8-i2.c: Likewise. - * gcc.dg/vect/vect-strided-store-u16-i4.c: Likewise. - * gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise. - -2011-05-03 Richard Sandiford - - * gcc.dg/vect/slp-11.c: Split into... - * gcc.dg/vect/slp-11a.c, gcc.dg/vect/slp-11b.c, - gcc.dg/vect/slp-11c.c: ...these tests. - * gcc.dg/vect/slp-12a.c: Split 4-stride loop into... - * gcc.dg/vect/slp-12c.c: ...this new test. - * gcc.dg/vect/slp-19.c: Split into... - * gcc.dg/vect/slp-19a.c, gcc.dg/vect/slp-19b.c, - gcc.dg/vect/slp-19c.c: ...these new tests. - -2011-05-03 Richard Sandiford - - * lib/target-supports.exp - (check_effective_target_vect_extract_even_odd_wide): Delete. - (check_effective_target_vect_strided_wide): Likewise. - * gcc.dg/vect/O3-pr39675-2.c: Use the non-wide versions instead. - * gcc.dg/vect/fast-math-pr35982.c: Likewise. - * gcc.dg/vect/fast-math-vect-complex-3.c: Likewise. - * gcc.dg/vect/pr37539.c: Likewise. - * gcc.dg/vect/slp-11.c: Likewise. - * gcc.dg/vect/slp-12a.c: Likewise. - * gcc.dg/vect/slp-12b.c: Likewise. - * gcc.dg/vect/slp-19.c: Likewise. - * gcc.dg/vect/slp-23.c: Likewise. - * gcc.dg/vect/vect-1.c: Likewise. - * gcc.dg/vect/vect-98.c: Likewise. - * gcc.dg/vect/vect-107.c: Likewise. - * gcc.dg/vect/vect-strided-float.c: Likewise. - -2011-05-02 Jason Merrill - - * g++.dg/init/new31.C: New. - -2011-05-02 Simon Martin - - PR c/35445 - * gcc.dg/pr35445.c: New test. - -2011-05-02 Jason Merrill - - * c-c++-common/vla-1.c: New. - -2011-05-02 Richard Guenther - - PR tree-optimization/48822 - * gcc.dg/torture/pr48822.c: New testcase. - -2011-05-02 Paolo Carlini - - PR c++/47969 - * g++.dg/cpp0x/constexpr-47969.C: New. - -2011-05-02 Ira Rosen - - PR testsuite/48498 - * gcc.dg/vect/slp-3.c: Increase loop bound. Don't expect to fail - on vect_no_align targets. - * gcc.dg/vect/no-vfa-pr29145.c: Don't expect to fail on - vect_no_align targets. - -2011-05-01 Xinliang David Li - - * gcc.dg/tree-ssa/integer-addr.c: New test. - * gcc.dg/tree-ssa/alias_bug.c: New test. - -2011-05-01 Jerry DeLisle - - PR libgfortran/48787 - * gfortran.dg/round_3.f08: Add more checks. - -2011-04-30 Tobias Burnus - - PR fortran/48821 - * gfortran.dg/import9.f90: New, proper test. - * gfortran.dg/interface_37.f90: Remove bogus - test (bogus copy of interface_36.f90). - -2011-04-30 Tobias Burnus - - PR fortran/48821 - * gfortran.dg/interface_37.f90: New. - -2011-04-30 Paul Thomas - - PR fortran/48746 - * gfortran.dg/realloc_on_assign_7.f03: Test bounds. - -2011-04-30 Jakub Jelinek - - PR tree-optimization/48809 - * gcc.c-torture/execute/pr48809.c: New test. - -2011-04-29 Jeff Law - - * gcc.dg/tree-ssa/ssa-dom-thread-4.c: New test. - -2011-04-29 Paolo Carlini - - PR c++/48606 - * g++.dg/init/ctor10.C: New. - -2011-04-29 Le-Chun Wu - - * g++.dg/warn/Wconversion-null-2.C: Do not expect a NULL - warning in implicitly instantiated templates. - -2011-04-29 Le-Chun Wu - - * g++.dg/warn/Wnull-conversion-1.C: New. - * g++.dg/warn/Wnull-conversion-2.C: New. - -2011-04-29 Diego Novillo - - * g++.old-deja/g++.other/null3.C: Expect warning about - converting boolean to a pointer. - -2011-04-29 Paul Thomas - - PR fortran/48462 - * gfortran.dg/realloc_on_assign_7.f03: Modify to test for lhs - being a target. - - PR fortran/48746 - * gfortran.dg/realloc_on_assign_7.f03: Add subroutine pr48746. - -2011-04-29 Tobias Burnus - - PR fortran/48810 - * gfortran.dg/typebound_proc_22.f90: New. - - PR fortran/48800 - * gfortran.dg/interface_36.f90: New. - -2011-04-29 Jerry DeLisle - - PR libgfortran/48488 - PR libgfortran/48602 - PR libgfortran/48615 - PR libgfortran/48684 - PR libgfortran/48787 - * gfortran.dg/fmt_g.f: Adjust test. - * gfortran.dg/fmt_g0_1.f08: Adjust test. - * gfortran.dg/round_3.f08: New test. - * gfortran.dg/namelist_print_1.f: Adjust test. - * gfortran.dg/char4_iunit_1.f03: Adjust test. - * gfortran.dg/f2003_io_5.f03: Adjust test. - * gfortran.dg/coarray_15.f90: Adjust test. - * gfortran.dg/namelist_65.f90: Adjust test. - * gfortran.dg/fmt_cache_1.f: Adjust test. - * gfortran.dg/char4_iunit_2.f03: Adjust test. - * gfortran.dg/real_const_3.f90: Adjust test. - -2011-04-29 Jan Hubicka - - * gcc.dg/tree-ssa/inline-10.c: New testcase. - * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining. - -2011-04-28 Xinliang David Li - - * gcc.dg/tree-prof/prof-robust-1.c: New test. - * g++.dg/prof-robust-1.C: New test. - -2011-04-28 Ira Rosen - - PR tree-optimization/48765 - * gcc.dg/vect/pr48765.c: New. - -2011-04-28 Rainer Orth - - PR tree-optimization/48775 - * gcc.dg/pr48616.c: Also add -fno-common on alpha*-dec-osf*. - -2011-04-28 Paolo Carlini - - PR c++/48798 - * g++.dg/inherit/pr48798.C: New. - * g++.old-deja/g++.other/base1.C: Adjust. - -2011-04-28 Dodji Seketeli - - PR c++/48656 - * g++.dg/template/inherit7.C: New test case. - -2011-04-28 Richard Guenther - - PR tree-optimization/40052 - PR tree-optimization/15347 - * gcc.dg/tree-ssa/vrp57.c: New testcase. - * gcc.dg/pr15347.c: Likewise. - -2011-04-28 Paolo Carlini - - PR c++/48530 - * g++.dg/cpp0x/sfinae18.C: New. - -2011-04-28 Paolo Carlini - - PR c++/48771 - * g++.dg/ext/is_literal_type1.C: New. - -2011-04-28 Tobias Burnus - - PR fortran/48112 - PR fortran/48279 - * gfortran.dg/interface_35.f90: New. - * gfortran.dg/erfc_scaled_1.f90: Don't compile with -pedantic. - * gfortran.dg/func_result_6.f90: Add dg-warning. - * gfortran.dg/bessel_1.f90: Ditto. - * gfortran.dg/hypot_1.f90: Ditto. - * gfortran.dg/proc_ptr_comp_20.f90: Ditto. - * gfortran.dg/proc_ptr_comp_21.f90: Ditto. - * gfortran.dg/interface_assignment_4.f90: Ditto. - -2011-04-27 Jason Merrill - - * g++.dg/ext/complex8.C: New. - - * g++.dg/cpp0x/initlist49.C: New. - * g++.dg/init/new30.C: New. - -2011-04-27 Tobias Burnus - - PR fortran/48788 - * gfortran.dg/whole_file_34.f90: New. - -2011-04-27 Jan Hubicka - - * gcc.dg/tree-ssa/inline-9.c: New testcase. - -2011-04-27 Jason Merrill - - * g++.old-deja/g++.oliva/overload1.C: Adjust. - - * g++.dg/parse/ambig6.C: New. - -2011-04-27 Nick Clifton - - * gcc.dg/20020312-2.c: Add definition for RX. - - * lib/target-supports.exp (add_options_for_ieee): Use -mnofpu - option with RX targets. - - * gcc.target/rx/pack.c: Replace C++ style // comments with C style - /* */ comments. - -2011-04-27 Richard Guenther - - * gcc.dg/tree-ssa/pr23382.c: Remove. - -2011-04-27 Kaz Kojima - - PR target/48767 - * gcc.c-torture/compile/pr48767.c: New test. - -2011-04-27 Richard Guenther - - PR tree-optimization/48772 - * g++.dg/pr48772.C: New testcase. - -2011-04-27 Jakub Jelinek - - PR c/48742 - * gcc.c-torture/compile/pr48742.c: New test. - -2011-04-26 Jason Merrill - - * g++.dg/lookup/koenig13.C: New. - - * g++.dg/cpp0x/initlist48.C: New. - -2011-04-25 Jason Merrill - - * g++.dg/cpp0x/sfinae17.C: New. - -2011-03-23 Michael Meissner - - PR target/48258 - * gcc.target/powerpc/pr48258-1.c: New file. - * gcc.target/powerpc/pr48258-2.c: Ditto. - -2011-04-26 Xinliang David Li - - * gcc.dg/uninit-suppress.c: New test. - * gcc.dg/uninit-suppress.c: New test. - -2011-04-26 Jakub Jelinek - - PR debug/48768 - * gcc.dg/pr48768.c: New test. - - PR tree-optimization/48734 - * gcc.c-torture/compile/pr48734.c: New test. - - PR testsuite/48753 - * gcc.dg/tree-prof/val-prof-2.c: Adjust for 32-bit HWI. - -2011-04-26 Richard Guenther - - PR tree-optimization/48731 - * gcc.dg/torture/pr48731.c: New testcase. - -2011-04-26 Richard Guenther - - PR testsuite/48753 - * gcc.dg/tree-prof/val-prof-2.c: Adjust. - -2011-04-26 Richard Guenther - - PR middle-end/48694 - * gcc.dg/torture/pr48694-1.c: New testcase. - * gcc.dg/torture/pr48694-2.c: Likewise. - -2011-04-25 Paolo Carlini - - * g++.dg/ext/underlying_type1.C: New. - * g++.dg/ext/underlying_type2.C: Likewise. - * g++.dg/ext/underlying_type3.C: Likewise. - * g++.dg/ext/underlying_type4.C: Likewise. - * g++.dg/ext/underlying_type5.C: Likewise. - * g++.dg/ext/underlying_type6.C: Likewise. - * g++.dg/ext/underlying_type7.C: Likewise. - * g++.dg/ext/underlying_type8.C: Likewise. - * g++.dg/ext/underlying_type9.C: Likewise. - * g++.dg/ext/underlying_type10.C: Likewise. - -2011-04-25 Jason Merrill - - * g++.dg/cpp0x/regress/template-const2.C: New. - -2011-04-25 Jeff Law - - * gcc.dg/tree-ssa/vrp56.c: new test. - -2011-04-25 Rainer Orth - - * go.test/go-test.exp (go-set-goarch): Accept mips*-*-*. - -2011-04-24 Jakub Jelinek - - PR preprocessor/48740 - * c-c++-common/raw-string-11.c: New test. - -2011-04-23 John David Anglin - - * gcc.dg/pr48616.c (dg-options): Add -fno-common to options on - hppa*-*-hpux*. - -2011-04-23 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_19.f90: New. - -2011-04-23 Jakub Jelinek - - PR c/48685 - * gcc.dg/pr48685.c: New test. - -2011-04-22 Jan Hubicka - - * gcc.dg/tree-ssa/pr38699.c: Fix testcase. - -2011-04-22 Jakub Jelinek - - PR tree-optimization/48717 - * gcc.c-torture/execute/pr48717.c: New test. - -2011-04-22 Uros Bizjak - - PR target/48723 - * gcc.target/i386/pr48723.c: New test. - -2011-04-22 Jakub Jelinek - - PR c/48716 - * gcc.dg/gomp/pr48716.c: New test. - * g++.dg/gomp/pr48716.C: New test. - -2011-04-22 Alexander Monakov - - PR c/36750 - * gcc.dg/missing-field-init-2.c: Update testcase. - -2011-04-22 Alan Modra - - * gcc.target/powerpc/ppc-pow.c: Allow for tail calls. - -2011-04-21 Thomas Koenig - - PR fortran/48405 - * gfortran.dg/function_optimize_6.f90: New test. - -2011-04-21 Easwaran Raman - - * gcc.dg/stack-layout-2.c: New test. - -2011-04-21 Richard Guenther - - PR lto/48703 - * g++.dg/lto/pr48207-2_0.C: New testcase. - * g++.dg/lto/pr48207-3_0.C: Likewise. - -2011-04-21 Eric Botcazou - - * gnat.dg/volatile5.adb: New test. - * gnat.dg/volatile5_pkg.ads: New helper. - -2011-04-21 Uros Bizjak - - PR target/48708 - * gcc.target/i386/pr48708.c: New test. - -2011-04-21 Richard Sandiford - - * gcc.dg/vect/vect-119.c: New test. - -2011-04-21 Richard Sandiford - - * gcc.dg/vect/vect.exp: Run the main tests twice, one with -flto - and once without. - -2011-04-21 Richard Earnshaw - Richard Sandiford - - PR target/46329 - * gcc.target/arm/pr46329.c: New test. - -2011-04-21 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_18.f90: New. - -2011-04-20 Jason Merrill - - * g++.dg/cpp0x/initlist47.C: New. - - * g++.dg/init/dtor4.C: New. - -2011-04-20 Uros Bizjak - - PR target/48678 - * gcc.target/i386/sse2-pinsrw.c: New test. - * gcc.target/i386/avx-vpinsrw.c: Ditto. - * gcc.target/i386/sse4_1-insvqi.c: Ditto. - * gcc.target/i386/sse2-insvhi.c: Ditto. - * gcc.target/i386/sse4_1-insvsi.c: Ditto. - * gcc.target/i386/sse4_1-insvdi.c: Ditto. - -2011-04-20 Jason Merrill - - * g++.dg/template/const4.C: New. - -2011-04-20 Easwaran Raman - - * gcc.dg/stack-layout-1.c: New test. - -2011-04-20 Daniel Jacobowitz - - * gcc.dg/vect/vect-shift-3.c, gcc.dg/vect/vect-shift-4.c: New. - * lib/target-supports.exp (check_effective_target_vect_shift_char): New - function. - -2011-04-20 Kai Tietz - - * gcc.dg/binop-xor1.c: New test. - * gcc.dg/binop-xor2.c: New test. - * gcc.dg/binop-xor3.c: New test. - * gcc.dg/binop-xor4.c: New test. - * gcc.dg/binop-xor5.c: New test. - -2011-04-20 Richard Guenther - - PR tree-optimization/47892 - * gcc.dg/vect/fast-math-ifcvt-1.c: New testcase. - -2011-04-20 Richard Guenther - - PR middle-end/48695 - * g++.dg/torture/pr48695.C: New testcase. - -2011-04-20 Georg-Johann Lay - - * gcc.dg/pr42629.c: Add dg-require-effective-target int32plus - * gcc.c-torture/execute/cmpsi-2.c: Ditto - * gcc.c-torture/execute/pr45262.c: Ditto - * gcc.dg/torture/pr43165.c: Ditto. - * gcc.dg/torture/pr47228.c: Ditto. - * gcc.dg/tree-ssa/pr45144.c: Ditto. - * gcc.dg/ipa/pr45644.c: Ditto. - * gcc.c-torture/compile/pr43191.c: Ditto. Remove dg-skip-if for - PDP11. - -2011-04-19 Jason Merrill - - * g++.dg/ext/complex7.C: New. - - * g++.dg/ext/attrib41.C: New. - -2011-04-19 Kaz Kojima - - PR testsuite/48676 - * gcc.dg/torture/pr37868.c: Skip on sh*-*-*. - -2011-04-19 Jakub Jelinek - - PR target/48678 - * gcc.target/i386/pr48678.c: New test. - -2011-04-19 Martin Jambor - - * g++.dg/opt/devirt1.C: Bump to -O2, remove XFAIL. - * g++.dg/opt/devirt2.C: New test. - * g++.dg/ipa/devirt-g-1.C: Likewise. - -2011-04-19 Tobias Burnus - - PR fortran/48588 - * gfortran.dg/whole_file_33.f90: New. - -2011-04-19 Martin Jambor - - * g++.dg/ipa/devirt-7.C: New test. - -2011-04-19 Richard Guenther - - PR lto/48207 - * g++.dg/lto/pr48207_0.C: New testcase. - -2011-04-18 Jason Merrill - - * g++.dg/init/void1.C: New. - - * g++.dg/cpp0x/union4.C: New. - -2011-04-18 Jakub Jelinek - - PR middle-end/48661 - * g++.dg/torture/pr48661.C: New test. - - PR c++/48632 - * g++.dg/gomp/pr48632.C: New test. - -2011-04-18 Uros Bizjak - - * gcc.target/i386/sse2-maskmovdqu.c: New test. - * gcc.target/i386/avx-vmaskmovdqu.c: Ditto. - -2011-04-18 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_17.f90: New. - * gfortran.dg/coarray_10.f90: Update dg-error. - -2011-04-18 Rainer Orth - - PR testsuite/48251 - * gcc.dg/guality/guality.exp: Disable on alpha*-dec-osf*. - * gfortran.dg/guality/guality.exp: Likewise. - -2011-04-18 Rainer Orth - - * gfortran.dg/fmt_g0_5.f08: Use dg-add-options ieee. - -2011-04-18 Rainer Orth - - * gcc.dg/vect/pr48377.c: Remove dg-do run. - -2011-04-18 Rainer Orth - - * gcc.dg/ipa/pr48195.c: Add dg-require-effective-target lto. - -2011-04-18 Richard Guenther - - PR middle-end/46364 - * g++.dg/torture/pr46364.C: New testcase. - -2011-04-18 Rainer Orth - - * obj-c++.dg/dwarf-2.mm: Skip on alpha*-dec-osf*. - -2011-04-18 Alexander Monakov - - * gcc.dg/pr48235.c: Add dg-require-effective-target freorder. - -2011-04-18 Ulrich Weigand - Ira Rosen - - PR target/48252 - * gcc.target/arm/pr48252.c: New test. - -2011-04-18 Jakub Jelinek - - PR tree-optimization/48616 - * gcc.dg/pr48616.c: New test. - -2011-04-18 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_16.f90: New. - -2011-04-18 Paul Thomas - - PR fortran/48462 - * gfortran.dg/realloc_on_assign_7.f03: New test. - -2011-04-17 Jerry DeLisle - - PR libgfortran/48602 - * gfortran.dg/fmt_g0_6.f08: New test. - -2011-04-17 Jason Merrill - - * g++.dg/cpp0x/sfinae16.C: New. - -2011-04-17 Richard Sandiford - - * gcc.target/mips/reg-var-1.c: New test. - -2011-04-17 Jan Hubicka - - * gcc.dg/winline-5.c: Update testcase. - -2011-04-17 Eric Botcazou - - * gnat.dg/discr27.ad[sb]: Move dg directive. - * gnat.dg/discr28.ad[sb]: New test. - * gnat.dg/discr28_pkg.ads: New helper. - -2011-04-17 Michael Matz - - PR tree-optimization/48622 - PR lto/48645 - * gcc.dg/lto/pr48622_0.c: New test. - -2011-04-16 Uros Bizjak - - * gcc.target/i386/avx256-unaligned-load-1.c: Update scan patterns. - * gcc.target/i386/avx256-unaligned-load-2.c: Ditto. - * gcc.target/i386/avx256-unaligned-load-3.c: Ditto. - * gcc.target/i386/avx256-unaligned-store-1.c: Ditto. - * gcc.target/i386/avx256-unaligned-store-2.c: Ditto. - * gcc.target/i386/avx256-unaligned-store-3.c: Ditto. - -2011-04-15 Jason Merrill - - * g++.dg/cpp0x/range-for17.C: New. - -2011-04-15 Rodrigo Rivas Costa - - * g++.dg/cpp0x/range-for2.C: Correct for declaration. - * g++.dg/cpp0x/range-for3.C: Likewise. - * g++.dg/cpp0x/range-for9.C: Correct error message. - * g++.dg/cpp0x/range-for11.C: New. - * g++.dg/cpp0x/range-for12.C: New. - * g++.dg/cpp0x/range-for13.C: New. - * g++.dg/cpp0x/range-for14.C: New. - * g++.dg/cpp0x/range-for15.C: New. - * g++.dg/cpp0x/range-for16.C: New. - -2011-04-15 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_15.f90: Change to dg-do run. - -2011-04-15 Nicola Pero - - * objc.dg/naming-4.m: Updated. - * objc.dg/naming-5.m: Updated. - * objc.dg/naming-6.m: New. - * objc.dg/naming-7.m: New. - * obj-c++.dg/naming-1.mm: Updated. - * obj-c++.dg/naming-2.mm: Updated. - * obj-c++.dg/naming-3.mm: New. - * obj-c++.dg/naming-4.mm: New. - -2011-04-15 Jerry DeLisle - - PR libgfortran/48589 - * gfortran.dg/fmt_g0_5.f08: New test. - -2011-04-15 Richard Guenther - - PR testsuite/48286 - * gfortran.dg/cray_pointers_8.f90: Use -ffloat-store. - -2011-04-15 Georg-Johann Lay - - * gcc.target/avr/torture/pr41885.c (dg-options): Change - -finline-limit=0 to -fno-inline - -2011-04-15 Jakub Jelinek - - PR target/48614 - * gcc.target/i386/pr46084.c: Require avx_runtime instead of - just avx. - -2011-04-14 Jakub Jelinek - - PR target/48605 - * gcc.target/i386/sse4_1-insertps-3.c: New test. - * gcc.target/i386/sse4_1-insertps-4.c: New test. - * gcc.target/i386/avx-insertps-3.c: New test. - * gcc.target/i386/avx-insertps-4.c: New test. - -2011-04-14 Georg-Johann Lay - - * gcc.target/avr/torture/pr41885.c (dg-options): Add - -finline-limit=0 - -2011-04-14 Georg-Johann Lay - - PR target/46779 - PR target/45291 - PR target/41894 - * gcc.target/avr/pr46779-1.c: New test case - * gcc.target/avr/pr46779-2.c: New test case - -2011-04-14 Jason Merrill - - * g++.dg/cpp0x/sfinae15.C: New. - - * g++.dg/cpp0x/sfinae14.C: New. - - * g++.dg/ext/vla10.C: New. - -2011-04-14 Richard Guenther - - * gcc.dg/tree-ssa/ssa-dse-14.c: New testcase. - -2011-04-14 Richard Guenther - - * gcc.dg/fold-bitand-4.c: Move ... - * c-c++-common/fold-bitand-4.c: ... here. Adjust slightly. - -2011-04-14 Georg-Johann Lay - - * gcc.target/avr/trivial.c: Fix line endings. Make PROGMEM - variables const. - * gcc.target/avr/torture/trivial.c: Ditto. - -2011-04-13 Jason Merrill - - * g++.dg/template/operator11.C: New. - -2011-04-13 Jakub Jelinek - - PR middle-end/48591 - * gcc.dg/gomp/pr48591.c: New test. - - PR c++/48570 - * g++.dg/cpp0x/constexpr-wstring1.C: New test. - * g++.dg/cpp0x/constexpr-wstring2.C: New test. - -2011-04-13 Dodji Seketeli - - PR c++/48574 - * g++.dg/template/dependent-expr7.C: New test case. - -2011-04-13 Jason Merrill - - * g++.dg/cpp0x/sfinae13.C: New. - -2011-04-13 Uros Bizjak - - * gcc.target/i386/sse2-init-v2di-2.c: Update scan pattern. - -2011-04-12 Janis Johnson - - * gcc.target/arm/pr43698.c: Remove -march option. - -2011-04-12 Janis Johnson - - * gcc.target/arm/sync-1.c: Limit to sync_int_long, do not use - -march option. - -2011-04-12 Paul Thomas - - PR fortran/48360 - PR fortran/48456 - * gfortran.dg/realloc_on_assign_6.f03: New test. - -2011-04-12 Kai Tietz - - * g++.dg/ext/bitfield2.C: Add for i?86/x86_64-*-mingw* - targets the additional -mno-ms-bitfields and - -Wno-packed-bitfield-compat options. - * g++.dg/ext/bitfield3.C: Likewise. - * g++.dg/ext/bitfield4.C: Likewise. - * g++.dg/ext/bitfield5.C: Likewise. - * gcc.dg/bitfld-15.c: Likewise. - * gcc.dg/bitfld-16.c: Likewise. - * gcc.dg/bitfld-17.c: Likewise. - * gcc.dg/bitfld-18.c: Likewise. - -2011-04-12 Richard Sandiford - - * gcc.target/arm/neon-vld3-1.c: New test. - * gcc.target/arm/neon-vst3-1.c: New test. - * gcc.target/arm/neon/v*.c: Regenerate. - -2011-04-12 Jakub Jelinek - - PR rtl-optimization/48549 - * g++.dg/opt/pr48549.C: New test. - -2011-04-12 Richard Guenther - - PR tree-optimization/46076 - * gcc.dg/tree-ssa/pr46076.c: Un-XFAIL. - -2011-04-12 Rainer Orth - - PR testsuite/21164 - * lib/compat.exp (compat-execute): Declare unsupported after - stripping path from src1. - * lib/lto.exp (lto-execute): Likewise. - -2011-04-12 Jakub Jelinek - - PR c/48552 - * gcc.dg/pr48552-1.c: New test. - * gcc.dg/pr48552-2.c: New test. - -2011-04-11 Jason Merrill - - * g++.dg/cpp0x/sfinae12.C: New. - - * g++.dg/cpp0x/enum10.C: New. - - * g++.dg/cpp0x/lambda/lambda-this4.C: New. - - * g++.dg/cpp0x/rv-func.C: New. - -2011-04-11 Rainer Orth - - * gcc.dg/torture/pr47917.c: Define _ISO_C_SOURCE=19990L for - alpha*-dec-osf5*. - -2011-04-11 Martin Jambor - - PR tree-optimization/48195 - * gcc.dg/ipa/pr48195.c: New test. - -2011-04-10 Eric Botcazou - - * gnat.dg/return3.adb: Remove unused switch. - -2011-04-08 Mike Stump - - PR testsuite/48506 - * gcc.dg/tree-ssa/ssa-ccp-17.c: Robustify against ports that - default to fno-common. - -2011-04-08 Georg-Johann Lay - - * gcc.dg/sibcall-3.c: Don't xfail on AVR. - * gcc.dg/sibcall-4.c: Don't xfail on AVR. - -2011-04-08 Thomas Koenig - - PR fortran/48448 - * gfortran.dg/function_optimize_5.f90: New test. - -2011-04-08 Eric Botcazou - - * gnat.dg/aggr17.adb: New test. - * gnat.dg/aggr18.adb: Likewise. - -2011-04-08 Michael Matz - - PR middle-end/48389 - * gcc.target/i386/pr48389.c: New test. - -2011-04-08 Andrey Belevantsev - - PR rtl-optimization/48272 - * g++.dg/opt/pr48272.C: New. - -2011-04-08 Dmitry Melnik - - PR rtl-optimization/48235 - * gcc.dg/pr48235.c: New. - -2011-04-08 Alexander Monakov - - PR rtl-optimization/48302 - * g++.dg/opt/pr48302.C: New. - -2011-04-08 Alexander Monakov - - PR target/48273 - * g++.dg/opt/pr48273.C: New. - -2011-04-08 Alexander Monakov - - PR rtl-optimization/48442 - * gcc.dg/pr48442.c: New. - -2011-04-08 Jakub Jelinek - - PR tree-optimization/48377 - * gcc.dg/vect/pr48377.c: New test. - -2011-04-07 Jason Merrill - - * g++.dg/cpp0x/regress/call1.C: New. - - * g++.dg/cpp0x/variadic107.C: New. - - * g++.dg/cpp0x/sfinae11.C: New. - * g++.dg/cpp0x/noexcept02.C: Fix. - - * g++.dg/cpp0x/sfinae10.C: New. - - * g++.dg/cpp0x/sfinae9.C: New. - - * c-c++-common/Wcast-qual-1.c: Move here from... - * gcc.dg/cast-qual-3.c: ...here, and... - * g++.dg/warn/Wcast-qual2.C: ...here. - - * g++.dg/cpp0x/sfinae8.C: New. - - * g++.dg/cpp0x/sfinae7.C: New. - - * g++.dg/cpp0x/enum9.C: New. - -2011-04-07 Mike Stump - - * gcc.dg/torture/stackalign/non-local-goto-5.c: Fix for targets - with no trampolines. - -2011-04-07 Jakub Jelinek - - PR fortran/48117 - * gfortran.dg/gomp/pr48117.f90: New test. - - PR debug/48343 - * gcc.dg/torture/pr48343.c: New test. - -2011-04-07 Rainer Orth - - * gcc.target/i386/asm-6.c: Remove dg-xfail-if. - -2011-04-07 Maxim Kuvyrkov - - * gcc.dg/lto/20090210_0.c: Require tls_runtime target. - -2011-04-07 Tom de Vries - - PR target/43920 - * lib/scanasm.exp (object-size): New proc. - * gcc.target/arm/pr43920-2.c: New test. - -2011-04-06 Tobias Burnus - - PR fortran/18918 - PR fortran/48477 - * gfortran.dg/coarray_13.f90: Avoid out-of-bounds access. - -2011-04-06 Steve Ellcey - - * gcc.dg/mtune.c: Prune note from output. - -2011-04-06 Jakub Jelinek - - PR debug/48466 - * gcc.dg/guality/pr36977.c: New test. - * gcc.dg/guality/pr48466.c: New test. - -2011-04-06 Ramana Radhakrishnan - - * gcc.target/arm/pr43920-1.c: Fix accidental duplication. - -2011-04-06 Eric Botcazou - - * gnat.dg/return3.adb: New test. - -2011-04-06 Richard Guenther - - PR tree-optimization/47663 - * gcc.dg/tree-ssa/inline-8.c: New testcase. - -2011-04-05 Eric Botcazou - - * gcc.dg/torture/pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options for - Solaris 8 and 9 as well. - -2011-04-05 Tom de Vries - - PR target/43920 - * gcc.target/arm/pr43920-1.c: New test. - -2011-04-04 Yufeng Zhang - - * g++.dg/abi/arm_cxa_vec1.C (__ARM_EABI__): Fix typo. - (cctor): Actually return the value. - (main): Cast return values. - -2010-04-04 Thomas Koenig - - * gfortran.dg/character_comparison_8.f90: New test. - -2010-04-04 Thomas Koenig - - * frontend-passes: (optimize_lexical_comparison): New function. - (optimize_expr): Call it. - (optimize_comparison): Also handle lexical comparison functions. - Return false instad of -2 for unequal comparison. - -2011-04-04 Thomas Koenig - - PR fortran/48412 - * function_optimize_4.f90: New test. - -2011-04-04 Tobias Burnus - - PR fortran/18918 - * gfortran.dg/coarray_10.f90: Add coarray descriptor diagnostic check. - * gfortran.dg/coarray_13.f90: Add checks for run-time cobounds. - * gfortran.dg/coarray_15.f90: New. - -2011-04-04 Rainer Orth - - * gfortran.dg/bessel_6.f90: Use dg-add-options ieee. - * gfortran.dg/bessel_7.f90: Likewise. - -2011-04-03 Tobias Burnus - - * gfortran.dg/bessel_6.f90: Reduce mymax for Tru64. - -2011-04-03 Richard Guenther - Ira Rosen - - * gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: New test. - * gcc.dg/vect/vect.exp: Run if-cvt-stores-vect* tests with - -ftree-loop-if-convert-stores. - -2011-04-02 Eric Botcazou - - * gnat.dg/specs/aggr2.ads: New test. - -2011-04-02 Eric Botcazou - - * gnat.dg/debug2.ad[sb]: New test. - * gnat.dg/debug2_pkg.ads: New helper. - * gnat.dg/debug3.ad[sb]: New test. - -2011-04-01 Uros Bizjak - - * go.test/go-test.exp (go-set-goarch): Recognize alpha*-*-*. - -2011-04-01 Jakub Jelinek - - PR middle-end/48335 - * gcc.c-torture/compile/pr48335-1.c: New test. - * gcc.dg/pr48335-1.c: New test. - * gcc.dg/pr48335-2.c: New test. - * gcc.dg/pr48335-3.c: New test. - * gcc.dg/pr48335-4.c: New test. - * gcc.dg/pr48335-5.c: New test. - * gcc.dg/pr48335-6.c: New test. - * gcc.dg/pr48335-7.c: New test. - * gcc.dg/pr48335-8.c: New test. - * gcc.target/i386/pr48335-1.c: New test. - -2011-04-01 Vincent Lefevre - - PR c/36299 - * gcc.dg/Waddress.c: New test. - -2011-04-01 Thomas Koenig - - PR fortran/48352 - * gfortran.dg/function_optimize_3.f90: New test. - -2011-04-01 Bernd Schmidt - - * gcc.c-torture/compile/20110401-1.c: New test. - - * g++.dg/lto/20091002-1_0.C: Use "dg-require-effective-target fpic". - * g++.dg/lto/20091002-2_0.C: Likewise. - * g++.dg/lto/20090303_0.c: Likewise. - * g++.dg/lto/20091004-1_0.C: Likewise. - * g++.dg/lto/20091002-3_0.C: Likewise. - * g++.dg/lto/20091004-2_0.C: Likewise. - * g++.dg/lto/20081123_0.C: Likewise. - * g++.dg/lto/20090313_0.C: Likewise. - * g++.dg/lto/20081109-1_0.C: Likewise. - * g++.dg/lto/20081219_0.C: Likewise. - * g++.dg/lto/20081204-1_0.C: Likewise. - * g++.dg/lto/20090302_0.C: Likewise. - * g++.dg/lto/20081119-1_0.C: Likewise. - * g++.dg/lto/20081118_0.C: Likewise. - * gcc.dg/lto/20091020-2_0.c: Likewise. - * gcc.dg/lto/20090210_0.c: Likewise. - * gcc.dg/lto/20081204-1_0.c: Likewise. - * gcc.dg/lto/20081224_0.c: Likewise. - * gcc.dg/lto/20090219_0.c: Likewise. - * gcc.dg/lto/20091014-1_0.c: Likewise. - * gcc.dg/lto/20091016-1_0.c: Likewise. - * gcc.dg/lto/20090206-2_0.c: Likewise. - * gcc.dg/lto/20090116_0.c: Likewise. - * gcc.dg/lto/20091013-1_0.c: Likewise. - * gcc.dg/lto/20091015-1_0.c: Likewise. - * gcc.dg/lto/20090126-2_0.c: Likewise. - -2011-03-31 Ian Lance Taylor - - * go.test/go-test.exp (go-set-goarch): Recognize MIPS ABIs. - -2011-03-31 Eric Botcazou - - * gnat.dg/opt16.adb: New test. - -2011-03-31 Jason Merrill - - * g++.dg/cpp0x/defaulted24.C: New. - -2011-03-31 Rainer Orth - - PR target/16292 - * gfortran.dg/g77/cabs.f: Only xfail execution on mips-sgi-irix6* - with -O0. - -2011-03-31 Eric Botcazou - - * g++.dg/other/i386-9.C: New test. - -2011-03-30 Rainer Orth - - * go.test/go-test.exp (go-set-goarch): Use sparc64 for 64-bit SPARC. - -2011-03-30 Jason Merrill - - * g++.dg/cpp0x/regress/error-recovery1.C: New. - - * g++.dg/cpp0x/regress/isnan.C: New. - - * g++.dg/cpp0x/initlist46.C: New. - -2011-03-30 Richard Sandiford - - PR target/47551 - * gcc.target/arm/neon-modes-2.c: New test. - -2011-03-30 Jakub Jelinek - - PR c/48305 - * gcc.c-torture/compile/pr48305.c: New test. - -2011-03-29 Jason Merrill - - * g++.dg/cpp0x/regress/value-dep1.C: New. - -2011-03-29 Steve Ellcey - - * gcc.dg/torture/pr47917.c: Use -std=gnu99 on HP-UX. - -2011-03-29 Ian Lance Taylor - - * go.test/go-test.exp: Handle the test lines used in several new - tests. - (errchk): Add opts parameter. Change all callers. Handle parens - in regexps. - -2011-03-29 Peter Bergner - Dominique d'Humieres - - * gcc.dg/stack-usage-1.c (SIZE): Provide proper values for __ppc64__ - and __APPLE__ && __PPC__ && __ALTIVEC__. - -2011-03-29 Jason Merrill - - * g++.dg/cpp0x/dependent1.C: New. - - * g++.dg/cpp0x/constexpr-48089.C: Adjust. - - * g++.dg/cpp0x/constexpr-memfn1.C: New. - - * g++.dg/cpp0x/constexpr-diag1.C: Adjust error locations. - -2011-03-29 Janus Weil - - PR fortran/48095 - * gfortran.dg/module_md5_1.f90: Modified MD5 sum. - * gfortran.dg/proc_ptr_comp_32.f90: New. - -2011-03-29 Thomas Koenig - - * gfortran.dg/function_optimize_1.f90: Add -Warray-temporaries, - check for corresponding warning. - -2011-03-28 Jason Merrill - - * g++.dg/cpp0x/rv-deduce2.C: New. - -2011-03-29 Jakub Jelinek - - PR debug/48203 - * gcc.dg/pr48203.c: New test. - -2011-03-28 Jeff Law - - * gcc.dg/tree-ssa/ssa-dom-thread-3.c: New test. - -2011-03-28 Peter Bergner - - * gcc.dg/stack-usage-1.c (SIZE): Provide proper values for __PPC64__ - and __PPC__ && __ALTIVEC__. - -2011-03-28 Dominique d'Humieres - - PR testsuite/48238 - * gcc.dg/debug/dwarf2/pr47939-1.c: Generalize scan-assembler regex. - * gcc.dg/debug/dwarf2/pr47939-2.c: Likewise. - * gcc.dg/debug/dwarf2/pr47939-3.c: Likewise. - * gcc.dg/debug/dwarf2/pr47939-4.c: Likewise. - -2011-03-28 Jason Merrill - - * g++.dg/cpp0x/initlist-array2.C: New. - - * g++.dg/cpp0x/initlist-array1.C: New. - - * g++.dg/cpp0x/constexpr-compound.C: New. - - * g++.dg/cpp0x/constexpr-using.C: New. - - * g++.dg/cpp0x/constexpr-noexcept.C: New. - -2011-03-28 H.J. Lu - - PR testsuite/48276 - * gcc.target/i386/pr47502-2.c: Add -fno-pic. - -2011-03-28 Eric Botcazou - - * gcc.dg/slp-1.c: New test. - -2011-03-27 H.J. Lu - - * gcc.target/i386/avx256-unaligned-load-1.c: New. - * gcc.target/i386/avx256-unaligned-load-2.c: Likewise. - * gcc.target/i386/avx256-unaligned-load-3.c: Likewise. - * gcc.target/i386/avx256-unaligned-load-4.c: Likewise. - * gcc.target/i386/avx256-unaligned-load-5.c: Likewise. - * gcc.target/i386/avx256-unaligned-load-6.c: Likewise. - * gcc.target/i386/avx256-unaligned-load-7.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-1.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-2.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-3.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-4.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-5.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-6.c: Likewise. - * gcc.target/i386/avx256-unaligned-store-7.c: Likewise. - -2011-03-27 Thomas Koenig - - PR fortran/47065 - * gfortran.dg/trim_optimize_5.f90: New test. - * gfortran.dg/trim_optimize_6.f90: New test. - -2011-03-27 Richard Sandiford - - PR target/38598 - * gcc.target/mips/madd-7.c: Remove -mlong32. - * gcc.target/mips/msub-7.c: Likewise. - -2011-03-27 Ira Rosen - - * gcc.dg/vect/vect-outer-5.c: Reduce the distance between data - accesses to preserve the meaning of the test for doubleword vectors. - * gcc.dg/vect/no-vfa-pr29145.c: Likewise. - * gcc.dg/vect/slp-3.c: Reduce the loop bound for the same reason. - -2011-03-26 Janus Weil - - PR fortran/48291 - * gfortran.dg/class_42.f03: New. - -2011-03-26 Ira Rosen - - * gcc.dg/vect/vect-cselim-1.c: Fail on targets that don't support - strided accesses. - -2011-03-26 Andrey Belevantsev - - PR rtl-optimization/48144 - * gcc.dg/pr48144.c: New test. - -2011-03-26 Eric Botcazou - - * gnat.dg/discr27.ad[sb]: New test. - -2011-03-26 Eric Botcazou - - * gnat.dg/limited_with2.ad[sb]: New test. - * gnat.dg/limited_with2_pkg1.ads: New helper. - * gnat.dg/limited_with2_pkg2.ads: Likewise. - -2011-03-26 Eric Botcazou - - * gnat.dg/opt15.adb: New test. - * gnat.dg/opt15_pkg.ad[sb]: New helper. - -2011-03-25 Tobias Burnus - - PR fortran/48174 - PR fortran/45304 - * gfortran.dg/ishft_4.f90: Adapt scan-tree-dump-times. - * gfortran.dg/leadz_trailz_3.f90: Ditto - -2011-03-25 Martin Jambor - - * gcc.c-torture/compile/pr44686.c: Do not explicitely specify -O2. - -2011-03-25 Jason Merrill - - * g++.dg/cpp0x/defaulted22.C: New. - * g++.dg/cpp0x/defaulted23.C: New. - * g++.dg/cpp0x/defaulted15.C: Adjust. - -2011-03-25 Jason Merrill - - * g++.dg/cpp0x/move1.C: New. - -2011-03-25 Ira Rosen - - PR target/48287 - * gcc.dg/vect/vect-cselim-1.c: Fail for vect_no_align. - -2011-03-25 Rainer Orth - - * gcc.dg/torture/pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options - for mips-sgi-irix6.5. - Replace snprintf prototype by . - -2011-03-25 Rainer Orth - - PR testsuite/48283 - * gcc.dg/graphite/block-3.c: Add dg-require-effective-target - run_expensive_tests. - * gcc.dg/graphite/block-4.c: Likewise. - * gcc.dg/graphite/block-7.c: Likewise. - * gcc.dg/graphite/block-8.c: Likewise. - -2011-03-25 Richard Guenther - - * g++.dg/tree-ssa/pr41186.C: Scan the appropriate FRE dump. - * g++.dg/tree-ssa/pr8781.C: Likewise. - * gcc.dg/ipa/ipa-pta-13.c: Likewise. - * gcc.dg/ipa/ipa-pta-3.c: Likewise. - * gcc.dg/ipa/ipa-pta-4.c: Likewise. - * gcc.dg/tree-ssa/20041122-1.c: Likewise. - * gcc.dg/tree-ssa/alias-18.c: Likewise. - * gcc.dg/tree-ssa/foldstring-1.c: Likewise. - * gcc.dg/tree-ssa/forwprop-10.c: Likewise. - * gcc.dg/tree-ssa/forwprop-9.c: Likewise. - * gcc.dg/tree-ssa/fre-vce-1.c: Likewise. - * gcc.dg/tree-ssa/loadpre6.c: Likewise. - * gcc.dg/tree-ssa/pr21574.c: Likewise. - * gcc.dg/tree-ssa/ssa-dom-cse-1.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-11.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-16.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-17.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-18.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-19.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-2.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-21.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-22.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-23.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-24.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-25.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-26.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-27.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-6.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-7.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise. - * gcc.dg/tree-ssa/ssa-pre-10.c: Likewise. - * gcc.dg/tree-ssa/ssa-pre-26.c: Likewise. - * gcc.dg/tree-ssa/ssa-pre-7.c: Likewise. - * gcc.dg/tree-ssa/ssa-pre-8.c: Likewise. - * gcc.dg/tree-ssa/ssa-pre-9.c: Likewise. - * gcc.dg/tree-ssa/ssa-sccvn-1.c: Likewise. - * gcc.dg/tree-ssa/ssa-sccvn-2.c: Likewise. - * gcc.dg/tree-ssa/ssa-sccvn-3.c: Likewise. - * gcc.dg/tree-ssa/ssa-sccvn-4.c: Likewise. - * gcc.dg/tree-ssa/struct-aliasing-1.c: Likewise. - * gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise. - * c-c++-common/pr46562-2.c: Likewise. - * gfortran.dg/pr42108.f90: Likewise. - * gcc.dg/torture/pta-structcopy-1.c: Scan ealias dump, force - foo to be inlined even at -O1. - * gcc.dg/tree-ssa/ssa-dce-4.c: Disable FRE. - * gcc.dg/ipa/ipa-pta-14.c: Likewise. - * gcc.dg/tree-ssa/ssa-fre-1.c: Adjust. - * gcc.dg/matrix/matrix.exp: Disable FRE. - -2011-03-24 Jakub Jelinek - - PR debug/48204 - * gcc.dg/dfp/pr48204.c: New test. - -2011-03-24 Steve Ellcey - - PR target/48209 - * gcc.c-torture/execute/pr47917.c: Move this... - * gcc.dg/torture/pr47917.c: to here and add xfails. - -2011-03-24 Eric Botcazou - - * gnat.dg/array16.ad[sb]: New test. - * gnat.dg/array16.ads: New helper. - -2011-03-24 Eric Botcazou - - * gnat.dg/derived_type2.adb: New test. - -2011-03-24 Richard Guenther - - PR tree-optimization/48271 - * g++.dg/torture/pr48271.C: New testcase. - -2011-03-24 Eric Botcazou - - * gnat.dg/array15.ad[sb]: New test. - -2011-03-24 Uros Bizjak - - PR target/48237 - * gcc.target/i386/pr48237.c: New test. - -2011-03-24 Richard Guenther - - PR middle-end/48269 - * gcc.dg/builtin-object-size-10.c: New testcase. - -2011-03-24 Richard Guenther - - PR tree-optimization/46562 - * c-c++-common/pr46562-2.c: New testcase. - * c-c++-common/pr46562.c: Likewise. - -2011-03-24 Ira Rosen - - * gcc.dg/vect/vect-cselim-1.c: New test. - * gcc.dg/vect/vect-cselim-2.c: New test. - -2011-03-23 Chung-Lin Tang - - * gcc.target/arm/pr46934.c: New. - -2011-03-23 Ian Lance Taylor - - * go.test/go-test.exp (errchk): Ignore lines containing ////. - -2011-03-23 Richard Guenther - - * gcc.dg/struct: Remove directory and contents. - -2011-03-23 Rainer Orth - - PR testsuite/48251 - * g++.dg/guality/guality.exp: Disable on alpha*-dec-osf*. - -2011-03-23 Eric Botcazou - - * gnat.dg/discr26.ad[sb]: New test. - * gnat.dg/discr26_pkg.ads: New helper. - -2011-03-23 Richard Sandiford - - PR target/47553 - * gcc.target/arm/neon-vld-1.c: New test. - -2011-03-23 Eric Botcazou - - * gnat.dg/array14.ad[sb]: New test. - * gnat.dg/array14_pkg.ads: New helper. - -2011-03-22 Joseph Myers - - * gcc.c-torture/execute/920501-8.x: Remove. - * gcc.c-torture/execute/930513-1.x: Remove. - * gcc.c-torture/execute/960312-1.x: Remove. - * gcc.c-torture/compile/20000804-1.c, - gcc.c-torture/compile/20001205-1.c, - gcc.c-torture/compile/20001226-1.c, - gcc.c-torture/compile/20010518-2.c, - gcc.c-torture/compile/20020312-1.c, - gcc.c-torture/compile/20020604-1.c, - gcc.c-torture/compile/920501-12.c, - gcc.c-torture/compile/920501-4.c, - gcc.c-torture/compile/920520-1.c, - gcc.c-torture/compile/980506-1.c, - gcc.c-torture/execute/980709-1.x, - gcc.c-torture/execute/990826-0.x: Don't XFAIL or use special - options for m68hc11. - * gcc.dg/cpp/assert4.c: Don't handle ARC. - * gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c: Don't XFAIL for arc or - m68hc11. - -2011-03-22 Nick Clifton - - * lib/target-supports.exp (check_profiling_available): Add MN10300 - to the list of targets that do not support profiling. Restore - alpha sorting to this list. - -2011-03-22 Michael Meissner - - * gcc.dg/torture/vector-1.c: On powerpc add -fabi=altivec to avoid - failure on 32-bit systems. - * gcc.dg/torture/vector-2.c: Ditto. - -2011-03-22 Richard Guenther - - PR tree-optimization/48228 - * gcc.dg/Wstrict-overflow-23.c: New testcase. - -2011-03-21 Michael Meissner - - * gcc.dg/torture/va-arg-25.c: Add -mabi=altivec -maltivec for - powerpc. - - PR target/48226 - * gcc.target/powerpc/pr48226.c: New file. - -2011-03-21 Jack Howarth - - * lib/prune.exp (prune_gcc_output): Prune "could not create - compact unwind for" warnings. - -2011-03-20 Jakub Jelinek - - PR c/42544 - PR c/48197 - * gcc.c-torture/execute/pr42544.c: New test. - * gcc.c-torture/execute/pr48197.c: New test. - -2011-03-21 Michael Meissner - - PR preprocessor/48192 - * gcc.target/powerpc/pr48192.c: New file. - - PR target/48053 - * gcc.target/powerpc/pr48053-3.c: New file, add test case for - split problem of 0 being loaded in a VSX register. - -2011-03-21 Richard Guenther - - PR c/47939 - * gcc.dg/debug/dwarf2/pr47939-1.c: New testcase. - * gcc.dg/debug/dwarf2/pr47939-2.c: Likewise. - * gcc.dg/debug/dwarf2/pr47939-3.c: Likewise. - * gcc.dg/debug/dwarf2/pr47939-4.c: Likewise. - -2011-03-21 Jakub Jelinek - - PR target/48213 - * gcc.dg/pr48213.c: New test. - -2011-03-21 Kai Tietz - - PR target/12171 - * g++.dg/plugin/attribute_plugin.c: Adjust test. - -2011-03-21 Chung-Lin Tang - - * gcc.target/arm/xor-and.c: New. - -2010-03-21 Thomas Koenig - - PR fortran/22572 - * gfortran.dg/function_optimize_1.f90: New test. - * gfortran.dg/function_optimize_2.f90: New test. - -2011-03-20 H.J. Lu - - PR rtl-optimization/47502 - * gcc.target/i386/pr47502-1.c: New. - * gcc.target/i386/pr47502-2.c: Likewise. - -2011-03-20 Jakub Jelinek - - PR rtl-optimization/48156 - * gcc.dg/pr48156.c: New test. - -2011-03-19 Francois-Xavier Coudert - - PR libfortran/47439 - * gfortran.dg/scratch_1.f90: Adjust test. - -2011-03-19 Francois-Xavier Coudert - - PR libfortran/47439 - * gfortran.dg/scratch_1.f90: New test. - -2011-03-18 Joseph Myers - - * gcc.dg/c1x-typedef-1.c: Expect errors for redefinitions of - variably modified typedefs. - * gcc.dg/c1x-typedef-2.c: Remove. - -2011-03-18 Joseph Myers - - * gcc.dg/c1x-anon-struct-1.c: Don't test use of typedefs. - * gcc.dg/c1x-anon-struct-3.c: New test. - * gcc.dg/anon-struct-11.c: Update. - -2011-03-18 Rainer Orth - - * gcc.dg/vect/slp-multitypes-2.c: Replace dg-do run with - dg-xfail-run-if. - Only xfail with gas. - -2011-03-18 Jason Merrill - - * g++.dg/template/fn-ptr1.C: New. - - * g++.dg/overload/volatile1.C: New. - - * g++.dg/opt/pr23372.C: New. - - * g++.dg/ext/attrib32.C: Expect errors on the two-names case. - -2011-03-18 Rainer Orth - - PR middle-end/47405 - * gcc.dg/torture/20090618-1.c: Skip on mips-sgi-irix*. - -2011-03-18 Chung-Lin Tang - - * gcc.target/arm/unsigned-extend-1.c: New. - -2011-03-18 Jakub Jelinek - - PR bootstrap/48161 - * gcc.c-torture/compile/pr48161.c: New test. - -2011-03-17 H.J. Lu - - PR middle-end/47725 - * gcc.dg/torture/pr47725.c: New. - -2011-03-17 Jason Merrill - - * g++.dg/cpp0x/constexpr-overflow2.C: New. - * g++.dg/cpp0x/constexpr-data2.C: Remove FIXME. - -2011-03-17 Eric Botcazou - - * gnat.dg/specs/elab2.ads: New test. - * gnat.dg/specs/elab2_pkg.ads: New helper. - -2011-03-17 Jason Merrill - - * g++.dg/cpp0x/decltype-1212.C: New. - * g++.dg/cpp0x/rv-return.C: Adjust expected type. - -2011-03-17 Jason Merrill - - * g++.dg/parse/memfnquals1.C: New. - -2011-03-17 Richard Guenther - - PR middle-end/48134 - * gcc.dg/pr48134.c: New testcase. - -2011-03-17 Richard Guenther - - PR middle-end/48165 - * g++.dg/torture/pr48165.C: New testcase. - -2011-03-17 Jakub Jelinek - - PR rtl-optimization/48141 - * gcc.dg/pr48141.c: New test. - -2011-03-16 Jason Merrill - - * g++.dg/cpp0x/constexpr-48089.C: New. - - * g++.dg/cpp0x/constexpr-abi1.C: New. - - * g++.dg/cpp0x/constexpr-46336.C: New. - * g++.dg/parse/friend5.C: Adjust expected errors. - - * g++.dg/cpp0x/constexpr-47570.C: New. - -2011-03-16 Dodji Seketeli - - PR debug/47510 - * ++.dg/debug/dwarf2/typedef6.C: New test. - -2011-03-16 Jason Merrill - - * g++.dg/cpp0x/elision2.C: New. - - * g++.dg/cpp0x/constexpr-array3.C: New. - -2011-03-16 Jason Merrill - - * g++.dg/cpp0x/sfinae6.C: New. - * g++.dg/cpp0x/initlist38.C: Adjust expected error. - * g++.dg/cpp0x/pr45908.C: Likewise. - * g++.dg/cpp0x/sfinae6.C: Likewise. - * g++.old-deja/g++.jason/conversion11.C: Likewise. - * g++.old-deja/g++.law/arg11.C: Likewise. - -2011-03-16 Jason Merrill - - * g++.dg/template/incomplete6.C: New. - -2011-03-16 Jeff Law - - * gcc.dg/tree-ssa/vrp55.c: New test. - -2011-03-16 Jason Merrill - - * g++.dg/cpp0x/auto22.C: New. - -2011-03-16 Richard Guenther - - * gcc.dg/guality/vla-1.c (main): Use result of f1 to avoid - optimizing it away if promoted to const. - -2011-03-16 Richard Guenther - - PR tree-optimization/48149 - * gcc.dg/fold-complex-1.c: New testcase. - -2011-03-16 Richard Guenther - - PR testsuite/48147 - * gcc.dg/guality/pr45882.c: Really make sure no inlining - or cloning happens. - -2011-03-16 Richard Guenther - - PR tree-optimization/26134 - * gcc.dg/tree-ssa/complex-6.c: New testcase. - -2011-03-16 Richard Guenther - - PR tree-optimization/48146 - * gcc.dg/torture/pr48146.c: New testcase. - -2011-03-16 Richard Guenther - - * gcc.dg/tree-ssa/pr14814.c: Adjust. - * gcc.dg/tree-ssa/ssa-ccp-19.c: Likewise. - -2011-03-16 Jakub Jelinek - - PR middle-end/48136 - * gcc.c-torture/compile/pr48136.c: New test. - - * g++.dg/debug/dwarf2/icf.C: Adjust for -fenable-icf-debug removal. - - PR debug/45882 - * gcc.dg/guality/pr45882.c: New test. - -2011-03-15 Jason Merrill - - * g++.dg/cpp0x/constexpr-recursion.C: New. - - * g++.dg/cpp0x/implicit11.C: New. - -2011-03-15 Rodrigo Rivas Costa - - * g++.dg/cpp0x/constexpr-attribute.C: New. - -2011-03-15 Manuel López-Ibáñez - - * g++.dg/parse/pr34758.C: New. - -2011-03-15 Xinliang David Li - - PR c/47837 - * gcc.dg/uninit-pred-7_d.c: New test. - * gcc.dg/uninit-pred-8_d.c: New test. - -2011-03-15 Ramana Radhakrishnan - - PR target/46788 - * gcc.target/arm/pr46788.c: New. - -2011-03-15 Richard Guenther - - PR middle-end/47650 - * gfortran.dg/c_f_pointer_tests_3.f90: Adjust. - * gfortran.dg/ishft_4.f90: Likewise. - * gfortran.dg/leadz_trailz_3.f90: Likewise. - -2011-03-15 Richard Guenther - - PR tree-optimization/13954 - * g++.dg/tree-ssa/pr13954.C: New testcase. - -2011-03-15 Richard Guenther - - PR tree-optimization/48037 - * gcc.target/i386/pr48037-1.c: New testcase. - -2011-03-15 Richard Guenther - - PR tree-optimization/41490 - * gcc.dg/tree-ssa/ssa-sink-6.c: New testcase. - * gcc.dg/tree-ssa/ssa-sink-7.c: Likewise. - * gcc.dg/tree-ssa/ssa-sink-8.c: Likewise. - * gcc.dg/tree-ssa/ssa-sink-9.c: Likewise. - * g++.dg/tree-ssa/pr33604.C: Adjust. - -2011-03-14 Jakub Jelinek - - PR middle-end/47917 - * gcc.c-torture/execute/pr47917.c: New test. - * gcc.dg/pr47917.c: New test. - - PR middle-end/38878 - * gcc.dg/tree-ssa/foldaddr-1.c: Remove xfail. - -2011-03-14 Uros Bizjak - - * gcc.target/i386/sse4_1-floor-vec.c: New test. - * gcc.target/i386/sse4_1-ceil-vec.c: Ditto. - * gcc.target/i386/sse4_1-trunc-vec.c: Ditto. - * gcc-target/i386/sse4_1-rint-vec.c: Ditto. - * gcc.target/i386/sse4_1-floorf-vec.c: Ditto. - * gcc.target/i386/sse4_1-ceilf-vec.c: Ditto. - * gcc.target/i386/sse4_1-truncf-vec.c: Ditto. - * gcc.target/i386/sse4_1-rintf-vec.c: Ditto. - * gcc.target/i386/avx-floor-vec.c: Ditto. - * gcc.target/i386/avx-ceil-vec.c: Ditto. - * gcc.target/i386/avx-trunc-vec.c: Ditto. - * gcc.target/i386/avx-rint-vec.c: Ditto. - * gcc.target/i386/avx-floorf-vec.c: Ditto. - * gcc.target/i386/avx-ceilf-vec.c: Ditto. - * gcc.target/i386/avx-truncf-vec.c: Ditto. - * gcc.target/i386/avx-rintf-vec.c: Ditto. - -2011-03-14 Tom Tromey - - * gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file. - * gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file. - * gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file. - -2011-03-14 Tom Tromey - - * gcc.dg/Woverlength-strings-pedantic-c89-ext.c: New file. - * gcc.dg/Woverlength-strings-pedantic-c90-ext.c: New file. - * gcc.dg/Woverlength-strings-pedantic-c99-ext.c: New file. - -2011-03-14 H.J. Lu - - * gcc.target/i386/builtin-copysign.c: Remove __LP64__ check. - -2011-03-14 Richard Sandiford - - PR rtl-optimization/47166 - * gcc.c-torture/execute/postmod-1.c: New test. - -2011-03-14 Richard Guenther - - PR middle-end/48098 - * gcc.dg/torture/pr48098.c: New testcase. - -2011-03-12 Peter Bergner - - PR target/48053 - * gcc.target/powerpc/pr48053-1.c: New test. - * gcc.target/powerpc/pr48053-2.c: Likewise. - -2011-03-12 Thomas Koenig - - PR libfortran/48066 - * gfortran.dg/intrinsic_ifunction_2.f90: Correct PR number. - -2011-03-12 Thomas Koenig - - PR libfortran/48066 - * gfortran.dg/intrinsic_ifunction_2.f90: New test case. - -2011-03-12 Janus Weil - - PR fortran/48059 - * gfortran.dg/class_41.f03: New. - -2011-03-11 Dodji Seketeli - - * g++.dg/conversion/cast3.C: New test. - -2011-03-11 Jason Merrill - - * g++.dg/template/error45.C: New. - - * g++.dg/parse/no-type-defn1.C: New. - - * g++.dg/ext/attrib40.C: New. - - * g++.dg/cpp0x/regress/array1.C: New. - -2011-03-11 Richard Guenther - - PR tree-optimization/48067 - * gcc.dg/pr48067.c: New testcase. - -2011-03-11 Richard Guenther - - PR lto/48073 - * g++.dg/lto/20110311-1_0.C: New testcase. - -2011-03-11 Jakub Jelinek - - PR c++/48035 - * g++.dg/inherit/virtual8.C: New test. - - PR middle-end/48044 - * gcc.dg/torture/pr48044.c: New test. - -2011-03-11 Janus Weil - - PR fortran/47768 - * gfortran.dg/proc_ptr_comp_31.f90: New. - -2011-03-11 Richard Guenther - - PR tree-optimization/47278 - * gcc.dg/torture/pr47278-1.c: New testcase. - * gcc.dg/torture/pr47278-2.c: Likewise. - -2011-03-11 Jakub Jelinek - - PR tree-optimization/48063 - * gcc.dg/torture/pr48063.c: New test. - -2011-03-10 Jason Merrill - - * g++.dg/template/array22.C: New. - - * g++.dg/cpp0x/syntax-err1.C: New. - * g++.dg/parse/error36.C: Adjust expected errors. - * g++.old-deja/g++.pt/ctor2.C: Likewise. - * g++.old-deja/g++.pt/typename3.C: Likewise. - * g++.old-deja/g++.pt/typename4.C: Likewise. - * g++.old-deja/g++.pt/typename6.C: Likewise. - -2011-03-09 Jason Merrill - - * g++.dg/template/nontype22.C: New. - -2011-03-09 Martin Jambor - - PR tree-optimization/47714 - * g++.dg/torture/pr47714.C: New test. - -2011-03-08 Michael Meissner - - PR target/47755 - * gcc.target/powerpc/pr47755-2.c: New file. - -2011-03-08 Jakub Jelinek - - * go.test/go-test.exp: For goroutines.go test if GCCGO_RUN_ALL_TESTS - is not set in the environment, pass 64 as first argument when not - running expensive tests or pass max($[`ulimit -u`/4], 10000) on - native where ulimit -u is supported. - -2011-03-08 Andreas Krebbel - - * gcc.dg/optimize-bswapsi-1.c: Use -march=z900 on s390. - -2011-03-08 Jason Merrill - - * g++.dg/template/nontype21.C: New. - - * g++.dg/template/anon5.C: New. - -2011-03-08 Jakub Jelinek - - PR debug/47881 - * gcc.dg/pr47881.c: New test. - -2011-03-08 Dodji Seketeli - - PR c++/47957 - * g++.dg/lookup/template3.C: New test. - -2011-03-08 Kai Tietz - - * g++.dg/tree-ssa/pr21082.C: Use __INTPTR_TYPE__ instead of - 'long' type. - -2011-03-08 Mikael Pettersson - - PR testsuite/47954 - * gcc.dg/tree-ssa/ssa-ccp-33.c: Use __alignof__ not - sizeof to compute alignment. - -2011-03-08 Jakub Jelinek - - PR tree-optimization/48022 - * gcc.dg/pr48022-1.c: New test. - * gcc.dg/pr48022-2.c: New test. - -2011-03-07 Jason Merrill - - * g++.dg/template/nontype20.C: New. - * g++.dg/init/member1.C: Adjust expected errors. - * g++.dg/parse/constant4.C: Likewise. - * g++.dg/template/qualified-id3.C: Likewise. - * g++.old-deja/g++.pt/crash10.C: Likewise. - - * g++.dg/cpp0x/regress/non-const1.C: New. - -2011-03-07 Jakub Jelinek - - PR debug/47991 - * gcc.dg/pr47991.c: New test. - -2011-03-07 Jason Merrill - - * g++.dg/abi/mangle46.C: New. - -2011-03-07 Pat Haugen - - PR target/47862 - * gcc.target/powerpc/pr47862.c: New. - -2011-03-07 Jack Howarth - - PR target/45413 - * gcc.target/i386/combine-mul.c: Require nonpic. - -2011-03-07 Paul Wögerer - Nathan Froyd - - * gcc.dg/20001117-1.c: Abort on NULL call_sites. - -2011-03-06 Mark Mitchell - - * README.QMTEST: Remove. - -2011-03-06 Paul Thomas - Jerry DeLisle - - PR fortran/47850 - * gfortran.dg/array_constructor_37.f90 : New test. - -2011-03-05 Jason Merrill - - * g++.dg/abi/mangle39.C: ABI v5, not 6. - * g++.dg/abi/mangle45.C: Likewise. - * g++.dg/cpp0x/trailing1.C: Likewise. - -2011-03-05 John David Anglin - - * gcc.dg/torture/pr47975.c: Add -fno-common option on hppa*-*-hpux*. - -2011-03-05 Jakub Jelinek - - PR rtl-optimization/47899 - * gcc.dg/pr47899.c: New test. - - * gcc.dg/torture/pr47968.c: Ignore warnings. - - PR tree-optimization/47967 - * gcc.c-torture/compile/pr47967.c: New test. - -2011-03-04 Nicola Pero - - * objc.dg/property/property-encoding-1.m: Tidied up testcase. - * obj-c++.dg/property/property-encoding-1.mm: Likewise. - -2011-03-04 Nicola Pero - - * objc.dg/gnu-api-2-property.m: Added tests for property_getName() - and property_getAttributes() if __OBJC2__. - * obj-c++.dg/gnu-api-2-property.mm: Likewise. - * objc.dg/property/property-encoding-1.m: New. - * obj-c++.dg/property/property-encoding-1.mm: New. - -2011-03-04 Jason Merrill - - * g++.dg/template/pseudodtor6.C: New. - - * g++.dg/inherit/covariant19.C: New. - -2011-03-04 Richard Guenther - - PR middle-end/47968 - * gcc.dg/torture/pr47968.c: New testcase. - -2011-03-04 Richard Guenther - - PR middle-end/47975 - * gcc.dg/torture/pr47975.c: New testcase. - -2011-03-03 Paolo Carlini - - PR c++/47974 - * g++.dg/template/crash106.C: New. - -2011-03-03 Jakub Jelinek - - PR c/47963 - * gcc.dg/gomp/pr47963.c: New test. - * g++.dg/gomp/pr47963.C: New test. - -2011-03-02 Jason Merrill - - * g++.dg/cpp0x/regress/condition1.C: New. - - * g++.dg/cpp0x/constexpr-ctor9.C: New. - -2011-03-01 Jason Merrill - - * g++.dg/cpp0x/lambda/lambda-98.C: New. - - * g++.dg/cpp0x/constexpr-non-const-arg2.C: New. - -2011-03-02 Richard Sandiford - - PR rtl-optimization/47925 - * gcc.c-torture/execute/pr47925.c: New test. - -2011-03-01 Jason Merrill - - * g++.dg/cpp0x/decltype25.C: New. - - * g++.dg/cpp0x/regress/bitfield-err1.C: New. - -2011-03-01 Richard Guenther - - PR tree-optimization/47890 - * gcc.dg/torture/pr47890.c: New testcase. - -2011-03-01 Richard Guenther - - PR lto/47924 - * gcc.dg/lto/pr47924_0.c: New testcase. - -2011-03-01 Richard Guenther - - PR lto/46911 - * gfortran.dg/lto/pr46911_0.f: New testcase. - -2011-02-28 Jerry DeLisle - - PR libgfortran/47933 - * gfortran.dg/fmt_fw_d.f90: Fix test by adding dg-options to avoid - compile errors from older code form. - -2011-02-28 Jerry DeLisle - - PR libgfortran/47567 - * gfortran.dg/fmt_fw_d.f90: New test. - -2011-02-28 Jason Merrill - - * g++.dg/inherit/covariant18.C: New. - -2011-02-28 Jakub Jelinek - - PR middle-end/47893 - * gcc.dg/pr47893.c: New test. - -2011-02-28 Nicola Pero - - * objc.dg/gnu-api-2-sel.m: Test that sel_getTypedSelector return - NULL in case of a selector with conflicting types. - * obj-c++.dg/gnu-api-2-sel.mm: Same change. - -2011-02-28 Kazu Hirata - - * gcc.target/arm/vfp-ldmdbd.c, gcc.target/arm/vfp-ldmdbs.c, - gcc.target/arm/vfp-ldmiad.c, gcc.target/arm/vfp-ldmias.c, - gcc.target/arm/vfp-stmdbd.c, gcc.target/arm/vfp-stmdbs.c, - gcc.target/arm/vfp-stmiad.c, gcc.target/arm/vfp-stmias.c: New. - -2011-02-28 Jason Merrill - - PR c++/47906 - * g++.dg/cpp0x/trailing1.C: Specify -fabi-version=6. - -2011-02-27 Jerry DeLisle - - PR libgfortran/47778 - * gfortran.dg/namelist_71.f90: New test. - -2011-02-27 Jason Merrill - - PR c++/47906 - * g++.dg/abi/mangle39.C: Specify -fabi-version=6. - * g++.dg/abi/mangle45.C: Specify -fabi-version=6. - -2011-02-27 Paolo Carlini - - PR c++/46466 - * g++.dg/cpp0x/constexpr-ctor8.C: New. - -2011-02-27 Jakub Jelinek - - PR fortran/47886 - * gfortran.dg/gomp/task-1.f90: Removed. - -2011-02-26 Jason Merrill - - * g++.dg/template/this-targ1.C: New. - - * g++.dg/cpp0x/regress/template-const1.C: New. - * g++.dg/cpp0x/regress/template-function1.C: Adjust. - * g++.dg/template/function1.C: Adjust. - * g++.dg/cpp0x/regress/debug-debug7.C: Adjust. - * g++.dg/debug/debug7.C: Adjust. - -2011-02-26 Tobias Burnus - - PR fortran/47886 - * gfortran.dg/gomp/task-1.f90: New. - -2011-02-25 Jie Zhang - - * gcc.target/arm/neon-thumb2-move.c: Add - dg-require-effective-target arm_thumb2_ok. - -2011-02-24 Jason Merrill - - * g++.dg/parse/constant1.C: Specify C++98 mode. - * g++.dg/parse/constant5.C: Likewise. - * g++.dg/parse/error2.C: Likewise. - * g++.dg/parse/semicolon3.C: Likewise. - * g++.dg/template/crash14.C: Likewise. - * g++.dg/template/local4.C: Likewise. - * g++.dg/template/nontype3.C: Likewise. - * g++.dg/parse/crash31.C: Adjust expected errors. - * g++.dg/template/function1.C: Likewise. - * g++.dg/template/ref3.C: Likewise. - * g++.dg/template/static9.C: Likewise. - * g++.old-deja/g++.pt/crash41.C: Instantiate template. - - * g++.dg/cpp0x/constexpr-array-tparm.C: New. - * g++.dg/cpp0x/regress/parse-ambig5.C: Copy from parse/ambig5.C. - * g++.dg/cpp0x/regress/debug-debug7.C: Copy from debug/debug7.C. - * g++.dg/cpp0x/variadic20.C: Adjust expected errors. - * g++.dg/cpp0x/regress/template-function1.C: Likewise. - -2011-02-24 Jakub Jelinek - - PR fortran/47878 - * gfortran.dg/pr47878.f90: New test. - -2011-02-24 Richard Guenther - - PR testsuite/47801 - * gcc.dg/guality/pr41353-1.c (vari): Mark as used. - * gcc.dg/guality/pr41353-2.c (vari): Likewise. - -2011-02-24 Richard Guenther - - PR fortran/47839 - * gfortran.dg/lto/pr47839_0.f90: New testcase. - * gfortran.dg/lto/pr47839_1.f90: Likewise. - -2011-02-23 Jerry DeLisle - - PR libgfortran/47567 - * gfortran.dg/fmt_f0_1.f90: Update test. - -2011-02-23 Jason Merrill - - * g++.dg/abi/mangle39.C: Adjust parm mangling. - * g++.dg/abi/mangle45.C: New. - - * g++.dg/cpp0x/trailing1.C: Mangle decltype. - * g++.dg/template/canon-type-9.C: Match use of decltype - between declaration and definition. - * g++.dg/template/canon-type-12.C: Likewise. - -2011-02-23 Mikael Morin - - PR fortran/40850 - * gfortran.dg/nested_allocatables_1.f90: New. - -2011-02-23 Nathan Froyd - - PR c++/46868 - * g++.dg/pr46868.C: New test. - * g++.dg/parse/parameter-declaration-1.C: Adjust. - * g++.dg/parse/error14.C: Adjust. - -2011-02-23 Richard Guenther - - PR tree-optimization/47838 - * gcc.dg/tree-ssa/foldconst-2.c: Scan tree-ch dump. - -2011-02-23 Uros Bizjak - - * g++.dg/other/pr47218.C: Fix dg-options. Cleanup saved temps. - -2011-02-23 Uros Bizjak - - * gfortran.dg/allocate_deferred_char_scalar_1.f03: Fix dg-do syntax. - * gfortran.dg/count_init_expr.f03: Ditto. - * gfortran.dg/gomp/pr43711.f90: Ditto. - * gcc.dg/struct-parse-2.c: Ditto. - * gcc.dg/parse-error-3.c: Ditto. - * gcc.dg/Wlogical-op-1.c: Ditto. - * gcc.dg/Walways-true-1.c: Ditto. - * gcc.dg/pr24225.c: Ditto. - * gcc.dg/Walways-true-2.c: Ditto. - * gcc.dg/tree-ssa/foldcast-1.c: Ditto. - * gcc.dg/tree-ssa/struct-aliasing-1.c: Ditto. - * gcc.dg/tree-ssa/struct-aliasing-2.c: Ditto. - * g++.dg/overload/defarg4.C: Ditto. - * g++.dg/inherit/covariant16.C: Ditto. - * g++.dg/inherit/virtual7.C: Ditto. - * g++.dg/template/canon-type-9.C: Ditto. - * g++.dg/template/access19.C: Ditto. - * g++.dg/template/call7.C: Ditto. - * g++.dg/template/canon-type-2.C: Ditto. - * g++.dg/template/init7.C: Ditto. - * g++.dg/template/sizeof-template-argument.C: Ditto. - * g++.dg/template/const3.C: Ditto. - * g++.dg/template/sfinae26.C: Ditto. - * g++.dg/template/sfinae26.C: Ditto. - * g++.dg/template/canon-type-11.C: Ditto. - * g++.dg/template/union2.C: Ditto. - * g++.dg/template/canon-type-3.C: Ditto. - * g++.dg/template/canon-type-1.C: Ditto. - * g++.dg/template/canon-type-5.C: Ditto. - * g++.dg/template/canon-type-7.C: Ditto. - * g++.dg/template/canon-type-10.C: Ditto. - * g++.dg/template/spec36.C: Ditto. - * g++.dg/template/typedef38.C: Ditto. - * g++.dg/template/canon-type-4.C: Ditto. - * g++.dg/template/canon-type-6.C: Ditto. - * g++.dg/template/canon-type-13.C: Ditto. - * g++.dg/template/instantiate9.C: Ditto. - * g++.dg/template/ttp22.C: Ditto. - * g++.dg/warn/Wreturn-type-6.C: Ditto. - * g++.dg/warn/Walways-true-1.C: Ditto. - * g++.dg/warn/Wlogical-op-1.C: Ditto. - * g++.dg/warn/Walways-true-2.C: Ditto. - * g++.dg/conversion/op4.C: Ditto. - * g++.dg/opt/pr19650.C: Ditto. - * g++.dg/lookup/friend11.C: Ditto. - * g++.dg/other/default2.C: Ditto. - * g++.dg/other/default3.C: Ditto. - * g++.dg/other/dtor2.C: Ditto. - * g++.dg/other/friend5.C: Ditto. - * g++.dg/other/default5.C: Ditto. - * g++.dg/init/brace6.C: Ditto. - * g++.dg/init/aggr5.C: Ditto. - * g++.dg/init/error2.C: Ditto. - * g++.dg/expr/bound-mem-fun.C: Ditto. - * g++.dg/expr/cond6.C: Ditto. - * g++.dg/expr/stmt-expr-1.C: Ditto. - * g++.dg/cpp0x/constexpr-object2.C: Ditto. - * g++.dg/cpp0x/constexpr-data1.C: Ditto. - * g++.dg/cpp0x/constexpr-function2.C: Ditto. - * g++.dg/cpp0x/bracket1.C: Ditto. - * g++.dg/cpp0x/variadic-mem-fn.C: Ditto. - * g++.dg/cpp0x/pr38646.C: Ditto. - * g++.dg/cpp0x/variadic73.C: Ditto. - * g++.dg/cpp0x/constexpr-function1.C: Ditto. - * g++.dg/cpp0x/bracket4.C: Ditto. - * g++.dg/cpp0x/decltype4.C: Ditto. - * g++.dg/cpp0x/constexpr-data2.C: Ditto. - * g++.dg/cpp0x/constexpr-object1.C: Ditto. - * g++.dg/cpp0x/variadic-crash2.C: Ditto. - * g++.dg/cpp0x/variadic-new2.C: Ditto. - * g++.dg/cpp0x/decltype2.C: Ditto. - * g++.dg/cpp0x/decltype1.C: Ditto. - * g++.dg/cpp0x/bracket2.C: Ditto. - * g++.dg/cpp0x/decltype5.C: Ditto. - * g++.dg/cpp0x/constexpr-function3.C: Ditto. - * g++.dg/cpp0x/variadic70.C: Ditto. - * g++.dg/cpp0x/decltype6.C: Ditto. - * g++.dg/cpp0x/rvo.C: Ditto. - * g++.dg/cpp0x/vt-40092.C: Ditto. - * g++.dg/cpp0x/variadic-new.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-pass.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-mixed.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-nested.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-recursive.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-copy.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-non-const.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-ref-default.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-deduce.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-copy-default.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-nop.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-capture-const-ref.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-ref.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-const.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-mutable.C: Ditto. - * g++.dg/cpp0x/lambda/lambda-in-class.C: Ditto. - * g++.dg/cpp0x/pr39639.C: Ditto. - * g++.dg/cpp0x/decltype3.C: Ditto. - * g++.dg/cpp0x/variadic68.C: Ditto. - * g++.dg/cpp0x/variadic-function.C: Ditto. - * g++.dg/cpp0x/constexpr-ex1.C: Ditto. - * g++.dg/cpp0x/variadic-bind.C: Ditto. - * g++.dg/cpp0x/variadic-tuple.C: Ditto. - * g++.dg/cpp0x/constexpr-ex2.C: Ditto. - * g++.dg/parse/crash35.C: Ditto. - * g++.dg/parse/crash40.C: Ditto. - * g++.dg/parse/defarg12.C: Ditto. - * g++.dg/parse/crash34.C: Ditto. - * g++.dg/parse/constructor3.C: Ditto. - * g++.dg/parse/template23.C: Ditto. - * g++.dg/parse/crash56.C: Ditto. - * g++.dg/parse/dtor13.C: Ditto. - * g++.dg/parse/error33.C: Ditto. - * g++.dg/parse/ctor9.C: Ditto. - * g++.dg/parse/error32.C: Ditto. - * g++.dg/parse/error37.C: Ditto. - * g++.dg/parse/bitfield3.C: Ditto. - * g++.dg/parse/struct-4.C: Ditto. - * g++.dg/ext/has_trivial_copy.C: Ditto. - * g++.dg/ext/is_polymorphic.C: Ditto. - * g++.dg/ext/has_nothrow_copy_odr.C: Ditto. - * g++.dg/ext/has_nothrow_copy-4.C: Ditto. - * g++.dg/ext/has_nothrow_assign.C: Ditto. - * g++.dg/ext/is_union.C: Ditto. - * g++.dg/ext/has_nothrow_copy-1.C: Ditto. - * g++.dg/ext/is_pod.C: Ditto. - * g++.dg/ext/has_virtual_destructor.C: Ditto. - * g++.dg/ext/has_trivial_constructor.C: Ditto. - * g++.dg/ext/has_nothrow_copy-3.C: Ditto. - * g++.dg/ext/has_nothrow_copy-5.C: Ditto. - * g++.dg/ext/has_trivial_destructor-1.C: Ditto. - * g++.dg/ext/has_nothrow_copy-6.C: Ditto. - * g++.dg/ext/is_abstract.C: Ditto. - * g++.dg/ext/has_trivial_assign.C: Ditto. - * g++.dg/ext/is_class.C: Ditto. - * g++.dg/ext/has_nothrow_assign_odr.C: Ditto. - * g++.dg/ext/has_nothrow_copy-7.C: Ditto. - * g++.dg/ext/is_base_of.C: Ditto. - * g++.dg/ext/has_nothrow_copy-2.C: Ditto. - * g++.dg/ext/has_nothrow_constructor.C: Ditto. - * g++.dg/ext/is_empty.C: Ditto. - * g++.dg/ext/is_enum.C: Ditto. - * g++.dg/ext/has_nothrow_constructor_odr.C: Ditto. - * gnat.dg/opt11.adb: Ditto. - * obj-c++.dg/pr45735.mm: Ditto. - * obj-c++.dg/pr24393.mm: Ditto. - * obj-c++.dg/exceptions-2.mm: Ditto. - * objc.dg/pr45735.m: Ditto. - * objc.dg/pr24393.m: Ditto. - -2011-02-23 Nicola Pero - - * objc.dg/attributes/objc-exception-1.m: New. - -2011-02-23 Jie Zhang - - * gcc.dg/cpp/include7.c: New test. - -2011-02-22 Paolo Carlini - - PR c++/47242 - * g++.dg/cpp0x/lambda/lambda-ice4.C: New. - -2011-02-23 Jie Zhang - - PR rtl-optimization/47763 - * gcc.dg/pr47763.c: New test. - -2011-02-22 Paul Thomas - - PR fortran/45743 - * gfortran.dg/whole_file_32.f90 : New test. - -2011-02-22 Dodji Seketeli - - PR c++/47666 - * g++.dg/inherit/virtual7.C: New test. - -2011-02-22 Nicola Pero - - PR objc/47832 - * objc.dg/type-size-3.m: Updated error message. - * objc.dg/type-size-4.m: New test. - * objc.dg/type-size-5.m: New test. - -2011-02-22 Rainer Orth - - * lib/gnat.exp: Fix comments. - Don't load libgloss.exp. - (default_gnat_version): Call $compiler with --version. - Adapt regexp for gnatmake output, insert version. - (gnat_version): New proc. - (gnat_init): Remove gnat_libgcc_s_path. - (gnat_target_compile): Likewise. - Remove ld_library_path. - Log ADA_INCLUDE_PATH, ADA_OBJECTS_PATH. - (gnat_pass): Remove. - (gnat_pass): Remove. - (gnat_finish): Remove. - (gnat_exit): Remove. - (local_find_gnatmake): Reindent. - (runtest_file_p): Remove. - (prune_warnings): Remove. - (find_gnatclean): New proc. - * lib/gnat-dg.exp (lremove): New proc. - (gnat-dg-test): Reindent. - Remove additional output files. - (gnat-dg-runtest): Remove. - - * gnat.dg/array7.adb: Use cleanup-tree-dump "optimized". - * gnat.dg/loop_optimization6.adb: Likewise. - * gnat.dg/atomic1.adb: Use cleanup-tree-dump "gimple". - -2011-02-22 Jakub Jelinek - - PR tree-optimization/47835 - * gcc.dg/pr46909.c: Check optimized dump instead of ifcombine. - -2011-02-22 Tobias Burnus - - * gfortran.dg/abstract_type_1.f90: Fix dg-do syntax. - * gfortran.dg/abstract_type_2.f03: Ditto. - * gfortran.dg/abstract_type_3.f03: Ditto. - * gfortran.dg/abstract_type_4.f03: Ditto. - * gfortran.dg/abstract_type_5.f03: Ditto. - * gfortran.dg/abstract_type_6.f03: Ditto. - * gfortran.dg/alloc_comp_constraint_6.f90: Ditto. - * gfortran.dg/alloc_comp_init_expr.f03: Ditto. - * gfortran.dg/allocatable_scalar_11.f90: Ditto. - * gfortran.dg/allocate_scalar_with_shape.f90: Ditto. - * gfortran.dg/array_function_5.f90: Ditto. - * gfortran.dg/asynchronous_3.f03: Ditto. - * gfortran.dg/char_expr_1.f90: Ditto. - * gfortran.dg/class_14.f03: Ditto. - * gfortran.dg/data_array_6.f: Ditto. - * gfortran.dg/data_invalid.f90: Ditto. - * gfortran.dg/dot_product_1.f03: Ditto. - * gfortran.dg/func_derived_5.f90: Ditto. - * gfortran.dg/func_result_4.f90: Ditto. - * gfortran.dg/implied_do_1.f90: Ditto. - * gfortran.dg/initialization_25.f90: Ditto. - * gfortran.dg/initialization_26.f90: Ditto. - * gfortran.dg/interface_34.f90: Ditto. - * gfortran.dg/iso_c_binding_init_expr.f03: Ditto. - * gfortran.dg/keyword_symbol_1.f90: Ditto. - * gfortran.dg/matmul_8.f03: Ditto. - * gfortran.dg/merge_init_expr.f90: Ditto. - * gfortran.dg/pack_assign_1.f90: Ditto. - * gfortran.dg/pack_vector_1.f90: Ditto. - * gfortran.dg/pointer_check_8.f90: Ditto. - * gfortran.dg/product_init_expr.f03: Ditto. - * gfortran.dg/reshape_order_5.f90: Ditto. - * gfortran.dg/reshape_shape_1.f90: Ditto. - * gfortran.dg/reshape_zerosize_2.f90: Ditto. - * gfortran.dg/same_name_2.f90: Ditto. - * gfortran.dg/selected_real_kind_1.f90: Ditto. - * gfortran.dg/spread_init_expr.f03: Ditto. - * gfortran.dg/stmt_func_1.f90: Ditto. - * gfortran.dg/sum_init_expr.f03: Ditto. - * gfortran.dg/transpose_3.f03: Ditto. - * gfortran.dg/unpack_init_expr.f03: Ditto. - * gfortran.dg/warn_conversion.f90: Ditto. - * gfortran.dg/warn_conversion_2.f90: Ditto. - * gfortran.dg/warn_intent_out_not_set.f90: Ditto. - * gfortran.dg/warn_unused_dummy_argument_1.f90: Ditto. - * gfortran.dg/warn_unused_dummy_argument_2.f90: Ditto. - * gfortran.dg/whole_file_16.f90: Ditto. - * gfortran.dg/whole_file_17.f90: Ditto. - * gfortran.dg/whole_file_18.f90: Ditto. - * gfortran.dg/whole_file_20.f03: Ditto. - * gfortran.dg/whole_file_5.f90: Ditto. - * gfortran.dg/whole_file_6.f90: Ditto. - * gfortran.dg/write_invalid_format.f90: Ditto. - * gfortran.dg/zero_sized_6.f90: Ditto. - -2011-02-21 Jeff Law - - PR rtl-optimization/46178 - * gcc.target/i386/pr46178.c: New test. - - PR rtl-optimization/46002 - * gcc.c-torture/compile/pr46002.c: New test. - -2011-02-21 John David Anglin - - * g++.dg/cpp0x/lambda/lambda-conv.C: Skip scan-assembler check on - *-*-hpux10*. - -2011-02-21 Jakub Jelinek - - PR debug/47106 - * g++.dg/debug/pr47106.C: Require effective target lto. - -2011-02-21 Jason Merrill - - * g++.dg/cpp0x/constexpr-diag2.C: New. - -2011-02-20 Jason Merrill - - * g++.dg/cpp0x/constexpr-ctor7.C: New. - - * g++.dg/cpp0x/fntmpdefarg2.C: New. - - * g++.dg/overload/conv-op1.C: New. - - * g++.dg/cpp0x/constexpr-synth1.C: New. - -2011-02-20 Nicola Pero - - * objc.dg/layout-2.m: New. - * objc.dg/selector-3.m: Adjusted location of error message. - * objc.dg/type-size-3.m: Same. - * obj-c++.dg/selector-3.mm: Same. - -2011-02-20 Nicola Pero - - PR objc/47784 - * objc.dg/property/dotsyntax-22.m: New. - * obj-c++.dg/property/dotsyntax-22.mm: New. - -2011-02-20 Dodji Seketeli - - PR c++/46394 - * g++.dg/template/typedef38.C: New test. - -2011-02-20 Paul Thomas - - PR fortran/46818 - * gfortran.dg/whole_file_30.f90 : New test. - * gfortran.dg/whole_file_31.f90 : New test. - -2011-02-20 Paul Thomas - - PR fortran/45077 - PR fortran/44945 - * gfortran.dg/whole_file_28.f90 : New test. - * gfortran.dg/whole_file_29.f90 : New test. - -2011-02-20 Paolo Carlini - - PR c++/44118 - * g++.dg/template/crash105.C: New. - -2011-02-19 Jason Merrill - - * g++.dg/cpp0x/regress/no-elide1.C: New. - -2011-02-19 Alexandre Oliva - - PR tree-optimization/46620 - * gcc.dg/pr46620.c: New. - -2011-02-19 Jakub Jelinek - - PR c/47809 - * gcc.target/i386/pr47809.c: New test. - -2011-02-19 Jerry DeLisle - Tobias Burnus - - * lib/target-supports.exp - (check_effective_target_fortran_large_real): New check for large reals. - * gfortran.dg/nan_7.f90: New test. - -2011-02-19 Jerry DeLisle - - PR libgfortran/47567 - * gfortran.dg/fmt_f0_1.f90: Update test. - -2011-02-19 Paul Thomas - - PR fortran/47348 - * gfortran.dg/array_constructor_36.f90 : New test. - * gfortran.dg/bounds_check_10.f90 : Change dg-output message to - allow for comparison between different elements of the array - constructor at different levels of optimization. - -2011-02-19 H.J. Lu - - * gcc.target/i386/pr31167.c: Require int128 instead of lp64. - * gcc.target/i386/pr32280-1.c: Likewise. - -2011-02-19 Jakub Jelinek - - PR target/47800 - * gcc.target/i386/pr47800.c: New test. - -2011-02-18 Iain Sandoe - - * objc/execute/exceptions/foward-1.x: New. - -2011-02-18 Janus Weil - - PR fortran/47789 - * gfortran.dg/derived_constructor_comps_4.f90: New. - -2011-02-18 Tobias Burnus - - PR fortran/47775 - * gfortran.dg/func_result_6.f90: New. - -2011-02-18 Michael Matz - - PR fortran/45586 - * gfortran.dg/lto/pr45586_0.f90: New test. - * gfortran.dg/typebound_proc_20.f90: Ditto. - * gfortran.dg/typebound_proc_21.f90: Ditto. - -2011-02-18 Paolo Carlini - - PR c++/47795 - * g++.dg/cpp0x/lambda/lambda-ice3.C: New. - -2011-02-18 Tobias Burnus - - PR fortran/47750 - * lib/gfortran.exp (gfortran_init): Set gcc_error_prefix and - gcc_warning_prefix. - * lib/gfortran-dg.exp (gfortran-dg-test): Update regexp for - normalizing the error/warning output. - * gfortran.dg/Wall.f90: Update dg-error/warning. - * gfortran.dg/argument_checking_15.f90: Update dg-error/warning. - * gfortran.dg/argument_checking_3.f90: Update dg-error/warning. - * gfortran.dg/argument_checking_6.f90: Update dg-error/warning. - * gfortran.dg/bounds_temporaries_1.f90: Update dg-error/warning. - * gfortran.dg/class_30.f90: Update dg-error/warning. - * gfortran.dg/continuation_1.f90: Update dg-error/warning. - * gfortran.dg/continuation_9.f90: Update dg-error/warning. - * gfortran.dg/do_check_5.f90: Update dg-error/warning. - * gfortran.dg/entry_17.f90: Update dg-error/warning. - * gfortran.dg/entry_19.f90: Update dg-error/warning. - * gfortran.dg/fmt_error.f90: Update dg-error/warning. - * gfortran.dg/fmt_read_2.f90: Update dg-error/warning. - * gfortran.dg/g77/12632.f: Update dg-error/warning. - * gfortran.dg/g77/970625-2.f: Update dg-error/warning. - * gfortran.dg/g77/980615-0.f: Update dg-error/warning. - * gfortran.dg/generic_actual_arg.f90: Update dg-error/warning. - * gfortran.dg/global_references_1.f90: Update dg-error/warning. - * gfortran.dg/goto_8.f90: Update dg-error/warning. - * gfortran.dg/initialization_1.f90: Update dg-error/warning. - * gfortran.dg/io_constraints_1.f90: Update dg-error/warning. - * gfortran.dg/io_constraints_2.f90: Update dg-error/warning. - * gfortran.dg/io_constraints_3.f90: Update dg-error/warning. - * gfortran.dg/iostat_3.f90: Update dg-error/warning. - * gfortran.dg/public_private_module.f90: Update dg-error/warning. - * gfortran.dg/volatile3.f90: Update dg-error/warning. - * gfortran.dg/warning-directive-2.F90: Update dg-error/warning. - * gfortran.dg/warnings_are_errors_1.f: Update dg-error/warning. - * gfortran.dg/whole_file_1.f90: Update dg-error/warning. - * gfortran.dg/whole_file_2.f90: Update dg-error/warning. - * gfortran.dg/whole_file_3.f90: Update dg-error/warning. - -2011-02-18 Janus Weil - - PR fortran/47768 - * gfortran.dg/proc_ptr_comp_30.f90: New. - -2011-02-18 Jakub Jelinek - - PR debug/47780 - * gcc.target/i386/pr47780.c: New test. - -2011-02-18 Janus Weil - - PR fortran/47767 - * gfortran.dg/class_40.f03: New. - -2011-02-18 Dodji Seketeli - - PR c++/47208 - * g++.dg/cpp0x/auto21.C: New test. - -2011-02-17 Iain Sandoe - - * objc.dg/special/unclaimed-category-1.h: Updated for - new ABI support. - * objc.dg/special/unclaimed-category-1.m: Same. - * objc.dg/zero-link-1.m: Same. - * objc.dg/lookup-1.m: Same. - * objc.dg/torture/strings/const-str-9.m - * objc.dg/torture/strings/const-str-10.m: Same. - * objc.dg/torture/strings/const-str-11.m: Same. - * objc.dg/torture/forward-1.m: Same. - * objc.dg/zero-link-2.m: Same. - * objc.dg/encode-7-next-64bit.m: Same. - * objc.dg/method-4.m: Same. - * objc.dg/next-runtime-1.m: Same. - * objc.dg/image-info.m: Same. - * objc.dg/pr23214.m: Same. - * objc.dg/symtab-1.m: Same. - * obj-c++.dg/basic.m: Same. - * obj-c++.dg/proto-lossage-3.m: Same. - * obj-c++.dg/torture/strings/const-str-10.m: Same. - * obj-c++.dg/torture/strings/const-str-11.m: Same. - * obj-c++.dg/torture/strings/const-str-9.m: Same. - * obj-c++.dg/method-11.m: Same. - * objc/execute/enumeration-1.m: Same. - * objc/execute/object_is_class.m: Same. - * objc/execute/formal_protocol-2.m: Same. - * objc/execute/formal_protocol-4.m: Same. - * objc/execute/formal_protocol-6.m: Same. - * objc/execute/bycopy-3.m: Same. - * objc/execute/exceptions/catchall-1.m: Same. - * objc/execute/exceptions/finally-1.m: Same. - * objc/execute/exceptions/local-variables-1.m: Same. - * objc/execute/exceptions/foward-1.m: Same. - * objc/execute/bf-common.h - * objc/execute/enumeration-2.m: Same. - * objc/execute/formal_protocol-1.m: Same. - * objc/execute/formal_protocol-3.m: Same. - * objc/execute/formal_protocol-5.m: Same. - * objc/execute/accessing_ivars.m: Same. - * objc/execute/bycopy-2.m: Same. - * objc/execute/formal_protocol-7.m: Same. - * objc/execute/compatibility_alias.m: Same. - * objc/execute/no_clash.m: Same. - * objc/execute/object_is_meta_class.m: Same. - * objc/execute/exceptions/exceptions.exp: Load target-supports.exp - * objc/execute/class-tests-1.h: Include stdio.h. - * objc/execute/class-tests-2.h: Same. - * obj-c++.dg/try-catch-9.mm: xfail-run the test with both - runtimes. - * obj-c++.dg/try-catch-2.mm: Same. - -2011-02-17 Jakub Jelinek - - PR c++/47783 - * g++.dg/warn/Wunused-parm-4.C: New test. - -2011-02-17 Alexandre Oliva - Jan Hubicka - - PR debug/47106 - PR debug/47402 - * g++.dg/debug/pr47106.C: New. - -2011-02-17 Uros Bizjak - - PR target/43653 - * gcc.target/i386/pr43653.c: New test. - -2011-02-11 Dodji Seketeli - - PR c++/47172 - * g++.dg/template/inherit6.C: New test. - -2011-02-16 Janus Weil - - PR fortran/47745 - * gfortran.dg/class_39.f03: New. - -2011-02-16 Dodji Seketeli - - PR c++/47326 - * g++.dg/cpp0x/variadic106.C: New test. - -2011-02-16 Jakub Jelinek - - PR libfortran/47757 - * gfortran.dg/pr47757-1.f90: New test. - * gfortran.dg/pr47757-2.f90: New test. - * gfortran.dg/pr47757-3.f90: New test. - - PR c++/47704 - * g++.dg/cpp0x/enum8.C: New test. - -2011-02-15 Jason Merrill - - * g++.dg/inherit/implicit-trivial1.C: New. - * g++.dg/cpp0x/implicit-trivial1.C: New. - -2011-02-15 H.J. Lu - - PR middle-end/47725 - * gcc.dg/torture/pr47725.c: Removed. - -2011-02-15 Michael Meissner - - PR target/47755 - * gcc.target/powerpc/pr47755.c: New file, test all 0 vector - constant does not generate a load from memory. - -2011-02-15 H.J. Lu - - PR middle-end/47725 - * gcc.dg/torture/pr47725.c: New. - -2011-02-15 Richard Guenther - - PR tree-optimization/47743 - * gcc.dg/torture/pr47743.c: New testcase. - -2011-02-15 Jakub Jelinek - - PR middle-end/47581 - * gcc.target/i386/pr47581.c: New test. - -2011-02-14 Janus Weil - - PR fortran/47730 - * gfortran.dg/select_type_22.f03: New. - -2011-02-14 Jason Merrill - - * g++.dg/cpp0x/regress/enum1.C: New. - -2011-02-14 Eric Botcazou - - * gnat.dg/include.adb: New test. - -2011-02-14 Janus Weil - - PR fortran/47728 - * gfortran.dg/class_38.f03: New. - -2011-02-14 Eric Botcazou - - * gcc.dg/pr46494.c: New test. - -2011-02-14 Richard Guenther - - * gcc.dg/attr-weak-hidden-1.c: Make definition of foo strong. - -2011-02-14 Rainer Orth - - PR ada/41929 - * gnat.dg/null_pointer_deref1.exp: Don't skip on - sparc*-sun-solaris2.11. - -2011-02-14 Janus Weil - - PR fortran/47349 - * gfortran.dg/argument_checking_18.f90: New. - -2011-02-13 Tobias Burnus - - * gfortran.dg/argument_checking_13.f90: Update dg-error. - * gfortran.dg/argument_checking_17.f90: New. - -2011-02-12 Janus Weil - - * gfortran.dg/allocate_derived_1.f90: Modified as polymorphic arrays - are temporarily disabled. - * gfortran.dg/class_7.f03: Ditto. - * gfortran.dg/coarray_14.f90: Ditto. - * gfortran.dg/typebound_proc_13.f03: Ditto. - -2011-02-12 Mikael Morin - - PR fortran/45586 - * gfortran.dg/extends_11.f03: New. - -2011-02-11 Xinliang David Li - - PR tree-optimization/47707 - * g++.dg/tree-ssa/pr47707.C: New test. - -2011-02-11 Eric Botcazou - - * g++.dg/opt/inline17.C: New test. - -2011-02-11 Tobias Burnus - - PR fortran/47550 - * gfortran.dg/pure_formal_2.f90: New. - -2011-02-11 Pat Haugen - - PR rtl-optimization/47614 - * gfortran.dg/pr47614.f: New. - -2011-02-11 Joseph Myers - - PR driver/47678 - * gcc.dg/opts-6.c: New test. - -2011-02-11 Jakub Jelinek - - PR debug/47684 - * gcc.dg/pr47684.c: New test. - -2011-02-11 Rainer Orth - - PR target/47629 - * gcc.target/i386/pr47312.c: Use dg-require-effective-target - c99_runtime, dg-add-options c99_runtime. - (main): Use __asm__. - -2011-02-11 Rainer Orth - - PR testsuite/47400 - * lib/target-supports.exp (check_ascii_locale_available): New proc. - * lib/target-supports-dg.exp (dg-require-ascii-locale): New proc. - * gcc.dg/attr-alias-5.c: Use dg-require-ascii-locale. - * gcc.dg/ucnid-10.c: Likewise. - * gcc.dg/ucnid-13.c: Likewise. - * gcc.dg/ucnid-7.c: Likewise. - * gcc.dg/ucnid-8.c: Likewise. - Adapt dg-warning line number. - -2011-02-10 Uros Bizjak - - * gcc.target/i386/parity-1.c: Use -march=k8. - * gcc.target/i386/parity-2.c: Ditto. - * gcc.target/i386/vecinit-1.c: Ditto. - * gcc.target/i386/vecinit-2.c: Ditto. - -2011-02-10 Rainer Orth - - PR target/46610 - * gcc.target/mips/save-restore-1.c: Skip on mips-sgi-irix6*. - * gcc.target/mips/save-restore-3.c: Likewise. - * gcc.target/mips/save-restore-4.c: Likewise. - * gcc.target/mips/save-restore-5.c: Likewise. - - PR target/47683 - * g++.dg/tree-prof/partition1.C: Skip on mips-sgi-irix*. - * g++.dg/tree-prof/partition2.C: Likewise. - -2011-02-09 Jason Merrill - - * g++.dg/tree-ssa/inline-3.C: Use a normal function - rather than misdeclare std::puts. - - * g++.dg/ext/vla1.C: Adjust for C++0x mode. - * g++.dg/other/warning1.C: Likewise. - * g++.old-deja/g++.bugs/900119_01.C: Likewise. - * g++.old-deja/g++.gb/scope06.C: Likewise. - * g++.old-deja/g++.law/cvt11.C: Likewise. - * g++.old-deja/g++.law/init1.C: Likewise. - * g++.dg/abi/mangle26.C: Likewise. - - * g++.dg/template/function1.C: Adjust for C++0x mode. - * g++.dg/cpp0x/regress/template-function1.C: Copy it. - - * g++.dg/ext/label10.C: Adjust for C++0x mode. - * g++.dg/cpp0x/regress/ext-label10.C: Copy it. - - * g++.dg/cpp0x/regress/ext-cond1.C: Copy from ext/cond1.C. - - * g++.dg/cpp0x/regress/abi-empty7.C: New. - - * g++.dg/cpp0x/regress: New directory. - * g++.dg/cpp0x/constexpr-regress1.C: Move to regress/regress1.C. - * g++.dg/cpp0x/constexpr-regress2.C: Move to regress/regress2.C. - * g++.dg/cpp0x/regress/regress3.C: New. - -2011-02-10 Richard Guenther - - PR tree-optimization/47677 - * gcc.dg/torture/pr47677.c: New testcase. - -2011-02-10 Iain Sandoe - - * objc.dg/special/load-category-1.m: Remove unused header. - * objc.dg/special/load-category-1a.m: Likewise. - * objc.dg/special/load-category-2.m: Likewise. - * objc.dg/special/load-category-2a.m: Likewise. - * objc.dg/special/load-category-3.m: Likewise. - * objc.dg/special/load-category-3a.m: Likewise. - * objc.dg/attributes/proto-attribute-2.m: Likewise. - * objc.dg/attributes/proto-attribute-3.m: Likewise. - * objc.dg/attributes/class-attribute-1.m: Likewise. - * objc.dg/property/property.exp: Don't run for Darwin < 9. - * obj-c++.dg/property/property.exp: Likewise. - * objc.dg/attributes/method-sentinel-1.m: Update type header. - * obj-c++.dg/attributes/method-sentinel-1.mm: Likewise. - * obj-c++.dg/attributes/proto-attribute-2.mm: Skip for Darwin < 9. - * obj-c++.dg/attributes/class-attribute-1.mm: Likewise. - * obj-c++.dg/attributes/proto-attribute-3.mm: Likewise. - * obj-c++.dg/template-8.mm: Likewise. - -2011-02-10 Jakub Jelinek - - PR target/47665 - * gcc.target/i386/pr47665.c: New test. - -2011-02-10 Jie Zhang - - PR testsuite/47622 - Revert - 2011-02-05 Jie Zhang - PR debug/42631 - * gcc.dg/pr42631.c: Update test. - * gcc.dg/pr42631-2.c: New test. - -2011-02-09 Janus Weil - - PR fortran/47352 - * gfortran.dg/proc_decl_25.f90: New. - -2011-02-09 Janus Weil - - PR fortran/47463 - * gfortran.dg/typebound_assignment_2.f03: New. - -2011-02-09 Richard Guenther - - PR tree-optimization/47664 - * gcc.dg/tree-ssa/inline-7.c: New testcase. - -2011-02-09 Eric Botcazou - - PR middle-end/47646 - * gnat.dg/uninit_func.adb: Adjust dg directive. - -2011-02-09 Dominique Dhumieres - - PR middle-end/47646 - * obj-c++.dg/attributes/method-noreturn-1.mm: Adjust dg directives. - -2011-02-09 Janus Weil - - PR fortran/47637 - * gfortran.dg/auto_dealloc_2.f90: New. - -2011-02-09 Rainer Orth - - * gcc.dg/builtins-config.h: Remove __sgi handling. - * lib/target-supports.exp (add_options_for_c99_runtime): Add - -std=c99 for mips-sgi-irix6.5*. - -2011-02-09 Martin Jambor - - PR middle-end/45505 - * gfortran.dg/pr25923.f90: Remove xfails. - -2011-02-08 Jerry DeLisle - - PR fortran/47583 - * gfortran.dg/inquire_14.f90: New test. - -2011-02-08 Janus Weil - - PR fortran/45290 - * gfortran.dg/pointer_init_6.f90: New. - -2011-02-08 Jeff Law - - PR tree-optimization/42893 - * gcc.tree-ssa/pr42893.c: New test. - -2011-02-08 Sebastian Pop - - PR tree-optimization/46834 - PR tree-optimization/46994 - PR tree-optimization/46995 - * gcc.dg/graphite/id-pr46834.c: New. - * gfortran.dg/graphite/id-pr46994.f90: New. - * gfortran.dg/graphite/id-pr46995.f90: New. - -2011-02-08 Andreas Krebbel - - PR middle-end/47646 - * gcc.dg/pr39666-2.c (foo2): If the location of the statement - using the variable is known the warning is emitted there. - * gcc.dg/uninit-pr19430.c (foo): Likewise. - * g++.dg/warn/Wuninitialized-5.C (foo): Likewise. - - * c-c++-common/pr20000.c (g): Both warnings occur at the return - statement. - (vg): Likewise. - * gcc.dg/noreturn-1.c (foo5): Likewise. - * objc.dg/attributes/method-noreturn-1.m (method1): Likewise. - (method2): Likewise. - - * gfortran.dg/pr25923.f90 (baz): The warning will now be issued for - the return statement using the uninitialized variable. - * gfortran.dg/pr39666-2.f90 (f): Likewise. - -2011-02-08 Richard Guenther - - PR middle-end/47639 - * g++.dg/opt/pr47639.c: New testcase. - -2011-02-08 Richard Guenther - - PR tree-optimization/47632 - * g++.dg/opt/pr47632.C: New testcase. - -2011-02-07 Ulrich Weigand - - * g++.dg/abi/packed1.C: Expect warning on spu-*-* as well. - -2011-02-07 Richard Guenther - - PR tree-optimization/47615 - * g++.dg/opt/pr47615.C: New testcase. - -2011-02-07 Richard Guenther - - PR tree-optimization/47621 - * gcc.dg/torture/pr47621.c: New testcase. - -2011-02-07 Uros Bizjak - - * gfortran.dg/transpose_optimization_2.f90: Cleanup original dump. - -2011-02-06 Paul Thomas - - PR fortran/47592 - * gfortran.dg/allocate_with_source_1 : New test. - -2011-02-05 Jakub Jelinek - - PR middle-end/47610 - * gcc.dg/pr47610.c: New test. - -2011-02-05 Jie Zhang - - PR debug/42631 - * gcc.dg/pr42631.c: Update test. - * gcc.dg/pr42631-2.c: New test. - -2001-02-05 Thomas Koenig - - PR fortran/47574 - * gfortran.dg/pr47574.f90: New test. - -2011-02-04 Sebastian Pop - - PR tree-optimization/46194 - * gcc.dg/autopar/pr46194.c: New. - -2011-02-04 H.J. Lu - - PR tree-optimization/43695 - * g++.dg/ipa/pr43695.C: New. - -2011-02-04 Jakub Jelinek - - PR inline-asm/23200 - * gcc.dg/pr23200.c: New test. - -2011-02-03 Jonathan Wakely - - PR c++/47589 - * g++.dg/pr47589.C: New test. - -2011-02-03 Dodji Seketeli - - PR c++/47398 - * g++.dg/template/typedef37.C: New test. - * g++.dg/template/param1.C: Adjust expected error message. - -2011-02-03 Jakub Jelinek - - PR middle-end/31490 - * gcc.dg/pr31490-2.c: New test. - * gcc.dg/pr31490-3.c: New test. - * gcc.dg/pr31490-4.c: New test. - -2011-02-03 Nathan Froyd - Jakub Jelinek - - PR c++/46890 - * g++.dg/parser/semicolon3.C: Adjust. - * g++.dg/parser/semicolon4.C: New testcase. - * g++.dg/pr46890.C: New testcase. - -2011-02-03 Paolo Carlini - - PR c++/29571 - * g++.dg/init/pr29571.C: New. - -2011-02-03 H.J. Lu - - * gfortran.dg/graphite/vect-pr40979.f90: Require vect_double - instead of vect_int. - -2011-02-03 Jakub Jelinek - - PR target/47312 - * gcc.target/i386/pr47312.c: New test. - - PR target/47564 - * gcc.target/i386/pr47564.c: New test. - -2011-02-03 Alexandre Oliva - - PR tree-optimization/45122 - * gcc.dg/tree-ssa/pr45122.c: New. - -2011-02-02 Michael Meissner - - PR target/47272 - * gcc.target/powerpc/vsx-builtin-8.c: New file, test vec_vsx_ld - and vec_vsx_st. - - * gcc.target/powerpc/avoid-indexed-addresses.c: Disable altivec - and vsx so a default --with-cpu=power7 doesn't give an error - when -mavoid-indexed-addresses is used. - - * gcc.target/powerpc/ppc32-abi-dfp-1.c: Rewrite to use an asm - wrapper function to save the arguments and then jump to the real - function, rather than depending on the compiler not to move stuff - before an asm. - * gcc.target/powerpc/ppc64-abi-dfp-2.c: Ditto. - -2011-02-02 Janus Weil - Paul Thomas - - PR fortran/47082 - * gfortran.dg/class_37.f03 : New test. - -2011-02-02 Sebastian Pop - Richard Guenther - - PR tree-optimization/40979 - PR bootstrap/47044 - * gcc.dg/graphite/graphite.exp (DEFAULT_VECTCFLAGS): Add -ffast-math. - * gcc.dg/graphite/pr35356-2.c: Adjust pattern. - * gfortran.dg/graphite/graphite.exp: Run vect_files conditionally to - check_vect_support_and_set_flags. - * gfortran.dg/graphite/vect-pr40979.f90: New. - -2011-02-02 Janus Weil - - PR fortran/47572 - * gfortran.dg/class_36.f03: New. - -2011-02-02 Richard Guenther - - PR tree-optimization/47566 - * gcc.dg/lto/20110201-1_0.c: New testcase. - -2011-02-02 Alexandre Oliva - - PR debug/47498 - PR debug/47501 - PR debug/45136 - PR debug/45130 - * debug/pr47498.c: New. - * debug/pr47501.c: New. - -2011-02-01 Richard Guenther - - PR tree-optimization/47559 - * g++.dg/torture/pr47559.C: New testcase. - -2011-02-01 Janus Weil - - PR fortran/47565 - * gfortran.dg/typebound_call_20.f03: New. - -2011-02-01 Richard Guenther - - PR tree-optimization/47555 - * gcc.dg/pr47555.c: New testcase. - -2011-02-01 Richard Guenther - - PR tree-optimization/47541 - * g++.dg/torture/pr47541.C: New testcase. - -2011-01-31 Janus Weil - - PR fortran/47455 - * gfortran.dg/typebound_call_19.f03: New. - -2011-01-31 Jakub Jelinek - - PR c++/47416 - * g++.dg/cpp0x/pr47416.C: New test. - -2011-01-31 Paul Thomas - - PR fortran/47519 - * gfortran.dg/allocate_deferred_char_scalar_2.f03: New test. - -2011-01-31 Janus Weil - - PR fortran/47463 - * gfortran.dg/typebound_assignment_1.f03: New. - -2011-01-31 Jakub Jelinek - - PR tree-optimization/47538 - * gcc.c-torture/execute/pr47538.c: New test. - -2011-01-31 Rainer Orth - - PR target/45325 - * gcc.target/i386/pr38240.c: Add dg-options "-msse". - -2011-01-31 Rainer Orth - - * g++.dg/abi/mangle40.C: Pass "" to dg-require-weak. - -2011-01-31 Eric Botcazou - - PR rtl-optimization/44031 - * gcc.c-torture/compile/20110131-1.c: New test. - -2011-01-31 Tobias Burnus - - PR fortran/47042 - * gfortran.dg/stmt_func_1.f90: New. - -2011-01-31 Tobias Burnus - - PR fortran/47042 - * gfortran.dg/interface_34.f90: New. - -2011-01-30 Paul Thomas - - PR fortran/47523 - * gfortran.dg/realloc_on_assign_5.f03: New test. - * gfortran.dg/realloc_on_assign_5.f03: New test. - -2011-01-29 Ulrich Weigand - - * gfortran.dg/bessel_6.f90: XFAIL on spu-*-*. - * gfortran.dg/bessel_7.f90: Likewise. - * gfortran.dg/erf_2.F90: Likewise. Always run with -O0. - - * gfortran.dg/complex_intrinsics_5.f90: Increase "epsilon". - * gfortran.dg/sum_init_expr.f03: Likewise. - - * gfortran.dg/realloc_on_assign_2.f03: Skip on spu-*-*. - - * gfortran.dg/lto/20091016-1_0.f90: Replace -shared with - -r -nostdlib. - - * gfortran.dg/vect/fast-math-vect-8.f90: Check for vectorized - loop only on "vect_intfloat_cvt" targets. - -2011-01-29 Tobias Burnus - - PR fortran/47531 - * gfortran.dg/shape_6.f90: New. - -2011-01-29 Jerry DeLisle - - PR libgfortran/47434 - * gfortran.dg/read_infnan_1.f90: Update test. - * gfortran.dg/module_nan.f90: Update test. - * gfortran.dg/char4_iunit_1.f03: Update test. - * gfortran.dg/large_real_kind_1.f90: Update test. - * gfortran.dg/real_const_3.f90: Update test. - * gfortran.fortran-torture/execute/nan_inf_fmt.f90: Update test. - -2011-01-29 Dodji Seketeli - - PR c++/47311 - * g++.dg/template/param2.C: New test. - -2011-01-28 Jerry DeLisle - - PR libgfortran/47285 - * gfortran.dg/fmt_g.f: New test. - -2011-01-28 Tobias Burnus - - PR fortran/47507 - * gfortran.dg/pure_formal_1.f90: New. - -2011-01-28 Jakub Jelinek - - PR target/42894 - * gcc.dg/tls/pr42894.c: New test. - -2011-01-28 Rainer Orth - - * gcc.dg/pr47276.c: Add dg-require-visibility. - -2011-01-28 Rainer Orth - - * gcc.target/i386/asm-6.c: XFAIL on i?86-pc-solaris2.1[0-9] && ilp32. - -2011-01-28 Paul Thomas - Tobias Burnus - - PR fortran/45170 - PR fortran/35810 - PR fortran/47350 - * gfortran.dg/realloc_on_assign_3.f03: New test. - * gfortran.dg/realloc_on_assign_4.f03: New test. - * gfortran.dg/allocatable_function_5.f90: New test. - * gfortran.dg/allocate_deferred_char_scalar_1.f03: New test. - * gfortran.dg/deferred_type_param_2.f90: Remove two "not yet - implemented" dg-errors. - -2011-01-27 Jan Hubicka - - PR middle-end/46949 - * gcc.dg/attr-weakref-4.c: New testcase - -2011-01-27 Martin Jambor - - PR tree-optimization/47228 - * gcc.dg/torture/pr47228.c: New test. - -2011-01-27 Andreas Krebbel - - * gcc.dg/tree-ssa/pr42585.c: Disable on s390 and s390x. - -2011-01-27 Ulrich Weigand - - * lib/compat.exp (compat-execute): Pass -Wl,--extra-stack-space=8192 - when using auto-overlay support on the SPU. - -2011-01-27 Eric Botcazou - - PR rtl-optimization/44174 - * gcc.target/i386/asm-6.c: New test. - -2011-01-26 Mikael Pettersson - - PR rtl-optimization/46856 - * gcc.c-torture/compile/pr46856.c: New test. - -2011-01-26 Nicola Pero - Andrew Pinski - - PR c/43082 - * gcc.dg/pr43082.c: New. - -2011-01-26 DJ Delorie - - PR rtl-optimization/46878 - * gcc.dg/pr46878-1.c: New test. - -2011-01-26 Jakub Jelinek - - PR c++/47476 - * g++.dg/cpp0x/pr47476.C: New test. - -2011-01-26 Eric Botcazou - - * gcc.c-torture/compile/20110126-1.c: New test. - -2011-01-26 Jakub Jelinek - - PR c/47473 - * gcc.dg/torture/pr47473.c: New test. - -2011-01-26 Jan Hubicka - - PR target/47237 - * gcc.c-torture/execute/pr47237.c: New testcase. - -2011-01-26 Jan Hubicka - - PR tree-optimization/47190 - * gcc.dg/attr-weakref-3.c: New testcase. - -2011-01-26 Dave Korn - - PR c++/43601 - * gcc.dg/dll-9a.c: New test file. - * gcc.dg/dll-11.c: Likewise. - * gcc.dg/dll-12.c: Likewise. - * gcc.dg/dll-12a.c: Likewise. - * gcc.dg/dll-11a.c: Likewise. - * gcc.dg/dll-9.c: Likewise. - * gcc.dg/dll-10.c: Likewise. - * gcc.dg/dll-10a.c: Likewise. - * g++.dg/ext/dllexport4a.cc: Likewise. - * g++.dg/ext/dllexport4.C: Likewise. - * g++.dg/ext/dllexport5.C: Likewise. - * g++.dg/ext/dllexport5a.cc: Likewise. - -2011-01-25 Sebastian Pop - - PR tree-optimization/46970 - * gcc.dg/graphite/pr46970.c: New. - -2011-01-25 Sebastian Pop - - PR tree-optimization/46215 - * gcc.dg/graphite/pr46215.c: New. - -2011-01-25 Sebastian Pop - - PR tree-optimization/46168 - * gcc.dg/graphite/pr46168.c: New. - -2011-01-25 Sebastian Pop - - PR tree-optimization/43657 - * gcc.dg/graphite/pr43657.c: New. - -2011-01-25 Sebastian Pop - - PR tree-optimization/29832 - * gfortran.dg/graphite/pr29832.f90: New. - -2011-01-25 Sebastian Pop - - PR tree-optimization/43567 - * gcc.dg/graphite/pr43567.c: New. - -2011-01-25 Sebastian Pop - - * gfortran.dg/graphite/interchange-4.f: New. - * gfortran.dg/graphite/interchange-5.f: New. - - * gcc.dg/tree-ssa/ltrans-1.c: Removed. - * gcc.dg/tree-ssa/ltrans-2.c: Removed. - * gcc.dg/tree-ssa/ltrans-3.c: Removed. - * gcc.dg/tree-ssa/ltrans-4.c: Removed. - * gcc.dg/tree-ssa/ltrans-5.c: Removed. - * gcc.dg/tree-ssa/ltrans-6.c: Removed. - * gcc.dg/tree-ssa/ltrans-8.c: Removed. - * gfortran.dg/ltrans-7.f90: Removed. - * gcc.dg/tree-ssa/data-dep-1.c: Removed. - - * gcc.dg/pr18792.c: -> gcc.dg/graphite/pr18792.c - * gcc.dg/pr19910.c: -> gcc.dg/graphite/pr19910.c - * gcc.dg/tree-ssa/20041110-1.c: -> gcc.dg/graphite/pr20041110-1.c - * gcc.dg/tree-ssa/pr20256.c: -> gcc.dg/graphite/pr20256.c - * gcc.dg/pr23625.c: -> gcc.dg/graphite/pr23625.c - * gcc.dg/tree-ssa/pr23820.c: -> gcc.dg/graphite/pr23820.c - * gcc.dg/tree-ssa/pr24309.c: -> gcc.dg/graphite/pr24309.c - * gcc.dg/tree-ssa/pr26435.c: -> gcc.dg/graphite/pr26435.c - * gcc.dg/pr29330.c: -> gcc.dg/graphite/pr29330.c - * gcc.dg/pr29581-1.c: -> gcc.dg/graphite/pr29581-1.c - * gcc.dg/pr29581-2.c: -> gcc.dg/graphite/pr29581-2.c - * gcc.dg/pr29581-3.c: -> gcc.dg/graphite/pr29581-3.c - * gcc.dg/pr29581-4.c: -> gcc.dg/graphite/pr29581-4.c - * gcc.dg/tree-ssa/loop-27.c: -> gcc.dg/graphite/pr30565.c - * gcc.dg/tree-ssa/pr31183.c: -> gcc.dg/graphite/pr31183.c - * gcc.dg/tree-ssa/pr33576.c: -> gcc.dg/graphite/pr33576.c - * gcc.dg/tree-ssa/pr33766.c: -> gcc.dg/graphite/pr33766.c - * gcc.dg/pr34016.c: -> gcc.dg/graphite/pr34016.c - * gcc.dg/tree-ssa/pr34017.c: -> gcc.dg/graphite/pr34017.c - * gcc.dg/tree-ssa/pr34123.c: -> gcc.dg/graphite/pr34123.c - * gcc.dg/tree-ssa/pr36287.c: -> gcc.dg/graphite/pr36287.c - * gcc.dg/tree-ssa/pr37686.c: -> gcc.dg/graphite/pr37686.c - * gcc.dg/pr42917.c: -> gcc.dg/graphite/pr42917.c - * gcc.dg/tree-ssa/data-dep-1.c - * gfortran.dg/loop_nest_1.f90: -> gfortran.dg/graphite/pr29290.f90 - * gfortran.dg/pr29581.f90: -> gfortran.dg/graphite/pr29581.f90 - * gfortran.dg/pr36286.f90: -> gfortran.dg/graphite/pr36286.f90 - * gfortran.dg/pr36922.f: -> gfortran.dg/graphite/pr36922.f - * gfortran.dg/pr39516.f: -> gfortran.dg/graphite/pr39516.f - -2011-01-25 Jakub Jelinek - - PR tree-optimization/47265 - PR tree-optimization/47443 - * gcc.c-torture/compile/pr47265.c: New test. - * gcc.dg/pr47443.c: New test. - -2011-01-25 Martin Jambor - - PR tree-optimization/47382 - * g++.dg/torture/pr47382.C: New test. - * g++.dg/opt/devirt1.C: Xfail. - -2011-01-25 Yao Qi - - PR target/45701 - * gcc.target/arm/pr45701-1.c: New test. - * gcc.target/arm/pr45701-2.c: New test. - * gcc.target/arm/pr45701-3.c: New test. - -2011-01-25 Sebastian Pop - Jakub Jelinek - - PR tree-optimization/47271 - * gcc.dg/tree-ssa/ifc-pr47271.c: New. - -2011-01-25 Nick Clifton - - * gcc.target/rx/builtins.c: Allow -fipa-cp-clone. - (saturate_add): Delete. - (exchange): Delete. - (main): Do not run saturate_add. - (set_interrupts): Delete. - -2011-01-25 Tobias Burnus - - PR fortran/47448 - * gfortran.dg/redefined_intrinsic_assignment_2.f90: New. - -2011-01-25 Jakub Jelinek - - PR tree-optimization/47427 - PR tree-optimization/47428 - * gcc.c-torture/compile/pr47427.c: New test. - * gcc.c-torture/compile/pr47428.c: New test. - -2011-01-25 Richard Guenther - - PR middle-end/47411 - * gcc.dg/torture/pr47411.c: New testcase. - -2011-01-25 Sebastian Pop - - * gfortran.dg/graphite/id-24.f: New. - * gfortran.dg/graphite/id-25.f: New. - -2011-01-25 Sebastian Pop - - * gfortran.dg/graphite/id-23.f: New. - -2011-01-25 Sebastian Pop - - * gfortran.dg/graphite/interchange-3.f90: Un-XFAILed. - -2011-01-25 Sebastian Pop - - * gcc.dg/graphite/block-0.c: Un-XFAILed. - * gcc.dg/graphite/block-1.c: Un-XFAILed. - * gcc.dg/graphite/block-7.c: Un-XFAILed. - * gcc.dg/graphite/block-8.c: Un-XFAILed. - * gcc.dg/graphite/interchange-12.c: Un-XFAILed. - * gcc.dg/graphite/interchange-14.c: Un-XFAILed. - * gcc.dg/graphite/interchange-15.c: Un-XFAILed. - * gcc.dg/graphite/interchange-8.c: Un-XFAILed. - * gcc.dg/graphite/interchange-mvt.c: Un-XFAILed. - -2011-01-25 Sebastian Pop - - * gcc.dg/graphite/block-0.c: Add documentation. - * gcc.dg/graphite/block-4.c: Same. - * gcc.dg/graphite/block-7.c: Same. - * gcc.dg/graphite/block-8.c: New. - * gcc.dg/graphite/interchange-1.c: Un-XFAILed. - * gcc.dg/graphite/interchange-11.c: Un-XFAILed. - * gcc.dg/graphite/interchange-12.c: Add documentation. - * gcc.dg/graphite/interchange-13.c: New. - * gcc.dg/graphite/interchange-14.c: New. - * gcc.dg/graphite/interchange-15.c: New. - * gcc.dg/graphite/interchange-8.c: Add documentation. - * gcc.dg/graphite/interchange-mvt.c: Same. - -2011-01-24 Michael Meissner - - PR target/47408 - * gcc.target/powerpc/altivec-11.c: Add explicit -mno-vsx. - * gcc.target/powerpc/altivec-14.c: Ditto. - * gcc.target/powerpc/altivec-33.c: Ditto. - * gcc.target/powerpc/altivec-types-1.c: Ditto. - * gcc.target/powerpc/altivec-types-2.c: Ditto. - * gcc.target/powerpc/altivec-types-3.c: Ditto. - * gcc.target/powerpc/altivec-types-4.c: Ditto. - * gcc.target/powerpc/ppc-vector-memcpy.c: Ditto. - * gcc.target/powerpc/ppc-vector-memset.c: Ditto. - * g++.dg/ext/altivec-15.C: Ditto. - * g++.dg/ext/altivec-types-1.C: Ditto. - * g++.dg/ext/altivec-types-2.C: Ditto. - * g++.dg/ext/altivec-types-3.C: Ditto. - * g++.dg/ext/altivec-types-4.C: Ditto. - -2011-01-24 Rainer Orth - - * lib/scanasm.exp (dg-function-on-line): Handle mips-sgi-irix*. - -2011-01-24 Rainer Orth - - * gfortran.dg/cray_pointers_2.f90: Avoid cycling through - optimization options. - -2011-01-24 Rainer Orth - - * gfortran.dg/array_constructor_33.f90: Use dg-timeout-factor 4. - - PR testsuite/45988 - * gfortran.dg/vect/fast-math-pr38968.f90: Use dg-timeout-factor 2. - -2011-01-23 Tobias Burnus - - PR fortran/47421 - * gfortran.dg/allocatable_scalar_12.f90: New. - -2011-01-23 Ira Rosen - - * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Expect - vectorization to be not profitable if peeling is used to - realign the memory access. - * gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c: Increase - loop bound to avoid loop unrolling. - * gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c: Likewise. - -2011-01-22 Jan Hubicka - - PR lto/47333 - * g++.dg/lto/pr47333.C: New file. - -2011-01-22 Jan Hubicka - - PR tree-optimization/43884 - PR lto/44334 - * gcc.dg/autopar/outer-2.c: Increase array size. - * gcc.dg/tree-ssa/ldist-pr45948.c: Update test. - -2011-01-22 Thomas Koenig - - PR fortran/38536 - * gfortran.dg/c_loc_tests_16.f90: New test. - -2011-01-22 Tobias Burnus - - PR fortran/47399 - * gfortran.dg/typebound_proc_19.f90: New. - -2011-01-21 Jeff Law - - PR tree-optimization/47053 - * g++.dg/pr47053.C: New test. - -2011-01-21 Jason Merrill - - PR c++/47041 - * g++.dg/cpp0x/constexpr-ctor6.C: New. - -2011-01-21 Jakub Jelinek - - PR c++/47388 - * g++.dg/cpp0x/range-for10.C: New test. - * g++.dg/template/for1.C: New test. - - PR middle-end/45566 - * g++.dg/tree-prof/partition3.C: New test. - - * g++.dg/tree-prof/tree-prof.exp: Fix a comment. - - PR rtl-optimization/47366 - * g++.dg/opt/pr47366.C: New test. - -2011-01-21 Jason Merrill - - PR c++/46552 - * g++.dg/cpp0x/constexpr-regress2.C: New. - - * g++.dg/cpp0x/constexpr-stmtexpr.C: New. - -2011-01-21 Jeff Law - - PR rtl-optimization/41619 - * gcc.dg/pr41619.c: New. - -2011-01-21 Jakub Jelinek - - PR tree-optimization/47355 - * g++.dg/opt/pr47355.C: New test. - -2011-01-21 Richard Guenther - - * gcc.dg/tree-ssa/pr47392.c: Make test non-static instead of - making main hot. - -2011-01-21 Richard Guenther - - PR tree-optimization/47365 - * gcc.dg/torture/pr47365.c: New testcase. - * gcc.dg/tree-ssa/pr47392.c: Likewise. - -2011-01-21 Rainer Orth - - * g++.dg/other/anon5.C: Skip on mips-sgi-irix*. - -2011-01-21 Jakub Jelinek - - PR tree-optimization/47391 - * gcc.dg/pr47391.c: New test. - -2011-01-21 Rainer Orth - - * g++.dg/template/char1.C: Use signed char. - -2011-01-21 Tobias Burnus - - PR fortran/47377 - * gfortran.dg/pointer_target_4.f90: New. - -2011-01-20 Michael Meissner - - PR target/47251 - * gcc.target/powerpc/pr47251.c: Fixup test so that it runs on - ILP32 system and not IP32. - -2011-01-20 Alexandre Oliva - - PR debug/46583 - * g++.dg/debug/pr46583.C: New. - -2011-01-20 Jakub Jelinek - - PR debug/47283 - * g++.dg/debug/pr47283.C: New test. - - PR testsuite/47371 - * gcc.target/i386/headmerge-1.c: Tighten up scan-assembler regex. - * gcc.target/i386/headmerge-2.c: Likewise. - -2011-01-20 Richard Guenther - - PR middle-end/47370 - * gcc.dg/torture/pr47370.c: New testcase. - -2011-01-20 Jakub Jelinek - - PR tree-optimization/46130 - * gcc.dg/pr46130-1.c: New test. - * gcc.dg/pr46130-2.c: New test. - -2011-01-19 Dodji Seketeli - - PR c++/47291 - * g++.dg/debug/dwarf2/template-params-10.C: New test. - -2011-01-19 Alexandre Oliva - - PR debug/46240 - * g++.dg/debug/pr46240.cc: New. - -2011-01-19 Jakub Jelinek - - PR c++/47303 - * g++.dg/template/anonunion1.C: New test. - - PR rtl-optimization/47337 - * gcc.c-torture/execute/pr47337.c: New test. - -2011-01-19 Ulrich Weigand - - PR testsuite/45342 - * gcc.dg/tls/thr-cse-1.c: Fix match on spu-*.*. - -2011-01-19 Ulrich Weigand - - PR tree-optimization/46021 - * gcc.dg/tree-ssa/20040204-1.c: Do not XFAIL on spu-*-*. - -2011-01-19 Jakub Jelinek - - PR tree-optimization/47290 - * g++.dg/torture/pr47290.C: New test. - -2011-01-18 Janus Weil - - PR fortran/47240 - * gfortran.dg/proc_ptr_comp_29.f90: New. - -2011-01-18 Dominique d'Humieres - - PR testsuite/41146 - * gcc.target/powerpc/asm-es-2.c: Adjust regular expression for - powerpc-apple-darwin9. - -2011-01-18 Jakub Jelinek - - PR rtl-optimization/47299 - * gcc.c-torture/execute/pr47299.c: New test. - -2011-01-17 Jason Merrill - - * g++.dg/cpp0x/constexpr-virtual.C: New. - -2011-01-17 Jakub Jelinek - - PR fortran/47331 - * gfortran.dg/gomp/pr47331.f90: New test. - -2011-01-17 Nicola Pero - - PR objc/47314 - * objc.dg/selector-warn-1.m: New. - * obj-c++.dg/selector-warn-1.mm: New. - -2011-01-17 Richard Sandiford - - * gcc.dg/tree-ssa/vrp51.c: Prefix each "bug." string with "vrp.". - Update dg-final accordingly. - -2011-01-17 Rainer Orth - - * g++.old-deja/g++.other/init19.C: Don't XFAIL on mips-sgi-irix*. - -2011-01-17 Andreas Krebbel - - * gcc.dg/guality/pr36728-1.c: Replace XFAIL for s390(x) with a - target check. - * gcc.dg/guality/pr36728-2.c: Likewise. - -2011-01-17 Richard Guenther - - PR tree-optimization/47313 - * g++.dg/torture/pr47313.C: New testcase. - -2011-01-17 H.J. Lu - - PR target/47318 - * gcc.target/i386/avx-vmaskmovpd-1.c: New. - * gcc.target/i386/avx-vmaskmovpd-2.c: Likewise. - * gcc.target/i386/avx-vmaskmovps-1.c: Likewise. - * gcc.target/i386/avx-vmaskmovps-1.c: Likewise. - - * gcc.target/i386/avx-vmaskmovpd-256-1.c (avx_test): Load mask - as __m256i. - * gcc.target/i386/avx-vmaskmovpd-256-2.c (avx_test): Likewise. - * gcc.target/i386/avx-vmaskmovps-256-1.c (avx_test): Likewise. - * gcc.target/i386/avx-vmaskmovps-256-2.c (avx_test): Likewise. - -2011-01-17 Richard Guenther - - PR tree-optimization/45967 - * gcc.dg/torture/pr45967-2.c: New testcase. - * gcc.dg/torture/pr45967-3.c: Likewise. - -2011-01-16 John David Anglin - - PR testsuite/47325 - * g++.dg/ext/pr47213.C: Require visibility. - -2011-01-16 Richard Sandiford - - * gcc.dg/fixed-point/composite-type.c: Pass -Wno-unused. - * gcc.dg/fixed-point/struct-union.c: Update error messages. - -2011-01-16 Richard Sandiford - - * gcc.c-torture/execute/20101011-1.c: Skip test for MIPS16 - Linux-based targets. - -2011-01-13 Jan Hubicka - - PR tree-optimization/47276 - * gcc.dg/pr47276.c: New testcase. - -2011-01-15 Giovanni Funchal - Jonathan Wakely - - PR c++/33558 - * g++.dg/other/pr33558.C: New. - * g++.dg/other/pr33558-2.C: New. - -2011-01-14 Martin Jambor - - PR tree-optimization/45934 - PR tree-optimization/46302 - * g++.dg/ipa/devirt-c-1.C: New test. - * g++.dg/ipa/devirt-c-2.C: Likewise. - * g++.dg/ipa/devirt-c-3.C: Likewise. - * g++.dg/ipa/devirt-c-4.C: Likewise. - * g++.dg/ipa/devirt-c-5.C: Likewise. - * g++.dg/ipa/devirt-c-6.C: Likewise. - * g++.dg/ipa/devirt-6.C: Likewise. - * g++.dg/ipa/devirt-d-1.C: Likewise. - * g++.dg/torture/pr45934.C: Likewise. - -2011-01-14 Jason Merrill - - * g++.dg/cpp0x/variadic105.C: New. - -2011-01-08 Dominique d'Humieres - Rainer Orth - - PR objc/45989 - * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c - (switchfiles): XFAIL objc.dg-struct-layout-encoding-1/t02[57-9]_main.m - execution tests on i?86-*-*, x86_64-*-* and - powerpc*-apple-darwin* && ilp32. - XFAIL objc.dg-struct-layout-encoding-1/t03[01]_main.m execution - tests on i?86-*-* and x86_64-*-*. - -2011-01-14 Richard Guenther - - PR tree-optimization/47280 - * g++.dg/opt/pr47280.C: New testcase. - -2011-01-14 Jason Merrill - - * g++.dg/cpp0x/constexpr-regress1.C: New. - - * g++.dg/ext/flexary2.C: New. - -2011-01-14 Richard Guenther - - PR middle-end/47281 - * gcc.dg/torture/pr47281.c: New testcase. - * gcc.dg/tree-ssa/pr46076.c: XFAIL. - -2011-01-14 Richard Guenther - - PR tree-optimization/47286 - * gcc.dg/tree-ssa/pr47286.c: New testcase. - -2011-01-13 Kai Tietz - - PR c++/47213 - * g++.dg/ext/pr47213.C: New. - -2011-01-13 Rainer Orth - - * gfortran.dg/cray_pointers_2.f90: Use dg-timeout-factor 4. - -2011-01-13 Tobias Burnus - Mikael Morin - - PR fortran/45848 - PR fortran/47204 - * gfortran.dg/select_type_20.f90: New. - * gfortran.dg/select_type_21.f90: New. - -2011-01-13 Michael Meissner - - PR target/47251 - * gcc.target/powerpc/pr47251.c: New file, test PR 47251 fix. - -2011-01-13 Andreas Krebbel - - * gcc.dg/guality/pr36728-1.c: Disable arg1/2 checks for s390 and s390x. - * gcc.dg/guality/pr36728-2.c: Likewise. - -2011-01-13 Dodji Seketeli - - PR debug/PR46973 - * g++.dg/debug/dwarf2/template-params-9.C: New test. - -2011-01-13 Andrey Belevantsev - - PR rtl-optimization/45352 - * gcc.dg/pr45352-3.c: New. - -2011-01-12 Rodrigo Rivas Costa - - * g++.dg/cpp0x/range-for4.C: Delete useless include and duplicated - comment. - * g++.dg/cpp0x/range-for8.C: New. - * g++.dg/cpp0x/range-for9.C: New. - -2011-01-12 Kai Tietz - - PR debug/47209 - * g++.dg/debug/pr47209.C: New. - -2011-01-12 Richard Guenther - - PR lto/47259 - * gcc.dg/lto/pr47259_0.c: New testcase. - * gcc.dg/lto/pr47259_1.c: Likewise. - -2011-01-12 Iain Sandoe - - * objc-obj-c++-shared/Object1.h: Add copyright header, update - comments. Add a TEST_SUITE_ADDITIONS category for GNU runtime. - Amend NeXT version to declare a TEST_SUITE_ADDITIONS carrying the - methods missing from the OBJC2 Object. - * objc-obj-c++-shared/Object1-implementation.h: Add copyright header. - Amend implementation to use a TEST_SUITE_ADDITIONS category for both - GNU and NeXT runtimes. - * objc-obj-c++-shared/Object1.mm: Remove redundant header, update - comments. - * objc-obj-c++-shared/Object1.m: Likewise. - * objc.dg/encode-3.m: Update header use. Amend to be API2 compatible. - * objc.dg/proto-qual-1.m: Likewise. - * obj-c++.dg/proto-lossage-3.mm: Likewise. - * obj-c++.dg/proto-qual-1.mm: Likewise. - -2011-01-12 Eric Botcazou - - PR testsuite/33033 - * gcc.dg/20061124-1.c: Pass -mcpu=v9 on the SPARC. - -2011-01-12 Nicola Pero - - Fixed the Objective-C++ testsuite and updated all tests. - * lib/obj-c++.exp (obj-c++_init): Declare and set - gcc_warning_prefix and gcc_error_prefix. - * obj-c++.dg/attributes/categ-attribute-2.mm: Fixed usage of - 'dg-warning', 'dg-message' and 'dg-error'. - * obj-c++.dg/class-extension-3.mm: Likewise. - * obj-c++.dg/class-protocol-1.mm: Likewise. - * obj-c++.dg/encode-7.mm: Likewise. - * obj-c++.dg/exceptions-3.mm: Likewise. - * obj-c++.dg/exceptions-5.mm: Likewise. - * obj-c++.dg/method-12.mm: Likewise. - * obj-c++.dg/method-13.mm: Likewise. - * obj-c++.dg/method-15.mm: Likewise. - * obj-c++.dg/method-16.mm: Likewise. - * obj-c++.dg/method-4.mm: Likewise. - * obj-c++.dg/method-8.mm: Likewise. - * obj-c++.dg/method-conflict-1.mm: Likewise. - * obj-c++.dg/method-conflict-2.mm: Likewise. - * obj-c++.dg/method-conflict-3.mm: Likewise. Also, removed FIXME - and uncommented second part of the testcase now that the testsuite - works correctly. - * obj-c++.dg/method-conflict-4.mm: Likewise. Also, removed FIXME - and uncommented second part of the testcase now that the testsuite - works correctly. - * obj-c++.dg/private-1.mm: Likewise. - * obj-c++.dg/proto-lossage-4.mm: Likewise. - * obj-c++.dg/syntax-error-7.mm: Likewise. - * obj-c++.dg/warn5.mm: Likewise. - * obj-c++.dg/property/at-property-14.mm: Likewise. - * obj-c++.dg/property/at-property-16.mm: Likewise, and removed - FIXME. - * obj-c++.dg/property/at-property-18.mm: Likewise. - * obj-c++.dg/property/at-property-20.mm: Likewise, and removed - FIXME. - * obj-c++.dg/property/at-property-21.mm: Likewise. - * obj-c++.dg/property/at-property-28.mm: Likewise. - * obj-c++.dg/property/at-property-5.mm: Likewise. - * obj-c++.dg/property/dynamic-2.mm: Likewise. - * obj-c++.dg/property/property-neg-3.mm: Likewise. - * obj-c++.dg/property/synthesize-11.mm: Likewise. - * obj-c++.dg/property/synthesize-6.mm: Likewise. - * obj-c++.dg/property/synthesize-8.mm: Likewise. - * obj-c++.dg/property/synthesize-9.mm: Likewise. - * obj-c++.dg/tls/diag-5.mm: Likewise. - * obj-c++.dg/ivar-invalid-type-1.mm: Removed FIXME and uncommented - dg-error, now matched correctly. - -2011-01-12 Nicola Pero - - * objc.dg/property/at-property-29.m: New. - * obj-c++.dg/property/at-property-29.mm: New. - -2011-01-11 Rainer Orth - - * go.test/go-test.exp (go-set-goarch): New proc. - (go-gc-tests): Use it. - -2011-01-11 Dodji Seketeli - - PR debug/46955 - * g++.dg/debug/dwarf2/template-params-8.C: New test. - -2011-01-11 Richard Henderson - - * gcc-dg/tree-ssa/vrp47.c: Disable for mn10300 as well. - -2011-01-11 Jan Hubicka - - PR lto/45721 - PR lto/45375 - * gcc.dg/lto/pr45721_1.c: New file. - * gcc.dg/lto/pr45721_0.c: New file. - -2011-01-11 Richard Guenther - - PR tree-optimization/46076 - * gcc.dg/tree-ssa/pr46076.c: New testcase. - -2011-01-11 Jeff Law - - * PR tree-optimization/47086 - * gcc.dg/pr47086.c: New test. - -2011-01-11 Jason Merrill - - PR c++/46658 - * g++.dg/template/new10.C: New. - - PR c++/45520 - * g++.dg/cpp0x/lambda/lambda-this3.C: New. - -2011-01-11 Iain Sandoe - - * objc-obj-c++-shared/next-mapping.h: Add copyright header. - Split type definitions and NSConstantString class into... - * objc-obj-c++-shared/objc-test-suite-types.h: New. - * objc-obj-c++-shared/nsconstantstring-class.h: New. - * objc-obj-c++-shared/nsconstantstring-class-impl.h: New. - * objc-obj-c++-shared/nsconstantstring-class-impl.m: New. - * objc-obj-c++-shared/nsconstantstring-class-impl.mm: New. - * objc-obj-c++-shared/next-abi.h: Add copyright header, minor update - to comments. - * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h: Adjust - encode defines for newer NeXT system headers. - * obj-c++.dg/template-4.mm: Adjust to use nsconstantstring headers. - * obj-c++.dg/torture/strings/string1.mm: Likewise. - * objc.dg/foreach-5.m: Likewise. - * objc.dg/foreach-2.m: Likewise. - * objc.dg/foreach-4.m: Likewise. - * objc.dg/torture/strings/string1.m: Likewise. - * objc.dg/torture/strings/string2.m: Likewise. - * objc.dg/torture/strings/string3.m: Likewise. - * objc.dg/torture/strings/string4.m: Likewise. - * obj-c++.dg/torture/strings/const-str-3.mm: Adjust to use type - header and stand alone. - * obj-c++.dg/strings/strings-2.mm: Likewise. - * objc.dg/torture/strings/const-str-3.m: Likewise. - * objc.dg/strings/strings-2.m: Likewise. - * objc.dg/strings/const-str-12b.m: Likewise. - -2011-01-12 Richard Guenther - - PR middle-end/32511 - * gcc.dg/attr-weak-1.c: Adjust. - -2011-01-11 Paul Thomas - - PR fortran/47051 - * gfortran.dg/realloc_on_assign_2.f03 : Modify 'test1' to be - standard compliant and comment. - -2011-01-10 Jan Hubicka - - PR lto/46083 - * gcc.dg/initpri3.c: New testcase. - -2011-01-10 H.J. Lu - - PR lto/47222 - * g++.dg/torture/stackalign/test-unwind.h (g_edi): Mark it - externally visible. - (g_esi): Likewise. - (g_ebx): Likewise. - (g_ebp): Likewise. - (g_esp): Likewise. - (g_ebp_save): Likewise. - (g_esp_save): Likewise. - -2011-01-10 Rainer Orth - - * g++.dg/ipa/pr46984.C: Add dg-require-effective-target lto. - -2011-01-10 Rainer Orth - - PR tree-optimization/46021 - * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL on alpha*-*-*, - i?86-*-*, x86_64-*-*. - -2011-01-10 Jeff Law - - * PR tree-optimization/47141 - * gcc.c-torture/compile/pr47141.c: New test. - -2011-01-10 Eric Botcazou - - PR testsuite/46230 - * gcc.dg/vect/vect-vfa-slp.c: Remove XFAIL. - * gcc.dg/vect/slp-23.c: Remove XFAIL for SLP. - * gcc.dg/vect/slp-35.c: Remove XFAILs. - * gcc.dg/vect/no-tree-pre-slp-29.c: Likewise. - - PR testsuite/46230 - * gcc.dg/vect/vect-peel-1.c (main): Prevent initialization loop from - being vectorized. Adjust dg-final pattern. Remove XFAIL. - * gcc.dg/vect/vect-peel-2.c (main): Likewise. - * gcc.dg/vect/vect-peel-4.c (main): Prevent initialization loop from - being vectorized. Adjust dg-final pattern. - - PR testsuite/46230 - * gcc.dg/vect/pr33804.c: XFAIL only for ilp32. - * gcc.dg/vect/slp-24.c: Likewise. - -2011-01-10 Dave Korn - - PR c++/47218 - * g++.dg/other/pr47218-1.C: New test file. - * g++.dg/other/pr47218.C: Likewise. - * g++.dg/other/pr47218.h: New supporting header. - -2011-01-09 Nicola Pero - - PR objc/47232 - * objc.dg/attributes/invalid-attribute-1.m: New. - * obj-c++.dg/attributes/invalid-attribute-1.mm: New. - -2011-01-09 Janus Weil - - PR fortran/47224 - * gfortran.dg/proc_ptr_comp_28.f90: New. - -2011-01-09 Iain Sandoe - - * obj-c++.dg/gnu-api-2-class.mm: Skip for Darwin < 9. - * obj-c++.dg/gnu-api-2-ivar.mm: Likewise. - * obj-c++.dg/gnu-api-2-method.mm: Likewise. - * obj-c++.dg/gnu-api-2-objc.mm: Likewise. - * obj-c++.dg/gnu-api-2-object.mm: Likewise. - * obj-c++.dg/gnu-api-2-property.mm: Likewise. - * obj-c++.dg/gnu-api-2-protocol.mm: Likewise. - * obj-c++.dg/gnu-api-2-sel.mm: Likewise. - * objc.dg/gnu-api-2-class.m: Likewise. - * objc.dg/gnu-api-2-ivar.m: Likewise. - * objc.dg/gnu-api-2-method.m: Likewise. - * objc.dg/gnu-api-2-objc.m: Likewise. - * objc.dg/gnu-api-2-object.m: Likewise. - * objc.dg/gnu-api-2-property.m: Likewise. - * objc.dg/gnu-api-2-protocol.m: Likewise. - * objc.dg/gnu-api-2-sel.m: Likewise. - -2011-01-09 Iain Sandoe - - * objc.dg/foreach-1.m: Skip for Darwin < 9. - * objc.dg/objc-foreach-4.m: Likewise. - * objc.dg/objc-foreach-5.m: Skip for Darwin < 9, adjust headers. - * objc.dg/foreach-2.m: Skip for Darwin < 9, return self from init. - * objc.dg/foreach-4.m: Likewise. - * objc.dg/foreach-5.m: Likewise. - * objc.dg/foreach-3.m: Return self from init. - -2011-01-09 Thomas Koenig - - PR fortran/38536 - * gfortran.dg/iso_c_binding_c_loc_char_1.f03: New test. - -2011-01-09 Janus Weil - - PR fortran/46313 - * gfortran.dg/class_35.f90: New. - -2011-01-08 Iain Sandoe - - * objc.dg/foreach-1.m: Add "-Wall" to flags. - -2011-01-08 Nicola Pero - - PR objc/47078 - * objc.dg/invalid-method-2.m: New. - * obj-c++.dg/invalid-method-2.mm: New. - -2011-01-08 Paul Thomas - - PR fortran/46896 - * gfortran.dg/transpose_optimization_2.f90 : New test. - -2011-01-08 Jan Hubicka - - PR tree-optmization/46469 - * g++.dg/torture/pr46469.C: New testcase. - -2011-01-08 Iain Sandoe - - * objc-obj-c++-shared/next-mapping.h: Move code and definitions for - emulation of libobjc-gnu structure layout functionality to .. - * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h: New. - * objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h: New. - * objc/execute/bf-common.h: Adjust headers. - * objc/execute/bf-1.m: Likewise. - * objc/execute/bf-2.m: Likewise. - * objc/execute/bf-3.m: Likewise. - * objc/execute/bf-4.m: Likewise. - * objc/execute/bf-5.m: Likewise. - * objc/execute/bf-6.m: Likewise. - * objc/execute/bf-7.m: Likewise. - * objc/execute/bf-8.m: Likewise. - * objc/execute/bf-9.m: Likewise. - * objc/execute/bf-10.m: Likewise. - * objc/execute/bf-11.m: Likewise. - * objc/execute/bf-12.m: Likewise. - * objc/execute/bf-13.m: Likewise. - * objc/execute/bf-14.m: Likewise. - * objc/execute/bf-15.m: Likewise. - * objc/execute/bf-16.m: Likewise. - * objc/execute/bf-17.m: Likewise. - * objc/execute/bf-18.m: Likewise. - * objc/execute/bf-19.m: Likewise. - * objc/execute/bf-20.m: Likewise. - * objc/execute/bf-21.m: Likewise. - * objc/execute/bycopy-3.m: Adjust headers, add next-specific code for - objc_get_type_qualifiers (). - -2011-01-08 Thomas Koenig - - PR fortran/45777 - * gfortran.dg/dependency_39.f90: New test. - -2011-01-07 Jan Hubicka - - Get builtins tests ready for linker plugin. - * gcc.c-torture/execute/builtins/memcpy-chk.c (s2,s3,l1): Mark volatile. - * gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memcpy, my_bcopy, - my_memset, my_bzero): Mark used. - * gcc.c-torture/execute/builtins/memset-chk.c (l1, l3): Mark volatile. - * gcc.c-torture/execute/builtins/memmove-chk.c (s1,s2,s3,l1): Mark - volatile. - * gcc.c-torture/execute/builtins/mempcpy-chk.c (s2,s3,l1): Mark - volatile. - -2011-01-07 Jan Hubicka - - PR tree-optimization/46367 - * g++.dg/torture/pr46367.C: New file. - -2011-01-07 Jakub Jelinek - - PR target/47201 - * gcc.dg/pr47201.c: New test. - - PR bootstrap/47187 - * gcc.dg/tree-prof/pr47187.c: New test. - -2011-01-07 Tobias Burnus - - PR fortran/41580 - * gfortran.dg/extends_type_of_3.f90: New. - -2011-01-07 Kai Tietz - - * g++.dg/ext/dllexport-MI1.C: Adjust test. - * g++.dg/ext/dllimport-MI1.C: Likewise. - * g++.dg/ext/dllimport1.C: Add test for x86_64-*-mingw*. - * g++.dg/ext/dllimport10.C: Likewise. - * g++.dg/ext/dllimport11.C: Likewise. - * g++.dg/ext/dllimport12.C: Likewise. - * g++.dg/ext/dllimport13.C: Likewise. - * g++.dg/ext/dllimport2.C: Likewise. - * g++.dg/ext/dllimport3.C: Likewise. - * g++.dg/ext/dllimport4.C: Likewise. - * g++.dg/ext/dllimport5.C: Likewise. - * g++.dg/ext/dllimport6.C: Likewise. - * g++.dg/ext/dllimport8.C: Likewise. - * g++.dg/ext/dllimport9.C: Likewise. - * g++.dg/ext/selectany2.C: Enable test for x86_64-*-mingw* - targets, too. Additionally enable test for i?86-*-mingw*. - * g++.dg/ext/selectany1.C: Likewise. - Remove guard variable check. - -2011-01-07 Janus Weil - - PR fortran/47189 - PR fortran/47194 - * gfortran.dg/storage_size_3.f08: Extended. - -2011-01-07 Jakub Jelinek - - PR c++/47022 - * g++.dg/template/stdarg1.C: New test. - -2011-01-06 Daniel Franke - - PR fortran/47195 - * gfortran.dg/interface_33.f90: Fixed dg-error declarations. - * gfortran.dg/defined_operators_1.f90: Split the subroutine - from the interface of functions to not hide the errors that - shall be tested. - -2011-01-06 Jan Hubicka - - * gcc.dg/lto/pr47188_0.c: New testcase. - * gcc.dg/lto/pr47188_1.c: New testcase. - -2011-01-06 Daniel Franke - - PR fortran/33117 - PR fortran/46478 - * gfortran.dg/interface_33.f90: New test. - -2011-01-06 Jakub Jelinek - - PR c/47150 - * gcc.c-torture/compile/pr47150.c: New test. - -2011-01-06 Ira Rosen - - PR tree-optimization/47139 - * gcc.dg/vect/pr47139.c: New test. - -2011-01-05 Janus Weil - - PR fortran/47180 - * gfortran.dg/extends_type_of_2.f03: New. - -2011-01-05 Ulrich Weigand - - * gcc.dg/stack-usage-1.c (SIZE): Provide proper value for __SPU__. - -2011-01-05 Eric Botcazou - - * gnat.dg/opt14.adb: New test. - -2011-01-05 Thomas Koenig - - PR fortran/46017 - * gfortran.dg/allocate_error_2.f90: New test. - -2011-01-05 Janus Weil - - PR fortran/47024 - * gfortran.dg/storage_size_3.f08: New. - -2011-01-04 Jerry DeLisle - - PR libgfortran/47154 - * gfortran.dg/namelist_68.f90: New test. - -2011-01-04 Eric Botcazou - - * gnat.dg/unchecked_convert8.ad[sb]: New test. - -2011-01-04 Janus Weil - - PR fortran/46448 - * gfortran.dg/class_34.f90: New. - -2011-01-04 Ulrich Weigand - - * gcc.dg/torture/builtin-cproj-1.c: On the __SPU__ target, do not - use __builtin_inff. Skip all single-precision tests that require - Infinity. - -2011-01-03 Ulrich Weigand - - * g++.dg/torture/pr46111.C: Add dg-require-effective-target pthread. - -2011-01-03 Jakub Jelinek - - PR tree-optimization/47148 - * gcc.c-torture/execute/pr47148.c: New test. - - PR tree-optimization/47155 - * gcc.c-torture/execute/pr47155.c: New test. - - PR rtl-optimization/47157 - * gcc.c-torture/compile/pr47157.c: New test. - -2011-01-03 Ulrich Weigand - - * gcc.dg/torture/vector-shift2.c (schar): Define. - (main): Always use schar or uchar instead of plain "char" to avoid - dependencies on implementation-defined char signedness. - -2011-01-03 Martin Jambor - - PR tree-optimization/46801 - * gnat.dg/pack9.adb: Remove xfail. - -2011-01-03 Martin Jambor - - PR tree-optimization/46984 - * g++.dg/ipa/pr46984.C: New test. - -2011-01-02 Janus Weil - - PR fortran/46408 - * gfortran.dg/class_19.f03: Adjust counting of __builtin_free. - -2011-01-02 Jakub Jelinek - - PR tree-optimization/47140 - * gcc.c-torture/compile/pr47140.c: New test. - - PR rtl-optimization/47028 - * gcc.dg/pr47028.c: New test. - -2011-01-02 Nicola Pero - - * objc.dg/protocol-forward-1.m: Removed TODO. - * objc.dg/protocol-forward-2.m: New. - * obj-c++.dg/protocol-forward-2.mm: Removed TODO. - * obj-c++.dg/protocol-forward-2.mm: New. - -2011-01-01 Kai Tietz - - PR target/38662 - * g++.dg/eh/pr38662.C: New testcase. - -2011-01-01 Chung-Lin Tang - - * gcc.target/arm/vfp-1.c (test_ldst): Fixed fsts test to - scan for newline '\n'. - -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gcc/testsuite/ChangeLog-2011 b/gcc/testsuite/ChangeLog-2011 new file mode 100644 index 0000000..b1b7e37 --- /dev/null +++ b/gcc/testsuite/ChangeLog-2011 @@ -0,0 +1,15870 @@ +2011-12-31 Paolo Carlini + + PR c++/51397 + * g++.dg/cpp0x/static_assert6.C: New. + +2011-12-31 Uros Bizjak + + * gcc.dg/tree-ssa/vrp47: Pass -march=i586 for ia32 target. + +2011-12-31 Thomas König + + PR fortran/51502 + * lib/gcc-dg.exp (scan-module-absence): New function. + * gfortran.dg/implicit_pure_2.f90: New test. + +2011-12-30 Paolo Carlini + + PR c++/51316 + * g++.dg/cpp0x/alignof4.C: New. + +2011-12-29 Michael Meissner + + PR testsuite/51702 + * gcc.dg/scal-to-vec1.c: If 32-bit powerpc-linux, add the + -mabi=altivec option, which suppresses a warning message about + passing vectors by reference. The extra warning causes some tests + to fail. + * gcc.dg/scal-to-vec2.c: Likewise. + * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Likewise. + * gcc.dg/pr35442.c: Likewise. + * gcc.dg/vector-compare-1.c: Likewise. + * gcc.dg/vector-compare-2.c: Likewise. + * gcc.dg/torture/pr36891.c: Likewise. + +2012-12-29 Kai Tietz + + * g++.dg/abi/bitfield3.C: Make sure test runs + for windows targets without activated ms-bitfields option. + + * g++.old-deja/g++.brendan/new3.C: Adjust test for mingw + targets to use static-version. + * g++.old-deja/g++.abi/cxa_vec.C: Likewise. + * g++.old-deja/g++.abi/arraynew.C: Likewise. + * g++.old-deja/g++.eh/new1.C: Likewise. + * g++.old-deja/g++.eh/new2.C: Likewise. + +2011-12-29 Thomas Koenig + + * gfortran.dg/function_optimize_9.f90: New test. + +2011-12-27 Fabien Chêne + + PR c++/23211 + * g++.dg/template/using18.C: New. + * g++.dg/template/using19.C: New. + * g++.dg/template/nested3.C: Remove dg-message at instantiation. + * g++.dg/template/crash13.C: Likewise. + +2011-12-28 Michael Meissner + + PR target/51623 + * gcc.target/powerpc/pr51623.c: New file. + +2011-12-28 Uros Bizjak + + * gcc.dg/torture/pr50396.c: Use dg-add-options ieee. + +2011-12-27 Paolo Carlini + + PR c++/51547 + * g++.dg/cpp0x/pr51547.C: New. + +2011-12-27 Eric Botcazou + + * gcc.c-torture/execute/20111227-1.c: New test. + +2011-12-25 Jan Hubicka + + PR middle-end/48641 + * gcc.dg/compile/pr48641.c: New file. + +2011-12-26 Joey Ye + + PR middle-end/51200 + * gcc.dg/volatile-bitfields-2.c: New test. + +2011-12-23 Jason Merrill + + PR c++/51507 + * g++.dg/cpp0x/variadic121.C: New. + +2011-12-23 Uros Bizjak + + * gcc.dg/vect/fast-math-pr35982.c: Fix parenthesis in target selectors. + +2011-12-23 Dmitry Plotnikov + + * gcc.target/arm/vect-vcvt.c: New test. + * gcc.target/arm/vect-vcvtq.c: New test. + + * gcc.dg/vect/fast-math-pr35982.c: Added vect_strided2 alternative + in final check. + + * lib/target-supports.exp (check_effective_target_vect_intfloat_cvt): + True for ARM NEON. + (check_effective_target_vect_uintfloat_cvt): Likewise. + (check_effective_target_vect_floatuint_cvt): Likewise. + (check_effective_target_vect_floatint_cvt): Likewise. + +2011-12-23 Richard Guenther + + PR rtl-optimization/50396 + * gcc.dg/torture/pr50396.c: New testcase. + +2011-12-22 Bin Cheng + + PR tree-optimization/43491 + * gcc.dg/tree-ssa/pr43491.c: New test. + +2011-12-22 John David Anglin + + PR testsuite/50722 + * gcc.dg/pr49994-3.c: Skip on ia64-*-*-*, hppa*-*-* and *-*-hpux*. + +2011-12-22 Richard Guenther + + PR lto/51650 + * g++.dg/lto/pr51650-1_0.C: New testcase. + * g++.dg/lto/pr51650-2_0.C: Likewise. + +2011-12-21 Richard Earnshaw + + PR target/51643 + * gcc.target/arm/sibcall-2.c: New test. + +2011-12-22 Uros Bizjak + + PR testsuite/51645 + * g++.dg/cpp0x/alias-decl-debug-0.C: Add dg-skip-if. + +2011-12-21 Uros Bizjak + + * gcc.dg/pr50038.c: Move to ... + * gcc.target/i386/pr50038.c: ... here. Test on all targets. + +2011-12-21 Jason Merrill + + PR c++/51611 + * g++.dg/cpp0x/nsdmi-virtual1.C: New. + +2011-12-21 Paolo Carlini + + PR c++/51305 + * g++.dg/cpp0x/constexpr-noexcept6.C: New. + +2011-12-21 Jakub Jelinek + + PR middle-end/51644 + PR middle-end/51647 + * gcc.dg/pr51644.c: New test. + * g++.dg/warn/Wreturn-4.C: New test. + +2011-12-21 Michael Zolotukhin + + * gcc.dg/vect/no-section-anchors-vect-31.c: Adjust array size and test + diag-scans to fix fail on AVX. + * gcc.dg/vect/no-section-anchors-vect-36.c: Ditto. + * gcc.dg/vect/no-section-anchors-vect-64.c: Ditto. + * gcc.dg/vect/no-section-anchors-vect-66.c: Ditto. + * gcc.dg/vect/no-section-anchors-vect-68.c: Ditto. + * gcc.dg/vect/no-section-anchors-vect-69.c: Ditto. + * gcc.dg/vect/no-vfa-vect-dv-2.c: Adjust dg-scans. + * gcc.dg/vect/pr45752.c: Ditto. + * gcc.dg/vect/slp-perm-4.c: Ditto. + * gcc.dg/vect/slp-perm-9.c: Ditto. + * gcc.dg/vect/vect-33.c: Ditto. + * gcc.dg/vect/vect-35.c: Ditto. + * gcc.dg/vect/vect-6-big-array.c: Ditto. + * gcc.dg/vect/vect-6.c: Ditto. + * gcc.dg/vect/vect-91.c: Ditto. + * gcc.dg/vect/vect-all-big-array.c: Ditto. + * gcc.dg/vect/vect-all.c: Ditto. + * gcc.dg/vect/vect-multitypes-1.c: Ditto. + * gcc.dg/vect/vect-outer-4c.c: Ditto. + * gcc.dg/vect/vect-outer-5.c: Ditto. + * gcc.dg/vect/vect-over-widen-1.c: Ditto. + * gcc.dg/vect/vect-over-widen-3.c: Ditto. + * gcc.dg/vect/vect-over-widen-4.c: Ditto. + * gcc.dg/vect/vect-peel-1.c: Ditto. + * gcc.dg/vect/vect-peel-2.c: Ditto. + * gcc.dg/vect/vect-peel-3.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1b.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1c.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-2b.c: Ditto. + * gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c: Ditto. + * lib/target-supports.exp (check_avx_available): New function. + (check_effective_target_vect_sizes_32B_16B): Ditto. + (check_prefer_avx128): Ditto. + (check_effective_target_vect_aligned_arrays): Add handling of AVX. + (check_effective_target_vect_multiple_sizes): Ditto. + +2011-12-21 Enkovich Ilya + + PR target/50038 + * gcc.dg/pr50038.c: New test. + +2011-12-20 Paolo Carlini + + PR c++/51621 + * g++.dg/cpp0x/constexpr-ice5.C: New. + +2011-12-20 Joseph Myers + + * gcc.dg/c11-version-1.c, gcc.dg/c11-version-2.c, + gcc.dg/c94-version-1.c, gcc.dg/c99-version-1.c, + gcc.dg/gnu11-version-1.c: New tests. + +2011-12-20 Bernd Schmidt + + PR middle-end/51200 + * gcc.target/arm/volatile-bitfields-4.c: New test. + * c-c++-common/abi-bf.c: New test. + +2011-12-20 Dodji Seketeli + + PR debug/49951 + * g++.dg/gcov/gcov-2.C: Adjust. + +2011-12-20 Paolo Carlini + + PR c++/51612 + * g++.dg/cpp0x/constexpr-ice4.C: New. + +2011-12-19 Paolo Carlini + + PR c++/51328 + * g++.dg/template/crash109.C: New. + +2011-12-19 Jason Merrill + + PR c++/51530 + * g++.dg/cpp0x/nullptr26.C: New. + +2011-12-19 Richard Sandiford + + * gcc.target/mips/mult-1.c: Require -O2. + +2011-12-19 Richard Sandiford + + * gcc.target/mips/ext-2.c: Add NOMIPS16. + +2011-12-19 Jason Merrill + + PR c++/51526 + * g++.dg/cpp0x/constexpr-delegating.C: New. + +2011-12-19 Sandra Loosemore + Tom de Vries + + PR rtl-opt/50380 + * gcc.c-torture/compile/pr50380.c: New testcase. + +2011-12-19 Tobias Burnus + + PR fortran/51605 + * gfortran.dg/block_10.f90: New. + +2011-12-19 Jason Merrill + + PR c++/51553 + * g++.dg/cpp0x/initlist64.C: New. + + PR c++/51228 + * c-c++-common/transparent-union-1.c: New. + +2011-12-19 Eric Botcazou + + PR tree-optimization/51580 + * gnat.dg/specs/loop_optimization1.ads: New test. + * gnat.dg/specs/loop_optimization1_pkg.ad[sb]: New helper. + +2011-12-19 Richard Guenther + + PR lto/51573 + * gcc.dg/lto/20111207-2_0.c: Adjust. + * g++.dg/lto/pr51573-1_0.C: New testcase. + +2011-12-19 Jakub Jelinek + + PR c++/51619 + * g++.dg/cpp0x/pr51619.C: New test. + +2011-12-19 Tobias Burnus + + PR fortran/51605 + * gfortran.dg/select_type_25.f90: New. + +2011-12-19 Martin Jambor + + PR tree-optimization/51583 + * gcc.dg/tree-ssa/pr51583.c: New test. + +2011-12-19 Jakub Jelinek + + PR tree-optimization/51596 + * g++.dg/opt/pr51596.C: New test. + + PR middle-end/51590 + PR tree-optimization/51606 + * gcc.dg/vect/pr51590.c: New test. + +2011-12-19 Richard Guenther + + PR lto/51572 + * g++.dg/lto/pr51572-2_0.C: New testcase. + +2011-12-19 Dodji Seketeli + + PR c++/51477 + * g++.dg/cpp0x/nsdmi6.C: New test. + +2011-12-19 Tobias Burnus + + * gfortran.dg/coarray_poly_3.f90: New. + * coarray/poly_run_1.f90: Enable some previously commented code. + +2011-12-19 Jason Merrill + + PR c++/51489 + * g++.dg/cpp0x/constexpr-ptrsub.C: New. + +2011-12-18 Hans-Peter Nilsson + + * gcc.dg/pr51491-2.c: Fix "cleanup-treee-dump" typo. + +2011-12-17 Jason Merrill + + PR c++/51588 + * g++.dg/parse/enum7.C: New. + + PR c++/51586 + * g++.dg/lookup/nested2.C: New. + + PR c++/51587 + * g++.dg/parse/enum6.C: New. + +2011-12-17 Tom de Vries + + PR tree-optimization/51491 + * gcc.dg/pr51491.c: New test. + * gcc.dg/pr51491-2.c: Same. + +2011-12-16 Jason Merrill + + PR c++/51416 + * g++.dg/cpp0x/auto31.C: New. + +2011-12-16 Ian Lance Taylor + + PR middle-end/51592 + * gcc.dg/20111216-1.c: New test. + +2011-12-16 Jason Merrill + + PR c++/51461 + * g++.dg/init/static4.C: New. + +2011-12-16 Jason Merrill + + PR c++/51331 + * g++.dg/init/value10.C: New. + +2011-12-16 Jakub Jelinek + + PR testsuite/50803 + * gcc.dg/ipa/inline-5.c: XFAIL for 32-bit hppa. + + PR tree-optimization/51575 + * g++.dg/opt/pr51575.C: New test. + + PR debug/51557 + * gcc.dg/pr51557.c: New test. + +2011-12-16 Richard Guenther + + PR lto/51572 + * gcc.dg/lto/pr51572-1_0.c: New testcase. + +2011-12-15 Jason Merrill + + PR c++/51458 + * g++.dg/ext/desig4.C: New. + +2011-12-15 Paul Thomas + + * gfortran.dg/class_array_3.f03: Remove explicit indexing of + A%disp() to use scalarizer. + * gfortran.dg/class_array_9.f03: New. + +2011-12-15 Jakub Jelinek + + * gcc.dg/vect/vect-sdivmod-1.c: New test. + + PR c++/51463 + * g++.dg/cpp0x/pr51463.C: New test. + + PR c/51360 + * c-c++-common/gomp/pr51360.c: New test. + * g++.dg/gomp/pr51360.C: New test. + + PR middle-end/49806 + * gcc.dg/tree-ssa/vrp47.c: Add -fdump-tree-dom2 to dg-options. + Check for x_? & y in dom2 dump and xfail the check in dom1 dump. + + PR tree-optimization/51117 + * g++.dg/opt/pr51117.C: New test. + +2011-12-15 Romain Geissler + + * gcc.c-torture/execute/builtins/chk.h (stpncpy, stpncpy_disallowed): + New definitions. + * gcc.c-torture/execute/builtins/lib/chk.c (stpncpy_disallowed): + Likewise. + (stpncpy, __stpncpy_chk): New functions. + * gcc.c-torture/execute/builtins/stpncpy-chk-lib.c: New file. + * gcc.c-torture/execute/builtins/stpncpy-chk.c: Likewise. + +2011-12-15 Richard Guenther + + PR lto/51567 + * g++.dg/lto/pr51567-1_0.C: New testcase. + +2011-12-15 Dodji Seketeli + + PR c++/51473 + * g++.dg/cpp0x/auto30.C: New test. + +2011-12-15 Tobias Burnus + + * gfortran.dg/coarray/poly_run_3.f90: New. + * gfortran.dg/coarray/poly_run_2.f90: Enable comment-out test. + +2011-12-15 Richard Guenther + + PR lto/51564 + * g++.dg/lto/pr51564-1_0.C: New testcase. + +2011-12-15 Jonathan Wakely + + PR libstdc++/51365 + * g++.dg/ext/is_final.C: New. + +2012-12-15 Richard Guenther + + PR lto/48508 + * g++.dg/lto/pr48508-1_0.C: New testcase. + * g++.dg/lto/pr48508-1_1.C: Likewise. + +2011-12-14 Jason Merrill + + PR c++/51554 + * g++.dg/init/constant1.C: New. + + PR c++/51248 + * g++.dg/other/enum2.C: New. + +2011-12-14 Dodji Seketeli + + PR c++/51475 + * g++.dg/cpp0x/initlist63.C: New test. + +2011-12-14 Georg-Johann Lay + + PR target/50931 + * gcc.target/avr/torture/int24-mul.c: New. + +2011-12-14 Dodji Seketeli + + PR c++/51476 + * g++.dg/cpp0x/ptrmem-cst-arg1.C: New test. + +2011-12-13 Jason Merrill + + PR c++/51406 + PR c++/51161 + * g++.dg/cpp0x/rv-cast3.C: New. + * g++.dg/cpp0x/rv-cast4.C: New. + +2011-12-13 Paolo Carlini + + PR c++/51464 + * g++.dg/cpp0x/lambda/lambda-ice6.C: New. + +2011-12-13 Andrew Pinski + Adam Nemet + + * gcc.target/mips/mips.exp (mips_option_groups): Fix debug. Add + -fdump-* options. + * gcc.target/mips/octeon2-pipe-1.c: New testcase. + * gcc.target/mips/octeon-pipe-1.c: New testcase. + +2011-12-11 Fabien Chêne + + PR c++/14258 + * g++.dg/template/using16.C: New. + * g++.dg/template/using17.C: New. + +2011-12-13 Martin Jambor + + PR tree-optimization/51362 + * gcc.dg/ipa/pr51362.c: New test. + +2011-12-13 Uros Bizjak + + PR testsuite/51524 + * gcc.target/i386/bmi2-mulx32-1.c (gen_mulx): Add attribute regparm(2). + * gcc.target/i386/bmi2-mulx32-2.c (calc_mulx_u32): Ditto. + +2011-12-13 Richard Guenther + + PR lto/48354 + * g++.dg/lto/pr48354-1_0.C: New testcase. + +2011-12-13 Richard Guenther + + PR tree-optimization/51519 + * gcc.dg/pr51519.c: New testcase. + +2011-12-13 Richard Guenther + + * gcc.dg/lto/20111213-1_0.c: New testcase. + +2011-12-13 Eric Botcazou + + * gnat.dg/vect1.ad[sb]: Add more tests. + * gnat.dg/vect2.ad[sb]: Likewise. + * gnat.dg/vect3.ad[sb]: Likewise. + * gnat.dg/vect4.ad[sb]: Likewise. + * gnat.dg/vect5.ad[sb]: Likewise. + * gnat.dg/vect6.ad[sb]: Likewise. + +2011-12-12 Jakub Jelinek + + PR rtl-optimization/51495 + * gcc.c-torture/compile/pr51495.c: New test. + + PR tree-optimization/51481 + * gcc.dg/pr51481.c: New test. + +2011-12-12 Georg-Johann Lay + + PR tree-optimization/45830 + * gcc.c-torture/execute/pr45830.c: Move from here to... + * gcc.dg/torture/pr45830.c: ...this new file. Add dg-do and + dg-additional-options magic. + +2011-12-12 Janne Blomqvist + + * gfortran.dg/nested_modules_2.f90: Tighten test. + +2011-12-12 Eric Botcazou + + * gcc.c-torture/execute/20111212-1.c: New test. + +2011-12-12 Jakub Jelinek + + PR testsuite/51511 + * gcc.dg/pr45819.c: Add -w to dg-options. + +2011-12-12 Torvald Riegel + + * g++.dg/tm/noexcept-1.C: New test. + * g++.dg/tm/noexcept-2.C: New test. + * g++.dg/tm/noexcept-3.C: New test. + * g++.dg/tm/noexcept-4.C: New test. + * g++.dg/tm/noexcept-5.C: New test. + +2011-12-12 Torvald Riegel + + * c-c++-common/tm/20111206.c: New test. + +2011-12-12 Richard Guenther + + PR lto/51262 + * g++.dg/opt/pr51262.C: New testcase. + +2011-12-12 Revital Eres + + PR rtl-optimization/47013 + * gcc.dg/sms-2.c: Change scan-tree-dump-times and the code itself + to preserve the function. + * gcc.dg/sms-6.c: Add --param sms-min-sc=1. Add dg-options for + powerpc*-*-*. Avoid superfluous spaces in dg-final. + * gcc.dg/sms-3.c: Add --param sms-min-sc=1 and + -fmodulo-sched-allow-regmoves flags. + * gcc.dg/sms-7.c: Likewise. Remove dg-final for powerpc*-*-* + and avoid superfluous spaces in dg-final for spu-*-*. + * gcc.dg/sms-4.c: Add dg-options for powerpc*-*-*. + * gcc.dg/sms-8.c: Add --param sms-min-sc=1. Add dg-options and + change scan-rtl-dump-times for powerpc*-*-*. + * gcc.dg/sms-5.c: Add --param sms-min-sc=1 flag, remove + powerpc*-*-* from dg-final and avoid superfluous spaces in dg-final. + * gcc.dg/sms-9.c: Remove -fno-auto-inc-dec. + +2011-12-11 Jakub Jelinek + + PR tree-optimization/51485 + * g++.dg/vect/pr51485.cc: New test. + +2011-12-11 Tobias Burnus + + PR fortran/50923 + * gfortran.dg/warn_function_without_result_2.f90: New. + +2011-12-11 Paul Thomas + Tobias Burnus + + PR fortran/41539 + PR fortran/43214 + PR fortran/43969 + PR fortran/44568 + PR fortran/46356 + PR fortran/46990 + PR fortran/49074 + * gfortran.dg/class_array_1.f03: New. + * gfortran.dg/class_array_2.f03: New. + * gfortran.dg/class_array_3.f03: New. + * gfortran.dg/class_array_4.f03: New. + * gfortran.dg/class_array_5.f03: New. + * gfortran.dg/class_array_6.f03: New. + * gfortran.dg/class_array_7.f03: New. + * gfortran.dg/class_array_8.f03: New. + * gfortran.dg/coarray_poly_1.f90: New. + * gfortran.dg/coarray_poly_2.f90: New. + * gfortran.dg/coarray/poly_run_1.f90: New. + * gfortran.dg/coarray/poly_run_2.f90: New. + * gfortran.dg/class_to_type_1.f03: New. + * gfortran.dg/type_to_class_1.f03: New. + * gfortran.dg/typebound_assignment_3.f03: Remove the error. + * gfortran.dg/auto_dealloc_2.f90: Occurences of __builtin_free now 2. + * gfortran.dg/class_19.f03: Occurences of __builtin_free now 8. + +2011-12-11 Thomas Koenig + + PR fortran/50690 + * gfortran.dg/gomp/workshare2.f90: New test. + * gfortran.dg/gomp/workshare3.f90: New test. + +2011-12-11 Eric Botcazou + + * gnat.dg/specs/elab3.ads: New test. + +2011-12-10 Richard Henderson + + * gcc.target/powerpc/altivec-perm-1.c: New. + * gcc.target/powerpc/altivec-perm-2.c: New. + * gcc.target/powerpc/altivec-perm-4.c: New. + +2011-12-10 Joern Rennecke + + * gcc.target/epiphany/interrupt.c: Add dg-options "-g". + Add a scan-assembler-time clause to test for the interupt vector jump. + (f): Rename to ... + (dma0_handler): ... this. + +2011-12-10 Nathan Sidwell + + PR gcov-profile/51449 + * g++.dg/gcov/gcov-14.C: New. + +2011-12-09 Eric Botcazou + + * gcc.c-torture/compile/20111209-1.c: New test. + +2011-12-09 Jason Merrill + + PR c++/51151 + * g++.dg/warn/Woverflow-4.C: New. + +2011-12-09 Dodji Seketeli + + PR c++/51289 + * g++.dg/cpp0x/alias-decl-17.C: New test. + +2011-12-09 Michael Meissner + + * gcc.target/powerpc/recip-5.c: Disable running on any system that + does not support VSX. + + * gcc.target/powerpc/ppc-target-4.c: New file to test target + specific functions enabling target specific builtins. + +2011-12-09 Michael Zolotukhin + + * gcc.dg/vect/slp-13.c: Array size increase reverted. + * gcc.dg/vect/slp-24.c: Ditto. + * gcc.dg/vect/slp-3.c: Ditto. + * gcc.dg/vect/slp-34.c: Ditto. + * gcc.dg/vect/slp-4.c: Ditto. + * gcc.dg/vect/slp-cond-2.c: Ditto. + * gcc.dg/vect/slp-multitypes-11.c: Ditto. + * gcc.dg/vect/vect-1.c: Ditto. + * gcc.dg/vect/vect-10.c: Ditto. + * gcc.dg/vect/vect-105.c: Ditto. + * gcc.dg/vect/vect-112.c: Ditto. + * gcc.dg/vect/vect-15.c: Ditto. + * gcc.dg/vect/vect-2.c: Ditto. + * gcc.dg/vect/vect-31.c: Ditto. + * gcc.dg/vect/vect-32.c: Ditto. + * gcc.dg/vect/vect-33.c: Ditto. + * gcc.dg/vect/vect-34.c: Ditto. + * gcc.dg/vect/vect-35.c: Ditto. + * gcc.dg/vect/vect-36.c: Ditto. + * gcc.dg/vect/vect-6.c: Ditto. + * gcc.dg/vect/vect-73.c: Ditto. + * gcc.dg/vect/vect-74.c: Ditto. + * gcc.dg/vect/vect-75.c: Ditto. + * gcc.dg/vect/vect-76.c: Ditto. + * gcc.dg/vect/vect-80.c: Ditto. + * gcc.dg/vect/vect-85.c: Ditto. + * gcc.dg/vect/vect-89.c: Ditto. + * gcc.dg/vect/vect-97.c: Ditto. + * gcc.dg/vect/vect-98.c: Ditto. + * gcc.dg/vect/vect-all.c: Ditto. + * gcc.dg/vect/vect-double-reduc-6.c: Ditto. + * gcc.dg/vect/vect-iv-8.c: Ditto. + * gcc.dg/vect/vect-iv-8a.c: Ditto. + * gcc.dg/vect/vect-outer-1.c: Ditto. + * gcc.dg/vect/vect-outer-1a.c: Ditto. + * gcc.dg/vect/vect-outer-1b.c: Ditto. + * gcc.dg/vect/vect-outer-2.c: Ditto. + * gcc.dg/vect/vect-outer-2a.c: Ditto. + * gcc.dg/vect/vect-outer-2c.c: Ditto. + * gcc.dg/vect/vect-outer-3.c: Ditto. + * gcc.dg/vect/vect-outer-3a.c: Ditto. + * gcc.dg/vect/vect-outer-4a.c: Ditto. + * gcc.dg/vect/vect-outer-4b.c: Ditto. + * gcc.dg/vect/vect-outer-4c.c: Ditto. + * gcc.dg/vect/vect-outer-4d.c: Ditto. + * gcc.dg/vect/vect-outer-4m.c: Ditto. + * gcc.dg/vect/vect-outer-fir-lb.c: Ditto. + * gcc.dg/vect/vect-outer-fir.c: Ditto. + * gcc.dg/vect/vect-over-widen-1.c: Ditto. + * gcc.dg/vect/vect-over-widen-2.c: Ditto. + * gcc.dg/vect/vect-over-widen-3.c: Ditto. + * gcc.dg/vect/vect-over-widen-4.c: Ditto. + * gcc.dg/vect/vect-reduc-1char.c: Ditto. + * gcc.dg/vect/vect-reduc-2char.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1b.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1c.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-2b.c: Ditto. + * gcc.dg/vect/vect-shift-2.c: Ditto. + * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Ditto. + * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Ditto. + * gcc.dg/vect/slp-13-big-array.c: New test. + * gcc.dg/vect/slp-24-big-array.c: Ditto. + * gcc.dg/vect/slp-3-big-array.c: Ditto. + * gcc.dg/vect/slp-34-big-array.c: Ditto. + * gcc.dg/vect/slp-4-big-array.c: Ditto. + * gcc.dg/vect/slp-cond-2-big-array.c: Ditto. + * gcc.dg/vect/slp-multitypes-11-big-array.c: Ditto. + * gcc.dg/vect/vect-1-big-array.c: Ditto. + * gcc.dg/vect/vect-10-big-array.c: Ditto. + * gcc.dg/vect/vect-105-big-array.c: Ditto. + * gcc.dg/vect/vect-112-big-array.c: Ditto. + * gcc.dg/vect/vect-15-big-array.c: Ditto. + * gcc.dg/vect/vect-2-big-array.c: Ditto. + * gcc.dg/vect/vect-31-big-array.c: Ditto. + * gcc.dg/vect/vect-32-big-array.c: Ditto. + * gcc.dg/vect/vect-33-big-array.c: Ditto. + * gcc.dg/vect/vect-34-big-array.c: Ditto. + * gcc.dg/vect/vect-35-big-array.c: Ditto. + * gcc.dg/vect/vect-36-big-array.c: Ditto. + * gcc.dg/vect/vect-6-big-array.c: Ditto. + * gcc.dg/vect/vect-73-big-array.c: Ditto. + * gcc.dg/vect/vect-74-big-array.c: Ditto. + * gcc.dg/vect/vect-75-big-array.c: Ditto. + * gcc.dg/vect/vect-76-big-array.c: Ditto. + * gcc.dg/vect/vect-80-big-array.c: Ditto. + * gcc.dg/vect/vect-85-big-array.c: Ditto. + * gcc.dg/vect/vect-89-big-array.c: Ditto. + * gcc.dg/vect/vect-97-big-array.c: Ditto. + * gcc.dg/vect/vect-98-big-array.c: Ditto. + * gcc.dg/vect/vect-all-big-array.c: Ditto. + * gcc.dg/vect/vect-double-reduc-6-big-array.c: Ditto. + * gcc.dg/vect/vect-iv-8-big-array.c: Ditto. + * gcc.dg/vect/vect-iv-8a-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-1-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-1a-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-1b-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-2-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-2a-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-2c-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-3-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-3a-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-4a-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-4b-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-4c-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-4d-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-4m-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-fir-lb-big-array.c: Ditto. + * gcc.dg/vect/vect-outer-fir-big-array.c: Ditto. + * gcc.dg/vect/vect-over-widen-1-big-array.c: Ditto. + * gcc.dg/vect/vect-over-widen-2-big-array.c: Ditto. + * gcc.dg/vect/vect-over-widen-3-big-array.c: Ditto. + * gcc.dg/vect/vect-over-widen-4-big-array.c: Ditto. + * gcc.dg/vect/vect-reduc-1char-big-array.c: Ditto. + * gcc.dg/vect/vect-reduc-2char-big-array.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Ditto. + * gcc.dg/vect/vect-shift-2-big-array.c: Ditto. + * gcc.dg/vect/vect-strided-a-u8-i8-gap2-big-array.c: Ditto. + * gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap2-big-array.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c: Ditto. + +2011-12-09 Richard Guenther + + PR lto/48042 + * g++.dg/lto/pr48042_0.C: New testcase. + +2011-12-09 Richard Guenther + + PR tree-optimization/51482 + * g++.dg/torture/pr51482.C: New testcase. + +2011-12-08 Andrew Pinski + + * gcc.target/mips/mult-1.c: Forbid all Octeon processors. + * gcc.target/mips/dmult-1.c: Likewise. + * gcc.target/mips/branch-1.c: Likewise. + * gcc.target/mips/extend-1.c: Likewise. + +2011-12-08 Jason Merrill + + PR c++/51318 + * g++.dg/template/cond8.C: New. + + PR c++/51459 + * g++.dg/cpp0x/lambda/lambda-template4.C: New. + +2011-12-08 Jakub Jelinek + + PR tree-optimization/51466 + * gcc.c-torture/execute/pr51466.c: New test. + +2011-12-08 Tobias Burnus + + PR fortran/50815 + * gfortran.dg/bounds_check_16.f90: New. + +2011-12-08 Tobias Burnus + + PR fortran/51378 + * gfortran.dg/private_type_14.f90: New. + +2011-12-08 Tobias Burnus + + PR fortran/51407 + * gfortran.dg/io_real_boz_3.f90: New. + * gfortran.dg/io_real_boz_4.f90: New. + * gfortran.dg/io_real_boz_5.f90: New. + +2011-12-08 Tobias Burnus + + PR fortran/51448 + * gfortran.dg/realloc_on_assign_8.f90: New. + +2011-12-08 Teresa Johnson + + * gcc.target/i386/movdi-rex64.c: Remove unnecessary unused label. + +2011-12-08 Teresa Johnson + + * gcc.target/i386/movdi-rex64.c: Remove unnecessary + -Wwrite-strings option. + +2011-12-08 Teresa Johnson + + * gcc.target/i386/movdi-rex64.c: New. + +2011-12-08 Richard Guenther + + * gcc.dg/volatile3.c: New testcase. + +2011-12-08 Georg-Johann Lay + + PR tree-optimization/51315 + * gcc.c-torture/execute/20111208-1.c (int16_t): Use __INT16_TYPE__ + for typedef. + (int32_t): Use __INT32_TYPE__ for typedef. + +2011-12-08 Georg-Johann Lay + + PR tree-optimization/51315 + * gcc.c-torture/execute/20111208-1.c: Fix wrong assumption + sizeof(int)==4. + +2011-12-08 Richard Guenther + + PR lto/50747 + * g++.dg/opt/pr50747-1_0.C: New testcase. + * g++.dg/opt/pr50747-2_0.C: Likewise. + +2011-12-08 Eric Botcazou + + * gcc.c-torture/execute/20111208-1.c: New test. + +2011-12-08 Richard Guenther + + PR lto/48437 + * gcc.dg/lto/20111207-2_0.c: New testcase. + * gcc.dg/guality/pr48437.c: Likewise. + +2011-12-07 Jakub Jelinek + + PR c++/51401 + * g++.dg/cpp0x/auto7.C: Adjust expected error message. + * g++.dg/cpp0x/auto29.C: New test. + + PR c++/51429 + * g++.dg/parse/error45.C: New test. + + PR c++/51229 + * g++.dg/ext/desig3.C: New test. + + PR c++/51369 + * g++.dg/cpp0x/constexpr-51369.C: New test. + +2011-12-07 Andrew Pinski + + PR middle-end/45416 + * gcc.dg/pr45416.c: New testcase. + +2011-12-07 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/51420 + * g++.dg/cpp0x/pr51420.C: New. + +2011-12-07 Richard Guenther + + PR lto/48100 + * gcc.dg/lto/20111207-1_0.c: New testcase. + * gcc.dg/lto/20111207-1_1.c: Likewise. + * gcc.dg/lto/20111207-1_2.c: Likewise. + * gcc.dg/lto/20111207-1_3.c: Likewise. + +2011-12-07 Richard Guenther + + PR tree-optimization/50823 + * gcc.dg/torture/pr50823.c: New testcase. + +2011-12-07 Martin Jambor + + PR tree-optimization/50744 + * gcc.dg/ipa/pr50744.c: New test. + +2011-12-06 Jakub Jelinek + + PR c++/51430 + * g++.dg/template/static32.C: New test. + +2011-12-06 Uros Bizjak + + * g++.dg/opt/pr51396.C: Use dg-additional-options. + +2011-12-06 Tobias Burnus + + PR fortran/51435 + * gfortran.dg/default_initialization_5.f90: New. + +2011-12-06 Jakub Jelinek + + PR target/51354 + * gcc.c-torture/compile/pr51354.c: New test. + +2011-12-06 Paolo Carlini + + PR c++/51431 + * g++.dg/other/abstract3.C: New. + +2011-12-06 Richard Guenther + + PR tree-optimization/49997 + * gcc.dg/torture/pr49997.c: New testcase. + +2011-12-06 Richard Guenther + + PR middle-end/51436 + * g++.dg/torture/pr51436.C: New testcase. + +2011-12-06 Richard Guenther + + PR tree-optimization/51245 + * gcc.dg/torture/pr51245.c: New testcase. + +2011-12-06 Dodji Seketeli + + PR c++/51427 + * g++.dg/diagnostic/wrong-tag-1.C + +2011-12-05 Fabien Chêne + + PR c++/51319 + * g++.dg/lookup/using50.C: New. + * g++.dg/lookup/using51.C: New. + +2011-12-05 Jakub Jelinek + + PR tree-optimization/51396 + * g++.dg/opt/pr51396.C: New test. + + PR debug/51410 + * gcc.dg/debug/dwarf2/pr51410.c: New test. + + PR c/51339 + * gcc.dg/gomp/pr51339.c: New test. + +2011-12-05 Paolo Carlini + + PR c++/51399 + * g++.dg/cpp0x/initlist62.C: New. + +2011-12-05 Thomas Koenig + + PR fortran/51338 + * gfortran.dg/assumed_charlen_substring_1.f90: New test. + +2011-12-05 Richard Sandiford + + * g++.dg/debug/pr46338.C: Add dg-require-profiling. + * g++.dg/torture/pr39732.C: Likewise. + * g++.dg/torture/pr40642.C: Likewise. + * gcc.c-torture/compile/pr44686.c: Likewise. + * gcc.dg/20050309-1.c: Likewise. + * gcc.dg/20050330-2.c: Likewise. + * gcc.dg/20051201-1.c: Likewise. + * gcc.dg/gomp/pr27573.c: Likewise. + * gcc.dg/pr46255.c: Likewise. + * gcc.dg/profile-dir-1.c: Likewise. + * gcc.dg/profile-dir-2.c: Likewise. + * gcc.dg/profile-dir-3.c: Likewise. + * gcc.dg/profile-generate-1.c: Likewise. + * gfortran.dg/gomp/pr27573.f90: Likewise. + * gcc.dg/profile-generate-3.c: Be specific about the type of + profiling required. + +2011-12-05 Paolo Carlini + + PR c++/51414 + * g++.dg/ext/underlying_type11.C: New. + +2011-12-05 Uros Bizjak + + PR testsuite/51128 + * gcc.dg/torture/pr23821.c: Skip if -fno-fat-lto-objects was passed. + * gcc.dg/torture/pr39074.c: Ditto. + * gcc.dg/torture/pr39074-2.c: Ditto. + * gcc.dg/torture/pr42898.c: Ditto. + * gcc.dg/torture/pr42898-2.c: Ditto. + * gcc.dg/torture/pr45704.c: Ditto. + * gcc.dg/torture/pr50472.c: Ditto. + * gcc.dg/torture/pta-callused-1.c: Ditto. + * gcc.dg/torture/pta-ptrarith-1.c: Ditto. + * gcc.dg/torture/pta-ptrarith-2.c: Ditto. + * gcc.dg/torture/pta-ptrarith-3.c: Ditto. + * gcc.dg/torture/pta-escape-1.c: Ditto. + * gcc.dg/torture/ipa-pta-1.c: Ditto. + * gcc.dg/torture/ssa-pta-fn-1.c: Ditto. + +2011-12-05 Kazu Hirata + + PR target/51408 + * gcc.dg/pr51408.c: New. + +2011-12-05 Jason Merrill + + * g++.dg/cpp0x/dc6.C: New. + +2011-12-05 Ville Voutilainen + Pedro Lamarão + + * g++.dg/cpp0x/dc1.C: New test. + * g++.dg/cpp0x/dc2.C: New test. + * g++.dg/cpp0x/dc3.C: New test. + * g++.dg/cpp0x/dc4.C: New test. + * g++.dg/cpp0x/dc5.C: New test. + * g++.dg/template/meminit1.C: Adjust expected error. + +2011-12-05 Paolo Carlini + + PR c++/51404 + * g++.dg/cpp0x/auto28.C: New. + +2011-12-05 Matthew Gretton-Dann + + * gcc.dg/torture/vec-cvt-1.c (FLTTEST): Call rand instead of random. + +2011-12-05 Jakub Jelinek + Eric Botcazou + + PR middle-end/51323 + PR middle-end/50074 + * gcc.c-torture/execute/pr51323.c: New test. + +2011-12-04 Tobias Burnus + + PR fortran/51383 + * gfortran.dg/associate_10.f90: New. + +2011-12-04 Ira Rosen + + PR middle-end/51285 + * gfortran.dg/vect/pr51285.f90: New test. + +2011-12-04 Uros Bizjak + Jérémie Detrey + + PR target/51393 + * gcc.target/i386/pr51393.c: New test. + +2011-12-03 Dominique d'Humieres + + PR obj-c++/51349 + * obj-c++.dg/naming-3.mm: Adjust for changing error messages. + * obj-c++.dg/naming-4.mm: Likewise. + +2011-12-03 Jack Howarth + + * gcc.dg/darwin-segaddr.c: Use -no-pie. + +2011-12-03 Paolo Carlini + + PR c++/51313 + * g++.dg/cpp0x/pr51313.C: New. + +2011-12-03 Tobias Burnus + + PR fortran/48887 + * gfortran.dg/select_type_24.f90: New. + * gfortran.dg/select_type_23.f03: Add dg-error. + * gfortran.dg/class_45a.f03: Add missing TARGET attribute. + +2011-12-03 Jakub Jelinek + + * gcc.dg/vect/vect-122.c: New test. + +2011-12-03 Tobias Burnus + + PR fortran/50684 + * gfortran.dg/move_alloc_8.f90: New. + +2011-12-03 Tobias Burnus + + * gfortran.dg/select_type_23.f03: Revert Rev. 181801, + i.e. remove the dg-error line. + * gfortran.dg/move_alloc_5.f90: Ditto and change back to dg-do run. + * gfortran.dg/move_alloc_9.f90: New. + * gfortran.dg/move_alloc_10.f90: New + +2011-12-02 Nathan Sidwell + + * lib/gcov.exp (verify-lines): Allow = as a count char. + * g++.dg/gcov/gcov-13.C: New. + +2011-12-02 Michael Zolotukhin + + * gcc.dg/vect/slp-13.c: Increase array size, add initialization. + * gcc.dg/vect/slp-24.c: Ditto. + * gcc.dg/vect/slp-3.c: Likewise and fix scans. + * gcc.dg/vect/slp-34.c: Ditto. + * gcc.dg/vect/slp-4.c: Ditto. + * gcc.dg/vect/slp-cond-2.c: Ditto. + * gcc.dg/vect/slp-multitypes-11.c: Ditto. + * gcc.dg/vect/vect-1.c: Ditto. + * gcc.dg/vect/vect-10.c: Ditto. + * gcc.dg/vect/vect-105.c: Ditto. + * gcc.dg/vect/vect-112.c: Ditto. + * gcc.dg/vect/vect-15.c: Ditto. + * gcc.dg/vect/vect-2.c: Ditto. + * gcc.dg/vect/vect-31.c: Ditto. + * gcc.dg/vect/vect-32.c: Ditto. + * gcc.dg/vect/vect-33.c: Ditto. + * gcc.dg/vect/vect-34.c: Ditto. + * gcc.dg/vect/vect-35.c: Ditto. + * gcc.dg/vect/vect-36.c: Ditto. + * gcc.dg/vect/vect-6.c: Ditto. + * gcc.dg/vect/vect-73.c: Ditto. + * gcc.dg/vect/vect-74.c: Ditto. + * gcc.dg/vect/vect-75.c: Ditto. + * gcc.dg/vect/vect-76.c: Ditto. + * gcc.dg/vect/vect-80.c: Ditto. + * gcc.dg/vect/vect-85.c: Ditto. + * gcc.dg/vect/vect-89.c: Ditto. + * gcc.dg/vect/vect-97.c: Ditto. + * gcc.dg/vect/vect-98.c: Ditto. + * gcc.dg/vect/vect-all.c: Ditto. + * gcc.dg/vect/vect-double-reduc-6.c: Ditto. + * gcc.dg/vect/vect-iv-8.c: Ditto. + * gcc.dg/vect/vect-iv-8a.c: Ditto. + * gcc.dg/vect/vect-outer-1.c: Ditto. + * gcc.dg/vect/vect-outer-1a.c: Ditto. + * gcc.dg/vect/vect-outer-1b.c: Ditto. + * gcc.dg/vect/vect-outer-2.c: Ditto. + * gcc.dg/vect/vect-outer-2a.c: Ditto. + * gcc.dg/vect/vect-outer-2c.c: Ditto. + * gcc.dg/vect/vect-outer-3.c: Ditto. + * gcc.dg/vect/vect-outer-3a.c: Ditto. + * gcc.dg/vect/vect-outer-4a.c: Ditto. + * gcc.dg/vect/vect-outer-4b.c: Ditto. + * gcc.dg/vect/vect-outer-4c.c: Ditto. + * gcc.dg/vect/vect-outer-4d.c: Ditto. + * gcc.dg/vect/vect-outer-4m.c: Ditto. + * gcc.dg/vect/vect-outer-fir-lb.c: Ditto. + * gcc.dg/vect/vect-outer-fir.c: Ditto. + * gcc.dg/vect/vect-over-widen-1.c: Ditto. + * gcc.dg/vect/vect-over-widen-2.c: Ditto. + * gcc.dg/vect/vect-over-widen-3.c: Ditto. + * gcc.dg/vect/vect-over-widen-4.c: Ditto. + * gcc.dg/vect/vect-reduc-1char.c: Ditto. + * gcc.dg/vect/vect-reduc-2char.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1b.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-1c.c: Ditto. + * gcc.dg/vect/vect-reduc-pattern-2b.c: Ditto. + * gcc.dg/vect/vect-shift-2.c: Ditto. + * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Ditto. + * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Ditto. + * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Ditto. + +2011-12-02 Georg-Johann Lay + + * gcc.c-torture/execute/vector-subscript-1.c (main): Fix + __builtin_memcpy arguments to honor sizeof(a). + +2011-12-02 Joseph Myers + + * gcc.c-torture/execute/doloop-1.c, + gcc.c-torture/execute/doloop-2.c: New tests. + +2011-12-02 Martin Jambor + + PR tree-optimization/50622 + * g++.dg/tree-ssa/pr50622.C: New test. + +2011-12-01 Jason Merrill + + * g++.dg/cpp0x/initlist61.C: New. + +2011-12-01 Paolo Carlini + + PR c++/51326 + * g++.dg/inherit/crash3.C: New. + +2011-12-01 Nathan Sidwell + + PR gcov-profile/51113 + * lib/gcov.exp (verify-lines): Add support for xfailing. + (run-gcov): Likewise. + * gcc.misc-tests/gcov-13.c: Xfail weak function. + * gcc.misc-tests/gcov-16.c: Remove. + * gcc.misc-tests/gcov-17.c: Remove. + * g++.dg/gcov-8.C: Remove. + * g++.dg/gcov-9.C: Remove. + * g++.dg/gcovpart-12b.C: New. + * g++.dg/gcov-12.C: New. + +2011-12-01 Andrew Pinski + + PR lto/51198 + * g++.dg/torture/pr51198.C: New testcase. + +2011-12-01 Jakub Jelinek + + PR tree-optimization/51246 + * gcc.c-torture/compile/pr51246.c: New test. + + PR rtl-optimization/51014 + * g++.dg/opt/pr51014.C: New test. + +2011-12-01 Paolo Carlini + + PR c++/51367 + * g++.dg/template/error47.C: New. + +2011-11-30 Jason Merrill + + PR c++/51009 + * g++.dg/init/aggr8.C: New. + +2011-11-30 Jakub Jelinek + + PR target/50725 + * gcc.target/i386/pr50725.c: New test. + + PR middle-end/51089 + * gfortran.dg/gomp/pr51089.f90: New test. + +2011-11-30 Andrew Pinski + + * gcc.dg/pr51321.c: New testcase. + +2011-11-30 Jakub Jelinek + + PR rtl-optimization/48721 + * gcc.target/i386/pr48721.c: New test. + +2011-11-30 Paolo Carlini + + PR c++/51299 + * g++.dg/warn/Wzero-as-null-pointer-constant-4.C: New. + +2011-11-29 Jakub Jelinek + + PR tree-optimization/51247 + * gcc.c-torture/compile/pr51247.c: New test. + +2011-11-29 Andrew MacLeod + + PR target/50123 + * gcc.dg/atomic-op-optimize.c: New. Test for optimizations. + +2011-11-29 Yufeng Zhang + + Use complex floating-point constant in CDBL. + + * gcc.dg/compat/compat-common.h (CDBL): Replace 1i with 1.0i. + +2011-11-29 Tobias Burnus + + PR fortran/51306 + PR fortran/48700 + * gfortran.dg/move_alloc_5.f90: Add dg-error. + * gfortran.dg/select_type_23.f03: Add dg-error. + * gfortran.dg/move_alloc_6.f90: New. + * gfortran.dg/move_alloc_7.f90: New. + +2011-11-29 Ira Rosen + + PR tree-optimization/51301 + * gcc.dg/vect/pr51301.c: New test. + +2011-11-28 Uros Bizjak + + * g++.dg/cdce3.C: Use dg-additional-options. + +2011-11-28 Jakub Jelinek + + PR middle-end/50907 + * gcc.dg/tree-prof/pr50907.c: New test. + + PR tree-optimization/50078 + * gcc.dg/pr50078.c: New test. + + PR tree-optimization/50682 + * g++.dg/opt/pr50682.C: New test. + +2011-11-28 Tobias Burnus + + PR fortran/51308 + * gfortran.dg/iso_c_binding_compiler_4.f90: New. + +2011-11-27 Aldy Hernandez + Iain Sandoe + + * gcc.dg/lto/trans-mem-2_0.c: Add dg-lto-do link. Add dummy + functions for _ITM_registerTMCloneTable, _ITM_deregisterTMCloneTable. + * gcc.dg/lto/trans-mem-1_0.c: Add dg-lto-do link. + * gcc.dg/lto/trans-mem-1_1.c: Add dummy functions for + _ITM_registerTMCloneTable, _ITM_deregisterTMCloneTable. + +2011-11-27 Richard Sandiford + + * gcc.target/mips/mult-2.c, gcc.target/mips/mult-3.c, + gcc.target/mips/mult-4.c, gcc.target/mips/mult-5.c, + gcc.target/mips/mult-6.c, gcc.target/mips/mult-7.c, + gcc.target/mips/mult-8.c, gcc.target/mips/mult-9.c, + gcc.target/mips/mult-10.c, gcc.target/mips/mult-11.c, + gcc.target/mips/mult-12.c, gcc.target/mips/mult-13.c, + gcc.target/mips/mult-14.c, gcc.target/mips/mult-15.c, + gcc.target/mips/mult-16.c, gcc.target/mips/mult-17.c, + gcc.target/mips/mult-18.c, gcc.target/mips/mult-19.c, + gcc.target/mips/div-1.c, gcc.target/mips/div-2.c, + gcc.target/mips/div-3.c, gcc.target/mips/div-4.c, + gcc.target/mips/div-5.c, gcc.target/mips/div-6.c, + gcc.target/mips/div-7.c, gcc.target/mips/div-8.c, + gcc.target/mips/div-9.c, gcc.target/mips/div-10.c, + gcc.target/mips/div-11.c, gcc.target/mips/div-12.c: New tests. + * gcc.target/mips/fix-r4000-1.c (foo, bar): Add NOMIPS16. + * gcc.target/mips/fix-r4000-2.c (foo): Likewise. + * gcc.target/mips/fix-r4000-3.c (foo): Likewise. + * gcc.target/mips/fix-r4000-4.c (foo): Likewise. + * gcc.target/mips/fix-r4000-5.c (foo): Likewise. + * gcc.target/mips/fix-r4000-6.c (foo): Likewise. + * gcc.target/mips/fix-r4000-7.c (foo): Likewise. + * gcc.target/mips/fix-r4000-8.c (foo): Likewise. + * gcc.target/mips/fix-r4000-9.c (foo): Likewise. + * gcc.target/mips/fix-r4000-10.c (foo): Likewise. + * gcc.target/mips/fix-r4000-11.c (foo): Likewise. + * gcc.target/mips/fix-r4000-12.c (foo): Likewise. + +2011-11-27 Richard Sandiford + + * gcc.target/mips/mips.exp (mips-dg-options): Make -mno-dsp + imply -mno-dspr2. + * gcc.target/mips/no-dsp-1.c: New test. + * gcc.target/mips/soft-float-1.c: Likewise. + +2011-11-26 Jakub Jelinek + + PR rtl-optimization/49912 + * g++.dg/other/pr49912.C: New test. + +2011-11-26 Uros Bizjak + + * gcc.dg/vect/fast-math-vect-call-2.c: Require vect_double + effective target. + * gcc.dg/vect/fast-math-bb-slp-call-2.c: Ditto. + +2011-11-25 Mikael Morin + + PR fortran/51250 + PR fortran/43829 + * gfortran.dg/inline_sum_3.f90: New test. + +2011-11-25 Uros Bizjak + + PR testsuite/51258 + * lib/target-supports.exp + (check_effective_target_sync_long_long): Also supported on 32bit + x86 targets. Add comment about required dg-options. + Add alpha*-*-* targets. + (check_effective_target_sync_long_long_runtime): Ditto. + + * gcc.dg/atomic-op-4.c (dg-options): Add -march=pentium for + 32bit x86 targets. + * gcc.dg/atomic-compare-exchange-4.c: Ditto. + * gcc.dg/atomic-exchange-4.c: Ditto. + * gcc.dg/atomic-load-4.c: Ditto. + * gcc.dg/atomic-store-4.c: Ditto. + * gcc.dg/di-longlong64-sync-1.c: Ditto. + * gcc.dg/di-sync-multithread.c: Ditto. + * gcc.dg/simulate-thread/atomic-load-longlong.c: Ditto. + * gcc.dg/simulate-thread/atomic-other-longlong.c: Ditto. + +2011-11-25 Uros Bizjak + + PR testsuite/51258 + * lib/target-supports.exp + (check_effective_target_sync_int_128_runtime): New procedure. + (check_effective_target_sync_long_long_runtime): Ditto. + (check_effective_target_sync_long_long): Add arm*-*-*. + (check_effective_target_sync_longlong): Remove. + + * gcc.dg/atomic-op-5.c: Require sync_int_128_runtime effective target. + * gcc.dg/atomic-compare-exchange-5.c: Ditto. + * gcc.dg/atomic-exchange-5.c: Ditto. + * gcc.dg/atomic-load-5.c: Ditto. + * gcc.dg/atomic-store-5.c: Ditto. + * gcc.dg/simulate-thread/atomic-load-int128.c: Ditto. + * gcc.dg/simulate-thread/atomic-other-int128.c: Ditto. + * gcc.dg/atomic-op-4.c: Require sync_long_long_runtime + effective target. + * gcc.dg/atomic-compare-exchange-4.c: Ditto. + * gcc.dg/atomic-exchange-4.c: Ditto. + * gcc.dg/atomic-load-4.c: Ditto. + * gcc.dg/atomic-store-4.c: Ditto. + * gcc.dg/di-longlong64-sync-1.c: Ditto. + * gcc.dg/di-sync-multithread.c: Ditto. + * gcc.dg/simulate-thread/atomic-load-longlong.c: Ditto. + * gcc.dg/simulate-thread/atomic-other-longlong.c: Ditto. + +2011-11-25 Tobias Burnus + + PR fortran/50408 + * gfortran.dg/whole_file_35.f90: New. + +2011-11-25 Tobias Burnus + + PR fortran/51302 + * gfortran.dg/volatile13.f90: New. + +2011-11-24 Andrew MacLeod + + PR c/51256 + * gcc.dg/atomic-pr51256.c: New. Test error conditions. + +2011-11-24 Paolo Carlini + + PR c++/51227 + * g++.dg/cpp0x/lambda/lambda-ice5.C: New. + +2011-11-24 H.J. Lu + + PR target/51134 + * gcc.target/i386/sw-1.c: Revert revision 181357. + +2011-11-24 Tobias Burnus + + PR fortran/51218 + * gfortran.dg/implicit_pure_1.f90: New. + +2011-11-24 Rainer Orth + + PR testsuite/51258 + * gcc.dg/atomic-compare-exchange-5.c: Add -mcx16 on i?86-*-*. + * gcc.dg/atomic-exchange-5.c: Likewise. + * gcc.dg/atomic-load-5.c: Likewise. + * gcc.dg/atomic-op-5.c: Likewise. + * gcc.dg/atomic-store-5.c: Likewise. + * gcc.dg/simulate-thread/atomic-other-int128.c: Fix typo. + +2011-11-24 Jakub Jelinek + + PR rtl-optimization/50290 + * gcc.dg/pr50290.c: New test. + +2011-11-24 Paolo Carlini + + PR c++/51290 + * g++.dg/warn/Wzero-as-null-pointer-constant-3.C: New. + +2011-11-23 Jakub Jelinek + + PR target/51261 + * gcc.dg/pr51261.c: New test. + +2011-11-22 Dodji Seketeli + + PR c++/51145 + * g++.dg/cpp0x/alias-decl-14.C: New test. + * g++.dg/cpp0x/alias-decl-2.C: Adjust for tests that were wrongly + passing before. + * g++.dg/cpp0x/alias-decl-10.C: Likewise and adjust for diagnostic + change. + * g++.dg/ext/attrib27.C: Adjust for diagnostic change. + * g++.dg/lookup/struct1.C: Likewise. + * g++.dg/parse/elab1.C: Likewise. + * g++.dg/parse/elab2.C: Likewise. + * g++.dg/parse/int-as-enum1.C: Likewise. + * g++.dg/parse/typedef1.C: Likewise. + * g++.dg/parse/typedef3.C: Likewise. + * g++.dg/parse/typedef4.C: Likewise. + * g++.dg/parse/typedef5.C: Likewise. + * g++.dg/template/crash26.C: Likewise. + * g++.dg/template/nontype4.C: Likewise. + * g++.old-deja/g++.benjamin/typedef01.C: Likewise. + * g++.old-deja/g++.brendan/line1.C: Likewise. + * g++.old-deja/g++.other/elab1.C: Likewise. + * g++.old-deja/g++.other/syntax4.C: Likewise. + +2011-11-22 Tom de Vries + + PR rtl-optimization/50764 + * gcc.dg/pr50764.c: New test. + +2011-11-22 Paolo Carlini + + PR c++/51265 + * g++.dg/cpp0x/decltype36.C: New. + +2011-11-22 Jakub Jelinek + + PR tree-optimization/51074 + * gcc.dg/vect/pr51074.c: New test. + +2011-11-22 Dodji Seketeli + + PR c++/51143 + * g++.dg/cpp0x/alias-decl-16.C: New test. + +2011-11-22 Jakub Jelinek + + PR tree-optimization/50765 + * gcc.dg/pr50765.c: New test. + +2011-11-22 Matthew Gretton-Dann + + * gcc.dg/vshift-1.c (main): Call rand instead of random. + * gcc.dg/vshift-3.c (main): Likewise. + +2011-11-22 Iain Sandoe + + * gcc.dg/tm/20100615.c: Adjust for Darwin tm_clone_table section name. + +2011-11-22 Iain Sandoe + + * gcc.misc-tests/gcov-16.c: Adjust scan-assembler for Darwin. + * gcc.misc-tests/gcov-17.c: Likewise. + * g++.dg/gcov/gcov-8.C: Likewise. + * g++.dg/gcov/gcov-9.C: Likewise. + +2011-11-21 Torvald Riegel + + * g++.dg/tm/pr47747.C: New test. + +2011-11-21 Torvald Riegel + + * g++.dg/tm/template-2.C: New test. + +2011-11-21 Jakub Jelinek + + PR debug/50827 + * gcc.dg/pr50827.c: New test. + +2011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/50958 + * g++.dg/cpp0x/udlit-declare-neg.C: Adjust. + * g++.dg/cpp0x/udlit-implicit-conv-neg.C: New. + * g++.dg/cpp0x/udlit-member.C: Adjust. + * g++.dg/cpp0x/udlit-raw-length.C: New. + * g++.dg/cpp0x/udlit-raw-op-string-neg.C: Adjust. + * g++.dg/cpp0x/udlit-resolve.C: New. + * c-c++-common/dfp/pr33466.c: Adjust. + +2011-11-21 Rainer Orth + + * lib/target-supports.exp + (check_effective_target_ultrasparc_vis2_hw): Call check_runtime + with ultrasparc_vis2_hw. + (check_effective_target_ultrasparc_vis3_hw): Call check_runtime + with ultrasparc_vis3_hw. + +2011-11-21 Rainer Orth + + * c-c++-common/tm/malloc.c: Scan tree dumps for std::malloc if + *-*-solaris2* && c++. + +2011-11-20 Joey Ye + + * gcc.dg/volatile-bitfields-1.c: New. + +2011-11-20 Jason Merrill + + PR c++/48322 + * g++.dg/cpp0x/variadic120.C: New. + * g++.dg/cpp0x/sfinae26.C: Adjust. + + * g++.dg/cpp0x/sfinae11.C: Adjust. + * g++.dg/cpp0x/sfinae26.C: Adjust. + * g++.dg/template/unify11.C: Adjust. + +2011-11-20 Paolo Carlini + + PR c++/51230 + * g++.dg/template/error46.C: New. + +2011-11-20 Uros Bizjak + + PR target/51235 + * gcc.target/i386/pr51235.c: New test. + + PR target/51236 + * gcc.target/i386/pr51236.c: New test. + +2011-11-20 Eric Botcazou + + * gnat.dg/discr32.adb: New test. + * gnat.dg/discr32_pkg.ads: New helper. + +2011-11-20 Nathan Sidwell + + PR gcov-profile/51113 + * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage + * gcc.misc-tests/gcov-16.c: New. + * gcc.misc-tests/gcov-17.c: New. + * g++.dg/gcov/gcov-8.C: New. + * g++.dg/gcov/gcov-9.C: New. + * g++.dg/gcov/gcov-10.C: New. + +2011-11-20 Dodji Seketeli + + PR c++/51194 + * g++.dg/cpp0x/alias-decl-15.C: New test. + +2011-11-19 Paolo Carlini + + PR c++/51216 + * g++.dg/cpp0x/pr51216.C: New. + +2011-11-19 Eric Botcazou + + * gcc.dg/delay-slot-2.c: New test. + +2011-11-18 Joseph Myers + + * gcc.dg/cpp/assert4.c: Test __linux__, not __gnu_linux__. + +2011-11-18 Fabien Chêne + + PR c++/51188 + * g++.dg/lookup/using46.C: New. + * g++.dg/lookup/using47.C: New. + * g++.dg/lookup/using48.C: New. + * g++.dg/lookup/using49.C: New. + * g++.dg/lookup/using50.C: New. + +2011-11-18 Ulrich Weigand + + * gcc.c-torture/compile/pr44707.c: Do not assume assembler + supports /* ... */ comments. + +2011-11-18 Paolo Carlini + + PR c++/51150 + * g++.dg/cpp0x/pr51150.C: New. + +2011-11-18 Martin Jambor + + PR tree-optimization/50605 + * g++.dg/ipa/pr50605.C: New test. + +2011-11-18 Dodji Seketeli + + PR c++/51191 + * g++.dg/cpp0x/alias-decl-13.C: New test. + +2011-11-17 Jason Merrill + + PR c++/51186 + * g++.dg/cpp0x/auto27.C: New. + * g++.dg/cpp0x/trailing2.C: Adjust messages. + +2011-11-17 Andrew MacLeod + + * gcc.dg/atomic-generic-aux.c (__atomic_compare_exchange): Fail if + memory model parameters don't match expected values. + * gcc.dg/atomic-generic.c: Pass specific memory model parameters to + __atomic_compare_exchange. + * gcc.dg/atomic-noinline.c: Pass specific memory model parameters to + __atomic_compare_exchange_n. + * gcc.dg/atomic-noinline-aux.c (__atomic_compare_exchange_2): Remove + weak/strong parameter and fail if memory models aren't correct. + +2011-10-17 Uros Bizjak + + * lib/gcc-simulate-thread.exp (simulate-thread): Run on all targets. + Look for simulate_thread_done to determine working gdb. Reduce timeout + to 10 seconds and fail when timeout occurs. Improve error messages. + +2011-11-17 Jason Merrill + + PR c++/51137 + * g++.dg/template/virtual2.C: New. + +2011-11-17 Michael Matz + + PR middle-end/50644 + PR middle-end/50741 + * g++.dg/tree-ssa/pr50741.C: New. + +2011-11-17 Rainer Orth + + * lib/gcc-simulate-thread.exp (simulate-thread): Skip on alpha*-*-*. + +2011-10-16 Uros Bizjak + + * gcc.dg/tm/memopt-6.c: Cleanup tmedge tree dump. + * gcc.dg/tm/memopt-13.c: Cleanup tmmark tree dump. + * g++.dg/eh/array1.C: Cleanup gimple tree dump. + +2011-11-16 Tobias Burnus + + PR fortran/39427 + PR fortran/37829 + * gfortran.dg/constructor_1.f90: New. + * gfortran.dg/constructor_2.f90: New. + * gfortran.dg/constructor_3.f90: New. + * gfortran.dg/constructor_4.f90: New. + * gfortran.dg/constructor_5.f90: New. + * gfortran.dg/constructor_6.f90: New. + * gfortran.dg/use_only_5.f90: New. + * gfortran.dg/c_ptr_tests_17.f90: New. + * gfortran.dg/c_ptr_tests_18.f90: New. + * gfortran.dg/used_types_25.f90: New. + * gfortran.dg/used_types_26.f90: New + * gfortran.dg/type_decl_3.f90: New. + * gfortran.dg/function_types_3.f90: Update dg-error. + * gfortran.dg/result_1.f90: Ditto. + * gfortran.dg/structure_constructor_3.f03: Ditto. + * gfortran.dg/structure_constructor_4.f03: Ditto. + +2011-10-16 Matthew Gretton-Dann + + * gcc.dg/vect/pr30858.c: Update expected output for + architectures with multiple vector sizes. + +2011-11-16 Richard Earnshaw + Bernd Schmidt + Sebastian Huber + + PR target/49641 + * gcc.target/arm/pr49641.c: New test. + +2011-11-16 Razya Ladelsky + + PR tree-optimization/49960 + * gcc.dg/autopar/pr49960.c: New test. + * gcc.dg/autopar/pr49960-1.c: New test. + + +2011-11-16 Tom de Vries + + * gcc.dg/pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump. + * gcc.dg/pr43864-2.c: Same. + * gcc.dg/pr43864-3.c: Same. + * gcc.dg/pr43864-4.c: Same. + +2011-11-15 Uros Bizjak + + * gcc.target/i386/sse2-cvt-vec.c: New test. + * gcc.target/i386/avx-cvt-vec.c: Ditto. + * gcc.target/i386/avx-cvt-2-vec.c: Ditto. + * gcc.target/i386/avx-floor-sfix-2-vec.c: Ditto. + * gcc.target/i386/avx-ceil-sfix-2-vec.c: Ditto. + * gcc.target/i386/avx-rint-sfix-2-vec.c: Ditto. + * gcc.target/i386/avx-round-sfix-2-vec.c: Ditto. + +2011-11-15 Iain Sandoe + + * lib/gcc-simulate-thread.exp (simulate-thread): Do not run on + powerpc*-*-darwin* targets. + +2011-11-15 Torvald Riegel + + * c-c++-common/tm/trxn-expr-3.c: New test. + +2011-11-14 Torvald Riegel + + * g++.dg/tm/template-1.C: Add cleanup-tree-dump. Fix typo in comment. + +2011-11-14 Uros Bizjak + + * gcc.target/i386/avx-recip-vec.c: New test. + * gcc.target/i386/avx-lrintf-vec.c: Ditto. + * gcc.target/i386/avx-lrint-vec.c: Ditto. + * gcc.target/i386/avx-floorf-vec.c: Include sse4_1-floorf-vec.c. + * gcc.target/i386/avx-floor-vec.c: Include sse4_1-floor-vec.c. + * gcc.target/i386/avx-ceilf-vec.c: Include sse4_1-ceilf-vec.c. + * gcc.target/i386/avx-ceil-vec.c: Include sse4_1-ceil-vec.c. + * gcc.target/i386/avx-rintf-vec.c: Include sse4_1-rintf-vec.c. + * gcc.target/i386/avx-rint-vec.c: Include sse4_1-rint-vec.c. + * gcc.target/i386/avx-roundf-vec.c: Include sse4_1-roundf-vec.c. + * gcc.target/i386/avx-round-vec.c: Include sse4_1-round-vec.c. + * gcc.target/i386/avx-truncf-vec.c: Include sse4_1-truncf-vec.c. + * gcc.target/i386/avx-trunc-vec.c: Include sse4_1-trunc-vec.c. + * gcc.target/i386/avx-copysignf-vec.c: Include sse-copysignf-vec.c. + * gcc.target/i386/avx-copysign-vec.c: Include sse2-copysign-vec.c. + +2011-11-14 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/51107 + * g++.dg/cpp0x/udlit-args-neg.C: Add check for void argument + non-template literal operator. + +2011-11-14 Uros Bizjak + + * gcc.target/i386/sse4_1-floor-sfix-vec.c: New test. + * gcc.target/i386/sse4_1-floorf-sfix-vec.c: Ditto. + * gcc.target/i386/avx-floor-sfix-vec.c: Ditto. + * gcc.target/i386/avx-floorf-sfix-vec.c: Ditto. + * gcc.target/i386/sse4_1-ceil-sfix-vec.c: Ditto. + * gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Ditto. + * gcc.target/i386/avx-ceil-sfix-vec.c: Ditto. + * gcc.target/i386/avx-ceilf-sfix-vec.c: Ditto. + * gcc.target/i386/sse4_1-rint-sfix-vec.c: Ditto. + * gcc.target/i386/sse4_1-rintf-sfix-vec.c: Ditto. + * gcc.target/i386/avx-rint-sfix-vec.c: Ditto. + * gcc.target/i386/avx-rintf-sfix-vec.c: Ditto. + * gcc.target/i386/sse4_1-round-sfix-vec.c: Ditto. + * gcc.target/i386/sse4_1-roundf-sfix-vec.c: Ditto. + * gcc.target/i386/avx-round-sfix-vec.c: Ditto. + * gcc.target/i386/avx-roundf-sfix-vec.c: Ditto. + +2011-11-14 Fabien Chêne + + PR c++/6936 + PR c++/25994 + PR c++/26256 + PR c++/30195 + * g++.old-deja/g++.brendan/misc14.C: Adjust. + * g++.old-deja/g++.jason/scoping16.C: Likewise. + * g++.old-deja/g++.other/anon7.C: Likewise. + * g++.old-deja/g++.other/using1.C: Likewise. + * g++.old-deja/g++.other/redecl1.C: Likewise. + * g++.old-deja/g++.other/typedef7.C: Likewise. + * g++.old-deja/g++.bugs/900127_02.C: Likewise. + * g++.dg/template/using2.C: Likewise. + * g++.dg/template/static4.C: Likewise. + * g++.dg/template/typedef1.C: Likewise. + * g++.dg/lookup/name-clash9.C: Likewise. + * g++.dg/abi/mangle41.C: Likewise. + * g++.dg/parse/ctor5.C: Likewise. + * g++.dg/inherit/using4.C: Likewise. + * g++.dg/lookup/using24.C: New. + * g++.dg/lookup/using25.C: New. + * g++.dg/lookup/using26.C: New. + * g++.dg/lookup/using27.C: New. + * g++.dg/lookup/using28.C: New. + * g++.dg/lookup/using29.C: New. + * g++.dg/lookup/using30.C: New. + * g++.dg/lookup/using31.C: New. + * g++.dg/lookup/using32.C: New. + * g++.dg/lookup/using33.C: New. + * g++.dg/lookup/using34.C: New. + * g++.dg/lookup/using35.C: New. + * g++.dg/lookup/using36.C: New. + * g++.dg/lookup/using37.C: New. + * g++.dg/lookup/using38.C: New. + * g++.dg/lookup/using39.C: New. + * g++.dg/lookup/using40.C: New. + * g++.dg/lookup/using41.C: New. + * g++.dg/lookup/using42.C: New. + * g++.dg/lookup/using43.C: New. + * g++.dg/lookup/using44.C: New. + * g++.dg/lookup/using45.C: New. + * g++.dg/lookup/pr6936.C: New. + * g++.dg/debug/using4.C: New. + * g++.dg/debug/using5.C: New. + * g++.dg/cpp0x/forw_enum10.C: New. + +2011-11-14 Zolotukhin Michael + Jan Hubicka + + * gcc.target/i386/sw-1.c: Force rep;movsb. + +2011-11-14 Iain Sandoe + + PR testsuite/51059 + * gcc.misc-tests/gcov-14.c (dg-options): Adjust to use + dg-additional-options. + +2011-11-13 Oleg Endo + + * gcc.target/sh/pr21255-2-ml.c: Skip if -mb or -m5* is + specified. Remove redundant runtime checks. + * gcc.target/sh/20080410-1.c: Skip if -mb is specified. + Allow for other than -m4. Fix typos in comments. + +2011-11-12 Jason Merrill + + PR c++/986 + * g++.dg/warn/ref-temp1.C: New. + + PR c++/51060 + * g++.dg/opt/stack2.C: New. + +2011-11-12 Uros Bizjak + + * lib/gcc-simulate-thread.exp (simulate-thread): Do not run on + alpha*-*-linux* targets. + +2011-11-12 Iain Sandoe + + PR testsuite/51059 + * gcc.misc-tests/gcov-14.c (dg-options): Force flat namespace for + Darwin targets and allow external symbols to be undefined. + +2011-11-12 Nathan Sidwell + + * gcc.misc-tests/gcov-15.c: New. + +2011-11-11 Jakub Jelinek + + PR tree-optimization/51058 + * gcc.dg/vect/fast-math-vect-call-1.c: Add f4 test. + * gfortran.dg/vect/pr51058-2.f90: New test. + +2011-11-10 Jason Merrill + + * g++.dg/template/linkage1.C: New. + * g++.dg/ext/visibility/anon8.C: Adjust for C++11. + * g++.old-deja/g++.other/linkage4.C: Likewise. + + PR c++/50973 + * g++.dg/cpp0x/defaulted33.C: New. + +2011-11-10 Andrew MacLeod + + PR middle-end/51038 + * gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models. + * gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and + __atomic_clear. + +2011-11-10 Andrew MacLeod + + PR rtl-optimization/51040 + * testsuite/gcc.dg/atomic-noinline[-aux].c: Test no-inline NAND and + patchup code. + +2011-11-10 Jason Merrill + + PR c++/51079 + * g++.dg/template/conv12.C: New. + + PR debug/50983 + * gcc.dg/debug/dwarf2/asm-line1.c: New. + +2011-11-10 Eric Botcazou + + * gnat.dg/atomic6_1.adb: New test. + * gnat.dg/atomic6_2.adb: Likewise. + * gnat.dg/atomic6_3.adb: Likewise. + * gnat.dg/atomic6_4.adb: Likewise. + * gnat.dg/atomic6_5.adb: Likewise. + * gnat.dg/atomic6_6.adb: Likewise. + * gnat.dg/atomic6_7.adb: Likewise. + * gnat.dg/atomic6_8.adb: Likewise. + * gnat.dg/atomic6_pkg.ads: New helper. + +2011-11-10 Jakub Jelinek + + PR middle-end/51077 + * gcc.c-torture/compile/pr51077.c: New test. + + PR rtl-optimization/51023 + * gcc.c-torture/execute/pr51023.c: New test. + +2011-11-10 Richard Guenther + + PR tree-optimization/51042 + * gcc.dg/torture/pr51042.c: New testcase. + +2011-11-10 Richard Guenther + + PR tree-optimization/51070 + * gcc.dg/torture/pr51070.c: New testcase. + +2011-11-10 Richard Guenther + + PR tree-optimization/51030 + * gcc.dg/tree-ssa/phi-opt-6.c: New testcase. + +2011-11-10 Richard Guenther + + PR middle-end/51071 + * gcc.dg/torture/pr51071.c: New testcase. + +2011-11-10 Eric Botcazou + + * gnat.dg/loop_optimization9.ad[sb]: New test. + +2011-11-10 Ira Rosen + + PR tree-optimization/51058 + * gfortran.dg/vect/pr51058.f90: New test. + +2011-11-10 Jakub Jelinek + + PR tree-optimization/51000 + * gcc.dg/vect/pr51000.c: New test. + +2011-11-09 Paolo Carlini + + PR c++/50837 + * g++.dg/cpp0x/static_assert5.C: New. + * g++.dg/template/nontype13.C: Tweak. + +2011-11-09 Jason Merrill + + PR c++/50972 + * g++.dg/cpp0x/noexcept16.C: New. + + PR c++/51046 + * g++.dg/cpp0x/variadic119.C: New. + +2011-11-09 Jakub Jelinek + + PR target/50911 + * gcc.dg/torture/vshuf-16.inc: Add interleave low and high + permutations. + * gcc.dg/torture/vshuf-32.inc: Likewise. + * gcc.dg/torture/vshuf-4.inc: Likewise. + * gcc.dg/torture/vshuf-8.inc: Likewise. + + * gcc.dg/tm/memopt-1.c: Fix up regexp. + +2011-11-09 Ian Lance Taylor + + * lib/target-supports.exp (check_effective_target_ucontext_h): New + procedure. + * gcc.dg/split-5.c: New test. + +2011-11-09 Patrick Marlier + + * gcc.dg/tm/memopt-1.c: Adjust regexp. + +2011-11-09 Jason Merrill + + PR c++/51029 + * g++.dg/template/virtual1.C: New. + +2011-11-08 Jason Merrill + + Run most C++ tests in both C++98 and C++11 modes. + * lib/target-supports.exp (check_effective_target_c++11): New. + (check_effective_target_c++98): New. + * lib/g++-dg.exp (g++-dg-runtest): New. + * g++.dg/dg.exp: Use g++-dg-runtest. + * g++.dg/charset/charset.exp: Likewise. + * g++.dg/debug/dwarf2/dwarf2.exp: Likewise. + * g++.dg/dfp/dfp.exp: Likewise. + * g++.dg/gcov/gcov.exp: Likewise. + * g++.dg/gomp/gomp.exp: Likewise. + * g++.dg/graphite/graphite.exp: Likewise. + * g++.dg/tls/tls.exp: Likewise. + * g++.dg/tm/tm.exp: Likewise. + * g++.dg/vect/vect.exp: Likewise. + * g++.old-deja/old-deja.exp: Likewise. + * g++.dg/simulate-thread/simulate-thread.exp: Pass -std flags + with some of the torture options. + * g++.dg/abi/mangle4.C: Move to template/nontype25.C. + * g++.dg/template/sfinae6_neg.C: Add C++11 error. + * g++.dg/init/null1.C: Only run in C++98. + * g++.dg/warn/Wconversion-null-3.C: Likewise. + * g++.old-deja/g++.benjamin/p12475.C: Likewise. + * g++.old-deja/g++.brendan/crash64.C: Likewise. + * g++.old-deja/g++.other/anon9.C: Likewise. + * g++.old-deja/g++.other/linkage1.C: Likewise. + * g++.old-deja/g++.other/linkage2.C: Likewise. + * g++.old-deja/g++.pt/t29.C: Likewise. + * g++.old-deja/g++.pt/t30.C: Likewise. + * g++.dg/cpp0x/variadic60.C: Only error in C++98. + * g++.dg/ext/anon-struct4.C: Likewise. + * g++.dg/init/brace2.C: Likewise. + * g++.dg/init/brace6.C: Likewise. + * g++.dg/other/anon3.C: Likewise. + * g++.dg/template/arg2.C: Likewise. + * g++.old-deja/g++.brendan/cvt1.C: Likewise. + * g++.old-deja/g++.brendan/enum11.C: Likewise. + * g++.old-deja/g++.brendan/enum8.C: Likewise. + * g++.old-deja/g++.brendan/enum9.C: Likewise. + * g++.old-deja/g++.brendan/friend3.C: Likewise. + * g++.old-deja/g++.brendan/init2.C: Likewise. + * g++.old-deja/g++.brendan/init4.C: Likewise. + * g++.old-deja/g++.brendan/misc14.C: Likewise. + * g++.old-deja/g++.jason/cond.C: Likewise. + * g++.old-deja/g++.law/init1.C: Likewise. + * g++.old-deja/g++.law/operators32.C: Likewise. + * g++.old-deja/g++.pt/enum6.C: Likewise. + * g++.old-deja/g++.pt/explicit70.C: Likewise. + * g++.old-deja/g++.pt/ptrmem6.C: Likewise. + + * g++.dg/eh/new1.C: Adjust for C++11 mode. + * g++.dg/init/new11.C: Likewise. + * g++.dg/init/pr29571.C: Likewise. + * g++.dg/lookup/forscope2.C: Likewise. + * g++.dg/parse/linkage1.C: Likewise. + * g++.dg/parse/typedef8.C: Likewise. + * g++.dg/template/error44.C: Likewise. + * g++.dg/tls/diag-2.C: Likewise. + * g++.dg/tls/diag-4.C: Likewise. + * g++.dg/warn/anonymous-namespace-3.C: Likewise. + * g++.old-deja/g++.abi/arraynew.C: Likewise. + * g++.old-deja/g++.abi/cxa_vec.C: Likewise. + * g++.old-deja/g++.brendan/new3.C: Likewise. + * g++.old-deja/g++.eh/new1.C: Likewise. + * g++.old-deja/g++.eh/new2.C: Likewise. + * g++.old-deja/g++.jason/new.C: Likewise. + * g++.old-deja/g++.law/friend1.C: Likewise. + * g++.old-deja/g++.mike/net46.C: Likewise. + * g++.old-deja/g++.mike/p755.C: Likewise. + * g++.old-deja/g++.other/new6.C: Likewise. + + * g++.dg/cpp0x/variadic74.C: Adjust diags. + * g++.dg/template/crash53.C: Likewise. + * g++.dg/template/void9.C: Likewise. + +2011-11-09 Paolo Carlini + + PR c++/51045 + * g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New. + +2011-11-09 Paolo Carlini + + PR c++/51047 + * g++.dg/cpp0x/sfinae29.C: New. + +2011-11-09 Janus Weil + + PR fortran/50960 + * gfortran.dg/typebound_call_22.f03: New test case. + +2011-11-09 Janne Blomqvist + + PR libfortran/50016 + * gfortran.dg/inquire_size.f90: Don't flush the unit. + +2011-11-09 Richard Guenther + + PR tree-optimization/51039 + * gcc.dg/pr51039.c: New testcase. + +2011-11-09 Jakub Jelinek + + * lib/target-supports.exp (check_effective_target_vect_cond_mixed): + Enable also for powerpc*-*-*. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/50540 + * gfortran.dg/forall_16.f90: New test. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/38718 + * gfortran.dg/initialization_29.f90: Expand test. + +2011-11-09 Dodji Seketeli + + PR c++/51027 + * g++.dg/cpp0x/alias-decl-12.C: New test. + * g++.dg/ext/alias-decl-attr4.C: Append missing ';'. + +2011-11-09 Dodji Seketeli + + PR debug/51032 + * g++.dg/cpp0x/alias-decl-debug-0.C: New test. + +2011-11-09 Ira Rosen + + PR tree-optimization/51015 + * gcc.dg/vect/pr51015.c: New test. + +2011-11-08 David S. Miller + + * lib/target-supports.exp (check_effective_target_sparc_vis): New. + (check_effective_target_vect_cmdline_needed): Use it when sparc*-*-* + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50404 + * gfortran.dg/io_constraints_3.f90: Improve testcase. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50409 + * gfortran.dg/string_5.f90: Improve testcase. + +2011-10-23 Jason Merrill + + PR c++/50835 + * g++.dg/template/lvalue2.C: New. + +2011-11-08 Michael Matz + + * gcc.dg/tree-ssa/20031015-1.c: Adjust. + * g++.dg/tree-ssa/ehcleanup-1.C: Ditto. + * g++.dg/eh/builtin1.C: Rewrite to not use local variables. + * g++.dg/eh/builtin2.C: Ditto. + * g++.dg/eh/builtin3.C: Ditto. + +2011-11-08 Jakub Jelinek + + * gcc.target/i386/avx-cvt-2.c: Adjust for 32-byte integer vectors + being prefered even for -mavx. + * gcc.target/i386/avx-cvt-3.c: New test. + +2011-11-08 Richard Guenther + + PR tree-optimization/51012 + * gcc.dg/pr51012-1.c: New testcase. + * gcc.dg/pr51012-2.c: Likewise. + +2011-11-08 Richard Guenther + + PR middle-end/51010 + * c-c++-common/uninit-pr51010.c: New testcase. + +2011-11-08 Jakub Jelinek + + * lib/target-supports.exp (check_effective_target_vect_call_sqrtf, + check_effective_target_vect_call_copysignf, + check_effective_target_vect_call_lrint): New procedures. + * gcc.dg/vect/vect.exp: Run fast-math-bb-slp* tests using + $VECT_SLP_CFLAGS with -ffast-math. + * gcc.dg/vect/fast-math-vect-call-1.c: New test. + * gcc.dg/vect/fast-math-vect-call-2.c: New test. + * gcc.dg/vect/fast-math-bb-slp-call-1.c: New test. + * gcc.dg/vect/fast-math-bb-slp-call-2.c: New test. + +2011-11-07 Richard Henderson + Aldy Hernandez + Torvald Riegel + + Merged from transactional-memory. + + * g++.dg/dg.exp: Run transactional memory tests. + * g++.dg/tm: New directory with new tests. + * gcc.dg/tm: New directory with new tests. + * c-c++-common/tm: New directory with new tests. + +2011-11-08 Dodji Seketeli + + Fix context handling of alias-declaration + * g++.dg/cpp0x/alias-decl-11.C: New test. + +2011-11-08 Paolo Carlini + + PR c++/50864 + * g++.dg/parse/template26.C: New. + * g++.dg/template/crash45.C: Adjust dg-error string. + +2011-11-07 Jason Merrill + + PR c++/50848 + * g++.dg/template/lookup9.C: New. + + PR c++/50863 + * g++.dg/cpp0x/lambda/lambda-initlist1.C: New. + + PR c++/50870 + * g++.dg/cpp0x/decltype35.C: New. + +2011-11-07 Dodji Seketeli + + Support C++11 alias-declaration + PR c++/45114 + * g++.dg/cpp0x/alias-decl-0.C: New test case. + * g++.dg/cpp0x/alias-decl-1.C: Likewise. + * g++.dg/cpp0x/alias-decl-3.C: Likewise. + * g++.dg/cpp0x/alias-decl-4.C: Likewise. + * g++.dg/cpp0x/alias-decl-6.C: Likewise. + * g++.dg/cpp0x/alias-decl-7.C: Likewise. + * g++.dg/cpp0x/alias-decl-8.C: Likewise. + * g++.dg/cpp0x/alias-decl-9.C: Likewise. + * g++.dg/cpp0x/alias-decl-10.C: Likewise. + * g++.dg/ext/alias-decl-attr1.C: Likewise. + * g++.dg/ext/alias-decl-attr2.C: Likewise. + * g++.dg/ext/alias-decl-attr3.C: Likewise. + * g++.dg/ext/alias-decl-attr4.C: Likewise. + +2011-11-07 Eric Botcazou + + * gcc.dg/pragma-align-2.c: Compile with -std=gnu99. + +2011-11-07 Janus Weil + + PR fortran/50919 + * gfortran.dg/typebound_call_21.f03: New. + +2011-11-07 Nathan Sidwell + + * gcc.dg/profile-dir-1.c: Adjust final scan. + * gcc.dg/profile-dir-2.c: Adjust final scan. + * gcc.dg/profile-dir-3.c: Adjust final scan. + * gcc.misc-tests/gcov.exp: Adjust regexp. + * gcc.misc-tests/gcov-12.c: New. + * gcc.misc-tests/gcov-13.c: New. + * gcc.misc-tests/gcovpart-13b.c: New. + * gcc.misc-tests/gcov-14.c: New. + +2011-11-07 Jason Merrill + + PR c++/35688 + * g++.dg/ext/visibility/template8.C: New. + +2011-11-07 Jakub Jelinek + + PR tree-optimization/50789 + * gcc.target/i386/avx2-gather-1.c: New test. + * gcc.target/i386/avx2-gather-2.c: New test. + * gcc.target/i386/avx2-gather-3.c: New test. + * gcc.target/i386/avx2-gather-4.c: New test. + +2011-11-07 Uros Bizjak + + * gcc.target/i386/pr49781-1.c (dg-options): Add -mtune=generic. + +2011-11-07 Janne Blomqvist + + PR libfortran/45723 + * gfortran.dg/open_dev_null.f90: Remove testcase. + +2011-11-07 Uros Bizjak + + * lib/target-supports.exp (check_effective_target_sync_int_128): + Don't cache the result. + (check_effective_target_sync_long_long): Ditto. + +2011-11-07 Sergey Ostanevich + + PR rtl-optimization/47698 + * gcc.target/i386/47698.c: New test. + +2011-11-06 Jason Merrill + + PR c++/35688 + * g++.dg/ext/visibility/template7.C: New. + +2011-11-07 Terry Guo + + * gcc.target/arm/wmul-1.c: Adjust optimization level. + * gcc.target/arm/wmul-2.c: Ditto. + * gcc.target/arm/wmul-3.c: Ditto. + * gcc.target/arm/wmul-4.c: Ditto. + +2011-11-06 Joseph Myers + + * g++.dg/cpp0x/alignof3.C, gcc.dg/c1x-align-1.c, + gcc.dg/c1x-align-2.c, gcc.dg/c1x-align-3.c, gcc.dg/c1x-align-4.c, + gcc.dg/c90-align-1.c, gcc.dg/c99-align-1.c: New tests. + * gcc.dg/gnu89-const-expr-1.c, gcc.dg/gnu90-const-expr-1.c, + gcc.dg/gnu99-const-expr-1.c, gcc.dg/gnu99-static-1.c: Update + expected diagnostics. + +2011-11-06 Andrew MacLeod + Richard Henderson + Aldy Hernandez + + Merged from cxx-mem-model. + + * lib/target-supports.exp (check_effective_target_sync_int_128, + check_effective_target_sync_long_long): Check whether the target + supports 64 and 128 bit __sync builtins. + (check_effective_target_cas_char): New. + (check_effective_target_cas_int): New. + * gcc.dg/dg.exp: Exclude simulate-thread tests. + * gcc.dg/atomic-noinline[-aux].c: New. Make a variety of atomics calls. + * gcc.dg/atomic-generic[-aux].c: New. Test that generic functions + produce the expected library calls. + * gcc.dg/atomic-fence.c: New functional tests. + * gcc.dg/atomic-param.c: New. Checl for illegal number of parameters. + * gcc.dg/atomic-invalid.c: New. Test invalid parameters. + * gcc.dg/atomic-lockfree[-aux].c: New tests. + * gcc.dg/atomic-compare-exchange-{1-5}.c: New functional tests. + * gcc.dg/atomic-op-[1-5].c: New. Test atomic fetch functionality. + * gcc.dg/atomic-exchange-{1-5}.c: New functional tests. + * gcc.dg/atomic-load-{1-5}.c: New functional tests. + * gcc.dg/atomic-store-{1-5}.c: New functional tests. + * gcc.dg/simulate-thread/atomic-load-int128.c: New. Verify int128 loads + are atomic. + * gcc.dg/simulate-thread/atomic-load-longlong.c: New. Verify 8 byte + loads are atomic. + * gcc.dg/simulate-thread/atomic-load-int.c: New. Verify 4 byte loads + are atomic. + * gcc.dg/simulate-thread/atomic-load-short.c: New. Verify 2 byte loads + are atomic. + * gcc.dg/simulate-thread/atomic-other-int128.c: New. Verify other + int128 operations are atomic. + * gcc.dg/simulate-thread/atomic-other-int.c: New. Verify other 4 byte + operations are atomic. + * gcc.dg/simulate-thread/atomic-other-longlong.c: New. Verify 8 byte + operations are atomic. + * gcc.dg/simulate-thread/atomic-other-short.c: New. Verify other 2 byte + operations are atomic. + * gcc.dg/simulate-thread/speculative-store.c: New. Verify speculative + stores aren't moved out of a loop. + * gcc.dg/simulate-thread/strict-align-global.c: New. Verify small + globals don't overwrite neighbouring globals. + * gcc.dg/simulate-thread/subfields.c: New. Verify struct component + writes dont overwrite neighbouring components. + * c-c++-common/gomp/atomic-10.c: Use cas_int; match __atomic builtin. + * c-c++-common/gomp/atomic-3.c: Likewise. + * c-c++-common/gomp/atomic-9.c: Likewise. + * gcc.dg/gomp/atomic-1.c, gcc.dg/gomp/atomic-2.c, + gcc.dg/gomp/atomic-3.c, gcc.dg/gomp/atomic-4.c, gcc.dg/gomp/atomic-7.c, + gcc.dg/gomp/atomic-8.c, gcc.dg/gomp/atomic-9.c, + gcc.dg/gomp/atomic-10.c, gcc.dg/gomp/atomic-12.c, + gcc.dg/gomp/atomic-13.c, gcc.dg/gomp/atomic-14.c, + gcc.dg/gomp/atomic-15.c: Move to c-c++-common/gomp/. + * g++.dg/gomp/atomic-1.C, g++.dg/gomp/atomic-2.C, + g++.dg/gomp/atomic-3.C, g++.dg/gomp/atomic-4.C, g++.dg/gomp/atomic-7.C, + g++.dg/gomp/atomic-8.C, g++.dg/gomp/atomic-9.C, + g++.dg/gomp/atomic-10.C, g++.dg/gomp/atomic-11.C, + g++.dg/gomp/atomic-12.C, g++.dg/gomp/atomic-13.C, + g++.dg/gomp/atomic-15.C: Remove. + * gcc.dg/gomp/gomp.exp, g++.dg/gomp/gomp.exp: Run c-c++-common tests. + * gcc.dg/gomp/atomic-11.c: Remove test. + +2011-11-06 Ira Rosen + + * gcc.dg/vect/bb-slp-cond-1.c: New test. + * gcc.dg/vect/slp-cond-1.c: New test. + * gcc.dg/vect/slp-cond-2.c: New test. + +2011-11-05 David S. Miller + + * lib/test-supports.exp + (check_effective_target_ultrasparc_vis2_hw): New proc. + (check_effective_target_ultrasparc_vis3_hw): New proc. + * gcc.target/sparc/vec-init-1.inc: New vector init common code. + * gcc.target/sparc/vec-init-2.inc: Likewise. + * gcc.target/sparc/vec-init-3.inc: Likewise. + * gcc.target/sparc/vec-init-1-vis1.c: New test. + * gcc.target/sparc/vec-init-1-vis2.c: New test. + * gcc.target/sparc/vec-init-1-vis3.c: New test. + * gcc.target/sparc/vec-init-2-vis1.c: New test. + * gcc.target/sparc/vec-init-2-vis2.c: New test. + * gcc.target/sparc/vec-init-2-vis3.c: New test. + * gcc.target/sparc/vec-init-3-vis1.c: New test. + * gcc.target/sparc/vec-init-3-vis2.c: New test. + * gcc.target/sparc/vec-init-3-vis3.c: New test. + +2011-11-05 Joern Rennecke + + * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: + Disable test on Epiphany. + * gcc.c-torture/execute/20101011-1.c: Disable test on Epiphany. + * gcc.dg/stack-usage-1.c [__epiphany__] (SIZE): Define. + * gcc.dg/pragma-pack-3.c: Disable test on Epiphany. + * g++.dg/parse/pragma3.C: Likewise. + * stackalign/builtin-apply-2.c (STACK_ARGUMENTS_SIZE): Define. + (bar): Use it. + * gcc.dg/weak/typeof-2.c [epiphany-*-*]: Add option -mshort-calls. + * gcc.dg/tls/thr-cse-1.c: Likewise. + * g++.dg/opt/devirt2.C: Likewise. + * gcc.dg/20020312-2.c [epiphany-*-*] (PIC_REG): Define. + * gcc.dg/builtin-apply2.c [__epiphany__]: (STACK_ARGUMENTS_SIZE): 20. + * gcc.target/epiphany: New directory. + +2011-11-05 Tobias Burnus + + * gfortran.dg/quad_2.f90: New. + +2011-11-05 Eric Botcazou + + * gcc.dg/strlenopt-22g.c: New wrapper around... + * gcc.dg/strlenopt-22.c: ...this. Do not define USE_GNU and adjust. + +2011-11-04 Jason Merrill + + PR c++/26714 + * g++.dg/init/lifetime2.C: New. + * g++.dg/cpp0x/initlist-lifetime2.C: New. + + PR c++/48370 + * g++.dg/init/lifetime1.C: Test cleanup order. + +2011-11-04 Eric Botcazou + + * g++.dg/other/offsetof7.C: New test. + +2011-11-04 Hans-Peter Nilsson + + * lib/gcc-dg.exp (gcc_force_conventional_output): New global + variable, default empty, -ffat-lto-objects for effective_target_lto. + (gcc-dg-test-1): Add options from dg-final methods. + * lib/scanasm.exp (scan-assembler_required_options) + (scan-assembler-not_required_options): New procs. + +2011-10-09 Magnus Fromreide + + * g++.dg/cpp0x/enum21a.C: Test that enum x { y, } does + generate a pedwarn in c++98-mode. + * g++.dg/cpp0x/enum21b.C: Test that enum x { y, } + don't generate a pedwarn in c++0x-mode. + +2011-11-04 Olivier Goffart + + PR c++/50965 + * g++.dg/cpp0x/nsdmi1.C: Add more cases. + +2011-11-04 Jiangning Liu + + PR rtl-optimization/38644 + * gcc.target/arm/stack-red-zone.c: New. + +2011-11-04 Paolo Carlini + + PR c++/48420 + * g++.dg/warn/Wconversion-null-3.C: New. + +2011-11-04 Ed Smith-Rowland <3dw4rd@verizon.net> + + PR c++/50941 + * g++.dg/cpp0x/udlit-strint-length.C: New. + +2011-11-04 Jason Merrill + + PR c++/48370 + * g++.dg/cpp0x/initlist-lifetime1.C: New. + * g++.dg/init/lifetime1.C: New. + * g++.dg/init/ref21.C: New. + * g++.dg/eh/array1.C: New. + +2011-11-04 Tom de Vries + + PR tree-optimization/50763 + * gcc.dg/pr50763-5.c: New test. + +2011-11-04 Tom de Vries + + PR tree-optimization/50763 + * g++.dg/pr50763-4.C: New test. + +2011-11-04 Jakub Jelinek + + * gcc.dg/torture/vec-cvt-1.c: Enable commented out inttoflttestui + test. + + * gcc.dg/torture/vec-cvt-1.c: Enable flttointtestui test. + + * gcc.dg/torture/vec-cvt-1.c: New test. + +2011-11-04 Eric Botcazou + + * gnat.dg/specs/private1[-sub].ads: New test. + +2011-11-04 Mikael Morin + + PR fortran/43829 + * gfortran.dg/function_optimize_7.f90: Disable sum inlining. + * gfortran.dg/inline_sum_1.f90: New. + * gfortran.dg/inline_sum_2.f90: New. + * gfortran.dg/inline_sum_bounds_check_1.f90: New. + * gfortran.dg/inline_sum_bounds_check_2.f90: New. + * gfortran.dg/inline_product_1.f90: New. + +2011-11-03 Tobias Burnus + + PR fortran/50933 + * gfortran.dg/bind_c_dts_5.f90: New. + +2011-11-03 Tobias Burnus + + PR fortran/50960 + * gfortran.dg/module_parameter_array_refs_2.f90: New. + +2011-11-03 Richard Guenther + + PR middle-end/50079 + * g++.dg/init/copy7.C: Remove testcase. + +2011-11-03 Martin Jambor + + * g++.dg/ipa/devirt-c-1.C: Add dump scans. + * g++.dg/ipa/devirt-c-2.C: Likewise. + * g++.dg/ipa/devirt-c-7.C: New test. + * g++.dg/ipa/devirt-c-8.C: Likewise. + +2011-11-03 Ira Rosen + + PR tree-optimization/50912 + * gnat.dg/loop_optimization10.ad[sb]: New test. + * gnat.dg/loop_optimization10_pkg.ads: New helper. + +2011-11-02 Jason Merrill + + PR c++/50930 + * g++.dg/cpp0x/nsdmi-list2.C: New. + +2011-11-02 Paolo Carlini + + PR c++/50810 + * g++.dg/cpp0x/warn_cxx0x2.C: New. + * g++.dg/cpp0x/warn_cxx0x3.C: Likewise. + +2011-11-02 Tom de Vries + + PR tree-optimization/50769 + * gfortran.dg/pr50769.f90: New test. + +2011-11-02 Eric Botcazou + + * gcc.target/sparc/20111102-1.c: New test. + +2011-11-02 Paolo Carlini + + PR c++/50956 + * g++.dg/warn/Wcast-qual2.C: New. + +2011-11-02 Tom de Vries + + PR tree-optimization/50763 + * g++.dg/pr50763-3.C: New test. + +2011-11-02 Tom de Vries + + PR tree-optimization/50672 + * g++.dg/pr50672.C: New test. + +2011-11-02 Uros Bizjak + + * gcc.target/i386/avx-cvt-2.c (dg-options): Add -mtune=generic. + * gcc.target/i386/avx2-cvt-2.c (dg-options): Ditto. + * gcc.target/i386/sse2-cvt-2.c (dg-options): Ditto. + + * gcc.target/i386/vectorize4-avx.c (scan-assembler): Remove xfail. + +2011-11-02 Richard Guenther + + PR tree-optimization/50902 + * gcc.dg/torture/pr50902.c: New testcase. + +2010-11-02 Richard Guenther + + PR tree-optimization/50890 + * gcc.dg/torture/pr50890.c: New testcase. + +2011-11-01 Paolo Carlini + + PR c++/44277 + * g++.dg/warn/Wzero-as-null-pointer-constant-1.C: New. + * g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C: Likewise. + +2011-11-01 Tom de Vries + + PR tree-optimization/50908 + * gcc.dg/pr50908.c: New test. + * gcc.dg/pr50908-2.c: Same. + * gcc.dg/pr50908-3.c: Same. + +2011-11-01 Ira Rosen + + * gcc.dg/vect/no-scevccp-outer-6-global.c: Expect to vectorize + the outer loop. Remove comment. Don't check for widen-mult. + +2011-10-31 Martin Jambor + + * gcc.dg/ipa/ipcp-4.c: New test. + +2011-10-31 Jakub Jelinek + + * gcc.dg/vshift-3.c: New test. + * gcc.dg/vshift-4.c: New test. + * gcc.dg/vshift-5.c: New test. + +2011-10-31 Janne Blomqvist + + * gfortran.dg/inquire_5.f90: Update testcase to match the standard + and current implementation. + +2011-10-31 Paul Brook + + * gcc.dg/constructor-1.c: New test. + +2011-10-30 Steven G. Kargl + + PR fortran/50753 + * gfortran.dg/dshift_3.f90: New test. + +2011-10-30 John David Anglin + + * gcc.dg/scal-to-vec2.c (dg-options): Add -fno-common to options on + hppa*-*-hpux*. + * gcc.dg/torture/vshuf-v8hi.c: Likewise. + * gcc.dg/torture/vshuf-v4si.c: Likewise. + * gcc.dg/torture/vshuf-v8si.c: Likewise. + * gcc.dg/torture/vshuf-v32qi.c: Likewise. + * gcc.dg/torture/vshuf-v4di.c: Likewise. + * gcc.dg/torture/vshuf-v2df.c: Likewise. + * gcc.dg/torture/vshuf-v16qi.c: Likewise. + * gcc.dg/torture/vshuf-v4sf.c: Likewise. + * gcc.dg/torture/vshuf-v8sf.c: Likewise. + * gcc.dg/torture/vshuf-v2di.c: Likewise. + * gcc.dg/torture/vshuf-v16hi.c: Likewise. + * gcc.dg/torture/vshuf-v4df.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-31.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-33.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-34.c: Likewise. + * gcc.dg/vector-compare-2.c: Likewise. + +2011-10-29 Paolo Carlini + + PR c++/50901 + * g++.dg/cpp0x/pr50901.C: New. + +2011-10-29 Uros Bizjak + + * gcc.target/i386/fma-check.h (main): Use return 0 instead of exit (0). + * gcc.target/i386/fma4-check.h (main): Ditto. + * gcc.target/i386/xop-check.h (main): Ditto. + +2011-10-28 Paolo Carlini + + Revert: + 2011-10-28 Paolo Carlini + + PR c++/50864 + * g++.dg/template/crash109.C: New. + +2011-10-28 Jason Merrill + + * c-c++-common/dfp/pr33466.c: Adjust for user-defined literals. + +2011-10-28 Paolo Carlini + + PR c++/50864 + * g++.dg/template/crash109.C: New. + +2011-10-28 Steven G. Kargl + + * gfortran.dg/nearest_5.f90: New test. + +2011-10-28 Jakub Jelinek + + * gcc.dg/vshift-1.c: New test. + * gcc.dg/vshift-2.c: New test. + * gcc.target/i386/xop-vshift-1.c: New test. + * gcc.target/i386/xop-vshift-2.c: New test. + * gcc.target/i386/avx2-vshift-1.c: New test. + +2011-10-28 Chung-Lin Tang + + PR rtl-optimization/49720 + * g++.dg/torture/pr49720.C: New test. + +2011-10-27 David S. Miller + + * gcc.target/sparc/setcc-3.c: New test. + +2011-10-27 Roberto Agostino Vitillo + + PR c++/30066 + * g++.dg/ext/visibility/fvisibility-inlines-hidden-4.C: New test. + +2011-10-27 Jakub Jelinek + + * gcc.target/i386/sse2-cvt-1.c: New test. + * gcc.target/i386/sse2-cvt-2.c: New test. + * gcc.target/i386/avx-cvt-1.c: New test. + * gcc.target/i386/avx-cvt-2.c: New test. + * gcc.target/i386/avx2-cvt-1.c: New test. + * gcc.target/i386/avx2-cvt-2.c: New test. + +2011-10-27 Martin Jambor + + * g++.dg/tree-ssa/pr45605.C: Scan fre1 dump and unxfail. + +2011-10-27 Uros Bizjak + Steven G. Kargl + + PR target/50875 + * gfortran.dg/pr50875.f90: New test. + +2011-10-26 David S. Miller + + * gcc.target/sparc/fmaf-1.c: New test. + + * gcc.target/sparc/setcc-1.c: New test. + * gcc.target/sparc/setcc-2.c: New test. + +2011-10-26 Joseph Myers + + * gcc.dg/tls/thr-cse-1.c: For i?86-*-mingw*, check for multiple calls. + +2011-10-26 Joseph Myers + + * gcc.dg/graphite/run-id-1.c: Pass -Wl,--stack,12582912 option for + Windows targets. + +2011-10-26 Joseph Myers + + * gcc.target/i386/pr37843-4.c: Allow for leading underscores on + symbol names. + +2011-10-26 Joseph Myers + + * gcc.target/i386/pad-4.c: Skip for Windows targets. + +2011-10-26 Eric Botcazou + + * gnat.dg/specs/discr1.ads: New test. + * gnat.dg/specs/discr1_pkg.ads: New helper. + +2011-10-26 Eric Botcazou + + * gnat.dg/specs/unchecked_union.ads: Rename to... + * gnat.dg/specs/unchecked_union1.ads: ...this. + * gnat.dg/specs/unchecked_union2.ads: New test. + +2011-10-26 Eric Botcazou + + * gnat.dg/specs/atomic1.ads: New test. + +2011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net> + + Implement C++11 user-defined literals. + * g++.dg/cpp0x/udlit-addr.C: New. + * g++.dg/cpp0x/udlit-args.C: New. + * g++.dg/cpp0x/udlit-args-neg.C: New. + * g++.dg/cpp0x/udlit-clink-neg.C: New. + * g++.dg/cpp0x/udlit-concat.C: New. + * g++.dg/cpp0x/udlit-concat-neg.C: New. + * g++.dg/cpp0x/udlit-constexpr.C: New. + * g++.dg/cpp0x/udlit-cpp98-neg.C: New. + * g++.dg/cpp0x/udlit-declare-neg.C: New. + * g++.dg/cpp0x/udlit-friend.C: New. + * g++.dg/cpp0x/udlit-general.C: New. + * g++.dg/cpp0x/udlit-inline.C: New. + * g++.dg/cpp0x/udlit-linkage-neg.C: New. + * g++.dg/cpp0x/udlit-member-neg.C: New. + * g++.dg/cpp0x/udlit-namespace.C: New. + * g++.dg/cpp0x/udlit-nofunc-neg.C: New. + * g++.dg/cpp0x/udlit-nonempty-str-neg.C: New. + * g++.dg/cpp0x/udlit-nospace-neg.C: New. + * g++.dg/cpp0x/udlit-nosuffix-neg.C: New. + * g++.dg/cpp0x/udlit-nounder-neg.C: New. + * g++.dg/cpp0x/udlit-operator-neg.C: New. + * g++.dg/cpp0x/udlit-raw-str.C: New. + * g++.dg/cpp0x/udlit-shadow-neg.C: New. + * g++.dg/cpp0x/udlit-suffix-neg.C: New. + * g++.dg/cpp0x/udlit-systemheader.C: New. + * g++.dg/cpp0x/udlit-template.C: New. + * g++.dg/cpp0x/udlit-tmpl-arg.C: New. + * g++.dg/cpp0x/udlit-tmpl-arg-neg.C: New. + * g++.dg/cpp0x/udlit-tmpl-parms.C: New. + * g++.dg/cpp0x/udlit-tmpl-parms-neg.C: New. + * g++.dg/cpp0x/udlit_system_header: New. + +2011-10-26 Paolo Carlini + + PR c++/50870 + * g++.dg/cpp0x/decltype34.C: New. + +2011-10-26 Tom de Vries + + * gcc.c-torture/unsorted/HIcmp.c: Fix unaligned pointer. + * gcc.c-torture/unsorted/HIset.c: Same. + * gcc.c-torture/unsorted/SIcmp.c: Same. + * gcc.c-torture/unsorted/SIset.c: Same. + * gcc.c-torture/unsorted/SFset.c: Same. + * gcc.c-torture/unsorted/UHIcmp.c: Same. + * gcc.c-torture/unsorted/USIcmp.c: Same. + * gcc.c-torture/unsorted/DFcmp.c: Same. + +2011-10-26 Jakub Jelinek + + * gcc.target/i386/avx2-i32gatherd-1.c: Adjust scan-assembler regex + to work also with -masm=intel and additionally test the xmm vs. ymm + register type combination on mask/dest and in vsib. + * gcc.target/i386/avx2-i32gatherd256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherd256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherd-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherps-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherps256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherps256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherps-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherq-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherq256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherq256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherq-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherd-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherd256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherd256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherd-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherps-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherps256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherps256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherps-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherq-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherq256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherq256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherq-3.c: Likewise. + +2011-10-26 Tom de Vries + + PR tree-optimization/50763 + * gcc.dg/pr50763-2.c: New test. + +2011-10-25 Joseph Myers + + * gcc.dg/format/ms_c90-printf-1.c, gcc.dg/format/ms_c90-scanf-1.c: + Update expected messages. + +2011-10-25 Eric Botcazou + + * gcc.dg/vect/slp-multitypes-2.c: Do not XFAIL on SPARC 32-bit. + +2011-10-25 Jason Merrill + + PR c++/50866 + * g++.dg/init/aggr7.C: New. + + PR c++/49996 + * g++.dg/cpp0x/initlist59.C: New. + +2011-10-25 Paolo Carlini + + PR c++/50858 + * g++.dg/overload/operator5.C: New. + +2011-10-25 Paolo Carlini + + PR c++/50861 + * g++.dg/template/crash108.C: New. + +2011-10-25 Jakub Jelinek + + PR tree-optimization/50596 + * gcc.dg/vect/vect-cond-10.c: New test. + +2011-10-24 Joey Ye + + * gcc.target/arm/pr42575.c: Remove architecture option. + +2011-10-24 David S. Miller + + * gcc.target/sparc/vis3move-1.c: New test. + * gcc.target/sparc/vis3move-2.c: New test. + * gcc.target/sparc/vis3move-3.c: New test. + +2011-10-24 Andreas Krebbel + + * gcc.dg/strlenopt-22.c: New testcase. + * gcc.dg/strlenopt-4.c: Change scan value for s390(x). + +2011-10-24 Uros Bizjak + + * gcc.target/i386/sse-5.c (dg-options): Add -mno-sse. + Remove -march=i386. + (dg-skip-if): Remove. + * gcc.target/i386/funcspec-1.c: Ditto. + * gcc.target/i386/funcspec-3.c (dg-options): Add -mno-sse3. + +2011-10-24 Richard Guenther + + * gcc.dg/vect/vect-bool-1.c: New testcase. + +2011-10-24 Richard Guenther + + PR tree-optimization/50838 + * gcc.dg/torture/pr50838.c: New testcase. + +2011-10-24 Ira Rosen + + PR tree-optimization/50730 + * gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: New test. + * gcc.dg/vect/vect.exp: Run no-tree-sra-bb-slp* tests with + -fno-tree-sra and SLP flags. + +2011-10-23 Paolo Carlini + + PR c++/50841 + Revert: + 2011-10-23 Paolo Carlini + + PR c++/50810 + * g++.dg/cpp0x/warn_cxx0x2.C: New. + * g++.dg/cpp0x/warn_cxx0x3.C: Likewise. + +2011-10-23 Paolo Carlini + + PR c++/50810 + * g++.dg/cpp0x/warn_cxx0x2.C: New. + * g++.dg/cpp0x/warn_cxx0x3.C: Likewise. + +2011-10-23 Tom de Vries + + PR tree-optimization/50763 + * gcc.dg/pr50763.c: New test. + +2011-10-23 Uros Bizjak + + PR target/50788 + * gcc.target/i386/pr50788.c: New test. + +2011-10-23 Ira Rosen + + PR tree-optimization/50819 + * g++.dg/vect/vect.exp: Set target dependent flags for slp-* tests. + * g++.dg/vect/slp-pr50819.cc: New test. + +2011-10-21 Paolo Carlini + + PR c++/45385 + * g++.dg/warn/Wconversion4.C: New. + +2011-10-21 Jakub Jelinek + + PR target/50813 + * gcc.dg/torture/vshuf-32.inc: Add broadcast permutation + from element other than first and reverse permutation. + * gcc.dg/torture/vshuf-16.inc: Likewise. + * gcc.dg/torture/vshuf-8.inc: Likewise. + * gcc.dg/torture/vshuf-4.inc: Likewise. + +2011-10-21 Paolo Carlini + + PR c++/31423 + * g++.dg/parse/error43.C: New. + * g++.dg/parse/error44.C: Likewise. + +2011-10-21 H.J. Lu + Kirill Yukhin + + PR target/50740 + * gcc.target/i386/avx2-check.h (main): Check CPUID level correctly. + * gcc.target/i386/bmi2-check.h: Ditto. + +2011-10-21 Ville Voutilainen + + PR c++/50811 + * g++.dg/cpp0x/override2.C: Add test. + +2011-10-21 Rainer Orth + + * lib/gcc-dg.exp (GCC_UNDER_TEST): Set before calling + check_linker_plugin_available. + +2011-10-21 Kai Tietz + + * gcc.target/i386/branch-cost1.c: New test. + * gcc.target/i386/branch-cost2.c: New test. + * gcc.target/i386/branch-cost3.c: New test. + * gcc.target/i386/branch-cost4.c: New test. + +2011-10-20 Steve Ellcey + + * gcc.dg/vect/vect-120.c: Add vect_floatint_cvt requirement. + +2011-10-20 Steve Ellcey + + PR testsuite/50722 + * gcc.dg/pr49994-3.c: Skip on HP-UX. + +2011-10-20 Joseph Myers + + * gcc.dg/lto/pr46940_0.c (ASMNAME, ASMNAME2, STRING): Define. + (_moz_foo, EXT__foo): Use ASMNAME. + +2011-10-20 Joseph Myers + + * lib/lto.exp (lto-execute): Use .exe suffix for test executable + names. + +2011-10-20 Kirill Yukhin + + PR target/50766 + * gcc.target/i386/pr50766.c: New test. + +2011-10-20 Jason Merrill + + PR c++/41449 + * g++.dg/eh/partial1.C: New. + +2011-10-20 Richard Henderson + + * gcc.target/i386/vperm-v2df.c, gcc.target/i386/vperm-v2di.c, + gcc.target/i386/vperm-v4sf-1.c, gcc.target/i386/vperm-v4sf-2.c, + gcc.target/i386/vperm-v4si-1.c, gcc.target/i386/vperm-v4si-2.c: + Use __builtin_shuffle. + +2011-10-20 Steven G. Kargl + + PR fortran/50514 + * gfortran.dg/ishft_3.f90: Update test. + +2011-10-20 Steven G. Kargl + + PR fortran/50524 + * gfortran.dg/substring_integer_index.f90: New test. + +2011-10-20 Steven G. Kargl + + * gfortran.dg/format_string.f: New test. + +2011-10-20 Uros Bizjak + + * gcc.dg/ipa/ipa-sra-2.c: Add dg-require-effective-target + non_strict_align. + * gcc.dg/ipa/ipa-sra-6.c: Ditto. + +2011-10-20 Joseph Myers + + * gcc.target/i386/pr40906-1.c, gcc.target/i386/pr40906-2.c, + gcc.target/i386/pr46226.c: Do not use + -mno-accumulate-outgoing-args. + +2011-10-20 Joseph Myers + + * gcc.dg/tree-prof/val-prof-7.c: Declare bzero instead of + including . + +2011-10-19 Jan Hubicka + + * lib/lto.exp (lto_init): Test slim lto and no-linker-plugin path. + * lib/gcc-dg.exp (check_effective_target_lto): Likewise. + * lib/c-torture.exp: Likewise. + * gcc.c-torture/execute/builtins/strstr-asm.c: Force fat LTO. + * gcc.c-torture/compile/sync-1.c: Likewise. + * gcc.c-torture/compile/sync-1.c: Likewise. + * gcc.c-torture/compile/sync-3.c: Likewise. + * gcc.dg/noncompile/invalid_asm.c: Likewise. + * gcc.dg/noncompile/920507-1.c: Likewise. + * gcc.dg/torture/pr36400.c: Likewise. + * g++.dg/torture/pr34850.C: Likewise. + +2011-10-20 Eric Botcazou + + * gnat.dg/source_ref1.adb: New test. + * gnat.dg/source_ref2.adb: Likewise. + +2011-10-19 Paolo Carlini + + PR c++/13657 + * g++.dg/parse/error42.C: New. + * g++.old-deja/g++.other/ptrmem7.C: Tweak dg-errors. + +2011-10-19 Jason Merrill + + PR c++/50793 + * g++.dg/init/value9.C: New. + +2011-10-19 Jakub Jelinek + + * gcc.dg/torture/vshuf-32.inc: Add interleave permutations. + * gcc.dg/torture/vshuf-16.inc: Likewise. + * gcc.dg/torture/vshuf-8.inc: Likewise. + * gcc.dg/torture/vshuf-4.inc: Likewise. + +2011-10-19 Janus Weil + + PR fortran/47023 + * gfortran.dg/sizeof_proc.f90: New. + +2011-10-19 Joseph Myers + + * g++.dg/compat/struct-layout-1_generate.c: Also pass -mno-mmx + -Wno-abi for i?86-*-mingw32* x86_64-*-mingw32* i?86-*-cygwin*. + +2011-10-19 Uros Bizjak + + PR testsuite/50796 + * gcc.dg/plugin/plugindir?.c Update dg-prune-output. + +2011-10-19 Jason Merrill + + PR c++/50787 + * g++.dg/init/ref20.C: New. + +2011-10-19 Kai Tietz + + PR middle-end/50795 + * gcc.dg/tree-ssa/builtin-expect-1.c: Adjust test. + * gcc.dg/tree-ssa/builtin-expect-2.c: Adjust test. + * gcc.dg/tree-ssa/builtin-expect-3.c: Adjust test. + * gcc.dg/tree-ssa/builtin-expect-4.c: Adjust test. + * gcc.dg/tree-ssa/builtin-expect-5.c: Adjust test. + +2011-10-19 Richard Guenther + + PR middle-end/50768 + * gcc.dg/torture/pr50768.c: New testcase. + +2011-10-19 Alexander Monakov + + PR rtl-optimization/50340 + * gcc.dg/pr50340.c: New. + +2011-10-18 Andrew Stubbs + + PR tree-optimization/50717 + + * gcc.dg/pr50717-1.c: New file. + * gcc.target/arm/wmul-12.c: Correct types. + * gcc.target/arm/wmul-8.c: Correct types. + +2011-10-18 Jason Merrill + + PR c++/50531 + * g++.dg/cpp0x/defaulted32.C: New. + + PR c++/50742 + * g++.dg/lookup/using23.C: New. + + PR c++/50500 + * g++.dg/cpp0x/implicit12.C: New. + * g++.dg/cpp0x/defaulted20.C: Adjust. + * g++.dg/cpp0x/defaulted21.C: Adjust. + * g++.dg/cpp0x/implicit-copy.C: Adjust. + * g++.dg/cpp0x/implicit4.C: Adjust. + * g++.dg/cpp0x/implicit5.C: Adjust. + * g++.dg/cpp0x/implicit8.C: Adjust. + * g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust. + * g++.dg/cpp0x/not_special.C: Adjust. + * g++.dg/cpp0x/rv-trivial-bug.C: Adjust. + * g++.dg/cpp0x/rv1n.C: Adjust. + * g++.dg/cpp0x/rv2n.C: Adjust. + * g++.dg/cpp0x/rv3n.C: Adjust. + * g++.dg/cpp0x/rv4n.C: Adjust. + * g++.dg/cpp0x/rv5n.C: Adjust. + * g++.dg/cpp0x/rv6n.C: Adjust. + * g++.dg/cpp0x/rv7n.C: Adjust. + +2011-10-18 Kirill Yukhin + + * gcc.target/i386/avx2-vpop-check.h: New header. + * gcc.target/i386/avx2-vpaddd-3.c: New test. + * gcc.target/i386/avx2-vpaddw-3.c: Ditto. + * gcc.target/i386/avx2-vpaddb-3.c: Ditto. + * gcc.target/i386/avx2-vpaddq-3.c: Ditto. + * gcc.target/i386/avx2-vpand-3.c: Ditto. + * gcc.target/i386/avx2-vpmulld-3.c: Ditto. + * gcc.target/i386/avx2-vpmullw-3.c: Ditto. + * gcc.target/i386/avx2-vpsrad-3.c: Ditto. + * gcc.target/i386/avx2-vpsraw-3.c: Ditto. + * gcc.target/i386/avx2-vpsrld-3.c: Ditto. + * gcc.target/i386/avx2-vpsrlw-3.c: Ditto. + * gcc.target/i386/avx2-vpsubb-3.c: Ditto. + * gcc.target/i386/avx2-vpsubd-3.c: Ditto. + * gcc.target/i386/avx2-vpsubq-3.c: Ditto. + * gcc.target/i386/avx2-vpsubw-3.c: Ditto. + +2011-10-18 Mikael Morin + + PR fortran/50420 + * gfortran.dg/coarray_subobject_1.f90: New test. + * gfortran.dg/coarray/subobject_1.f90: New test. + +2011-10-18 Alexander Monakov + + PR rtl-optimization/50205 + * gcc.dg/pr50205.c: New. + +2011-10-18 Richard Guenther + + PR tree-optimization/50767 + * gcc.dg/torture/pr50767.c: New testcase. + +2011-10-18 Julian Brown + + * lib/target-supports.exp (check_effective_target_arm_unaligned): New. + * gcc.target/arm/unaligned-memcpy-1.c: New. + * gcc.target/arm/unaligned-memcpy-2.c: New. + * gcc.target/arm/unaligned-memcpy-3.c: New. + * gcc.target/arm/unaligned-memcpy-4.c: New. + +2011-10-18 Janus Weil + + PR fortran/47023 + * gfortran.dg/iso_c_binding_class.f03: New. + +2011-10-18 Ira Rosen + + * testsuite/lib/target-supports.exp + (check_effective_target_vect_widen_shift): New. + * gcc.dg/vect/vect-widen-shift-s16.c: New. + * gcc.dg/vect/vect-widen-shift-s8.c: New. + * gcc.dg/vect/vect-widen-shift-u16.c: New. + * gcc.dg/vect/vect-widen-shift-u8.c: New. + +2011-10-18 Richard Guenther + + * gcc.dg/torture/restrict-1.c: New testcase. + +2011-10-17 Michael Spertus + + * g++.dg/ext/bases.C: New test. + +2011-10-17 David S. Miller + + * gcc.target/sparc/fand.c: Remove __LP64__ ifdefs and expect + all operations to emit VIS instructions. + * gcc.target/sparc/fandnot.c: Likewise. + * gcc.target/sparc/fnot.c: Likewise. + * gcc.target/sparc/for.c: Likewise. + * gcc.target/sparc/fornot.c: Likewise. + * gcc.target/sparc/fxnor.c: Likewise. + * gcc.target/sparc/fxor.c: Likewise. + * gcc.target/sparc/combined-1.c: Revert change to use -O2, no longer + needed. + +2011-10-17 Jakub Jelinek + + * gcc.c-torture/execute/vshuf-v16hi.c: New test. + * gcc.dg/torture/vshuf-16.inc: New file. + * gcc.dg/torture/vshuf-2.inc: New file. + * gcc.dg/torture/vshuf-32.inc: New file. + * gcc.dg/torture/vshuf-4.inc: New file. + * gcc.dg/torture/vshuf-8.inc: New file. + * gcc.dg/torture/vshuf-main.inc: New file. + * gcc.dg/torture/vshuf-v16hi.c: New test. + * gcc.dg/torture/vshuf-v16qi.c: New test. + * gcc.dg/torture/vshuf-v2df.c: New test. + * gcc.dg/torture/vshuf-v2di.c: New test. + * gcc.dg/torture/vshuf-v2sf.c: New test. + * gcc.dg/torture/vshuf-v2si.c: New test. + * gcc.dg/torture/vshuf-v32qi.c: New test. + * gcc.dg/torture/vshuf-v4df.c: New test. + * gcc.dg/torture/vshuf-v4di.c: New test. + * gcc.dg/torture/vshuf-v4hi.c: New test. + * gcc.dg/torture/vshuf-v4sf.c: New test. + * gcc.dg/torture/vshuf-v4si.c: New test. + * gcc.dg/torture/vshuf-v8hi.c: New test. + * gcc.dg/torture/vshuf-v8qi.c: New test. + * gcc.dg/torture/vshuf-v8sf.c: New test. + * gcc.dg/torture/vshuf-v8si.c: New test. + +2011-10-17 Ira Rosen + + PR tree-optimization/50746 + * gcc.dg/vect/vect-114.c: Remove vect_hw_misalign. + +2011-10-17 Jason Merrill + + PR c++/50736 + * g++.dg/cpp0x/lambda/lambda-capture-neg.C: New. + +2011-10-17 Paolo Carlini + + PR c++/44524 + * g++.dg/parse/error41.C: New. + * g++.dg/parse/error20.C: Adjust. + +2011-10-17 Paolo Carlini + + PR c++/50757 + * g++.dg/warn/format7.C: New. + * obj-c++.dg/warn7.mm: Likewise. + +2011-10-17 Richard Guenther + + PR tree-optimization/50729 + * gcc.dg/torture/pr50729.c: New testcase. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * lib/prune.exp (prune_gcc_output): Prune output referring to + included files. + * gcc.dg/cpp/macro-exp-tracking-1.c: New test. + * gcc.dg/cpp/macro-exp-tracking-2.c: Likewise. + * gcc.dg/cpp/macro-exp-tracking-3.c: Likewise. + * gcc.dg/cpp/pragma-diagnostic-2.c: Likewise. + +2011-10-15 Tom Tromey + Dodji Seketeli + + * gcc.dg/cpp/pragma-diagnostic-1.c: New test. + +2011-10-17 Paolo Carlini + + PR c++/48489 + * g++.dg/inherit/error5.C: New. + +2011-10-17 Janus Weil + + PR fortran/47023 + PR fortran/50752 + * gfortran.dg/kind_tests_4.f90: New. + +2011-10-17 Ira Rosen + + * gcc.dg/vect/vect-21.c: Expect the loops to get vectorized on + targets that support vector condition. + +2011-10-16 Janus Weil + + PR fortran/47023 + * gfortran.dg/c_kind_tests_3.f03: New. + +2011-10-16 Janus Weil + + PR fortran/50547 + * gfortran.dg/elemental_args_check_4.f90: New. + +2011-10-16 Ira Rosen + + PR tree-optimization/50727 + * gcc.dg/vect/pr50727.c: New test. + +2011-10-16 Eric Botcazou + + * gcc.dg/vla-23.c: New test. + +2011-10-16 Jakub Jelinek + + PR tree-optimization/50596 + * gcc.dg/vect/vect-cond-9.c: New test. + +2011-10-16 Ira Rosen + + * gcc.dg/vect/bb-slp-29.c: New test. + +2011-10-15 Paolo Carlini + + PR c++/50732 + * g++.dg/ext/is_base_of_incomplete.C: New. + * g++.dg/ext/is_base_of_diagnostic.C: Adjust dg-errors. + * g++.dg/ext/unary_trait_incomplete.C: Likewise. + +2011-10-15 Eric Botcazou + + * gcc.target/sparc/combined-1.c: Compile at -O2. + +2011-10-15 Uros Bizjak + + * gcc.target/i386/fma_float_?.c (dg-prune_output): Remove. + (dg-options): Add -Wno-attributes. + * gcc.target/i386/fma_double_?.c: Ditto. + * gcc.target/i386/fma_run_float_?.c: Ditto. + * gcc.target/i386/fma_run_double_?.c: Ditto. + * gcc.target/i386/l_fma_float_?.c: Dtto. + * gcc.target/i386/l_fma_double_?.c: Ditto. + * gcc.target/i386/l_fma_run_float_?.c: Ditto. + * gcc.target/i386/l_fma_run_double_?.c: Ditto. + +2011-10-15 Tobias Burnus + + * gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113 in + the comments. + * gfortran.dg/bind_c_usage_24.f90: Ditto. + * gfortran.dg/rank_3.f90: Ditto. + * gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to + -std=f2008ts in dg-options. + * gfortran.dg/rank_4.f90: Ditto. + +2011-10-15 Oleg Endo + + PR target/49263 + * gcc.target/sh/pr49263.c: New. + +2011-10-14 Eric Botcazou + + * gnat.dg/specs/debug1.ads: Tweak. + +2011-10-14 Kai Tietz + + * gfortran.fortran-torture/compile/logical-2.f90: New test. + +2011-10-14 Jakub Jelinek + + * gcc.target/i386/sse2-mul-1.c: New test. + * gcc.target/i386/sse4_1-mul-1.c: New test. + * gcc.target/i386/avx-mul-1.c: New test. + * gcc.target/i386/xop-mul-1.c: New test. + * gcc.target/i386/avx2-mul-1.c: New test. + +2011-10-14 Jason Merrill + + PR c++/50563 + * g++.dg/cpp0x/nsdmi-list1.C: New. + + PR c++/50707 + * g++.dg/cpp0x/nsdmi-const1.C: New. + +2011-10-14 Janus Weil + + PR fortran/50570 + * gfortran.dg/pointer_intent_5.f90: New. + +2011-10-14 Artjoms Sinkarovs + + * gcc.target/i386/warn-vect-op-3.c: Exclude 32-bit architectures. + * gcc.target/i386/warn-vect-op-1.c: Ditto. + * gcc.target/i386/warn-vect-op-2.c: Ditto. + +2011-10-14 Tobias Burnus + + PR fortran/50718 + * gfortran.dg/pointer_check_11.f90: New. + * gfortran.dg/pointer_check_12.f90: New. + +2011-10-14 Paolo Carlini + + PR c++/38174 + * g++.dg/overload/operator4.C: New. + +2011-10-14 David Alan Gilbert + + * gcc.dg/di-longlong64-sync-1.c: New test. + * gcc.dg/di-sync-multithread.c: New test. + * gcc.target/arm/di-longlong64-sync-withhelpers.c: New test. + * gcc.target/arm/di-longlong64-sync-withldrexd.c: New test. + * lib/target-supports.exp: (arm_arch_*_ok): Series of effective-target + tests for v5, v6, v6k, and v7-a, and add-options helpers. + (check_effective_target_arm_arm_ok): New helper. + (check_effective_target_sync_longlong): New helper. + +2011-10-14 Richard Guenther + + PR tree-optimization/50723 + * gcc.dg/torture/pr50723.c: New testcase. + +2011-10-14 Paolo Carlini + + PR c++/17212 + * g++.dg/warn/format6.C: New. + * obj-c++.dg/warn6.mm: Likewise. + +2011-10-13 Richard Henderson + + * lib/target-supports.exp (check_effective_target_vect_shift_scalar): + Delete. + * gcc.dg/vect/vec-scal-opt.c: Don't test vect_shift_scalar. + * gcc.dg/vect/vec-scal-opt1.c: Likewise. + * gcc.dg/vect/vec-scal-opt2.c: Likewise. + +2011-10-13 Jason Merrill + + PR c++/50614 + * g++.dg/cpp0x/nsdmi-template2.C: New. + + PR c++/50437 + * g++.dg/cpp0x/lambda/lambda-auto1.C: New. + + PR c++/50618 + * g++.dg/init/vbase1.C: New. + +2011-10-13 Jakub Jelinek + + * gcc.target/i386/sse4_1-phminposuw-2.c: New test. + * gcc.target/i386/sse4_1-phminposuw-3.c: New test. + * gcc.target/i386/avx-vphminposuw-2.c: New test. + * gcc.target/i386/avx-vphminposuw-3.c: New test. + +2011-10-13 H.J. Lu + + * gcc.target/i386/pr50712.c: Check ia32 instead of ilp32. + +2011-10-13 Eric Botcazou + + * gcc.dg/builtins-67.c: Guard iround and irint with HAVE_C99_RUNTIME. + +2011-10-13 Richard Guenther + + PR tree-optimization/50712 + * gcc.target/i386/pr50712.c: New testcase. + +2011-10-13 Tom de Vries + + * gcc.dg/memcpy-4.c: New test. + +2011-10-13 Richard Guenther + + PR tree-optimization/50698 + * g++.dg/vect/pr50698.cc: New testcase. + +2011-10-12 Janis Johnson + + * gcc.target/powerpc/warn-1.c: Skip if not powerpc_vsx_ok. + * gcc.target/powerpc/warn-2.c: Ditto. + + * gcc.target/powerpc/ppc-fma-3.c: Require powerpc_fprs. + * gcc.target/powerpc/ppc-fma-4.c: Likewise. + * gcc.target/powerpc/ppc-fma-5.c: Likewise. + * gcc.target/powerpc/ppc-fma-7.c: Likewise. + * gcc.target/powerpc/ppc-fpconv-11.c: Likewise. + * gcc.target/powerpc/ppc-fpconv-3.c: Likewise. + * gcc.target/powerpc/ppc-fpconv-7.c: Likewise. + * gcc.target/powerpc/ppc-fpconv-8.c: Likewise. + * gcc.target/powerpc/ppc-pow.c: Likewise. + * gcc.target/powerpc/recip-1.c: Likewise. + * gcc.target/powerpc/recip-2.c: Likewise. + * gcc.target/powerpc/recip-3.c: Likewise. + * gcc.target/powerpc/recip-4.c: Likewise. + * gcc.target/powerpc/recip-5.c: Likewise. + +2011-10-12 David S. Miller + + * gcc.target/sparc/cmask.c: Remove 'vis3' target check and specify + '-mvis3' instead of 'mcpu=niagara3' in options. + * gcc.target/sparc/fhalve.c: Likewise. + * gcc.target/sparc/fnegop.c: Likewise. + * gcc.target/sparc/fpadds.c: Likewise. + * gcc.target/sparc/fshift.c: Likewise. + * gcc.target/sparc/fucmp.c: Likewise. + * gcc.target/sparc/lzd.c: Likewise. + * gcc.target/sparc/vis3misc.c: Likewise. + * gcc.target/sparc/xmul.c: Likewise. + +2011-10-12 Eric Botcazou + + * gnat.dg/vect1.ad[sb]: New test. + * gnat.dg/vect1_pkg.ads: New helper. + * gnat.dg/vect2.ad[sb]: New test. + * gnat.dg/vect2_pkg.ads: New helper. + * gnat.dg/vect3.ad[sb]: New test. + * gnat.dg/vect3_pkg.ads: New helper. + * gnat.dg/vect4.ad[sb]: New test. + * gnat.dg/vect4_pkg.ads: New helper. + * gnat.dg/vect5.ad[sb]: New test. + * gnat.dg/vect5_pkg.ads: New helper. + * gnat.dg/vect6.ad[sb]: New test. + * gnat.dg/vect6_pkg.ads: New helper. + +2011-10-12 H.J. Lu + + * gcc.target/i386/fma_run_double_1.c: Add -mfpmath=sse. + * gcc.target/i386/fma_run_double_2.c: Likewise. + * gcc.target/i386/fma_run_double_3.c: Likewise. + * gcc.target/i386/fma_run_double_4.c: Likewise. + * gcc.target/i386/fma_run_double_5.c: Likewise. + * gcc.target/i386/fma_run_double_6.c: Likewise. + * gcc.target/i386/fma_run_float_1.c: Likewise. + * gcc.target/i386/fma_run_float_2.c: Likewise. + * gcc.target/i386/fma_run_float_3.c: Likewise. + * gcc.target/i386/fma_run_float_4.c: Likewise. + * gcc.target/i386/fma_run_float_5.c: Likewise. + * gcc.target/i386/fma_run_float_6.c: Likewise. + + * gcc.target/i386/l_fma_double_1.c: Add -mtune=generic and + remove the extra dg-options. + * gcc.target/i386/l_fma_double_2.c: Likewise. + * gcc.target/i386/l_fma_double_3.c: Likewise. + * gcc.target/i386/l_fma_double_4.c: Likewise. + * gcc.target/i386/l_fma_double_5.c: Likewise. + * gcc.target/i386/l_fma_double_6.c: Likewise. + * gcc.target/i386/l_fma_float_1.c: Likewise. + * gcc.target/i386/l_fma_float_2.c: Likewise. + * gcc.target/i386/l_fma_float_3.c: Likewise. + * gcc.target/i386/l_fma_float_4.c: Likewise. + * gcc.target/i386/l_fma_float_5.c: Likewise. + * gcc.target/i386/l_fma_float_6.c: Likewise. + +2011-10-12 Paul Koning + + PR tree-optimization/50189 + * g++.dg/torture/pr50189.C: New testcase. + +2011-10-12 Richard Guenther + + PR tree-optimization/50700 + * gcc.dg/builtin-object-size-12.c: New testcase. + +2011-10-12 Joseph Myers + + PR c/50565 + * gcc.c-torture/compile/pr50565-1.c, + gcc.c-torture/compile/pr50565-2.c: New tests. + +2011-10-11 Jason Merrill + + PR c++/49855 + PR c++/49896 + * g++.dg/template/constant1.C: New. + * g++.dg/template/constant2.C: New. + * g++.dg/cpp0x/constexpr-template3.C: New. + +2011-10-11 Artjoms Sinkarovs + + * gcc.target/i386/warn-vect-op-3.c: New test. + * gcc.target/i386/warn-vect-op-1.c: New test. + * gcc.target/i386/warn-vect-op-2.c: New test. + +2011-10-11 Andreas Krebbel + + * gcc.dg/pr49994-3.c: Add -mbackchain for s390 and s390x. + +2011-10-11 Richard Guenther + + PR tree-optimization/50204 + * gcc.dg/tree-ssa/ssa-fre-36.c: New testcase. + +2011-10-11 Andreas Krebbel + + * gcc.target/s390/20090223-1.c: Add -Wno-attributes. + +2011-10-11 Kirill Yukhin + + * gcc.target/i386/fma_double_1.c: Add -mfpmath=sse. + * gcc.target/i386/fma_double_2.c: Ditto. + * gcc.target/i386/fma_double_3.c: Ditto. + * gcc.target/i386/fma_double_4.c: Ditto. + * gcc.target/i386/fma_double_5.c: Ditto. + * gcc.target/i386/fma_double_6.c: Ditto. + * gcc.target/i386/fma_float_1.c: Ditto. + * gcc.target/i386/fma_float_2.c: Ditto. + * gcc.target/i386/fma_float_3.c: Ditto. + * gcc.target/i386/fma_float_4.c: Ditto. + * gcc.target/i386/fma_float_5.c: Ditto. + * gcc.target/i386/fma_float_6.c: Ditto. + * gcc.target/i386/l_fma_double_1.c: Ditto. + * gcc.target/i386/l_fma_double_2.c: Ditto. + * gcc.target/i386/l_fma_double_3.c: Ditto. + * gcc.target/i386/l_fma_double_4.c: Ditto. + * gcc.target/i386/l_fma_double_5.c: Ditto. + * gcc.target/i386/l_fma_double_6.c: Ditto. + * gcc.target/i386/l_fma_float_1.c: Ditto. + * gcc.target/i386/l_fma_float_2.c: Ditto. + * gcc.target/i386/l_fma_float_3.c: Ditto. + * gcc.target/i386/l_fma_float_4.c: Ditto. + * gcc.target/i386/l_fma_float_5.c: Ditto. + * gcc.target/i386/l_fma_float_6.c: Ditto. + * gcc.target/i386/l_fma_run_double_1.c: Ditto. + * gcc.target/i386/l_fma_run_double_2.c: Ditto. + * gcc.target/i386/l_fma_run_double_3.c: Ditto. + * gcc.target/i386/l_fma_run_double_4.c: Ditto. + * gcc.target/i386/l_fma_run_double_5.c: Ditto. + * gcc.target/i386/l_fma_run_double_6.c: Ditto. + * gcc.target/i386/l_fma_run_float_1.c: Ditto. + * gcc.target/i386/l_fma_run_float_2.c: Ditto. + * gcc.target/i386/l_fma_run_float_3.c: Ditto. + * gcc.target/i386/l_fma_run_float_4.c: Ditto. + * gcc.target/i386/l_fma_run_float_5.c: Ditto. + * gcc.target/i386/l_fma_run_float_6.c: Ditto. + +2011-10-11 Tristan Gingold + + * gcc.dg/va-arg-4.c: New test. + * gcc.dg/va-arg-5.c: Ditto. + +2011-10-11 Uros Bizjak + + * lib/target-supports.exp (check_effective_target_fd_truncate): + Close and unlink test file before exit. + +2011-10-10 Thomas Koenig + + PR fortran/50564 + * gfortran.dg/forall_15.f90: New test case. + +2011-10-10 Aldy Hernandez + Andrew Macleod + + * gcc.dg/simulate-thread/simulate-thread.gdb: Call + wrappers for *other_threads() and *final_verify(). + * gcc.dg/simulate-thread/simulate-thread.h + (simulate_thread_wrapper_other_threads): New. + (simulate_thread_wrapper_final_verify): New. + +2011-10-10 Uros Bizjak + + * lib/gcc-gdb-test.exp (gdb-test): Delete $cmd_file before return. + +2011-10-10 Janis Johnson + + * gcc.dg/graphite/id-pr46845.c: Include powerpc for warning options. + +2011-10-10 Kirill Yukhin + Yakovlev Vladimir + + * gcc.target/i386/fma_1.h: New file. + * gcc.target/i386/fma_2.h: Likewise. + * gcc.target/i386/fma_3.h: Likewise. + * gcc.target/i386/fma_4.h: Likewise. + * gcc.target/i386/fma_5.h: Likewise. + * gcc.target/i386/fma_6.h: Likewise. + * gcc.target/i386/fma_double_1.c: Likewise. + * gcc.target/i386/fma_double_2.c: Likewise. + * gcc.target/i386/fma_double_3.c: Likewise. + * gcc.target/i386/fma_double_4.c: Likewise. + * gcc.target/i386/fma_double_5.c: Likewise. + * gcc.target/i386/fma_double_6.c: Likewise. + * gcc.target/i386/fma_float_1.c: Likewise. + * gcc.target/i386/fma_float_2.c: Likewise. + * gcc.target/i386/fma_float_3.c: Likewise. + * gcc.target/i386/fma_float_4.c: Likewise. + * gcc.target/i386/fma_float_5.c: Likewise. + * gcc.target/i386/fma_float_6.c: Likewise. + * gcc.target/i386/fma_main.h: Likewise. + * gcc.target/i386/fma_run_double_1.c: Likewise. + * gcc.target/i386/fma_run_double_2.c: Likewise. + * gcc.target/i386/fma_run_double_3.c: Likewise. + * gcc.target/i386/fma_run_double_4.c: Likewise. + * gcc.target/i386/fma_run_double_5.c: Likewise. + * gcc.target/i386/fma_run_double_6.c: Likewise. + * gcc.target/i386/fma_run_double_results_1.h: Likewise. + * gcc.target/i386/fma_run_double_results_2.h: Likewise. + * gcc.target/i386/fma_run_double_results_3.h: Likewise. + * gcc.target/i386/fma_run_double_results_4.h: Likewise. + * gcc.target/i386/fma_run_double_results_5.h: Likewise. + * gcc.target/i386/fma_run_double_results_6.h: Likewise. + * gcc.target/i386/fma_run_float_1.c: Likewise. + * gcc.target/i386/fma_run_float_2.c: Likewise. + * gcc.target/i386/fma_run_float_3.c: Likewise. + * gcc.target/i386/fma_run_float_4.c: Likewise. + * gcc.target/i386/fma_run_float_5.c: Likewise. + * gcc.target/i386/fma_run_float_6.c: Likewise. + * gcc.target/i386/fma_run_float_results_1.h: Likewise. + * gcc.target/i386/fma_run_float_results_2.h: Likewise. + * gcc.target/i386/fma_run_float_results_3.h: Likewise. + * gcc.target/i386/fma_run_float_results_4.h: Likewise. + * gcc.target/i386/fma_run_float_results_5.h: Likewise. + * gcc.target/i386/fma_run_float_results_6.h: Likewise. + * gcc.target/i386/l_fma_1.h: Likewise. + * gcc.target/i386/l_fma_2.h: Likewise. + * gcc.target/i386/l_fma_3.h: Likewise. + * gcc.target/i386/l_fma_4.h: Likewise. + * gcc.target/i386/l_fma_5.h: Likewise. + * gcc.target/i386/l_fma_6.h: Likewise. + * gcc.target/i386/l_fma_double_1.c: Likewise. + * gcc.target/i386/l_fma_double_2.c: Likewise. + * gcc.target/i386/l_fma_double_3.c: Likewise. + * gcc.target/i386/l_fma_double_4.c: Likewise. + * gcc.target/i386/l_fma_double_5.c: Likewise. + * gcc.target/i386/l_fma_double_6.c: Likewise. + * gcc.target/i386/l_fma_float_1.c: Likewise. + * gcc.target/i386/l_fma_float_2.c: Likewise. + * gcc.target/i386/l_fma_float_3.c: Likewise. + * gcc.target/i386/l_fma_float_4.c: Likewise. + * gcc.target/i386/l_fma_float_5.c: Likewise. + * gcc.target/i386/l_fma_float_6.c: Likewise. + * gcc.target/i386/l_fma_main.h: Likewise. + * gcc.target/i386/l_fma_run_double_1.c: Likewise. + * gcc.target/i386/l_fma_run_double_2.c: Likewise. + * gcc.target/i386/l_fma_run_double_3.c: Likewise. + * gcc.target/i386/l_fma_run_double_4.c: Likewise. + * gcc.target/i386/l_fma_run_double_5.c: Likewise. + * gcc.target/i386/l_fma_run_double_6.c: Likewise. + * gcc.target/i386/l_fma_run_float_1.c: Likewise. + * gcc.target/i386/l_fma_run_float_2.c: Likewise. + * gcc.target/i386/l_fma_run_float_3.c: Likewise. + * gcc.target/i386/l_fma_run_float_4.c: Likewise. + * gcc.target/i386/l_fma_run_float_5.c: Likewise. + * gcc.target/i386/l_fma_run_float_6.c: Likewise. + +2011-10-10 Richard Guenther + + PR middle-end/50389 + * gcc.dg/torture/pr50389.c: New testcase. + +2011-10-10 Richard Guenther + + PR middle-end/50195 + * gcc.dg/builtins-47.c: Optimize. + +2011-10-10 Aldy Hernandez + + * lib/gcc-simulate-thread.exp: New. + * gcc.dg/simulate-thread/guality.h: New. + * gcc.dg/simulate-thread/simulate-thread.h: New. + * gcc.dg/simulate-thread/simulate-thread.exp: New. + * gcc.dg/simulate-thread/simulate-thread.gdb: New. + * gcc.dg/simulate-thread/README: New. + * g++.dg/simulate-thread/guality.h: New. + * g++.dg/simulate-thread/simulate-thread.h: New. + * g++.dg/simulate-thread/simulate-thread.exp: New. + * g++.dg/simulate-thread/simulate-thread.gdb: New. + * c-c++-common/cxxbitfields-2.c: Remove. + * c-c++-common/cxxbitfields.c: Remove. + * c-c++-common/cxxbitfields-4.c: Remove. + * c-c++-common/cxxbitfields-5.c: Remove. + * c-c++-common/simulate-thread/bitfields-1.c: New. + * c-c++-common/simulate-thread/bitfields-2.c: New. + * c-c++-common/simulate-thread/bitfields-3.c: New. + * c-c++-common/simulate-thread/bitfields-4.c: New. + +2011-10-09 Paolo Carlini + + PR c++/38980 + * g++.dg/warn/format5.C: New. + +2011-10-09 Tobias Burnus + + PR fortran/50273 + * gfortran.dg/common_14.f90: Compile with -Wno-align-commons. + * gfortran.dg/common_16.f90: New. + +2011-10-09 Tobias Burnus + + * gfortran.dg/iso_c_binding_param_1.f90: New. + * gfortran.dg/iso_c_binding_param_2.f90: New. + * gfortran.dg/c_sizeof_2.f90: Update dg-error. + +2011-10-09 Ira Rosen + + PR tree-optimization/50635 + * gcc.dg/vect/pr50635.c: New test. + +2011-10-09 Janus Weil + + PR fortran/50659 + * gfortran.dg/proc_decl_27.f90: New. + +2011-10-08 Nicola Pero + + PR libobjc/50428 + * objc/execute/initialize-1.m: New test. + +2011-10-08 Paul Thomas + + PR fortran/47844 + * gfortran.dg/pointer_function_result_1.f90 : New test. + +2011-10-07 David S. Miller + + PR 50655 + * gcc.target/sparc/sparc.exp: Add vis3 target test. + * gcc.target/sparc/cmask.c: Use it. + * gcc.target/sparc/fhalve.c: Likewise. + * gcc.target/sparc/fnegop.c: Likewise. + * gcc.target/sparc/fpadds.c: Likewise. + * gcc.target/sparc/fshift.c: Likewise. + * gcc.target/sparc/fucmp.c: Likewise. + * gcc.target/sparc/lzd.c: Likewise. + * gcc.target/sparc/vis3misc.c: Likewise. + * gcc.target/sparc/xmul.c: Likewise. + +2011-10-07 Richard Henderson + + * gcc.target/i386/avx256-unaligned-load-2.c: Tweek vinsert pattern + match for avx2. + * gcc.target/i386/avx256-unaligned-store-2.c: Similarly. + +2011-10-07 Andrew Stubbs + + * gcc.dg/pr50193-1.c: New file. + * gcc.target/arm/shiftable.c: New file. + +2011-10-07 Janus Weil + + PR fortran/50625 + * gfortran.dg/class_46.f03: New. + +2011-10-06 Joern Rennecke + + * gcc.dg/pr47276.c (ASMNAME, ASMNAME2, STRING): Define. + (__EI___vsyslog_chk, __EI_syslog, __EI_vsyslog): Use ASMNAME. + (syslog, vsyslog, __vsyslog_chk): Likewise. + + * gcc.dg/lto/20081222_1.c (ASMNAME, ASMNAME2, STRING): Define. + (x, EXT_x): Use ASMNAME. + + * gcc.dg/torture/pr48044.c (ASMNAME, ASMNAME2, STRING): Define. + (a, c): Use ASMNAME. + +2011-10-07 Tom de Vries + + PR middle-end/50527 + * gcc.dg/pr50527.c: New test. + +2011-10-07 Jakub Jelinek + + PR tree-optimization/50650 + * gcc.c-torture/compile/pr50650.c: New test. + +2011-10-07 Rainer Orth + + PR tree-optimization/50575 + * gcc.c-torture/execute/vector-compare-2.x: New file. + +2011-10-07 Rainer Orth + + PR middle-end/50125 + * gcc.dg/uninit-B.c (baz): Remove xfail *-*-*. + * gcc.dg/uninit-pr19430.c (main): Remove xfail *-*-*. + (bar3): Likewise. + +2011-10-07 Richard Guenther + + PR testsuite/50637 + * gcc.dg/vect/vect-align-2.c: Increase array size. + +2011-10-07 Uros Bizjak + H.J. Lu + + PR target/50603 + * gcc.target/i386/pr50603.c: New test. + +2011-10-06 Jason Merrill + + PR c++/39164 + * g++.dg/cpp0x/default31.C: New. + +2011-10-06 Jakub Jelinek + + PR tree-optimization/50596 + * lib/target-supports.exp (check_effective_target_vect_cond_mixed): + New. + * gcc.dg/vect/vect-cond-8.c: New test. + +2011-10-06 Richard Henderson + + * gcc.c-torture/execute/vect-shuffle-1.c: Remove. + * gcc.c-torture/execute/vect-shuffle-2.c: Remove. + * gcc.c-torture/execute/vect-shuffle-3.c: Remove. + * gcc.c-torture/execute/vect-shuffle-4.c: Remove. + * gcc.c-torture/execute/vect-shuffle-5.c: Remove. + * gcc.c-torture/execute/vect-shuffle-6.c: Remove. + * gcc.c-torture/execute/vect-shuffle-7.c: Remove. + * gcc.c-torture/execute/vect-shuffle-8.c: Remove. + * gcc.c-torture/execute/vshuf-16.inc: New file. + * gcc.c-torture/execute/vshuf-2.inc: New file. + * gcc.c-torture/execute/vshuf-4.inc: New file. + * gcc.c-torture/execute/vshuf-8.inc: New file. + * gcc.c-torture/execute/vshuf-main.inc: New file. + * gcc.c-torture/execute/vshuf-v16qi.c: New test. + * gcc.c-torture/execute/vshuf-v2df.c: New test. + * gcc.c-torture/execute/vshuf-v2di.c: New test. + * gcc.c-torture/execute/vshuf-v2sf.c: New test. + * gcc.c-torture/execute/vshuf-v2si.c: New test. + * gcc.c-torture/execute/vshuf-v4df.c: New test. + * gcc.c-torture/execute/vshuf-v4di.c: New test. + * gcc.c-torture/execute/vshuf-v4hi.c: New test. + * gcc.c-torture/execute/vshuf-v4sf.c: New test. + * gcc.c-torture/execute/vshuf-v4si.c: New test. + * gcc.c-torture/execute/vshuf-v8hi.c: New test. + * gcc.c-torture/execute/vshuf-v8qi.c: New test. + * gcc.c-torture/execute/vshuf-v8si.c: New test. + +2011-10-06 Jakub Jelinek + + PR tree-optimization/49279 + * gcc.dg/tree-ssa/restrict-4.c: XFAIL. + * gcc.c-torture/execute/pr49279.c: New test. + +2011-10-06 Bernd Schmidt + + PR target/49049 + * gcc.c-torture/compile/pr49049.c: New test. + +2011-10-06 Ulrich Weigand + + PR target/50305 + * gcc.target/arm/pr50305.c: New test. + +2011-10-06 Richard Guenther + + PR tree-optimization/38884 + * gcc.dg/tree-ssa/ssa-fre-34.c: New testcase. + * gcc.dg/tree-ssa/ssa-fre-35.c: Likewise. + +2011-10-05 David S. Miller + + * gcc.target/sparc/lzd.c: New test. + * gcc.target/sparc/popc.c: New test. + +2011-10-05 Uros Bizjak + + * gcc.dg/strlenopt-21.c (dg-options): Remove -fdump-tree-optimized. + * gcc.dg/ipa/inline-5.c: Cleanup inline ipa dump. + * g++.dg/other/final1.C: Cleanup original tree dump. + +2011-10-05 Jakub Jelinek + + PR tree-optimization/50613 + * gcc.dg/pr50613.c: New test. + +2011-10-05 Richard Henderson + + * gcc.c-torture/execute/vect-shuffle-1.c: Rewrite. + * gcc.c-torture/execute/vect-shuffle-2.c: Rewrite. + * gcc.c-torture/execute/vect-shuffle-3.c: Rewrite. + * gcc.c-torture/execute/vect-shuffle-4.c: Rewrite. + * gcc.c-torture/execute/vect-shuffle-5.c: Rewrite. + * gcc.c-torture/execute/vect-shuffle-6.c: New test. + * gcc.c-torture/execute/vect-shuffle-7.c: New test. + * gcc.c-torture/execute/vect-shuffle-8.c: New test. + +2011-10-05 Uros Bizjak + + * gcc.dg/vect/vect.exp (VEC_CFLAGS): Move initialization after + DEFAULT_VECTFLAGS initialization. Append "-fdump-tree-veclower2". + * gcc.dg/vect/vec-scal-opt.c: Scan and cleanup veclower2 tree dump. + * gcc.dg/vect/vec-scal-opt1.c: Ditto. + * gcc.dg/vect/vec-scal-opt2.c: Ditto. + +2011-10-05 Richard Guenther + + PR tree-optimization/38885 + * gcc.dg/tree-ssa/ssa-fre-33.c: New testcase. + +2011-10-05 Bernd Schmidt + + * gcc.target/i386/sw-1.c: New test. + +2011-10-05 Uros Bizjak + + * gcc.target/i386/avx256-unaligned-load-3.c (dg-options): Add + -mtune=generic. + * gcc.target/i386/avx256-unaligned-store-3.c (dg-options): Ditto. + +2011-10-05 Uros Bizjak + + * gcc.dg/torture/builtin-complex-1.c: Use dg-add-options ieee. + +2011-10-04 David S. Miller + + * gcc.target/sparc/fhalve.c: New test. + * gcc.target/sparc/fnegop.c: New test. + * gcc.target/sparc/xmul.c: New test. + +2011-10-04 Janus Weil + + PR fortran/35831 + * gfortran.dg/dummy_procedure_6.f90: New. + +2011-10-04 Jakub Jelinek + + PR tree-optimization/50604 + * gcc.dg/pr50604.c: New test. + +2011-10-04 Rainer Orth + + PR tree-optimization/49662 + * gcc.dg/graphite/interchange-14.c: Remove xfail *-*-*. + * gcc.dg/graphite/interchange-15.c: Likewise. + * gcc.dg/graphite/interchange-mvt.c: Likewise. + +2011-10-04 Jakub Jelinek + + * gcc.dg/tree-ssa/restrict-4.c: New test. + +2011-10-04 Artem Shinkarov + + * gcc.c-torture/execute/vector-compare-1.c: Fix trailing white spaces. + (main): Use __typeof to get result type of comparison. + +2011-10-04 Ira Rosen + + * lib/target-supports.exp (check_effective_target_vect_multiple_sizes): + Make et_vect_multiple_sizes_saved global. + (check_effective_target_vect64): Make et_vect64_saved global. + +2011-10-03 Artjoms Sinkarovs + + * gcc.c-torture/execute/vect-shuffle-2.c: New test. + * gcc.c-torture/execute/vect-shuffle-4.c: New test. + * gcc.c-torture/execute/vect-shuffle-1.c: New test. + * gcc.dg/builtin-complex-err-1.c: Adjust. + +2011-10-02 Jason Merrill + + * g++.dg/cpp0x/range-for22.C: New. + + * g++.dg/cpp0x/variadic65.C: Remove xfails. + * g++.dg/cpp0x/variadic82.C: Remove xfails. + * g++.dg/cpp0x/variadic83.C: Remove xfails. + * g++.dg/cpp0x/variadic105.C: Remove xfails. + + * g++.dg/cpp0x/nsdmi5.C: New. + +2011-10-02 Richard Sandiford + + PR target/50579 + * gcc.target/mips/mips.exp (mips_long32_abi_p, mips_long64_abi_p): + New procedures. + (mips-dg-options): Force an ABI option if the current ABI is + incompatible with the required -mlong setting. Likewise force + a long setting if the current one is incompatible with the + chosen ABI. Keep abi_test_option_p, abi and eabi_p updated + throughout procedure. + * gcc.target/mips/abi-o64-long64.c: Require -mno-abicalls + instead of addressing=absolute. + +2011-10-02 Richard Sandiford + + * gcc.target/mips/stack-1.c: New test. + +2011-10-02 Richard Sandiford + + * gcc.dg/pr49696.c: New test. + +2011-10-02 Jan Hubicka + + * gcc.dg/ipa/ctor-empty-1.c: Update dump file. + +2011-10-01 David S. Miller + + * gcc.target/sparc/cmask.c: New test. + * gcc.target/sparc/fpadds.c: New test. + * gcc.target/sparc/fshift.c: New test. + * gcc.target/sparc/fucmp.c: New test. + * gcc.target/sparc/vis3misc.c: New test. + +2011-10-01 Janus Weil + + PR fortran/50585 + * gfortran.dg/assumed_charlen_arg_2.f90: New. + +2011-09-30 Janis Johnson + + PR c++/44473 + * g++.dg/dfp/44473-1.C: New test. + * g++.dg/dfp/44473-2.C: New test. + * g++.dg/dfp/mangle-1.C: New test. + * g++.dg/dfp/mangle-2.C: New test. + * g++.dg/dfp/mangle-3.C: New test. + * g++.dg/dfp/mangle-4.C: New test. + * g++.dg/dfp/mangle-5.C: New test. + +2011-09-30 Jakub Jelinek + + PR inline-asm/50571 + * gcc.dg/pr50571.c: New test. + + PR tree-optimization/46309 + * gcc.dg/pr46309.c: New test. + +2011-09-30 Jakub Jelinek + + * gcc.dg/strlenopt-21.c: New test. + +2011-09-30 Revital Eres + + * gcc.dg/sms-10.c: New file. + +2011-09-30 Ramana Radhakrishnan + + * gcc.target/arm/pr50099.c: New test. + +2011-09-30 Matthew Gretton-Dann + + * gcc.target/arm/pr42835.c: Add -fno-tree-tail-merge. + +2011-09-30 David S. Miller + + * gcc.target/sparc/bmaskbshuf.c: New test. + * gcc.target/sparc/edgen.c: New test. + +2011-09-29 Janus Weil + + PR fortran/50547 + * gfortran.dg/pure_formal_proc_3.f90: New. + + PR fortran/50553 + * gfortran.dg/stfunc_7.f90: New. + +2011-09-29 Artjoms Sinkarovs + + * gcc.c-torture/execute/vector-compare-1.c: New testcase. + * gcc.c-torture/execute/vector-compare-2.c: Likewise. + * gcc.dg/vector-compare-1.c: Likewise. + * gcc.dg/vector-compare-2.c: Likewise. + +2011-09-29 David S. Miller + + * gcc.target/sparc/array.c: New test. + +2011-09-29 Jiangning Liu + + * gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c: Explicitly turn on + loop unroll and set max unroll times to 8. + * gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c: Likewise. + * gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c: Likewise. + * gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c: Likewise. + * gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c: Likewise. + +2011-09-28 Paolo Carlini + + PR c++/40145 + * g++.dg/ext/visibility/warn5.C: New. + +2011-09-28 Paolo Carlini + + PR c++/45278 + * g++.dg/warn/Wextra-3.C: New. + +2011-09-28 Oleg Endo + + PR target/49486 + * gcc.target/sh/pr49468-si.c: New. + +2011-09-28 Tom de Vries + + PR testsuite/50485 + * gcc.target/i386/sse4_1-blendps.c: Include . + (TEST): Initialize src3 with random floats. + * gcc.target/i386/sse4_1-blendps-2.c (sse4_1_test): Remove field i + from union src3. Initialize src3 with random floats. + +2011-09-27 Oleg Endo + + * gcc.target/sh/mfmovd.c: Extend list of supported targets. + * gcc.target/sh/struct-arg-dw2.c: Fix typo. + * gcc.target/sh/sh4a-sincos.c: Make test SH4A only. + * gcc.target/sh/sh4a-sincosf.c: Ditto. + * gcc.target/sh/sh4a-cos.c: Ditto. + * gcc.target/sh/sh4a-cosf.c: Ditto. + * gcc.target/sh/sh4a-sin.c: Ditto. + * gcc.target/sh/sh4a-sinf.c: Ditto. + * gcc.target/sh/sh4a-fsrra.c: Ditto. + * gcc.target/sh/sh4a-memmovua.c: Ditto. + * gcc.target/sh/sh4a-bitmovua.c: Ditto. + +2011-09-27 Paolo Carlini + + PR c++/31489 + * g++.dg/parse/error40.C: New. + * g++.dg/warn/incomplete1.C: Adjust. + +2011-09-27 Jan Hubicka + + PR middle-end/49463 + * gcc.c-torture/execute/builtins/strstr-asm-lib.c (my_strstr): + Mark used. + +2011-09-27 Jakub Jelinek + + * gcc.dg/strlenopt-1.c: New test. + * gcc.dg/strlenopt-1f.c: New test. + * gcc.dg/strlenopt-2.c: New test. + * gcc.dg/strlenopt-2f.c: New test. + * gcc.dg/strlenopt-3.c: New test. + * gcc.dg/strlenopt-4.c: New test. + * gcc.dg/strlenopt-4g.c: New test. + * gcc.dg/strlenopt-4gf.c: New test. + * gcc.dg/strlenopt-5.c: New test. + * gcc.dg/strlenopt-6.c: New test. + * gcc.dg/strlenopt-7.c: New test. + * gcc.dg/strlenopt-8.c: New test. + * gcc.dg/strlenopt-9.c: New test. + * gcc.dg/strlenopt-10.c: New test. + * gcc.dg/strlenopt-11.c: New test. + * gcc.dg/strlenopt-12.c: New test. + * gcc.dg/strlenopt-12g.c: New test. + * gcc.dg/strlenopt-13.c: New test. + * gcc.dg/strlenopt-14g.c: New test. + * gcc.dg/strlenopt-14gf.c: New test. + * gcc.dg/strlenopt-15.c: New test. + * gcc.dg/strlenopt-16g.c: New test. + * gcc.dg/strlenopt-17g.c: New test. + * gcc.dg/strlenopt-18g.c: New test. + * gcc.dg/strlenopt.h: New file. + +2011-09-27 Tom de Vries + + PR middle-end/43864 + * gcc.dg/fold-compare-2.c (dg-options): Add -fno-tree-tail-merge. + * gcc/testsuite/gcc.dg/uninit-pred-2_c.c: Same. + * gcc.dg/pr43864.c: New test. + * gcc.dg/pr43864-2.c: Same. + * gcc.dg/pr43864-3.c: Same. + * gcc.dg/pr43864-4.c: Same. + +2011-09-27 Jan Hubicka + + * gcc.dg/ipa/inline-5.c: New testcase. + +2011-09-27 Ira Rosen + + * gcc.dg/vect/bb-slp-11.c: Expect to get vectorized with 64-bit + vectors. + * gcc.dg/vect/bb-slp-27.c: New. + * gcc.dg/vect/bb-slp-28.c: New. + +2011-09-27 Bernd Schmidt + + * testsuite/lib/target-supports.exp (check_profiling_available): + Don't rely solely on TLS tests for -fprofile-generate, fall + through to the other code. + +2011-09-27 Richard Guenther + + PR tree-optimization/50363 + * gcc.dg/torture/pr50363.c: New testcase. + +2011-09-26 Jason Merrill + + PR c++/45012 + * g++.dg/template/partial13.C: New. + + PR c++/46105 + * g++.dg/template/partial12.C: New. + + PR c++/50508 + * g++.dg/cpp0x/constexpr-typedef1.C: New. + +2011-09-26 Paolo Carlini + + PR c++/45487 + * g++.dg/diagnostic/bindings1.C: New. + * g++.old-deja/g++.pt/memtemp77.C: Adjust. + +2011-09-26 David S. Miller + + * gcc.target/sparc/wrgsr.c: New test. + * gcc.target/sparc/rdgsr.c: New test. + * gcc.target/sparc/edge.c: New test. + * gcc.target/sparc/fcmp.c: New test. + + * gcc.target/sparc/edge.c: Update for new return types. + * gcc.target/sparc/fcmp.c: Likewise. + + * gcc.target/sparc/fpaddsubi.c: New test. + +2011-09-26 Janus Weil + + PR fortran/50515 + * gfortran.dg/common_15.f90: New. + + PR fortran/50517 + * gfortran.dg/dummy_procedure_5.f90: New. + * gfortran.dg/interface_26.f90: Modified error message. + * gfortran.dg/proc_ptr_11.f90: Ditto. + * gfortran.dg/proc_ptr_15.f90: Ditto. + * gfortran.dg/proc_ptr_comp_20.f90: Ditto. + * gfortran.dg/proc_ptr_result_5.f90: Ditto. + +2011-09-26 Jason Merrill + + PR c++/50512 + * g++.dg/overload/rvalue3.C: New. + + PR c++/50523 + * g++.dg/overload/ref-conv2.C: New. + + * g++.dg/cpp0x/nsdmi-template1.C: New. + +2011-09-26 Paolo Carlini + + * g++.dg/cpp0x/nullptr25.C: New. + +2011-09-26 Richard Guenther + + PR tree-optimization/50472 + * gcc.dg/torture/pr50472.c: New testcase. + +2011-09-26 Eric Botcazou + + * gnat.dg/opt22.adb: New test. + * gnat.dg/opt22_pkg.ad[sb]: New helper. + +2011-09-26 Eric Botcazou + + * gnat.dg/opt21.adb: New test. + * gnat.dg/opt21_pkg.ad[sb]: New helper. + +2011-09-26 Eric Botcazou + + * gnat.dg/opt20.ad[sb]: New test. + * gnat.dg/opt20_pkg.ads: New helper. + +2011-09-26 Eric Botcazou + + * gnat.dg/array17.adb: New test. + * gnat.dg/array17_pkg.ads: New helper. + +2011-09-25 Jason Merrill + + * g++.dg/cpp0x/nsdmi-defer4.C: New. + +2011-09-25 Eric Botcazou + + * gnat.dg/frame_overflow.ads: New. + * gnat.dg/frame_overflow.adb: Adjust. + * gnat.dg/specs/addr1.ads: Likewise. + +2011-09-25 Jakub Jelinek + + * g++.dg/tree-ssa/restrict2.C: New test. + +2011-09-25 Ira Rosen + + * lib/target-supports.exp (check_effective_target_vect64): New. + * gcc.dg/vect/bb-slp-11.c: Expect the error message twice in case + of multiple vector sizes. + * gcc.dg/vect/bb-slp-26.c: New. + +2011-09-25 Paolo Carlini + + PR c++/50280 + * g++.dg/template/bitfield1.C: New. + +2011-09-25 Ira Rosen + + * gcc.dg/vect/bb-slp-24.c: New. + +2011-09-24 Jason Merrill + + * g++.dg/cpp0x/nsdmi-eh1.C: New. + + * g++.dg/cpp0x/nsdmi-defer3.C: New. + + * g++.dg/cpp0x/nsdmi-defer1.C: New. + * g++.dg/cpp0x/nsdmi-defer2.C: New. + + * g++.dg/cpp0x/nsdmi1.C: New. + * g++.dg/cpp0x/nsdmi2.C: New. + * g++.dg/cpp0x/nsdmi3.C: New. + * g++.dg/cpp0x/nsdmi4.C: New. + * g++.old-deja/g++.other/init4.C: New. + +2011-09-24 Paolo Carlini + + PR c++/44267 + * g++.dg/template/sfinae28.C: New. + +2011-09-23 Ian Lance Taylor + + * go.test/go-test.exp (errchk): Handle more cases of getting + correct Tcl backslash quoting in regular expressions in test file. + +2011-09-23 Jason Merrill + + Core 253 + * g++.dg/init/const8.C: New. + * g++.dg/cpp0x/constexpr-object1.C: Add a data member. + * g++.dg/cpp0x/defaulted2.C: Likewise. + * g++.dg/cpp0x/pr42844-2.C: Likewise. + * g++.dg/init/pr20039.C: Likewise. + * g++.dg/init/pr42844.C: Likewise. + +2011-09-23 Jan Hubicka + + * gcc.dg/ipa/inline-1.c: new testcase. + * gcc.dg/ipa/inline-2.c: new testcase. + * gcc.dg/ipa/inline-3.c: new testcase. + * gcc.dg/ipa/inline-4.c: new testcase. + +2011-09-23 Paolo Carlini + + PR c++/50258 + * g++.dg/cpp0x/constexpr-static8.C: New. + +2011-09-23 Jakub Jelinek + + * gcc.target/i386/avxfp-1.c: New test. + * gcc.target/i386/avxfp-2.c: New test. + +2011-09-23 Terry Guo + + * gcc.c-torture/execute/941014-1.x: Deleted. + +2011-09-22 Paolo Carlini + + PR c++/50491 + * g++.dg/cpp0x/pr50491.C: New. + +2011-09-22 Steven G. Kargl + + PR testsuite/50487 + * gfortran.dg/bessel_6.f90: Fix tolerance test. + +2011-09-22 Paolo Carlini + + PR c++/50371 + * g++.dg/cpp0x/nullptr24.C: New. + +2011-09-22 Uros Bizjak + + PR target/50482 + * gcc.target/i386/pr50482.c: New test. + +2011-09-22 Joseph Myers + + * gcc.target/i386/pad-2.c, gcc.target/i386/pad-3.c, + gcc.target/i386/pad-4.c, gcc.target/i386/pad-5a.c, + gcc.target/i386/pad-5b.c, gcc.target/i386/pad-6a.c, + gcc.target/i386/pad-6b.c, gcc.target/i386/pad-7.c, + gcc.target/i386/pad-8.c, gcc.target/i386/pad-9.c, + gcc.target/i386/pad-10.cm gcc.target/i386/vect-double-1.c: Skip if + multilib options contain different -march= from dg-options. + +2011-09-22 Jonathan Wakely + Paolo Carlini + + PR c++/50344 + * g++.dg/template/friend52.C: New. + +2011-09-22 Richard Sandiford + + * gcc.target/arm/cmp-1.c: New test. + * gcc.target/arm/cmp-2.c: Likewise. + +2011-09-22 Janus Weil + + PR fortran/41733 + * gfortran.dg/impure_actual_1.f90: Modified error message. + * gfortran.dg/proc_ptr_32.f90: New. + * gfortran.dg/proc_ptr_33.f90: New. + +2011-09-22 Ira Rosen + + PR tree-optimization/50451 + * gcc.dg/vect/pr50451.c: New test. + +2011-09-21 Ian Lance Taylor + + * go.test/go-test.exp (errchk): Add special case for bug332. + (go-gc-tests): Add special cases for bug347 and bug348. Recognize + some more test lines. + +2011-09-21 Uros Bizjak + + * g++.dg/other/i386-3.C: Remove duplicated dg-options. + * g++.dg/other/i386-4.C: Remove dg-require-effective-target directive. + * g++.dg/other/i386-8.C: Ditto. + * g++.dg/other/pr34435.C: Ditto. + * g++.dg/other/pr39496.C: Ditto. + * g++.dg/other/mmintrin.C: Ditto. + +2011-09-21 Jakub Jelinek + + * gcc.dg/vect/vect-cond-7.c: New test. + * gcc.target/i386/sse4_1-cond-1.c: New test. + * gcc.target/i386/avx-cond-1.c: New test. + +2011-09-21 Uros Bizjak + + PR target/50464 + * g++.dg/other/pr50464.C: New test. + +2011-09-21 Kirill Yukhin + + * gcc.target/i386/bmi2-mulx32-2.c: New test. + * gcc.target/i386/bmi2-mulx32-2a.c: Ditto. + * gcc.target/i386/bmi2-mulx64-2.c: Ditto. + * gcc.target/i386/bmi2-mulx64-2a.c: Ditto. + +2011-09-21 Eric Botcazou + + * gnat.dg/opt19.adb: New test. + +2011-09-21 Terry Guo + + * gcc.target/arm/neon-thumb2-move.c: Skip the warning message + on arch conflict when testing case on targets other than armv7-a. + +2011-09-21 Paolo Carlini + + PR c++/50454 + * g++.dg/ext/int128-1.C: New. + * g++.dg/ext/int128-2.C: Likewise. + * g++.dg/ext/int128-2.h: Likewise. + +2011-09-20 H.J. Lu + + PR testsuite/50469 + * gfortran.dg/storage_size_2.f08: Replace "must be be" with "must be". + +2011-09-20 Jason Merrill + + * g++.dg/cpp0x/constexpr-generated1.C: New. + + PR c++/50442 + * g++.dg/overload/ref-conv1.C: New. + +2011-09-20 Roberto Agostino Vitillo + + * g++.dg/other/final1.C: New. + +2011-09-20 Ira Rosen + + * g++.dg/vect/slp-pr50413.cc: Don't run the test. Remove main () + and get_bit (). + +2011-09-19 Ian Bolton + + * gcc.dg/20100906-1.c: Use -fno-short-enums option for + "target arm_eabi". + +2011-09-19 Ira Rosen + + PR tree-optimization/50413 + * g++.dg/vect/vect.exp: Run slp-pr* tests with + -fdump-tree-slp-details. Run other tests with + -fdump-tree-vect-details. + * g++.dg/vect/slp-pr50413.cc: New. + +2011-09-18 Dominique d'Humieres + Ira Rosen + + PR testsuite/50435 + * gcc.dg/vect/bb-slp-25.c: Add an if to avoid loop vectorization. + Fix underscores around restrict. + +2011-09-18 Ira Rosen + + PR tree-optimization/50414 + * gfortran.dg/vect/Ofast-pr50414.f90: New. + * gfortran.dg/vect/vect.exp: Run Ofast-* tests with -Ofast. + * gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: New. + +2011-09-18 Ira Rosen + + PR tree-optimization/50412 + * gfortran.dg/vect/pr50412.f90: New. + +2011-09-16 Jason Merrill + + PR c++/50424 + * g++.dg/eh/defarg1.C: New. + +2011-09-16 Jakub Jelinek + + * gcc.dg/vect/vect-reduc-10.c: New test. + * gcc.target/i386/avx-reduc-1.c: New test. + + * gcc.target/i386/sse2-extract-1.c: New test. + * gcc.target/i386/avx-extract-1.c: New test. + +2011-09-16 Terry Guo + + * gcc.dg/tree-ssa/foldconst-3.c: Don't use short enums. + +2011-09-15 Diego Novillo + + * lib/g++.exp (g++_init): Add $TEST_ALWAYS_FLAGS to + ALWAYS_CXXFLAGS, if defined. + * lib/gfortran.exp (gfortran_init): Add $TEST_ALWAYS_FLAGS to + ALWAYS_GFORTRANFLAGS, if defined. + * lib/go.exp (go_target_compile): Add $TEST_ALWAYS_FLAGS to + ALWAYS_GOCFLAGS, if defined. + * lib/obj-c++.exp (obj-c++_init): Add $TEST_ALWAYS_FLAGS to + ALWAYS_OBJCXXFLAGS, if defined. + * lib/gcc.exp (gcc_target_compile): Add $TEST_ALWAYS_FLAGS to + additional_flags, if defined. + * lib/gnat.exp (gnat_target_compile): Likewise. + * lib/objc.exp (objc_target_compile): Likewise. + * lib/target-supports-dg.exp (dg-add-options): Handle + TEST_ALWAYS_FLAGS. + +2011-09-15 Tom de Vries + + PR testsuite/50322 + * gcc.dg/tree-ssa/ivopts-lt.c: require stdint_types. include stdint.h. + Use uintptr_t in f1. Undo avr xfails. + +2011-09-15 Janus Weil + + PR fortran/50401 + PR fortran/50403 + * gfortran.dg/function_types_3.f90: New. + +2011-09-15 Jason Merrill + + PR c++/50365 + * g++.dg/cpp0x/trailing7.C: New. + + PR c++/50361 + * g++.dg/cpp0x/nullptr23.C: New. + +2011-09-15 Ira Rosen + + * gcc.dg/vect/bb-slp-25.c: New. + +2011-09-14 Paolo Carlini + + PR c++/50391 + * g++.dg/cpp0x/noexcept15.C: New. + +2011-09-14 Tom de Vries + + PR middle-end/50251 + * gcc.dg/pr50251.c: New test. + +2011-09-14 Tobias Burnus + + PR fortran/34547 + PR fortran/50375 + * gfortran.dg/null_5.f90: New. + * gfortran.dg/null_6.f90: New. + +2011-09-13 Bernd Schmidt + + * gcc.c-torture/compile/20110913-1.c: New test. + +2011-09-13 Janus Weil + + PR fortran/50379 + * gfortran.dg/result_2.f90: New. + +2011-09-13 Sevak Sargsyan + + * gcc.target/arm/neon-combine-sub-abs-into-vabd.c: New test. + +2011-09-13 Dodji Seketeli + + PR c++/48320 + * g++.dg/cpp0x/variadic116.C: New test case. + +2011-09-12 Richard Sandiford + + * gcc.target/mips/mips.exp (mips_option_groups): Add debug options. + * gcc.target/mips/interrupt_handler-2.c: New test. + * gcc.target/mips/interrupt_handler-3.c: Likewise. + +2011-09-12 Jason Merrill + + * g++.dg/cpp0x/fntmpdefarg2.C: Add more tests. + + * g++.dg/cpp0x/explicit7.C: New. + +2011-09-12 Jakub Jelinek + + PR rtl-optimization/50212 + * g++.dg/other/pr50212.C: New test. + +2011-09-12 Georg-Johann Lay + + PR target/43746 + * testsuite/gcc.target/avr/torture/avr-torture.exp + (AVR_TORTURE_OPTIONS): Add test cases "-O2 -fdata-sections" and + "-O2 -fmerge-all-constants". + +2011-09-11 Thomas Koenig + + PR fortran/50327 + * gfortran.dg/do_while_1.f90: New test. + +2011-09-11 Janus Weil + + PR fortran/35831 + PR fortran/47978 + * gfortran.dg/dynamic_dispatch_5.f03: Fix invalid test case. + * gfortran.dg/proc_decl_26.f90: New. + * gfortran.dg/typebound_override_2.f90: New. + * gfortran.dg/typebound_proc_6.f03: Changed wording in error message. + +2011-09-11 Eric Botcazou + + * gnat.dg/cond_expr2.ad[sb]: New test. + +2011-09-11 Eric Botcazou + + * gnat.dg/atomic5.ad[sb]: New test. + +2011-09-10 H.J. Lu + + * gcc.dg/sibcall-6.c: Check ia32 instead of ilp32. + +2011-09-09 Georg-Johann Lay + + PR target/49030 + * gcc.dg/torture/pr49030.c: Run only if target int32plus. + +2011-09-09 Iain Sandoe + + PR target/49614 + * gcc.dg/vmx/gcc-bug-i.c (inline_me): Declare 'inline'. + +2011-09-09 Richard Guenther + + PR tree-optimization/50328 + * gcc.dg/vect/fast-math-vect-outer-7.c: New testcase. + +2011-09-09 Richard Guenther + + PR middle-end/50333 + * gcc.dg/torture/pr50333.c: New testcase. + +2011-09-08 Andrew Stubbs + + PR tree-optimization/50318 + * gcc.target/arm/pr50318-1.c: New file. + +2011-09-08 Uros Bizjak + + * gcc.target/i386/all_one_m256i.c: New test. + +2011-09-08 Paolo Carlini + + PR c++/50324 + * g++.dg/cpp0x/sfinae28.C: New. + +2011-09-08 Dodji Seketeli + + PR c/50332 + * gcc.dg/attr-invalid.c: Adjust as __attribute__((used) is no + longer ignored on typedefs. + + PR c++/33255 - Support -Wunused-local-typedefs warning + * g++.dg/warn/Wunused-local-typedefs.C: New test file. + * c-c++-common/Wunused-local-typedefs.c: Likewise. + +2011-09-08 Martin Jambor + + PR tree-optimization/50287 + * gcc.dg/torture/pr50287.c: New test. + +2011-09-08 Richard Guenther + + PR tree-optimization/19831 + * gcc.dg/tree-ssa/pr19831-1.c: New testcase. + * gcc.dg/tree-ssa/pr19831-2.c: Likewise. + * gcc.dg/tree-ssa/pr19831-3.c: Likewise. + * gcc.dg/errno-1.c: Adjust. + +2011-09-08 Richard Guenther + + PR tree-optimization/19831 + * gcc.dg/tree-ssa/ssa-dce-8.c: New testcase. + +2011-09-08 Tobias Burnus + + PR fortran/44646 + * gfortran.dg/do_concurrent_1.f90: New. + * gfortran.dg/do_concurrent_2.f90: New. + +2011-09-08 Jakub Jelinek + + PR target/50310 + * gcc.c-torture/execute/ieee/pr50310.c: New test. + * gcc.dg/pr50310-2.c: New test. + +2011-09-07 Janus Weil + + PR fortran/48095 + * gfortran.dg/derived_constructor_comps_2.f90: Modified. + * gfortran.dg/impure_constructor_1.f90: Modified. + * gfortran.dg/proc_ptr_comp_33.f90: New. + +2011-09-07 Jakub Jelinek + + PR target/50310 + * gcc.dg/pr50310-1.c: New test. + +2011-09-07 Georg-Johann Lay + + PR middle-end/48571 + * gcc.c-torture/execute/pr48571-1.c (bar): Use offsets sizeof(int) + instead of 4. + +2011-09-07 Paolo Carlini + + PR c++/50309 + * g++.dg/cpp0x/noexcept14.C: New. + +2011-09-07 Jason Merrill + + * g++.dg/cpp0x/constexpr-ref3.C: New. + + * g++.dg/cpp0x/sfinae11.C: Check for explanatory diagnostic. + +2011-09-07 Georg-Johann Lay + + * gcc.dg/section1.c: Don't xfail for avr. + +2011-09-07 Georg-Johann Lay + + PR tree-optimization/50322 + * gcc.dg/tree-ssa/ivopts-lt.c: Add xfails for avr. + +2011-09-07 Martin Jambor + + * g++.dg/tree-ssa/pr49911.C: Added flag -fstrict-enums. + +2011-09-07 Martin Jambor + + PR tree-optimization/49911 + * g++.dg/tree-ssa/pr49911.C: New test. + +2011-09-07 Richard Sandiford + + PR target/49030 + * gcc.dg/torture/pr49030.c: New test. + +2011-09-07 Janus Weil + + PR fortran/50288 + * gfortran.dg/class_4c.f03: Modified ("dg-do link" and "dg-final"). + * gfortran.dg/class_4d.f03: Deleted. + * gfortran.dg/class_45b.f03: Modififed ("dg-do link"). + +2011-09-07 Richard Guenther + + * gcc.dg/tree-ssa/forwprop-16.c: New testcase. + +2011-09-07 Jiangning Liu + + PR tree-optimization/46021 + * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL on arm*-*-*. + +2011-09-06 Michael Meissner + + * g++.dg/ext/altivec-17.C: Fix dg-error to match current compiler. + +2011-09-06 Eric Botcazou + + * gcc.c-torture/compile/20110906-1.c: New test. + +2011-09-06 Uros Bizjak + + * gcc.target/i386/builtin-apply-mmx.c: Require ia32 effective target. + +2011-09-06 Enkovich Ilya + + * gcc.dg/tree-ssa/pr38533.c (dg-options): Added option + --param tree-reassoc-width=1. + + * gcc.dg/tree-ssa/reassoc-24.c: New test. + * gcc.dg/tree-ssa/reassoc-25.c: Likewise. + +2011-09-06 Richard Guenther + + PR tree-optimization/48149 + * gcc.dg/tree-ssa/ssa-fre-32.c: New testcase. + +2011-09-06 Richard Guenther + + PR tree-optimization/48317 + * gcc.dg/tree-ssa/ssa-fre-31.c: New testcase. + +2011-09-06 Ira Rosen + + * lib/target-supports.exp (check_effective_target_vect_multiple_sizes): + New procedure. + (add_options_for_quad_vectors): Replace with ... + (add_options_for_double_vectors): ... this. + * gfortran.dg/vect/pr19049.f90: Expect more printings on targets that + support multiple vector sizes since the vectorizer attempts to + vectorize with both vector sizes. + * gcc.dg/vect/no-vfa-vect-79.c, + gcc.dg/vect/no-vfa-vect-102a.c, gcc.dg/vect/vect-outer-1a.c, + gcc.dg/vect/vect-outer-1b.c, gcc.dg/vect/vect-outer-2b.c, + gcc.dg/vect/vect-outer-3a.c, gcc.dg/vect/no-vfa-vect-37.c, + gcc.dg/vect/vect-outer-3b.c, gcc.dg/vect/no-vfa-vect-101.c, + gcc.dg/vect/no-vfa-vect-102.c, gcc.dg/vect/vect-reduc-dot-s8b.c, + gcc.dg/vect/vect-outer-1.c, gcc.dg/vect/vect-104.c: Likewise. + * gcc.dg/vect/vect-42.c: Run with 64 bit vectors if applicable. + * gcc.dg/vect/vect-multitypes-6.c, gcc.dg/vect/vect-52.c, + gcc.dg/vect/vect-54.c, gcc.dg/vect/vect-46.c, gcc.dg/vect/vect-48.c, + gcc.dg/vect/vect-96.c, gcc.dg/vect/vect-multitypes-3.c, + gcc.dg/vect/vect-40.c: Likewise. + * gcc.dg/vect/vect-outer-5.c: Remove quad-vectors option as redundant. + * gcc.dg/vect/vect-109.c, gcc.dg/vect/vect-peel-1.c, + gcc.dg/vect/vect-peel-2.c, gcc.dg/vect/slp-25.c, + gcc.dg/vect/vect-multitypes-1.c, gcc.dg/vect/slp-3.c, + gcc.dg/vect/no-vfa-pr29145.c, gcc.dg/vect/vect-multitypes-4.c: + Likewise. + * gcc.dg/vect/vect-peel-4.c: Make ia global. + +2011-09-05 Richard Sandiford + + PR target/49606 + * gcc.target/mips/abi-main.h: New file. + * gcc.target/mips/abi-o32-long32.c: New test. + * gcc.target/mips/abi-o32-long64.c: Likewise. + * gcc.target/mips/abi-o64-long32.c: Likewise. + * gcc.target/mips/abi-o64-long64.c: Likewise. + * gcc.target/mips/abi-n32-long32.c: Likewise. + * gcc.target/mips/abi-n32-long64.c: Likewise. + * gcc.target/mips/abi-n64-long32.c: Likewise. + * gcc.target/mips/abi-n64-long64.c: Likewise. + * gcc.target/mips/abi-o32-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-o32-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-o64-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-o64-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-n32-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-n32-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-n64-long32-no-shared.c: Likewise. + * gcc.target/mips/abi-n64-long64-no-shared.c: Likewise. + * gcc.target/mips/abi-o32-long32-pic.c: Likewise. + * gcc.target/mips/abi-o32-long64-pic.c: Likewise. + * gcc.target/mips/abi-o64-long32-pic.c: Likewise. + * gcc.target/mips/abi-o64-long64-pic.c: Likewise. + * gcc.target/mips/abi-n32-long32-pic.c: Likewise. + * gcc.target/mips/abi-n32-long64-pic.c: Likewise. + * gcc.target/mips/abi-n64-long32-pic.c: Likewise. + * gcc.target/mips/abi-n64-long64-pic.c: Likewise. + * gcc.target/mips/abi-eabi32-long32.c: Likewise. + * gcc.target/mips/abi-eabi32-long64.c: Likewise. + * gcc.target/mips/abi-eabi64-long32.c: Likewise. + * gcc.target/mips/abi-eabi64-long64.c: Likewise. + * gcc.target/mips/mips.exp: Make -mshared implied -mabicalls. + * gcc.target/mips/branch-2.c: Remove -mabicalls. + * gcc.target/mips/branch-3.c: Likewise. + * gcc.target/mips/branch-4.c: Likewise. + * gcc.target/mips/branch-5.c: Likewise. + * gcc.target/mips/branch-6.c: Likewise. + * gcc.target/mips/branch-7.c: Likewise. + * gcc.target/mips/branch-8.c: Likewise. + * gcc.target/mips/branch-9.c: Likewise. + * gcc.target/mips/branch-10.c: Likewise. + * gcc.target/mips/branch-11.c: Likewise. + * gcc.target/mips/branch-12.c: Likewise. + * gcc.target/mips/branch-13.c: Likewise. + * gcc.target/mips/lazy-binding-1.c: Likewise. + +2011-09-05 Georg-Johann Lay + + * gcc.dg/ipa/ipcp-3.c (mark_cell): Use mask 1 << 14 instead of 1 << 18 + to avoid warning on int=16 platforms.. + +2011-09-05 Jakub Jelinek + + * gcc.dg/compat/struct-layout-1_test.h: Decrease bitfield size + to work even with -fshort-enums. + +2011-09-04 Jan Hubicka + + * gcc.c-torture/compile/20110902.c: new testcase. + +2011-09-04 Jason Merrill + + PR c++/49267 + * g++.dg/cpp0x/rv-conv1.C: New. + + DR 1328 + * g++.dg/cpp0x/rv-func3.C: New. + + * g++.dg/cpp0x/constexpr-default-ctor.C: New. + + PR c++/50248 + Core 1358 + * g++.dg/cpp0x/constexpr-template1.C: New. + * g++.dg/cpp0x/constexpr-template2.C: New. + * g++.dg/cpp0x/constexpr-48089.C: Adjust error markup. + * g++.dg/cpp0x/constexpr-ex1.C: Adjust error markup. + +2011-09-04 Eric Botcazou + + * gnat.dg/specs/debug1.ads: Tweak pattern. + +2011-09-04 Janus Weil + + PR fortran/50227 + * gfortran.dg/class_45a.f03: New. + * gfortran.dg/class_45b.f03: New. + +2011-09-04 Jakub Jelinek + Ira Rosen + + PR tree-optimization/50208 + * gcc.dg/vect/no-fre-pre-pr50208.c: New test. + * gcc.dg/vect/vect.exp: Run no-fre-pre-*.c tests with + -fno-tree-fre -fno-tree-pre. + +2011-09-02 Martin Jambor + + * gcc.dg/ipa/ipcp-3.c: New test. + +2011-09-02 Richard Guenther + + PR tree-optimization/27460 + PR middle-end/29269 + * gcc.dg/vect/vect-cond-7.c: New testcase. + +2011-09-02 Martin Jambor + + * g++.dg/ipa/devirt-3.C: Added a distraction method. + * g++.dg/ipa/ivinline-7.C: Added a test for direct call discovery, + xfailed test for inlining. + * g++.dg/ipa/ivinline-9.C: Likewise. + +2011-09-01 Ira Rosen + + PR tree-optimization/50178 + * gfortran.dg/vect/pr50178.f90: New test. + +2011-08-31 Martin Jambor + + PR middle-end/49886 + * gcc.c-torture/execute/pr49886.c: New testcase. + +2011-08-31 Tom de Vries + + PR middle-end/43513 + * gcc.dg/pr43513.c: New test. + +2011-08-30 Tobias Burnus + + PR fortran/45044 + * gfortran.dg/common_14.f90: New. + * gfortran.dg/common_resize_1.f: Add two dg-warning. + +2011-08-30 Jason Merrill + + PR c++/50084 + * g++.dg/cpp0x/decltype33.C: New. + + PR c++/50089 + * g++.dg/cpp0x/lambda/lambda-qualified.C: New. + + PR c++/50114 + * g++.dg/cpp0x/lambda/lambda-for.C: New. + +2011-08-30 Uros Bizjak + + * gcc.target/i386/fma-compile.c: Escape [ and ] in scan strings. + +2011-08-30 Eric Botcazou + + * gnat.dg/specs/aggr3.ads: New test. + * gnat.dg/specs/aggr3_pkg.ads: New helper. + + * gnat.dg/specs/aggr1.ads: Remove superfluous space. + * gnat.dg/specs/aggr2.ads: Likewise. + +2011-08-30 Steven G. Kargl + + PR fortran/45170 + * gfortran.dg/allocate_with_source_2.f90: New test + +2011-08-30 Jason Merrill + + PR c++/50220 + * g++.dg/cpp0x/lambda/lambda-50220.C: New. + + PR c++/50234 + * g++.dg/cpp0x/constexpr-value3.C: New. + +2011-08-30 Richard Guenther + + PR middle-end/48571 + * gcc.c-torture/execute/pr48571-1.c: New testcase. + * gcc.dg/tree-ssa/ssa-ccp-25.c: Remove. + * gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise. + * gcc.dg/pr36902.c: XFAIL. + +2011-08-30 Ilya Tocar + + * gcc.target/i386/fma-check.h: New. + * gcc.target/i386/fma-256-fmaddXX.c: New testcase. + * gcc.target/i386/fma-256-fmaddsubXX.c: Likewise. + * gcc.target/i386/fma-256-fmsubXX.c: Likewise. + * gcc.target/i386/fma-256-fmsubaddXX.c: Likewise. + * gcc.target/i386/fma-256-fnmaddXX.c: Likewise. + * gcc.target/i386/fma-256-fnmsubXX.c: Likewise. + * gcc.target/i386/fma-fmaddXX.c: Likewise. + * gcc.target/i386/fma-fmaddsubXX.c: Likewise. + * gcc.target/i386/fma-fmsubXX.c: Likewise. + * gcc.target/i386/fma-fmsubaddXX.c: Likewise. + * gcc.target/i386/fma-fnmaddXX.c: Likewise. + * gcc.target/i386/fma-fnmsubXX.c: Likewise. + * gcc.target/i386/fma-compile.c: Likewise. + * gcc.target/i386/i386.exp (check_effective_target_fma): New. + * gcc.target/i386/sse-12.c: Add -mfma. + * gcc.target/i386/sse-13.c: Likewise. + * gcc.target/i386/sse-14.c: Likewise. + * gcc.target/i386/sse-22.c: Likewise. + * gcc.target/i386/sse-23.c: Likewise. + * g++.dg/other/i386-2.C: Likewise. + * g++.dg/other/i386-3.C: Likewise. + +2011-08-30 Kirill Yukhin + + PR testsuite/50185 + * gcc.target/i386/avx2-vmovmskb-2.c: Rename to ... + * gcc.target/i386/avx2-vpmovmskb-2.c: ... this. Update. + +2011-08-30 Christian Bruel + + * g++.dg/bprob/bprob.exp (feedback_options): Set + -fbranch-probabilities. + * gcc.misc-tests/bprob.exp (feedback_options): Likewise. + +2011-08-29 Jason Merrill + + PR c++/50224 + * g++.dg/cpp0x/lambda/lambda-use2.C: New. + +2011-08-29 Jakub Jelinek + Jason Merrill + + * g++.dg/dfp/base.C: New test. + +2011-08-29 Jason Merrill + + Core DR 994 + PR c++/50209 + * g++.dg/cpp0x/initlist58.C: New. + +2011-08-29 Janus Weil + + PR fortran/50225 + * gfortran.dg/class_result_1.f03: New. + +2011-08-29 Jakub Jelinek + + PR middle-end/48722 + * gcc.target/i386/pr48722.c: New test. + +2011-08-29 Thomas Koenig + + PR libfortran/50192 + * gfortran.dg/widechar_compare_1.f90: New test. + +2011-08-26 Jason Merrill + + Core DR 342 + PR c++/48582 + * g++.dg/abi/mangle50.C: New. + +2011-08-27 Uros Bizjak + + PR target/50202 + * gcc.target/i386/pr50202.c: New test. + +2011-08-26 Uros Bizjak + + * gcc.target/i386/sse_4_1-round-vec.c: New test. + * gcc.target/i386/sse_4_1-roundf-vec.c: New test. + * gcc.target/i386/avx-round-vec.c: New test. + * gcc.target/i386/avx-roundf-vec.c: New test. + +2011-08-26 Jakub Jelinek + + * gcc.target/i386/cmpxchg16b-1.c: Match also space after the + instruction. + + PR c/50179 + * c-c++-common/Wunused-var-14.c: New test. + +2011-08-26 Tom de Vries + + * gcc.dg/tree-ssa/ivopts-lt.c: New test. + +2011-08-26 Jiangning Liu + + * gcc.target/arm/thumb2-cond-cmp-1.c: New. + * gcc.target/arm/thumb2-cond-cmp-2.c: Likewise. + * gcc.target/arm/thumb2-cond-cmp-3.c: Likewise. + * gcc.target/arm/thumb2-cond-cmp-4.c: Likewise. + +2011-08-26 Andrew Stubbs + + * gcc.target/arm/thumb2-replicated-constant1.c: New file. + * gcc.target/arm/thumb2-replicated-constant2.c: New file. + * gcc.target/arm/thumb2-replicated-constant3.c: New file. + * gcc.target/arm/thumb2-replicated-constant4.c: New file. + +2011-08-25 Mikael Morin + + PR fortran/50050 + * gfortran.dg/pointer_comp_init_1.f90: New test. + +2011-08-25 Jason Merrill + + PR c++/50157 + * g++.dg/cpp0x/sfinae27.C: New. + +2011-08-25 Tobias Burnus + + * gfortran.dg/coarray_lib_token_4.f90: New. + +2011-08-25 Tobias Burnus + + * gfortran.dg/coarray/alloc_comp_1.f90: New. + +2011-08-25 Richard Guenther + + * gcc.dg/Wshadow-3.c: Restore original content destroyed by r148442. + +2011-08-24 Tobias Burnus + + PR fortran/50163 + * gfortran.dg/initialization_28.f90: New. + +2011-08-24 Richard Guenther + + PR tree-optimization/50067 + * gcc.dg/torture/pr50067-3.c: New testcase. + * gcc.dg/torture/pr50067-4.c: Likewise. + * gcc.dg/torture/pr50067-5.c: Likewise. + +2011-08-23 Kirill Yukhin + + * g++.dg/other/i386-2.C: Add -mavx2 check. + * g++.dg/other/i386-3.C: Likewise. + * gcc.target/i386/avx-1.c: Add AVX2. + * gcc.target/i386/avx-2.c: Likewise. + * gcc.target/i386/funcspec-5.c: Likewise. + * gcc.target/i386/sse-12.c: Likewise. + * gcc.target/i386/sse-13.c: Likewise. + * gcc.target/i386/sse-14.c: Likewise. + * gcc.target/i386/sse-22.c: Likewise. + * gcc.target/i386/sse-23.c: Likewise. + * gcc.target/i386/i386.exp (check_effective_target_avx2): Likewise. + * gcc.target/i386/avx2-check.h: New. + * gcc.target/i386/avx2-i32gatherd-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherd-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherd-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherd-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherd256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherd256-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherd256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherd256-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd256-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherpd256-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherps-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherps-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherps-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherps-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherps256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherps256-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherps256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherps256-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherq-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherq-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherq-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherq-4.c: Likewise. + * gcc.target/i386/avx2-i32gatherq256-1.c: Likewise. + * gcc.target/i386/avx2-i32gatherq256-2.c: Likewise. + * gcc.target/i386/avx2-i32gatherq256-3.c: Likewise. + * gcc.target/i386/avx2-i32gatherq256-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherd-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherd-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherd-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherd-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherd256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherd256-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherd256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherd256-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd256-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherpd256-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherps-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherps-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherps-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherps-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherps256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherps256-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherps256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherps256-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherq-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherq-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherq-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherq-4.c: Likewise. + * gcc.target/i386/avx2-i64gatherq256-1.c: Likewise. + * gcc.target/i386/avx2-i64gatherq256-2.c: Likewise. + * gcc.target/i386/avx2-i64gatherq256-3.c: Likewise. + * gcc.target/i386/avx2-i64gatherq256-4.c: Likewise. + * gcc.target/i386/avx2-mpsadbw-1.c: Likewise. + * gcc.target/i386/avx2-mpsadbw-2.c: Likewise. + * gcc.target/i386/avx2-vbroadcastsd_pd-1.c: Likewise. + * gcc.target/i386/avx2-vbroadcastsd_pd-2.c: Likewise. + * gcc.target/i386/avx2-vbroadcastsi128-1.c: Likewise. + * gcc.target/i386/avx2-vbroadcastsi128-2.c: Likewise. + * gcc.target/i386/avx2-vbroadcastss_ps-1.c: Likewise. + * gcc.target/i386/avx2-vbroadcastss_ps-2.c: Likewise. + * gcc.target/i386/avx2-vbroadcastss_ps256-1.c: Likewise. + * gcc.target/i386/avx2-vbroadcastss_ps256-2.c: Likewise. + * gcc.target/i386/avx2-vextracti128-1.c: Likewise. + * gcc.target/i386/avx2-vextracti128-2.c: Likewise. + * gcc.target/i386/avx2-vinserti128-1.c: Likewise. + * gcc.target/i386/avx2-vinserti128-2.c: Likewise. + * gcc.target/i386/avx2-vmovmskb-2.c: Likewise. + * gcc.target/i386/avx2-vmovntdqa-1.c: Likewise. + * gcc.target/i386/avx2-vmovntdqa-2.c: Likewise. + * gcc.target/i386/avx2-vpabsb256-1.c: Likewise. + * gcc.target/i386/avx2-vpabsb256-2.c: Likewise. + * gcc.target/i386/avx2-vpabsd256-1.c: Likewise. + * gcc.target/i386/avx2-vpabsd256-2.c: Likewise. + * gcc.target/i386/avx2-vpabsw256-1.c: Likewise. + * gcc.target/i386/avx2-vpabsw256-2.c: Likewise. + * gcc.target/i386/avx2-vpackssdw-1.c: Likewise. + * gcc.target/i386/avx2-vpackssdw-2.c: Likewise. + * gcc.target/i386/avx2-vpacksswb-1.c: Likewise. + * gcc.target/i386/avx2-vpacksswb-2.c: Likewise. + * gcc.target/i386/avx2-vpackusdw-1.c: Likewise. + * gcc.target/i386/avx2-vpackusdw-2.c: Likewise. + * gcc.target/i386/avx2-vpackuswb-1.c: Likewise. + * gcc.target/i386/avx2-vpackuswb-2.c: Likewise. + * gcc.target/i386/avx2-vpaddb-1.c: Likewise. + * gcc.target/i386/avx2-vpaddb-2.c: Likewise. + * gcc.target/i386/avx2-vpaddd-1.c: Likewise. + * gcc.target/i386/avx2-vpaddd-2.c: Likewise. + * gcc.target/i386/avx2-vpaddq-1.c: Likewise. + * gcc.target/i386/avx2-vpaddq-2.c: Likewise. + * gcc.target/i386/avx2-vpaddsb-1.c: Likewise. + * gcc.target/i386/avx2-vpaddsb-2.c: Likewise. + * gcc.target/i386/avx2-vpaddsw-1.c: Likewise. + * gcc.target/i386/avx2-vpaddsw-2.c: Likewise. + * gcc.target/i386/avx2-vpaddusb-1.c: Likewise. + * gcc.target/i386/avx2-vpaddusb-2.c: Likewise. + * gcc.target/i386/avx2-vpaddusw-1.c: Likewise. + * gcc.target/i386/avx2-vpaddusw-2.c: Likewise. + * gcc.target/i386/avx2-vpaddw-1.c: Likewise. + * gcc.target/i386/avx2-vpaddw-2.c: Likewise. + * gcc.target/i386/avx2-vpalignr256-1.c: Likewise. + * gcc.target/i386/avx2-vpalignr256-2.c: Likewise. + * gcc.target/i386/avx2-vpand-1.c: Likewise. + * gcc.target/i386/avx2-vpand-2.c: Likewise. + * gcc.target/i386/avx2-vpandn-1.c: Likewise. + * gcc.target/i386/avx2-vpandn-2.c: Likewise. + * gcc.target/i386/avx2-vpavgb-1.c: Likewise. + * gcc.target/i386/avx2-vpavgb-2.c: Likewise. + * gcc.target/i386/avx2-vpavgw-1.c: Likewise. + * gcc.target/i386/avx2-vpavgw-2.c: Likewise. + * gcc.target/i386/avx2-vpblendd128-1.c: Likewise. + * gcc.target/i386/avx2-vpblendd128-2.c: Likewise. + * gcc.target/i386/avx2-vpblendd256-1.c: Likewise. + * gcc.target/i386/avx2-vpblendd256-2.c: Likewise. + * gcc.target/i386/avx2-vpblendvb-1.c: Likewise. + * gcc.target/i386/avx2-vpblendvb-2.c: Likewise. + * gcc.target/i386/avx2-vpblendw-1.c: Likewise. + * gcc.target/i386/avx2-vpblendw-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastb128-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastb128-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastb256-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastb256-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastd128-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastd128-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastd256-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastd256-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastq128-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastq128-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastq256-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastq256-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastw128-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastw128-2.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastw256-1.c: Likewise. + * gcc.target/i386/avx2-vpbroadcastw256-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqb-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqb-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqd-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqd-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqq-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqq-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqw-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpeqw-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtb-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtb-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtd-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtd-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtq-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtq-2.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtw-1.c: Likewise. + * gcc.target/i386/avx2-vpcmpgtw-2.c: Likewise. + * gcc.target/i386/avx2-vperm2i128-1.c: Likewise. + * gcc.target/i386/avx2-vperm2i128-2.c: Likewise. + * gcc.target/i386/avx2-vpermd-1.c: Likewise. + * gcc.target/i386/avx2-vpermd-2.c: Likewise. + * gcc.target/i386/avx2-vpermpd-1.c: Likewise. + * gcc.target/i386/avx2-vpermpd-2.c: Likewise. + * gcc.target/i386/avx2-vpermps-1.c: Likewise. + * gcc.target/i386/avx2-vpermps-2.c: Likewise. + * gcc.target/i386/avx2-vpermq-1.c: Likewise. + * gcc.target/i386/avx2-vpermq-2.c: Likewise. + * gcc.target/i386/avx2-vphaddd-1.c: Likewise. + * gcc.target/i386/avx2-vphaddd-2.c: Likewise. + * gcc.target/i386/avx2-vphaddsw-1.c: Likewise. + * gcc.target/i386/avx2-vphaddsw-2.c: Likewise. + * gcc.target/i386/avx2-vphaddw-1.c: Likewise. + * gcc.target/i386/avx2-vphaddw-2.c: Likewise. + * gcc.target/i386/avx2-vphsubd-1.c: Likewise. + * gcc.target/i386/avx2-vphsubd-2.c: Likewise. + * gcc.target/i386/avx2-vphsubsw-1.c: Likewise. + * gcc.target/i386/avx2-vphsubsw-2.c: Likewise. + * gcc.target/i386/avx2-vphsubw-1.c: Likewise. + * gcc.target/i386/avx2-vpmaddubsw-1.c: Likewise. + * gcc.target/i386/avx2-vpmaddubsw-2.c: Likewise. + * gcc.target/i386/avx2-vpmaddwd-1.c: Likewise. + * gcc.target/i386/avx2-vpmaddwd-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadd-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadd-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadd256-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadd256-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadq-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadq-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadq256-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskloadq256-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskstored-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskstored-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskstored256-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskstored256-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskstoreq-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskstoreq-2.c: Likewise. + * gcc.target/i386/avx2-vpmaskstoreq256-1.c: Likewise. + * gcc.target/i386/avx2-vpmaskstoreq256-2.c: Likewise. + * gcc.target/i386/avx2-vpmaxsb-1.c: Likewise. + * gcc.target/i386/avx2-vpmaxsb-2.c: Likewise. + * gcc.target/i386/avx2-vpmaxsd-1.c: Likewise. + * gcc.target/i386/avx2-vpmaxsd-2.c: Likewise. + * gcc.target/i386/avx2-vpmaxsw-1.c: Likewise. + * gcc.target/i386/avx2-vpmaxsw-2.c: Likewise. + * gcc.target/i386/avx2-vpmaxub-1.c: Likewise. + * gcc.target/i386/avx2-vpmaxub-2.c: Likewise. + * gcc.target/i386/avx2-vpmaxud-1.c: Likewise. + * gcc.target/i386/avx2-vpmaxud-2.c: Likewise. + * gcc.target/i386/avx2-vpmaxuw-1.c: Likewise. + * gcc.target/i386/avx2-vpmaxuw-2.c: Likewise. + * gcc.target/i386/avx2-vpminsb-1.c: Likewise. + * gcc.target/i386/avx2-vpminsb-2.c: Likewise. + * gcc.target/i386/avx2-vpminsd-1.c: Likewise. + * gcc.target/i386/avx2-vpminsd-2.c: Likewise. + * gcc.target/i386/avx2-vpminsw-1.c: Likewise. + * gcc.target/i386/avx2-vpminsw-2.c: Likewise. + * gcc.target/i386/avx2-vpminub-1.c: Likewise. + * gcc.target/i386/avx2-vpminub-2.c: Likewise. + * gcc.target/i386/avx2-vpminud-1.c: Likewise. + * gcc.target/i386/avx2-vpminud-2.c: Likewise. + * gcc.target/i386/avx2-vpminuw-1.c: Likewise. + * gcc.target/i386/avx2-vpminuw-2.c: Likewise. + * gcc.target/i386/avx2-vpmovmskb-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxbd-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxbd-2.c: Likewise. + * gcc.target/i386/avx2-vpmovsxbq-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxbq-2.c: Likewise. + * gcc.target/i386/avx2-vpmovsxbw-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxbw-2.c: Likewise. + * gcc.target/i386/avx2-vpmovsxdq-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxdq-2.c: Likewise. + * gcc.target/i386/avx2-vpmovsxwd-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxwd-2.c: Likewise. + * gcc.target/i386/avx2-vpmovsxwq-1.c: Likewise. + * gcc.target/i386/avx2-vpmovsxwq-2.c: Likewise. + * gcc.target/i386/avx2-vpmovzxbd-1.c: Likewise. + * gcc.target/i386/avx2-vpmovzxbd-2.c: Likewise. + * gcc.target/i386/avx2-vpmovzxbq-1.c: Likewise. + * gcc.target/i386/avx2-vpmovzxbq-2.c: Likewise. + * gcc.target/i386/avx2-vpmovzxbw-1.c: Likewise. + * gcc.target/i386/avx2-vpmovzxbw-2.c: Likewise. + * gcc.target/i386/avx2-vpmovzxdq-1.c: Likewise. + * gcc.target/i386/avx2-vpmovzxdq-2.c: Likewise. + * gcc.target/i386/avx2-vpmovzxwd-1.c: Likewise. + * gcc.target/i386/avx2-vpmovzxwd-2.c: Likewise. + * gcc.target/i386/avx2-vpmovzxwq-1.c: Likewise. + * gcc.target/i386/avx2-vpmovzxwq-2.c: Likewise. + * gcc.target/i386/avx2-vpmuldq-1.c: Likewise. + * gcc.target/i386/avx2-vpmuldq-2.c: Likewise. + * gcc.target/i386/avx2-vpmulhrsw-1.c: Likewise. + * gcc.target/i386/avx2-vpmulhrsw-2.c: Likewise. + * gcc.target/i386/avx2-vpmulhuw-1.c: Likewise. + * gcc.target/i386/avx2-vpmulhuw-2.c: Likewise. + * gcc.target/i386/avx2-vpmulhw-1.c: Likewise. + * gcc.target/i386/avx2-vpmulhw-2.c: Likewise. + * gcc.target/i386/avx2-vpmulld-1.c: Likewise. + * gcc.target/i386/avx2-vpmulld-2.c: Likewise. + * gcc.target/i386/avx2-vpmullw-1.c: Likewise. + * gcc.target/i386/avx2-vpmullw-2.c: Likewise. + * gcc.target/i386/avx2-vpmuludq-1.c: Likewise. + * gcc.target/i386/avx2-vpmuludq-2.c: Likewise. + * gcc.target/i386/avx2-vpor-1.c: Likewise. + * gcc.target/i386/avx2-vpor-2.c: Likewise. + * gcc.target/i386/avx2-vpsadbw-1.c: Likewise. + * gcc.target/i386/avx2-vpsadbw-2.c: Likewise. + * gcc.target/i386/avx2-vpshufb-1.c: Likewise. + * gcc.target/i386/avx2-vpshufb-2.c: Likewise. + * gcc.target/i386/avx2-vpshufd-1.c: Likewise. + * gcc.target/i386/avx2-vpshufd-2.c: Likewise. + * gcc.target/i386/avx2-vpshufhw-1.c: Likewise. + * gcc.target/i386/avx2-vpshufhw-2.c: Likewise. + * gcc.target/i386/avx2-vpshuflw-1.c: Likewise. + * gcc.target/i386/avx2-vpshuflw-2.c: Likewise. + * gcc.target/i386/avx2-vpsignb-1.c: Likewise. + * gcc.target/i386/avx2-vpsignb-2.c: Likewise. + * gcc.target/i386/avx2-vpsignd-1.c: Likewise. + * gcc.target/i386/avx2-vpsignd-2.c: Likewise. + * gcc.target/i386/avx2-vpsignw-1.c: Likewise. + * gcc.target/i386/avx2-vpsignw-2.c: Likewise. + * gcc.target/i386/avx2-vpslld-1.c: Likewise. + * gcc.target/i386/avx2-vpslld-2.c: Likewise. + * gcc.target/i386/avx2-vpslldi-1.c: Likewise. + * gcc.target/i386/avx2-vpslldi-2.c: Likewise. + * gcc.target/i386/avx2-vpslldq-1.c: Likewise. + * gcc.target/i386/avx2-vpslldq-2.c: Likewise. + * gcc.target/i386/avx2-vpsllq-1.c: Likewise. + * gcc.target/i386/avx2-vpsllq-2.c: Likewise. + * gcc.target/i386/avx2-vpsllqi-1.c: Likewise. + * gcc.target/i386/avx2-vpsllqi-2.c: Likewise. + * gcc.target/i386/avx2-vpsllvd128-1.c: Likewise. + * gcc.target/i386/avx2-vpsllvd128-2.c: Likewise. + * gcc.target/i386/avx2-vpsllvd256-1.c: Likewise. + * gcc.target/i386/avx2-vpsllvd256-2.c: Likewise. + * gcc.target/i386/avx2-vpsllvq128-1.c: Likewise. + * gcc.target/i386/avx2-vpsllvq128-2.c: Likewise. + * gcc.target/i386/avx2-vpsllvq256-1.c: Likewise. + * gcc.target/i386/avx2-vpsllvq256-2.c: Likewise. + * gcc.target/i386/avx2-vpsllw-1.c: Likewise. + * gcc.target/i386/avx2-vpsllw-2.c: Likewise. + * gcc.target/i386/avx2-vpsllwi-1.c: Likewise. + * gcc.target/i386/avx2-vpsllwi-2.c: Likewise. + * gcc.target/i386/avx2-vpsrad-1.c: Likewise. + * gcc.target/i386/avx2-vpsrad-2.c: Likewise. + * gcc.target/i386/avx2-vpsradi-1.c: Likewise. + * gcc.target/i386/avx2-vpsradi-2.c: Likewise. + * gcc.target/i386/avx2-vpsravd128-1.c: Likewise. + * gcc.target/i386/avx2-vpsravd128-2.c: Likewise. + * gcc.target/i386/avx2-vpsravd256-1.c: Likewise. + * gcc.target/i386/avx2-vpsravd256-2.c: Likewise. + * gcc.target/i386/avx2-vpsraw-1.c: Likewise. + * gcc.target/i386/avx2-vpsraw-2.c: Likewise. + * gcc.target/i386/avx2-vpsrawi-1.c: Likewise. + * gcc.target/i386/avx2-vpsrawi-2.c: Likewise. + * gcc.target/i386/avx2-vpsrld-1.c: Likewise. + * gcc.target/i386/avx2-vpsrld-2.c: Likewise. + * gcc.target/i386/avx2-vpsrldi-1.c: Likewise. + * gcc.target/i386/avx2-vpsrldi-2.c: Likewise. + * gcc.target/i386/avx2-vpsrldq-1.c: Likewise. + * gcc.target/i386/avx2-vpsrldq-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlq-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlq-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlqi-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlqi-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlvd128-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlvd128-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlvd256-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlvd256-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlvq128-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlvq128-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlvq256-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlvq256-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlw-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlw-2.c: Likewise. + * gcc.target/i386/avx2-vpsrlwi-1.c: Likewise. + * gcc.target/i386/avx2-vpsrlwi-2.c: Likewise. + * gcc.target/i386/avx2-vpsubb-1.c: Likewise. + * gcc.target/i386/avx2-vpsubb-2.c: Likewise. + * gcc.target/i386/avx2-vpsubd-1.c: Likewise. + * gcc.target/i386/avx2-vpsubd-2.c: Likewise. + * gcc.target/i386/avx2-vpsubq-1.c: Likewise. + * gcc.target/i386/avx2-vpsubq-2.c: Likewise. + * gcc.target/i386/avx2-vpsubsb-1.c: Likewise. + * gcc.target/i386/avx2-vpsubsb-2.c: Likewise. + * gcc.target/i386/avx2-vpsubsw-1.c: Likewise. + * gcc.target/i386/avx2-vpsubsw-2.c: Likewise. + * gcc.target/i386/avx2-vpsubusb-1.c: Likewise. + * gcc.target/i386/avx2-vpsubusb-2.c: Likewise. + * gcc.target/i386/avx2-vpsubusw-1.c: Likewise. + * gcc.target/i386/avx2-vpsubusw-2.c: Likewise. + * gcc.target/i386/avx2-vpunpckhbw-1.c: Likewise. + * gcc.target/i386/avx2-vpunpckhbw-2.c: Likewise. + * gcc.target/i386/avx2-vpunpckhdq-1.c: Likewise. + * gcc.target/i386/avx2-vpunpckhdq-2.c: Likewise. + * gcc.target/i386/avx2-vpunpckhqdq-1.c: Likewise. + * gcc.target/i386/avx2-vpunpckhqdq-2.c: Likewise. + * gcc.target/i386/avx2-vpunpckhwd-1.c: Likewise. + * gcc.target/i386/avx2-vpunpckhwd-2.c: Likewise. + * gcc.target/i386/avx2-vpunpcklbw-1.c: Likewise. + * gcc.target/i386/avx2-vpunpcklbw-2.c: Likewise. + * gcc.target/i386/avx2-vpunpckldq-1.c: Likewise. + * gcc.target/i386/avx2-vpunpckldq-2.c: Likewise. + * gcc.target/i386/avx2-vpunpcklqdq-1.c: Likewise. + * gcc.target/i386/avx2-vpunpcklqdq-2.c: Likewise. + * gcc.target/i386/avx2-vpunpcklwd-1.c: Likewise. + * gcc.target/i386/avx2-vpunpcklwd-2.c: Likewise. + * gcc.target/i386/avx2-vpxor-1.c: Likewise. + * gcc.target/i386/avx2-vpxor-2.c: Likewise. + * gcc.target/i386/testimm-9.c: Likewise. + +2011-08-23 Kirill Yukhin + + * g++.dg/other/i386-2.C: Add -mbmi2 check. + * g++.dg/other/i386-3.C: Likewise. + * gcc.target/i386/bmi2-bzhi32-1.c: New testcase. + * gcc.target/i386/bmi2-bzhi32-1a.c: Likewise. + * gcc.target/i386/bmi2-bzhi64-1.c: Likewise. + * gcc.target/i386/bmi2-bzhi64-1a.c: Likewise. + * gcc.target/i386/bmi2-mulx32-1.c: Likewise. + * gcc.target/i386/bmi2-mulx32-1a.c: Likewise. + * gcc.target/i386/bmi2-mulx64-1.c: Likewise. + * gcc.target/i386/bmi2-mulx64-1a.c: Likewise. + * gcc.target/i386/bmi2-pdep32-1.c: Likewise. + * gcc.target/i386/bmi2-pdep32-1a.c: Likewise. + * gcc.target/i386/bmi2-pdep64-1.c: Likewise. + * gcc.target/i386/bmi2-pdep64-1a.c: Likewise. + * gcc.target/i386/bmi2-pext32-1.c: Likewise. + * gcc.target/i386/bmi2-pext32-1a.c: Likewise. + * gcc.target/i386/bmi2-pext64-1.c: Likewise. + * gcc.target/i386/bmi2-pext64-1a.c: Likewise. + * gcc.target/i386/bmi2-rorx32-1.c: Likewise. + * gcc.target/i386/bmi2-rorx32-1a.c: Likewise. + * gcc.target/i386/bmi2-rorx64-1.c: Likewise. + * gcc.target/i386/bmi2-rorx64-1a.c: Likewise. + * gcc.target/i386/bmi2-sarx32-1.c: Likewise. + * gcc.target/i386/bmi2-sarx32-1a.c: Likewise. + * gcc.target/i386/bmi2-sarx64-1.c: Likewise. + * gcc.target/i386/bmi2-sarx64-1a.c: Likewise. + * gcc.target/i386/bmi2-shlx32-1.c: Likewise. + * gcc.target/i386/bmi2-shlx32-1a.c: Likewise. + * gcc.target/i386/bmi2-shlx64-1.c: Likewise. + * gcc.target/i386/bmi2-shlx64-1a.c: Likewise. + * gcc.target/i386/bmi2-shrx32-1.c: Likewise. + * gcc.target/i386/bmi2-shrx32-1a.c: Likewise. + * gcc.target/i386/bmi2-shrx64-1.c: Likewise. + * gcc.target/i386/bmi2-shrx64-1a.c: Likewise. + * gcc.target/i386/i386.exp (check_effective_target_bmi2): New. + * gcc.target/i386/sse-12.c: Add BMI2. + * gcc.target/i386/sse-13.c: Likewise. + * gcc.target/i386/sse-14.c: Likewise. + * gcc.target/i386/sse-22.c: Likewise. + * gcc.target/i386/sse-23.c: Likewise. + +2011-08-23 Jason Merrill + + * g++.dg/template/crash7.C: Adjust expected errors. + +2011-08-23 Jason Merrill + + PR c++/49045 + Core 1321 + * g++.dg/cpp0x/overload2.C: New. + +2011-08-23 Jason Merrill + + Core 903 + * g++.dg/cpp0x/constexpr-nullptr.C: Now ill-formed. + +2011-08-23 Jason Merrill + + Core 975 + * g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C: Now accepted. + * g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C: Adjust. + * g++.dg/cpp0x/lambda/lambda-deduce2.C: Test returning overload. + * g++.dg/cpp0x/lambda/lambda-deduce-neg.C: Remove #include. + +2011-08-23 Jason Merrill + + PR c++/50024 + * g++.dg/cpp0x/constexpr-initlist5.C: New. + +2011-08-23 Jakub Jelinek + + PR c++/50158 + * g++.dg/warn/Wunused-var-16.C: New test. + + PR middle-end/50161 + * gcc.dg/pr50161.c: New test. + +2011-08-23 Siddhesh Poyarekar + + PR c++/50055 + * g++.dg/gcov/gcov-7.C: New test. + +2011-08-23 Jakub Jelinek + + PR c++/46862 + * g++.dg/dfp/nofields.C: New test. + +2011-08-23 Tobias Burnus + + PR fortran/31600 + * gfortran.dg/use_16.f90: New. + +2011-08-22 Uros Bizjak + Kirill Yukhin + + PR target/50155 + * gcc.target/i386/pr50155.c: New test. + +2011-08-22 Jakub Jelinek + + PR tree-optimization/50133 + * gcc.dg/pr50133.c: New test. + + PR middle-end/50141 + * c-c++-common/cxxbitfields-6.c: New test. + +2011-08-22 Mikael Morin + + PR fortran/50050 + * gfortran.dg/alloc_comp_initializer_3.f90: New test. + +2011-08-22 Georg-Johann Lay + + * gcc.dg/pr49994-2.c: Add dg-require-effective-target scheduling. + * gcc.dg/pr49994-3.c: Ditto. + +2011-08-22 Richard Guenther + + PR testsuite/50145 + * gcc.dg/torture/pr50067-1.c: Run on little-endian systems only. + * gcc.dg/torture/pr50067-2.c: Likewise. + +2011-08-21 Thomas Koenig + + PR fortran/47659 + * gfortran.dg/warn_conversion_2.f90: Also warn about conversion + of a constant resulting from simplification. + * gfortran.dg/warn_conversion_3.f90: New test. + +2011-08-21 Thomas Koenig + + PR fortran/50130 + * gfortran.dg/zero_stride_1.f90: New test. + +2011-08-20 Janus Weil + + PR fortran/49638 + * gfortran.dg/typebound_override_1.f90: Modified. + +2011-08-20 Jakub Jelinek + + PR tree-optimization/48739 + * gcc.dg/pr48739-1.c: New test. + * gcc.dg/pr48739-2.c: New test. + +2011-08-20 Tobias Burnus + + * gfortran.dg/graphite/interchange-1.f: Remove xfail. + +2011-08-19 Mikael Morin + + PR fortran/50129 + * gfortran.dg/where_3.f90: New test. + +2011-08-19 H.J. Lu + + PR middle-end/49721 + * gfortran.dg/pr49721-1.f: New. + * gfortran.fortran-torture/compile/pr49721-1.f: Likewise. + +2011-08-19 Joseph Myers + + * gcc.dg/builtin-complex-err-1.c, gcc.dg/builtin-complex-err-2.c, + gcc.dg/dfp/builtin-complex.c, gcc.dg/torture/builtin-complex-1.c: + New tests. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-11.c: New file. + * gcc.target/arm/wmul-12.c: New file. + * gcc.target/arm/wmul-13.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-10.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-9.c: New file. + * gcc.target/arm/wmul-bitfield-2.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-8.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-7.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-6.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-5.c: New file. + * gcc.target/arm/no-wmla-1.c: New file. + +2011-08-19 Andrew Stubbs + + * gcc.target/arm/wmul-bitfield-1.c: New file. + +2011-08-19 Joseph Myers + + * gcc.dg/c90-noreturn-1.c, gcc.dg/c99-noreturn-1.c: New tests. + +2011-08-19 Rainer Orth + + * gcc.dg/builtins-67.c: Use dg-add-options c99_runtime. + * gcc.target/i386/conversion.c: Likewise. + +2011-08-19 Richard Guenther + + * gcc.dg/torture/pr50067-1.c: New testcase. + * gcc.dg/torture/pr50067-2.c: Likewise. + +2011-08-19 Joey Ye + + PR target/49437 + * gcc.target/arm/handler-align.c: New test. + * lib/target-supports.exp (check_effective_target_arm_cortex_m): + New Function. + +2011-08-19 Joey Ye + + * gcc.c-torture/execute/20101011-1.c (DO_TEST): Skip on ARM. + +2011-08-19 Mikael Morin + + PR fortran/50071 + * gfortran.dg/end_block_label_1.f90: New test. + * gfortran.dg/end_associate_label_1.f90: New test. + +2011-08-18 Joseph Myers + + * gcc.dg/c1x-pointer-float-1.c: New test. + +2011-08-18 Mikael Morin + + PR fortran/50071 + * gfortran.dg/duplicate_labels_2.f: New test. + +2011-08-18 Joseph Myers + + * gcc.dg/c1x-noreturn-1.c, gcc.dg/c1x-noreturn-2.c, + gcc.dg/c1x-noreturn-3.c, gcc.dg/c1x-noreturn-4.c, + gcc.dg/c1x-noreturn-5.c: New tests. + +2011-08-18 Joseph Myers + + * gcc.dg/c1x-uni-string-1.c, gcc.dg/c1x-uni-string-2.c: New tests. + +2011-08-18 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_lock_1.f90: Update dg-error. + * gfortran.dg/coarray_lock_3.f90: Fix test. + * gfortran.dg/coarray_lock_4.f90: New. + * gfortran.dg/coarray_lock_5.f90: New. + +2011-08-18 Jakub Jelinek + + PR target/50009 + * gcc.c-torture/compile/pr50009.c: New test. + + PR target/50092 + * gcc.dg/torture/pr50092.c: New test. + +2011-08-18 Tobias Burnus + + PR fortran/50109 + * gfortran.dg/namelist_73.f90: New. + +2011-08-18 Jakub Jelinek + + * g++.dg/plugin/decl_plugin.c: Include diagnostic.h. + + PR debug/50017 + * gcc.dg/pr50017.c: New test. + +2011-08-18 Dodji Seketeli + + PR c++/45625 + * g++.dg/lookup/hidden-var1.C: New test case. + +2011-08-17 Tobias Burnus + + PR fortran/31461 + * gfortran.dg/warn_unused_var_2.f90: New. + * gfortran.dg/warn_unused_var_3.f90: New. + +2011-08-17 Tom de Vries + + PR target/43597 + * gcc.target/arm/pr43597.c: New test. + +2011-08-17 Janus Weil + + PR fortran/50070 + * gfortran.dg/common_13.f90: New. + +2011-08-16 Jason Merrill + + PR c++/50086 + * g++.dg/cpp0x/variadic-unresolved.C: New. + + * g++.old-deja/g++.brendan/README: Add R.I.P. + + * g++.dg/ext/attr-used-1.C: New. + + PR c++/50054 + * g++.dg/cpp0x/initlist56.C: New. + +2011-08-15 H.J. Lu + + PR testsuite/50085 + * g++.dg/opt/life1.C: Only run on Linux. + +2011-08-15 Tobias Burnus + + * gfortran.dg/coarray_26.f90: New. + +2011-08-15 Hans-Peter Nilsson + + * gcc.dg/tree-ssa/vrp61.c: Use -fdump-tree-vrp1-nouid instead of + -fdump-tree-vrp1. + +2011-08-14 Janus Weil + + PR fortran/50073 + * gfortran.dg/func_result_7.f90: New. + +2011-08-13 Jason Merrill + + PR c++/50075 + * g++.dg/cpp0x/decltype32.C: New. + + PR c++/50059 + * g++.dg/diagnostic/expr1.C: New. + +2011-08-12 David Li + + * g++.dg/abi/vbase15.C: New test. + +2011-08-12 Jason Merrill + + PR c++/50034 + * g++.dg/cpp0x/defaulted28.C: Add unevaluated case. + +2011-08-12 Uros Bizjak + + * gcc.dg/builtins-67.c: New test. + * gcc.target/i386/conversion.c: Ditto. + +2011-08-11 Romain Geissler + Brian Hackett + + * g++.dg/plugin/decl_plugin.c: New. + * g++.dg/plugin/decl-plugin-test.C: New. + * g++.dg/plugin/plugin.exp: Add above testcase. + +2011-08-11 Richard Guenther + + * g++.dg/tree-ssa/pr41186.C: Un-XFAIL. + +2011-08-11 Michael Matz + + * gcc.dg/graphite/run-id-pr47593.c: Remove -m32. + +2011-08-11 Ira Rosen + + PR tree-optimization/50039 + * gcc.dg/vect/vect.exp: Run no-tree-fre-* tests with -fno-tree-fre. + * gcc.dg/vect/no-tree-fre-pr50039.c: New test. + +2011-08-10 H.J. Lu + + * gcc.target/i386/sse4_1-blendps-2.c: Include . + (sse4_1_test): Initialize src3 with random value. + +2011-08-10 Artjoms Sinkarovs + + * gcc.c-torture/execute/scal-to-vec1.c: New test. + * gcc.c-torture/execute/scal-to-vec2.c: New test. + * gcc.c-torture/execute/scal-to-vec3.c: New test. + * gcc.dg/scal-to-vec1.c: New test. + * gcc.dg/scal-to-vec2.c: New test. + +2011-08-09 Richard Guenther + + * gcc.dg/tree-ssa/vrp57.c: Disable CCP. + * gcc.dg/tree-ssa/vrp60.c: New testcase. + * gcc.dg/tree-ssa/vrp61.c: Likewise. + * gcc.dg/tree-ssa/vrp62.c: Likewise. + +2011-08-09 Ulrich Weigand + + * gfortran.dg/scratch_1.f90: Skip on spu-*-*. + +2011-08-09 Ulrich Weigand + + * gcc.dg/pr49948.c: Require pthread effective target. + +2011-08-09 Ulrich Weigand + + * gcc.dg/lto/20110201-1_0.c: Provide dummy sqrt. + +2011-08-09 Uros Bizjak + + * gcc.target/i386/sse-22a.c: New test. + +2011-08-09 Ira Rosen + + PR tree-optimization/50014 + * gcc.dg/vect/pr50014.c: New test. + +2011-08-08 Martin Jambor + + PR middle-end/49923 + * gcc.dg/tree-ssa/pr49923.c: New test. + +2011-08-08 H.J. Lu + + PR target/49781 + * gcc.target/i386/pr49781-1.c: New. + +2011-08-08 Jason Merrill + + * g++.dg/cpp0x/range-for20.C: Adjust to test 50020 as well. + + * g++.dg/cpp0x/initlist5.C: Add 50011 test. + +2011-08-07 Janus Weil + + PR fortran/49638 + * gfortran.dg/typebound_override_1.f90: New. + +2011-08-07 Kai Tietz + + * gcc.dg/tree-ssa/pr23455.c: Adjust testcases for LLP64 for + x86_64 mingw target. + * gcc.dg/tree-ssa/loop-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-store-ccp-2.c: Likewise. + * gcc.dg/tree-ssa/ssa-store-ccp-3.c: Likewise. + * gcc.dg/tree-ssa/loop-33.c: Likewise. + * gcc.dg/tree-ssa/ssa-store-ccp-4.c: Likewise. + * gcc.dg/tree-ssa/loop-35.c: Likewise. + * gcc.dg/tree-ssa/stdarg-2.c: Likewise. + * gcc.dg/tree-ssa/stdarg-4.c: Likewise. + * gcc.dg/tree-ssa/stdarg-5.c: Likewise. + * gcc.dg/tree-ssa/gen-vect-11c.c: Likewise. + +2011-08-06 Uros Bizjak + + PR testsuite/48727 + * g++.dg/opt/devirt2.C: Use specific pattern for alpha*-*-*. + +2011-08-06 Uros Bizjak + + * gcc.dg/pr48770.c: Cleanup coverage files. + * gfortran.dg/vect/O3-pr49957.f: Cleanup vect tree dump. + +2011-08-06 Uros Bizjak + + * gcc.target/i386/sse-22.c (dg-options): Add -march=k8. + (pragma GCC target): Add avx, fma4, lzcnt and bmi options. + * gcc.target/i386/sse-23.c (pragma GCC target): Add avx, fma4, + lzcnt and bmi options. + +2011-08-06 H.J. Lu + + PR target/47381 + * gcc.dg/pr47381-1.c: New. + * gcc.dg/pr47381-2.c: Likewise. + * gcc.target/i386/pr47381.c: Likewise. + +2011-08-06 H.J. Lu + + PR middle-end/47727 + * gcc.dg/pr47727.c: New. + + PR target/47372 + * gcc.dg/pr47372-1.c: New. + * gcc.dg/pr47372-2.c: Likewise. + +2011-08-06 H.J. Lu + + PR middle-end/47449 + * gcc.target/i386/pr47449.c: New. + + PR target/47446 + * gcc.dg/pr47446-1.c: New. + * gcc.dg/pr47446-2.c: Likewise. + +2011-08-06 H.J. Lu + + PR target/47766 + * gcc.dg/pr47766.c: New. + + PR target/47715 + * gcc.dg/tls/pr47715-1.c: New. + * gcc.dg/tls/pr47715-2.c: Likewise. + * gcc.dg/tls/pr47715-3.c: Likewise. + * gcc.dg/tls/pr47715-4.c: Likewise. + * gcc.dg/tls/pr47715-5.c: Likewise. + +2011-08-06 Nicola Pero + + PR libobjc/50002 + * objc.dg/gnu-api-2-class.m: Updated comments. + * obj-c++.dg/gnu-api-2-class.mm: Likewise. + * objc.dg/gnu-api-2-class-meta.m: New test. + * obj-c++.dg/gnu-api-2-class-meta.mm: Likewise. + +2011-08-06 Nicola Pero + + PR libobjc/49882 + * obj-c++.dg/gnu-api-2-class.mm (main): Test class_getSuperclass() + with classes that are in construction. + +2011-08-06 H.J. Lu + + PR target/48084 + * gcc.target/i386/pr48084-1.c: New. + * gcc.target/i386/pr48084-2.c: Likewise. + * gcc.target/i386/pr48084-3.c: Likewise. + * gcc.target/i386/pr48084-4.c: Likewise. + * gcc.target/i386/pr48084-5.c: Likewise. + + PR rtl-optimization/49504 + * gcc.target/i386/pr49504.c: New. + + PR target/49860 + * gcc.dg/pr49860.c: New. + +2011-08-06 Nicola Pero + + PR libobjc/49882 + * objc.dg/gnu-api-2-class.m (main): Test class_getSuperclass() + with classes that are in construction. + +2011-08-05 Jason Merrill + + PR c++/48993 + * g++.dg/cpp0x/constexpr-48089.C: Add cases. + + PR c++/49921 + * g++.dg/cpp0x/decltype31.C: New. + + PR c++/49669 + * g++.dg/init/array28.C: New. + + PR c++/49988 + * g++.dg/cpp0x/constexpr-non-const-arg3.C: New. + +2011-08-05 H.J. Lu + + PR target/47369 + * gcc.dg/pr47369-1.c: New. + +2011-08-05 H.J. Lu + + PR middle-end/47364 + * gcc.dg/torture/pr47364-1.c: New. + * gcc.c-torture/compile/pr47364-1.c: Likewise. + * gcc.c-torture/compile/pr47364-2.c: Likewise. + +2011-08-05 Thomas Koenig + + PR fortran/37211 + * gfortran.dg/transfer_check_2.f90: New test case. + +2011-08-05 Jan Hubicka + + PR middle-end/49494 + * gfortran.dg/pr49494.f90: New testcase. + +2011-08-05 Jan Hubicka + + PR middle-end/49735 + * gcc.c-torture/compile/pr49735.c: New testcase. + +2011-08-05 Jason Merrill + + PR c++/47453 + * g++.dg/cpp0x/initlist56.C: New. + + PR c++/49812 + * g++.dg/overload/rvalue2.C: New. + + PR c++/49983 + * g++.dg/cpp0x/range-for21.C: New. + + * g++.dg/ext/vla11.C: New. + +2011-08-05 Richard Guenther + + PR tree-optimization/49984 + * gcc.dg/tree-ssa/vrp59.c: New testcase. + +2011-08-05 Richard Guenther + + * gcc.dg/tree-ssa/vrp51.c: Disable CCP. + * gcc.dg/tree-ssa/vrp52.c: Likewise. + * gcc.dg/tree-ssa/vrp53.c: Likewise. + +2011-08-04 Mikael Morin + + * gfortran.dg/dependency_26.f90: Add a module to the cleanup directive. + * gfortran.dg/trim_optimize_2.f90: Add a module cleanup directive. + * gfortran.dg/ldist-pr43023.f90: Ditto. + * gfortran.dg/namelist_52.f90: Ditto. + * gfortran.dg/interface_proc_end.f90: Ditto. + * gfortran.dg/vector_subscript_bound_1.f90: Ditto. + * gfortran.dg/generic_typebound_operator_1.f90: Ditto. + +2011-08-04 Ira Rosen + + * gcc.dg/vect/vect-over-widen-1.c: New test. + * gcc.dg/vect/vect-over-widen-2.c: New test. + * gcc.dg/vect/vect-over-widen-3.c: New test. + * gcc.dg/vect/vect-over-widen-4.c: New test. + +2011-08-04 Richard Guenther + + PR fortran/49957 + * gfortran.dg/vect/O3-pr49957.f: New testcase. + +2011-08-04 Ian Bolton + + * gcc.target/arm/vfp-1.c: no large negative offsets on Thumb2. + +2011-08-04 Jakub Jelinek + + PR middle-end/49905 + * g++.dg/ext/builtin-object-size3.C: New test. + +2011-08-03 Jakub Jelinek + + PR tree-optimization/49948 + * gcc.dg/pr49948.c: New test. + +2011-08-03 H.J. Lu + + PR middle-end/47383 + * gcc.dg/torture/pr47383.c: New. + +2011-08-03 Arnaud Charlet + + * gnat.dg/specs/debug1.ads: Add missing -margs switch. + +2011-08-03 Arnaud Charlet + + * lib/gnat-dg.exp: Use gnatmake -c -u to compile a single file. + +2011-08-03 H.J. Lu + + PR target/47744 + * gcc.dg/torture/pr47744-1.c: New. + * gcc.dg/torture/pr47744-2.c: Likewise. + * gcc.dg/torture/pr47744-3.c: Likewise. + +2011-08-03 Richard Guenther + + PR middle-end/49958 + * gcc.dg/torture/pr49958.c: New testcase. + +2011-08-03 Richard Guenther + + PR tree-optimization/49938 + * g++.dg/torture/pr49938.C: New testcase. + +2011-08-02 Jason Merrill + + PR c++/43886 + * g++.dg/cpp0x/lambda/lambda-defarg2.C: New. + + PR c++/49577 + * g++.dg/cpp0x/initlist5.C: Add additional cases. + + PR c++/49593 + * g++.dg/cpp0x/variadic115.C: New. + + PR c++/49803 + * g++.dg/cpp0x/union5.C: New. + +2011-08-02 Daniel Kraft + + PR fortran/49885 + * gfortran.dg/auto_char_dummy_array_3.f90: New test. + +2011-08-02 Kai Tietz + + PR middle-end/49947 + * gcc.dg/tree-ssa/forwprop-15.c + +2011-08-02 Jason Merrill + + PR c++/49834 + * g++.dg/cpp0x/range-for20.C: New. + +2011-08-02 Tobias Burnus + + * gfortran.dg/coarray_lib_token_3.f90: New. + +2011-08-02 Jakub Jelinek + + PR fortran/46752 + * gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics. + * gcc.dg/gomp/atomic-15.c: New test. + * g++.dg/gomp/atomic-5.C: Adjust expected diagnostics. + * g++.dg/gomp/atomic-15.C: New test. + * g++.dg/gomp/private-1.C: New test. + * g++.dg/gomp/sharing-2.C: New test. + * gfortran.dg/gomp/crayptr1.f90: Don't expect error + about Cray pointer in FIRSTPRIVATE/LASTPRIVATE. + * gfortran.dg/gomp/omp_atomic2.f90: New test. + +2011-08-02 Tobias Burnus + + * gfortran.dg/trim_optimize_5.f90: Remove spurious "use foo". + * gfortran.dg/actual_array_vect_1.f90: Fix or add dg-final + cleanup-module. + * gfortran.dg/alloc_comp_assign_7.f90: Ditto. + * gfortran.dg/allocatable_function_5.f90: Ditto. + * gfortran.dg/allocate_stat.f90: Ditto. + * gfortran.dg/array_constructor_20.f90: Ditto. + * gfortran.dg/array_constructor_21.f90: Ditto. + * gfortran.dg/array_constructor_22.f90: Ditto. + * gfortran.dg/array_constructor_26.f03: Ditto. + * gfortran.dg/array_function_4.f90: Ditto. + * gfortran.dg/assumed_charlen_function_1.f90: Ditto. + * gfortran.dg/assumed_size_dt_dummy.f90: Ditto. + * gfortran.dg/bind_c_usage_15.f90: Ditto. + * gfortran.dg/bind_c_usage_16.f03: Ditto. + * gfortran.dg/bind_c_usage_3.f03: Ditto. + * gfortran.dg/binding_label_tests_7.f03: Ditto. + * gfortran.dg/class_15.f03: Ditto. + * gfortran.dg/class_27.f03: Ditto. + * gfortran.dg/class_33.f90: Ditto. + * gfortran.dg/class_37.f03: Ditto. + * gfortran.dg/class_40.f03: Ditto. + * gfortran.dg/class_42.f03: Ditto. + * gfortran.dg/class_defined_operator_1.f03: Ditto. + * gfortran.dg/coarray/registering_1.f90: Ditto. + * gfortran.dg/convert_1.f90: Ditto. + * gfortran.dg/default_initialization_3.f90: Ditto. + * gfortran.dg/dependency_25.f90: Ditto. + * gfortran.dg/dependency_26.f90: Ditto. + * gfortran.dg/dependency_36.f90: Ditto. + * gfortran.dg/dependency_37.f90: Ditto. + * gfortran.dg/derived_array_intrinisics_1.f90: Ditto. + * gfortran.dg/dynamic_dispatch_10.f03: Ditto. + * gfortran.dg/elemental_non_intrinsic_dummy_1.f90 |: Ditto. + * gfortran.dg/elemental_pointer_1.f90: Ditto. + * gfortran.dg/elemental_result_1.f90: Ditto. + * gfortran.dg/empty_derived_type.f90: Ditto. + * gfortran.dg/entry_7.f90: Ditto. + * gfortran.dg/entry_dummy_ref_2.f90: Ditto. + * gfortran.dg/equiv_constraint_3.f90: Ditto. + * gfortran.dg/error_recovery_3.f90: Ditto. + * gfortran.dg/extends_4.f03: Ditto. + * gfortran.dg/func_assign.f90: Ditto. + * gfortran.dg/func_assign_3.f90: Ditto. + * gfortran.dg/generic_1.f90: Ditto. + * gfortran.dg/generic_18.f90: Ditto. + * gfortran.dg/generic_22.f03: Ditto. + * gfortran.dg/generic_4.f90: Ditto. + * gfortran.dg/generic_6.f90: Ditto. + * gfortran.dg/generic_actual_arg.f90: Ditto. + * gfortran.dg/graphite/id-21.f: Ditto. + * gfortran.dg/graphite/pr45758.f90: Ditto. + * gfortran.dg/host_assoc_call_2.f90: Ditto. + * gfortran.dg/host_assoc_call_3.f90: Ditto. + * gfortran.dg/host_assoc_call_4.f90: Ditto. + * gfortran.dg/host_assoc_function_4.f90: Ditto. + * gfortran.dg/host_used_types_1.f90: Ditto. + * gfortran.dg/implicit_1.f90: Ditto. + * gfortran.dg/implicit_11.f90: Ditto. + * gfortran.dg/implicit_derived_type_1.f90: Ditto. + * gfortran.dg/impure_actual_1.f90: Ditto. + * gfortran.dg/impure_assignment_1.f90: Ditto. + * gfortran.dg/impure_constructor_1.f90: Ditto. + * gfortran.dg/initialization_10.f90: Ditto. + * gfortran.dg/initialization_12.f90: Ditto. + * gfortran.dg/interface_14.f90: Ditto. + * gfortran.dg/interface_15.f90: Ditto. + * gfortran.dg/interface_2.f90: Ditto. + * gfortran.dg/interface_25.f90: Ditto. + * gfortran.dg/interface_26.f90: Ditto. + * gfortran.dg/interface_29.f90: Ditto. + * gfortran.dg/interface_assignment_1.f90: Ditto. + * gfortran.dg/internal_pack_6.f90: Ditto. + * gfortran.dg/internal_pack_7.f90: Ditto. + * gfortran.dg/internal_pack_8.f90: Ditto. + * gfortran.dg/lto/pr45586_0.f90: Ditto. + * gfortran.dg/lto/pr47839_0.f90: Ditto. + * gfortran.dg/module_commons_3.f90: Ditto. + * gfortran.dg/module_equivalence_4.f90: Ditto. + * gfortran.dg/module_equivalence_6.f90: Ditto. + * gfortran.dg/module_function_type_1.f90: Ditto. + * gfortran.dg/module_naming_1.f90: Ditto. + * gfortran.dg/namelist_4.f90: Ditto. + * gfortran.dg/operator_c1202.f90: Ditto. + * gfortran.dg/parens_7.f90: Ditto. + * gfortran.dg/pr32921.f: Ditto. + * gfortran.dg/pr33646.f90: Ditto. + * gfortran.dg/pr41928.f90: Ditto. + * gfortran.dg/pr42119.f90: Ditto. + * gfortran.dg/pr43984.f90: Ditto. + * gfortran.dg/present_1.f90: Ditto. + * gfortran.dg/private_type_2.f90: Ditto. + * gfortran.dg/proc_decl_2.f90: Ditto. + * gfortran.dg/proc_ptr_10.f90: Ditto. + * gfortran.dg/proc_ptr_22.f90: Ditto. + * gfortran.dg/proc_ptr_8.f90: Ditto. + * gfortran.dg/proc_ptr_comp_12.f90: Ditto. + * gfortran.dg/proc_ptr_comp_pass_6.f90: Ditto. + * gfortran.dg/pure_formal_proc_2.f90: Ditto. + * gfortran.dg/realloc_on_assign_4.f03: Ditto. + * gfortran.dg/substring_equivalence.f90: Ditto. + * gfortran.dg/transfer_assumed_size_1.f90: Ditto. + * gfortran.dg/transpose_optimization_1.f90: Ditto. + * gfortran.dg/trim_optimize_6.f90: Ditto. + * gfortran.dg/typebound_call_12.f03: Ditto. + * gfortran.dg/typebound_operator_5.f03: Ditto. + * gfortran.dg/typebound_operator_6.f03: Ditto. + * gfortran.dg/typebound_proc_18.f03: Ditto. + * gfortran.dg/unreferenced_use_assoc_1.f90: Ditto. + * gfortran.dg/use_1.f90: Ditto. + * gfortran.dg/use_10.f90: Ditto. + * gfortran.dg/use_11.f90: Ditto. + * gfortran.dg/use_14.f90: Ditto. + * gfortran.dg/use_only_2.f90: Ditto. + * gfortran.dg/use_rename_4.f90: Ditto. + * gfortran.dg/use_rename_5.f90: Ditto. + * gfortran.dg/used_dummy_types_3.f90: Ditto. + * gfortran.dg/used_interface_ref.f90: Ditto. + * gfortran.dg/used_types_11.f90: Ditto. + * gfortran.dg/used_types_3.f90: Ditto. + * gfortran.dg/used_types_4.f90: Ditto. + * gfortran.dg/userdef_operator_2.f90: Ditto. + * gfortran.dg/vect/fast-math-vect-8.f90: Ditto. + * gfortran.dg/vect/pr46213.f90: Ditto. + * gfortran.dg/whole_file_21.f90: Ditto. + * gfortran.dg/whole_file_22.f90: Ditto. + * gfortran.dg/coarray_lib_token_1.f90: Ditto. Add space before "}". + * gfortran.dg/coarray_lib_token_2.f90: Ditto. + +2011-08-02 Kai Tietz + + * gcc.dg/tree-ssa/forwprop-15.c: New testcase. + +2011-08-01 Jason Merrill + + PR c++/49932 + * g++.dg/abi/mangle49.C: New. + + PR c++/49924 + * g++.dg/cpp0x/constexpr-array4.C: New. + + PR c++/49813 + * g++.dg/cpp0x/constexpr-builtin1.C: New. + +2011-08-01 Uros Bizjak + + PR target/49927 + * gcc.target/i386/pr49927.c: New test. + +2011-08-01 Ira Rosen + + PR tree-optimization/49926 + * gcc.dg/vect/pr49926.c: New test. + +2011-08-01 Kirill Yukhin + + * gcc.target/i386/i386.exp (check_effective_target_lzcnt): New. + * gcc.target/i386/lzcnt-1.c: New test. + * gcc.target/i386/lzcnt-2.c: Likewise. + * gcc.target/i386/lzcnt-2a.c: Likewise. + * gcc.target/i386/lzcnt-3.c: Likewise. + * gcc.target/i386/lzcnt-4.c: Likewise. + * gcc.target/i386/lzcnt-4a.c: Likewise. + * gcc.target/i386/lzcnt-5.c: Likewise. + * gcc.target/i386/lzcnt-6.c: Likewise. + * gcc.target/i386/lzcnt-6a.c: Likewise. + * gcc.target/i386/lzcnt-check.h: Likewise. + + * gcc.target/i386/sse-12.c (dg-compile): Add -mlzcnt. + * gcc.target/i386/sse-13.c: Likewise. + * gcc.target/i386/sse-14.c: Likewise. + * g++.dg/other/i386-2.C: Likewise. + * g++.dg/other/i386-3.C: Likewise. + +2011-08-01 Julian Brown + + * gcc.target/arm/fixed-point-exec.c: New test. + +2011-07-31 Uros Bizjak + + PR target/49920 + * gcc.target/i386/pr49920.c: New test. + +2011-07-31 Uros Bizjak + + * gcc.dg/tree-ssa/20050314-1.c: Dump and cleanup lim1 pass only. + * gcc.dg/tree-ssa/pr23109.c: Ditto. + * gcc.dg/tree-ssa/loop-7.c: Ditto. + * gcc.dg/tree-ssa/loop-32.c: Ditto. + * gcc.dg/tree-ssa/loop-33.c: Ditto. + * gcc.dg/tree-ssa/loop-34.c: Ditto. + * gcc.dg/tree-ssa/loop-35.c: Ditto. + * gcc.dg/tree-ssa/restrict-3.c: Ditto. + * gcc.dg/tree-ssa/ssa-lim-2.c: Ditto. + * gcc.dg/tree-ssa/ssa-lim-1.c: Ditto. + * gcc.dg/tree-ssa/ssa-lim-3.c: Ditto. + * gcc.dg/tree-ssa/ssa-lim-6.c: Ditto. + * gcc.dg/tree-ssa/structopt-1.c: Ditto. + * g++.dg/tree-ssa/pr33615.C: Ditto. + * g++.dg/tree-ssa/restrict1.C: Ditto. + * c-c++-common/restrict-2.c: Ditto. + * gfortran.dg/pr32921.f: Ditto. + * gcc.dg/tree-ssa/ssa-dse-10.c: Dump and cleanup dse1 pass only. + * gcc.dg/fold-compare-2.c: Dump and cleanup vrp1 pass only. + * gcc.dg/tree-ssa/vrp47.c: Ditto. + * gcc.dg/tree-ssa/pr25501.c: Dump and cleanup mergephi1 pass only. + * gcc.dg/tree-ssa/pr15349.c: Dump and cleanup mergephi2 pass only. + * gcc.dg/tree-ssa/tailrecursion-1.c: Dump and cleanup tailr1 pass only. + * gcc.dg/tree-ssa/tailrecursion-2.c: Ditto. + * gcc.dg/tree-ssa/tailrecursion-3.c: Ditto. + * gcc.dg/tree-ssa/tailrecursion-4.c: Ditto. + * gcc.dg/tree-ssa/tailrecursion-6.c: Ditto. + +2011-07-31 Uros Bizjak + + * lib/gcc-dg.exp (cleanup-dump): Also remove .exe. and + .exe.ltrans[0-9]*. dump files. + +2011-07-31 Janus Weil + + PR fortran/49112 + * gfortran.dg/abstract_type_6.f03: Modified. + * gfortran.dg/typebound_proc_24.f03: New. + +2011-07-30 Paolo Carlini + + PR testsuite/49917 + * g++.dg/init/for1.C: Fix. + +2011-07-30 Thomas Koenig + + PR fortran/48876 + * gfortran.dg/string_5.f90: New test. + +2011-07-29 Jason Merrill + + PR c++/49867 + * g++.dg/cpp0x/lambda/lambda-switch.C: New. + +2011-07-29 Rainer Orth + + PR tree-optimization/47407 + * gcc.dg/tree-ssa/pr42585.c: XFAIL scan-tree-dump-times on + alpha*-dec-osf*. + Sort target list. + +2011-07-29 Richard Guenther + + * gcc.dg/uninit-suppress.c: Also disable VRP. + * gcc.dg/uninit-suppress_2.c: Likewise. + +2011-07-28 Jason Merrill + + PR c++/49808 + * g++.dg/template/nontype24.C: New. + +2011-07-28 H.J. Lu + + PR rtl-optimization/47958 + * gcc.dg/torture/pr47958-1.c: New. + +2011-07-29 Wei Guozhi + + PR rtl-optimization/49799 + * gcc.dg/pr49799.c: New test case. + +2011-07-22 Sebastian Pop + + PR middle-end/48648 + * gcc.dg/graphite/id-pr48648.c: New. + +2011-07-28 Jakub Jelinek + + PR fortran/31067 + * gfortran.dg/maxloc_2.f90: New test. + * gfortran.dg/maxloc_3.f90: New test. + * gfortran.dg/minloc_1.f90: New test. + * gfortran.dg/minloc_2.f90: New test. + * gfortran.dg/minloc_3.f90: New test. + * gfortran.dg/minmaxloc_7.f90: New test. + + PR debug/49871 + * gcc.dg/debug/dwarf2/pr49871.c: New test. + +2011-07-28 Jakub Jelinek + + * gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure + the builtin isn't optimized away. + +2011-07-27 Tobias Burnus + + PR fortran/45586 + * gfortran.dg/lto/pr45586-2_0.f90: New. + +2011-07-27 Aldy Hernandez + + PR middle-end/49875 + * c-c++-common/cxxbitfields-4.c: Check for smaller than long moves. + * c-c++-common/cxxbitfields-5.c: Same. + +2011-07-27 Ulrich Weigand + + * lib/target-supports.exp (check_effective_target_mmap): Use + check_function_available. + +2011-07-27 Jeffrey Yasskin + + * g++.old-deja/g++.pt/crash60.C: Updated. + +2011-07-27 Jakub Jelinek + + PR target/49866 + * gcc.target/i386/pr49866.c: New test. + +2011-07-27 Yukhin Kirill + + * gcc.target/i386/i386.exp (check_effective_target_bmi): New. + * gcc.target/i386/bmi-andn-1.c: New test. + * gcc.target/i386/bmi-andn-1a.c: Likewise. + * gcc.target/i386/bmi-andn-2.c: Likewise. + * gcc.target/i386/bmi-andn-2a.c: Likewise. + * gcc.target/i386/bmi-bextr-1.c: Likewise. + * gcc.target/i386/bmi-bextr-1a.c: Likewise. + * gcc.target/i386/bmi-bextr-2.c: Likewise. + * gcc.target/i386/bmi-bextr-2a.c: Likewise. + * gcc.target/i386/bmi-blsi-1.c: Likewise. + * gcc.target/i386/bmi-blsi-1a.c: Likewise. + * gcc.target/i386/bmi-blsi-2.c: Likewise. + * gcc.target/i386/bmi-blsi-2a.c: Likewise. + * gcc.target/i386/bmi-blsmsk-1.c: Likewise. + * gcc.target/i386/bmi-blsmsk-1a.c: Likewise. + * gcc.target/i386/bmi-blsmsk-2.c: Likewise. + * gcc.target/i386/bmi-blsmsk-2a.c: Likewise. + * gcc.target/i386/bmi-blsr-1.c: Likewise. + * gcc.target/i386/bmi-blsr-1a.c: Likewise. + * gcc.target/i386/bmi-blsr-2.c: Likewise. + * gcc.target/i386/bmi-blsr-2a.c: Likewise. + * gcc.target/i386/bmi-tzcnt-1.c: Likewise. + * gcc.target/i386/bmi-tzcnt-1a.c: Likewise. + * gcc.target/i386/bmi-tzcnt-2.c: Likewise. + * gcc.target/i386/bmi-tzcnt-2a.c: Likewise. + +2011-07-27 Sebastian Pop + + PR middle-end/47691 + * gfortran.dg/graphite/id-pr47691.f: New. + +2011-07-27 Uros Bizjak + + * gcc.target/i386/avx-os-support.h: New. + * gcc.target/i386/avx-check.h: Include avx-os-support.h + (main): Check avx_os_support before the test is run. + * gcc.target/i386/aes-avx-check.h: Ditto. + * gcc.target/i386/pclmul-avx-check.h: Ditto. + +2011-07-27 Kai Tietz + + * gcc.target/i386/aggregate-ret3.c: New test. + * gcc.target/i386/aggregate-ret4.c: New test. + +2011-07-27 Daniel Carrera + + PR fortran/49755 + * gfortran.dg/multiple_allocation_1.f90: Fix test. Allocating an + allocated array should *not* change its size. + * gfortran.dg/multiple_allocation_3.f90: New test. + +2011-07-26 Paolo Carlini + + PR c++/49776 + * g++.dg/cpp0x/constexpr-49776.C: New. + +2011-07-26 Sebastian Pop + + PR middle-end/47046 + * gcc.dg/graphite/id-pr47046.c: New. + +2011-07-26 Sebastian Pop + + PR middle-end/47653 + * gcc.dg/graphite/run-id-pr47593.c: New. + +2011-07-26 Sebastian Pop + + PR middle-end/47653 + * gcc.dg/graphite/run-id-pr47653.c: New. + * gcc.dg/graphite/interchange-3.c: Do not use unsigned types for + induction variables. + * gcc.dg/graphite/scop-16.c: Same. + * gcc.dg/graphite/scop-17.c: Same. + * gcc.dg/graphite/scop-21.c: Same. + +2011-07-26 Sebastian Pop + + PR middle-end/48805 + * gcc.dg/graphite/id-pr48805.c: New. + +2011-07-26 Tobias Burnus + + * gfortran.dg/coarray_lib_token_2.f90: New. + +2011-07-26 Ira Rosen + + * gcc.dg/vect/vect-70.c: Reduce the data size to fit + SPU local store. + +2011-07-25 Andrew Pinski + + PR tree-opt/49671 + * gcc.dg/tree-ssa/pr49671-1.c: New testcase. + * gcc.dg/tree-ssa/pr49671-2.c: New testcase. + +2011-07-25 Rainer Orth + + * lib/target-supports.exp (check_effective_target_mmap): New proc. + + * gcc.c-torture/execute/loop-2f.c: Remove #ifdef __unix__. + * gcc.c-torture/execute/loop-2g.c: Likewise. + * gcc.c-torture/execute/loop-2f.x: Load target-supports.exp. + Require mmap support. + * gcc.c-torture/execute/loop-2g.x: Likewise. + * gcc.dg/20030711-1.c: Replace dg-do target list by mmap. + (MAP_ANON): Provide default. + * gcc.dg/20050826-1.c: Likewise. + * gcc.target/i386/pr36533.c: Likewise. + * gcc.dg/vect/pr49038.c: Remove dg-do run. + Use dg-require-effective-target mmap. + +2011-07-25 Paolo Carlini + + PR c++/49838 + * g++.dg/cpp0x/range-for19.C: New. + +2011-07-25 Rainer Orth + + PR testsuite/49753 + * g++.dg/torture/pr49309.C: Add -fpreprocessed to dg-options. + + Revert: + 2011-07-15 Jakub Jelinek + + PR testsuite/49753 + * g++.dg/torture/pr49309.C: Remove. + +2011-07-25 Richard Sandiford + + PR tree-optimization/49809 + * gnat.dg/opt18.adb, gnat.dg/opt18.ads, gnat.dg/opt18_pkg.ads: New + test. + +2011-07-25 Richard Guenther + + PR tree-optimization/49715 + * gcc.target/i386/pr49715-1.c: New testcase. + * gcc.target/i386/pr49715-2.c: Likewise. + +2011-07-23 Jason Merrill + + * g++.dg/cpp0x/decltype21.C: Add 49823 examples. + +2011-07-22 Jason Merrill + + PR c++/49793 + * g++.dg/cpp0x/initlist55.C: New. + +2011-07-23 Tobias Burnus + + PR fortran/49791 + * gfortran.dg/namelist_72.f: New. + +2011-07-23 Tobias Burnus + + * gfortran.dg/coarray_25.f90: New. + +2011-07-22 Ville Voutilainen + + * override1.C: This test should use c++0x mode. + * override3.C: New. Test the diagnostics in c++98 mode. + +2011-07-22 Jason Merrill + Mark Glisse + + PR c++/30112 + * g++.dg/other/pragma-re-1.C: Add namespace cases. + + PR c++/49813 + * g++.dg/opt/builtins2.C: New. + * g++.dg/other/error27.C: Don't rely on __builtin. + +2011-07-22 H.J. Lu + + * gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c: Only run + on lp64 targets. + * gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c: Likewise. + * gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c: Likewise. + * gcc/testsuite/gcc.target/i386/pr43662.c: Likewise. + * gcc/testsuite/gcc.target/i386/pr43869.c: Likewise. + + * gcc.target/x86_64/abi/callabi/callabi.exp: Check ilp32 + instead of ia32. + +2011-07-22 Richard Guenther + + PR tree-optimization/45819 + * gcc.dg/pr45819.c: New testcase. + +2011-07-22 Uros Bizjak + + * lib/target-supports.exp (check_ifunc_available): Rewrite. + +2011-07-21 Sebastian Pop + + PR middle-end/47654 + PR middle-end/49649 + * gcc.dg/graphite/run-id-pr47654.c: New. + +2011-07-21 Ian Lance Taylor + + PR middle-end/49705 + * gcc.dg/pr49705.c: New test. + +2011-07-21 Uros Bizjak + + * lib/target-supports.exp (check_avx_os_support_available): New. + (check_effective_target_avx_runtime): Use it. + +2011-07-21 Richard Guenther + + PR tree-optimization/49770 + * g++.dg/torture/pr49770.C: New testcase. + +2011-07-21 Kai Tietz + + * gcc.dg/tree-ssa/pr30978.c: adjusted. + * gcc.dg/tree-ssa/ssa-fre-6.c: Likewise. + +2011-07-21 Tobias Burnus + + * gfortran.dg/coarray_lib_token_1.f90: New. + +2011-07-21 Georg-Johann Lay + + * gcc.dg/pr32912-2.c: Skip for AVR. + * gcc.dg/pr44674.c: Add dg-require-profiling. + +2011-07-20 Jason Merrill + + * g++.dg/ext/desig2.C: New. + +2011-07-20 Michael Meissner + + * gcc.target/powerpc/ppc-fma-1.c: Adjust to allow non-VSX fmas to + be generated. + * gcc.target/powerpc/ppc-fma-2.c: Ditto. + * gcc.target/powerpc/recip-3.c: Ditto. + +2011-07-19 Jason Merrill + + PR c++/6709 (DR 743) + PR c++/42603 (DR 950) + * g++.dg/cpp0x/decltype21.C: New. + +2011-07-20 Richard Guenther + + PR middle-end/18908 + * gcc.dg/tree-ssa/pr18908.c: New testcase. + * gcc.dg/tree-ssa/bitwise-sink.c: Adjust. + +2011-07-20 Chung-Lin Tang + + * gcc.target/arm/combine-movs.c: New. + * gcc.target/arm/unsigned-extend-2.c: New. + +2011-07-19 Jason Merrill + + PR c++/49785 + * g++.dg/cpp0x/variadic114.C: New. + +2011-07-19 Tobias Burnus + + * gfortran.dg/coarray_args_1.f90: New. + * gfortran.dg/coarray_args_2.f90: New. + +2011-07-19 Janus Weil + + PR fortran/49708 + * gfortran.dg/allocate_error_3.f90: New. + +2011-07-19 Richard Guenther + + * gcc.dg/tree-ssa/bool-10.c: Adjust expected pattern. + * gcc.dg/tree-ssa/bool-11.c: Likewise. + * gcc.dg/torture/20110719-1.c: New testcase. + +2011-07-19 Jakub Jelinek + + PR tree-optimization/49768 + * gcc.c-torture/execute/pr49768.c: New test. + +2011-07-19 Ira Rosen + + PR tree-optimization/49771 + * gcc.dg/vect/pr49771.c: New test. + +2011-07-18 Martin Jambor + + * gcc.dg/ipa/ipa-1.c: Updated testcase dump scan. + * gcc.dg/ipa/ipa-2.c: Likewise. + * gcc.dg/ipa/ipa-3.c: Likewise and made functions static. + * gcc.dg/ipa/ipa-4.c: Updated testcase dump scan. + * gcc.dg/ipa/ipa-5.c: Likewise. + * gcc.dg/ipa/ipa-7.c: Likewise. + * gcc.dg/ipa/ipa-8.c: Updated testcase dump scan. + * gcc.dg/ipa/ipacost-1.c: Likewise. + * gcc.dg/ipa/ipacost-2.c: Likewise and increased sizes of some + functions. + * gcc.dg/ipa/ipcp-1.c: New test. + * gcc.dg/ipa/ipcp-2.c: Likewise. + * gcc.dg/tree-ssa/ipa-cp-1.c: Updated testcase. + +2011-07-18 Jakub Jelinek + + PR middle-end/49675 + * gfortran.dg/pr49675.f90: New test. + +2011-07-18 Richard Guenther + + * gcc.dg/torture/20110718-1.c: New testcase. + +2011-07-18 Rainer Orth + + * g++.dg/ext/bitfield2.C: Remove i?86-*-netware support. + * g++.dg/ext/bitfield3.C: Likewise. + * g++.dg/ext/bitfield4.C: Likewise. + * g++.dg/ext/bitfield5.C: Likewise. + * g++.dg/other/PR23205.C: Remove *-*-netware* support. + * g++.dg/other/pr23205-2.C: Likewise. + * gcc.c-torture/compile/20001109-1.c: Remove dg-xfail-if. + * gcc.c-torture/compile/20001109-2.c: Likewise. + * gcc.dg/20040813-1.c: Remove *-*-netware* support. + * gcc.dg/bitfld-15.c: Remove i?86-*-netware support. + * gcc.dg/bitfld-16.c: Likewise. + * gcc.dg/bitfld-17.c: Likewise. + * gcc.dg/bitfld-18.c: Likewise. + * gcc.dg/builtins-config.h: Remove Netware support. + * gcc.dg/cdce1.c: Remove *-*-netware* support. Update line number. + * gcc.dg/cdce2.c: Likewise. + * gcc.dg/cpp/assert4.c: Remove netware support. + * gcc.dg/debug/pr35154.c: Remove *-*-netware* support. + * gfortran.dg/debug/pr35154-stabs.f: Remove *-*-netware* support. + + * lib/target-supports.exp (check_visibility_available): Remove + NetWare support. + (check_profiling_available): Likewise. + +2011-07-18 Ira Rosen + + * gcc.dg/vect/pr49038.c: Run only on targets that support mmap. + +2011-07-17 Tobias Burnus + Thomas Koenig + + PR fortran/34657 + * gfortran.dg/generic_17.f90: Fix testcase. + * gfortran.dg/interface_3.f90: Add dg-error. + * gfortran.dg/use_14.f90: New. + * gfortran.dg/use_15.f90: New. + +2011-07-17 Eric Botcazou + + * gnat.dg/pointer_controlled.adb: New test. + +2011-07-17 Tobias Burnus + + PR fortran/49624 + * gfortran.dg/pointer_remapping_7.f90: New. + +2011-07-16 Jason Merrill + + * lib/prune.exp (prune_gcc_output): Prune "In substitution" too. + +2011-07-16 Nathan Froyd + Jason Merrill + + PR c++/45329 + PR c++/48934 + * g++.dg/cpp0x/decltype29.C: Adjust. + * g++.dg/cpp0x/error4.C: Adjust. + * g++.dg/cpp0x/sfinae26.C: Adjust. + * g++.dg/cpp0x/variadic105.C: Adjust. + * g++.dg/template/deduce3.C: Adjust. + * g++.dg/template/error45.C: Adjust. + * g++.dg/template/ptrmem2.C: Adjust. + * g++.dg/template/sfinae2.C: Adjust. + * g++.old-deja/g++.pt/crash60.C: Adjust. + * g++.old-deja/g++.pt/unify6.C: Adjust. + * g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust. + * g++.dg/cpp0x/nullptr15.C: Adjust. + * g++.dg/cpp0x/pr31431-2.C: Adjust. + * g++.dg/cpp0x/pr31431.C: Adjust. + * g++.dg/cpp0x/pr31434.C: Adjust. + * g++.dg/cpp0x/sfinae11.C: Adjust + * g++.dg/cpp0x/temp_default2.C: Adjust. + * g++.dg/cpp0x/trailing4.C: Adjust. + * g++.dg/cpp0x/variadic-ex3.C: Adjust. + * g++.dg/cpp0x/variadic-ex4.C: Adjust. + * g++.dg/cpp0x/variadic105.C: Adjust. + * g++.dg/cpp0x/vt-37737-2.C: Adjust. + * g++.dg/ext/vla2.C: Adjust. + * g++.dg/other/ptrmem10.C: Adjust. + * g++.dg/other/ptrmem11.C: Adjust. + * g++.dg/overload/unknown1.C: Adjust. + * g++.dg/template/conv11.C: Adjust. + * g++.dg/template/dependent-expr5.C: Adjust. + * g++.dg/template/friend.C: Adjust. + * g++.dg/template/incomplete2.C: Adjust. + * g++.dg/template/local4.C: Adjust. + * g++.dg/template/local6.C: Adjust. + * g++.dg/template/operator9.C: Adjust. + * g++.dg/template/ttp25.C: Adjust. + * g++.dg/template/unify10.C: Adjust. + * g++.dg/template/unify11.C: Adjust. + * g++.dg/template/unify6.C: Adjust. + * g++.dg/template/unify9.C: Adjust. + * g++.dg/template/varmod1.C: Adjust. + * g++.old-deja/g++.brendan/crash56.C: Adjust. + * g++.old-deja/g++.pt/crash28.C: Adjust. + * g++.old-deja/g++.pt/explicit41.C: Adjust. + * g++.old-deja/g++.pt/explicit77.C: Adjust. + * g++.old-deja/g++.pt/expr2.C: Adjust. + * g++.old-deja/g++.pt/ptrmem6.C: Adjust. + * g++.old-deja/g++.pt/spec5.C: Adjust. + * g++.old-deja/g++.pt/spec6.C: Adjust. + * g++.old-deja/g++.pt/unify4.C: Adjust. + * g++.old-deja/g++.pt/unify8.C: Adjust. + * g++.old-deja/g++.robertl/eb98.C: Adjust. + * g++.dg/overload/template5.C: New testcase. + * g++.dg/template/overload12.C: New testcase. + +2011-07-11 Tobias Burnus + + * gfortran.dg/coarray_14.f90: Remove dg-error "sorry not implemented". + * gfortran.dg/coarray_7.f90: Ditto. + * gfortran.dg/coarray/scalar_alloc_1.f90: New. + * gfortran.dg/coarray/scalar_alloc_2.f90: New. + +2011-07-16 Bernd Schmidt + + * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Add tic6x-*-* + case. + * gcc.c-torture/execute/ieee/20000320-1.x: Likewise. + * gcc.c-torture/execute/ieee/hugeval.x: Likewise. + * gcc.c-torture/execute/ieee/mzero2.c: Comment out the divide tests for + C67X. + * gcc.c-torture/execute/ieee/pr29302.x: New file. + * gcc.dg/torture/type-generic-1.c: Add -DUNSAFE for tic6x-*-*. + * gcc.dg/torture/builtin-math-7.c: Add a comment. + +2011-07-15 Jason Merrill + + PR testsuite/49741 + * lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Restore. + Use --extra_opts instead of --additional_options. + +2011-07-15 Jakub Jelinek + + PR testsuite/49753 + * g++.dg/torture/pr49309.C: Remove. + +2011-07-15 Bernd Schmidt + + * gcc.target/tic6x/weak-call.c: New test. + * gcc.target/tic6x/fpcmp.c: New test. + * gcc.target/tic6x/fpdiv.c: New test. + * gcc.target/tic6x/rotdi16-scan.c: New test. + * gcc.target/tic6x/ffssi.c: New test. + * gcc.target/tic6x/fpdiv-lib.c: New test. + * gcc.target/tic6x/cold-lc.c: New test. + * gcc.target/tic6x/longcalls.c: New test. + * gcc.target/tic6x/abi-align-1.c: New test. + * gcc.target/tic6x/fpcmp-finite.c: New test. + * gcc.target/tic6x/rotdi16.c: New test. + * gcc.target/tic6x/bswapl.c: New test. + * gcc.target/tic6x/ffsdi.c: New test. + * gcc.target/tic6x/tic6x.exp: New file. + * gcc.target/tic6x/builtins/arith24.c: New test. + * gcc.target/tic6x/builtins/smpy.c: New test. + * gcc.target/tic6x/builtins/smpylh.c: New test. + * gcc.target/tic6x/builtins/smpyh.c: New test. + * gcc.target/tic6x/builtins/sarith1.c: New test. + * gcc.target/tic6x/builtins/extclr.c: New test + * gcc.target/tic6x/builtins/c6x-builtins.exp: New file. + * gcc.target/tic6x/builtin-math-7.c: New test, adapted from gcc.dg. + * lib/target-supports.exp (chck_profiling_available): Not on tic6x. + (check_effective_target_ti_c67x, check_effective_target_ti_c64xp): + New functions. + * gcc.c-torture/execute/20101011-1.c: Add a condition for + __TMS320C6X__. + * gcc.dg/20020312-2.c: Likewise. + * gcc.dg/pr27095.c: Handle tic6x like hppa. + * gcc.dg/torture/pr37868.c: Skip on tic6x. + * gcc.dg/torture/builtin-math-7.c: Likewise. + + PR testsuite/49757 + * gcc.target/tic6x/builtins/c6x-builtins.exp: Return if + not testing tic6x-*-*. + +2011-07-14 Andrew Pinski + + PR tree-opt/49309 + * g++.dg/torture/pr49309.C: New testcase. + +2011-07-14 Bernd Schmidt + + * gcc.dg/pr48770.c: Add dg-require-effective-target fpic. + +2011-07-14 Richard Guenther + + PR tree-optimization/49651 + * gcc.dg/torture/pr49651.c: New testcase. + +2011-07-14 Georg-Johann Lay + + PR target/43746 + * gcc.dg/array-quals-1.c: Don't xfail on AVR. + +2011-07-13 Michael Meissner + + * gcc.target/powerpc/no-r11-1.c: Change -mno-r11 to + -mno-pointers-to-nested-functions. + * gcc.target/powerpc/no-r11-2.c: Ditto. + * gcc.target/powerpc/no-r11-3.c: Ditto. + +2011-07-13 Jason Merrill + + * lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Remove. + * lib/lto.exp (lto_prune_warns): Prune warning about -std=c++0x + when compiling C files. + * g++.dg/debug/dwarf2/lineno-simple1.C: Avoid constexpr ctor. + * g++.dg/debug/dwarf2/pr44641.C: Avoid constexpr ctor. + * g++.dg/ext/utf-dflt.C: Specify -std=c++98. + * g++.dg/lookup/anon2.C: Likewise. + * g++.dg/tree-ssa/copyprop.C: Likewise. + * g++.old-deja/g++.jason/rfg27.C: Likewise. + * g++.dg/init/vector1.C: Ignore narrowing errors. + * g++.dg/torture/pr35526.C: Likewise. + * g++.old-deja/g++.ext/arrnew.C: Prune C++0x warning. + +2011-07-13 Janne Blomqvist + + PR libfortran/49296 + * gfortran.dg/read_list_eof_1.f90: Add tests for integer, real, + and logical reads. + +2011-07-13 Rainer Orth + + * gcc.c-torture/execute/990127-2.x: Use -mpc64 on i?86-*-darwin*, + i?86-*-solaris2*, x86_64-*-darwin*, x86_64-*-solaris2*. + +2011-07-13 Uros Bizjak + + * lib/g++.exp (g++_init): Use istarget. Remove target_triplet global. + * lib/obj-c++.exp (obj-c++_init): Ditto. + * lib/file-format.exp (gcc_target_object_format): Ditto. + * lib/target-supports-dg.exp (dg-require-dll): Ditto. + * lib/target-supports-dg-exp (check_weak_available): Ditto. + (check_visibility_available): Ditto. + (check_effective_target_tls_native): Ditto. + (check_effective_target_tls_emulated): Ditto. + (check_effective_target_function_sections): Ditto. + +2011-07-13 Chung-Lin Tang + + * gcc.target/arm/pr48183.c: New test. + +2011-07-13 Richard Guenther + + * gcc.dg/torture/20110713-1.c: New testcase. + +2011-07-12 Andrew Pinski + + PR rtl-opt/49474 + * gcc.c-torture/compile/pr49474.c: New testcase. + +2011-07-12 Jakub Jelinek + + PR tree-optimization/49712 + * gcc.c-torture/execute/pr49712.c: New test. + +2011-07-11 Jason Merrill + + PR c++/44609 + * g++.dg/template/recurse3.C: New. + +2011-07-11 Jakub Jelinek + + PR debug/49676 + * gcc.dg/guality/csttest.c: New test. + + PR fortran/49698 + * gfortran.dg/pr49698.f90: New test. + +2011-07-11 Jeff Law + + * gcc.dg/uninit-pred-8_b.c: Disable dominator optimizations. + +2011-07-11 H.J. Lu + + * gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Check ia32. + * go.test/go-test.exp (go-set-goarch): Likewise. + +2011-07-11 Georg-Johann Lay + + PR target/39633 + * gcc.target/avr/torture/pr39633.c: New test case. + +2011-07-11 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_lock_3.f90: Remove bogus dg-error. + +2011-07-11 Georg-Johann Lay + + * lib/target-supports.exp (check_effective_target_scheduling): + New Function. + * gcc.dg/pr46614.c: Add dg-require-effective-target scheduling. + * gcc.dg/pr45055.c: Ditto. + * gcc.dg/pr45353.c: Ditto. + * g++.dg/pr45056.C: Ditto. + +2011-07-11 Georg-Johann Lay + + * gcc.dg/compat/struct-by-value-16_main.c: Skip AVR. + * gcc.dg/compat/struct-by-value-17_main.c: Skip AVR. + * gcc.dg/compat/struct-by-value-18_main.c: Skip AVR. + * g++.dg/torture/pr31863.C: Skip AVR. + +2011-07-10 Tobias Burnus + + PR fortran/49690 + * gfortran.dg/intrinsic_signal.f90: New. + +2011-07-09 Jason Merrill + + * g++.dg/cpp0x/regress/regress6.C: New. + * g++.dg/parse/crash45.C: Adjust message. + * g++.dg/template/crash38.C: Adjust message. + * g++.dg/template/crash64.C: Adjust message. + +2011-07-09 H.J. Lu + + * c-c++-common/dfp/func-vararg-alternate-d128-2.c: Support x32. + * c-c++-common/dfp/func-vararg-mixed-2.c: Likewise. + * g++.dg/abi/bitfield3.C: Likewise. + * g++.dg/eh/pr38662.C: Likewise. + * g++.dg/ext/attrib36.C: Likewise. + * g++.dg/ext/attrib37.C: Likewise. + * g++.dg/ext/attrib8.C: Likewise. + * g++.dg/ext/tmplattr1.C: Likewise. + * g++.dg/inherit/override-attribs.C: Likewise. + * g++.dg/opt/inline9.C: Likewise. + * g++.dg/opt/life1.C: Likewise. + * g++.dg/opt/longbranch2.C: Likewise. + * g++.dg/opt/nrv12.C: Likewise. + * g++.dg/opt/reg-stack4.C: Likewise. + * g++.dg/other/pr35504.C: Likewise. + * g++.dg/other/pr39496.C: Likewise. + * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise. + * g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise. + * g++.dg/torture/stackalign/stdcall-1.C: Likewise. + * g++.dg/torture/stackalign/unwind-0.C: Likewise. + * g++.dg/torture/stackalign/unwind-1.C: Likewise. + * g++.dg/torture/stackalign/unwind-2.C: Likewise. + * g++.dg/torture/stackalign/unwind-3.C: Likewise. + * g++.dg/torture/stackalign/unwind-4.C: Likewise. + * g++.dg/torture/stackalign/unwind-5.C: Likewise. + * g++.dg/torture/stackalign/unwind-6.C: Likewise. + * g++.dg/warn/pr15774-1.C: Likewise. + * g++.dg/warn/pr15774-2.C: Likewise. + * g++.old-deja/g++.ext/attrib1.C: Likewise. + * g++.old-deja/g++.ext/attrib2.C: Likewise. + * g++.old-deja/g++.ext/attrib3.C: Likewise. + * g++.old-deja/g++.pt/asm2.C: Likewise. + * gcc.c-torture/compile/20000804-1.c: Likewise. + * gcc.c-torture/compile/pr16566-2.c: Likewise. + * gcc.c-torture/execute/ieee/ieee.exp: Likewise. + * gcc.dg/20020108-1.c: Likewise. + * gcc.dg/20020122-2.c: Likewise. + * gcc.dg/20020122-3.c: Likewise. + * gcc.dg/20020206-1.c: Likewise. + * gcc.dg/20020219-1.c: Likewise. + * gcc.dg/20020310-1.c: Likewise. + * gcc.dg/20020411-1.c: Likewise. + * gcc.dg/20020418-2.c: Likewise. + * gcc.dg/20020426-2.c: Likewise. + * gcc.dg/20020517-1.c: Likewise. + * gcc.dg/20030204-1.c: Likewise. + * gcc.dg/20030826-2.c: Likewise. + * gcc.dg/20031102-1.c: Likewise. + * gcc.dg/20031202-1.c: Likewise. + * gcc.dg/20050111-1.c: Likewise. + * gcc.dg/20050503-1.c: Likewise. + * gcc.dg/array-init-1.c: Likewise. + * gcc.dg/builtin-apply4.c: Likewise. + * gcc.dg/dfp/pr31344.c: Likewise. + * gcc.dg/gomp/atomic-11.c: Likewise. + * gcc.dg/graphite/pr40281.c: Likewise. + * gcc.dg/ia64-sync-1.c: Likewise. + * gcc.dg/ia64-sync-2.c: Likewise. + * gcc.dg/ia64-sync-3.c: Likewise. + * gcc.dg/ia64-sync-4.c: Likewise. + * gcc.dg/ifcvt-fabs-1.c: Likewise. + * gcc.dg/invalid-call-1.c: Likewise. + * gcc.dg/loop-3.c: Likewise. + * gcc.dg/lower-subreg-1.c: Likewise. + * gcc.dg/lto/pr47259_0.c: Likewise. + * gcc.dg/nested-calls-1.c: Likewise. + * gcc.dg/pr20017.c: Likewise. + * gcc.dg/pr25023.c: Likewise. + * gcc.dg/pr27671-2.c: Likewise. + * gcc.dg/pr32176.c: Likewise. + * gcc.dg/pr33676.c: Likewise. + * gcc.dg/pr35045.c: Likewise. + * gcc.dg/pr36015.c: Likewise. + * gcc.dg/pr36584.c: Likewise. + * gcc.dg/pr36998.c: Likewise. + * gcc.dg/pr37438.c: Likewise. + * gcc.dg/pr37908.c: Likewise. + * gcc.dg/pr41241.c: Likewise. + * gcc.dg/pr41340.c: Likewise. + * gcc.dg/pr44136.c: Likewise. + * gcc.dg/pr44194-1.c: Likewise. + * gcc.dg/pr46212.c: Likewise. + * gcc.dg/prefetch-loop-arrays-1.c: Likewise. + * gcc.dg/setjmp-2.c: Likewise. + * gcc.dg/short-compare-1.c: Likewise. + * gcc.dg/short-compare-2.c: Likewise. + * gcc.dg/smod-1.c: Likewise. + * gcc.dg/sync-2.c: Likewise. + * gcc.dg/sync-3.c: Likewise. + * gcc.dg/tls/opt-1.c: Likewise. + * gcc.dg/tls/opt-2.c: Likewise. + * gcc.dg/tls/opt-3.c: Likewise. + * gcc.dg/torture/badshift.c: Likewise. + * gcc.dg/torture/fp-int-convert-float80-timode.c: Likewise. + * gcc.dg/torture/pr20314-2.c: Likewise. + * gcc.dg/torture/pr36891.c: Likewise. + * gcc.dg/torture/pr38774.c: Likewise. + * gcc.dg/torture/stackalign/alloca-2.c: Likewise. + * gcc.dg/torture/stackalign/alloca-4.c: Likewise. + * gcc.dg/torture/stackalign/alloca-5.c: Likewise. + * gcc.dg/torture/stackalign/alloca-6.c: Likewise. + * gcc.dg/torture/stackalign/fastcall-1.c: Likewise. + * gcc.dg/torture/stackalign/push-1.c: Likewise. + * gcc.dg/torture/stackalign/regparm-1.c: Likewise. + * gcc.dg/torture/stackalign/thiscall-1.c: Likewise. + * gcc.dg/tree-ssa/loop-28.c: Likewise. + * gcc.dg/tree-ssa/prefetch-3.c: Likewise. + * gcc.dg/tree-ssa/prefetch-4.c: Likewise. + * gcc.dg/tree-ssa/prefetch-5.c: Likewise. + * gcc.dg/tree-ssa/prefetch-6.c: Likewise. + * gcc.dg/tree-ssa/prefetch-7.c: Likewise. + * gcc.dg/tree-ssa/prefetch-8.c: Likewise. + * gcc.dg/tree-ssa/prefetch-9.c: Likewise. + * gcc.dg/tree-ssa/stdarg-2.c: Likewise. + * gcc.dg/tree-ssa/stdarg-3.c: Likewise. + * gcc.dg/tree-ssa/stdarg-4.c: Likewise. + * gcc.dg/tree-ssa/stdarg-5.c: Likewise. + * gcc.dg/tree-ssa/update-unroll-1.c: Likewise. + * gcc.dg/unroll-1.c: Likewise. + * gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Likewise. + * gcc.misc-tests/i386-pf-3dnow-1.c: Likewise. + * gcc.misc-tests/i386-pf-athlon-1.c: Likewise. + * gcc.misc-tests/i386-pf-none-1.c: Likewise. + * gcc.misc-tests/i386-pf-sse-1.c: Likewise. + * gcc.target/i386/20000609-1.c: Likewise. + * gcc.target/i386/20000720-1.c: Likewise. + * gcc.target/i386/20000724-1.c: Likewise. + * gcc.target/i386/20011107-1.c: Likewise. + * gcc.target/i386/20011119-1.c: Likewise. + * gcc.target/i386/20020201-3.c: Likewise. + * gcc.target/i386/20020218-1.c: Likewise. + * gcc.target/i386/20020729-1.c: Likewise. + * gcc.target/i386/20030926-1.c: Likewise. + * gcc.target/i386/20060125-1.c: Likewise. + * gcc.target/i386/20060125-2.c: Likewise. + * gcc.target/i386/20060512-1.c: Likewise. + * gcc.target/i386/20060512-2.c: Likewise. + * gcc.target/i386/20060512-3.c: Likewise. + * gcc.target/i386/20060512-4.c: Likewise. + * gcc.target/i386/387-1.c: Likewise. + * gcc.target/i386/387-2.c: Likewise. + * gcc.target/i386/387-5.c: Likewise. + * gcc.target/i386/387-6.c: Likewise. + * gcc.target/i386/980312-1.c: Likewise. + * gcc.target/i386/980313-1.c: Likewise. + * gcc.target/i386/990117-1.c: Likewise. + * gcc.target/i386/990424-1.c: Likewise. + * gcc.target/i386/990524-1.c: Likewise. + * gcc.target/i386/991129-1.c: Likewise. + * gcc.target/i386/991214-1.c: Likewise. + * gcc.target/i386/991230-1.c: Likewise. + * gcc.target/i386/addr-sel-1.c: Likewise. + * gcc.target/i386/aggregate-ret1.c: Likewise. + * gcc.target/i386/aggregate-ret2.c: Likewise. + * gcc.target/i386/align-main-3.c: Likewise. + * gcc.target/i386/amd64-abi-1.c: Likewise. + * gcc.target/i386/amd64-abi-2.c: Likewise. + * gcc.target/i386/amd64-abi-4.c: Likewise. + * gcc.target/i386/amd64-abi-5.c: Likewise. + * gcc.target/i386/amd64-abi-6.c: Likewise. + * gcc.target/i386/asm-1.c: Likewise. + * gcc.target/i386/asm-3.c: Likewise. + * gcc.target/i386/asm-5.c: Likewise. + * gcc.target/i386/attributes-error.c: Likewise. + * gcc.target/i386/avx-vcvtsd2si-2.c: Likewise. + * gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise. + * gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise. + * gcc.target/i386/avx-vcvtss2si-2.c: Likewise. + * gcc.target/i386/avx-vcvttsd2si-2.c: Likewise. + * gcc.target/i386/avx-vcvttss2si-2.c: Likewise. + * gcc.target/i386/avx-vinsertps-3.c: Likewise. + * gcc.target/i386/avx-vmovd-2.c: Likewise. + * gcc.target/i386/avx-vmovq-2.c: Likewise. + * gcc.target/i386/avx-vmovq-3.c: Likewise. + * gcc.target/i386/avx-vpextrq-1.c: Likewise. + * gcc.target/i386/avx-vpinsrq-1.c: Likewise. + * gcc.target/i386/avx-vzeroupper-16.c: Likewise. + * gcc.target/i386/avx-vzeroupper-17.c: Likewise. + * gcc.target/i386/avx-vzeroupper-18.c: Likewise. + * gcc.target/i386/bitfield1.c: Likewise. + * gcc.target/i386/bitfield2.c: Likewise. + * gcc.target/i386/bmi-2.c: Likewise. + * gcc.target/i386/bmi-5.c: Likewise. + * gcc.target/i386/builtin-unreachable.c: Likewise. + * gcc.target/i386/cleanup-2.c: Likewise. + * gcc.target/i386/clobbers.c: Likewise. + * gcc.target/i386/cmov8.c: Likewise. + * gcc.target/i386/cmpxchg16b-1.c: Likewise. + * gcc.target/i386/compress-float-387-pic.c: Likewise. + * gcc.target/i386/compress-float-387.c: Likewise. + * gcc.target/i386/compress-float-sse-pic.c: Likewise. + * gcc.target/i386/compress-float-sse.c: Likewise. + * gcc.target/i386/crc32-2.c: Likewise. + * gcc.target/i386/crc32-3.c: Likewise. + * gcc.target/i386/divmod-7.c: Likewise. + * gcc.target/i386/divmod-8.c: Likewise. + * gcc.target/i386/fastcall-sseregparm.c: Likewise. + * gcc.target/i386/fma3-builtin.c: Likewise. + * gcc.target/i386/fma3-fma.c: Likewise. + * gcc.target/i386/fma4-256-vector.c: Likewise. + * gcc.target/i386/fma4-builtin.c: Likewise. + * gcc.target/i386/fma4-fma-2.c: Likewise. + * gcc.target/i386/fma4-fma.c: Likewise. + * gcc.target/i386/fma4-vector-2.c: Likewise. + * gcc.target/i386/fma4-vector.c: Likewise. + * gcc.target/i386/funcspec-1.c: Likewise. + * gcc.target/i386/funcspec-10.c: Likewise. + * gcc.target/i386/funcspec-11.c: Likewise. + * gcc.target/i386/funcspec-2.c: Likewise. + * gcc.target/i386/funcspec-5.c: Likewise. + * gcc.target/i386/funcspec-6.c: Likewise. + * gcc.target/i386/gcc-have-sync-compare-and-swap-1.c: Likewise. + * gcc.target/i386/gcc-have-sync-compare-and-swap-2.c: Likewise. + * gcc.target/i386/gcc-have-sync-compare-and-swap-3.c: Likewise. + * gcc.target/i386/gcc-have-sync-compare-and-swap-4.c: Likewise. + * gcc.target/i386/incoming-1.c: Likewise. + * gcc.target/i386/incoming-10.c: Likewise. + * gcc.target/i386/incoming-11.c: Likewise. + * gcc.target/i386/incoming-12.c: Likewise. + * gcc.target/i386/incoming-13.c: Likewise. + * gcc.target/i386/incoming-14.c: Likewise. + * gcc.target/i386/incoming-15.c: Likewise. + * gcc.target/i386/incoming-2.c: Likewise. + * gcc.target/i386/incoming-3.c: Likewise. + * gcc.target/i386/incoming-4.c: Likewise. + * gcc.target/i386/incoming-5.c: Likewise. + * gcc.target/i386/incoming-6.c: Likewise. + * gcc.target/i386/incoming-7.c: Likewise. + * gcc.target/i386/incoming-8.c: Likewise. + * gcc.target/i386/incoming-9.c: Likewise. + * gcc.target/i386/lea.c: Likewise. + * gcc.target/i386/local.c: Likewise. + * gcc.target/i386/loop-1.c: Likewise. + * gcc.target/i386/loop-2.c: Likewise. + * gcc.target/i386/loop-3.c: Likewise. + * gcc.target/i386/max-stack-align.c: Likewise. + * gcc.target/i386/memcpy-1.c: Likewise. + * gcc.target/i386/movbe-2.c: Likewise. + * gcc.target/i386/movq-2.c: Likewise. + * gcc.target/i386/movq.c: Likewise. + * gcc.target/i386/nrv1.c: Likewise. + * gcc.target/i386/pad-4.c: Likewise. + * gcc.target/i386/pad-5a.c: Likewise. + * gcc.target/i386/pad-5b.c: Likewise. + * gcc.target/i386/pad-6a.c: Likewise. + * gcc.target/i386/pad-6b.c: Likewise. + * gcc.target/i386/pad-7.c: Likewise. + * gcc.target/i386/pad-9.c: Likewise. + * gcc.target/i386/pentium4-not-mull.c: Likewise. + * gcc.target/i386/pic-1.c: Likewise. + * gcc.target/i386/pr12092-1.c: Likewise. + * gcc.target/i386/pr12329.c: Likewise. + * gcc.target/i386/pr21518.c: Likewise. + * gcc.target/i386/pr22362.c: Likewise. + * gcc.target/i386/pr22585.c: Likewise. + * gcc.target/i386/pr23098.c: Likewise. + * gcc.target/i386/pr25196.c: Likewise. + * gcc.target/i386/pr25293.c: Likewise. + * gcc.target/i386/pr25654.c: Likewise. + * gcc.target/i386/pr26449.c: Likewise. + * gcc.target/i386/pr26778.c: Likewise. + * gcc.target/i386/pr26826.c: Likewise. + * gcc.target/i386/pr27266.c: Likewise. + * gcc.target/i386/pr29978.c: Likewise. + * gcc.target/i386/pr30505.c: Likewise. + * gcc.target/i386/pr30961-1.c: Likewise. + * gcc.target/i386/pr31628.c: Likewise. + * gcc.target/i386/pr32000-2.c: Likewise. + * gcc.target/i386/pr32661-1.c: Likewise. + * gcc.target/i386/pr32708-2.c: Likewise. + * gcc.target/i386/pr32708-3.c: Likewise. + * gcc.target/i386/pr34256.c: Likewise. + * gcc.target/i386/pr34312.c: Likewise. + * gcc.target/i386/pr34522.c: Likewise. + * gcc.target/i386/pr35160.c: Likewise. + * gcc.target/i386/pr35281.c: Likewise. + * gcc.target/i386/pr36246.c: Likewise. + * gcc.target/i386/pr36786.c: Likewise. + * gcc.target/i386/pr37275.c: Likewise. + * gcc.target/i386/pr37843-3.c: Likewise. + * gcc.target/i386/pr37843-4.c: Likewise. + * gcc.target/i386/pr39082-1.c: Likewise. + * gcc.target/i386/pr39431.c: Likewise. + * gcc.target/i386/pr39496.c: Likewise. + * gcc.target/i386/pr39543-2.c: Likewise. + * gcc.target/i386/pr39911.c: Likewise. + * gcc.target/i386/pr40718.c: Likewise. + * gcc.target/i386/pr40906-1.c: Likewise. + * gcc.target/i386/pr40906-2.c: Likewise. + * gcc.target/i386/pr40906-3.c: Likewise. + * gcc.target/i386/pr40934.c: Likewise. + * gcc.target/i386/pr41900.c: Likewise. + * gcc.target/i386/pr42589.c: Likewise. + * gcc.target/i386/pr43662.c: Likewise. + * gcc.target/i386/pr43671.c: Likewise. + * gcc.target/i386/pr43766.c: Likewise. + * gcc.target/i386/pr43869.c: Likewise. + * gcc.target/i386/pr44942.c: Likewise. + * gcc.target/i386/pr44948-2a.c: Likewise. + * gcc.target/i386/pr45234.c: Likewise. + * gcc.target/i386/pr45336-2.c: Likewise. + * gcc.target/i386/pr45336-4.c: Likewise. + * gcc.target/i386/pr45852.c: Likewise. + * gcc.target/i386/pr46470.c: Likewise. + * gcc.target/i386/pr48037-1.c: Likewise. + * gcc.target/i386/pr48389.c: Likewise. + * gcc.target/i386/pr49095.c: Likewise. + * gcc.target/i386/pr9771-1.c: Likewise. + * gcc.target/i386/rdfsbase-1.c: Likewise. + * gcc.target/i386/rdfsbase-2.c: Likewise. + * gcc.target/i386/rdgsbase-1.c: Likewise. + * gcc.target/i386/rdgsbase-2.c: Likewise. + * gcc.target/i386/rdrand-3.c: Likewise. + * gcc.target/i386/regparm-stdcall.c: Likewise. + * gcc.target/i386/regparm.c: Likewise. + * gcc.target/i386/reload-1.c: Likewise. + * gcc.target/i386/rotate-2.c: Likewise. + * gcc.target/i386/sibcall-5.c: Likewise. + * gcc.target/i386/signbit-1.c: Likewise. + * gcc.target/i386/signbit-2.c: Likewise. + * gcc.target/i386/signbit-3.c: Likewise. + * gcc.target/i386/sse-5.c: Likewise. + * gcc.target/i386/sse-8.c: Likewise. + * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise. + * gcc.target/i386/sse-cvtss2si-2.c: Likewise. + * gcc.target/i386/sse-cvttss2si-2.c: Likewise. + * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise. + * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise. + * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise. + * gcc.target/i386/sse2-init-v2di-2.c: Likewise. + * gcc.target/i386/sse2-movq-2.c: Likewise. + * gcc.target/i386/sse2-movq-3.c: Likewise. + * gcc.target/i386/sse4_1-insertps-3.c: Likewise. + * gcc.target/i386/sse4_1-pextrq.c: Likewise. + * gcc.target/i386/sse4_1-pinsrq.c: Likewise. + * gcc.target/i386/sse4_2-crc32q.c: Likewise. + * gcc.target/i386/sse4_2-popcntq.c: Likewise. + * gcc.target/i386/ssefn-1.c: Likewise. + * gcc.target/i386/ssefn-2.c: Likewise. + * gcc.target/i386/sseregparm-1.c: Likewise. + * gcc.target/i386/sseregparm-2.c: Likewise. + * gcc.target/i386/sseregparm-3.c: Likewise. + * gcc.target/i386/sseregparm-4.c: Likewise. + * gcc.target/i386/sseregparm-5.c: Likewise. + * gcc.target/i386/sseregparm-6.c: Likewise. + * gcc.target/i386/sseregparm-7.c: Likewise. + * gcc.target/i386/sseregparm-8.c: Likewise. + * gcc.target/i386/stack-realign.c: Likewise. + * gcc.target/i386/stack-usage-realign.c: Likewise. + * gcc.target/i386/stackalign/asm-1.c: Likewise. + * gcc.target/i386/stackalign/longlong-1.c: Likewise. + * gcc.target/i386/stackalign/longlong-2.c: Likewise. + * gcc.target/i386/stackalign/return-1.c: Likewise. + * gcc.target/i386/stackalign/return-2.c: Likewise. + * gcc.target/i386/stackalign/return-3.c: Likewise. + * gcc.target/i386/tailcall-1.c: Likewise. + * gcc.target/i386/tbm-2.c: Likewise. + * gcc.target/i386/udivmod-7.c: Likewise. + * gcc.target/i386/udivmod-8.c: Likewise. + * gcc.target/i386/unroll-1.c: Likewise. + * gcc.target/i386/vararg-1.c: Likewise. + * gcc.target/i386/vararg-2.c: Likewise. + * gcc.target/i386/vect8-ret.c: Likewise. + * gcc.target/i386/vectorize5.c: Likewise. + * gcc.target/i386/wmul-1.c: Likewise. + * gcc.target/i386/wmul-2.c: Likewise. + * gcc.target/i386/wrfsbase-1.c: Likewise. + * gcc.target/i386/wrfsbase-2.c: Likewise. + * gcc.target/i386/wrgsbase-1.c: Likewise. + * gcc.target/i386/wrgsbase-2.c: Likewise. + * gcc.target/i386/xop-pcmov.c: Likewise. + * gcc.target/i386/xop-pcmov2.c: Likewise. + * gcc.target/i386/xop-rotate1-vector.c: Likewise. + * gcc.target/i386/xop-rotate2-vector.c: Likewise. + * gcc.target/i386/xop-rotate3-vector.c: Likewise. + * gcc.target/i386/xop-shift1-vector.c: Likewise. + * gcc.target/i386/xop-shift2-vector.c: Likewise. + * gcc.target/i386/xop-shift3-vector.c: Likewise. + * gcc.target/i386/zee.c: Likewise. + * gcc.target/x86_64/abi/callabi/callabi.exp: Likewise. + * gfortran.dg/compiler-directive_2.f: Likewise. + * gfortran.dg/g77/20010216-1.f: Likewise. + * gfortran.dg/gomp/pr39152.f90: Likewise. + * gfortran.dg/pr33794.f90: Likewise. + +2011-07-09 Jason Merrill + + * g++.dg/cpp0x/regress/regress5.C: New. + +2011-07-08 Jason Merrill + + PR c++/45437 + * g++.dg/expr/compound-asn1.C: New. + * g++.dg/warn/sequence-pt-1.C: Change one dg-error to dg-bogus. + +2011-07-08 Jakub Jelinek + + PR target/49621 + * gcc.target/powerpc/altivec-34.c: New test. + +2011-07-08 Jason Merrill + + PR c++/45603 + * g++.dg/abi/guard3.C: New. + +2011-07-08 Julian Brown + + * lib/target-supports.exp + (check_effective_target_arm_little_endian): New. + (check_effective_target_vect_pack_trunc): Use above. + (check_effective_target_vect_unpack): Likewise. + (check_effective_target_vect_element_align): Test + check_effective_target_arm_vect_no_misalign for ARM. + +2011-07-08 Jason Merrill + + PR c++/49673 + * g++.dg/cpp0x/constexpr-rom.C: New. + +2011-07-08 Kirill Yukhin + + PR middle-end/49519 + * g++.dg/torture/pr49519.C: New test. + +2011-07-08 Martin Jambor + + * gcc.dg/tree-ssa/sra-12.c: Skip dump scan on avr targets. + +2011-07-08 Rainer Orth + + PR testsuite/48727 + * g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*. + +2011-07-08 Richard Guenther + + PR tree-optimization/49662 + * gcc.dg/graphite/interchange-14.c: XFAIL. + * gcc.dg/graphite/interchange-15.c: Likewise. + * gcc.dg/graphite/interchange-mvt.c: Likewise. + +2011-07-06 Jason Merrill + + PR c++/49663 + * g++.dg/cpp0x/regress/regress4.C: New. + +2011-07-07 Mikael Morin + + PR fortran/49648 + * gfortran.dg/result_in_spec_4.f90: New test. + +2011-07-07 Rainer Orth + + * gcc.target/sparc/cas64.c: New test. + +2011-07-07 Jakub Jelinek + + PR c/49644 + * g++.dg/torture/pr49644.C: New test. + + PR c/49644 + * gcc.c-torture/execute/pr49644.c: New test. + +2011-07-07 H.J. Lu + + * lib/target-supports.exp (check_effective_target_ia32): New. + (check_effective_target_x32): Likewise. + (check_effective_target_vect_cmdline_needed): Also check x32. + +2011-07-07 Janis Johnson + + * gcc.target/arm/pr40657-2.c: Remove -march option and unneeded + dg-prune-output. + * gcc.target/arm/pr42235.c: Likewise. + * gcc.target/arm/pr42495.c: Likewise. + * gcc.target/arm/pr42574.c: Likewise. + * gcc.target/arm/thumb-branch1.c: Likewise. + + * gcc.target/arm/pr39839.c: Don't specify -mthumb or -march, remove + unneeded prune of possible warning. + * gcc.target/arm/pr40956.c: Likewise. + * gcc.target/arm/pr42505.c: Likewise. + + * gcc.c-torture/compile/pr41679.c: Move from gcc.target/arm. + * gcc.c-torture/compile/pr46883.c: Likewise. + * gcc.c-torture/compile/pr46934.c: Likewise. + + * gcc.target/arm/pr41679.c: Remove test directives in preparation + for move to ../../gcc.c-torture/compile. + * gcc.target/arm/pr46883.c: Likewise. + * gcc.target/arm/pr46934.c: Likewise. + + * lib/target-supports.exp (check_effective_target_arm_dsp): New. + * gcc.target/arm/mla-2.c: Use it instead of specific -march. + * gcc.target/arm/wmul-1.c: Likewise. + * gcc.target/arm/wmul-2.c: Likewise. + * gcc.target/arm/wmul-3.c: Likewise. + * gcc.target/arm/wmul-4.c: Likewise. + * gcc.target/arm/smlaltb-1.c: Require arm_dsp, don't specify -march, + add tab after scan target. + * gcc.target/arm/smlaltt-1.c: Likewise. + * gcc.target/arm/smlatb-1.c: Likewise. + * gcc.target/arm/smlatt-1.c: Likewise. + +2011-07-07 Jakub Jelinek + + PR debug/49522 + * gcc.dg/debug/pr49522.c: New test. + +2011-07-07 Georg-Johann Lay + + * gcc.dg/pragma-align.c: Run only if target !default_packed. + * gcc.dg/pr46212.c: Run only if target int32plus. + * gcc.dg/torture/pr48146.c: Ditto. + * gcc.dg/tree-ssa/vrp51.c: Ditto. + * c-c++-common/pr44832.c: Ditto. + * gcc.dg/pr49544.c: Run only if target ptr32plus. + * gcc.dg/pr31490.c: Ditto. + * gcc.dg/torture/builtin-math-7.c: Run only if target + large_double. + * gcc.dg/torture/pr45764.c: Skip for AVR. + * gcc.dg/pr47893.c: Ditto. + +2011-07-07 Janis Johnson + + * lib/target-supports.exp (check_effective_target_arm_thumb1): New. + (check_effective_target_arm_thumb2): Clarify comment, add valid code. + * gcc.target/arm/mla-1.c: Skip for arm_thumb1, don't specify -march, + add tab to scan target. + +2011-07-07 Richard Sandiford + + * gcc.target/arm/neon-modes-3.c: New test. + +2011-07-07 Uros Bizjak + + * gcc.dg/graphite/pr37485.c (dg-options): Add -fno-loop-strip-mine + -fno-loop-interchange -ffast-math. + +2011-07-07 Richard Guenther + + * gcc.dg/ftrapv-3.c: New testcase. + +2011-07-07 Richard Guenther + + * gcc.dg/tree-ssa/vrp58.c: New testcase. + * gcc.dg/tree-ssa/scev-cast.c: Adjust. + +2011-07-07 Kai Tietz + + * gcc.dg/binop-notxor1.c: New test. + * gcc.dg/binop-notand4a.c: New test. + * gcc.dg/binop-notxor2.c: New test. + * gcc.dg/binop-notand3a.c: New test. + * gcc.dg/binop-notand2a.c: New test. + * gcc.dg/binop-notand6a.c: New test. + * gcc.dg/binop-notor1.c: New test. + * gcc.dg/binop-notand1a.c: New test. + * gcc.dg/binop-notand5a.c: New test. + * gcc.dg/binop-notor2.c: New test. + +2011-07-07 Jakub Jelinek + + PR middle-end/49640 + * gcc.dg/gomp/pr49640.c: New test. + +2011-07-07 Richard Guenther + + * gcc.dg/graphite/pr37485.c: Add -floop-block. + +2011-07-07 Rainer Orth + + PR target/39150 + * gcc.misc-tests/linkage.exp: Handle x86_64-*-solaris2.1[0-9]*. + +2011-07-06 Michael Meissner + + * gcc.target/powerpc/no-r11-1.c: New test for -mr11, -mno-r11. + * gcc.target/powerpc/no-r11-2.c: Ditto. + * gcc.target/powerpc/no-r11-3.c: Ditto. + +2011-07-06 Uros Bizjak + + * gcc.dg/stack-layout-2.c: Cleanup expand rtl dump. + * gfortran.dg/move_alloc_4.f90: Cleanup original tree dump. + +2011-07-06 Georg-Johann Lay + + * lib/target-supports.exp (check_profiling_available): Disable + profiling with -fprofile-generate for target avr. + +2011-07-06 Richard Guenther + + PR tree-optimization/49645 + * g++.dg/tree-ssa/pr8781.C: Disable SRA. + +2011-07-06 H.J. Lu + + PR middle-end/47383 + * gcc.dg/pr47383.c: New. + +2011-07-06 Rainer Orth + + PR tree-optimization/49647 + * gcc.dg/tree-ssa/20030807-7.c: Remove xfail *-*-*. + +2011-07-06 Eric Botcazou + + PR testsuite/49542 + * gcc.dg/vect/pr33804.c: XFAIL if vect_no_align unconditionally. + * gcc.dg/vect/slp-multitypes-3.c: XFAIL on SPARC unconditionally. + +2011-07-05 Jason Merrill + + PR c++/48157 + * g++.dg/template/template-id-4.C: New. + +2011-07-05 Georg-Johann Lay + + * gcc.dg/pr44023.c: Add dg-require-effective-target int32plus + * gcc.dg/pr43402.c: Ditto. + +2011-07-05 Georg-Johann Lay + + * gcc.dg/cpp/pragma-3.c: Add dg-require-effective-target fopenmp. + +2011-07-05 Michael Meissner + + * gcc.target/powerpc/ppc-switch-1.c: New test for + --param case-values-threshold. + * gcc.target/powerpc/ppc-switch-2.c: Ditto. + +2011-07-05 Janis Johnson + + * gcc.target/arm/pr42093.c: Use "-fno-reorder-blocks". + +2011-07-05 Jason Merrill + + * g++.dg/rtti/anon-ns1.C: Allow for null-termination. + +2011-07-05 Sebastian Pop + + PR tree-optimization/47654 + * gcc.dg/graphite/block-pr47654.c: New. + +2011-07-05 Jason Merrill + + * g++.dg/cpp0x/lambda/lambda-ref2.C: New. + +2011-07-05 Razya Ladelsky + + PR tree-optimization/49580 + * gcc.dg/autopar/pr49580.c: New test. + +2011-07-05 Richard Guenther + + PR tree-optimization/49518 + PR tree-optimization/49628 + * g++.dg/torture/pr49628.C: New testcase. + * gcc.dg/torture/pr49518.c: Likewise. + +2011-07-05 Rainer Orth + + * ada/acats/run_acats (which): Extract last field from type -p, + type output only if command succeeded. + +2011-07-04 Jason Merrill + + * g++.dg/abi/mangle48.C: New. + + * g++.dg/cpp0x/diag1.C: New. + + * g++.dg/diagnostic/aka1.C: New. + +2011-07-04 Jakub Jelinek + + PR rtl-optimization/49619 + * gcc.dg/pr49619.c: New test. + + PR rtl-optimization/49472 + * gfortran.dg/pr49472.f90: New test. + + PR debug/49602 + * gcc.dg/pr49602.c: New test. + +2011-07-04 Georg-Johann Lay + + PR target/34734 + PR target/44643 + * gcc.target/avr/avr.exp: Run over cpp files, too. + * gcc.target/avr/torture/avr-torture.exp: Ditto. + * gcc.target/avr/progmem.h: New file. + * gcc.target/avr/exit-abort.h: New file. + * gcc.target/avr/progmem-error-1.c: New file. + * gcc.target/avr/progmem-error-1.cpp: New file. + * gcc.target/avr/progmem-warning-1.c: New file. + * gcc.target/avr/torture/progmem-1.c: New file. + * gcc.target/avr/torture/progmem-1.cpp: New file. + +2011-07-04 Richard Guenther + + PR tree-optimization/49615 + * g++.dg/torture/pr49615.C: New testcase. + +2011-07-03 Ira Rosen + + PR tree-optimization/49610 + * gcc.dg/vect/pr49610.c: New test. + +2011-07-02 Eric Botcazou + + * gnat.dg/specs/debug1.ads: New test. + +2011-07-02 Janus Weil + + PR fortran/49562 + * gfortran.dg/typebound_proc_23.f90: New. + +2011-07-01 Jonathan Wakely + + PR c++/49605 + * g++.dg/warn/delete-non-virtual-dtor.C: Adjust. + +2011-07-01 Jason Merrill + + PR c++/48261 + * g++.dg/template/template-id-3.C: New. + + PR c++/48593 + * g++.dg/template/qualified-id4.C: New. + + PR c++/48883 + * g++.dg/template/explicit-args4.C: New. + + PR c++/49085 + * g++.dg/template/offsetof2.C: New. + +2011-07-01 Kai Tietz + + * gcc.dg/tree-ssa/bitwise-sink.c: New test. + +2011-07-01 Rainer Orth + + PR libmudflap/49549 + * lib/target-supports.exp (check_effective_target_gld): New proc. + +2011-07-01 Richard Guenther + + PR tree-optimization/49603 + * gcc.dg/torture/pr49603.c: New testcase. + +2011-06-30 Jason Merrill + + PR c++/49387 + * g++.dg/rtti/template1.C: New. + + PR c++/49569 + * g++.dg/cpp0x/regress/ctor1.C: New. + + PR c++/49355 + * g++.dg/cpp0x/initlist54.C: New. + +2011-06-30 Martin Jambor + + * gcc.dg/tree-ssa/sra-12.c: New test. + +2011-06-29 Jason Merrill + + * g++.dg/cpp0x/named.C: Test subobject of xvalue. + +2011-06-30 Richard Guenther + + PR tree-optimization/46787 + * gcc.dg/vect/vect-121.c: New testcase. + +2011-06-30 Martin Jambor + + PR tree-optimization/49094 + * gcc.dg/tree-ssa/pr49094.c: New test. + +2011-06-30 Jakub Jelinek + + PR fortran/49540 + * gfortran.dg/pr49540-1.f90: New test. + * gfortran.dg/pr49540-2.f90: New test. + +2011-06-30 Rainer Orth + + PR ada/49511 + * ada/acats/run_acats (which): Use last field of type -p output. + +2011-06-30 Dominique d'Humieres + Iain Sandoe + + PR libobjc/36610 + * objc.dg/torture/forward-1.m: Remove dg-xfail-run-if. + Only skip on 64-bit *-*-darwin8* && !objc2. + +2011-06-30 Richard Guenther + + PR tree-optimization/38752 + * gcc.c-torture/compile/pr38752.c: New testcase. + +2011-06-30 Ira Rosen + + * gcc.dg/vect/slp-widen-mult-half.c: New test. + * gcc.dg/vect/vect-widen-mult-half.c: New test. + +2011-06-29 Jason Merrill + + PR c++/49216 + * g++.dg/cpp0x/initlist53.C: Use placement new. + * g++.dg/cpp0x/initlist-value.C: Use placement new. + * g++.old-deja/g++.ext/arrnew2.C: Remove xfail. + + PR c++/49003 + * g++.dg/cpp0x/trailing6.C: New. + * g++.dg/cpp0x/pr45908.C: No error. + + PR c++/49272 + * g++.old-deja/g++.jason/rfg10.C: Accept other overflow error too. + + PR c++/49520 + * g++.dg/cpp0x/constexpr-using2.C: New. + + * g++.dg/cpp0x/lambda/lambda-template3.C: New. + + PR c++/45923 + * g++.dg/cpp0x/constexpr-diag3.C: New. + * g++.dg/cpp0x/constexpr-diag1.C: Adjust error message. + * g++.dg/cpp0x/constexpr-ex1.C: Adjust error message. + * g++.dg/cpp0x/constexpr-friend.C: Adjust error message. + * g++.dg/cpp0x/constexpr-incomplete2.C: Adjust error message. + +2011-06-29 Jason Merrill + + * g++.dg/cpp0x/constexpr-is_literal.C: Adjust. + +2011-06-29 Richard Guenther + + * gcc.dg/tree-ssa/loop-17.c: Adjust. + +2011-06-29 Jason Merrill + + * g++.dg/cpp0x/initlist-value2.C: New. + + * g++.dg/cpp0x/constexpr-initlist4.C: New. + * g++.dg/cpp0x/initlist-value.C: New. + +2011-06-29 Richard Sandiford + + * gcc.dg/torture/pr49169.c: Restrict to ARM and MIPS targets. + +2011-06-29 Rainer Orth + + * gcc.dg/inline_1.c: Remove dg-excess-errors. + * gcc.dg/inline_2.c: Likewise. + * gcc.dg/unroll_1.c: Likewise. + +2011-06-29 Jakub Jelinek + + PR debug/49567 + * gcc.target/i386/pr49567.c: New test. + +2011-06-28 Eric Botcazou + + * gnat.dg/opt17.ad[sb]: New test. + +2011-06-28 Janis Johnson + Tom de Vries + + * lib/target-supports.exp (check_effective_target_arm_nothumb) + (check_effective_target_arm_thumb2): New effective targets. + * gcc.target/arm/ivopts.c: Remove -mthumb/-marm. Guard object-size + properly. Clean up temporary files. + * gcc.target/arm/ivopts-2.c: Likewise. + * gcc.target/arm/ivopts-3.c: Likewise. + * gcc.target/arm/ivopts-4.c: Likewise. + * gcc.target/arm/ivopts-5.c: Likewise. + * gcc.target/arm/ivopts-6.c: Remove duplicate of ivopts.c. + +2011-06-28 Thomas Koenig + + PR fortran/49479 + * gfortran.dg/reshape_zerosize_3.f90: New test. + +2011-06-28 Janis Johnson + + * gcc.target/arm/vfp-ldmdbs.c: Skip for soft float. + * gcc.target/arm/vfp-ldmias.c: Likewise. + * gcc.target/arm/vfp-ldmdbd.c: Likewise. + * gcc.target/arm/vfp-stmdbs.c: Likewise. + * gcc.target/arm/vfp-ldmiad.c: Likewise. + * gcc.target/arm/vfp-stmias.c: Likewise. + * gcc.target/arm/vfp-stmdbd.c: Likewise. + * gcc.target/arm/vfp-stmiad.c: Likewise. + +2011-06-27 Janis Johnson + + * gcc.target/arm/pr45701-1.c: Don't specify -march; remove + dg-prune-output. + * gcc.target/arm/pr45701-2.c: Ditto. + +2011-06-27 Janus Weil + + PR fortran/49466 + * gfortran.dg/allocatable_scalar_9.f90: Modified. + * gfortran.dg/extends_14.f03: Modified. + +2011-06-27 Janis Johnson + + * lib/target-supports-dg.exp (dg-require-effective-target): Return + early if the test is already being skipped. + + * lib/scanasm.exp (dg-scan, scan-assembler-times, scan-assembler-dem, + scan-assembler-dem-not): For missing file, report unresolved with + same message as for pass/fail, with reason reported in log file. + + * lib/target-supports.exp (add_options_for_arm_fp16): Renamed + from add_options_for_arm_neon_fp16. + (check_effective_target_arm_fp16_ok_nocache): Renamed from + check_effective_target_arm_neon_fp16_ok_nocache. + Check -mfpu and -mfloat-abi options from current multilib. + Do not require neon support. + (check_effective_target_arm_fp16_ok): Renamed from + check_effecitve_target_arm_neon_fp16_ok. + * g++.dg/ext/arm-fp16/arm-fp16-ops-5.C: Use new names for + arm_neon_fp16_ok and arm_fp16. + * g++.dg/ext/arm-fp16/arm-fp16-ops-6.C: Likewise. + * gcc.dg/torture/arm-fp16-ops-5.c: Likewise. + * gcc.dg/torture/arm-fp16-ops-6.c: Likewise. + * gcc.target/arm/fp16-compile-vcvt.c: Likewise. + +2011-06-27 Jakub Jelinek + + * gcc.dg/builtin-assume-aligned-1.c: New test. + * gcc.dg/builtin-assume-aligned-2.c: New test. + * gcc.target/i386/builtin-assume-aligned-1.c: New test. + + PR debug/49544 + * gcc.dg/pr49544.c: New test. + +2011-06-27 Richard Guenther + + PR tree-optimization/49394 + * g++.dg/torture/pr49394.C: New testcase. + +2011-06-27 Kai Tietz + + * gcc.dg/optimize-bswapdi-2.c: New test. + +2011-06-27 Michael Hope + Richard Sandiford + + PR tree-optimization/49169 + * gcc.dg/torture/pr49169.c: New test. + +2011-06-26 John David Anglin + + PR testsuite/49529 + * gcc.dg/ipa/ipa-pta-17.c: Use dg-require-alias. + + * gcc.dg/debug/pr49294.c (dg-options): Add -fno-common to options on + hppa*-*-hpux*. + +2011-06-26 Jason Merrill + + * g++.dg/cpp0x/constexpr-cleanup.C: Tweak error message. + + PR c++/49528 + * g++.dg/init/ref19.C: New. + * g++.dg/cpp0x/constexpr-cleanup.C: New. + +2011-06-26 Jakub Jelinek + + PR tree-optimization/48377 + * gcc.dg/vect/pr48377.c: Add dg-require-effective-target + non_strict_align. + +2011-06-26 Steve Ellcey + + PR middle-end/49191 + * lib/target-supports.exp (check_effective_target_non_strict_align): + New. + * gcc.dg/memcpy-3.c: Add dg-require-effective-target non_strict_align. + +2011-06-24 Martin Jambor + + PR tree-optimizations/49516 + * g++.dg/tree-ssa/pr49516.C: New test. + +2011-06-23 Jason Merrill + + PR c++/35255 + * g++.dg/template/partial10.C: New. + * g++.dg/template/partial11.C: New. + +2011-06-23 Jeff Law + + PR middle-end/48770 + * gcc.dg/pr48770.c: New test. + +2011-06-23 Jan Hubicka + + PR middle-end/49373 + * g++.dg/torture/pr43879-1_1.C: Revert the xfail introduced yesterday. + +2011-06-23 Jakub Jelinek + + PR testsuite/49512 + * gcc.dg/tree-ssa/asm-1.c: Use -fdump-tree-optimized-nouid + instead of -fdump-tree-optimized. + +2011-06-23 Paolo Carlini + + PR c++/44625 + * g++.dg/template/crash107.C: New. + * g++.dg/template/error17.C: Adjust. + +2011-06-23 Jason Merrill + + PR c++/49507 + * g++.dg/cpp0x/defaulted30.C: New. + + PR c++/49440 + * g++.dg/rtti/anon-ns1.C: New. + + PR c++/49395 + * g++.dg/init/ref18.C: New. + + PR c++/36435 + * g++.dg/template/partial9.C: New. + +2011-06-22 Hans-Peter Nilsson + + PR middle-end/49373 + * g++.dg/torture/pr43879-1_1.C: Xfail for -O1 and above, except -flto. + +2011-06-22 Jakub Jelinek + + PR debug/49496 + * gcc.dg/pr49496.c: New test. + +2011-06-22 Janis Johnson + + * gcc.target/arm/scd42-3.c: Allow -march-xscale; skip if -mcpu + is not xscale. + + * gcc.target/arm/thumb-bitfld1.c: Don't specify -march, require thumb1. + + * gcc.target/arm/ctz.c: Don't specify -march, require thumb2. + * gcc.target/arm/pr42879.c: Likewise. + * gcc.target/arm/pr45701-3.c: Likewise. + + * gcc.target/arm/20031108-1.c: Require thumb1 or thumb2. + * gcc.target/arm/pr40482.c: Likewise. + * gcc.target/arm/stack-corruption.c: Likewise. + +2011-06-22 Richard Guenther + + PR tree-optimization/49493 + * gcc.dg/ipa/ipa-pta-17.c: New testcase. + +2011-06-22 Jason Merrill + + PR c++/49260 + * g++.dg/cpp0x/lambda/lambda-eh2.C: Change options. + +2011-06-22 Dmitry Plotnikov + Dmitry Melnik + + * gcc.target/arm/neon-vshr-imm-1.c: New testcase. + * gcc.target/arm/neon-vshl-imm-1.c: New testcase. + * gcc.target/arm/neon-vlshr-imm-1.c: New testcase. + +2011-06-22 Nathan Sidwell + + * gcc.target/arm/tlscall.c: New. + +2011-06-21 Jason Merrill + + PR c++/49172 + * g++.dg/cpp0x/constexpr-ref1.C: New. + * g++.dg/cpp0x/constexpr-ref2.C: New. + * g++.dg/cpp0x/constexpr-ice2.C: Remove dg-error tag. + + PR c++/49482 + * g++.dg/cpp0x/lambda/lambda-warn3.C: New. + + PR c++/49418 + * g++.dg/template/param3.C: New. + +2011-06-21 Bernd Schmidt + + * gcc.c-torture/excute/builtin-bitops-1.c (MAKE_FUNS): Make + my_clrsb test functions. + (main): Test clrsb. + * gcc.dg/builtin-protos-1.c (test_s, test_u, test_sl, test_ul, + test_sll, test_ull): Add clrsb tests. + * gcc.dg/torture/builtin-attr-1.c: Add tests for clrsb, clrsbl, + clrsbll. + +2011-06-21 Janus Weil + + PR fortran/49112 + * gfortran.dg/class_44.f03: New. + +2011-06-21 Ira Rosen + + PR tree-optimization/49478 + * gcc.dg/vect/pr49478.c + +2011-06-21 Richard Guenther + + PR tree-optimization/49483 + * gcc.dg/vect/vect-120.c: New testcase. + +2011-06-21 Ira Rosen + + PR testsuite/49443 + * gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align targets. + * gcc.dg/vect/vect-peel-4.c: Likewise. + +2011-06-22 Christian Bruel + + PR middle-end/49139 + * gcc.dg/always_inline.c: Removed -Winline. Update checks + * gcc.dg/always_inline2.c: Likewise. + * gcc.dg/always_inline3.c: Likewise. + * gcc.dg/debug/pr41264-1.c: Add -Wno-attributes. + * gcc.dg/inline_1.c: Likewise. + * gcc.dg/inline_2.c: Likewise. + * gcc.dg/inline_3.c: Likewise. + * gcc.dg/inline_4.c: Likewise. + * gcc.dg/20051201-1.c: Likewise. + * gcc.dg/pr40087.c: Likewise. + * gcc.dg/torture/pta-structcopy-1.c: Likewise. + * gcc.dg/inline-22.c: Likewise. + * gcc.dg/lto/20090218-1_0.c: Set inline keyword. + * gcc.dg/lto/20090218-1_1.c: Likewise. + * g++.dg/ipa/devirt-7.C: Likewise. + * gcc.dg/uninit-pred-5_a.c: Likewise. + * gcc.dg/uninit-pred-5_b.c: Likewise. + * gcc.dg/fail_always_inline.c: New. + +2011-06-21 Jakub Jelinek + + * Make-lang.in (check_gfortran_parallelize): Parallelize dg.exp + into 6 jobs instead of 3. + +2011-06-20 Jason Merrill + + PR c++/49216 + * g++.dg/cpp0x/initlist53.C: New. + +2011-06-20 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_lock_1.f90: Update dg-error. + * gfortran.dg/coarray_lock_3.f90: New. + * gfortran.dg/coarray/lock_1.f90: New. + +2011-06-20 Janis Johnson + + * lib/scandump.exp (scan-dump, scan-dump-times, scan-dump-not, + scan-dump-dem, scan-dump-dem-not): Treat a missing dump file as + unresolved and report the reason to the log file. + + * lib/scanasm.exp (object-size): Move argument processing earlier + to report errors before verifying that the file exists. Report + problems detected at runtime as unresolved instead of error and + report their reasons to the log file. + +2011-06-20 Jason Merrill + + PR c++/47080 + * g++.dg/cpp0x/explicit6.C: New. + + PR c++/47635 + * g++.dg/cpp0x/enum20.C: New. + + PR c++/48138 + * g++.dg/ext/attr-aligned01.C: New. + + PR c++/49205 + * g++.dg/cpp0x/variadic-default.C: New. + + PR c++/43321 + * g++.dg/cpp0x/auto26.C: New. + + PR c++/43831 + * g++.dg/cpp0x/lambda/lambda-capture-reduncancy.C: New. + +2011-06-20 Kai Tietz + + * gcc.dg/binop-notand1.c: New test. + * gcc.dg/binop-notand2.c: New test. + * gcc.dg/binop-notand3.c: New test. + * gcc.dg/binop-notand4.c: New test. + * gcc.dg/binop-notand5.c: New test. + * gcc.dg/binop-notand6.c: New test. + +2011-06-18 Jakub Jelinek + + PR testsuite/49432 + * obj-c++.dg/invalid-type-1.mm: Adjust for new error wording. + +2011-06-18 Janus Weil + + PR fortran/49400 + * gfortran.dg/proc_ptr_31.f90: New. + +2011-06-18 Eric Botcazou + + * gnat.dg/volatile6.adb: New test. + * gnat.dg/volatile7.adb: Likewise. + * gnat.dg/volatile8.adb: Likewise. + * gnat.dg/volatile9.adb: Likewise. + +2011-06-18 Eric Botcazou + + * gnat.dg/constant3.adb: New test. + +2011-06-18 Janne Blomqvist + + PR libfortran/49296 + * gfortran.dg/read_list_eof_1.f90: New test. + +2011-06-18 Jakub Jelinek + + PR target/49411 + * gcc.target/i386/testimm-1.c: New test. + * gcc.target/i386/testimm-2.c: New test. + * gcc.target/i386/testimm-3.c: New test. + * gcc.target/i386/testimm-4.c: New test. + * gcc.target/i386/testimm-5.c: New test. + * gcc.target/i386/testimm-6.c: New test. + * gcc.target/i386/testimm-7.c: New test. + * gcc.target/i386/testimm-8.c: New test. + * gcc.target/i386/xop-vpermil2px-2.c: New test. + * gcc.target/i386/xop-rotate1-int.c: New test. + * gcc.target/i386/xop-rotate2-int.c: New test. + +2011-06-17 Jason Merrill + + * g++.dg/cpp0x/rv-func2.C: New. + + * g++.dg/debug/dwarf2/lambda1.C: New. + * g++.dg/warn/Wshadow-6.C: Adjust. + +2011-06-17 Janus Weil + + PR fortran/48699 + * gfortran.dg/move_alloc_5.f90: New. + +2011-06-17 Hans-Peter Nilsson + + PR rtl-optimization/48542 + * gcc.dg/torture/pr48542.c: New test. + +2011-06-16 Jason Merrill + + PR c++/44160 + * g++.dg/cpp0x/lambda/lambda-__func__.C: New. + + PR c++/45378 + * g++.dg/cpp0x/initlist52.C New. + + PR c++/45399 + * c-c++-common/raw-string-12.c: New. + + PR c++/49229 + * g++.dg/cpp0x/sfinae26.C: New. + + PR c++/49251 + * g++.dg/cpp0x/variadic113.C: New. + + PR c++/49420 + * g++.dg/cpp0x/variadic112.C: New. + +2011-06-16 Jeff Law + + * gcc.dg/builtin-object-size-1.c: Update to handle chances from + improved jump threading. + * gcc.dg/builtin-object-size-2.c: Likewise. + * gcc.dg/tree-ssa/20030728-1.c: Likewise. + +2011-06-16 Janus Weil + + PR fortran/49074 + * gfortran.dg/typebound_assignment_3.f03: New. + +2011-06-16 Steve Ellcey + + PR testsuite/48727 + * g++.dg/opt/devirt2.C: Change xfail rule to target. + +2011-06-16 Martin Jambor + + PR tree-optimization/49343 + * gnat.dg/discr31.ad[sb]: New test. + +2011-06-16 Rainer Orth + + * gcc.dg/debug/pr49032.c: Prune mips-tfile warning. + +2011-06-16 Tom de Vries + + PR target/45098 + * gcc.target/arm/ivopts-3.c: Update test. + * gcc.target/arm/ivopts-5.c: Same. + +2011-06-16 Ramana Radhakrishnan + + Revert: + 2011-06-10 Wei Guozhi + + PR target/45335 + * gcc.target/arm/pr45335.c: New test. + * gcc.target/arm/pr45335-2.c: New test. + * gcc.target/arm/pr45335-3.c: New test. + * gcc.target/arm/pr40457-1.c: Add another possible output "ldrd". + * gcc.target/arm/pr40457-2.c: Changed to store 3 words. + * gcc.target/arm/pr40457-3.c: Changed to store 3 words. + +2011-06-16 Ira Rosen + + * gcc.dg/vect/vect-widen-mult-half-u8.c: New test. + +2011-06-16 Janus Weil + + PR fortran/49417 + * gfortran.dg/class_43.f03: New. + +2011-06-16 Jakub Jelinek + + PR tree-optimization/49419 + * gcc.c-torture/execute/pr49419.c: New test. + +2011-06-16 Revital Eres + + * gcc.dg/sms-9.c: New file. + +2011-06-15 Easwaran Raman + + PR rtl-optimization/49414 + * gcc.dg/pr44194-1.c: Restrict test to 64-bit targets. + +2011-06-14 Jason Merrill + + * g++.dg/cpp0x/noexcept13.C: New. + +2011-06-14 Easwaran Raman + + PR rtl-optimization/44194 + * gcc.dg/pr44194-1.c: New test. + * gcc.dg/pr44194-2.c: New test. + +2011-06-14 Janis Johnson + + * gcc.target/arm/pr45701-1.c: Ignore warnings about conflicting + switches. + * gcc.target/arm/pr45701-2.c: Likewise. + * gcc.target/arm/thumb-branch1.c: Likewise. + +2011-06-14 Steve Ellcey + + PR testsuite/48727 + * g++.dg/opt/devirt2.C: Fix scan rules for ia64*-*-hpux* and hppa*-*-*. + +2011-06-14 Janis Johnson + + * gcc.target/arm/pr45701-1.c: Require thumb support. + * gcc.target/arm/pr45701-2.c: Likewise. + * gcc.target/arm/thumb-branch1.c: Likewise. + + * gcc.target/arm/mla-1.c: Ignore warnings about conflicting switches. + * gcc.target/arm/pr39839.c: Likewise. + * gcc.target/arm/pr40657-2.c: Likewise. + * gcc.target/arm/pr40956.c: Likewise. + * gcc.target/arm/pr41679.c: Likewise. + * gcc.target/arm/pr42235.c: Likewise. + * gcc.target/arm/pr42495.c: Likewise. + * gcc.target/arm/pr42505.c: Likewise. + * gcc.target/arm/pr42574.c: Likewise. + * gcc.target/arm/pr46883.c: Likewise. + * gcc.target/arm/pr46934.c: Likewise. + * gcc.target/arm/xor-and.c: Likewise. + +2011-06-14 Jason Merrill + + * g++.dg/other/error23.C: Adjust error message. + * g++.dg/other/error32.C: Likewise. + + PR c++/49389 + * g++.dg/cpp0x/rv-dotstar.C: New. + + PR c++/49369 + * g++.dg/cpp0x/decltype30.C: New. + + * g++.dg/cpp0x/constexpr-array-ptr7.C: New. + +2011-06-14 Jakub Jelinek + + PR fortran/49103 + * gfortran.dg/pr49103.f90: New test. + +2011-06-14 Tom de Vries + + PR target/45098 + * gcc.target/arm/ivopts-3.c: New test. + * gcc.target/arm/ivopts-4.c: New test. + * gcc.target/arm/ivopts-5.c: New test. + +2011-06-14 Jakub Jelinek + + PR rtl-optimization/49390 + * gcc.c-torture/execute/pr49390.c: New test. + +2011-06-14 Rainer Orth + + * g++.dg/torture/pr48954.C: Use dg-require-effective-target lto. + +2011-06-14 Georg-Johann Lay + + * gcc.c-torture/execute/cmpsi-2.c: Undo 172757. + * gcc.c-torture/execute/cmpsi-2.x: New file. + * gcc.c-torture/execute/pr45262.c: Undo 172757. + * gcc.c-torture/execute/pr45262.x: New file. + * gcc.c-torture/compile/pr46534.c: Skip for AVR. + * gcc.c-torture/compile/pr49029.c: Add dg-require-effective-target + int32plus + * gcc.c-torture/compile/pr49163.c: Ditto. + +2011-06-14 Ira Rosen + + * gcc.dg/vect/vect-16.c: Rename to... + * gcc.dg/vect/no-fast-math-vect16.c: ...this. + * gcc.dg/vect/vect-peel-3.c: Adjust misalignment values + for double-word vectors. + * gcc.dg/vect/vect-peel-4.c: Likewise. + * gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with + vect_element_align. + * gcc.dg/vect/vect.exp: Run no-fast-math-* tests with + -fno-fast-math. + +2011-06-13 Edmar Wienskoski + + PR target/44618 + * gcc.target/powerpc/outofline_rnreg.c: New testcase. + +2011-06-13 H.J. Lu + + * gcc.dg/h8300-bit-insn-ice2.c: Remove duplicated lines. + +2011-06-13 Kaushik Phatak + + * gcc.dg/h8300-bit-insn-ice2.c: New testcase. + +2011-06-13 Thomas Koenig + + * gfortran.dg/trim_optimize_8.f90: New test case. + +2011-06-13 Jakub Jelinek + Ira Rosen + + PR tree-optimization/49352 + * gcc.dg/vect/pr49352.c: New test. + +2011-06-12 Tobias Burnus + + PR fortran/49324 + * gfortran.dg/alloc_comp_assign_11.f90: New. + +2011-05-11 Thomas Koenig + + * gfortran.dg/trim_optimize_7.f90: New test. + +2011-06-10 Wei Guozhi + + PR target/45335 + * gcc.target/arm/pr45335.c: New test. + * gcc.target/arm/pr45335-2.c: New test. + * gcc.target/arm/pr45335-3.c: New test. + * gcc.target/arm/pr40457-1.c: Add another possible output "ldrd". + * gcc.target/arm/pr40457-2.c: Changed to store 3 words. + * gcc.target/arm/pr40457-3.c: Changed to store 3 words. + +2011-06-10 Paolo Carlini + + PR c++/41769 + * g++.dg/parse/error39.C: New. + +2011-06-10 Janis Johnson + + * gcc.target/arm/20090811-1.c: Skip for incompatible + options, do not override other options. + * gcc.target/arm/combine-cmp-shift.c: Skip for + incompatible options. + * gcc.target/arm/pr45094.c: Likewise. + * gcc.target/arm/scd42-1.c: Likewise. + * gcc.target/arm/scd42-3.c: Likewise. + * gcc.target/arm/thumb-ltu.c: Likewise. + + * lib/target-supports.exp + (check_effective_target_arm_neon_fp16_ok_nocache): Return 0 if + multilib flags use -mfpu with a value other than neon-fp16. + +2011-06-10 Rainer Orth + + * gcc.dg/torture/tls/tls.exp: Load torture-options.exp. + Run tests with -fpic/-fPIC, -pie -fpie/-fPIE if supported. + +2011-06-10 Rainer Orth + + * lib/target-supports.exp (check_effective_target_pie): New proc. + * gcc.dg/pie-link.c: Use target pie. + +2011-06-10 Eric Botcazou + Laurent Roug� + + * gcc.dg/20020503-1.c: Add back -mflat option on the SPARC. + * gcc.target/sparc/sparc-ret.c: Skip if -mflat is passed. + +2011-06-10 Daniel Carrera + + * gfortran.dg/coarray/sync_1.f90: New test for + "SYNC ALL", "SYNC MEMORY" and "SYNC IMAGES". + +2011-06-10 Ira Rosen + + PR tree-optimization/49318 + * gcc.dg/vect/pr49318.c: New test. + +2011-06-09 David Krauss + + * g++.dg/template/arrow1.C: New. + +2011-06-09 Jason Merrill + + * lib/prune.exp: Prune "note"s. + * g++.dg/uninit-pred-3_b.C: Remove dg-excess-errors. + + * g++.dg/ext/injected-ttp.C: Specify -std=c++98. + * g++.dg/template/dependent-expr3.C: Likewise. + * g++.dg/parse/template7.C: Likewise. + * g++.old-deja/g++.bugs/900119_01.C: Likewise. + * g++.old-deja/g++.jason/rfg10.C: Likewise. + * g++.old-deja/g++.pt/friend38.C: Likewise. + * g++.old-deja/g++.pt/crash32.C: Likewise. + * g++.old-deja/g++.other/init4.C: Likewise. + * g++.old-deja/g++.other/friend8.C: Likewise. + + * g++.dg/ext/complex7.C: Adjust expected output. + * g++.dg/diagnostic/method1.C: Likewise. + * g++.dg/parse/parameter-declaration-2.C: Likewise. + * g++.dg/parse/crash33.C: Likewise. + * g++.dg/other/warning1.C: Likewise. + * g++.dg/init/pr29571.C: Likewise. + * g++.dg/warn/overflow-warn-1.C: Likewise. + * g++.dg/warn/overflow-warn-3.C: Likewise. + * g++.dg/warn/overflow-warn-4.C: Likewise. + * g++.old-deja/g++.oliva/template1.C: Likewise. + + * g++.dg/cpp0x/regress/error-recovery1.C: Adjust. + * g++.dg/parse/template7.C: Adjust. + +2011-06-09 Kaz Kojima + + PR target/49307 + * gcc.dg/pr49307.c: New. + +2011-06-09 Wei Guozhi + + PR target/46975 + * gcc.target/arm/pr46975.c: New testcase. + +2011-06-09 Nicola Pero + + * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h + (PMETH, arglist_t): Removed. + (method_get_number_of_arguments): Removed. + (method_get_nth_argument): Removed. + (method_get_first_argument): Removed. + (method_get_next_argument): Removed. + (method_get_sizeof_arguments): Removed. + * objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h + (PMETH): Removed. + (method_get_number_of_arguments): Removed. + (method_get_nth_argument): Removed. + (method_get_first_argument): Removed. + (method_get_next_argument): Removed. + (method_get_sizeof_arguments): Removed. + * objc-obj-c++-shared/objc-test-suite-types.h (PMETH): Removed. + +2011-06-09 David Li + + * gcc.dg/dump-pass.c: New test. + +2011-06-09 Paolo Carlini + + PR c++/29003 + * g++.dg/parse/error38.C: New. + +2011-06-09 Jakub Jelinek + + PR middle-end/49308 + * gfortran.dg/pr49308.f90: New test. + +2011-06-08 Jason Merrill + + * g++.dg/cpp0x/noexcept11.C: New. + * g++.dg/cpp0x/noexcept12.C: New. + * g++.dg/cpp0x/sfinae11.C: Adjust. + +2011-06-08 Jakub Jelinek + + PR testsuite/49323 + * g++.dg/debug/dwarf2/integer-typedef.C: Add -fno-merge-debug-strings + to dg-options, match also DW_AT_linkage_name. + +2011-06-08 Rainer Orth + + PR middle-end/21953 + * gcc.dg/compat/struct-layout-1_generate.c (dg-options): Use + -fno-common on alpha*-dec-osf*. + * g++.dg/compat/struct-layout-1_generate.c (dg-options): Likewise. + +2011-06-08 Alexander Monakov + + PR rtl-optimization/49303 + * gcc.target/ia64/pr49303.c: New test. + +2011-06-08 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_lock_1.f90: New. + * gfortran.dg/coarray_lock_2.f90: New. + +2011-06-07 Jason Merrill + + * lib/prune.exp: Look for "required" rather than "instantiated". + * g++.dg/abi/mangle11.C: Likewise. + * g++.dg/abi/mangle12.C: Likewise. + * g++.dg/abi/mangle17.C: Likewise. + * g++.dg/abi/mangle20-2.C: Likewise. + * g++.dg/abi/pragma-pack1.C: Likewise. + * g++.dg/cpp0x/decltype26.C: Likewise. + * g++.dg/cpp0x/decltype28.C: Likewise. + * g++.dg/cpp0x/decltype29.C: Likewise. + * g++.dg/cpp0x/enum11.C: Likewise. + * g++.dg/cpp0x/forw_enum8.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-errloc2.C: Likewise. + * g++.dg/cpp0x/pr47416.C: Likewise. + * g++.dg/ext/case-range2.C: Likewise. + * g++.dg/ext/case-range3.C: Likewise. + * g++.dg/gomp/for-19.C: Likewise. + * g++.dg/gomp/pr37533.C: Likewise. + * g++.dg/gomp/pr38639.C: Likewise. + * g++.dg/gomp/tpl-parallel-2.C: Likewise. + * g++.dg/inherit/base3.C: Likewise. + * g++.dg/inherit/using6.C: Likewise. + * g++.dg/init/placement4.C: Likewise. + * g++.dg/init/reference3.C: Likewise. + * g++.dg/lookup/scoped6.C: Likewise. + * g++.dg/lookup/using7.C: Likewise. + * g++.dg/other/abstract1.C: Likewise. + * g++.dg/other/error10.C: Likewise. + * g++.dg/other/error5.C: Likewise. + * g++.dg/other/field1.C: Likewise. + * g++.dg/other/offsetof5.C: Likewise. + * g++.dg/parse/bitfield2.C: Likewise. + * g++.dg/parse/constant4.C: Likewise. + * g++.dg/parse/crash20.C: Likewise. + * g++.dg/parse/invalid-op1.C: Likewise. + * g++.dg/parse/non-dependent2.C: Likewise. + * g++.dg/parse/template18.C: Likewise. + * g++.dg/tc1/dr152.C: Likewise. + * g++.dg/tc1/dr166.C: Likewise. + * g++.dg/tc1/dr176.C: Likewise. + * g++.dg/tc1/dr213.C: Likewise. + * g++.dg/template/access11.C: Likewise. + * g++.dg/template/access2.C: Likewise. + * g++.dg/template/access3.C: Likewise. + * g++.dg/template/access7.C: Likewise. + * g++.dg/template/arg7.C: Likewise. + * g++.dg/template/cond2.C: Likewise. + * g++.dg/template/crash13.C: Likewise. + * g++.dg/template/crash40.C: Likewise. + * g++.dg/template/crash7.C: Likewise. + * g++.dg/template/crash84.C: Likewise. + * g++.dg/template/ctor5.C: Likewise. + * g++.dg/template/defarg13.C: Likewise. + * g++.dg/template/defarg14.C: Likewise. + * g++.dg/template/dtor7.C: Likewise. + * g++.dg/template/eh2.C: Likewise. + * g++.dg/template/error2.C: Likewise. + * g++.dg/template/error43.C: Likewise. + * g++.dg/template/friend32.C: Likewise. + * g++.dg/template/injected1.C: Likewise. + * g++.dg/template/instantiate1.C: Likewise. + * g++.dg/template/instantiate3.C: Likewise. + * g++.dg/template/instantiate5.C: Likewise. + * g++.dg/template/instantiate7.C: Likewise. + * g++.dg/template/local6.C: Likewise. + * g++.dg/template/lookup2.C: Likewise. + * g++.dg/template/member5.C: Likewise. + * g++.dg/template/memfriend15.C: Likewise. + * g++.dg/template/memfriend16.C: Likewise. + * g++.dg/template/memfriend17.C: Likewise. + * g++.dg/template/memfriend7.C: Likewise. + * g++.dg/template/meminit1.C: Likewise. + * g++.dg/template/nested3.C: Likewise. + * g++.dg/template/non-type-template-argument-1.C: Likewise. + * g++.dg/template/nontype12.C: Likewise. + * g++.dg/template/nontype13.C: Likewise. + * g++.dg/template/nontype6.C: Likewise. + * g++.dg/template/pr23510.C: Likewise. + * g++.dg/template/pr35240.C: Likewise. + * g++.dg/template/ptrmem15.C: Likewise. + * g++.dg/template/ptrmem6.C: Likewise. + * g++.dg/template/qualified-id1.C: Likewise. + * g++.dg/template/qualttp20.C: Likewise. + * g++.dg/template/qualttp3.C: Likewise. + * g++.dg/template/qualttp4.C: Likewise. + * g++.dg/template/qualttp5.C: Likewise. + * g++.dg/template/qualttp6.C: Likewise. + * g++.dg/template/qualttp7.C: Likewise. + * g++.dg/template/qualttp8.C: Likewise. + * g++.dg/template/recurse.C: Likewise. + * g++.dg/template/recurse2.C: Likewise. + * g++.dg/template/ref5.C: Likewise. + * g++.dg/template/scope2.C: Likewise. + * g++.dg/template/sfinae10.C: Likewise. + * g++.dg/template/sfinae3.C: Likewise. + * g++.dg/template/sizeof3.C: Likewise. + * g++.dg/template/static9.C: Likewise. + * g++.dg/template/template-id-2.C: Likewise. + * g++.dg/template/typedef13.C: Likewise. + * g++.dg/template/typename4.C: Likewise. + * g++.dg/template/using14.C: Likewise. + * g++.dg/template/using2.C: Likewise. + * g++.dg/template/warn1.C: Likewise. + * g++.dg/warn/Wparentheses-13.C: Likewise. + * g++.dg/warn/Wparentheses-15.C: Likewise. + * g++.dg/warn/Wparentheses-16.C: Likewise. + * g++.dg/warn/Wparentheses-17.C: Likewise. + * g++.dg/warn/Wparentheses-18.C: Likewise. + * g++.dg/warn/Wparentheses-19.C: Likewise. + * g++.dg/warn/Wparentheses-20.C: Likewise. + * g++.dg/warn/Wparentheses-23.C: Likewise. + * g++.dg/warn/Wstrict-aliasing-3.C: Likewise. + * g++.dg/warn/noeffect2.C: Likewise. + * g++.dg/warn/noeffect4.C: Likewise. + * g++.dg/warn/pr8570.C: Likewise. + * g++.old-deja/g++.brendan/init2.C: Likewise. + * g++.old-deja/g++.eh/spec6.C: Likewise. + * g++.old-deja/g++.pt/crash10.C: Likewise. + * g++.old-deja/g++.pt/crash36.C: Likewise. + * g++.old-deja/g++.pt/derived3.C: Likewise. + * g++.old-deja/g++.pt/error2.C: Likewise. + * g++.old-deja/g++.pt/explicit70.C: Likewise. + * g++.old-deja/g++.pt/infinite1.C: Likewise. + * g++.old-deja/g++.pt/memtemp89.C: Likewise. + * g++.old-deja/g++.pt/overload7.C: Likewise. + * g++.old-deja/g++.pt/vaarg3.C: Likewise. + +2011-06-07 Nicola Pero + Iain Sandoe + + * objc-obj-c++-shared/runtime.h (protocol_getMethodDescription): + Added code to deal with the case when [Protocol + -descriptionForInstanceMethod:] or [Protocol + -descriptionForClassMethod:] returns NULL. + +2011-06-07 Nicola Pero + Iain Sandoe + + * objc-obj-c++-shared/TestsuiteObject.h ([-free]): Return 'id'. + * objc-obj-c++-shared/TestsuiteObject.m ([-free]): Return 'id'. + Added cast. + +2011-06-07 Xinliang David Li + + * gcc.dg/inline_2.c: New test. + * gcc.dg/unroll_2.c: New test. + * gcc.dg/inline_3.c: New test. + * gcc.dg/unroll_3.c: New test. + * gcc.dg/inline_4.c: New test. + * gcc.dg/unroll_4.c: New test. + * gcc.dg/inline_1.c: New test. + * gcc.dg/unroll_1.c: New test. + +2011-06-07 Rainer Orth + + PR tree-optimization/48497 + * lib/gcc-defs.exp (dg-additional-options): New proc. + * gfortran.dg/graphite/vect-pr40979.f90: Use dg-additional-options + -msse2 on 32-bit x86. + +2011-06-06 Jason Merrill + + * g++.dg/cpp0x/enum19.C: New. + +2011-06-07 Sergey Grechanik + + * gcc.target/arm/neon-reload-class.c: New test. + +2011-06-07 Dodji Seketeli + + PR debug/49130 + * g++.dg/debug/dwarf2/integer-typedef.C: New test. + +2011-06-07 Andrew Stubbs + + * gcc.target/arm/smlatb-1.c: New file. + * gcc.target/arm/smlatt-1.c: New file. + * gcc.target/arm/smlaltb-1.c: New file. + * gcc.target/arm/smlaltt-1.c: New file. + +2011-06-07 Andrew Stubbs + + * gcc.target/arm/mla-2.c: New test. + +2011-06-07 Jakub Jelinek + + PR gcov-profile/49299 + * gcc.dg/tree-prof/pr49299-1.c: New test. + * gcc.dg/tree-prof/pr49299-2.c: New test. + +2011-06-07 Ira Rosen + + * lib/target-supports.exp + (check_effective_target_vect_widen_mult_qi_to_hi): + Add NEON as supporting target. + (check_effective_target_vect_widen_mult_hi_to_si): Likewise. + (check_effective_target_vect_widen_mult_qi_to_hi_pattern): New. + (check_effective_target_vect_widen_mult_hi_to_si_pattern): New. + * gcc.dg/vect/vect-widen-mult-u8.c: Expect to be vectorized + using widening multiplication on targets that support it. + * gcc.dg/vect/vect-widen-mult-u16.c: Likewise. + * gcc.dg/vect/vect-widen-mult-const-s16.c: New test. + * gcc.dg/vect/vect-widen-mult-const-u16.c: New test. + +2011-06-06 Nicola Pero + + Updated all testcases in the ObjC/ObjC++ testsuites to use the + Modern Objective-C runtime API. + * objc/execute/next_mapping.h: Removed. + * objc-obj-c++-shared/next-mapping.h: Removed. + * objc-obj-c++-shared/Object1.h: Removed. + * objc-obj-c++-shared/Object1.m: Removed. + * objc-obj-c++-shared/Object1.mm: Removed. + * objc-obj-c++-shared/Object1-implementation.h: Removed. + * objc-obj-c++-shared/Protocol1.h: Removed. + * objc-obj-c++-shared/objc-test-suite-types.h: Removed definition + of ProtoBool, IVAR_T and METHOD. + * objc-obj-c++-shared/runtime.h: New. + * objc-obj-c++-shared/TestsuiteObject.h: New. + * objc-obj-c++-shared/TestsuiteObject.m: New. + + * objc/compile/trivial.m: Use TestsuiteObject instead of Object. + * objc/execute/IMP.m: Include ../../objc-obj-c++-shared/runtime.h. + Use the Modern Objective-C runtime API. ([TestClass -next:]): Made + it a class method. + * objc/execute/_cmd.m: Include + ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C + runtime API. ([TestClass +initialize]): Include this method also + with the GNU runtime. + * objc/execute/accessing_ivars.m: Use TestsuiteObject instead of + Object. ([-setValue:]): Return void. + * objc/execute/bf-common.h: Do not include objc/objc-encoding.h + with the GNU runtime. Include + ../../objc-obj-c++-shared/runtime.h. Do not define objc_get_class + for the NeXT runtime. Use the existing print_ivars() and + compare_structures() implementations for the old NeXT runtime. + Added new implementations for the Modern GNU and NeXT runtimes. + Enable the testcase (and hence all the bf-* ones) for __OBJC2__ as + well. (main): Use objc_getClass(). Use return instead of exit. + * objc/execute/bycopy-1.m: Include objc/objc.h instead of + ../../objc-obj-c++-shared/Protocol1.h. (main): Use return instead + of exit(). + * objc/execute/bycopy-2.m: Include objc/objc.h instead of + ../../objc-obj-c++-shared/Protocol1.h. Use TestsuiteObject + instead of Object. (main): Use return instead of exit(). + * objc/execute/bycopy-3.m: Updated includes. Use TestsuiteObject + instead of Object. Removed prototype for exit(). (main): Use + return instead of exit(). Use the Modern Objective-C runtime API. + * objc/execute/cascading-1.m: Use TestsuiteObject instead of + Object. + * objc/execute/class-tests-1.h: Include + ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C + runtime API. (test_class_with_superclass): Do not call [Object + class]. There is no need to with the current libobjc. + * objc/execute/class-tests-2.h: Include + ../../objc-obj-c++-shared/runtime.h. Use the Modern Objective-C + runtime API. + * objc/execute/class-1.m: Do not include and + ../../objc-obj-c++-shared/next-mapping.h. + * objc/execute/class-2.m: Likewise. + * objc/execute/class-3.m: Likewise. + * objc/execute/class-4.m: Do not include and + ../../objc-obj-c++-shared/next-mapping.h. ([RootClass + +initialize]): Include this method also with the GNU + runtime. (main): Use the Modern Objective-C runtime API. + * objc/execute/class-5.m: Likewise. + * objc/execute/class-6.m: Likewise. + * objc/execute/class-7.m: Likewise. + * objc/execute/class-8.m: Likewise. + * objc/execute/class-9.m: Likewise. + * objc/execute/class-10.m: Likewise. + * objc/execute/class-11.m: Likewise. + * objc/execute/class-12.m: Likewise. + * objc/execute/class-13.m: Likewise. + * objc/execute/class-14.m: Likewise. + * objc/execute/class_self-1.m ([TestClass +initialize]): Include + this method also with the GNU runtime. + * objc/execute/class_self-2.m: ([TestClass +initialize], [ClassA + +initialize]): Include this method also with the GNU runtime. + * objc/execute/compatibility_alias.m: Use TestsuiteObject instead + of Object. + * objc/execute/encode-1.m: Likewise. + * objc/execute/enumeration-1.m: Likewise. + * objc/execute/enumeration-2.m: Likewise. + * objc/execute/exceptions/catchall-1.m: Likewise. + * objc/execute/exceptions/finally-1.m: Likewise. + * objc/execute/exceptions/foward-1.m: Likewise. + * objc/execute/exceptions/local-variables-1.m: Likewise. + * objc/execute/exceptions/throw-nil.m: Likewise. + * objc/execute/exceptions/trivial.m: Likewise. + * objc/execute/exceptions/handler-1.m: Use TestsuiteObject instead + of Object. Include objc/runtime.h instead of objc/objc-api.h. + * objc/execute/exceptions/matcher-1.m: Likewise. + * objc/execute/formal_protocol-1.m: Use TestsuiteObject instead of + Object. + * objc/execute/formal_protocol-2.m: Likewise. + * objc/execute/formal_protocol-3.m: Likewise. + * objc/execute/formal_protocol-4.m: Likewise. + * objc/execute/formal_protocol-5.m: Include + ../../objc-obj-c++-shared/runtime.h. (main): Always use + protocol_getName(). + * objc/execute/formal_protocol-6.m: Likewise. + * objc/execute/formal_protocol-7.m: Use TestsuiteObject instead of + Object. Include instead of + ../../objc-obj-c++-shared/Protocol1.h. + * objc/execute/function-message-1.m: Use TestsuiteObject intead of + Object. + * objc/execute/informal_protocol.m: Likewise. + * objc/execute/load-3.m: Likewise. + * objc/execute/many_args_method.m ([TestClass +initialize]): + Include this method with the GNU runtime as well. + * objc/execute/nested-3.m ([Test +initialize]): Likewise. + * objc/execute/nested-func-1.m: Use TestsuiteObject + instead of Object. + * objc/execute/nil_method-1.m: Likewise. + * objc/execute/no_clash.m: Likewise. + * objc/execute/np-1.m: Do not include + ../../objc-obj-c++-shared/Protocol1.h. + (main): Use return instead of exit(). + * objc/execute/np-2.m: Do not include + ../../objc-obj-c++-shared/Protocol1.h. + ([MyObject +initialize]): Include this method also with the GNU + runtime. (main): Use return instead of exit(). + * objc/execute/object_is_class.m: Include + ../../objc-obj-c++-shared/runtime.h. Use TestsuiteObject instead + of Object. (main): Use the Modern Objective-C runtime API. + * objc/execute/object_is_meta_class.m: Likewise. + * objc/execute/private.m: Use TestsuiteObject instead of Object. + * objc/execute/protocol-isEqual-1.m: Include objc/Protocol.h + instead of ../objc-obj-c++-shared/Protocol1.h. Include + ../../objc-obj-c++-shared/runtime.h. (main): Use the Modern + Objective-C runtime API. + * objc/execute/protocol-isEqual-2.m: Likewise. + * objc/execute/protocol-isEqual-3.m: Likewise. + * objc/execute/protocol-isEqual-4.m: Likewise. + * objc/execute/redefining_self.m ([TestClass +initialize]): + Include this method with the GNU runtime as well. + * objc/execute/root_methods.m: Include + ../../objc-obj-c++-shared/runtime.h. ([RootClass +initialize]): + Include this method with the GNU runtime as well. + (main): Use the Modern Objective-C runtime API. + * objc/execute/selector-1.m: Include + ../../objc-obj-c++-shared/runtime.h. Use TestsuiteObject instead + of Object. (main): Use the Modern Objective-C runtime API. + * objc/execute/static-1.m ([Test +initialize]): Include this + method with the GNU runtime as well. + * objc/execute/static-2.m: Likewise. + * objc/execute/trivial.m: Use TestsuiteObject instead of Object. + * objc/execute/va_method.m: Do not include objc/objc-api.h. + ([MathClass +initialize]): Include this method with the GNU + runtime as well. + * objc.dg/attributes/categ-attribute-1.m: Use TestsuiteObject + instead of Object. + * obj-c++.dg/attributes/categ-attribute-1.mm: Likewise. + * objc.dg/attributes/categ-attributes-2.m: Likewise. + * obj-c++.dg/attributes/categ-attributes-2.mm: Likewise. + * objc.dg/attributes/method-attribute-1.m: Likewise. + * obj-c++.dg/attributes/method-attribute-1.mm: Likewise. + * objc.dg/attributes/method-attribute-2.m: Likewise. + * obj-c++.dg/attributes/method-attribute-2.mm: Likewise. + * objc.dg/attributes/method-attribute-3.m: Likewise. + * obj-c++.dg/attributes/method-attribute-3.mm: Likewise. + * obj-c++.dg/basic.mm: Use TestsuiteObject instead of Object. + * objc.dg/bitfield-1.m: Use TestsuiteObject instead of Object. + * obj-c++.dg/bitfield-1.mm: Likewise. + * obj-c++.dg/bitfield-2.mm: Likewise + * objc.dg/bitfield-3.m: Likewise. + * obj-c++.dg/bitfield-4.mm: Likewise. + * objc.dg/bitfield-5.m: Likewise + * objc.dg/call-super-1.m: Likewise. + * objc.dg/call-super-2.m: Use TestsuiteObject instead of Object. + Use objc_getClass() instead of objc_get_class(), but for the GNU + runtime redefine objc_getClass as objc_get_class. Include + ../objc-obj-c++-shared/runtime.h. + * objc.dg/call-super-3.m: Use TestsuiteObject instead of Object. + * objc.dg/category-1.m: Use TestsuiteObject instead of Object. + Use the Modern Objective-C runtime API. + * objc.dg/class-protocol-1.m: Include + ../objc-obj-c++-shared/runtime.h instead of objc/objc-api.h. + * obj-c++.dg/class-protocol-1.mm: Likewise. + * objc.dg/comp-types-8.m: Use TestsuiteObject instead of Object. + * objc.dg/comp-types-10.m: Likewise. + * objc.dg/comp-types-11.m: Likewise. + * objc.dg/comp-types-12.m: Likewise. + * obj-c++.dg/comp-types-9.mm: Likewise. + * obj-c++.dg/comp-types-11.mm: Likewise. + * obj-c++.dg/comp-types-12.mm: Likewise. + * obj-c++.dg/comp-types-13.mm: Likewise. + * obj-c++.dg/cxx-ivars-1.mm: Likewise. + * obj-c++.dg/cxx-ivars-2.mm: Likewise. + * obj-c++.dg/cxx-scope-1.mm: Likewise. + * obj-c++.dg/cxx-scope-2.mm: Likewise. + * objc.dg/defs.m: Use TestsuiteObject instead of Object. + * objc.dg/desig-init-1.m: Likewise. + * obj-c++.dg/defs.mm: Likewise. + * objc.dg/exceptions-2.m: Likewise. + * obj-c++.dg/except-1.mm: Likewise. + * obj-c++.dg/exceptions-2.mm: Likewise. + * objc.dg/encode-2.m: Use TestsuiteObject instead of Object. + Use the Modern Objective-C runtime API. + * objc.dg/encode-3.m: Use TestsuiteObject instead of Object. Use + the Modern Objective-C runtime API. Do not include + ../objc-obj-c++-shared/objc-test-suite-types.h. Define ProtoBool. + * objc.dg/encode-4.m: Use TestsuiteObject instead of Object. Use + the Modern Objective-C runtime API except when using an older NeXT + runtime. + * objc.dg/encode-5.m: Use TestsuiteObject instead of Object. Use + the Modern Objective-C runtime API. + * objc.dg/encode-7.m: Include objc/runtime.h instead of + objc/encoding.h. + * objc.dg/encode-7-next.m: Use TestsuiteObject instead of Object. + * objc.dg/encode-7-next-64bit.m: Updated include. + * objc.dg/encode-8.m: Include objc/runtime.h instead of + objc/encoding.h. + * obj-c++.dg/encode-4.mm: Use TestsuiteObject instead of Object. Use + the Modern Objective-C runtime API. + * obj-c++.dg/encode-5.mm: Use TestsuiteObject instead of Object. + Use the Modern Objective-C runtime API. Include objc/Protocol.h + instead of ../objc-obj-c++-shared/Protocol1.h. + * obj-c++.dg/encode-6.mm: Use TestsuiteObject instead of Object. Use + the Modern Objective-C runtime API except when using an older NeXT + runtime. + * obj-c++.dg/encode-7.mm: Use TestsuiteObject instead of Object. Use + the Modern Objective-C runtime API. + * objc.dg/fix-and-continue-1.m: Use TestsuiteObject instead of + Object. + * obj-c++.dg/fix-and-continue-2.mm: Likewise. + * objc.dg/fix-and-continue-2.m: Likewise. + * objc.dg/foreach-1.m: Likewise. + * objc.dg/foreach-2.m: Likewise. + * objc.dg/foreach-3.m: Likewise. + * objc.dg/foreach-4.m: Likewise. + * objc.dg/foreach-5.m: Likewise. + * objc.dg/foreach-6.m: Likewise. + * objc.dg/foreach-7.m: Likewise. + * objc.dg/func-ptr-1.m: Use TestsuiteObject instead of + Object. + * objc.dg/func-ptr-2.m: Likewise. + * objc.dg/fsf-package-0.m: Use TestsuiteObject instead of Object. + Do not include objc/objc-api.h. + * obj-c++.dg/fsf-package-0.mm: Likewise. + * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c + (switchfiles): Include objc/runtime.h instead of objc/encoding.h. + * objc.dg/gnu-runtime-1.m: Updated to use TestsuiteObject instead + of Object. + * obj-c++.dg/gnu-runtime-1.mm: Likewise. + * objc.dg/gnu-runtime-3.m: Likewise. + * obj-c++.dg/gnu-runtime-3.mm: Likewise. + * objc.dg/headers.m: Include objc/runtime.h instead of + objc/encoding.h for the GNU runtime. Include objc/objc-api.h only + for the NeXT runtime. + * objc.dg/isa-field-1.m: Use TestsuiteObject instead of Object. + * obj-c++.dg/isa-field-1.mm: Likewise. + * obj-c++.dg/ivar-list-semi.mm: Likewise. + * objc.dg/layout-1.m: Likewise. + * objc.dg/layout-2.m: Likewise. + * objc.dg/local-decl-2.m: Likewise. + * objc.dg/lookup-1.m: Use TestsuiteObject instead of + Object. ([Container +elementForView:]): Use + class_conformsToProtocol(). + * obj-c++.dg/lookup-2.mm: Likewise. + * obj-c++.dg/layout-1.mm: Use TestsuiteObject instead of Object. + * obj-c++.dg/local-decl-1.mm: Likewise. + * objc.dg/method-3.m: Likewise. + * objc.dg/method-4.m: Likewise. + * objc.dg/method-6.m: Include objc/Protocol.h instead of + ../objc-obj-c++-shared/Protocol1.h. + * objc.dg/method-7.m: Use TestsuiteObject instead of Object. + * objc.dg/method-9.m: Likewise. + * objc.dg/method-10.m: Likewise. + * objc.dg/method-13.m ([Root +initialize]): Include this method + also for the GNU runtime. (main): Use objc_getClass() also for + the GNU runtime. + * objc.dg/method-15.m: Use TestsuiteObject instead of Object. + * objc.dg/method-17.m: Likewise. + * objc.dg/method-19.m: Likewise. + * objc.dg/method-20b.m: Likewise. + * obj-c++.dg/method-2.mm: Likewise. + * obj-c++.dg/method-6.mm: Likewise. + * obj-c++.dg/method-10.mm: Likewise. + * obj-c++.dg/method-11.mm: Likewise. + * obj-c++.dg/method-12.mm: Include objc/Protocol.h instead of + ../objc-obj-c++-shared/Protocol1.h. + * obj-c++.dg/method-13.mm: Use TestsuiteObject instead of Object. + * obj-c++.dg/method-15.mm: Likewise. + * obj-c++.dg/method-17.mm: Likewise. + * obj-c++.dg/method-19.mm: Updated includes. ([Root + +initialize]): Include this method also for the GNU + runtime. (main): Use objc_getClass() also for the GNU runtime. + * obj-c++.dg/method-21.mm: Use TestsuiteObject instead of Object. + * obj-c++.dg/method-22.mm: Likewise. + * obj-c++.dg/method-23.mm: Likewise. + * obj-c++.dg/no-extra-load.mm: Likewise. + * objc.dg/objc-fast-4.m: Likewise. + * objc.dg/objc-gc-4.m: Likewise. + * obj-c++.dg/objc-gc-3.mm: Likewise. + * objc.dg/pr18255.m: Include objc/runtime.h. (main): Use + protocol_getMethodDescription() instead of [Protocol + -descriptionForInstanceMethod]. + * objc.dg/pr23214.m ([Object(TS_CAT) -class]): Renamed to test. + Made it available with all runtimes. (main): Call -test instead + of -class. + * objc.dg/pr45878.m ([Object -isEqual:]): Renamed to testIsEqual, + and put into a category. + * objc.dg/proto-lossage-2.m: Use TestsuiteObject instead of + Object. Include objc/objc.h. + * obj-c++.dg/proto-lossage-2.mm: Likewise. + * objc.dg/proto-lossage-3.m: Updated includes. (MyClass): + New. (main): Use protocol_getMethodDescription() instead + of [Protocol -descriptionForInstanceMethod] and [Protocol + -descriptionForClassMethod]. + * obj-c++.dg/proto-lossage-3.mm: Likewise. + * objc.dg/proto-qual-1.m: Updated includes. Use the Modern + Objective-C runtime API. + * obj-c++.dg/proto-qual-1.mm: Likewise. + * objc.dg/property/property-1.m: Use TestsuiteObject instead of + Object. + * obj-c++.dg/property/property-1.mm: Likewise. + * obj-c++.dg/qual-types-1.mm: Likewise. + * objc.dg/selector-2.m: Include objc/objc.h instead of + ../objc-obj-c++-shared/Object1.h. + * obj-c++.dg/selector-2.mm: Likewise. + * obj-c++.dg/selector-5.mm: Likewise. + * obj-c++.dg/selector-6.mm: Likewise. + * objc.dg/set-not-used-1.m: Use TestsuiteObject instead of + Object. Do not include objc/objc-api.h. + * obj-c++.dg/set-not-used-1.mm: Likewise. + * objc.dg/sizeof-1.m: Use TestsuiteObject instead of Object. + * objc.dg/stret-1.m: Likewise. + * objc.dg/stret-2.m: Likewise. + * obj-c++.dg/super-class-2.mm: Likewise. + * objc.dg/super-class-3.m: Likewise. + * objc.dg/super-class-4.m: Likewise. + * objc.dg/sync-2.m: Likewise. + * obj-c++.dg/sync-2.mm: Likewise. + * objc.dg/sync-1.m: Include objc/objc.h instead of + ../objc-obj-c++-shared/Object1.h. + * objc.dg/special/unclaimed-category-1.h (TestClass): Always use + 'Class' as the type of 'isa'. + * objc.dg/special/unclaimed-category-1.m: Use the Modern + Objective-C runtime API. ([TestClass +initialize]): Include this + method with the GNU runtime as well. + * objc.dg/strings/strings-1.m: Updated includes. + * obj-c++.dg/strings/strings-1.mm: Likewise. + * obj-c++.dg/strings/const-str-12.mm: Updated to be identical to + objc.dg/strings/const-str-12b.m. + * obj-c++.dg/template-1.mm: Use TestsuiteObject intead of Object. + * obj-c++.dg/template-3.mm: Likewise. + * obj-c++.dg/template-4.mm: Likewise. + * objc.dg/threedotthree-abi-1.m: Updated includes. Use Modern + Objective-C runtime API. + * obj-c++.dg/threedotthree-abi-1.mm: Likewise. + * objc.dg/try-catch-1.m: Use TestsuiteObject instead of Object. + * obj-c++.dg/try-catch-1.mm: Likewise. + * obj-c++.dg/try-catch-2.mm: Likewise. + * objc.dg/try-catch-3.m: Likewise. + * obj-c++.dg/try-catch-3.mm: Likewise. + * objc.dg/try-catch-6.m: Likewise. + * objc.dg/try-catch-7.m: Likewise. + * obj-c++.dg/try-catch-7.mm: Likewise. + * obj-c++.dg/try-catch-8.mm: Likewise. + * obj-c++.dg/try-catch-9.mm: Likewise. + * objc.dg/try-catch-10.m: Likewise. + * obj-c++.dg/try-catch-11.mm: Likewise. + * objc.dg/typedef-alias-1.m: Use TestsuiteObject instead of + Object. Include objc/objc.h. + * obj-c++.dg/typedef-alias-1.mm: Likewise. + * objc.dg/type-size-2.m: Use the Modern Objective-C runtime API. + * objc.dg/torture/forward-1.m: Use TestsuiteObject intead of + Object. Use Modern Objective-C runtime API. Do not use + performv::. + * objc.dg/torture/trivial.m: Use TestsuiteObject intead of Object. + * obj-c++.dg/torture/trivial.mm: Likewise. + * objc.dg/torture/strings/const-str-10.m: Include objc/Object.h + instead of ../objc-obj-c++-shared/Object1.h. Include + ../objc-obj-c++-shared/runtime.h. + * obj-c++.dg/torture/strings/const-str-10.mm: Likewise. + * objc.dg/torture/strings/const-str-11.m: Likewise. + * obj-c++.dg/torture/strings/const-str-11.mm: Likewise. + * objc.dg/torture/strings/const-str-9.m: Likewise. + * obj-c++.dg/torture/strings/const-str-9.mm: Likewise. + * objc.dg/torture/strings/const-str-7.m: Use TestsuiteObject + instead of Object. Only add _FooClassReference if + __NEXT_RUNTIME__. + * obj-c++.dg/torture/strings/const-str-7.mm: Likewise. + * objc.dg/torture/strings/const-str-8.m: Likewise. + * obj-c++.dg/torture/strings/const-str-8.mm: Likewise. + * obj-c++.dg/torture/strings/string1.mm: Updated includes and + additional sources. + * objc.dg/torture/tls/thr-init-3.m: Use TestsuiteObject instead of + Object. + * obj-c++.dg/torture/tls/thr-init-3.mm: Likewise. + * objc.dg/va-meth-1.m: Use TestsuiteObject instead of Object. + * obj-c++.dg/va-meth-1.mm: Likewise. + * objc.dg/zero-link-1.m: Include objc/Object.h instead of + ../objc-obj-c++-shared/Object1.h. + * objc.dg/zero-link-3.m: Likewise. + +2011-06-06 Nicola Pero + + * obj-c++.dg/try-catch-2.mm: Fixed unterminated comment. + +2011-06-06 Nicola Pero + + PR obj-c++/48275 + * obj-c++.dg/property/cxx-property-1.mm: New. + * obj-c++.dg/property/cxx-property-2.mm: New. + +2011-06-06 Jason Merrill + + * g++.dg/cpp0x/regress/ptrmem1.C: New. + +2011-06-06 Richard Sandiford + + PR rtl-optimization/49145 + From Ryan Mansfield + * gcc.c-torture/compile/pr49145.c: New test. + +2011-06-06 Jakub Jelinek + + PR testsuite/49288 + * g++.dg/debug/dwarf2/cdtor-1.C: Add -fno-merge-debug-strings + to dg-options, match also DW_AT_linkage_name. + + PR debug/49294 + * gcc.dg/debug/pr49294.c: New test. + + PR c++/49264 + * g++.dg/opt/pr49264.C: New test. + +2011-06-06 Mikael Pettersson + + PR tree-optimization/49243 + * gcc.dg/pr49243.c: New. + +2011-06-06 Eric Botcazou + + * gnat.dg/specs/cond_expr1.ads: New test. + +2011-06-06 Eric Botcazou + + * gnat.dg/deferred_const4.ad[sb]: New test. + * gnat.dg/deferred_const4_pkg.ads: New helper. + +2011-06-06 Eric Botcazou + + * gnat.dg/test_tamdt.adb: Rename to... + * gnat.dg/taft_type1.adb: ...this. + * gnat.dg/tamdt.ad[sb]: Rename to... + * gnat.dg/taft_type1_pkg1.ad[sb]: ...this. + * gnat.dg/tamdt_aux.ads: Rename to... + * gnat.dg/taft_type1_pkg2.ads: ...this. + * gnat.dg/taft_type2.ad[sb]: New test. + * gnat.dg/taft_type2_pkg.ads: New helper. + * gnat.dg/taft_type3.adb: New test. + * gnat.dg/taft_type3_pkg.ads: New helper. + +2011-06-05 Tobias Burnus + + PR fortran/49255 + * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer + for F2008. + +2011-06-05 Nicola Pero + + PR testsuite/49287 + * objc.dg/gnu-api-2-class.m: Updated testcase silencing compiler + warning. + * objc.dg/gnu-api-2-objc.m: Likewise. + * obj-c++.dg/gnu-api-2-class.mm: Likewise + * obj-c++.dg/gnu-api-2-objc.mm: Likewise. + +2011-06-05 Nicola Pero + + * objc.dg/gnu-api-2-objc.m: Fixed testcase. Use log2 of the + alignment, not the alignment, when calling class_addIvar(). Add + an 'isa' instance variable to the test root class. + * obj-c++.dg/gnu-api-2-objc.mm: Likewise. + +2011-06-04 Jan Hubicka + + PR tree-optimization/48893 + PR tree-optimization/49091 + PR tree-optimization/49179 + * gfortran.dg/pr49179.f90: New testcase + +2011-06-04 Jan Hubicka + + PR lto/48954 + * g++.dg/torture/pr48954.C: New testcase. + +2011-06-04 Jonathan Wakely + + * g++.dg/warn/delete-non-virtual-dtor.C: New. + +2011-06-04 Jonathan Wakely + + PR c++/33840 + * g++.dg/diagnostic/bitfld2.C: New. + +2011-06-04 Jakub Jelinek + + PR target/49281 + * gcc.c-torture/execute/pr49281.c: New test. + +2011-06-04 Jan Hubicka + + PR tree-optimize/48929 + * gcc.c-torture/compile/pr48929.c: New testcase. + +2011-06-04 Jakub Jelinek + + * gcc.dg/guality/rotatetest.c (f5, f6): Fix up pastos. + +2011-06-03 Jakub Jelinek + + PR c++/49276 + * g++.dg/cpp0x/lambda/lambda-mangle2.C: New test. + +2011-06-03 Nicola Pero + + * objc.dg/headers.m: Do not include sarray.h and hash.h. + +2011-06-03 Richard Henderson + Rainer Orth + + * lib/target-supports.exp (check_sse_os_support_available): Use movaps. + +2011-06-03 Nicola Pero + + * objc.dg/headers.m: Do not include objc-list.h. + +2011-06-03 Nicola Pero + + * objc.dg/type-stream-1.m: Test removed. + * objc.dg/headers.m: Do not include typedstream.h. + +2011-06-02 Nicola Pero + + * objc.dg/torture/forward-1.m (main): Updated testcase. + +2011-06-02 Kaz Kojima + + PR target/49163 + * gcc.c-torture/compile/pr49163.c: New. + +2011-06-02 Asher Langton + + PR fortran/49268 + * gfortran.dg/PR49268.f90: New test. + +2011-06-02 Asher Langton + + PR fortran/37039 + * gfortran.dg/PR37039.f90: New test. + +2011-06-02 Nicola Pero + + PR objc/48539 + * objc.dg/method-5.m: Updated. + * objc.dg/method-19.m: Updated. + * objc.dg/method-lookup-1.m: New. + * obj-c++.dg/method-6.mm: Updated. + * obj-c++.dg/method-7.mm: Updated. + * obj-c++.dg/method-lookup-1.mm: New. + +2011-06-02 DJ Delorie + + * lib/timeout.exp (timeout): Add board_info support. + +2011-06-02 Uros Bizjak + + * gcc.target/i386/sse2-init-v2di-2: Update scan-assembler-times string. + +2011-06-02 Steven G. Kargl + + PR fortran/49265 + * gfortran.dg/module_procedure_double_colon_1.f90: New test. + * gfortran.dg/module_procedure_double_colon_2.f90: New test. + +2011-06-02 Eric Botcazou + Hans-Peter Nilsson + + PR rtl-optimization/48840 + * gcc.target/sparc/ultrasp13.c: New test. + +2011-06-01 Kaz Kojima + + PR target/49238 + * gcc.c-torture/compile/pr49238.c: New. + +2011-06-01 Sofiane Naci + + * gcc.target/arm/g2.c: Skip test in -mthumb. + Skip test unless cpu is xscale. + * gcc.target/arm/scd42-2.c: Likewise. + * gcc.target/arm/mmx-1.c: Skip test in -mthumb. + +2011-06-01 Jason Merrill + + * g++.dg/cpp0x/decltype28.C: New. + * g++.dg/cpp0x/decltype29.C: New. + +2011-06-01 Richard Sandiford + + PR target/45074 + * gcc.target/mips/pr45074.c: New test. + +2011-06-01 Eric Botcazou + Hans-Peter Nilsson + + PR rtl-optimization/48830 + * gcc.target/sparc/ultrasp12.c: New test. + +2011-06-01 David Li + + * gcc.dg/profile-dir-1.c: Change pass name. + * gcc.dg/profile-dir-2.c: Ditto. + * gcc.dg/tree-ssa/dump-1.c: Ditto. + * gcc.dg/tree-ssa/loop-25.c: Ditto. + * gcc.dg/tree-prof/stringop-1.c: Ditto. + * gcc.dg/tree-prof/update-loopch.c: Ditto. + * gcc.dg/tree-prof/stringop-2.c: Ditto. + * gcc.dg/tree-prof/ic-misattribution-1.c: Ditto. + * gcc.dg/tree-prof/ic-misattribution-1a.c: Ditto. + * gcc.dg/tree-prof/indir-call-prof.c: Ditto. + * gcc.dg/tree-prof/val-prof-1.c: Ditto. + * gcc.dg/tree-prof/val-prof-2.c: Ditto. + * gcc.dg/tree-prof/val-prof-3.c: Ditto. + * gcc.dg/tree-prof/val-prof-4.c: Ditto. + * gcc.dg/tree-prof/val-prof-5.c: Ditto. + * gcc.dg/tree-prof/val-prof-7.c: Ditto. + * gcc.dg/profile-dir-3.c: Ditto. + * g++.dg/tree-prof/indir-call-prof.C: Ditto. + +2011-06-01 Nicola Pero + + * objc.dg/attributes/method-nonnull-1.m: New test. + * obj-c++.dg/attributes/method-nonnull-1.mm: New test. + +2011-05-31 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_atomic_1.f90: New. + * gfortran.dg/coarray/atomic_1.f90: New. + +2011-05-31 Jakub Jelinek + + * gcc.dg/guality/bswaptest.c: New test. + * gcc.dg/guality/clztest.c: New test. + * gcc.dg/guality/ctztest.c: New test. + * gcc.dg/guality/rotatetest.c: New test. + + PR target/48688 + * gcc.target/i386/pr48688.c: New test. + +2010-11-15 Fabien Chêne + + PR c++/48010 + * g++.dg/lookup/name-clash9.C: New. + +2011-05-31 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/dummy_1.f90: New. + +2011-05-31 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/save_1.f90: New. + * gfortran.dg/coarray_4.f90: Update dg-error. + +2011-05-31 Jason Merrill + + * g++.dg/cpp0x/rv-template1.C: New. + +2011-05-31 Jakub Jelinek + + PR rtl-optimization/49235 + * gcc.dg/pr49235.c: New test. + +2011-05-31 Ira Rosen + + PR tree-optimization/49093 + * gcc.dg/vect/pr49093.c: New test. + +2011-05-31 Dodji Seketeli + + PR debug/49047 + * g++.dg/debug/dwarf2/cdtor-1.C: New test. + +2011-05-31 Ira Rosen + + PR testsuite/49239 + * gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: Initialize the + output array. + +2011-05-30 Kaz Kojima + + PR target/49186 + * gcc.c-torture/execute/pr49186.c: New. + +2011-05-30 H.J. Lu + + PR target/49168 + * gcc.target/i386/pr49168-1.c: New. + +2011-05-30 Jakub Jelinek + Eric Botcazou + + * gcc.dg/guality/drap.c: New test. + +2011-05-30 Richard Guenther + + PR tree-optimization/49210 + * gnat.dg/boolean_subtype2.ad[sb]: New testcase. + * gnat.dg/boolean_subtype2_pkg.ads: New helper. + +2011-05-30 Jakub Jelinek + + PR c++/49223 + * g++.dg/gomp/pr49223-1.C: New test. + * g++.dg/gomp/pr49223-2.C: New test. + +2011-05-30 Richard Guenther + + PR tree-optimization/49218 + * gcc.c-torture/execute/pr49218.c: New testcase. + +2011-05-30 Ira Rosen + + PR tree-optimization/49199 + * gcc.dg/vect/no-scevccp-pr49199.c: New test. + * gcc.dg/vect/vect.exp: Run no-scevccp-pr* tests with + -fno-tree-scev-cprop. + +2011-05-29 Janus Weil + + PR fortran/47601 + * gfortran.dg/extends_13.f03: New. + +2011-05-29 Jakub Jelinek + + PR rtl-optimization/49095 + * gcc.target/i386/pr49095.c: New test. + +2011-05-29 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_24.f90: New. + +2011-05-29 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_23.f90: New. + +2011-05-29 Richard Sandiford + + From Ryan Mansfield + * gcc.dg/pr48826.c: New test. + +2011-05-29 Richard Guenther + + PR tree-optimization/49217 + * gcc.dg/torture/pr49217.c: New testcase. + +2011-05-29 Ira Rosen + + PR testsuite/49222 + * gcc.dg/vect/pr49038.c: Use MAP_ANON if MAP_ANONYMOUS is not defined. + +2011-05-29 Eric Botcazou + + * gnat.dg/boolean_subtype.adb: Rename to... + * gnat.dg/boolean_subtype1.adb: ...this. + +2011-05-28 Jason Merrill + + * g++.dg/cpp0x/lambda/lambda-syntax1.C: New. + +2011-05-27 Jason Merrill + + * g++.dg/cpp0x/enum18.C: Adjust. + + * g++.dg/cpp0x/lambda/lambda-template2.C: New. + +2011-05-27 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_22.f90: New. + +2011-05-27 Bill Schmidt + + PR tree-optimization/46728 + * gcc.target/powerpc/pr46728-1.c: New. + * gcc.target/powerpc/pr46728-2.c: New. + * gcc.target/powerpc/pr46728-3.c: New. + * gcc.target/powerpc/pr46728-4.c: New. + * gcc.target/powerpc/pr46728-5.c: New. + * gcc.dg/pr46728-6.c: New. + * gcc.target/powerpc/pr46728-7.c: New. + * gcc.target/powerpc/pr46728-8.c: New. + * gcc.dg/pr46728-9.c: New. + * gcc.target/powerpc/pr46728-10.c: New. + * gcc.target/powerpc/pr46728-11.c: New. + * gcc.dg/pr46728-12.c: New. + * gcc.target/powerpc/pr46728-13.c: New. + * gcc.target/powerpc/pr46728-14.c: New. + * gcc.target/powerpc/pr46728-15.c: New. + * gcc.target/powerpc/pr46728-16.c: New. + +2011-05-27 Jason Merrill + + * g++.dg/abi/mangle47.C: New. + + PR c++/49176 + * g++.dg/template/const5.C: New. + + * g++.dg/cpp0x/enum18.C: New. + + * g++.dg/cpp0x/lambda/lambda-nested4.C: New. + + * g++.dg/cpp0x/error6.C: New. + + * g++.dg/cpp0x/error5.C: New. + +2011-05-27 Jakub Jelinek + + PR c++/49165 + * g++.dg/eh/cond6.C: New test. + +2011-05-27 Tobias Burnus + + PR fortran/48820 + * gfortran.dg/rank_3.f90: New. + * gfortran.dg/rank_4.f90: New. + +2011-05-27 Janis Johnson + + * g++.dg/tree-ssa-pr43411.C: Rename function to be inlined and + replace dump search. + +2011-05-27 Eric Botcazou + + * gnat.dg/bit_packed_array5.ads: Move dg directive to... + * gnat.dg/bit_packed_array5.adb: ...here. + +2011-05-27 Paolo Carlini + + PR c++/42056 + * g++.dg/cpp0x/auto25.C: New. + +2011-05-27 Richard Guenther + + * gcc.c-torture/execute/920711-1.x: Add -fwrapv. + +2011-05-27 Richard Guenther + + * gcc.c-torture/execute/920612-1.x: Add -fwrapv. + +2011-05-27 Richard Guenther + + PR middle-end/49189 + * gnat.dg/bit_packed_array5.ad[sb]: New testcase. + +2011-05-26 Jason Merrill + + * g++.dg/cpp0x/friend1.C: New. + * g++.dg/cpp0x/friend2.C: New. + + * g++.dg/cpp0x/auto7.C: Update. + * g++.dg/template/crash50.C: Adjust. + * g++.dg/template/static9.C: Adjust. + * g++.old-deja/g++.ext/memconst.C: Adjust. + +2011-05-26 Janis Johnson + + * gcc.dg/march.c: Ignore a note for some targets. + +2011-05-26 Janis Johnson + Nathan Froyd + + PR c++/2288 + PR c++/18770 + * g++.old-deja/g++.jason/cond.C: Remove xfails. + * g++.dg/parse/pr18770.C: New test. + * g++.dg/cpp0x/range-for5.C: Add dg-error marker. + +2011-05-26 Thomas Koenig + + PR fortran/48955 + * gfortran.dg/dependency_40.f90 : New test. + +2011-05-26 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/registering_1.f90: New. + +2011-05-26 Jason Merrill + + * g++.dg/cpp0x/variadic111.C: New. + * g++.dg/cpp0x/variadic41.C: Adjust. + +2011-05-26 Richard Guenther + + PR tree-optimization/48702 + * gcc.dg/torture/pr48702.c: New testcase. + +2011-05-26 Rainer Orth + + PR gcov-profile/48845 + * g++.dg/tree-prof/tree-prof.exp: Check for -fprofile-generate + support. + * gcc.dg/matrix/matrix.exp: Likewise. + * gcc.dg/tree-prof/tree-prof.exp: Likewise. + * lib/target-supports-dg.exp (dg-require-profiling): Don't pass + line number to check_profiling_available. + * lib/target-supports.exp (check_profiling_available): Account for + this. + Require TLS runtime support with -fprofile-generate. + * lib/profopt.exp (profopt-execute): Add TLS options for + -fprofile-generate. + * gcc.dg/pr47793.c: Add dg-require-profiling "-fprofile-generate". + +2011-05-26 Jakub Jelinek + + PR c++/49165 + * g++.dg/eh/cond5.C: New test. + + PR tree-optimization/49161 + * gcc.c-torture/execute/pr49161.c: New test. + +2011-05-26 Ramana Radhakrishnan + + * gcc.target/arm/neon-vorn-vbic.c: New test. + +2011-05-26 Ira Rosen + + PR tree-optimization/49038 + * gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: New test. + * gcc.dg/vect/pr49038.c: New test. + +2011-05-26 Fabien Chêne + + * g++.dg/init/pr25811-3.C: New. + * g++.dg/init/pr25811-4.C: New. + +2011-05-25 Jason Merrill + + * g++.dg/cpp0x/enum17.C: New. + * g++.old-deja/g++.jason/rfg10.C: Adjust. + + * g++.dg/cpp0x/auto24.C: New. + + * g++.dg/cpp0x/error4.C: New. + + * g++.dg/cpp0x/rv-restrict.C: New. + + * g++.dg/cpp0x/enum15.C: New. + * g++.dg/cpp0x/constexpr-switch2.C: New. + + * g++.dg/cpp0x/variadic110.C: New. + + * g++.dg/cpp0x/auto9.C: Add typedef test. + + * g++.dg/cpp0x/auto23.C: New. + * g++.dg/cpp0x/auto9.C: Adjust. + + * g++.dg/cpp0x/defaulted29.C: New. + + * g++.dg/cpp0x/initlist51.C: New. + +2011-05-25 Janis Johnson + + * gcc.target/arm/fp16-compile-none-1.c: Update expected error. + * g++.dg/abi/packed1.C: Suppress warning. + * g++.dg/warn/Wunused-parm-3.C: Likewise. + * g++.dg/template/stdarg1.C: Likewise. + * g++.dg/other/packed1.C: Remove arm from xfail list. + +2011-05-25 Jason Merrill + + * g++.dg/cpp0x/enum16.C: New. + * g++.dg/parse/error15.C: Adjust. + + * g++.dg/cpp0x/initlist50.C: New. + + * g++.dg/cpp0x/lambda/lambda-conv5.C: New. + + * g++.dg/cpp0x/variadic109.C: New. + +2011-05-25 H.J. Lu + + * gcc.target/i386/pause-1.c: New. + +2011-05-25 Eric Botcazou + + * gcc.dg/stack-usage-1.c: Adjust comment. + * gcc.dg/stack-usage-2.c: New test. + +2011-05-25 Jakub Jelinek + + PR c++/49136 + * g++.dg/cpp0x/constexpr-bitfield2.C: New test. + * g++.dg/cpp0x/constexpr-bitfield3.C: New test. + +2011-05-24 Vladimir Makarov + + PR rtl-optimization/48757 + * gfortran.dg/pr48757.f: New test case. + +2011-05-24 Jason Merrill + + * g++.dg/cpp0x/access01.C: New. + +2011-05-24 Nicola Pero + + PR libobjc/48177 + * objc.dg/pr48177.m: New testcase. + +2011-05-24 Nicola Pero + + PR objc/48187 + * objc.dg/pr48187.m: New testcase. + * obj-c++.dg/pr48187.mm: New testcase. + * objc.dg/ivar-extra-semicolon.m: New testcase. + +2011-05-24 Jason Merrill + + * g++.dg/template/access21.C: New. + * g++.dg/template/access22.C: New. + +2011-05-24 Michael Matz + + PR rtl-optimization/48633 + * g++.dg/pr48633.C: New test. + +2011-05-24 Uros Bizjak + + PR target/49133 + * g++.dg/other/pr49133.C: New test. + +2011-05-24 Uros Bizjak + Rainer Orth + + * gcc.dg/torture/tls/run-gd.c: New test. + * gcc.dg/torture/tls/run-ie.c: New test. + * gcc.dg/torture/tls/run-ld.c: New test. + * gcc.dg/torture/tls/run-le.c: New test. + * lib/target-supports.exp (check_effective_target_tls_runtime): + Build testcase with TLS options. + +2011-05-24 Rainer Orth + + * gcc.dg/vect/pr48172.c: Remove dg-do run. + +2011-05-24 Tom de Vries + + PR tree-optimization/49121 + * gcc.dg/tree-ssa/ivopt_infer_2.c: Adapt test. + +2011-05-23 Jason Merrill + + * g++.dg/cpp0x/defaulted28.C: New. + + * g++.dg/cpp0x/sfinae25.C: New. + + * g++.dg/cpp0x/rv-cast2.C: New. + + * g++.dg/cpp0x/enum14.C: New. + +2011-05-23 Jakub Jelinek + + PR lto/49123 + * gcc.c-torture/execute/pr49123.c: New test. + + PR debug/49032 + * gcc.dg/debug/pr49032.c: New test. + + PR c/49120 + * gcc.dg/pr49120.c: New test. + +2011-05-23 H.J. Lu + + PR target/47315 + * gcc.target/i386/pr47315.c: New test. + +2011-05-23 Jason Merrill + + * g++.dg/cpp0x/lambda/lambda-eh2.C: New. + + * g++.dg/cpp0x/sfinae24.C: New. + + * g++.dg/cpp0x/error3.C: New. + + * g++.dg/cpp0x/defaulted27.C: New. + + * g++.dg/cpp0x/decltype27.C: New. + +2011-05-23 Richard Guenther + + * gcc.dg/tree-ssa/forwprop-11.c: Adjust and un-XFAIL. + +2011-05-23 Richard Guenther + + PR tree-optimization/40874 + * g++.dg/tree-ssa/pr40874.C: New testcase. + +2011-05-23 Richard Guenther + + PR tree-optimization/49115 + * g++.dg/torture/pr49115.C: New testcase. + +2011-05-23 Richard Guenther + + PR middle-end/15419 + * gcc.dg/memcpy-3.c: New testcase. + +2011-05-23 Jakub Jelinek + + PR middle-end/48973 + * gcc.c-torture/execute/pr48973-1.c: New test. + * gcc.c-torture/execute/pr48973-2.c: New test. + +2011-05-23 Jonathan Wakely + + PR c++/18016 + * g++.dg/warn/pr18016.C: New. + +2011-05-23 Tom de Vries + + PR target/45098 + * gcc.target/arm/ivopts-6.c: New test. + +2011-05-22 Jakub Jelinek + + PR middle-end/49029 + * gcc.c-torture/compile/pr49029.c: New test. + +2011-05-22 Jason Merrill + + * g++.dg/cpp0x/sfinae23.C: New. + * g++.dg/cpp0x/sfinae8.C: Correct. + +2011-05-22 Thomas Koenig + + * gfortran.dg/function_optimize_8.f90: New test case. + +2011-05-22 Ira Rosen + + PR tree-optimization/49087 + * gcc.dg/vect/O3-pr49087.c: New test. + +2011-05-21 Jason Merrill + + * g++.dg/debug/const5.C: New. + +2011-05-20 Jason Merrill + + * g++.dg/cpp0x/constexpr-static7.C: Extend. + + * g++.dg/cpp0x/constexpr-static7.C: New. + + * g++.dg/cpp0x/enum12.C: New. + * g++.dg/cpp0x/enum13.C: New. + +2011-05-21 Janus Weil + + PR fortran/48699 + * gfortran.dg/select_type_23.f03: New. + +2011-05-20 Jason Merrill + + * g++.dg/cpp0x/defaulted26.C: New. + + * g++.dg/cpp0x/noexcept02.C: Fix. + * g++.dg/cpp0x/noexcept03.C: Fix. + * g++.dg/cpp0x/noexcept08.C: Fix. + * g++.dg/cpp0x/noexcept10.C: New. + +2011-05-20 Janus Weil + + PR fortran/48706 + * gfortran.dg/extends_12.f03: New. + +2011-05-20 Jason Merrill + + * g++.dg/template/koenig9.C: New. + * g++.dg/opt/pr47615.C: Fix. + * g++.dg/overload/defarg1.C: Fix. + * g++.dg/tc1/dr213.C: Remove xfail. + * g++.dg/torture/pr34850.C: Fix. + * g++.dg/torture/pr39362.C: Fix. + * g++.old-deja/g++.brendan/crash56.C: Fix. + * g++.old-deja/g++.pt/memtemp47.C: Fix. + +2011-05-20 Richard Guenther + + PR tree-optimization/49079 + * gcc.dg/torture/pr49079.c: New testcase. + +2011-05-20 Jakub Jelinek + + PR tree-optimization/49073 + * gcc.c-torture/execute/pr49073.c: New test. + +2011-06-19 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_21.f90: New. + +2011-05-19 Joseph Myers + + * lib/prune.exe (prune_gcc_output): Expect "error:" in collect2 + output. + +2011-05-19 Richard Guenther + + PR testsuite/49063 + * gcc.dg/builtin-object-size-11.c: Use -std=gnu89. + +2011-05-19 Richard Guenther + + PR middle-end/48985 + * gcc.dg/builtin-object-size-11.c: New testcase. + +2011-05-19 Tom de Vries + + PR target/45098 + * gcc.target/arm/ivopts.c: New test. + * gcc.target/arm/ivopts-2.c: New test. + +2011-05-19 Tom de Vries + + * lib/lib/scanasm.exp (object-size): Fix target selector handling. + +2011-05-19 Rainer Orth + + * gcc.c-torture/execute/960321-1.x: Remove. + +2011-05-18 Janus Weil + + PR fortran/48700 + * gfortran.dg/move_alloc_4.f90: New. + +2011-05-18 H.J. Lu + + PR target/49002 + * gcc.target/i386/pr49002-1.c: New test. + * gcc.target/i386/pr49002-2.c: Likewise. + +2011-05-18 Jakub Jelinek + + PR tree-optimization/49039 + * gcc.c-torture/execute/pr49039.c: New test. + * gcc.dg/tree-ssa/pr49039.c: New test. + * g++.dg/torture/pr49039.C: New test. + +2011-05-18 Jason Merrill + + * g++.dg/cpp0x/constexpr-incomplete3.C: New. + * g++.dg/cpp0x/constexpr-incomplete2.C: Adjust. + * g++.dg/cpp0x/constexpr-memfn1.C: Adjust. + +2011-05-18 Stuart Henderson + + * gcc.target/bfin/mcpu-bf592.c: New test. + +2011-05-18 Ira Rosen + + PR tree-optimization/41881 + * gcc.dg/vect/O3-pr41881.c: New test. + * gcc.dg/vect/O3-slp-reduc-10.c: New test. + +2011-05-18 Jakub Jelinek + + PR tree-optimization/49000 + * gcc.dg/pr49000.c: New test. + +2011-05-17 Eric Botcazou + + * gnat.dg/invalid1.adb: New test. + +2011-05-16 Uros Bizjak + + * gcc.target/i386/avx-vzeroupper-16.c: Update scan-assembler-times + scan pattern. + * gcc.target/i386/avx-vzeroupper-17.c: Ditto. + * gcc.target/i386/avx-vzeroupper-18.c: Ditto. + +2011-05-15 Jonathan Wakely + + PR c++/48994 + * g++.dg/cpp0x/range-for18.C: New. + +2011-05-15 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/image_index_2.f90: New. + +2011-05-13 Ville Voutilainen + + * g++.dg/cpp0x/override1.C: Move from inherit/virtual9.C. + * g++.dg/cpp0x/override2.C: New. + +2011-05-14 Tobias Burnus + + PR fortran/18918 + * gfortran.de/coarray_20.f90: New. + +2011-05-14 Thomas Koenig + + PR fortran/22572 + * function_optimize_7.f90: New test case. + +2011-05-13 Jason Merrill + + * g++.dg/cpp0x/decltype26.C: New. + * g++.dg/cpp0x/enum11.C: New. + +2011-05-13 Tobias Burnus + + PR fortran/48972 + PR fortran/48991 + * gfortran.dg/assign_8.f90: Update dg-error. + +2011-05-13 Tobias Burnus + + PR fortran/48972 + * gfortran.dg/io_constraints_8.f90: New. + * gfortran.dg/io_constraints_9.f90: New. + +2011-05-13 Martin Thuresson + + PR gcov-profile/47793 + * gcc.dg/pr47793.c: New. + +2011-05-12 Jakub Jelinek + + PR tree-optimization/48975 + * gcc.dg/pr48975.c: New test. + +2011-05-12 Tobias Burnus + + PR fortran/48972 + * gfortran.dg/iso_c_binding_compiler_3.f90: New. + +2011-05-12 Jason Merrill + + * g++.dg/cpp0x/constexpr-incomplete2.C: New. + +2011-05-12 Geert Bosch + + * gnat.dg/view_conversion1.adb: New test. + +2011-05-12 Richard Guenther + + PR tree-optimization/48172 + * gcc.dg/vect/pr48172.c: New testcase. + +2011-05-12 Jakub Jelinek + + PR debug/48967 + * g++.dg/opt/pr48967.C: New test. + +2011-05-11 Jason Merrill + + * g++.dg/cpp0x/constexpr-friend.C: New. + * g++.dg/cpp0x/constexpr-incomplete1.C: New. + + * g++.dg/cpp0x/sfinae22.C: New. + +2011-05-11 Tobias Burnus + + PR fortran/48889 + * gfortran.dg/generic_24.f90: New. + +2011-05-11 Richard Guenther + + PR tree-optimization/15256 + * gcc.dg/tree-ssa/forwprop-14.c: New testcase. + +2011-05-11 Jakub Jelinek + + PR debug/48159 + * gcc.dg/pr48159-1.c: New test. + * gcc.dg/pr48159-2.c: New test. + +2011-05-11 Richard Guenther + + PR middle-end/48953 + * gcc.dg/torture/pr48953.c: New testcase. + +2011-05-11 Richard Guenther + + PR tree-optimization/18041 + * gcc.dg/tree-ssa/forwprop-13.c: New testcase. + +2011-05-11 Alan Modra + + PR target/47755 + * gcc.target/powerpc/pr47755-2.c: Require vsx_hw. + +2011-05-10 Jason Merrill + + * g++.dg/cpp0x/defaulted25.C: New. + * g++.dg/template/crash7.C: Adjust. + + * g++.dg/cpp0x/variadic108.C: New. + +2011-05-10 Ville Voutilainen + + * g++.dg/inherit/virtual9.C: Extend. + +2011-05-10 Michael Meissner + + PR target/48857 + * gcc.target/powerpc/pr48857.c: New file, make sure V2DI arguments + are passed and returned in vector registers. + +2011-05-10 Richard Guenther + + * gcc.dg/tree-ssa/ssa-fre-2.c: Disable forwprop. + * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. + * gcc.dg/tree-ssa/scev-cast.c: Adjust. Note what transformation + applies. + +2011-05-10 Jakub Jelinek + + PR tree-optimization/48611 + PR tree-optimization/48794 + * gfortran.dg/gomp/pr48611.f90: New test. + * gfortran.dg/gomp/pr48794.f90: New test. + + PR debug/48928 + * gcc.dg/dfp/pr48928.c: New test. + +2011-05-09 Paolo Carlini + + PR c++/48522 + * g++.dg/cpp0x/pr48522.C: New. + +2011-05-09 Paolo Carlini + + PR c++/48735 + * g++.dg/cpp0x/sfinae21.C: New. + +2011-05-09 Paolo Carlini + + * g++.dg/template/sfinae28.C: Rename to... + * g++.dg/cpp0x/sfinae19.C: ... this. + * g++.dg/template/sfinae29.C: Rename to... + * g++.dg/cpp0x/sfinae20.C: ... this. + +2011-05-09 Jeff Law + + * lib/gcc-gdb-test.exp (gdb-test): Reorder matchers to give more + consistent results. + +2011-05-09 Fabien Chêne + + PR c++/20039 + * g++.dg/init/pr20039.C: New. + +2011-05-09 Paolo Carlini + + PR c++/48737 + PR c++/48744 + * g++.dg/template/sfinae28.C: New. + * g++.dg/template/sfinae29.C: Likewise. + +2011-05-09 Jason Merrill + + * g++.dg/template/nontype23.C: New. + +2011-05-07 Fabien Chêne + PR c++/48859 + * g++.dg/init/pr48859.C: New. + +2011-05-09 Jason Merrill + + * gcc.dg/gcc.dg/uninit-D.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-D-O0.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-E.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-E-O0.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-F.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-F-O0.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-G.c: Move to c-c++-common. + * gcc.dg/gcc.dg/uninit-G-O0.c: Move to c-c++-common. + +2011-05-08 Ville Voutilainen + + * g++.dg/inherit/virtual9.C: New. + +2011-05-09 Dodji Seketeli + + PR c++/48574 + * g++.dg/template/dependent-expr8.C: New test case. + +2011-05-07 Zdenek Dvorak + + PR tree-optimization/48837 + * gcc.dg/pr48837.c: New testcase. + +2011-05-06 Jason Merrill + + * g++.dg/cpp0x/constexpr-condition2.C: New. + + * g++.dg/cpp0x/constexpr-missing.C: New. + +2011-05-06 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/this_image_2.f90: New. + +2011-05-06 Tobias Burnus + + PR fortran/48858 + PR fortran/48820 + * gfortran.dg/bind_c_usage_22.f90: New. + * gfortran.dg/bind_c_usage_23.f90: New. + * gfortran.dg/bind_c_usage_24.f90: New. + * gfortran.dg/bind_c_usage_24_c.c: New. + +2011-05-06 Dodji Seketeli + + PR c++/48838 + * g++.dg/template/member9.C: New test case. + +2011-05-05 Eric Botcazou + + * gnat.dg/discr29.ad[sb]: New test. + * gnat.dg/discr30.adb: Likewise. + +2011-05-05 Julian Brown + + * gcc.target/arm/neon-vset_lanes8.c: New test. + +2011-05-05 Jason Merrill + + * g++.dg/init/new32.C: New. + +2011-05-05 Rainer Orth + + * gfortran.dg/fmt_g0_6.f08: Use dg-options "-ffloat-store". + Fix typo. + +2011-05-05 Jakub Jelinek + + PR rtl-optimization/48381 + * gcc.c-torture/compile/pr48381.c: New test. + +2011-05-05 Uros Bizjak + + * gcc.target/i386/opt-1.c: Add --param min-insn-to-prefetch -ratio=0 + to dg-options. + * gcc.target/i386/opt-1.c: Ditto. + +2011-05-04 Jason Merrill + + * g++.dg/conversion/base1.C: New. + +2011-05-04 Jerry DeLisle + + PR libgfortran/48787 + * gfortran.dg/round_3.f08: Add more checks to test case. + +2011-05-04 Hans-Peter Nilsson + + * gfortran.dg/pr47878.f90, gfortran.dg/endfile_3.f90, + gfortran.dg/endfile_4.f90, gfortran.dg/ftell_3.f90, + gfortran.dg/fmt_cache_1.f, gfortran.dg/namelist_66.f90: + Gate test on effective_target fd_truncate. + +2011-05-04 Uros Bizjak + + * gcc.target/i386/recip-vec-divf.c: Decrease array sizes. + * gcc.target/i386/recip-vec-sqrtf.c: Ditto. + * gcc.target/i386/recip-vec-divf-avx.c: Increase array sizes. + * gcc.target/i386/recip-vec-sqrtf-avx.c: Ditto. Update scan times. + * gcc.target/i386/ssefn-1.c: Add -mno-sse2 to dg-options. + * gcc.target/i386/pr38824.c: Ditto. + * gcc.target/i386/vecinit-1.c: Add -mno-sse4 to dg-options. + * gcc.target/i386/vecinit-2.c: Ditto. + * gcc.target/i386/sse-19.c: Add -mno-ssse3 to dg-options. + * gcc.target/i386/parity-1.c: Add -mno-popcnt to dg-options. + * gcc.target/i386/parity-2.c: Ditto. + * gcc.target/i386/incoming-8.c: Add -mno-avx to dg-options. + +2011-05-04 Stuart Henderson + + * gcc.target/bfin/mcpu-bf512.c: Update to latest silicon revision and + remove duplication. + * gcc.target/bfin/mcpu-bf514.c: Likewise. + * gcc.target/bfin/mcpu-bf516.c: Likewise. + * gcc.target/bfin/mcpu-bf518.c: Likewise. + +2011-05-03 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/this_image_1.f90: Remove dg-options. + +2011-05-03 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/this_image_1.f90: New. + +2011-05-03 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray/caf.dg: New. + * gfortran.dg/coarray/image_index_1.f90: New, copied + from ../coarray_16.f90. + +2011-05-03 Paolo Carlini + + PR c++/28501 + * g++.dg/ext/complex9.C: New. + +2011-05-03 Stuart Henderson + + From Mike Frysinger + * gcc.target/bfin/mcpu-bf542.c: Check SILICON_REVISION is 0x0004. + * gcc.target/bfin/mcpu-bf544.c, gcc.target/bfin/mcpu-bf547.c, + gcc.target/bfin/mcpu-bf548.c, gcc.target/bfin/mcpu-bf549.c: Likewise. + +2011-05-03 Stuart Henderson + + * gcc.target/bfin/builtins: Created. + * gcc.target/bfin/hisilh-O0.c: Deleted. + * gcc.target/bfin/hisilh.c: Moved to... + * gcc.target/bfin/builtins/hisilh.c: ...here. + * gcc.target/bfin/builtins/shl_fr1x16-6.c: New test. + * gcc.target/bfin/builtins/shr_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-9.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-4.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-8.c: Ditto. + * gcc.target/bfin/builtins/lshl_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/abs_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/norm32-1.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr1x16-3.c: Ditto. + * gcc.target/bfin/builtins/norm_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/bfin-builtins.exp: Ditto. + * gcc.target/bfin/builtins/norm16-2.c: Ditto. + * gcc.target/bfin/builtins/norm32-5.c: Ditto. + * gcc.target/bfin/builtins/norm_fr1x16-3.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x32x32-2.c: Ditto. + * gcc.target/bfin/builtins/norm16-6.c: Ditto. + * gcc.target/bfin/builtins/norm32-9.c: Ditto. + * gcc.target/bfin/builtins/mult_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/dspsubaddsat_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/min_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/max_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/norm32-10.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-3.c: Ditto. + * gcc.target/bfin/builtins/mulhisihh_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/diff_hl_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-7.c: Ditto. + * gcc.target/bfin/builtins/shr_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/mulhisilh_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/lshl_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/cpmlx_mul_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/negate_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/negate_fr1x16-3.c: Ditto. + * gcc.target/bfin/builtins/abs_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr2x16-4.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/max_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/min_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/max_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-3.c: Ditto. + * gcc.target/bfin/builtins/add_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-6.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-7.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-5.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-9.c: Ditto. + * gcc.target/bfin/builtins/abs_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/lshl_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/abs_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/cpmlx_msu_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/norm32-2.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr1x16-4.c: Ditto. + * gcc.target/bfin/builtins/norm16-3.c: Ditto. + * gcc.target/bfin/builtins/norm32-6.c: Ditto. + * gcc.target/bfin/builtins/norm16-7.c: Ditto. + * gcc.target/bfin/builtins/mult_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/min_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/add_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/norm32-11.c: Ditto. + * gcc.target/bfin/builtins/sub_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-4.c: Ditto. + * gcc.target/bfin/builtins/mulhisihh_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/diff_lh_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-8.c: Ditto. + * gcc.target/bfin/builtins/shr_fr2x16-3.c: Ditto. + * gcc.target/bfin/builtins/mulhisilh_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/lshl_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/cpmlx_mac_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/min_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/dspaddsubsat_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/max_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/min_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-3.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-4.c: Ditto. + * gcc.target/bfin/builtins/sub_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/add_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-7.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-8.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x16-3.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-6.c: Ditto. + * gcc.target/bfin/builtins/circptr.c: Ditto. + * gcc.target/bfin/builtins/negate_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/abs_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/multr_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/sum_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/cpmlx_msu_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/norm32-3.c: Ditto. + * gcc.target/bfin/builtins/norm_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/norm16-4.c: Ditto. + * gcc.target/bfin/builtins/norm32-7.c: Ditto. + * gcc.target/bfin/builtins/norm16-8.c: Ditto. + * gcc.target/bfin/builtins/add_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/add_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-5.c: Ditto. + * gcc.target/bfin/builtins/norm32-12.c: Ditto. + * gcc.target/bfin/builtins/sub_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/diff_lh_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/mulhisihl_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shr_fr2x16-4.c: Ditto. + * gcc.target/bfin/builtins/mulhisill_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/negate_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/multr_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/cpmlx_mac_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x32x32NS-1.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/min_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/dspaddsubsat_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/sub_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-4.c: Ditto. + * gcc.target/bfin/builtins/sub_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-5.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-8.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-3.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x16-4.c: Ditto. + * gcc.target/bfin/builtins/shr_fr1x32-7.c: Ditto. + * gcc.target/bfin/builtins/negate_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/multr_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/sum_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/norm_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/norm16-1.c: Ditto. + * gcc.target/bfin/builtins/norm_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x32x32-1.c: Ditto. + * gcc.target/bfin/builtins/norm32-4.c: Ditto. + * gcc.target/bfin/builtins/norm16-5.c: Ditto. + * gcc.target/bfin/builtins/norm32-8.c: Ditto. + * gcc.target/bfin/builtins/dspsubaddsat_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/max_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/add_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr2x16-6.c: Ditto. + * gcc.target/bfin/builtins/diff_hl_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shr_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/mulhisihl_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/negate_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/cpmlx_mul_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/multr_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/mulhisill_fr2x16-2.c: Ditto. + * gcc.target/bfin/builtins/negate_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/abs_fr2x16-1.c: Ditto. + * gcc.target/bfin/builtins/shrl_fr2x16-3.c: Ditto. + * gcc.target/bfin/builtins/mult_fr1x32x32NS-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-1.c: Ditto. + * gcc.target/bfin/builtins/max_fr1x16-1.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x16-2.c: Ditto. + * gcc.target/bfin/builtins/sub_fr1x32-2.c: Ditto. + * gcc.target/bfin/builtins/shl_fr1x32-5.c: Ditto. + +2011-05-03 Bernd Schmidt + + * gcc.target/arm/cold-lc.c: New test. + +2011-05-03 Jakub Jelinek + + PR target/48774 + * gcc.dg/pr48774.c: New test. + +2011-05-03 Richard Guenther + + * gcc.dg/large-size-array-5.c: New testcase. + +2011-05-03 Richard Sandiford + + * gcc.dg/vect/vect-strided-u16-i3.c: New test. + +2011-05-03 Richard Sandiford + + * lib/target-supports.exp (check_effective_target_vect_strided): + Replace with... + (check_effective_target_vect_strided2) + (check_effective_target_vect_strided3) + (check_effective_target_vect_strided4) + (check_effective_target_vect_strided8): ...these new functions. + + * gcc.dg/vect/O3-pr39675-2.c: Update accordingly. + * gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Likewise. + * gcc.dg/vect/fast-math-slp-27.c: Likewise. + * gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Likewise. + * gcc.dg/vect/pr37539.c: Likewise. + * gcc.dg/vect/slp-11a.c: Likewise. + * gcc.dg/vect/slp-11b.c: Likewise. + * gcc.dg/vect/slp-11c.c: Likewise. + * gcc.dg/vect/slp-12a.c: Likewise. + * gcc.dg/vect/slp-12b.c: Likewise. + * gcc.dg/vect/slp-18.c: Likewise. + * gcc.dg/vect/slp-19a.c: Likewise. + * gcc.dg/vect/slp-19b.c: Likewise. + * gcc.dg/vect/slp-21.c: Likewise. + * gcc.dg/vect/slp-23.c: Likewise. + * gcc.dg/vect/vect-cselim-1.c: Likewise. + + * gcc.dg/vect/fast-math-vect-complex-3.c: Use vect_stridedN + instead of vect_interleave && vect_extract_even_odd. + * gcc.dg/vect/no-scevccp-outer-10a.c: Likewise. + * gcc.dg/vect/no-scevccp-outer-10b.c: Likewise. + * gcc.dg/vect/no-scevccp-outer-20.c: Likewise. + * gcc.dg/vect/vect-1.c: Likewise. + * gcc.dg/vect/vect-10.c: Likewise. + * gcc.dg/vect/vect-98.c: Likewise. + * gcc.dg/vect/vect-107.c: Likewise. + * gcc.dg/vect/vect-strided-a-mult.c: Likewise. + * gcc.dg/vect/vect-strided-a-u16-i2.c: Likewise. + * gcc.dg/vect/vect-strided-a-u16-i4.c: Likewise. + * gcc.dg/vect/vect-strided-a-u16-mult.c: Likewise. + * gcc.dg/vect/vect-strided-a-u32-mult.c: Likewise. + * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise. + * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Likewise. + * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise. + * gcc.dg/vect/vect-strided-float.c: Likewise. + * gcc.dg/vect/vect-strided-mult-char-ls.c: Likewise. + * gcc.dg/vect/vect-strided-mult.c: Likewise. + * gcc.dg/vect/vect-strided-same-dr.c: Likewise. + * gcc.dg/vect/vect-strided-u16-i2.c: Likewise. + * gcc.dg/vect/vect-strided-u16-i4.c: Likewise. + * gcc.dg/vect/vect-strided-u32-i4.c: Likewise. + * gcc.dg/vect/vect-strided-u32-i8.c: Likewise. + * gcc.dg/vect/vect-strided-u32-mult.c: Likewise. + * gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise. + * gcc.dg/vect/vect-strided-u8-i2.c: Likewise. + * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Likewise. + * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Likewise. + * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Likewise. + * gcc.dg/vect/vect-strided-u8-i8.c: Likewise. + * gcc.dg/vect/vect-vfa-03.c: Likewise. + + * gcc.dg/vect/no-scevccp-outer-18.c: Add vect_stridedN to the + target condition. + * gcc.dg/vect/pr30843.c: Likewise. + * gcc.dg/vect/pr33866.c: Likewise. + * gcc.dg/vect/slp-reduc-6.c: Likewise. + * gcc.dg/vect/vect-strided-store-a-u8-i2.c: Likewise. + * gcc.dg/vect/vect-strided-store-u16-i4.c: Likewise. + * gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise. + +2011-05-03 Richard Sandiford + + * gcc.dg/vect/slp-11.c: Split into... + * gcc.dg/vect/slp-11a.c, gcc.dg/vect/slp-11b.c, + gcc.dg/vect/slp-11c.c: ...these tests. + * gcc.dg/vect/slp-12a.c: Split 4-stride loop into... + * gcc.dg/vect/slp-12c.c: ...this new test. + * gcc.dg/vect/slp-19.c: Split into... + * gcc.dg/vect/slp-19a.c, gcc.dg/vect/slp-19b.c, + gcc.dg/vect/slp-19c.c: ...these new tests. + +2011-05-03 Richard Sandiford + + * lib/target-supports.exp + (check_effective_target_vect_extract_even_odd_wide): Delete. + (check_effective_target_vect_strided_wide): Likewise. + * gcc.dg/vect/O3-pr39675-2.c: Use the non-wide versions instead. + * gcc.dg/vect/fast-math-pr35982.c: Likewise. + * gcc.dg/vect/fast-math-vect-complex-3.c: Likewise. + * gcc.dg/vect/pr37539.c: Likewise. + * gcc.dg/vect/slp-11.c: Likewise. + * gcc.dg/vect/slp-12a.c: Likewise. + * gcc.dg/vect/slp-12b.c: Likewise. + * gcc.dg/vect/slp-19.c: Likewise. + * gcc.dg/vect/slp-23.c: Likewise. + * gcc.dg/vect/vect-1.c: Likewise. + * gcc.dg/vect/vect-98.c: Likewise. + * gcc.dg/vect/vect-107.c: Likewise. + * gcc.dg/vect/vect-strided-float.c: Likewise. + +2011-05-02 Jason Merrill + + * g++.dg/init/new31.C: New. + +2011-05-02 Simon Martin + + PR c/35445 + * gcc.dg/pr35445.c: New test. + +2011-05-02 Jason Merrill + + * c-c++-common/vla-1.c: New. + +2011-05-02 Richard Guenther + + PR tree-optimization/48822 + * gcc.dg/torture/pr48822.c: New testcase. + +2011-05-02 Paolo Carlini + + PR c++/47969 + * g++.dg/cpp0x/constexpr-47969.C: New. + +2011-05-02 Ira Rosen + + PR testsuite/48498 + * gcc.dg/vect/slp-3.c: Increase loop bound. Don't expect to fail + on vect_no_align targets. + * gcc.dg/vect/no-vfa-pr29145.c: Don't expect to fail on + vect_no_align targets. + +2011-05-01 Xinliang David Li + + * gcc.dg/tree-ssa/integer-addr.c: New test. + * gcc.dg/tree-ssa/alias_bug.c: New test. + +2011-05-01 Jerry DeLisle + + PR libgfortran/48787 + * gfortran.dg/round_3.f08: Add more checks. + +2011-04-30 Tobias Burnus + + PR fortran/48821 + * gfortran.dg/import9.f90: New, proper test. + * gfortran.dg/interface_37.f90: Remove bogus + test (bogus copy of interface_36.f90). + +2011-04-30 Tobias Burnus + + PR fortran/48821 + * gfortran.dg/interface_37.f90: New. + +2011-04-30 Paul Thomas + + PR fortran/48746 + * gfortran.dg/realloc_on_assign_7.f03: Test bounds. + +2011-04-30 Jakub Jelinek + + PR tree-optimization/48809 + * gcc.c-torture/execute/pr48809.c: New test. + +2011-04-29 Jeff Law + + * gcc.dg/tree-ssa/ssa-dom-thread-4.c: New test. + +2011-04-29 Paolo Carlini + + PR c++/48606 + * g++.dg/init/ctor10.C: New. + +2011-04-29 Le-Chun Wu + + * g++.dg/warn/Wconversion-null-2.C: Do not expect a NULL + warning in implicitly instantiated templates. + +2011-04-29 Le-Chun Wu + + * g++.dg/warn/Wnull-conversion-1.C: New. + * g++.dg/warn/Wnull-conversion-2.C: New. + +2011-04-29 Diego Novillo + + * g++.old-deja/g++.other/null3.C: Expect warning about + converting boolean to a pointer. + +2011-04-29 Paul Thomas + + PR fortran/48462 + * gfortran.dg/realloc_on_assign_7.f03: Modify to test for lhs + being a target. + + PR fortran/48746 + * gfortran.dg/realloc_on_assign_7.f03: Add subroutine pr48746. + +2011-04-29 Tobias Burnus + + PR fortran/48810 + * gfortran.dg/typebound_proc_22.f90: New. + + PR fortran/48800 + * gfortran.dg/interface_36.f90: New. + +2011-04-29 Jerry DeLisle + + PR libgfortran/48488 + PR libgfortran/48602 + PR libgfortran/48615 + PR libgfortran/48684 + PR libgfortran/48787 + * gfortran.dg/fmt_g.f: Adjust test. + * gfortran.dg/fmt_g0_1.f08: Adjust test. + * gfortran.dg/round_3.f08: New test. + * gfortran.dg/namelist_print_1.f: Adjust test. + * gfortran.dg/char4_iunit_1.f03: Adjust test. + * gfortran.dg/f2003_io_5.f03: Adjust test. + * gfortran.dg/coarray_15.f90: Adjust test. + * gfortran.dg/namelist_65.f90: Adjust test. + * gfortran.dg/fmt_cache_1.f: Adjust test. + * gfortran.dg/char4_iunit_2.f03: Adjust test. + * gfortran.dg/real_const_3.f90: Adjust test. + +2011-04-29 Jan Hubicka + + * gcc.dg/tree-ssa/inline-10.c: New testcase. + * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining. + +2011-04-28 Xinliang David Li + + * gcc.dg/tree-prof/prof-robust-1.c: New test. + * g++.dg/prof-robust-1.C: New test. + +2011-04-28 Ira Rosen + + PR tree-optimization/48765 + * gcc.dg/vect/pr48765.c: New. + +2011-04-28 Rainer Orth + + PR tree-optimization/48775 + * gcc.dg/pr48616.c: Also add -fno-common on alpha*-dec-osf*. + +2011-04-28 Paolo Carlini + + PR c++/48798 + * g++.dg/inherit/pr48798.C: New. + * g++.old-deja/g++.other/base1.C: Adjust. + +2011-04-28 Dodji Seketeli + + PR c++/48656 + * g++.dg/template/inherit7.C: New test case. + +2011-04-28 Richard Guenther + + PR tree-optimization/40052 + PR tree-optimization/15347 + * gcc.dg/tree-ssa/vrp57.c: New testcase. + * gcc.dg/pr15347.c: Likewise. + +2011-04-28 Paolo Carlini + + PR c++/48530 + * g++.dg/cpp0x/sfinae18.C: New. + +2011-04-28 Paolo Carlini + + PR c++/48771 + * g++.dg/ext/is_literal_type1.C: New. + +2011-04-28 Tobias Burnus + + PR fortran/48112 + PR fortran/48279 + * gfortran.dg/interface_35.f90: New. + * gfortran.dg/erfc_scaled_1.f90: Don't compile with -pedantic. + * gfortran.dg/func_result_6.f90: Add dg-warning. + * gfortran.dg/bessel_1.f90: Ditto. + * gfortran.dg/hypot_1.f90: Ditto. + * gfortran.dg/proc_ptr_comp_20.f90: Ditto. + * gfortran.dg/proc_ptr_comp_21.f90: Ditto. + * gfortran.dg/interface_assignment_4.f90: Ditto. + +2011-04-27 Jason Merrill + + * g++.dg/ext/complex8.C: New. + + * g++.dg/cpp0x/initlist49.C: New. + * g++.dg/init/new30.C: New. + +2011-04-27 Tobias Burnus + + PR fortran/48788 + * gfortran.dg/whole_file_34.f90: New. + +2011-04-27 Jan Hubicka + + * gcc.dg/tree-ssa/inline-9.c: New testcase. + +2011-04-27 Jason Merrill + + * g++.old-deja/g++.oliva/overload1.C: Adjust. + + * g++.dg/parse/ambig6.C: New. + +2011-04-27 Nick Clifton + + * gcc.dg/20020312-2.c: Add definition for RX. + + * lib/target-supports.exp (add_options_for_ieee): Use -mnofpu + option with RX targets. + + * gcc.target/rx/pack.c: Replace C++ style // comments with C style + /* */ comments. + +2011-04-27 Richard Guenther + + * gcc.dg/tree-ssa/pr23382.c: Remove. + +2011-04-27 Kaz Kojima + + PR target/48767 + * gcc.c-torture/compile/pr48767.c: New test. + +2011-04-27 Richard Guenther + + PR tree-optimization/48772 + * g++.dg/pr48772.C: New testcase. + +2011-04-27 Jakub Jelinek + + PR c/48742 + * gcc.c-torture/compile/pr48742.c: New test. + +2011-04-26 Jason Merrill + + * g++.dg/lookup/koenig13.C: New. + + * g++.dg/cpp0x/initlist48.C: New. + +2011-04-25 Jason Merrill + + * g++.dg/cpp0x/sfinae17.C: New. + +2011-03-23 Michael Meissner + + PR target/48258 + * gcc.target/powerpc/pr48258-1.c: New file. + * gcc.target/powerpc/pr48258-2.c: Ditto. + +2011-04-26 Xinliang David Li + + * gcc.dg/uninit-suppress.c: New test. + * gcc.dg/uninit-suppress.c: New test. + +2011-04-26 Jakub Jelinek + + PR debug/48768 + * gcc.dg/pr48768.c: New test. + + PR tree-optimization/48734 + * gcc.c-torture/compile/pr48734.c: New test. + + PR testsuite/48753 + * gcc.dg/tree-prof/val-prof-2.c: Adjust for 32-bit HWI. + +2011-04-26 Richard Guenther + + PR tree-optimization/48731 + * gcc.dg/torture/pr48731.c: New testcase. + +2011-04-26 Richard Guenther + + PR testsuite/48753 + * gcc.dg/tree-prof/val-prof-2.c: Adjust. + +2011-04-26 Richard Guenther + + PR middle-end/48694 + * gcc.dg/torture/pr48694-1.c: New testcase. + * gcc.dg/torture/pr48694-2.c: Likewise. + +2011-04-25 Paolo Carlini + + * g++.dg/ext/underlying_type1.C: New. + * g++.dg/ext/underlying_type2.C: Likewise. + * g++.dg/ext/underlying_type3.C: Likewise. + * g++.dg/ext/underlying_type4.C: Likewise. + * g++.dg/ext/underlying_type5.C: Likewise. + * g++.dg/ext/underlying_type6.C: Likewise. + * g++.dg/ext/underlying_type7.C: Likewise. + * g++.dg/ext/underlying_type8.C: Likewise. + * g++.dg/ext/underlying_type9.C: Likewise. + * g++.dg/ext/underlying_type10.C: Likewise. + +2011-04-25 Jason Merrill + + * g++.dg/cpp0x/regress/template-const2.C: New. + +2011-04-25 Jeff Law + + * gcc.dg/tree-ssa/vrp56.c: new test. + +2011-04-25 Rainer Orth + + * go.test/go-test.exp (go-set-goarch): Accept mips*-*-*. + +2011-04-24 Jakub Jelinek + + PR preprocessor/48740 + * c-c++-common/raw-string-11.c: New test. + +2011-04-23 John David Anglin + + * gcc.dg/pr48616.c (dg-options): Add -fno-common to options on + hppa*-*-hpux*. + +2011-04-23 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_19.f90: New. + +2011-04-23 Jakub Jelinek + + PR c/48685 + * gcc.dg/pr48685.c: New test. + +2011-04-22 Jan Hubicka + + * gcc.dg/tree-ssa/pr38699.c: Fix testcase. + +2011-04-22 Jakub Jelinek + + PR tree-optimization/48717 + * gcc.c-torture/execute/pr48717.c: New test. + +2011-04-22 Uros Bizjak + + PR target/48723 + * gcc.target/i386/pr48723.c: New test. + +2011-04-22 Jakub Jelinek + + PR c/48716 + * gcc.dg/gomp/pr48716.c: New test. + * g++.dg/gomp/pr48716.C: New test. + +2011-04-22 Alexander Monakov + + PR c/36750 + * gcc.dg/missing-field-init-2.c: Update testcase. + +2011-04-22 Alan Modra + + * gcc.target/powerpc/ppc-pow.c: Allow for tail calls. + +2011-04-21 Thomas Koenig + + PR fortran/48405 + * gfortran.dg/function_optimize_6.f90: New test. + +2011-04-21 Easwaran Raman + + * gcc.dg/stack-layout-2.c: New test. + +2011-04-21 Richard Guenther + + PR lto/48703 + * g++.dg/lto/pr48207-2_0.C: New testcase. + * g++.dg/lto/pr48207-3_0.C: Likewise. + +2011-04-21 Eric Botcazou + + * gnat.dg/volatile5.adb: New test. + * gnat.dg/volatile5_pkg.ads: New helper. + +2011-04-21 Uros Bizjak + + PR target/48708 + * gcc.target/i386/pr48708.c: New test. + +2011-04-21 Richard Sandiford + + * gcc.dg/vect/vect-119.c: New test. + +2011-04-21 Richard Sandiford + + * gcc.dg/vect/vect.exp: Run the main tests twice, one with -flto + and once without. + +2011-04-21 Richard Earnshaw + Richard Sandiford + + PR target/46329 + * gcc.target/arm/pr46329.c: New test. + +2011-04-21 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_18.f90: New. + +2011-04-20 Jason Merrill + + * g++.dg/cpp0x/initlist47.C: New. + + * g++.dg/init/dtor4.C: New. + +2011-04-20 Uros Bizjak + + PR target/48678 + * gcc.target/i386/sse2-pinsrw.c: New test. + * gcc.target/i386/avx-vpinsrw.c: Ditto. + * gcc.target/i386/sse4_1-insvqi.c: Ditto. + * gcc.target/i386/sse2-insvhi.c: Ditto. + * gcc.target/i386/sse4_1-insvsi.c: Ditto. + * gcc.target/i386/sse4_1-insvdi.c: Ditto. + +2011-04-20 Jason Merrill + + * g++.dg/template/const4.C: New. + +2011-04-20 Easwaran Raman + + * gcc.dg/stack-layout-1.c: New test. + +2011-04-20 Daniel Jacobowitz + + * gcc.dg/vect/vect-shift-3.c, gcc.dg/vect/vect-shift-4.c: New. + * lib/target-supports.exp (check_effective_target_vect_shift_char): New + function. + +2011-04-20 Kai Tietz + + * gcc.dg/binop-xor1.c: New test. + * gcc.dg/binop-xor2.c: New test. + * gcc.dg/binop-xor3.c: New test. + * gcc.dg/binop-xor4.c: New test. + * gcc.dg/binop-xor5.c: New test. + +2011-04-20 Richard Guenther + + PR tree-optimization/47892 + * gcc.dg/vect/fast-math-ifcvt-1.c: New testcase. + +2011-04-20 Richard Guenther + + PR middle-end/48695 + * g++.dg/torture/pr48695.C: New testcase. + +2011-04-20 Georg-Johann Lay + + * gcc.dg/pr42629.c: Add dg-require-effective-target int32plus + * gcc.c-torture/execute/cmpsi-2.c: Ditto + * gcc.c-torture/execute/pr45262.c: Ditto + * gcc.dg/torture/pr43165.c: Ditto. + * gcc.dg/torture/pr47228.c: Ditto. + * gcc.dg/tree-ssa/pr45144.c: Ditto. + * gcc.dg/ipa/pr45644.c: Ditto. + * gcc.c-torture/compile/pr43191.c: Ditto. Remove dg-skip-if for + PDP11. + +2011-04-19 Jason Merrill + + * g++.dg/ext/complex7.C: New. + + * g++.dg/ext/attrib41.C: New. + +2011-04-19 Kaz Kojima + + PR testsuite/48676 + * gcc.dg/torture/pr37868.c: Skip on sh*-*-*. + +2011-04-19 Jakub Jelinek + + PR target/48678 + * gcc.target/i386/pr48678.c: New test. + +2011-04-19 Martin Jambor + + * g++.dg/opt/devirt1.C: Bump to -O2, remove XFAIL. + * g++.dg/opt/devirt2.C: New test. + * g++.dg/ipa/devirt-g-1.C: Likewise. + +2011-04-19 Tobias Burnus + + PR fortran/48588 + * gfortran.dg/whole_file_33.f90: New. + +2011-04-19 Martin Jambor + + * g++.dg/ipa/devirt-7.C: New test. + +2011-04-19 Richard Guenther + + PR lto/48207 + * g++.dg/lto/pr48207_0.C: New testcase. + +2011-04-18 Jason Merrill + + * g++.dg/init/void1.C: New. + + * g++.dg/cpp0x/union4.C: New. + +2011-04-18 Jakub Jelinek + + PR middle-end/48661 + * g++.dg/torture/pr48661.C: New test. + + PR c++/48632 + * g++.dg/gomp/pr48632.C: New test. + +2011-04-18 Uros Bizjak + + * gcc.target/i386/sse2-maskmovdqu.c: New test. + * gcc.target/i386/avx-vmaskmovdqu.c: Ditto. + +2011-04-18 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_17.f90: New. + * gfortran.dg/coarray_10.f90: Update dg-error. + +2011-04-18 Rainer Orth + + PR testsuite/48251 + * gcc.dg/guality/guality.exp: Disable on alpha*-dec-osf*. + * gfortran.dg/guality/guality.exp: Likewise. + +2011-04-18 Rainer Orth + + * gfortran.dg/fmt_g0_5.f08: Use dg-add-options ieee. + +2011-04-18 Rainer Orth + + * gcc.dg/vect/pr48377.c: Remove dg-do run. + +2011-04-18 Rainer Orth + + * gcc.dg/ipa/pr48195.c: Add dg-require-effective-target lto. + +2011-04-18 Richard Guenther + + PR middle-end/46364 + * g++.dg/torture/pr46364.C: New testcase. + +2011-04-18 Rainer Orth + + * obj-c++.dg/dwarf-2.mm: Skip on alpha*-dec-osf*. + +2011-04-18 Alexander Monakov + + * gcc.dg/pr48235.c: Add dg-require-effective-target freorder. + +2011-04-18 Ulrich Weigand + Ira Rosen + + PR target/48252 + * gcc.target/arm/pr48252.c: New test. + +2011-04-18 Jakub Jelinek + + PR tree-optimization/48616 + * gcc.dg/pr48616.c: New test. + +2011-04-18 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_16.f90: New. + +2011-04-18 Paul Thomas + + PR fortran/48462 + * gfortran.dg/realloc_on_assign_7.f03: New test. + +2011-04-17 Jerry DeLisle + + PR libgfortran/48602 + * gfortran.dg/fmt_g0_6.f08: New test. + +2011-04-17 Jason Merrill + + * g++.dg/cpp0x/sfinae16.C: New. + +2011-04-17 Richard Sandiford + + * gcc.target/mips/reg-var-1.c: New test. + +2011-04-17 Jan Hubicka + + * gcc.dg/winline-5.c: Update testcase. + +2011-04-17 Eric Botcazou + + * gnat.dg/discr27.ad[sb]: Move dg directive. + * gnat.dg/discr28.ad[sb]: New test. + * gnat.dg/discr28_pkg.ads: New helper. + +2011-04-17 Michael Matz + + PR tree-optimization/48622 + PR lto/48645 + * gcc.dg/lto/pr48622_0.c: New test. + +2011-04-16 Uros Bizjak + + * gcc.target/i386/avx256-unaligned-load-1.c: Update scan patterns. + * gcc.target/i386/avx256-unaligned-load-2.c: Ditto. + * gcc.target/i386/avx256-unaligned-load-3.c: Ditto. + * gcc.target/i386/avx256-unaligned-store-1.c: Ditto. + * gcc.target/i386/avx256-unaligned-store-2.c: Ditto. + * gcc.target/i386/avx256-unaligned-store-3.c: Ditto. + +2011-04-15 Jason Merrill + + * g++.dg/cpp0x/range-for17.C: New. + +2011-04-15 Rodrigo Rivas Costa + + * g++.dg/cpp0x/range-for2.C: Correct for declaration. + * g++.dg/cpp0x/range-for3.C: Likewise. + * g++.dg/cpp0x/range-for9.C: Correct error message. + * g++.dg/cpp0x/range-for11.C: New. + * g++.dg/cpp0x/range-for12.C: New. + * g++.dg/cpp0x/range-for13.C: New. + * g++.dg/cpp0x/range-for14.C: New. + * g++.dg/cpp0x/range-for15.C: New. + * g++.dg/cpp0x/range-for16.C: New. + +2011-04-15 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_15.f90: Change to dg-do run. + +2011-04-15 Nicola Pero + + * objc.dg/naming-4.m: Updated. + * objc.dg/naming-5.m: Updated. + * objc.dg/naming-6.m: New. + * objc.dg/naming-7.m: New. + * obj-c++.dg/naming-1.mm: Updated. + * obj-c++.dg/naming-2.mm: Updated. + * obj-c++.dg/naming-3.mm: New. + * obj-c++.dg/naming-4.mm: New. + +2011-04-15 Jerry DeLisle + + PR libgfortran/48589 + * gfortran.dg/fmt_g0_5.f08: New test. + +2011-04-15 Richard Guenther + + PR testsuite/48286 + * gfortran.dg/cray_pointers_8.f90: Use -ffloat-store. + +2011-04-15 Georg-Johann Lay + + * gcc.target/avr/torture/pr41885.c (dg-options): Change + -finline-limit=0 to -fno-inline + +2011-04-15 Jakub Jelinek + + PR target/48614 + * gcc.target/i386/pr46084.c: Require avx_runtime instead of + just avx. + +2011-04-14 Jakub Jelinek + + PR target/48605 + * gcc.target/i386/sse4_1-insertps-3.c: New test. + * gcc.target/i386/sse4_1-insertps-4.c: New test. + * gcc.target/i386/avx-insertps-3.c: New test. + * gcc.target/i386/avx-insertps-4.c: New test. + +2011-04-14 Georg-Johann Lay + + * gcc.target/avr/torture/pr41885.c (dg-options): Add + -finline-limit=0 + +2011-04-14 Georg-Johann Lay + + PR target/46779 + PR target/45291 + PR target/41894 + * gcc.target/avr/pr46779-1.c: New test case + * gcc.target/avr/pr46779-2.c: New test case + +2011-04-14 Jason Merrill + + * g++.dg/cpp0x/sfinae15.C: New. + + * g++.dg/cpp0x/sfinae14.C: New. + + * g++.dg/ext/vla10.C: New. + +2011-04-14 Richard Guenther + + * gcc.dg/tree-ssa/ssa-dse-14.c: New testcase. + +2011-04-14 Richard Guenther + + * gcc.dg/fold-bitand-4.c: Move ... + * c-c++-common/fold-bitand-4.c: ... here. Adjust slightly. + +2011-04-14 Georg-Johann Lay + + * gcc.target/avr/trivial.c: Fix line endings. Make PROGMEM + variables const. + * gcc.target/avr/torture/trivial.c: Ditto. + +2011-04-13 Jason Merrill + + * g++.dg/template/operator11.C: New. + +2011-04-13 Jakub Jelinek + + PR middle-end/48591 + * gcc.dg/gomp/pr48591.c: New test. + + PR c++/48570 + * g++.dg/cpp0x/constexpr-wstring1.C: New test. + * g++.dg/cpp0x/constexpr-wstring2.C: New test. + +2011-04-13 Dodji Seketeli + + PR c++/48574 + * g++.dg/template/dependent-expr7.C: New test case. + +2011-04-13 Jason Merrill + + * g++.dg/cpp0x/sfinae13.C: New. + +2011-04-13 Uros Bizjak + + * gcc.target/i386/sse2-init-v2di-2.c: Update scan pattern. + +2011-04-12 Janis Johnson + + * gcc.target/arm/pr43698.c: Remove -march option. + +2011-04-12 Janis Johnson + + * gcc.target/arm/sync-1.c: Limit to sync_int_long, do not use + -march option. + +2011-04-12 Paul Thomas + + PR fortran/48360 + PR fortran/48456 + * gfortran.dg/realloc_on_assign_6.f03: New test. + +2011-04-12 Kai Tietz + + * g++.dg/ext/bitfield2.C: Add for i?86/x86_64-*-mingw* + targets the additional -mno-ms-bitfields and + -Wno-packed-bitfield-compat options. + * g++.dg/ext/bitfield3.C: Likewise. + * g++.dg/ext/bitfield4.C: Likewise. + * g++.dg/ext/bitfield5.C: Likewise. + * gcc.dg/bitfld-15.c: Likewise. + * gcc.dg/bitfld-16.c: Likewise. + * gcc.dg/bitfld-17.c: Likewise. + * gcc.dg/bitfld-18.c: Likewise. + +2011-04-12 Richard Sandiford + + * gcc.target/arm/neon-vld3-1.c: New test. + * gcc.target/arm/neon-vst3-1.c: New test. + * gcc.target/arm/neon/v*.c: Regenerate. + +2011-04-12 Jakub Jelinek + + PR rtl-optimization/48549 + * g++.dg/opt/pr48549.C: New test. + +2011-04-12 Richard Guenther + + PR tree-optimization/46076 + * gcc.dg/tree-ssa/pr46076.c: Un-XFAIL. + +2011-04-12 Rainer Orth + + PR testsuite/21164 + * lib/compat.exp (compat-execute): Declare unsupported after + stripping path from src1. + * lib/lto.exp (lto-execute): Likewise. + +2011-04-12 Jakub Jelinek + + PR c/48552 + * gcc.dg/pr48552-1.c: New test. + * gcc.dg/pr48552-2.c: New test. + +2011-04-11 Jason Merrill + + * g++.dg/cpp0x/sfinae12.C: New. + + * g++.dg/cpp0x/enum10.C: New. + + * g++.dg/cpp0x/lambda/lambda-this4.C: New. + + * g++.dg/cpp0x/rv-func.C: New. + +2011-04-11 Rainer Orth + + * gcc.dg/torture/pr47917.c: Define _ISO_C_SOURCE=19990L for + alpha*-dec-osf5*. + +2011-04-11 Martin Jambor + + PR tree-optimization/48195 + * gcc.dg/ipa/pr48195.c: New test. + +2011-04-10 Eric Botcazou + + * gnat.dg/return3.adb: Remove unused switch. + +2011-04-08 Mike Stump + + PR testsuite/48506 + * gcc.dg/tree-ssa/ssa-ccp-17.c: Robustify against ports that + default to fno-common. + +2011-04-08 Georg-Johann Lay + + * gcc.dg/sibcall-3.c: Don't xfail on AVR. + * gcc.dg/sibcall-4.c: Don't xfail on AVR. + +2011-04-08 Thomas Koenig + + PR fortran/48448 + * gfortran.dg/function_optimize_5.f90: New test. + +2011-04-08 Eric Botcazou + + * gnat.dg/aggr17.adb: New test. + * gnat.dg/aggr18.adb: Likewise. + +2011-04-08 Michael Matz + + PR middle-end/48389 + * gcc.target/i386/pr48389.c: New test. + +2011-04-08 Andrey Belevantsev + + PR rtl-optimization/48272 + * g++.dg/opt/pr48272.C: New. + +2011-04-08 Dmitry Melnik + + PR rtl-optimization/48235 + * gcc.dg/pr48235.c: New. + +2011-04-08 Alexander Monakov + + PR rtl-optimization/48302 + * g++.dg/opt/pr48302.C: New. + +2011-04-08 Alexander Monakov + + PR target/48273 + * g++.dg/opt/pr48273.C: New. + +2011-04-08 Alexander Monakov + + PR rtl-optimization/48442 + * gcc.dg/pr48442.c: New. + +2011-04-08 Jakub Jelinek + + PR tree-optimization/48377 + * gcc.dg/vect/pr48377.c: New test. + +2011-04-07 Jason Merrill + + * g++.dg/cpp0x/regress/call1.C: New. + + * g++.dg/cpp0x/variadic107.C: New. + + * g++.dg/cpp0x/sfinae11.C: New. + * g++.dg/cpp0x/noexcept02.C: Fix. + + * g++.dg/cpp0x/sfinae10.C: New. + + * g++.dg/cpp0x/sfinae9.C: New. + + * c-c++-common/Wcast-qual-1.c: Move here from... + * gcc.dg/cast-qual-3.c: ...here, and... + * g++.dg/warn/Wcast-qual2.C: ...here. + + * g++.dg/cpp0x/sfinae8.C: New. + + * g++.dg/cpp0x/sfinae7.C: New. + + * g++.dg/cpp0x/enum9.C: New. + +2011-04-07 Mike Stump + + * gcc.dg/torture/stackalign/non-local-goto-5.c: Fix for targets + with no trampolines. + +2011-04-07 Jakub Jelinek + + PR fortran/48117 + * gfortran.dg/gomp/pr48117.f90: New test. + + PR debug/48343 + * gcc.dg/torture/pr48343.c: New test. + +2011-04-07 Rainer Orth + + * gcc.target/i386/asm-6.c: Remove dg-xfail-if. + +2011-04-07 Maxim Kuvyrkov + + * gcc.dg/lto/20090210_0.c: Require tls_runtime target. + +2011-04-07 Tom de Vries + + PR target/43920 + * lib/scanasm.exp (object-size): New proc. + * gcc.target/arm/pr43920-2.c: New test. + +2011-04-06 Tobias Burnus + + PR fortran/18918 + PR fortran/48477 + * gfortran.dg/coarray_13.f90: Avoid out-of-bounds access. + +2011-04-06 Steve Ellcey + + * gcc.dg/mtune.c: Prune note from output. + +2011-04-06 Jakub Jelinek + + PR debug/48466 + * gcc.dg/guality/pr36977.c: New test. + * gcc.dg/guality/pr48466.c: New test. + +2011-04-06 Ramana Radhakrishnan + + * gcc.target/arm/pr43920-1.c: Fix accidental duplication. + +2011-04-06 Eric Botcazou + + * gnat.dg/return3.adb: New test. + +2011-04-06 Richard Guenther + + PR tree-optimization/47663 + * gcc.dg/tree-ssa/inline-8.c: New testcase. + +2011-04-05 Eric Botcazou + + * gcc.dg/torture/pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options for + Solaris 8 and 9 as well. + +2011-04-05 Tom de Vries + + PR target/43920 + * gcc.target/arm/pr43920-1.c: New test. + +2011-04-04 Yufeng Zhang + + * g++.dg/abi/arm_cxa_vec1.C (__ARM_EABI__): Fix typo. + (cctor): Actually return the value. + (main): Cast return values. + +2010-04-04 Thomas Koenig + + * gfortran.dg/character_comparison_8.f90: New test. + +2010-04-04 Thomas Koenig + + * frontend-passes: (optimize_lexical_comparison): New function. + (optimize_expr): Call it. + (optimize_comparison): Also handle lexical comparison functions. + Return false instad of -2 for unequal comparison. + +2011-04-04 Thomas Koenig + + PR fortran/48412 + * function_optimize_4.f90: New test. + +2011-04-04 Tobias Burnus + + PR fortran/18918 + * gfortran.dg/coarray_10.f90: Add coarray descriptor diagnostic check. + * gfortran.dg/coarray_13.f90: Add checks for run-time cobounds. + * gfortran.dg/coarray_15.f90: New. + +2011-04-04 Rainer Orth + + * gfortran.dg/bessel_6.f90: Use dg-add-options ieee. + * gfortran.dg/bessel_7.f90: Likewise. + +2011-04-03 Tobias Burnus + + * gfortran.dg/bessel_6.f90: Reduce mymax for Tru64. + +2011-04-03 Richard Guenther + Ira Rosen + + * gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: New test. + * gcc.dg/vect/vect.exp: Run if-cvt-stores-vect* tests with + -ftree-loop-if-convert-stores. + +2011-04-02 Eric Botcazou + + * gnat.dg/specs/aggr2.ads: New test. + +2011-04-02 Eric Botcazou + + * gnat.dg/debug2.ad[sb]: New test. + * gnat.dg/debug2_pkg.ads: New helper. + * gnat.dg/debug3.ad[sb]: New test. + +2011-04-01 Uros Bizjak + + * go.test/go-test.exp (go-set-goarch): Recognize alpha*-*-*. + +2011-04-01 Jakub Jelinek + + PR middle-end/48335 + * gcc.c-torture/compile/pr48335-1.c: New test. + * gcc.dg/pr48335-1.c: New test. + * gcc.dg/pr48335-2.c: New test. + * gcc.dg/pr48335-3.c: New test. + * gcc.dg/pr48335-4.c: New test. + * gcc.dg/pr48335-5.c: New test. + * gcc.dg/pr48335-6.c: New test. + * gcc.dg/pr48335-7.c: New test. + * gcc.dg/pr48335-8.c: New test. + * gcc.target/i386/pr48335-1.c: New test. + +2011-04-01 Vincent Lefevre + + PR c/36299 + * gcc.dg/Waddress.c: New test. + +2011-04-01 Thomas Koenig + + PR fortran/48352 + * gfortran.dg/function_optimize_3.f90: New test. + +2011-04-01 Bernd Schmidt + + * gcc.c-torture/compile/20110401-1.c: New test. + + * g++.dg/lto/20091002-1_0.C: Use "dg-require-effective-target fpic". + * g++.dg/lto/20091002-2_0.C: Likewise. + * g++.dg/lto/20090303_0.c: Likewise. + * g++.dg/lto/20091004-1_0.C: Likewise. + * g++.dg/lto/20091002-3_0.C: Likewise. + * g++.dg/lto/20091004-2_0.C: Likewise. + * g++.dg/lto/20081123_0.C: Likewise. + * g++.dg/lto/20090313_0.C: Likewise. + * g++.dg/lto/20081109-1_0.C: Likewise. + * g++.dg/lto/20081219_0.C: Likewise. + * g++.dg/lto/20081204-1_0.C: Likewise. + * g++.dg/lto/20090302_0.C: Likewise. + * g++.dg/lto/20081119-1_0.C: Likewise. + * g++.dg/lto/20081118_0.C: Likewise. + * gcc.dg/lto/20091020-2_0.c: Likewise. + * gcc.dg/lto/20090210_0.c: Likewise. + * gcc.dg/lto/20081204-1_0.c: Likewise. + * gcc.dg/lto/20081224_0.c: Likewise. + * gcc.dg/lto/20090219_0.c: Likewise. + * gcc.dg/lto/20091014-1_0.c: Likewise. + * gcc.dg/lto/20091016-1_0.c: Likewise. + * gcc.dg/lto/20090206-2_0.c: Likewise. + * gcc.dg/lto/20090116_0.c: Likewise. + * gcc.dg/lto/20091013-1_0.c: Likewise. + * gcc.dg/lto/20091015-1_0.c: Likewise. + * gcc.dg/lto/20090126-2_0.c: Likewise. + +2011-03-31 Ian Lance Taylor + + * go.test/go-test.exp (go-set-goarch): Recognize MIPS ABIs. + +2011-03-31 Eric Botcazou + + * gnat.dg/opt16.adb: New test. + +2011-03-31 Jason Merrill + + * g++.dg/cpp0x/defaulted24.C: New. + +2011-03-31 Rainer Orth + + PR target/16292 + * gfortran.dg/g77/cabs.f: Only xfail execution on mips-sgi-irix6* + with -O0. + +2011-03-31 Eric Botcazou + + * g++.dg/other/i386-9.C: New test. + +2011-03-30 Rainer Orth + + * go.test/go-test.exp (go-set-goarch): Use sparc64 for 64-bit SPARC. + +2011-03-30 Jason Merrill + + * g++.dg/cpp0x/regress/error-recovery1.C: New. + + * g++.dg/cpp0x/regress/isnan.C: New. + + * g++.dg/cpp0x/initlist46.C: New. + +2011-03-30 Richard Sandiford + + PR target/47551 + * gcc.target/arm/neon-modes-2.c: New test. + +2011-03-30 Jakub Jelinek + + PR c/48305 + * gcc.c-torture/compile/pr48305.c: New test. + +2011-03-29 Jason Merrill + + * g++.dg/cpp0x/regress/value-dep1.C: New. + +2011-03-29 Steve Ellcey + + * gcc.dg/torture/pr47917.c: Use -std=gnu99 on HP-UX. + +2011-03-29 Ian Lance Taylor + + * go.test/go-test.exp: Handle the test lines used in several new + tests. + (errchk): Add opts parameter. Change all callers. Handle parens + in regexps. + +2011-03-29 Peter Bergner + Dominique d'Humieres + + * gcc.dg/stack-usage-1.c (SIZE): Provide proper values for __ppc64__ + and __APPLE__ && __PPC__ && __ALTIVEC__. + +2011-03-29 Jason Merrill + + * g++.dg/cpp0x/dependent1.C: New. + + * g++.dg/cpp0x/constexpr-48089.C: Adjust. + + * g++.dg/cpp0x/constexpr-memfn1.C: New. + + * g++.dg/cpp0x/constexpr-diag1.C: Adjust error locations. + +2011-03-29 Janus Weil + + PR fortran/48095 + * gfortran.dg/module_md5_1.f90: Modified MD5 sum. + * gfortran.dg/proc_ptr_comp_32.f90: New. + +2011-03-29 Thomas Koenig + + * gfortran.dg/function_optimize_1.f90: Add -Warray-temporaries, + check for corresponding warning. + +2011-03-28 Jason Merrill + + * g++.dg/cpp0x/rv-deduce2.C: New. + +2011-03-29 Jakub Jelinek + + PR debug/48203 + * gcc.dg/pr48203.c: New test. + +2011-03-28 Jeff Law + + * gcc.dg/tree-ssa/ssa-dom-thread-3.c: New test. + +2011-03-28 Peter Bergner + + * gcc.dg/stack-usage-1.c (SIZE): Provide proper values for __PPC64__ + and __PPC__ && __ALTIVEC__. + +2011-03-28 Dominique d'Humieres + + PR testsuite/48238 + * gcc.dg/debug/dwarf2/pr47939-1.c: Generalize scan-assembler regex. + * gcc.dg/debug/dwarf2/pr47939-2.c: Likewise. + * gcc.dg/debug/dwarf2/pr47939-3.c: Likewise. + * gcc.dg/debug/dwarf2/pr47939-4.c: Likewise. + +2011-03-28 Jason Merrill + + * g++.dg/cpp0x/initlist-array2.C: New. + + * g++.dg/cpp0x/initlist-array1.C: New. + + * g++.dg/cpp0x/constexpr-compound.C: New. + + * g++.dg/cpp0x/constexpr-using.C: New. + + * g++.dg/cpp0x/constexpr-noexcept.C: New. + +2011-03-28 H.J. Lu + + PR testsuite/48276 + * gcc.target/i386/pr47502-2.c: Add -fno-pic. + +2011-03-28 Eric Botcazou + + * gcc.dg/slp-1.c: New test. + +2011-03-27 H.J. Lu + + * gcc.target/i386/avx256-unaligned-load-1.c: New. + * gcc.target/i386/avx256-unaligned-load-2.c: Likewise. + * gcc.target/i386/avx256-unaligned-load-3.c: Likewise. + * gcc.target/i386/avx256-unaligned-load-4.c: Likewise. + * gcc.target/i386/avx256-unaligned-load-5.c: Likewise. + * gcc.target/i386/avx256-unaligned-load-6.c: Likewise. + * gcc.target/i386/avx256-unaligned-load-7.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-1.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-2.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-3.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-4.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-5.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-6.c: Likewise. + * gcc.target/i386/avx256-unaligned-store-7.c: Likewise. + +2011-03-27 Thomas Koenig + + PR fortran/47065 + * gfortran.dg/trim_optimize_5.f90: New test. + * gfortran.dg/trim_optimize_6.f90: New test. + +2011-03-27 Richard Sandiford + + PR target/38598 + * gcc.target/mips/madd-7.c: Remove -mlong32. + * gcc.target/mips/msub-7.c: Likewise. + +2011-03-27 Ira Rosen + + * gcc.dg/vect/vect-outer-5.c: Reduce the distance between data + accesses to preserve the meaning of the test for doubleword vectors. + * gcc.dg/vect/no-vfa-pr29145.c: Likewise. + * gcc.dg/vect/slp-3.c: Reduce the loop bound for the same reason. + +2011-03-26 Janus Weil + + PR fortran/48291 + * gfortran.dg/class_42.f03: New. + +2011-03-26 Ira Rosen + + * gcc.dg/vect/vect-cselim-1.c: Fail on targets that don't support + strided accesses. + +2011-03-26 Andrey Belevantsev + + PR rtl-optimization/48144 + * gcc.dg/pr48144.c: New test. + +2011-03-26 Eric Botcazou + + * gnat.dg/discr27.ad[sb]: New test. + +2011-03-26 Eric Botcazou + + * gnat.dg/limited_with2.ad[sb]: New test. + * gnat.dg/limited_with2_pkg1.ads: New helper. + * gnat.dg/limited_with2_pkg2.ads: Likewise. + +2011-03-26 Eric Botcazou + + * gnat.dg/opt15.adb: New test. + * gnat.dg/opt15_pkg.ad[sb]: New helper. + +2011-03-25 Tobias Burnus + + PR fortran/48174 + PR fortran/45304 + * gfortran.dg/ishft_4.f90: Adapt scan-tree-dump-times. + * gfortran.dg/leadz_trailz_3.f90: Ditto + +2011-03-25 Martin Jambor + + * gcc.c-torture/compile/pr44686.c: Do not explicitely specify -O2. + +2011-03-25 Jason Merrill + + * g++.dg/cpp0x/defaulted22.C: New. + * g++.dg/cpp0x/defaulted23.C: New. + * g++.dg/cpp0x/defaulted15.C: Adjust. + +2011-03-25 Jason Merrill + + * g++.dg/cpp0x/move1.C: New. + +2011-03-25 Ira Rosen + + PR target/48287 + * gcc.dg/vect/vect-cselim-1.c: Fail for vect_no_align. + +2011-03-25 Rainer Orth + + * gcc.dg/torture/pr47917.c: Add -D_XOPEN_SOURCE=500 to dg-options + for mips-sgi-irix6.5. + Replace snprintf prototype by . + +2011-03-25 Rainer Orth + + PR testsuite/48283 + * gcc.dg/graphite/block-3.c: Add dg-require-effective-target + run_expensive_tests. + * gcc.dg/graphite/block-4.c: Likewise. + * gcc.dg/graphite/block-7.c: Likewise. + * gcc.dg/graphite/block-8.c: Likewise. + +2011-03-25 Richard Guenther + + * g++.dg/tree-ssa/pr41186.C: Scan the appropriate FRE dump. + * g++.dg/tree-ssa/pr8781.C: Likewise. + * gcc.dg/ipa/ipa-pta-13.c: Likewise. + * gcc.dg/ipa/ipa-pta-3.c: Likewise. + * gcc.dg/ipa/ipa-pta-4.c: Likewise. + * gcc.dg/tree-ssa/20041122-1.c: Likewise. + * gcc.dg/tree-ssa/alias-18.c: Likewise. + * gcc.dg/tree-ssa/foldstring-1.c: Likewise. + * gcc.dg/tree-ssa/forwprop-10.c: Likewise. + * gcc.dg/tree-ssa/forwprop-9.c: Likewise. + * gcc.dg/tree-ssa/fre-vce-1.c: Likewise. + * gcc.dg/tree-ssa/loadpre6.c: Likewise. + * gcc.dg/tree-ssa/pr21574.c: Likewise. + * gcc.dg/tree-ssa/ssa-dom-cse-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-11.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-16.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-17.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-18.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-19.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-2.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-21.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-22.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-23.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-24.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-25.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-26.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-27.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-6.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-7.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise. + * gcc.dg/tree-ssa/ssa-pre-10.c: Likewise. + * gcc.dg/tree-ssa/ssa-pre-26.c: Likewise. + * gcc.dg/tree-ssa/ssa-pre-7.c: Likewise. + * gcc.dg/tree-ssa/ssa-pre-8.c: Likewise. + * gcc.dg/tree-ssa/ssa-pre-9.c: Likewise. + * gcc.dg/tree-ssa/ssa-sccvn-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-sccvn-2.c: Likewise. + * gcc.dg/tree-ssa/ssa-sccvn-3.c: Likewise. + * gcc.dg/tree-ssa/ssa-sccvn-4.c: Likewise. + * gcc.dg/tree-ssa/struct-aliasing-1.c: Likewise. + * gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise. + * c-c++-common/pr46562-2.c: Likewise. + * gfortran.dg/pr42108.f90: Likewise. + * gcc.dg/torture/pta-structcopy-1.c: Scan ealias dump, force + foo to be inlined even at -O1. + * gcc.dg/tree-ssa/ssa-dce-4.c: Disable FRE. + * gcc.dg/ipa/ipa-pta-14.c: Likewise. + * gcc.dg/tree-ssa/ssa-fre-1.c: Adjust. + * gcc.dg/matrix/matrix.exp: Disable FRE. + +2011-03-24 Jakub Jelinek + + PR debug/48204 + * gcc.dg/dfp/pr48204.c: New test. + +2011-03-24 Steve Ellcey + + PR target/48209 + * gcc.c-torture/execute/pr47917.c: Move this... + * gcc.dg/torture/pr47917.c: to here and add xfails. + +2011-03-24 Eric Botcazou + + * gnat.dg/array16.ad[sb]: New test. + * gnat.dg/array16.ads: New helper. + +2011-03-24 Eric Botcazou + + * gnat.dg/derived_type2.adb: New test. + +2011-03-24 Richard Guenther + + PR tree-optimization/48271 + * g++.dg/torture/pr48271.C: New testcase. + +2011-03-24 Eric Botcazou + + * gnat.dg/array15.ad[sb]: New test. + +2011-03-24 Uros Bizjak + + PR target/48237 + * gcc.target/i386/pr48237.c: New test. + +2011-03-24 Richard Guenther + + PR middle-end/48269 + * gcc.dg/builtin-object-size-10.c: New testcase. + +2011-03-24 Richard Guenther + + PR tree-optimization/46562 + * c-c++-common/pr46562-2.c: New testcase. + * c-c++-common/pr46562.c: Likewise. + +2011-03-24 Ira Rosen + + * gcc.dg/vect/vect-cselim-1.c: New test. + * gcc.dg/vect/vect-cselim-2.c: New test. + +2011-03-23 Chung-Lin Tang + + * gcc.target/arm/pr46934.c: New. + +2011-03-23 Ian Lance Taylor + + * go.test/go-test.exp (errchk): Ignore lines containing ////. + +2011-03-23 Richard Guenther + + * gcc.dg/struct: Remove directory and contents. + +2011-03-23 Rainer Orth + + PR testsuite/48251 + * g++.dg/guality/guality.exp: Disable on alpha*-dec-osf*. + +2011-03-23 Eric Botcazou + + * gnat.dg/discr26.ad[sb]: New test. + * gnat.dg/discr26_pkg.ads: New helper. + +2011-03-23 Richard Sandiford + + PR target/47553 + * gcc.target/arm/neon-vld-1.c: New test. + +2011-03-23 Eric Botcazou + + * gnat.dg/array14.ad[sb]: New test. + * gnat.dg/array14_pkg.ads: New helper. + +2011-03-22 Joseph Myers + + * gcc.c-torture/execute/920501-8.x: Remove. + * gcc.c-torture/execute/930513-1.x: Remove. + * gcc.c-torture/execute/960312-1.x: Remove. + * gcc.c-torture/compile/20000804-1.c, + gcc.c-torture/compile/20001205-1.c, + gcc.c-torture/compile/20001226-1.c, + gcc.c-torture/compile/20010518-2.c, + gcc.c-torture/compile/20020312-1.c, + gcc.c-torture/compile/20020604-1.c, + gcc.c-torture/compile/920501-12.c, + gcc.c-torture/compile/920501-4.c, + gcc.c-torture/compile/920520-1.c, + gcc.c-torture/compile/980506-1.c, + gcc.c-torture/execute/980709-1.x, + gcc.c-torture/execute/990826-0.x: Don't XFAIL or use special + options for m68hc11. + * gcc.dg/cpp/assert4.c: Don't handle ARC. + * gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c: Don't XFAIL for arc or + m68hc11. + +2011-03-22 Nick Clifton + + * lib/target-supports.exp (check_profiling_available): Add MN10300 + to the list of targets that do not support profiling. Restore + alpha sorting to this list. + +2011-03-22 Michael Meissner + + * gcc.dg/torture/vector-1.c: On powerpc add -fabi=altivec to avoid + failure on 32-bit systems. + * gcc.dg/torture/vector-2.c: Ditto. + +2011-03-22 Richard Guenther + + PR tree-optimization/48228 + * gcc.dg/Wstrict-overflow-23.c: New testcase. + +2011-03-21 Michael Meissner + + * gcc.dg/torture/va-arg-25.c: Add -mabi=altivec -maltivec for + powerpc. + + PR target/48226 + * gcc.target/powerpc/pr48226.c: New file. + +2011-03-21 Jack Howarth + + * lib/prune.exp (prune_gcc_output): Prune "could not create + compact unwind for" warnings. + +2011-03-20 Jakub Jelinek + + PR c/42544 + PR c/48197 + * gcc.c-torture/execute/pr42544.c: New test. + * gcc.c-torture/execute/pr48197.c: New test. + +2011-03-21 Michael Meissner + + PR preprocessor/48192 + * gcc.target/powerpc/pr48192.c: New file. + + PR target/48053 + * gcc.target/powerpc/pr48053-3.c: New file, add test case for + split problem of 0 being loaded in a VSX register. + +2011-03-21 Richard Guenther + + PR c/47939 + * gcc.dg/debug/dwarf2/pr47939-1.c: New testcase. + * gcc.dg/debug/dwarf2/pr47939-2.c: Likewise. + * gcc.dg/debug/dwarf2/pr47939-3.c: Likewise. + * gcc.dg/debug/dwarf2/pr47939-4.c: Likewise. + +2011-03-21 Jakub Jelinek + + PR target/48213 + * gcc.dg/pr48213.c: New test. + +2011-03-21 Kai Tietz + + PR target/12171 + * g++.dg/plugin/attribute_plugin.c: Adjust test. + +2011-03-21 Chung-Lin Tang + + * gcc.target/arm/xor-and.c: New. + +2010-03-21 Thomas Koenig + + PR fortran/22572 + * gfortran.dg/function_optimize_1.f90: New test. + * gfortran.dg/function_optimize_2.f90: New test. + +2011-03-20 H.J. Lu + + PR rtl-optimization/47502 + * gcc.target/i386/pr47502-1.c: New. + * gcc.target/i386/pr47502-2.c: Likewise. + +2011-03-20 Jakub Jelinek + + PR rtl-optimization/48156 + * gcc.dg/pr48156.c: New test. + +2011-03-19 Francois-Xavier Coudert + + PR libfortran/47439 + * gfortran.dg/scratch_1.f90: Adjust test. + +2011-03-19 Francois-Xavier Coudert + + PR libfortran/47439 + * gfortran.dg/scratch_1.f90: New test. + +2011-03-18 Joseph Myers + + * gcc.dg/c1x-typedef-1.c: Expect errors for redefinitions of + variably modified typedefs. + * gcc.dg/c1x-typedef-2.c: Remove. + +2011-03-18 Joseph Myers + + * gcc.dg/c1x-anon-struct-1.c: Don't test use of typedefs. + * gcc.dg/c1x-anon-struct-3.c: New test. + * gcc.dg/anon-struct-11.c: Update. + +2011-03-18 Rainer Orth + + * gcc.dg/vect/slp-multitypes-2.c: Replace dg-do run with + dg-xfail-run-if. + Only xfail with gas. + +2011-03-18 Jason Merrill + + * g++.dg/template/fn-ptr1.C: New. + + * g++.dg/overload/volatile1.C: New. + + * g++.dg/opt/pr23372.C: New. + + * g++.dg/ext/attrib32.C: Expect errors on the two-names case. + +2011-03-18 Rainer Orth + + PR middle-end/47405 + * gcc.dg/torture/20090618-1.c: Skip on mips-sgi-irix*. + +2011-03-18 Chung-Lin Tang + + * gcc.target/arm/unsigned-extend-1.c: New. + +2011-03-18 Jakub Jelinek + + PR bootstrap/48161 + * gcc.c-torture/compile/pr48161.c: New test. + +2011-03-17 H.J. Lu + + PR middle-end/47725 + * gcc.dg/torture/pr47725.c: New. + +2011-03-17 Jason Merrill + + * g++.dg/cpp0x/constexpr-overflow2.C: New. + * g++.dg/cpp0x/constexpr-data2.C: Remove FIXME. + +2011-03-17 Eric Botcazou + + * gnat.dg/specs/elab2.ads: New test. + * gnat.dg/specs/elab2_pkg.ads: New helper. + +2011-03-17 Jason Merrill + + * g++.dg/cpp0x/decltype-1212.C: New. + * g++.dg/cpp0x/rv-return.C: Adjust expected type. + +2011-03-17 Jason Merrill + + * g++.dg/parse/memfnquals1.C: New. + +2011-03-17 Richard Guenther + + PR middle-end/48134 + * gcc.dg/pr48134.c: New testcase. + +2011-03-17 Richard Guenther + + PR middle-end/48165 + * g++.dg/torture/pr48165.C: New testcase. + +2011-03-17 Jakub Jelinek + + PR rtl-optimization/48141 + * gcc.dg/pr48141.c: New test. + +2011-03-16 Jason Merrill + + * g++.dg/cpp0x/constexpr-48089.C: New. + + * g++.dg/cpp0x/constexpr-abi1.C: New. + + * g++.dg/cpp0x/constexpr-46336.C: New. + * g++.dg/parse/friend5.C: Adjust expected errors. + + * g++.dg/cpp0x/constexpr-47570.C: New. + +2011-03-16 Dodji Seketeli + + PR debug/47510 + * ++.dg/debug/dwarf2/typedef6.C: New test. + +2011-03-16 Jason Merrill + + * g++.dg/cpp0x/elision2.C: New. + + * g++.dg/cpp0x/constexpr-array3.C: New. + +2011-03-16 Jason Merrill + + * g++.dg/cpp0x/sfinae6.C: New. + * g++.dg/cpp0x/initlist38.C: Adjust expected error. + * g++.dg/cpp0x/pr45908.C: Likewise. + * g++.dg/cpp0x/sfinae6.C: Likewise. + * g++.old-deja/g++.jason/conversion11.C: Likewise. + * g++.old-deja/g++.law/arg11.C: Likewise. + +2011-03-16 Jason Merrill + + * g++.dg/template/incomplete6.C: New. + +2011-03-16 Jeff Law + + * gcc.dg/tree-ssa/vrp55.c: New test. + +2011-03-16 Jason Merrill + + * g++.dg/cpp0x/auto22.C: New. + +2011-03-16 Richard Guenther + + * gcc.dg/guality/vla-1.c (main): Use result of f1 to avoid + optimizing it away if promoted to const. + +2011-03-16 Richard Guenther + + PR tree-optimization/48149 + * gcc.dg/fold-complex-1.c: New testcase. + +2011-03-16 Richard Guenther + + PR testsuite/48147 + * gcc.dg/guality/pr45882.c: Really make sure no inlining + or cloning happens. + +2011-03-16 Richard Guenther + + PR tree-optimization/26134 + * gcc.dg/tree-ssa/complex-6.c: New testcase. + +2011-03-16 Richard Guenther + + PR tree-optimization/48146 + * gcc.dg/torture/pr48146.c: New testcase. + +2011-03-16 Richard Guenther + + * gcc.dg/tree-ssa/pr14814.c: Adjust. + * gcc.dg/tree-ssa/ssa-ccp-19.c: Likewise. + +2011-03-16 Jakub Jelinek + + PR middle-end/48136 + * gcc.c-torture/compile/pr48136.c: New test. + + * g++.dg/debug/dwarf2/icf.C: Adjust for -fenable-icf-debug removal. + + PR debug/45882 + * gcc.dg/guality/pr45882.c: New test. + +2011-03-15 Jason Merrill + + * g++.dg/cpp0x/constexpr-recursion.C: New. + + * g++.dg/cpp0x/implicit11.C: New. + +2011-03-15 Rodrigo Rivas Costa + + * g++.dg/cpp0x/constexpr-attribute.C: New. + +2011-03-15 Manuel López-Ibáñez + + * g++.dg/parse/pr34758.C: New. + +2011-03-15 Xinliang David Li + + PR c/47837 + * gcc.dg/uninit-pred-7_d.c: New test. + * gcc.dg/uninit-pred-8_d.c: New test. + +2011-03-15 Ramana Radhakrishnan + + PR target/46788 + * gcc.target/arm/pr46788.c: New. + +2011-03-15 Richard Guenther + + PR middle-end/47650 + * gfortran.dg/c_f_pointer_tests_3.f90: Adjust. + * gfortran.dg/ishft_4.f90: Likewise. + * gfortran.dg/leadz_trailz_3.f90: Likewise. + +2011-03-15 Richard Guenther + + PR tree-optimization/13954 + * g++.dg/tree-ssa/pr13954.C: New testcase. + +2011-03-15 Richard Guenther + + PR tree-optimization/48037 + * gcc.target/i386/pr48037-1.c: New testcase. + +2011-03-15 Richard Guenther + + PR tree-optimization/41490 + * gcc.dg/tree-ssa/ssa-sink-6.c: New testcase. + * gcc.dg/tree-ssa/ssa-sink-7.c: Likewise. + * gcc.dg/tree-ssa/ssa-sink-8.c: Likewise. + * gcc.dg/tree-ssa/ssa-sink-9.c: Likewise. + * g++.dg/tree-ssa/pr33604.C: Adjust. + +2011-03-14 Jakub Jelinek + + PR middle-end/47917 + * gcc.c-torture/execute/pr47917.c: New test. + * gcc.dg/pr47917.c: New test. + + PR middle-end/38878 + * gcc.dg/tree-ssa/foldaddr-1.c: Remove xfail. + +2011-03-14 Uros Bizjak + + * gcc.target/i386/sse4_1-floor-vec.c: New test. + * gcc.target/i386/sse4_1-ceil-vec.c: Ditto. + * gcc.target/i386/sse4_1-trunc-vec.c: Ditto. + * gcc-target/i386/sse4_1-rint-vec.c: Ditto. + * gcc.target/i386/sse4_1-floorf-vec.c: Ditto. + * gcc.target/i386/sse4_1-ceilf-vec.c: Ditto. + * gcc.target/i386/sse4_1-truncf-vec.c: Ditto. + * gcc.target/i386/sse4_1-rintf-vec.c: Ditto. + * gcc.target/i386/avx-floor-vec.c: Ditto. + * gcc.target/i386/avx-ceil-vec.c: Ditto. + * gcc.target/i386/avx-trunc-vec.c: Ditto. + * gcc.target/i386/avx-rint-vec.c: Ditto. + * gcc.target/i386/avx-floorf-vec.c: Ditto. + * gcc.target/i386/avx-ceilf-vec.c: Ditto. + * gcc.target/i386/avx-truncf-vec.c: Ditto. + * gcc.target/i386/avx-rintf-vec.c: Ditto. + +2011-03-14 Tom Tromey + + * gcc.dg/Woverlength-strings-pedantic-c90-asm.c: New file. + * gcc.dg/Woverlength-strings-pedantic-c89-asm.c: New file. + * gcc.dg/Woverlength-strings-pedantic-c99-asm.c: New file. + +2011-03-14 Tom Tromey + + * gcc.dg/Woverlength-strings-pedantic-c89-ext.c: New file. + * gcc.dg/Woverlength-strings-pedantic-c90-ext.c: New file. + * gcc.dg/Woverlength-strings-pedantic-c99-ext.c: New file. + +2011-03-14 H.J. Lu + + * gcc.target/i386/builtin-copysign.c: Remove __LP64__ check. + +2011-03-14 Richard Sandiford + + PR rtl-optimization/47166 + * gcc.c-torture/execute/postmod-1.c: New test. + +2011-03-14 Richard Guenther + + PR middle-end/48098 + * gcc.dg/torture/pr48098.c: New testcase. + +2011-03-12 Peter Bergner + + PR target/48053 + * gcc.target/powerpc/pr48053-1.c: New test. + * gcc.target/powerpc/pr48053-2.c: Likewise. + +2011-03-12 Thomas Koenig + + PR libfortran/48066 + * gfortran.dg/intrinsic_ifunction_2.f90: Correct PR number. + +2011-03-12 Thomas Koenig + + PR libfortran/48066 + * gfortran.dg/intrinsic_ifunction_2.f90: New test case. + +2011-03-12 Janus Weil + + PR fortran/48059 + * gfortran.dg/class_41.f03: New. + +2011-03-11 Dodji Seketeli + + * g++.dg/conversion/cast3.C: New test. + +2011-03-11 Jason Merrill + + * g++.dg/template/error45.C: New. + + * g++.dg/parse/no-type-defn1.C: New. + + * g++.dg/ext/attrib40.C: New. + + * g++.dg/cpp0x/regress/array1.C: New. + +2011-03-11 Richard Guenther + + PR tree-optimization/48067 + * gcc.dg/pr48067.c: New testcase. + +2011-03-11 Richard Guenther + + PR lto/48073 + * g++.dg/lto/20110311-1_0.C: New testcase. + +2011-03-11 Jakub Jelinek + + PR c++/48035 + * g++.dg/inherit/virtual8.C: New test. + + PR middle-end/48044 + * gcc.dg/torture/pr48044.c: New test. + +2011-03-11 Janus Weil + + PR fortran/47768 + * gfortran.dg/proc_ptr_comp_31.f90: New. + +2011-03-11 Richard Guenther + + PR tree-optimization/47278 + * gcc.dg/torture/pr47278-1.c: New testcase. + * gcc.dg/torture/pr47278-2.c: Likewise. + +2011-03-11 Jakub Jelinek + + PR tree-optimization/48063 + * gcc.dg/torture/pr48063.c: New test. + +2011-03-10 Jason Merrill + + * g++.dg/template/array22.C: New. + + * g++.dg/cpp0x/syntax-err1.C: New. + * g++.dg/parse/error36.C: Adjust expected errors. + * g++.old-deja/g++.pt/ctor2.C: Likewise. + * g++.old-deja/g++.pt/typename3.C: Likewise. + * g++.old-deja/g++.pt/typename4.C: Likewise. + * g++.old-deja/g++.pt/typename6.C: Likewise. + +2011-03-09 Jason Merrill + + * g++.dg/template/nontype22.C: New. + +2011-03-09 Martin Jambor + + PR tree-optimization/47714 + * g++.dg/torture/pr47714.C: New test. + +2011-03-08 Michael Meissner + + PR target/47755 + * gcc.target/powerpc/pr47755-2.c: New file. + +2011-03-08 Jakub Jelinek + + * go.test/go-test.exp: For goroutines.go test if GCCGO_RUN_ALL_TESTS + is not set in the environment, pass 64 as first argument when not + running expensive tests or pass max($[`ulimit -u`/4], 10000) on + native where ulimit -u is supported. + +2011-03-08 Andreas Krebbel + + * gcc.dg/optimize-bswapsi-1.c: Use -march=z900 on s390. + +2011-03-08 Jason Merrill + + * g++.dg/template/nontype21.C: New. + + * g++.dg/template/anon5.C: New. + +2011-03-08 Jakub Jelinek + + PR debug/47881 + * gcc.dg/pr47881.c: New test. + +2011-03-08 Dodji Seketeli + + PR c++/47957 + * g++.dg/lookup/template3.C: New test. + +2011-03-08 Kai Tietz + + * g++.dg/tree-ssa/pr21082.C: Use __INTPTR_TYPE__ instead of + 'long' type. + +2011-03-08 Mikael Pettersson + + PR testsuite/47954 + * gcc.dg/tree-ssa/ssa-ccp-33.c: Use __alignof__ not + sizeof to compute alignment. + +2011-03-08 Jakub Jelinek + + PR tree-optimization/48022 + * gcc.dg/pr48022-1.c: New test. + * gcc.dg/pr48022-2.c: New test. + +2011-03-07 Jason Merrill + + * g++.dg/template/nontype20.C: New. + * g++.dg/init/member1.C: Adjust expected errors. + * g++.dg/parse/constant4.C: Likewise. + * g++.dg/template/qualified-id3.C: Likewise. + * g++.old-deja/g++.pt/crash10.C: Likewise. + + * g++.dg/cpp0x/regress/non-const1.C: New. + +2011-03-07 Jakub Jelinek + + PR debug/47991 + * gcc.dg/pr47991.c: New test. + +2011-03-07 Jason Merrill + + * g++.dg/abi/mangle46.C: New. + +2011-03-07 Pat Haugen + + PR target/47862 + * gcc.target/powerpc/pr47862.c: New. + +2011-03-07 Jack Howarth + + PR target/45413 + * gcc.target/i386/combine-mul.c: Require nonpic. + +2011-03-07 Paul Wögerer + Nathan Froyd + + * gcc.dg/20001117-1.c: Abort on NULL call_sites. + +2011-03-06 Mark Mitchell + + * README.QMTEST: Remove. + +2011-03-06 Paul Thomas + Jerry DeLisle + + PR fortran/47850 + * gfortran.dg/array_constructor_37.f90 : New test. + +2011-03-05 Jason Merrill + + * g++.dg/abi/mangle39.C: ABI v5, not 6. + * g++.dg/abi/mangle45.C: Likewise. + * g++.dg/cpp0x/trailing1.C: Likewise. + +2011-03-05 John David Anglin + + * gcc.dg/torture/pr47975.c: Add -fno-common option on hppa*-*-hpux*. + +2011-03-05 Jakub Jelinek + + PR rtl-optimization/47899 + * gcc.dg/pr47899.c: New test. + + * gcc.dg/torture/pr47968.c: Ignore warnings. + + PR tree-optimization/47967 + * gcc.c-torture/compile/pr47967.c: New test. + +2011-03-04 Nicola Pero + + * objc.dg/property/property-encoding-1.m: Tidied up testcase. + * obj-c++.dg/property/property-encoding-1.mm: Likewise. + +2011-03-04 Nicola Pero + + * objc.dg/gnu-api-2-property.m: Added tests for property_getName() + and property_getAttributes() if __OBJC2__. + * obj-c++.dg/gnu-api-2-property.mm: Likewise. + * objc.dg/property/property-encoding-1.m: New. + * obj-c++.dg/property/property-encoding-1.mm: New. + +2011-03-04 Jason Merrill + + * g++.dg/template/pseudodtor6.C: New. + + * g++.dg/inherit/covariant19.C: New. + +2011-03-04 Richard Guenther + + PR middle-end/47968 + * gcc.dg/torture/pr47968.c: New testcase. + +2011-03-04 Richard Guenther + + PR middle-end/47975 + * gcc.dg/torture/pr47975.c: New testcase. + +2011-03-03 Paolo Carlini + + PR c++/47974 + * g++.dg/template/crash106.C: New. + +2011-03-03 Jakub Jelinek + + PR c/47963 + * gcc.dg/gomp/pr47963.c: New test. + * g++.dg/gomp/pr47963.C: New test. + +2011-03-02 Jason Merrill + + * g++.dg/cpp0x/regress/condition1.C: New. + + * g++.dg/cpp0x/constexpr-ctor9.C: New. + +2011-03-01 Jason Merrill + + * g++.dg/cpp0x/lambda/lambda-98.C: New. + + * g++.dg/cpp0x/constexpr-non-const-arg2.C: New. + +2011-03-02 Richard Sandiford + + PR rtl-optimization/47925 + * gcc.c-torture/execute/pr47925.c: New test. + +2011-03-01 Jason Merrill + + * g++.dg/cpp0x/decltype25.C: New. + + * g++.dg/cpp0x/regress/bitfield-err1.C: New. + +2011-03-01 Richard Guenther + + PR tree-optimization/47890 + * gcc.dg/torture/pr47890.c: New testcase. + +2011-03-01 Richard Guenther + + PR lto/47924 + * gcc.dg/lto/pr47924_0.c: New testcase. + +2011-03-01 Richard Guenther + + PR lto/46911 + * gfortran.dg/lto/pr46911_0.f: New testcase. + +2011-02-28 Jerry DeLisle + + PR libgfortran/47933 + * gfortran.dg/fmt_fw_d.f90: Fix test by adding dg-options to avoid + compile errors from older code form. + +2011-02-28 Jerry DeLisle + + PR libgfortran/47567 + * gfortran.dg/fmt_fw_d.f90: New test. + +2011-02-28 Jason Merrill + + * g++.dg/inherit/covariant18.C: New. + +2011-02-28 Jakub Jelinek + + PR middle-end/47893 + * gcc.dg/pr47893.c: New test. + +2011-02-28 Nicola Pero + + * objc.dg/gnu-api-2-sel.m: Test that sel_getTypedSelector return + NULL in case of a selector with conflicting types. + * obj-c++.dg/gnu-api-2-sel.mm: Same change. + +2011-02-28 Kazu Hirata + + * gcc.target/arm/vfp-ldmdbd.c, gcc.target/arm/vfp-ldmdbs.c, + gcc.target/arm/vfp-ldmiad.c, gcc.target/arm/vfp-ldmias.c, + gcc.target/arm/vfp-stmdbd.c, gcc.target/arm/vfp-stmdbs.c, + gcc.target/arm/vfp-stmiad.c, gcc.target/arm/vfp-stmias.c: New. + +2011-02-28 Jason Merrill + + PR c++/47906 + * g++.dg/cpp0x/trailing1.C: Specify -fabi-version=6. + +2011-02-27 Jerry DeLisle + + PR libgfortran/47778 + * gfortran.dg/namelist_71.f90: New test. + +2011-02-27 Jason Merrill + + PR c++/47906 + * g++.dg/abi/mangle39.C: Specify -fabi-version=6. + * g++.dg/abi/mangle45.C: Specify -fabi-version=6. + +2011-02-27 Paolo Carlini + + PR c++/46466 + * g++.dg/cpp0x/constexpr-ctor8.C: New. + +2011-02-27 Jakub Jelinek + + PR fortran/47886 + * gfortran.dg/gomp/task-1.f90: Removed. + +2011-02-26 Jason Merrill + + * g++.dg/template/this-targ1.C: New. + + * g++.dg/cpp0x/regress/template-const1.C: New. + * g++.dg/cpp0x/regress/template-function1.C: Adjust. + * g++.dg/template/function1.C: Adjust. + * g++.dg/cpp0x/regress/debug-debug7.C: Adjust. + * g++.dg/debug/debug7.C: Adjust. + +2011-02-26 Tobias Burnus + + PR fortran/47886 + * gfortran.dg/gomp/task-1.f90: New. + +2011-02-25 Jie Zhang + + * gcc.target/arm/neon-thumb2-move.c: Add + dg-require-effective-target arm_thumb2_ok. + +2011-02-24 Jason Merrill + + * g++.dg/parse/constant1.C: Specify C++98 mode. + * g++.dg/parse/constant5.C: Likewise. + * g++.dg/parse/error2.C: Likewise. + * g++.dg/parse/semicolon3.C: Likewise. + * g++.dg/template/crash14.C: Likewise. + * g++.dg/template/local4.C: Likewise. + * g++.dg/template/nontype3.C: Likewise. + * g++.dg/parse/crash31.C: Adjust expected errors. + * g++.dg/template/function1.C: Likewise. + * g++.dg/template/ref3.C: Likewise. + * g++.dg/template/static9.C: Likewise. + * g++.old-deja/g++.pt/crash41.C: Instantiate template. + + * g++.dg/cpp0x/constexpr-array-tparm.C: New. + * g++.dg/cpp0x/regress/parse-ambig5.C: Copy from parse/ambig5.C. + * g++.dg/cpp0x/regress/debug-debug7.C: Copy from debug/debug7.C. + * g++.dg/cpp0x/variadic20.C: Adjust expected errors. + * g++.dg/cpp0x/regress/template-function1.C: Likewise. + +2011-02-24 Jakub Jelinek + + PR fortran/47878 + * gfortran.dg/pr47878.f90: New test. + +2011-02-24 Richard Guenther + + PR testsuite/47801 + * gcc.dg/guality/pr41353-1.c (vari): Mark as used. + * gcc.dg/guality/pr41353-2.c (vari): Likewise. + +2011-02-24 Richard Guenther + + PR fortran/47839 + * gfortran.dg/lto/pr47839_0.f90: New testcase. + * gfortran.dg/lto/pr47839_1.f90: Likewise. + +2011-02-23 Jerry DeLisle + + PR libgfortran/47567 + * gfortran.dg/fmt_f0_1.f90: Update test. + +2011-02-23 Jason Merrill + + * g++.dg/abi/mangle39.C: Adjust parm mangling. + * g++.dg/abi/mangle45.C: New. + + * g++.dg/cpp0x/trailing1.C: Mangle decltype. + * g++.dg/template/canon-type-9.C: Match use of decltype + between declaration and definition. + * g++.dg/template/canon-type-12.C: Likewise. + +2011-02-23 Mikael Morin + + PR fortran/40850 + * gfortran.dg/nested_allocatables_1.f90: New. + +2011-02-23 Nathan Froyd + + PR c++/46868 + * g++.dg/pr46868.C: New test. + * g++.dg/parse/parameter-declaration-1.C: Adjust. + * g++.dg/parse/error14.C: Adjust. + +2011-02-23 Richard Guenther + + PR tree-optimization/47838 + * gcc.dg/tree-ssa/foldconst-2.c: Scan tree-ch dump. + +2011-02-23 Uros Bizjak + + * g++.dg/other/pr47218.C: Fix dg-options. Cleanup saved temps. + +2011-02-23 Uros Bizjak + + * gfortran.dg/allocate_deferred_char_scalar_1.f03: Fix dg-do syntax. + * gfortran.dg/count_init_expr.f03: Ditto. + * gfortran.dg/gomp/pr43711.f90: Ditto. + * gcc.dg/struct-parse-2.c: Ditto. + * gcc.dg/parse-error-3.c: Ditto. + * gcc.dg/Wlogical-op-1.c: Ditto. + * gcc.dg/Walways-true-1.c: Ditto. + * gcc.dg/pr24225.c: Ditto. + * gcc.dg/Walways-true-2.c: Ditto. + * gcc.dg/tree-ssa/foldcast-1.c: Ditto. + * gcc.dg/tree-ssa/struct-aliasing-1.c: Ditto. + * gcc.dg/tree-ssa/struct-aliasing-2.c: Ditto. + * g++.dg/overload/defarg4.C: Ditto. + * g++.dg/inherit/covariant16.C: Ditto. + * g++.dg/inherit/virtual7.C: Ditto. + * g++.dg/template/canon-type-9.C: Ditto. + * g++.dg/template/access19.C: Ditto. + * g++.dg/template/call7.C: Ditto. + * g++.dg/template/canon-type-2.C: Ditto. + * g++.dg/template/init7.C: Ditto. + * g++.dg/template/sizeof-template-argument.C: Ditto. + * g++.dg/template/const3.C: Ditto. + * g++.dg/template/sfinae26.C: Ditto. + * g++.dg/template/sfinae26.C: Ditto. + * g++.dg/template/canon-type-11.C: Ditto. + * g++.dg/template/union2.C: Ditto. + * g++.dg/template/canon-type-3.C: Ditto. + * g++.dg/template/canon-type-1.C: Ditto. + * g++.dg/template/canon-type-5.C: Ditto. + * g++.dg/template/canon-type-7.C: Ditto. + * g++.dg/template/canon-type-10.C: Ditto. + * g++.dg/template/spec36.C: Ditto. + * g++.dg/template/typedef38.C: Ditto. + * g++.dg/template/canon-type-4.C: Ditto. + * g++.dg/template/canon-type-6.C: Ditto. + * g++.dg/template/canon-type-13.C: Ditto. + * g++.dg/template/instantiate9.C: Ditto. + * g++.dg/template/ttp22.C: Ditto. + * g++.dg/warn/Wreturn-type-6.C: Ditto. + * g++.dg/warn/Walways-true-1.C: Ditto. + * g++.dg/warn/Wlogical-op-1.C: Ditto. + * g++.dg/warn/Walways-true-2.C: Ditto. + * g++.dg/conversion/op4.C: Ditto. + * g++.dg/opt/pr19650.C: Ditto. + * g++.dg/lookup/friend11.C: Ditto. + * g++.dg/other/default2.C: Ditto. + * g++.dg/other/default3.C: Ditto. + * g++.dg/other/dtor2.C: Ditto. + * g++.dg/other/friend5.C: Ditto. + * g++.dg/other/default5.C: Ditto. + * g++.dg/init/brace6.C: Ditto. + * g++.dg/init/aggr5.C: Ditto. + * g++.dg/init/error2.C: Ditto. + * g++.dg/expr/bound-mem-fun.C: Ditto. + * g++.dg/expr/cond6.C: Ditto. + * g++.dg/expr/stmt-expr-1.C: Ditto. + * g++.dg/cpp0x/constexpr-object2.C: Ditto. + * g++.dg/cpp0x/constexpr-data1.C: Ditto. + * g++.dg/cpp0x/constexpr-function2.C: Ditto. + * g++.dg/cpp0x/bracket1.C: Ditto. + * g++.dg/cpp0x/variadic-mem-fn.C: Ditto. + * g++.dg/cpp0x/pr38646.C: Ditto. + * g++.dg/cpp0x/variadic73.C: Ditto. + * g++.dg/cpp0x/constexpr-function1.C: Ditto. + * g++.dg/cpp0x/bracket4.C: Ditto. + * g++.dg/cpp0x/decltype4.C: Ditto. + * g++.dg/cpp0x/constexpr-data2.C: Ditto. + * g++.dg/cpp0x/constexpr-object1.C: Ditto. + * g++.dg/cpp0x/variadic-crash2.C: Ditto. + * g++.dg/cpp0x/variadic-new2.C: Ditto. + * g++.dg/cpp0x/decltype2.C: Ditto. + * g++.dg/cpp0x/decltype1.C: Ditto. + * g++.dg/cpp0x/bracket2.C: Ditto. + * g++.dg/cpp0x/decltype5.C: Ditto. + * g++.dg/cpp0x/constexpr-function3.C: Ditto. + * g++.dg/cpp0x/variadic70.C: Ditto. + * g++.dg/cpp0x/decltype6.C: Ditto. + * g++.dg/cpp0x/rvo.C: Ditto. + * g++.dg/cpp0x/vt-40092.C: Ditto. + * g++.dg/cpp0x/variadic-new.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-pass.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-mixed.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-nested.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-recursive.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-copy.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-non-const.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-ref-default.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-deduce.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-copy-default.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-nop.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-capture-const-ref.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-ref.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-const.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-mutable.C: Ditto. + * g++.dg/cpp0x/lambda/lambda-in-class.C: Ditto. + * g++.dg/cpp0x/pr39639.C: Ditto. + * g++.dg/cpp0x/decltype3.C: Ditto. + * g++.dg/cpp0x/variadic68.C: Ditto. + * g++.dg/cpp0x/variadic-function.C: Ditto. + * g++.dg/cpp0x/constexpr-ex1.C: Ditto. + * g++.dg/cpp0x/variadic-bind.C: Ditto. + * g++.dg/cpp0x/variadic-tuple.C: Ditto. + * g++.dg/cpp0x/constexpr-ex2.C: Ditto. + * g++.dg/parse/crash35.C: Ditto. + * g++.dg/parse/crash40.C: Ditto. + * g++.dg/parse/defarg12.C: Ditto. + * g++.dg/parse/crash34.C: Ditto. + * g++.dg/parse/constructor3.C: Ditto. + * g++.dg/parse/template23.C: Ditto. + * g++.dg/parse/crash56.C: Ditto. + * g++.dg/parse/dtor13.C: Ditto. + * g++.dg/parse/error33.C: Ditto. + * g++.dg/parse/ctor9.C: Ditto. + * g++.dg/parse/error32.C: Ditto. + * g++.dg/parse/error37.C: Ditto. + * g++.dg/parse/bitfield3.C: Ditto. + * g++.dg/parse/struct-4.C: Ditto. + * g++.dg/ext/has_trivial_copy.C: Ditto. + * g++.dg/ext/is_polymorphic.C: Ditto. + * g++.dg/ext/has_nothrow_copy_odr.C: Ditto. + * g++.dg/ext/has_nothrow_copy-4.C: Ditto. + * g++.dg/ext/has_nothrow_assign.C: Ditto. + * g++.dg/ext/is_union.C: Ditto. + * g++.dg/ext/has_nothrow_copy-1.C: Ditto. + * g++.dg/ext/is_pod.C: Ditto. + * g++.dg/ext/has_virtual_destructor.C: Ditto. + * g++.dg/ext/has_trivial_constructor.C: Ditto. + * g++.dg/ext/has_nothrow_copy-3.C: Ditto. + * g++.dg/ext/has_nothrow_copy-5.C: Ditto. + * g++.dg/ext/has_trivial_destructor-1.C: Ditto. + * g++.dg/ext/has_nothrow_copy-6.C: Ditto. + * g++.dg/ext/is_abstract.C: Ditto. + * g++.dg/ext/has_trivial_assign.C: Ditto. + * g++.dg/ext/is_class.C: Ditto. + * g++.dg/ext/has_nothrow_assign_odr.C: Ditto. + * g++.dg/ext/has_nothrow_copy-7.C: Ditto. + * g++.dg/ext/is_base_of.C: Ditto. + * g++.dg/ext/has_nothrow_copy-2.C: Ditto. + * g++.dg/ext/has_nothrow_constructor.C: Ditto. + * g++.dg/ext/is_empty.C: Ditto. + * g++.dg/ext/is_enum.C: Ditto. + * g++.dg/ext/has_nothrow_constructor_odr.C: Ditto. + * gnat.dg/opt11.adb: Ditto. + * obj-c++.dg/pr45735.mm: Ditto. + * obj-c++.dg/pr24393.mm: Ditto. + * obj-c++.dg/exceptions-2.mm: Ditto. + * objc.dg/pr45735.m: Ditto. + * objc.dg/pr24393.m: Ditto. + +2011-02-23 Nicola Pero + + * objc.dg/attributes/objc-exception-1.m: New. + +2011-02-23 Jie Zhang + + * gcc.dg/cpp/include7.c: New test. + +2011-02-22 Paolo Carlini + + PR c++/47242 + * g++.dg/cpp0x/lambda/lambda-ice4.C: New. + +2011-02-23 Jie Zhang + + PR rtl-optimization/47763 + * gcc.dg/pr47763.c: New test. + +2011-02-22 Paul Thomas + + PR fortran/45743 + * gfortran.dg/whole_file_32.f90 : New test. + +2011-02-22 Dodji Seketeli + + PR c++/47666 + * g++.dg/inherit/virtual7.C: New test. + +2011-02-22 Nicola Pero + + PR objc/47832 + * objc.dg/type-size-3.m: Updated error message. + * objc.dg/type-size-4.m: New test. + * objc.dg/type-size-5.m: New test. + +2011-02-22 Rainer Orth + + * lib/gnat.exp: Fix comments. + Don't load libgloss.exp. + (default_gnat_version): Call $compiler with --version. + Adapt regexp for gnatmake output, insert version. + (gnat_version): New proc. + (gnat_init): Remove gnat_libgcc_s_path. + (gnat_target_compile): Likewise. + Remove ld_library_path. + Log ADA_INCLUDE_PATH, ADA_OBJECTS_PATH. + (gnat_pass): Remove. + (gnat_pass): Remove. + (gnat_finish): Remove. + (gnat_exit): Remove. + (local_find_gnatmake): Reindent. + (runtest_file_p): Remove. + (prune_warnings): Remove. + (find_gnatclean): New proc. + * lib/gnat-dg.exp (lremove): New proc. + (gnat-dg-test): Reindent. + Remove additional output files. + (gnat-dg-runtest): Remove. + + * gnat.dg/array7.adb: Use cleanup-tree-dump "optimized". + * gnat.dg/loop_optimization6.adb: Likewise. + * gnat.dg/atomic1.adb: Use cleanup-tree-dump "gimple". + +2011-02-22 Jakub Jelinek + + PR tree-optimization/47835 + * gcc.dg/pr46909.c: Check optimized dump instead of ifcombine. + +2011-02-22 Tobias Burnus + + * gfortran.dg/abstract_type_1.f90: Fix dg-do syntax. + * gfortran.dg/abstract_type_2.f03: Ditto. + * gfortran.dg/abstract_type_3.f03: Ditto. + * gfortran.dg/abstract_type_4.f03: Ditto. + * gfortran.dg/abstract_type_5.f03: Ditto. + * gfortran.dg/abstract_type_6.f03: Ditto. + * gfortran.dg/alloc_comp_constraint_6.f90: Ditto. + * gfortran.dg/alloc_comp_init_expr.f03: Ditto. + * gfortran.dg/allocatable_scalar_11.f90: Ditto. + * gfortran.dg/allocate_scalar_with_shape.f90: Ditto. + * gfortran.dg/array_function_5.f90: Ditto. + * gfortran.dg/asynchronous_3.f03: Ditto. + * gfortran.dg/char_expr_1.f90: Ditto. + * gfortran.dg/class_14.f03: Ditto. + * gfortran.dg/data_array_6.f: Ditto. + * gfortran.dg/data_invalid.f90: Ditto. + * gfortran.dg/dot_product_1.f03: Ditto. + * gfortran.dg/func_derived_5.f90: Ditto. + * gfortran.dg/func_result_4.f90: Ditto. + * gfortran.dg/implied_do_1.f90: Ditto. + * gfortran.dg/initialization_25.f90: Ditto. + * gfortran.dg/initialization_26.f90: Ditto. + * gfortran.dg/interface_34.f90: Ditto. + * gfortran.dg/iso_c_binding_init_expr.f03: Ditto. + * gfortran.dg/keyword_symbol_1.f90: Ditto. + * gfortran.dg/matmul_8.f03: Ditto. + * gfortran.dg/merge_init_expr.f90: Ditto. + * gfortran.dg/pack_assign_1.f90: Ditto. + * gfortran.dg/pack_vector_1.f90: Ditto. + * gfortran.dg/pointer_check_8.f90: Ditto. + * gfortran.dg/product_init_expr.f03: Ditto. + * gfortran.dg/reshape_order_5.f90: Ditto. + * gfortran.dg/reshape_shape_1.f90: Ditto. + * gfortran.dg/reshape_zerosize_2.f90: Ditto. + * gfortran.dg/same_name_2.f90: Ditto. + * gfortran.dg/selected_real_kind_1.f90: Ditto. + * gfortran.dg/spread_init_expr.f03: Ditto. + * gfortran.dg/stmt_func_1.f90: Ditto. + * gfortran.dg/sum_init_expr.f03: Ditto. + * gfortran.dg/transpose_3.f03: Ditto. + * gfortran.dg/unpack_init_expr.f03: Ditto. + * gfortran.dg/warn_conversion.f90: Ditto. + * gfortran.dg/warn_conversion_2.f90: Ditto. + * gfortran.dg/warn_intent_out_not_set.f90: Ditto. + * gfortran.dg/warn_unused_dummy_argument_1.f90: Ditto. + * gfortran.dg/warn_unused_dummy_argument_2.f90: Ditto. + * gfortran.dg/whole_file_16.f90: Ditto. + * gfortran.dg/whole_file_17.f90: Ditto. + * gfortran.dg/whole_file_18.f90: Ditto. + * gfortran.dg/whole_file_20.f03: Ditto. + * gfortran.dg/whole_file_5.f90: Ditto. + * gfortran.dg/whole_file_6.f90: Ditto. + * gfortran.dg/write_invalid_format.f90: Ditto. + * gfortran.dg/zero_sized_6.f90: Ditto. + +2011-02-21 Jeff Law + + PR rtl-optimization/46178 + * gcc.target/i386/pr46178.c: New test. + + PR rtl-optimization/46002 + * gcc.c-torture/compile/pr46002.c: New test. + +2011-02-21 John David Anglin + + * g++.dg/cpp0x/lambda/lambda-conv.C: Skip scan-assembler check on + *-*-hpux10*. + +2011-02-21 Jakub Jelinek + + PR debug/47106 + * g++.dg/debug/pr47106.C: Require effective target lto. + +2011-02-21 Jason Merrill + + * g++.dg/cpp0x/constexpr-diag2.C: New. + +2011-02-20 Jason Merrill + + * g++.dg/cpp0x/constexpr-ctor7.C: New. + + * g++.dg/cpp0x/fntmpdefarg2.C: New. + + * g++.dg/overload/conv-op1.C: New. + + * g++.dg/cpp0x/constexpr-synth1.C: New. + +2011-02-20 Nicola Pero + + * objc.dg/layout-2.m: New. + * objc.dg/selector-3.m: Adjusted location of error message. + * objc.dg/type-size-3.m: Same. + * obj-c++.dg/selector-3.mm: Same. + +2011-02-20 Nicola Pero + + PR objc/47784 + * objc.dg/property/dotsyntax-22.m: New. + * obj-c++.dg/property/dotsyntax-22.mm: New. + +2011-02-20 Dodji Seketeli + + PR c++/46394 + * g++.dg/template/typedef38.C: New test. + +2011-02-20 Paul Thomas + + PR fortran/46818 + * gfortran.dg/whole_file_30.f90 : New test. + * gfortran.dg/whole_file_31.f90 : New test. + +2011-02-20 Paul Thomas + + PR fortran/45077 + PR fortran/44945 + * gfortran.dg/whole_file_28.f90 : New test. + * gfortran.dg/whole_file_29.f90 : New test. + +2011-02-20 Paolo Carlini + + PR c++/44118 + * g++.dg/template/crash105.C: New. + +2011-02-19 Jason Merrill + + * g++.dg/cpp0x/regress/no-elide1.C: New. + +2011-02-19 Alexandre Oliva + + PR tree-optimization/46620 + * gcc.dg/pr46620.c: New. + +2011-02-19 Jakub Jelinek + + PR c/47809 + * gcc.target/i386/pr47809.c: New test. + +2011-02-19 Jerry DeLisle + Tobias Burnus + + * lib/target-supports.exp + (check_effective_target_fortran_large_real): New check for large reals. + * gfortran.dg/nan_7.f90: New test. + +2011-02-19 Jerry DeLisle + + PR libgfortran/47567 + * gfortran.dg/fmt_f0_1.f90: Update test. + +2011-02-19 Paul Thomas + + PR fortran/47348 + * gfortran.dg/array_constructor_36.f90 : New test. + * gfortran.dg/bounds_check_10.f90 : Change dg-output message to + allow for comparison between different elements of the array + constructor at different levels of optimization. + +2011-02-19 H.J. Lu + + * gcc.target/i386/pr31167.c: Require int128 instead of lp64. + * gcc.target/i386/pr32280-1.c: Likewise. + +2011-02-19 Jakub Jelinek + + PR target/47800 + * gcc.target/i386/pr47800.c: New test. + +2011-02-18 Iain Sandoe + + * objc/execute/exceptions/foward-1.x: New. + +2011-02-18 Janus Weil + + PR fortran/47789 + * gfortran.dg/derived_constructor_comps_4.f90: New. + +2011-02-18 Tobias Burnus + + PR fortran/47775 + * gfortran.dg/func_result_6.f90: New. + +2011-02-18 Michael Matz + + PR fortran/45586 + * gfortran.dg/lto/pr45586_0.f90: New test. + * gfortran.dg/typebound_proc_20.f90: Ditto. + * gfortran.dg/typebound_proc_21.f90: Ditto. + +2011-02-18 Paolo Carlini + + PR c++/47795 + * g++.dg/cpp0x/lambda/lambda-ice3.C: New. + +2011-02-18 Tobias Burnus + + PR fortran/47750 + * lib/gfortran.exp (gfortran_init): Set gcc_error_prefix and + gcc_warning_prefix. + * lib/gfortran-dg.exp (gfortran-dg-test): Update regexp for + normalizing the error/warning output. + * gfortran.dg/Wall.f90: Update dg-error/warning. + * gfortran.dg/argument_checking_15.f90: Update dg-error/warning. + * gfortran.dg/argument_checking_3.f90: Update dg-error/warning. + * gfortran.dg/argument_checking_6.f90: Update dg-error/warning. + * gfortran.dg/bounds_temporaries_1.f90: Update dg-error/warning. + * gfortran.dg/class_30.f90: Update dg-error/warning. + * gfortran.dg/continuation_1.f90: Update dg-error/warning. + * gfortran.dg/continuation_9.f90: Update dg-error/warning. + * gfortran.dg/do_check_5.f90: Update dg-error/warning. + * gfortran.dg/entry_17.f90: Update dg-error/warning. + * gfortran.dg/entry_19.f90: Update dg-error/warning. + * gfortran.dg/fmt_error.f90: Update dg-error/warning. + * gfortran.dg/fmt_read_2.f90: Update dg-error/warning. + * gfortran.dg/g77/12632.f: Update dg-error/warning. + * gfortran.dg/g77/970625-2.f: Update dg-error/warning. + * gfortran.dg/g77/980615-0.f: Update dg-error/warning. + * gfortran.dg/generic_actual_arg.f90: Update dg-error/warning. + * gfortran.dg/global_references_1.f90: Update dg-error/warning. + * gfortran.dg/goto_8.f90: Update dg-error/warning. + * gfortran.dg/initialization_1.f90: Update dg-error/warning. + * gfortran.dg/io_constraints_1.f90: Update dg-error/warning. + * gfortran.dg/io_constraints_2.f90: Update dg-error/warning. + * gfortran.dg/io_constraints_3.f90: Update dg-error/warning. + * gfortran.dg/iostat_3.f90: Update dg-error/warning. + * gfortran.dg/public_private_module.f90: Update dg-error/warning. + * gfortran.dg/volatile3.f90: Update dg-error/warning. + * gfortran.dg/warning-directive-2.F90: Update dg-error/warning. + * gfortran.dg/warnings_are_errors_1.f: Update dg-error/warning. + * gfortran.dg/whole_file_1.f90: Update dg-error/warning. + * gfortran.dg/whole_file_2.f90: Update dg-error/warning. + * gfortran.dg/whole_file_3.f90: Update dg-error/warning. + +2011-02-18 Janus Weil + + PR fortran/47768 + * gfortran.dg/proc_ptr_comp_30.f90: New. + +2011-02-18 Jakub Jelinek + + PR debug/47780 + * gcc.target/i386/pr47780.c: New test. + +2011-02-18 Janus Weil + + PR fortran/47767 + * gfortran.dg/class_40.f03: New. + +2011-02-18 Dodji Seketeli + + PR c++/47208 + * g++.dg/cpp0x/auto21.C: New test. + +2011-02-17 Iain Sandoe + + * objc.dg/special/unclaimed-category-1.h: Updated for + new ABI support. + * objc.dg/special/unclaimed-category-1.m: Same. + * objc.dg/zero-link-1.m: Same. + * objc.dg/lookup-1.m: Same. + * objc.dg/torture/strings/const-str-9.m + * objc.dg/torture/strings/const-str-10.m: Same. + * objc.dg/torture/strings/const-str-11.m: Same. + * objc.dg/torture/forward-1.m: Same. + * objc.dg/zero-link-2.m: Same. + * objc.dg/encode-7-next-64bit.m: Same. + * objc.dg/method-4.m: Same. + * objc.dg/next-runtime-1.m: Same. + * objc.dg/image-info.m: Same. + * objc.dg/pr23214.m: Same. + * objc.dg/symtab-1.m: Same. + * obj-c++.dg/basic.m: Same. + * obj-c++.dg/proto-lossage-3.m: Same. + * obj-c++.dg/torture/strings/const-str-10.m: Same. + * obj-c++.dg/torture/strings/const-str-11.m: Same. + * obj-c++.dg/torture/strings/const-str-9.m: Same. + * obj-c++.dg/method-11.m: Same. + * objc/execute/enumeration-1.m: Same. + * objc/execute/object_is_class.m: Same. + * objc/execute/formal_protocol-2.m: Same. + * objc/execute/formal_protocol-4.m: Same. + * objc/execute/formal_protocol-6.m: Same. + * objc/execute/bycopy-3.m: Same. + * objc/execute/exceptions/catchall-1.m: Same. + * objc/execute/exceptions/finally-1.m: Same. + * objc/execute/exceptions/local-variables-1.m: Same. + * objc/execute/exceptions/foward-1.m: Same. + * objc/execute/bf-common.h + * objc/execute/enumeration-2.m: Same. + * objc/execute/formal_protocol-1.m: Same. + * objc/execute/formal_protocol-3.m: Same. + * objc/execute/formal_protocol-5.m: Same. + * objc/execute/accessing_ivars.m: Same. + * objc/execute/bycopy-2.m: Same. + * objc/execute/formal_protocol-7.m: Same. + * objc/execute/compatibility_alias.m: Same. + * objc/execute/no_clash.m: Same. + * objc/execute/object_is_meta_class.m: Same. + * objc/execute/exceptions/exceptions.exp: Load target-supports.exp + * objc/execute/class-tests-1.h: Include stdio.h. + * objc/execute/class-tests-2.h: Same. + * obj-c++.dg/try-catch-9.mm: xfail-run the test with both + runtimes. + * obj-c++.dg/try-catch-2.mm: Same. + +2011-02-17 Jakub Jelinek + + PR c++/47783 + * g++.dg/warn/Wunused-parm-4.C: New test. + +2011-02-17 Alexandre Oliva + Jan Hubicka + + PR debug/47106 + PR debug/47402 + * g++.dg/debug/pr47106.C: New. + +2011-02-17 Uros Bizjak + + PR target/43653 + * gcc.target/i386/pr43653.c: New test. + +2011-02-11 Dodji Seketeli + + PR c++/47172 + * g++.dg/template/inherit6.C: New test. + +2011-02-16 Janus Weil + + PR fortran/47745 + * gfortran.dg/class_39.f03: New. + +2011-02-16 Dodji Seketeli + + PR c++/47326 + * g++.dg/cpp0x/variadic106.C: New test. + +2011-02-16 Jakub Jelinek + + PR libfortran/47757 + * gfortran.dg/pr47757-1.f90: New test. + * gfortran.dg/pr47757-2.f90: New test. + * gfortran.dg/pr47757-3.f90: New test. + + PR c++/47704 + * g++.dg/cpp0x/enum8.C: New test. + +2011-02-15 Jason Merrill + + * g++.dg/inherit/implicit-trivial1.C: New. + * g++.dg/cpp0x/implicit-trivial1.C: New. + +2011-02-15 H.J. Lu + + PR middle-end/47725 + * gcc.dg/torture/pr47725.c: Removed. + +2011-02-15 Michael Meissner + + PR target/47755 + * gcc.target/powerpc/pr47755.c: New file, test all 0 vector + constant does not generate a load from memory. + +2011-02-15 H.J. Lu + + PR middle-end/47725 + * gcc.dg/torture/pr47725.c: New. + +2011-02-15 Richard Guenther + + PR tree-optimization/47743 + * gcc.dg/torture/pr47743.c: New testcase. + +2011-02-15 Jakub Jelinek + + PR middle-end/47581 + * gcc.target/i386/pr47581.c: New test. + +2011-02-14 Janus Weil + + PR fortran/47730 + * gfortran.dg/select_type_22.f03: New. + +2011-02-14 Jason Merrill + + * g++.dg/cpp0x/regress/enum1.C: New. + +2011-02-14 Eric Botcazou + + * gnat.dg/include.adb: New test. + +2011-02-14 Janus Weil + + PR fortran/47728 + * gfortran.dg/class_38.f03: New. + +2011-02-14 Eric Botcazou + + * gcc.dg/pr46494.c: New test. + +2011-02-14 Richard Guenther + + * gcc.dg/attr-weak-hidden-1.c: Make definition of foo strong. + +2011-02-14 Rainer Orth + + PR ada/41929 + * gnat.dg/null_pointer_deref1.exp: Don't skip on + sparc*-sun-solaris2.11. + +2011-02-14 Janus Weil + + PR fortran/47349 + * gfortran.dg/argument_checking_18.f90: New. + +2011-02-13 Tobias Burnus + + * gfortran.dg/argument_checking_13.f90: Update dg-error. + * gfortran.dg/argument_checking_17.f90: New. + +2011-02-12 Janus Weil + + * gfortran.dg/allocate_derived_1.f90: Modified as polymorphic arrays + are temporarily disabled. + * gfortran.dg/class_7.f03: Ditto. + * gfortran.dg/coarray_14.f90: Ditto. + * gfortran.dg/typebound_proc_13.f03: Ditto. + +2011-02-12 Mikael Morin + + PR fortran/45586 + * gfortran.dg/extends_11.f03: New. + +2011-02-11 Xinliang David Li + + PR tree-optimization/47707 + * g++.dg/tree-ssa/pr47707.C: New test. + +2011-02-11 Eric Botcazou + + * g++.dg/opt/inline17.C: New test. + +2011-02-11 Tobias Burnus + + PR fortran/47550 + * gfortran.dg/pure_formal_2.f90: New. + +2011-02-11 Pat Haugen + + PR rtl-optimization/47614 + * gfortran.dg/pr47614.f: New. + +2011-02-11 Joseph Myers + + PR driver/47678 + * gcc.dg/opts-6.c: New test. + +2011-02-11 Jakub Jelinek + + PR debug/47684 + * gcc.dg/pr47684.c: New test. + +2011-02-11 Rainer Orth + + PR target/47629 + * gcc.target/i386/pr47312.c: Use dg-require-effective-target + c99_runtime, dg-add-options c99_runtime. + (main): Use __asm__. + +2011-02-11 Rainer Orth + + PR testsuite/47400 + * lib/target-supports.exp (check_ascii_locale_available): New proc. + * lib/target-supports-dg.exp (dg-require-ascii-locale): New proc. + * gcc.dg/attr-alias-5.c: Use dg-require-ascii-locale. + * gcc.dg/ucnid-10.c: Likewise. + * gcc.dg/ucnid-13.c: Likewise. + * gcc.dg/ucnid-7.c: Likewise. + * gcc.dg/ucnid-8.c: Likewise. + Adapt dg-warning line number. + +2011-02-10 Uros Bizjak + + * gcc.target/i386/parity-1.c: Use -march=k8. + * gcc.target/i386/parity-2.c: Ditto. + * gcc.target/i386/vecinit-1.c: Ditto. + * gcc.target/i386/vecinit-2.c: Ditto. + +2011-02-10 Rainer Orth + + PR target/46610 + * gcc.target/mips/save-restore-1.c: Skip on mips-sgi-irix6*. + * gcc.target/mips/save-restore-3.c: Likewise. + * gcc.target/mips/save-restore-4.c: Likewise. + * gcc.target/mips/save-restore-5.c: Likewise. + + PR target/47683 + * g++.dg/tree-prof/partition1.C: Skip on mips-sgi-irix*. + * g++.dg/tree-prof/partition2.C: Likewise. + +2011-02-09 Jason Merrill + + * g++.dg/tree-ssa/inline-3.C: Use a normal function + rather than misdeclare std::puts. + + * g++.dg/ext/vla1.C: Adjust for C++0x mode. + * g++.dg/other/warning1.C: Likewise. + * g++.old-deja/g++.bugs/900119_01.C: Likewise. + * g++.old-deja/g++.gb/scope06.C: Likewise. + * g++.old-deja/g++.law/cvt11.C: Likewise. + * g++.old-deja/g++.law/init1.C: Likewise. + * g++.dg/abi/mangle26.C: Likewise. + + * g++.dg/template/function1.C: Adjust for C++0x mode. + * g++.dg/cpp0x/regress/template-function1.C: Copy it. + + * g++.dg/ext/label10.C: Adjust for C++0x mode. + * g++.dg/cpp0x/regress/ext-label10.C: Copy it. + + * g++.dg/cpp0x/regress/ext-cond1.C: Copy from ext/cond1.C. + + * g++.dg/cpp0x/regress/abi-empty7.C: New. + + * g++.dg/cpp0x/regress: New directory. + * g++.dg/cpp0x/constexpr-regress1.C: Move to regress/regress1.C. + * g++.dg/cpp0x/constexpr-regress2.C: Move to regress/regress2.C. + * g++.dg/cpp0x/regress/regress3.C: New. + +2011-02-10 Richard Guenther + + PR tree-optimization/47677 + * gcc.dg/torture/pr47677.c: New testcase. + +2011-02-10 Iain Sandoe + + * objc.dg/special/load-category-1.m: Remove unused header. + * objc.dg/special/load-category-1a.m: Likewise. + * objc.dg/special/load-category-2.m: Likewise. + * objc.dg/special/load-category-2a.m: Likewise. + * objc.dg/special/load-category-3.m: Likewise. + * objc.dg/special/load-category-3a.m: Likewise. + * objc.dg/attributes/proto-attribute-2.m: Likewise. + * objc.dg/attributes/proto-attribute-3.m: Likewise. + * objc.dg/attributes/class-attribute-1.m: Likewise. + * objc.dg/property/property.exp: Don't run for Darwin < 9. + * obj-c++.dg/property/property.exp: Likewise. + * objc.dg/attributes/method-sentinel-1.m: Update type header. + * obj-c++.dg/attributes/method-sentinel-1.mm: Likewise. + * obj-c++.dg/attributes/proto-attribute-2.mm: Skip for Darwin < 9. + * obj-c++.dg/attributes/class-attribute-1.mm: Likewise. + * obj-c++.dg/attributes/proto-attribute-3.mm: Likewise. + * obj-c++.dg/template-8.mm: Likewise. + +2011-02-10 Jakub Jelinek + + PR target/47665 + * gcc.target/i386/pr47665.c: New test. + +2011-02-10 Jie Zhang + + PR testsuite/47622 + Revert + 2011-02-05 Jie Zhang + PR debug/42631 + * gcc.dg/pr42631.c: Update test. + * gcc.dg/pr42631-2.c: New test. + +2011-02-09 Janus Weil + + PR fortran/47352 + * gfortran.dg/proc_decl_25.f90: New. + +2011-02-09 Janus Weil + + PR fortran/47463 + * gfortran.dg/typebound_assignment_2.f03: New. + +2011-02-09 Richard Guenther + + PR tree-optimization/47664 + * gcc.dg/tree-ssa/inline-7.c: New testcase. + +2011-02-09 Eric Botcazou + + PR middle-end/47646 + * gnat.dg/uninit_func.adb: Adjust dg directive. + +2011-02-09 Dominique Dhumieres + + PR middle-end/47646 + * obj-c++.dg/attributes/method-noreturn-1.mm: Adjust dg directives. + +2011-02-09 Janus Weil + + PR fortran/47637 + * gfortran.dg/auto_dealloc_2.f90: New. + +2011-02-09 Rainer Orth + + * gcc.dg/builtins-config.h: Remove __sgi handling. + * lib/target-supports.exp (add_options_for_c99_runtime): Add + -std=c99 for mips-sgi-irix6.5*. + +2011-02-09 Martin Jambor + + PR middle-end/45505 + * gfortran.dg/pr25923.f90: Remove xfails. + +2011-02-08 Jerry DeLisle + + PR fortran/47583 + * gfortran.dg/inquire_14.f90: New test. + +2011-02-08 Janus Weil + + PR fortran/45290 + * gfortran.dg/pointer_init_6.f90: New. + +2011-02-08 Jeff Law + + PR tree-optimization/42893 + * gcc.tree-ssa/pr42893.c: New test. + +2011-02-08 Sebastian Pop + + PR tree-optimization/46834 + PR tree-optimization/46994 + PR tree-optimization/46995 + * gcc.dg/graphite/id-pr46834.c: New. + * gfortran.dg/graphite/id-pr46994.f90: New. + * gfortran.dg/graphite/id-pr46995.f90: New. + +2011-02-08 Andreas Krebbel + + PR middle-end/47646 + * gcc.dg/pr39666-2.c (foo2): If the location of the statement + using the variable is known the warning is emitted there. + * gcc.dg/uninit-pr19430.c (foo): Likewise. + * g++.dg/warn/Wuninitialized-5.C (foo): Likewise. + + * c-c++-common/pr20000.c (g): Both warnings occur at the return + statement. + (vg): Likewise. + * gcc.dg/noreturn-1.c (foo5): Likewise. + * objc.dg/attributes/method-noreturn-1.m (method1): Likewise. + (method2): Likewise. + + * gfortran.dg/pr25923.f90 (baz): The warning will now be issued for + the return statement using the uninitialized variable. + * gfortran.dg/pr39666-2.f90 (f): Likewise. + +2011-02-08 Richard Guenther + + PR middle-end/47639 + * g++.dg/opt/pr47639.c: New testcase. + +2011-02-08 Richard Guenther + + PR tree-optimization/47632 + * g++.dg/opt/pr47632.C: New testcase. + +2011-02-07 Ulrich Weigand + + * g++.dg/abi/packed1.C: Expect warning on spu-*-* as well. + +2011-02-07 Richard Guenther + + PR tree-optimization/47615 + * g++.dg/opt/pr47615.C: New testcase. + +2011-02-07 Richard Guenther + + PR tree-optimization/47621 + * gcc.dg/torture/pr47621.c: New testcase. + +2011-02-07 Uros Bizjak + + * gfortran.dg/transpose_optimization_2.f90: Cleanup original dump. + +2011-02-06 Paul Thomas + + PR fortran/47592 + * gfortran.dg/allocate_with_source_1 : New test. + +2011-02-05 Jakub Jelinek + + PR middle-end/47610 + * gcc.dg/pr47610.c: New test. + +2011-02-05 Jie Zhang + + PR debug/42631 + * gcc.dg/pr42631.c: Update test. + * gcc.dg/pr42631-2.c: New test. + +2001-02-05 Thomas Koenig + + PR fortran/47574 + * gfortran.dg/pr47574.f90: New test. + +2011-02-04 Sebastian Pop + + PR tree-optimization/46194 + * gcc.dg/autopar/pr46194.c: New. + +2011-02-04 H.J. Lu + + PR tree-optimization/43695 + * g++.dg/ipa/pr43695.C: New. + +2011-02-04 Jakub Jelinek + + PR inline-asm/23200 + * gcc.dg/pr23200.c: New test. + +2011-02-03 Jonathan Wakely + + PR c++/47589 + * g++.dg/pr47589.C: New test. + +2011-02-03 Dodji Seketeli + + PR c++/47398 + * g++.dg/template/typedef37.C: New test. + * g++.dg/template/param1.C: Adjust expected error message. + +2011-02-03 Jakub Jelinek + + PR middle-end/31490 + * gcc.dg/pr31490-2.c: New test. + * gcc.dg/pr31490-3.c: New test. + * gcc.dg/pr31490-4.c: New test. + +2011-02-03 Nathan Froyd + Jakub Jelinek + + PR c++/46890 + * g++.dg/parser/semicolon3.C: Adjust. + * g++.dg/parser/semicolon4.C: New testcase. + * g++.dg/pr46890.C: New testcase. + +2011-02-03 Paolo Carlini + + PR c++/29571 + * g++.dg/init/pr29571.C: New. + +2011-02-03 H.J. Lu + + * gfortran.dg/graphite/vect-pr40979.f90: Require vect_double + instead of vect_int. + +2011-02-03 Jakub Jelinek + + PR target/47312 + * gcc.target/i386/pr47312.c: New test. + + PR target/47564 + * gcc.target/i386/pr47564.c: New test. + +2011-02-03 Alexandre Oliva + + PR tree-optimization/45122 + * gcc.dg/tree-ssa/pr45122.c: New. + +2011-02-02 Michael Meissner + + PR target/47272 + * gcc.target/powerpc/vsx-builtin-8.c: New file, test vec_vsx_ld + and vec_vsx_st. + + * gcc.target/powerpc/avoid-indexed-addresses.c: Disable altivec + and vsx so a default --with-cpu=power7 doesn't give an error + when -mavoid-indexed-addresses is used. + + * gcc.target/powerpc/ppc32-abi-dfp-1.c: Rewrite to use an asm + wrapper function to save the arguments and then jump to the real + function, rather than depending on the compiler not to move stuff + before an asm. + * gcc.target/powerpc/ppc64-abi-dfp-2.c: Ditto. + +2011-02-02 Janus Weil + Paul Thomas + + PR fortran/47082 + * gfortran.dg/class_37.f03 : New test. + +2011-02-02 Sebastian Pop + Richard Guenther + + PR tree-optimization/40979 + PR bootstrap/47044 + * gcc.dg/graphite/graphite.exp (DEFAULT_VECTCFLAGS): Add -ffast-math. + * gcc.dg/graphite/pr35356-2.c: Adjust pattern. + * gfortran.dg/graphite/graphite.exp: Run vect_files conditionally to + check_vect_support_and_set_flags. + * gfortran.dg/graphite/vect-pr40979.f90: New. + +2011-02-02 Janus Weil + + PR fortran/47572 + * gfortran.dg/class_36.f03: New. + +2011-02-02 Richard Guenther + + PR tree-optimization/47566 + * gcc.dg/lto/20110201-1_0.c: New testcase. + +2011-02-02 Alexandre Oliva + + PR debug/47498 + PR debug/47501 + PR debug/45136 + PR debug/45130 + * debug/pr47498.c: New. + * debug/pr47501.c: New. + +2011-02-01 Richard Guenther + + PR tree-optimization/47559 + * g++.dg/torture/pr47559.C: New testcase. + +2011-02-01 Janus Weil + + PR fortran/47565 + * gfortran.dg/typebound_call_20.f03: New. + +2011-02-01 Richard Guenther + + PR tree-optimization/47555 + * gcc.dg/pr47555.c: New testcase. + +2011-02-01 Richard Guenther + + PR tree-optimization/47541 + * g++.dg/torture/pr47541.C: New testcase. + +2011-01-31 Janus Weil + + PR fortran/47455 + * gfortran.dg/typebound_call_19.f03: New. + +2011-01-31 Jakub Jelinek + + PR c++/47416 + * g++.dg/cpp0x/pr47416.C: New test. + +2011-01-31 Paul Thomas + + PR fortran/47519 + * gfortran.dg/allocate_deferred_char_scalar_2.f03: New test. + +2011-01-31 Janus Weil + + PR fortran/47463 + * gfortran.dg/typebound_assignment_1.f03: New. + +2011-01-31 Jakub Jelinek + + PR tree-optimization/47538 + * gcc.c-torture/execute/pr47538.c: New test. + +2011-01-31 Rainer Orth + + PR target/45325 + * gcc.target/i386/pr38240.c: Add dg-options "-msse". + +2011-01-31 Rainer Orth + + * g++.dg/abi/mangle40.C: Pass "" to dg-require-weak. + +2011-01-31 Eric Botcazou + + PR rtl-optimization/44031 + * gcc.c-torture/compile/20110131-1.c: New test. + +2011-01-31 Tobias Burnus + + PR fortran/47042 + * gfortran.dg/stmt_func_1.f90: New. + +2011-01-31 Tobias Burnus + + PR fortran/47042 + * gfortran.dg/interface_34.f90: New. + +2011-01-30 Paul Thomas + + PR fortran/47523 + * gfortran.dg/realloc_on_assign_5.f03: New test. + * gfortran.dg/realloc_on_assign_5.f03: New test. + +2011-01-29 Ulrich Weigand + + * gfortran.dg/bessel_6.f90: XFAIL on spu-*-*. + * gfortran.dg/bessel_7.f90: Likewise. + * gfortran.dg/erf_2.F90: Likewise. Always run with -O0. + + * gfortran.dg/complex_intrinsics_5.f90: Increase "epsilon". + * gfortran.dg/sum_init_expr.f03: Likewise. + + * gfortran.dg/realloc_on_assign_2.f03: Skip on spu-*-*. + + * gfortran.dg/lto/20091016-1_0.f90: Replace -shared with + -r -nostdlib. + + * gfortran.dg/vect/fast-math-vect-8.f90: Check for vectorized + loop only on "vect_intfloat_cvt" targets. + +2011-01-29 Tobias Burnus + + PR fortran/47531 + * gfortran.dg/shape_6.f90: New. + +2011-01-29 Jerry DeLisle + + PR libgfortran/47434 + * gfortran.dg/read_infnan_1.f90: Update test. + * gfortran.dg/module_nan.f90: Update test. + * gfortran.dg/char4_iunit_1.f03: Update test. + * gfortran.dg/large_real_kind_1.f90: Update test. + * gfortran.dg/real_const_3.f90: Update test. + * gfortran.fortran-torture/execute/nan_inf_fmt.f90: Update test. + +2011-01-29 Dodji Seketeli + + PR c++/47311 + * g++.dg/template/param2.C: New test. + +2011-01-28 Jerry DeLisle + + PR libgfortran/47285 + * gfortran.dg/fmt_g.f: New test. + +2011-01-28 Tobias Burnus + + PR fortran/47507 + * gfortran.dg/pure_formal_1.f90: New. + +2011-01-28 Jakub Jelinek + + PR target/42894 + * gcc.dg/tls/pr42894.c: New test. + +2011-01-28 Rainer Orth + + * gcc.dg/pr47276.c: Add dg-require-visibility. + +2011-01-28 Rainer Orth + + * gcc.target/i386/asm-6.c: XFAIL on i?86-pc-solaris2.1[0-9] && ilp32. + +2011-01-28 Paul Thomas + Tobias Burnus + + PR fortran/45170 + PR fortran/35810 + PR fortran/47350 + * gfortran.dg/realloc_on_assign_3.f03: New test. + * gfortran.dg/realloc_on_assign_4.f03: New test. + * gfortran.dg/allocatable_function_5.f90: New test. + * gfortran.dg/allocate_deferred_char_scalar_1.f03: New test. + * gfortran.dg/deferred_type_param_2.f90: Remove two "not yet + implemented" dg-errors. + +2011-01-27 Jan Hubicka + + PR middle-end/46949 + * gcc.dg/attr-weakref-4.c: New testcase + +2011-01-27 Martin Jambor + + PR tree-optimization/47228 + * gcc.dg/torture/pr47228.c: New test. + +2011-01-27 Andreas Krebbel + + * gcc.dg/tree-ssa/pr42585.c: Disable on s390 and s390x. + +2011-01-27 Ulrich Weigand + + * lib/compat.exp (compat-execute): Pass -Wl,--extra-stack-space=8192 + when using auto-overlay support on the SPU. + +2011-01-27 Eric Botcazou + + PR rtl-optimization/44174 + * gcc.target/i386/asm-6.c: New test. + +2011-01-26 Mikael Pettersson + + PR rtl-optimization/46856 + * gcc.c-torture/compile/pr46856.c: New test. + +2011-01-26 Nicola Pero + Andrew Pinski + + PR c/43082 + * gcc.dg/pr43082.c: New. + +2011-01-26 DJ Delorie + + PR rtl-optimization/46878 + * gcc.dg/pr46878-1.c: New test. + +2011-01-26 Jakub Jelinek + + PR c++/47476 + * g++.dg/cpp0x/pr47476.C: New test. + +2011-01-26 Eric Botcazou + + * gcc.c-torture/compile/20110126-1.c: New test. + +2011-01-26 Jakub Jelinek + + PR c/47473 + * gcc.dg/torture/pr47473.c: New test. + +2011-01-26 Jan Hubicka + + PR target/47237 + * gcc.c-torture/execute/pr47237.c: New testcase. + +2011-01-26 Jan Hubicka + + PR tree-optimization/47190 + * gcc.dg/attr-weakref-3.c: New testcase. + +2011-01-26 Dave Korn + + PR c++/43601 + * gcc.dg/dll-9a.c: New test file. + * gcc.dg/dll-11.c: Likewise. + * gcc.dg/dll-12.c: Likewise. + * gcc.dg/dll-12a.c: Likewise. + * gcc.dg/dll-11a.c: Likewise. + * gcc.dg/dll-9.c: Likewise. + * gcc.dg/dll-10.c: Likewise. + * gcc.dg/dll-10a.c: Likewise. + * g++.dg/ext/dllexport4a.cc: Likewise. + * g++.dg/ext/dllexport4.C: Likewise. + * g++.dg/ext/dllexport5.C: Likewise. + * g++.dg/ext/dllexport5a.cc: Likewise. + +2011-01-25 Sebastian Pop + + PR tree-optimization/46970 + * gcc.dg/graphite/pr46970.c: New. + +2011-01-25 Sebastian Pop + + PR tree-optimization/46215 + * gcc.dg/graphite/pr46215.c: New. + +2011-01-25 Sebastian Pop + + PR tree-optimization/46168 + * gcc.dg/graphite/pr46168.c: New. + +2011-01-25 Sebastian Pop + + PR tree-optimization/43657 + * gcc.dg/graphite/pr43657.c: New. + +2011-01-25 Sebastian Pop + + PR tree-optimization/29832 + * gfortran.dg/graphite/pr29832.f90: New. + +2011-01-25 Sebastian Pop + + PR tree-optimization/43567 + * gcc.dg/graphite/pr43567.c: New. + +2011-01-25 Sebastian Pop + + * gfortran.dg/graphite/interchange-4.f: New. + * gfortran.dg/graphite/interchange-5.f: New. + + * gcc.dg/tree-ssa/ltrans-1.c: Removed. + * gcc.dg/tree-ssa/ltrans-2.c: Removed. + * gcc.dg/tree-ssa/ltrans-3.c: Removed. + * gcc.dg/tree-ssa/ltrans-4.c: Removed. + * gcc.dg/tree-ssa/ltrans-5.c: Removed. + * gcc.dg/tree-ssa/ltrans-6.c: Removed. + * gcc.dg/tree-ssa/ltrans-8.c: Removed. + * gfortran.dg/ltrans-7.f90: Removed. + * gcc.dg/tree-ssa/data-dep-1.c: Removed. + + * gcc.dg/pr18792.c: -> gcc.dg/graphite/pr18792.c + * gcc.dg/pr19910.c: -> gcc.dg/graphite/pr19910.c + * gcc.dg/tree-ssa/20041110-1.c: -> gcc.dg/graphite/pr20041110-1.c + * gcc.dg/tree-ssa/pr20256.c: -> gcc.dg/graphite/pr20256.c + * gcc.dg/pr23625.c: -> gcc.dg/graphite/pr23625.c + * gcc.dg/tree-ssa/pr23820.c: -> gcc.dg/graphite/pr23820.c + * gcc.dg/tree-ssa/pr24309.c: -> gcc.dg/graphite/pr24309.c + * gcc.dg/tree-ssa/pr26435.c: -> gcc.dg/graphite/pr26435.c + * gcc.dg/pr29330.c: -> gcc.dg/graphite/pr29330.c + * gcc.dg/pr29581-1.c: -> gcc.dg/graphite/pr29581-1.c + * gcc.dg/pr29581-2.c: -> gcc.dg/graphite/pr29581-2.c + * gcc.dg/pr29581-3.c: -> gcc.dg/graphite/pr29581-3.c + * gcc.dg/pr29581-4.c: -> gcc.dg/graphite/pr29581-4.c + * gcc.dg/tree-ssa/loop-27.c: -> gcc.dg/graphite/pr30565.c + * gcc.dg/tree-ssa/pr31183.c: -> gcc.dg/graphite/pr31183.c + * gcc.dg/tree-ssa/pr33576.c: -> gcc.dg/graphite/pr33576.c + * gcc.dg/tree-ssa/pr33766.c: -> gcc.dg/graphite/pr33766.c + * gcc.dg/pr34016.c: -> gcc.dg/graphite/pr34016.c + * gcc.dg/tree-ssa/pr34017.c: -> gcc.dg/graphite/pr34017.c + * gcc.dg/tree-ssa/pr34123.c: -> gcc.dg/graphite/pr34123.c + * gcc.dg/tree-ssa/pr36287.c: -> gcc.dg/graphite/pr36287.c + * gcc.dg/tree-ssa/pr37686.c: -> gcc.dg/graphite/pr37686.c + * gcc.dg/pr42917.c: -> gcc.dg/graphite/pr42917.c + * gcc.dg/tree-ssa/data-dep-1.c + * gfortran.dg/loop_nest_1.f90: -> gfortran.dg/graphite/pr29290.f90 + * gfortran.dg/pr29581.f90: -> gfortran.dg/graphite/pr29581.f90 + * gfortran.dg/pr36286.f90: -> gfortran.dg/graphite/pr36286.f90 + * gfortran.dg/pr36922.f: -> gfortran.dg/graphite/pr36922.f + * gfortran.dg/pr39516.f: -> gfortran.dg/graphite/pr39516.f + +2011-01-25 Jakub Jelinek + + PR tree-optimization/47265 + PR tree-optimization/47443 + * gcc.c-torture/compile/pr47265.c: New test. + * gcc.dg/pr47443.c: New test. + +2011-01-25 Martin Jambor + + PR tree-optimization/47382 + * g++.dg/torture/pr47382.C: New test. + * g++.dg/opt/devirt1.C: Xfail. + +2011-01-25 Yao Qi + + PR target/45701 + * gcc.target/arm/pr45701-1.c: New test. + * gcc.target/arm/pr45701-2.c: New test. + * gcc.target/arm/pr45701-3.c: New test. + +2011-01-25 Sebastian Pop + Jakub Jelinek + + PR tree-optimization/47271 + * gcc.dg/tree-ssa/ifc-pr47271.c: New. + +2011-01-25 Nick Clifton + + * gcc.target/rx/builtins.c: Allow -fipa-cp-clone. + (saturate_add): Delete. + (exchange): Delete. + (main): Do not run saturate_add. + (set_interrupts): Delete. + +2011-01-25 Tobias Burnus + + PR fortran/47448 + * gfortran.dg/redefined_intrinsic_assignment_2.f90: New. + +2011-01-25 Jakub Jelinek + + PR tree-optimization/47427 + PR tree-optimization/47428 + * gcc.c-torture/compile/pr47427.c: New test. + * gcc.c-torture/compile/pr47428.c: New test. + +2011-01-25 Richard Guenther + + PR middle-end/47411 + * gcc.dg/torture/pr47411.c: New testcase. + +2011-01-25 Sebastian Pop + + * gfortran.dg/graphite/id-24.f: New. + * gfortran.dg/graphite/id-25.f: New. + +2011-01-25 Sebastian Pop + + * gfortran.dg/graphite/id-23.f: New. + +2011-01-25 Sebastian Pop + + * gfortran.dg/graphite/interchange-3.f90: Un-XFAILed. + +2011-01-25 Sebastian Pop + + * gcc.dg/graphite/block-0.c: Un-XFAILed. + * gcc.dg/graphite/block-1.c: Un-XFAILed. + * gcc.dg/graphite/block-7.c: Un-XFAILed. + * gcc.dg/graphite/block-8.c: Un-XFAILed. + * gcc.dg/graphite/interchange-12.c: Un-XFAILed. + * gcc.dg/graphite/interchange-14.c: Un-XFAILed. + * gcc.dg/graphite/interchange-15.c: Un-XFAILed. + * gcc.dg/graphite/interchange-8.c: Un-XFAILed. + * gcc.dg/graphite/interchange-mvt.c: Un-XFAILed. + +2011-01-25 Sebastian Pop + + * gcc.dg/graphite/block-0.c: Add documentation. + * gcc.dg/graphite/block-4.c: Same. + * gcc.dg/graphite/block-7.c: Same. + * gcc.dg/graphite/block-8.c: New. + * gcc.dg/graphite/interchange-1.c: Un-XFAILed. + * gcc.dg/graphite/interchange-11.c: Un-XFAILed. + * gcc.dg/graphite/interchange-12.c: Add documentation. + * gcc.dg/graphite/interchange-13.c: New. + * gcc.dg/graphite/interchange-14.c: New. + * gcc.dg/graphite/interchange-15.c: New. + * gcc.dg/graphite/interchange-8.c: Add documentation. + * gcc.dg/graphite/interchange-mvt.c: Same. + +2011-01-24 Michael Meissner + + PR target/47408 + * gcc.target/powerpc/altivec-11.c: Add explicit -mno-vsx. + * gcc.target/powerpc/altivec-14.c: Ditto. + * gcc.target/powerpc/altivec-33.c: Ditto. + * gcc.target/powerpc/altivec-types-1.c: Ditto. + * gcc.target/powerpc/altivec-types-2.c: Ditto. + * gcc.target/powerpc/altivec-types-3.c: Ditto. + * gcc.target/powerpc/altivec-types-4.c: Ditto. + * gcc.target/powerpc/ppc-vector-memcpy.c: Ditto. + * gcc.target/powerpc/ppc-vector-memset.c: Ditto. + * g++.dg/ext/altivec-15.C: Ditto. + * g++.dg/ext/altivec-types-1.C: Ditto. + * g++.dg/ext/altivec-types-2.C: Ditto. + * g++.dg/ext/altivec-types-3.C: Ditto. + * g++.dg/ext/altivec-types-4.C: Ditto. + +2011-01-24 Rainer Orth + + * lib/scanasm.exp (dg-function-on-line): Handle mips-sgi-irix*. + +2011-01-24 Rainer Orth + + * gfortran.dg/cray_pointers_2.f90: Avoid cycling through + optimization options. + +2011-01-24 Rainer Orth + + * gfortran.dg/array_constructor_33.f90: Use dg-timeout-factor 4. + + PR testsuite/45988 + * gfortran.dg/vect/fast-math-pr38968.f90: Use dg-timeout-factor 2. + +2011-01-23 Tobias Burnus + + PR fortran/47421 + * gfortran.dg/allocatable_scalar_12.f90: New. + +2011-01-23 Ira Rosen + + * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Expect + vectorization to be not profitable if peeling is used to + realign the memory access. + * gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c: Increase + loop bound to avoid loop unrolling. + * gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c: Likewise. + +2011-01-22 Jan Hubicka + + PR lto/47333 + * g++.dg/lto/pr47333.C: New file. + +2011-01-22 Jan Hubicka + + PR tree-optimization/43884 + PR lto/44334 + * gcc.dg/autopar/outer-2.c: Increase array size. + * gcc.dg/tree-ssa/ldist-pr45948.c: Update test. + +2011-01-22 Thomas Koenig + + PR fortran/38536 + * gfortran.dg/c_loc_tests_16.f90: New test. + +2011-01-22 Tobias Burnus + + PR fortran/47399 + * gfortran.dg/typebound_proc_19.f90: New. + +2011-01-21 Jeff Law + + PR tree-optimization/47053 + * g++.dg/pr47053.C: New test. + +2011-01-21 Jason Merrill + + PR c++/47041 + * g++.dg/cpp0x/constexpr-ctor6.C: New. + +2011-01-21 Jakub Jelinek + + PR c++/47388 + * g++.dg/cpp0x/range-for10.C: New test. + * g++.dg/template/for1.C: New test. + + PR middle-end/45566 + * g++.dg/tree-prof/partition3.C: New test. + + * g++.dg/tree-prof/tree-prof.exp: Fix a comment. + + PR rtl-optimization/47366 + * g++.dg/opt/pr47366.C: New test. + +2011-01-21 Jason Merrill + + PR c++/46552 + * g++.dg/cpp0x/constexpr-regress2.C: New. + + * g++.dg/cpp0x/constexpr-stmtexpr.C: New. + +2011-01-21 Jeff Law + + PR rtl-optimization/41619 + * gcc.dg/pr41619.c: New. + +2011-01-21 Jakub Jelinek + + PR tree-optimization/47355 + * g++.dg/opt/pr47355.C: New test. + +2011-01-21 Richard Guenther + + * gcc.dg/tree-ssa/pr47392.c: Make test non-static instead of + making main hot. + +2011-01-21 Richard Guenther + + PR tree-optimization/47365 + * gcc.dg/torture/pr47365.c: New testcase. + * gcc.dg/tree-ssa/pr47392.c: Likewise. + +2011-01-21 Rainer Orth + + * g++.dg/other/anon5.C: Skip on mips-sgi-irix*. + +2011-01-21 Jakub Jelinek + + PR tree-optimization/47391 + * gcc.dg/pr47391.c: New test. + +2011-01-21 Rainer Orth + + * g++.dg/template/char1.C: Use signed char. + +2011-01-21 Tobias Burnus + + PR fortran/47377 + * gfortran.dg/pointer_target_4.f90: New. + +2011-01-20 Michael Meissner + + PR target/47251 + * gcc.target/powerpc/pr47251.c: Fixup test so that it runs on + ILP32 system and not IP32. + +2011-01-20 Alexandre Oliva + + PR debug/46583 + * g++.dg/debug/pr46583.C: New. + +2011-01-20 Jakub Jelinek + + PR debug/47283 + * g++.dg/debug/pr47283.C: New test. + + PR testsuite/47371 + * gcc.target/i386/headmerge-1.c: Tighten up scan-assembler regex. + * gcc.target/i386/headmerge-2.c: Likewise. + +2011-01-20 Richard Guenther + + PR middle-end/47370 + * gcc.dg/torture/pr47370.c: New testcase. + +2011-01-20 Jakub Jelinek + + PR tree-optimization/46130 + * gcc.dg/pr46130-1.c: New test. + * gcc.dg/pr46130-2.c: New test. + +2011-01-19 Dodji Seketeli + + PR c++/47291 + * g++.dg/debug/dwarf2/template-params-10.C: New test. + +2011-01-19 Alexandre Oliva + + PR debug/46240 + * g++.dg/debug/pr46240.cc: New. + +2011-01-19 Jakub Jelinek + + PR c++/47303 + * g++.dg/template/anonunion1.C: New test. + + PR rtl-optimization/47337 + * gcc.c-torture/execute/pr47337.c: New test. + +2011-01-19 Ulrich Weigand + + PR testsuite/45342 + * gcc.dg/tls/thr-cse-1.c: Fix match on spu-*.*. + +2011-01-19 Ulrich Weigand + + PR tree-optimization/46021 + * gcc.dg/tree-ssa/20040204-1.c: Do not XFAIL on spu-*-*. + +2011-01-19 Jakub Jelinek + + PR tree-optimization/47290 + * g++.dg/torture/pr47290.C: New test. + +2011-01-18 Janus Weil + + PR fortran/47240 + * gfortran.dg/proc_ptr_comp_29.f90: New. + +2011-01-18 Dominique d'Humieres + + PR testsuite/41146 + * gcc.target/powerpc/asm-es-2.c: Adjust regular expression for + powerpc-apple-darwin9. + +2011-01-18 Jakub Jelinek + + PR rtl-optimization/47299 + * gcc.c-torture/execute/pr47299.c: New test. + +2011-01-17 Jason Merrill + + * g++.dg/cpp0x/constexpr-virtual.C: New. + +2011-01-17 Jakub Jelinek + + PR fortran/47331 + * gfortran.dg/gomp/pr47331.f90: New test. + +2011-01-17 Nicola Pero + + PR objc/47314 + * objc.dg/selector-warn-1.m: New. + * obj-c++.dg/selector-warn-1.mm: New. + +2011-01-17 Richard Sandiford + + * gcc.dg/tree-ssa/vrp51.c: Prefix each "bug." string with "vrp.". + Update dg-final accordingly. + +2011-01-17 Rainer Orth + + * g++.old-deja/g++.other/init19.C: Don't XFAIL on mips-sgi-irix*. + +2011-01-17 Andreas Krebbel + + * gcc.dg/guality/pr36728-1.c: Replace XFAIL for s390(x) with a + target check. + * gcc.dg/guality/pr36728-2.c: Likewise. + +2011-01-17 Richard Guenther + + PR tree-optimization/47313 + * g++.dg/torture/pr47313.C: New testcase. + +2011-01-17 H.J. Lu + + PR target/47318 + * gcc.target/i386/avx-vmaskmovpd-1.c: New. + * gcc.target/i386/avx-vmaskmovpd-2.c: Likewise. + * gcc.target/i386/avx-vmaskmovps-1.c: Likewise. + * gcc.target/i386/avx-vmaskmovps-1.c: Likewise. + + * gcc.target/i386/avx-vmaskmovpd-256-1.c (avx_test): Load mask + as __m256i. + * gcc.target/i386/avx-vmaskmovpd-256-2.c (avx_test): Likewise. + * gcc.target/i386/avx-vmaskmovps-256-1.c (avx_test): Likewise. + * gcc.target/i386/avx-vmaskmovps-256-2.c (avx_test): Likewise. + +2011-01-17 Richard Guenther + + PR tree-optimization/45967 + * gcc.dg/torture/pr45967-2.c: New testcase. + * gcc.dg/torture/pr45967-3.c: Likewise. + +2011-01-16 John David Anglin + + PR testsuite/47325 + * g++.dg/ext/pr47213.C: Require visibility. + +2011-01-16 Richard Sandiford + + * gcc.dg/fixed-point/composite-type.c: Pass -Wno-unused. + * gcc.dg/fixed-point/struct-union.c: Update error messages. + +2011-01-16 Richard Sandiford + + * gcc.c-torture/execute/20101011-1.c: Skip test for MIPS16 + Linux-based targets. + +2011-01-13 Jan Hubicka + + PR tree-optimization/47276 + * gcc.dg/pr47276.c: New testcase. + +2011-01-15 Giovanni Funchal + Jonathan Wakely + + PR c++/33558 + * g++.dg/other/pr33558.C: New. + * g++.dg/other/pr33558-2.C: New. + +2011-01-14 Martin Jambor + + PR tree-optimization/45934 + PR tree-optimization/46302 + * g++.dg/ipa/devirt-c-1.C: New test. + * g++.dg/ipa/devirt-c-2.C: Likewise. + * g++.dg/ipa/devirt-c-3.C: Likewise. + * g++.dg/ipa/devirt-c-4.C: Likewise. + * g++.dg/ipa/devirt-c-5.C: Likewise. + * g++.dg/ipa/devirt-c-6.C: Likewise. + * g++.dg/ipa/devirt-6.C: Likewise. + * g++.dg/ipa/devirt-d-1.C: Likewise. + * g++.dg/torture/pr45934.C: Likewise. + +2011-01-14 Jason Merrill + + * g++.dg/cpp0x/variadic105.C: New. + +2011-01-08 Dominique d'Humieres + Rainer Orth + + PR objc/45989 + * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c + (switchfiles): XFAIL objc.dg-struct-layout-encoding-1/t02[57-9]_main.m + execution tests on i?86-*-*, x86_64-*-* and + powerpc*-apple-darwin* && ilp32. + XFAIL objc.dg-struct-layout-encoding-1/t03[01]_main.m execution + tests on i?86-*-* and x86_64-*-*. + +2011-01-14 Richard Guenther + + PR tree-optimization/47280 + * g++.dg/opt/pr47280.C: New testcase. + +2011-01-14 Jason Merrill + + * g++.dg/cpp0x/constexpr-regress1.C: New. + + * g++.dg/ext/flexary2.C: New. + +2011-01-14 Richard Guenther + + PR middle-end/47281 + * gcc.dg/torture/pr47281.c: New testcase. + * gcc.dg/tree-ssa/pr46076.c: XFAIL. + +2011-01-14 Richard Guenther + + PR tree-optimization/47286 + * gcc.dg/tree-ssa/pr47286.c: New testcase. + +2011-01-13 Kai Tietz + + PR c++/47213 + * g++.dg/ext/pr47213.C: New. + +2011-01-13 Rainer Orth + + * gfortran.dg/cray_pointers_2.f90: Use dg-timeout-factor 4. + +2011-01-13 Tobias Burnus + Mikael Morin + + PR fortran/45848 + PR fortran/47204 + * gfortran.dg/select_type_20.f90: New. + * gfortran.dg/select_type_21.f90: New. + +2011-01-13 Michael Meissner + + PR target/47251 + * gcc.target/powerpc/pr47251.c: New file, test PR 47251 fix. + +2011-01-13 Andreas Krebbel + + * gcc.dg/guality/pr36728-1.c: Disable arg1/2 checks for s390 and s390x. + * gcc.dg/guality/pr36728-2.c: Likewise. + +2011-01-13 Dodji Seketeli + + PR debug/PR46973 + * g++.dg/debug/dwarf2/template-params-9.C: New test. + +2011-01-13 Andrey Belevantsev + + PR rtl-optimization/45352 + * gcc.dg/pr45352-3.c: New. + +2011-01-12 Rodrigo Rivas Costa + + * g++.dg/cpp0x/range-for4.C: Delete useless include and duplicated + comment. + * g++.dg/cpp0x/range-for8.C: New. + * g++.dg/cpp0x/range-for9.C: New. + +2011-01-12 Kai Tietz + + PR debug/47209 + * g++.dg/debug/pr47209.C: New. + +2011-01-12 Richard Guenther + + PR lto/47259 + * gcc.dg/lto/pr47259_0.c: New testcase. + * gcc.dg/lto/pr47259_1.c: Likewise. + +2011-01-12 Iain Sandoe + + * objc-obj-c++-shared/Object1.h: Add copyright header, update + comments. Add a TEST_SUITE_ADDITIONS category for GNU runtime. + Amend NeXT version to declare a TEST_SUITE_ADDITIONS carrying the + methods missing from the OBJC2 Object. + * objc-obj-c++-shared/Object1-implementation.h: Add copyright header. + Amend implementation to use a TEST_SUITE_ADDITIONS category for both + GNU and NeXT runtimes. + * objc-obj-c++-shared/Object1.mm: Remove redundant header, update + comments. + * objc-obj-c++-shared/Object1.m: Likewise. + * objc.dg/encode-3.m: Update header use. Amend to be API2 compatible. + * objc.dg/proto-qual-1.m: Likewise. + * obj-c++.dg/proto-lossage-3.mm: Likewise. + * obj-c++.dg/proto-qual-1.mm: Likewise. + +2011-01-12 Eric Botcazou + + PR testsuite/33033 + * gcc.dg/20061124-1.c: Pass -mcpu=v9 on the SPARC. + +2011-01-12 Nicola Pero + + Fixed the Objective-C++ testsuite and updated all tests. + * lib/obj-c++.exp (obj-c++_init): Declare and set + gcc_warning_prefix and gcc_error_prefix. + * obj-c++.dg/attributes/categ-attribute-2.mm: Fixed usage of + 'dg-warning', 'dg-message' and 'dg-error'. + * obj-c++.dg/class-extension-3.mm: Likewise. + * obj-c++.dg/class-protocol-1.mm: Likewise. + * obj-c++.dg/encode-7.mm: Likewise. + * obj-c++.dg/exceptions-3.mm: Likewise. + * obj-c++.dg/exceptions-5.mm: Likewise. + * obj-c++.dg/method-12.mm: Likewise. + * obj-c++.dg/method-13.mm: Likewise. + * obj-c++.dg/method-15.mm: Likewise. + * obj-c++.dg/method-16.mm: Likewise. + * obj-c++.dg/method-4.mm: Likewise. + * obj-c++.dg/method-8.mm: Likewise. + * obj-c++.dg/method-conflict-1.mm: Likewise. + * obj-c++.dg/method-conflict-2.mm: Likewise. + * obj-c++.dg/method-conflict-3.mm: Likewise. Also, removed FIXME + and uncommented second part of the testcase now that the testsuite + works correctly. + * obj-c++.dg/method-conflict-4.mm: Likewise. Also, removed FIXME + and uncommented second part of the testcase now that the testsuite + works correctly. + * obj-c++.dg/private-1.mm: Likewise. + * obj-c++.dg/proto-lossage-4.mm: Likewise. + * obj-c++.dg/syntax-error-7.mm: Likewise. + * obj-c++.dg/warn5.mm: Likewise. + * obj-c++.dg/property/at-property-14.mm: Likewise. + * obj-c++.dg/property/at-property-16.mm: Likewise, and removed + FIXME. + * obj-c++.dg/property/at-property-18.mm: Likewise. + * obj-c++.dg/property/at-property-20.mm: Likewise, and removed + FIXME. + * obj-c++.dg/property/at-property-21.mm: Likewise. + * obj-c++.dg/property/at-property-28.mm: Likewise. + * obj-c++.dg/property/at-property-5.mm: Likewise. + * obj-c++.dg/property/dynamic-2.mm: Likewise. + * obj-c++.dg/property/property-neg-3.mm: Likewise. + * obj-c++.dg/property/synthesize-11.mm: Likewise. + * obj-c++.dg/property/synthesize-6.mm: Likewise. + * obj-c++.dg/property/synthesize-8.mm: Likewise. + * obj-c++.dg/property/synthesize-9.mm: Likewise. + * obj-c++.dg/tls/diag-5.mm: Likewise. + * obj-c++.dg/ivar-invalid-type-1.mm: Removed FIXME and uncommented + dg-error, now matched correctly. + +2011-01-12 Nicola Pero + + * objc.dg/property/at-property-29.m: New. + * obj-c++.dg/property/at-property-29.mm: New. + +2011-01-11 Rainer Orth + + * go.test/go-test.exp (go-set-goarch): New proc. + (go-gc-tests): Use it. + +2011-01-11 Dodji Seketeli + + PR debug/46955 + * g++.dg/debug/dwarf2/template-params-8.C: New test. + +2011-01-11 Richard Henderson + + * gcc-dg/tree-ssa/vrp47.c: Disable for mn10300 as well. + +2011-01-11 Jan Hubicka + + PR lto/45721 + PR lto/45375 + * gcc.dg/lto/pr45721_1.c: New file. + * gcc.dg/lto/pr45721_0.c: New file. + +2011-01-11 Richard Guenther + + PR tree-optimization/46076 + * gcc.dg/tree-ssa/pr46076.c: New testcase. + +2011-01-11 Jeff Law + + * PR tree-optimization/47086 + * gcc.dg/pr47086.c: New test. + +2011-01-11 Jason Merrill + + PR c++/46658 + * g++.dg/template/new10.C: New. + + PR c++/45520 + * g++.dg/cpp0x/lambda/lambda-this3.C: New. + +2011-01-11 Iain Sandoe + + * objc-obj-c++-shared/next-mapping.h: Add copyright header. + Split type definitions and NSConstantString class into... + * objc-obj-c++-shared/objc-test-suite-types.h: New. + * objc-obj-c++-shared/nsconstantstring-class.h: New. + * objc-obj-c++-shared/nsconstantstring-class-impl.h: New. + * objc-obj-c++-shared/nsconstantstring-class-impl.m: New. + * objc-obj-c++-shared/nsconstantstring-class-impl.mm: New. + * objc-obj-c++-shared/next-abi.h: Add copyright header, minor update + to comments. + * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h: Adjust + encode defines for newer NeXT system headers. + * obj-c++.dg/template-4.mm: Adjust to use nsconstantstring headers. + * obj-c++.dg/torture/strings/string1.mm: Likewise. + * objc.dg/foreach-5.m: Likewise. + * objc.dg/foreach-2.m: Likewise. + * objc.dg/foreach-4.m: Likewise. + * objc.dg/torture/strings/string1.m: Likewise. + * objc.dg/torture/strings/string2.m: Likewise. + * objc.dg/torture/strings/string3.m: Likewise. + * objc.dg/torture/strings/string4.m: Likewise. + * obj-c++.dg/torture/strings/const-str-3.mm: Adjust to use type + header and stand alone. + * obj-c++.dg/strings/strings-2.mm: Likewise. + * objc.dg/torture/strings/const-str-3.m: Likewise. + * objc.dg/strings/strings-2.m: Likewise. + * objc.dg/strings/const-str-12b.m: Likewise. + +2011-01-12 Richard Guenther + + PR middle-end/32511 + * gcc.dg/attr-weak-1.c: Adjust. + +2011-01-11 Paul Thomas + + PR fortran/47051 + * gfortran.dg/realloc_on_assign_2.f03 : Modify 'test1' to be + standard compliant and comment. + +2011-01-10 Jan Hubicka + + PR lto/46083 + * gcc.dg/initpri3.c: New testcase. + +2011-01-10 H.J. Lu + + PR lto/47222 + * g++.dg/torture/stackalign/test-unwind.h (g_edi): Mark it + externally visible. + (g_esi): Likewise. + (g_ebx): Likewise. + (g_ebp): Likewise. + (g_esp): Likewise. + (g_ebp_save): Likewise. + (g_esp_save): Likewise. + +2011-01-10 Rainer Orth + + * g++.dg/ipa/pr46984.C: Add dg-require-effective-target lto. + +2011-01-10 Rainer Orth + + PR tree-optimization/46021 + * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL on alpha*-*-*, + i?86-*-*, x86_64-*-*. + +2011-01-10 Jeff Law + + * PR tree-optimization/47141 + * gcc.c-torture/compile/pr47141.c: New test. + +2011-01-10 Eric Botcazou + + PR testsuite/46230 + * gcc.dg/vect/vect-vfa-slp.c: Remove XFAIL. + * gcc.dg/vect/slp-23.c: Remove XFAIL for SLP. + * gcc.dg/vect/slp-35.c: Remove XFAILs. + * gcc.dg/vect/no-tree-pre-slp-29.c: Likewise. + + PR testsuite/46230 + * gcc.dg/vect/vect-peel-1.c (main): Prevent initialization loop from + being vectorized. Adjust dg-final pattern. Remove XFAIL. + * gcc.dg/vect/vect-peel-2.c (main): Likewise. + * gcc.dg/vect/vect-peel-4.c (main): Prevent initialization loop from + being vectorized. Adjust dg-final pattern. + + PR testsuite/46230 + * gcc.dg/vect/pr33804.c: XFAIL only for ilp32. + * gcc.dg/vect/slp-24.c: Likewise. + +2011-01-10 Dave Korn + + PR c++/47218 + * g++.dg/other/pr47218-1.C: New test file. + * g++.dg/other/pr47218.C: Likewise. + * g++.dg/other/pr47218.h: New supporting header. + +2011-01-09 Nicola Pero + + PR objc/47232 + * objc.dg/attributes/invalid-attribute-1.m: New. + * obj-c++.dg/attributes/invalid-attribute-1.mm: New. + +2011-01-09 Janus Weil + + PR fortran/47224 + * gfortran.dg/proc_ptr_comp_28.f90: New. + +2011-01-09 Iain Sandoe + + * obj-c++.dg/gnu-api-2-class.mm: Skip for Darwin < 9. + * obj-c++.dg/gnu-api-2-ivar.mm: Likewise. + * obj-c++.dg/gnu-api-2-method.mm: Likewise. + * obj-c++.dg/gnu-api-2-objc.mm: Likewise. + * obj-c++.dg/gnu-api-2-object.mm: Likewise. + * obj-c++.dg/gnu-api-2-property.mm: Likewise. + * obj-c++.dg/gnu-api-2-protocol.mm: Likewise. + * obj-c++.dg/gnu-api-2-sel.mm: Likewise. + * objc.dg/gnu-api-2-class.m: Likewise. + * objc.dg/gnu-api-2-ivar.m: Likewise. + * objc.dg/gnu-api-2-method.m: Likewise. + * objc.dg/gnu-api-2-objc.m: Likewise. + * objc.dg/gnu-api-2-object.m: Likewise. + * objc.dg/gnu-api-2-property.m: Likewise. + * objc.dg/gnu-api-2-protocol.m: Likewise. + * objc.dg/gnu-api-2-sel.m: Likewise. + +2011-01-09 Iain Sandoe + + * objc.dg/foreach-1.m: Skip for Darwin < 9. + * objc.dg/objc-foreach-4.m: Likewise. + * objc.dg/objc-foreach-5.m: Skip for Darwin < 9, adjust headers. + * objc.dg/foreach-2.m: Skip for Darwin < 9, return self from init. + * objc.dg/foreach-4.m: Likewise. + * objc.dg/foreach-5.m: Likewise. + * objc.dg/foreach-3.m: Return self from init. + +2011-01-09 Thomas Koenig + + PR fortran/38536 + * gfortran.dg/iso_c_binding_c_loc_char_1.f03: New test. + +2011-01-09 Janus Weil + + PR fortran/46313 + * gfortran.dg/class_35.f90: New. + +2011-01-08 Iain Sandoe + + * objc.dg/foreach-1.m: Add "-Wall" to flags. + +2011-01-08 Nicola Pero + + PR objc/47078 + * objc.dg/invalid-method-2.m: New. + * obj-c++.dg/invalid-method-2.mm: New. + +2011-01-08 Paul Thomas + + PR fortran/46896 + * gfortran.dg/transpose_optimization_2.f90 : New test. + +2011-01-08 Jan Hubicka + + PR tree-optmization/46469 + * g++.dg/torture/pr46469.C: New testcase. + +2011-01-08 Iain Sandoe + + * objc-obj-c++-shared/next-mapping.h: Move code and definitions for + emulation of libobjc-gnu structure layout functionality to .. + * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h: New. + * objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h: New. + * objc/execute/bf-common.h: Adjust headers. + * objc/execute/bf-1.m: Likewise. + * objc/execute/bf-2.m: Likewise. + * objc/execute/bf-3.m: Likewise. + * objc/execute/bf-4.m: Likewise. + * objc/execute/bf-5.m: Likewise. + * objc/execute/bf-6.m: Likewise. + * objc/execute/bf-7.m: Likewise. + * objc/execute/bf-8.m: Likewise. + * objc/execute/bf-9.m: Likewise. + * objc/execute/bf-10.m: Likewise. + * objc/execute/bf-11.m: Likewise. + * objc/execute/bf-12.m: Likewise. + * objc/execute/bf-13.m: Likewise. + * objc/execute/bf-14.m: Likewise. + * objc/execute/bf-15.m: Likewise. + * objc/execute/bf-16.m: Likewise. + * objc/execute/bf-17.m: Likewise. + * objc/execute/bf-18.m: Likewise. + * objc/execute/bf-19.m: Likewise. + * objc/execute/bf-20.m: Likewise. + * objc/execute/bf-21.m: Likewise. + * objc/execute/bycopy-3.m: Adjust headers, add next-specific code for + objc_get_type_qualifiers (). + +2011-01-08 Thomas Koenig + + PR fortran/45777 + * gfortran.dg/dependency_39.f90: New test. + +2011-01-07 Jan Hubicka + + Get builtins tests ready for linker plugin. + * gcc.c-torture/execute/builtins/memcpy-chk.c (s2,s3,l1): Mark volatile. + * gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memcpy, my_bcopy, + my_memset, my_bzero): Mark used. + * gcc.c-torture/execute/builtins/memset-chk.c (l1, l3): Mark volatile. + * gcc.c-torture/execute/builtins/memmove-chk.c (s1,s2,s3,l1): Mark + volatile. + * gcc.c-torture/execute/builtins/mempcpy-chk.c (s2,s3,l1): Mark + volatile. + +2011-01-07 Jan Hubicka + + PR tree-optimization/46367 + * g++.dg/torture/pr46367.C: New file. + +2011-01-07 Jakub Jelinek + + PR target/47201 + * gcc.dg/pr47201.c: New test. + + PR bootstrap/47187 + * gcc.dg/tree-prof/pr47187.c: New test. + +2011-01-07 Tobias Burnus + + PR fortran/41580 + * gfortran.dg/extends_type_of_3.f90: New. + +2011-01-07 Kai Tietz + + * g++.dg/ext/dllexport-MI1.C: Adjust test. + * g++.dg/ext/dllimport-MI1.C: Likewise. + * g++.dg/ext/dllimport1.C: Add test for x86_64-*-mingw*. + * g++.dg/ext/dllimport10.C: Likewise. + * g++.dg/ext/dllimport11.C: Likewise. + * g++.dg/ext/dllimport12.C: Likewise. + * g++.dg/ext/dllimport13.C: Likewise. + * g++.dg/ext/dllimport2.C: Likewise. + * g++.dg/ext/dllimport3.C: Likewise. + * g++.dg/ext/dllimport4.C: Likewise. + * g++.dg/ext/dllimport5.C: Likewise. + * g++.dg/ext/dllimport6.C: Likewise. + * g++.dg/ext/dllimport8.C: Likewise. + * g++.dg/ext/dllimport9.C: Likewise. + * g++.dg/ext/selectany2.C: Enable test for x86_64-*-mingw* + targets, too. Additionally enable test for i?86-*-mingw*. + * g++.dg/ext/selectany1.C: Likewise. + Remove guard variable check. + +2011-01-07 Janus Weil + + PR fortran/47189 + PR fortran/47194 + * gfortran.dg/storage_size_3.f08: Extended. + +2011-01-07 Jakub Jelinek + + PR c++/47022 + * g++.dg/template/stdarg1.C: New test. + +2011-01-06 Daniel Franke + + PR fortran/47195 + * gfortran.dg/interface_33.f90: Fixed dg-error declarations. + * gfortran.dg/defined_operators_1.f90: Split the subroutine + from the interface of functions to not hide the errors that + shall be tested. + +2011-01-06 Jan Hubicka + + * gcc.dg/lto/pr47188_0.c: New testcase. + * gcc.dg/lto/pr47188_1.c: New testcase. + +2011-01-06 Daniel Franke + + PR fortran/33117 + PR fortran/46478 + * gfortran.dg/interface_33.f90: New test. + +2011-01-06 Jakub Jelinek + + PR c/47150 + * gcc.c-torture/compile/pr47150.c: New test. + +2011-01-06 Ira Rosen + + PR tree-optimization/47139 + * gcc.dg/vect/pr47139.c: New test. + +2011-01-05 Janus Weil + + PR fortran/47180 + * gfortran.dg/extends_type_of_2.f03: New. + +2011-01-05 Ulrich Weigand + + * gcc.dg/stack-usage-1.c (SIZE): Provide proper value for __SPU__. + +2011-01-05 Eric Botcazou + + * gnat.dg/opt14.adb: New test. + +2011-01-05 Thomas Koenig + + PR fortran/46017 + * gfortran.dg/allocate_error_2.f90: New test. + +2011-01-05 Janus Weil + + PR fortran/47024 + * gfortran.dg/storage_size_3.f08: New. + +2011-01-04 Jerry DeLisle + + PR libgfortran/47154 + * gfortran.dg/namelist_68.f90: New test. + +2011-01-04 Eric Botcazou + + * gnat.dg/unchecked_convert8.ad[sb]: New test. + +2011-01-04 Janus Weil + + PR fortran/46448 + * gfortran.dg/class_34.f90: New. + +2011-01-04 Ulrich Weigand + + * gcc.dg/torture/builtin-cproj-1.c: On the __SPU__ target, do not + use __builtin_inff. Skip all single-precision tests that require + Infinity. + +2011-01-03 Ulrich Weigand + + * g++.dg/torture/pr46111.C: Add dg-require-effective-target pthread. + +2011-01-03 Jakub Jelinek + + PR tree-optimization/47148 + * gcc.c-torture/execute/pr47148.c: New test. + + PR tree-optimization/47155 + * gcc.c-torture/execute/pr47155.c: New test. + + PR rtl-optimization/47157 + * gcc.c-torture/compile/pr47157.c: New test. + +2011-01-03 Ulrich Weigand + + * gcc.dg/torture/vector-shift2.c (schar): Define. + (main): Always use schar or uchar instead of plain "char" to avoid + dependencies on implementation-defined char signedness. + +2011-01-03 Martin Jambor + + PR tree-optimization/46801 + * gnat.dg/pack9.adb: Remove xfail. + +2011-01-03 Martin Jambor + + PR tree-optimization/46984 + * g++.dg/ipa/pr46984.C: New test. + +2011-01-02 Janus Weil + + PR fortran/46408 + * gfortran.dg/class_19.f03: Adjust counting of __builtin_free. + +2011-01-02 Jakub Jelinek + + PR tree-optimization/47140 + * gcc.c-torture/compile/pr47140.c: New test. + + PR rtl-optimization/47028 + * gcc.dg/pr47028.c: New test. + +2011-01-02 Nicola Pero + + * objc.dg/protocol-forward-1.m: Removed TODO. + * objc.dg/protocol-forward-2.m: New. + * obj-c++.dg/protocol-forward-2.mm: Removed TODO. + * obj-c++.dg/protocol-forward-2.mm: New. + +2011-01-01 Kai Tietz + + PR target/38662 + * g++.dg/eh/pr38662.C: New testcase. + +2011-01-01 Chung-Lin Tang + + * gcc.target/arm/vfp-1.c (test_ldst): Fixed fsts test to + scan for newline '\n'. + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index f6b2a16..19a06cd 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -5,1488 +5,8 @@ * caf/mpi.c (_gfortran_caf_register, _gfortran_caf_deregister): Ditto. * caf/libcaf.h (STAT_STOPPED_IMAGE): Sync with libgfortran.h. (_gfortran_caf_register, _gfortran_caf_deregister): Update prototype. - -2011-12-22 Janne Blomqvist - Tobias Burnus - - PR libfortran/51646 - * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Use POSIX mode - flags, omit mode argument when flags argument does not have - O_CREAT. - * io/unix.c (tempfile): Use POSIX mode flags. - * configure: Regenerate. - -2011-11-21 Andreas Tobler - - * configure: Regenerate. - -2011-11-11 Janne Blomqvist - - PR libfortran/51090 - * runtime/main.c (find_addr2line): NULL check before proceeding. - -2011-11-10 Janne Blomqvist - - * intrinsics/cpu_time.c (__cpu_time_1): Don't force inlining. - * intrinsics/random.c (rnumber_4): Remove inline attribute. - (rnumber_8, rnumber_10, rnumber_16): Likewise. - * intrinsics/system_clock.c (gf_gettime_mono): Likewise. - * intrinsics/time_1.h (ATTRIBUTE_ALWAYS_INLINE): Remove macro. - (gf_cputime): Add inline attribute for MingW version. - * io/format.c (format_hash): Remove inline attribute. - * io/io.h (memset4): Inline function from transfer.c and write.c - moved here. - * io/transfer.c (min_off): Remove inline attribute. - (memset4): Move to io.h. - * io/write.c (memset4): Likewise. - (memcpy4): Remove inline attribute. - * io/write_float.def (calculate_exp): Likewise. - -2011-11-09 Janne Blomqvist - - * intrinsics/time_1.h (gf_gettime): Simplify time() usage. - -2011-11-09 Janne Blomqvist - - * configure.ac (AC_STDC_HEADERS): Remove. - (AC_HEADER_TIME): Remove. - (AC_HAVE_HEADERS, AC_CHECK_HEADERS): Move into a single invocation - of AC_CHECK_HEADERS_ONCE, don't check for presence of C89 headers. - (AC_CHECK_MEMBERS): Use single invocation. - (AC_CHECK_FUNCS): Move into single invocation of - AC_CHEC_FUNCS_ONCE, don't check for presence of C89 functions. - * config.h.in: Regenerate. - * configure: Regenerate. - * intrinsics/clock.c: Include time.h. - (mclock): Assume clock() is present. - (mclock8): Likewise. - * intrinsics/ctime.c (strctime): Assume strftime is present. - (fdate): Assume time() is present. - (fdate_sub): Likewise. - (ctime): Likewise. - * intrinsics/date_and_time.c: Don't provide abs macro. - (HAVE_NO_DATE_TIME): Remove code related to macro which is never - set. - * intrinsics/execute_command_line.c: Assume stdlib.h is present. - * intrinsics/exit.c: Likewise. - * intrinsics/extends_type_of.c: Likewise. - * intrinsics/gerror.c: Assume strerror() is present. - * intrinsics/kill.c: Assume signal.h is present. - * intrinsics/malloc.c: Assume stdlib.h is present. - * intrinsics/move_alloc.c: Likewise. - * intrinsics/perror.c: Assume perror() is present. - * intrinsics/signal.c: Assume signal.h is present. - * intrinsics/stat.c: Assume stdlib.h is present. - * intrinsics/system.c: Likewise. - * intrinsics/time.c: Include time.h, assume time() is present. - * intrinsics/time_1.h: Conditionally include sys/time.h, - unconditionally time.h. - (gf_cputime): Do division in double, fallback using clock(). - (gf_gettime): Assume time() is present. - * intrinsics/umask.c: Assume stdlib.h is present. - * runtime/backtrace.c: Likewise. - * runtime/compile_options.c: Assume signal.h is present, assume - C89 signals are present. - * runtime/error.c: Assume signal.h and stdlib.h are present. - -2011-11-09 Janne Blomqvist - - PR fortran/46686 - * runtime/backtrace.c (show_backtrace): Fix incorrect comment. - -2011-11-09 Tobias Burnus - - * configure.ac: Make more cross-compile friendly. - * Makefile.in: Regenerate. - * aclocal.m4: Regenerate. - * config.h.in: Regenerate. - * configure: Regenerate. - -2011-11-09 Janne Blomqvist - - PR fortran/46686 - * configure.ac: Don't check execinfo.h, backtrace, - backtrace_symbols_fd. Check execve instead of execvp. Call - GCC_CHECK_UNWIND_GETIPINFO. - * runtime/backtrace.c: Don't include unused headers, include - limits.h and unwind.h. - (CAN_FORK): Check execve instead of execvp. - (GLIBC_BACKTRACE): Remove. - (bt_header): Conform to gdb backtrace format. - (struct bt_state): New struct. - (trace_function): New function. - (show_backtrace): Use _Unwind_Backtrace from libgcc instead of - glibc backtrace functions. - * Makefile.in: Regenerated. - * aclocal.m4: Regenerated. - * config.h.in: Regenerated. - * configure: Regenerated. - -2011-11-09 Janne Blomqvist - - PR libfortran/50016 - * io/inquire.c (inquire_via_unit): Flush the unit and use ssize. - * io/unix.c (buf_flush): Don't call _commit. - -2011-11-08 Francois-Xavier Coudert - - PR libfortran/47972 - * runtime/error.c (gf_strerror): Silence warning. - -2011-11-08 Francois-Xavier Coudert - - PR libfortran/47972 - * runtime/error.c (gf_strerror): Silence warning. - -2011-11-08 Francois-Xavier Coudert - - PR libfortran/47970 - * intrinsics/c99_functions.c (round): Move higher in the file. - -2011-11-07 Janne Blomqvist - - PR libfortran/45723 - * io/open.c (new_unit): Don't check file size before attempting - seek. - -2011-11-02 Rainer Orth - - * Makefile.am (AM_CPPFLAGS): Add - -I$(srcdir)/$(MULTISRCTOP)../libgcc, -I$(MULTIBUILDTOP)../libgcc. - * Makefile.in: Regenerate. - * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Remove. - * configure.ac (LIBGFOR_CHECK_GTHR_DEFAULT): Likewise. - * configure: Regenerate. - * config.h.in: Regenerate. - -2011-11-01 Janne Blomqvist - - * io/io.h (next_available_newunit): Remove prototype. - * io/unit.h (next_available_newunit): Make variable static, - initialize it. - (init_units): Don't initialize next_available_newunit. - (get_unique_unit_number): Use atomic builtin if available. - -2011-10-31 Janne Blomqvist - - * io/inquire.c (inquire_via_unit): Check whether we're at the - beginning or end if the position is unspecified. If the position - is not one of the 3 standard ones, return unspecified. - * io/io.h (update_position): Remove prototype. - * io/transfer.c (next_record): Set the position to unspecified, - letting inquire figure it out more exactly when needed. - * io/unit.c (update_position): Remove function. - -2011-10-31 Janne Blomqvist - - * io/unix.h (struct stream): Add size function pointer. - (ssize): New inline function. - (file_length): Remove prototype. - * io/unix.c (raw_size): New function. - (raw_init): Initialize st.size pointer. - (buf_size): New function. - (buf_init): Initialize st.size pointer. - (open_internal): Likewise. - (open_internal4): Likewise. - (file_length): Remove function. - * io/file_pos.c (st_rewind): Use ssize instead of file_length. - * io/open.c (test_endfile): Likewise. - * io/transfer.c (data_transfer_init): Likewise. - (next_record_r): Likewise. - (next_record_w): Likewise. - * io/unit.c (update_position): Likewise. - -2011-10-31 Janne Blomqvist - - * io/file_pos.c (st_rewind): Handle regular and special files - identically. - * io/intrinsics.c (fseek_sub): Don't check whether we think the - file is seekable, just do what the caller says. - * io/transfer.c (skip_record): First try to seek, then fallback to - reading and throwing away what we read. - * io/unit.c (update_position): Don't check whether file is - seekable, just try to do what we're told. - (unit_truncate): Likewise. - * io/unix.c (struct unix_stream): Remove special_file flag. - (buf_flush): Remove code for handling unseekable files. - (buf_seek): Likewise. - (fd_to_stream): Use buffered IO only for regular files. - (file_length): Remove is_seekable() call. - (is_seekable): Remove function. - (is_special): Likewise. - * io/unix.h: Remove prototypes for is_seekable and is_special. - -2011-09-10 Thomas Koenig - - PR fortran/49479 - * generated/m4/ifunction.m4: Always call internal_malloc_size - even when there is a zero-sized return array. - * generated/generated/maxloc1_16_i16.c: Regenerated. - * generated/generated/maxloc1_16_i1.c: Regenerated. - * generated/generated/maxloc1_16_i2.c: Regenerated. - * generated/generated/maxloc1_16_i4.c: Regenerated. - * generated/generated/maxloc1_16_i8.c: Regenerated. - * generated/generated/maxloc1_16_r10.c: Regenerated. - * generated/generated/maxloc1_16_r16.c: Regenerated. - * generated/generated/maxloc1_16_r4.c: Regenerated. - * generated/generated/maxloc1_16_r8.c: Regenerated. - * generated/generated/maxloc1_4_i16.c: Regenerated. - * generated/generated/maxloc1_4_i1.c: Regenerated. - * generated/generated/maxloc1_4_i2.c: Regenerated. - * generated/generated/maxloc1_4_i4.c: Regenerated. - * generated/generated/maxloc1_4_i8.c: Regenerated. - * generated/generated/maxloc1_4_r10.c: Regenerated. - * generated/generated/maxloc1_4_r16.c: Regenerated. - * generated/generated/maxloc1_4_r4.c: Regenerated. - * generated/generated/maxloc1_4_r8.c: Regenerated. - * generated/generated/maxloc1_8_i16.c: Regenerated. - * generated/generated/maxloc1_8_i1.c: Regenerated. - * generated/generated/maxloc1_8_i2.c: Regenerated. - * generated/generated/maxloc1_8_i4.c: Regenerated. - * generated/generated/maxloc1_8_i8.c: Regenerated. - * generated/generated/maxloc1_8_r10.c: Regenerated. - * generated/generated/maxloc1_8_r16.c: Regenerated. - * generated/generated/maxloc1_8_r4.c: Regenerated. - * generated/generated/maxloc1_8_r8.c: Regenerated. - * generated/generated/maxval_i16.c: Regenerated. - * generated/generated/maxval_i1.c: Regenerated. - * generated/generated/maxval_i2.c: Regenerated. - * generated/generated/maxval_i4.c: Regenerated. - * generated/generated/maxval_i8.c: Regenerated. - * generated/generated/maxval_r10.c: Regenerated. - * generated/generated/maxval_r16.c: Regenerated. - * generated/generated/maxval_r4.c: Regenerated. - * generated/generated/maxval_r8.c: Regenerated. - * generated/generated/minloc1_16_i16.c: Regenerated. - * generated/generated/minloc1_16_i1.c: Regenerated. - * generated/generated/minloc1_16_i2.c: Regenerated. - * generated/generated/minloc1_16_i4.c: Regenerated. - * generated/generated/minloc1_16_i8.c: Regenerated. - * generated/generated/minloc1_16_r10.c: Regenerated. - * generated/generated/minloc1_16_r16.c: Regenerated. - * generated/generated/minloc1_16_r4.c: Regenerated. - * generated/generated/minloc1_16_r8.c: Regenerated. - * generated/generated/minloc1_4_i16.c: Regenerated. - * generated/generated/minloc1_4_i1.c: Regenerated. - * generated/generated/minloc1_4_i2.c: Regenerated. - * generated/generated/minloc1_4_i4.c: Regenerated. - * generated/generated/minloc1_4_i8.c: Regenerated. - * generated/generated/minloc1_4_r10.c: Regenerated. - * generated/generated/minloc1_4_r16.c: Regenerated. - * generated/generated/minloc1_4_r4.c: Regenerated. - * generated/generated/minloc1_4_r8.c: Regenerated. - * generated/generated/minloc1_8_i16.c: Regenerated. - * generated/generated/minloc1_8_i1.c: Regenerated. - * generated/generated/minloc1_8_i2.c: Regenerated. - * generated/generated/minloc1_8_i4.c: Regenerated. - * generated/generated/minloc1_8_i8.c: Regenerated. - * generated/generated/minloc1_8_r10.c: Regenerated. - * generated/generated/minloc1_8_r16.c: Regenerated. - * generated/generated/minloc1_8_r4.c: Regenerated. - * generated/generated/minloc1_8_r8.c: Regenerated. - * generated/generated/minval_i16.c: Regenerated. - * generated/generated/minval_i1.c: Regenerated. - * generated/generated/minval_i2.c: Regenerated. - * generated/generated/minval_i4.c: Regenerated. - * generated/generated/minval_i8.c: Regenerated. - * generated/generated/minval_r10.c: Regenerated. - * generated/generated/minval_r16.c: Regenerated. - * generated/generated/minval_r4.c: Regenerated. - * generated/generated/minval_r8.c: Regenerated. - * generated/generated/product_c10.c: Regenerated. - * generated/generated/product_c16.c: Regenerated. - * generated/generated/product_c4.c: Regenerated. - * generated/generated/product_c8.c: Regenerated. - * generated/generated/product_i16.c: Regenerated. - * generated/generated/product_i1.c: Regenerated. - * generated/generated/product_i2.c: Regenerated. - * generated/generated/product_i4.c: Regenerated. - * generated/generated/product_i8.c: Regenerated. - * generated/generated/product_r10.c: Regenerated. - * generated/generated/product_r16.c: Regenerated. - * generated/generated/product_r4.c: Regenerated. - * generated/generated/product_r8.c: Regenerated. - * generated/generated/sum_c10.c: Regenerated. - * generated/generated/sum_c16.c: Regenerated. - * generated/generated/sum_c4.c: Regenerated. - * generated/generated/sum_c8.c: Regenerated. - * generated/generated/sum_i16.c: Regenerated. - * generated/generated/sum_i1.c: Regenerated. - * generated/generated/sum_i2.c: Regenerated. - * generated/generated/sum_i4.c: Regenerated. - * generated/generated/sum_i8.c: Regenerated. - * generated/generated/sum_r10.c: Regenerated. - * generated/generated/sum_r16.c: Regenerated. - * generated/generated/sum_r4.c: Regenerated. - * generated/generated/sum_r8.c: Regenerated. - -2011-09-01 Thomas Koenig - - * generated/bessel_r4.c: Regenerated. - * generated/bessel_r8.c: Regenerated. - * generated/bessel_r10.c: Regenerated. - * generated/bessel_r16.c: Regenerated. - -2011-08-29 Tobias Burnus - - * caf/libcaf.h (_gfortran_caf_deregister): Update prototype. - * caf/mpi.c (_gfortran_caf_deregister): Modify prototype, - actually free memory and add error diagnostic. - (_gfortran_caf_finalize): Add additional free calls. - * caf/single.c (_gfortran_caf_deregister): Modify prototype, - actually free memory and add error diagnostic. - (_gfortran_caf_finalize): Add additional free calls. - -2011-08-29 Thomas Koenig - - PR libfortran/50192 - * intrinsics/string_intrinsics.c (memcmp_char4): New function. - * intrinsics/string_intrinsics_inc.c: New macro MEMCMP, either - set to memcmp or memcmp_char4. - (compare_string): Use MEMCMP, with correct size for it. - * libgfortran.h: Add prototype for memcmp_char4. - -2011-08-28 Thomas Koenig - - PR fortran/40866 - * generated/iall_i1.c: Regenerated. - * generated/iall_i16.c: Regenerated. - * generated/iall_i2.c: Regenerated. - * generated/iall_i4.c: Regenerated. - * generated/iall_i8.c: Regenerated. - * generated/iany_i1.c: Regenerated. - * generated/iany_i16.c: Regenerated. - * generated/iany_i2.c: Regenerated. - * generated/iany_i4.c: Regenerated. - * generated/iany_i8.c: Regenerated. - * generated/iparity_i1.c: Regenerated. - * generated/iparity_i16.c: Regenerated. - * generated/iparity_i2.c: Regenerated. - * generated/iparity_i4.c: Regenerated. - * generated/iparity_i8.c: Regenerated. - * generated/norm2_r10.c: Regenerated. - * generated/norm2_r16.c: Regenerated. - * generated/norm2_r4.c: Regenerated. - * generated/norm2_r8.c: Regenerated. - * generated/parity_l1.c: Regenerated. - * generated/parity_l16.c: Regenerated. - * generated/parity_l2.c: Regenerated. - * generated/parity_l4.c: Regenerated. - * generated/parity_l8.c: Regenerated. - * generated/misc_specifics.F90: Regenerated (comment change). - * generated/_abs_c10.F90: Regenerated (comment change). - * generated/_abs_c16.F90: Regenerated (comment change). - * generated/_abs_c4.F90: Regenerated (comment change). - * generated/_abs_c8.F90: Regenerated (comment change). - * generated/_abs_i16.F90: Regenerated (comment change). - * generated/_abs_i4.F90: Regenerated (comment change). - * generated/_abs_i8.F90: Regenerated (comment change). - * generated/_abs_r10.F90: Regenerated (comment change). - * generated/_abs_r16.F90: Regenerated (comment change). - * generated/_abs_r4.F90: Regenerated (comment change). - * generated/_abs_r8.F90: Regenerated (comment change). - * generated/_acosh_r10.F90: Regenerated (comment change). - * generated/_acosh_r16.F90: Regenerated (comment change). - * generated/_acosh_r4.F90: Regenerated (comment change). - * generated/_acosh_r8.F90: Regenerated (comment change). - * generated/_acos_r10.F90: Regenerated (comment change). - * generated/_acos_r16.F90: Regenerated (comment change). - * generated/_acos_r4.F90: Regenerated (comment change). - * generated/_acos_r8.F90: Regenerated (comment change). - * generated/_aimag_c10.F90: Regenerated (comment change). - * generated/_aimag_c16.F90: Regenerated (comment change). - * generated/_aimag_c4.F90: Regenerated (comment change). - * generated/_aimag_c8.F90: Regenerated (comment change). - * generated/_aint_r10.F90: Regenerated (comment change). - * generated/_aint_r16.F90: Regenerated (comment change). - * generated/_aint_r4.F90: Regenerated (comment change). - * generated/_aint_r8.F90: Regenerated (comment change). - * generated/_anint_r10.F90: Regenerated (comment change). - * generated/_anint_r16.F90: Regenerated (comment change). - * generated/_anint_r4.F90: Regenerated (comment change). - * generated/_anint_r8.F90: Regenerated (comment change). - * generated/_asinh_r10.F90: Regenerated (comment change). - * generated/_asinh_r16.F90: Regenerated (comment change). - * generated/_asinh_r4.F90: Regenerated (comment change). - * generated/_asinh_r8.F90: Regenerated (comment change). - * generated/_asin_r10.F90: Regenerated (comment change). - * generated/_asin_r16.F90: Regenerated (comment change). - * generated/_asin_r4.F90: Regenerated (comment change). - * generated/_asin_r8.F90: Regenerated (comment change). - * generated/_atan2_r10.F90: Regenerated (comment change). - * generated/_atan2_r16.F90: Regenerated (comment change). - * generated/_atan2_r4.F90: Regenerated (comment change). - * generated/_atan2_r8.F90: Regenerated (comment change). - * generated/_atanh_r10.F90: Regenerated (comment change). - * generated/_atanh_r16.F90: Regenerated (comment change). - * generated/_atanh_r4.F90: Regenerated (comment change). - * generated/_atanh_r8.F90: Regenerated (comment change). - * generated/_atan_r10.F90: Regenerated (comment change). - * generated/_atan_r16.F90: Regenerated (comment change). - * generated/_atan_r4.F90: Regenerated (comment change). - * generated/_atan_r8.F90: Regenerated (comment change). - * generated/_conjg_c10.F90: Regenerated (comment change). - * generated/_conjg_c16.F90: Regenerated (comment change). - * generated/_conjg_c4.F90: Regenerated (comment change). - * generated/_conjg_c8.F90: Regenerated (comment change). - * generated/_cosh_r10.F90: Regenerated (comment change). - * generated/_cosh_r16.F90: Regenerated (comment change). - * generated/_cosh_r4.F90: Regenerated (comment change). - * generated/_cosh_r8.F90: Regenerated (comment change). - * generated/_cos_c10.F90: Regenerated (comment change). - * generated/_cos_c16.F90: Regenerated (comment change). - * generated/_cos_c4.F90: Regenerated (comment change). - * generated/_cos_c8.F90: Regenerated (comment change). - * generated/_cos_r10.F90: Regenerated (comment change). - * generated/_cos_r16.F90: Regenerated (comment change). - * generated/_cos_r4.F90: Regenerated (comment change). - * generated/_cos_r8.F90: Regenerated (comment change). - * generated/_dim_i16.F90: Regenerated (comment change). - * generated/_dim_i4.F90: Regenerated (comment change). - * generated/_dim_i8.F90: Regenerated (comment change). - * generated/_dim_r10.F90: Regenerated (comment change). - * generated/_dim_r16.F90: Regenerated (comment change). - * generated/_dim_r4.F90: Regenerated (comment change). - * generated/_dim_r8.F90: Regenerated (comment change). - * generated/_exp_c10.F90: Regenerated (comment change). - * generated/_exp_c16.F90: Regenerated (comment change). - * generated/_exp_c4.F90: Regenerated (comment change). - * generated/_exp_c8.F90: Regenerated (comment change). - * generated/_exp_r10.F90: Regenerated (comment change). - * generated/_exp_r16.F90: Regenerated (comment change). - * generated/_exp_r4.F90: Regenerated (comment change). - * generated/_exp_r8.F90: Regenerated (comment change). - * generated/_log10_r10.F90: Regenerated (comment change). - * generated/_log10_r16.F90: Regenerated (comment change). - * generated/_log10_r4.F90: Regenerated (comment change). - * generated/_log10_r8.F90: Regenerated (comment change). - * generated/_log_c10.F90: Regenerated (comment change). - * generated/_log_c16.F90: Regenerated (comment change). - * generated/_log_c4.F90: Regenerated (comment change). - * generated/_log_c8.F90: Regenerated (comment change). - * generated/_log_r10.F90: Regenerated (comment change). - * generated/_log_r16.F90: Regenerated (comment change). - * generated/_log_r4.F90: Regenerated (comment change). - * generated/_log_r8.F90: Regenerated (comment change). - * generated/_mod_i16.F90: Regenerated (comment change). - * generated/_mod_i4.F90: Regenerated (comment change). - * generated/_mod_i8.F90: Regenerated (comment change). - * generated/_mod_r10.F90: Regenerated (comment change). - * generated/_mod_r16.F90: Regenerated (comment change). - * generated/_mod_r4.F90: Regenerated (comment change). - * generated/_mod_r8.F90: Regenerated (comment change). - * generated/_sign_i16.F90: Regenerated (comment change). - * generated/_sign_i4.F90: Regenerated (comment change). - * generated/_sign_i8.F90: Regenerated (comment change). - * generated/_sign_r10.F90: Regenerated (comment change). - * generated/_sign_r16.F90: Regenerated (comment change). - * generated/_sign_r4.F90: Regenerated (comment change). - * generated/_sign_r8.F90: Regenerated (comment change). - * generated/_sinh_r10.F90: Regenerated (comment change). - * generated/_sinh_r16.F90: Regenerated (comment change). - * generated/_sinh_r4.F90: Regenerated (comment change). - * generated/_sinh_r8.F90: Regenerated (comment change). - * generated/_sin_c10.F90: Regenerated (comment change). - * generated/_sin_c16.F90: Regenerated (comment change). - * generated/_sin_c4.F90: Regenerated (comment change). - * generated/_sin_c8.F90: Regenerated (comment change). - * generated/_sin_r10.F90: Regenerated (comment change). - * generated/_sin_r16.F90: Regenerated (comment change). - * generated/_sin_r4.F90: Regenerated (comment change). - * generated/_sin_r8.F90: Regenerated (comment change). - * generated/_sqrt_c10.F90: Regenerated (comment change). - * generated/_sqrt_c16.F90: Regenerated (comment change). - * generated/_sqrt_c4.F90: Regenerated (comment change). - * generated/_sqrt_c8.F90: Regenerated (comment change). - * generated/_sqrt_r10.F90: Regenerated (comment change). - * generated/_sqrt_r16.F90: Regenerated (comment change). - * generated/_sqrt_r4.F90: Regenerated (comment change). - * generated/_sqrt_r8.F90: Regenerated (comment change). - * generated/_tanh_r10.F90: Regenerated (comment change). - * generated/_tanh_r16.F90: Regenerated (comment change). - * generated/_tanh_r4.F90: Regenerated (comment change). - * generated/_tanh_r8.F90: Regenerated (comment change). - * generated/_tan_r10.F90: Regenerated (comment change). - * generated/_tan_r16.F90: Regenerated (comment change). - * generated/_tan_r4.F90: Regenerated (comment change). - * generated/_tan_r8.F90: Regenerated (comment change). - -2011-08-18 Tobias Burnus - - PR fortran/50109 - * io/list_read.c (eat_separator): Fix skipping over "!" lines. - -2011-07-23 Andreas Schwab - - * intrinsics/ctime.c: Include . - * intrinsics/getlog.c: Likewise. - * runtime/stop.c: Likewise. - -2011-07-23 Tobias Burnus - - PR fortran/49791 - * io/list_read.c (nml_parse_qualifier): Remove check to - enabled extended read for another case. - -2011-07-15 Daniel Carrera - - * caf/mpi.c (caf_runtime_error): Change fprintf to vfprintf. - * caf/single.c (caf_runtime_error): Ditto. - -2011-07-14 Daniel Carrera - - * caf/single.c: Include stdarg.h header. - (caf_runtime_error): New function. Use "exit(EXIT_FAILURE)". - (_gfortran_caf_register): Use caf_runtime_error. - (_gfortran_caf_sync_images): Use "exit(EXIT_FAILURE)". - * caf/mpi.c (caf_runtime_error): Remove "error" parameter. - Return EXIT_FAILURE instead. - (_gfortran_caf_register): Update call to caf_runtime_error. - (_gfortran_caf_sync_all): Ditto. - (_gfortran_caf_sync_images): Ditto. - (_gfortran_caf_error_stop_str): Use "exit(EXIT_FAILURE)". - -2011-07-13 Janne Blomqvist - - PR libfortran/49296 - * io/list_read.c (read_logical): Don't error out if a valid value - is followed by EOF instead of a normal separator. - (read_integer): Likewise. - -2011-07-09 Tobias Burnus - - * runtime/error.c (sys_abort): Change argument list - from "()" to "(void)". - -2011-07-09 Tobias Burnus - Daniel Carrera - - * caf/mpi.c (runtime_error): New function. - (_gfortran_caf_register): Use it. - (_gfortran_caf_sync_all): Use it, add STAT_STOPPED_IMAGE - as possible status value. - (_gfortran_caf_sync_images): Ditto. - -2011-07-07 Tobias Burnus - - * libcaf.h (__attribute__, unlikely, likely): New macros. - (caf_register_t): Update comment. - (_gfortran_caf_register): Add stat, errmsg, errmsg_len arguments. - * single.c (_gfortran_caf_register): Ditto; add error diagnostics. - * mpi.c (_gfortran_caf_register): Ditto. - (caf_is_finalized): New global variable. - (_gfortran_caf_finalize): Use it. - -2011-07-05 Thomas Koenig - - * runtime/memory.c (internal_malloc_size): If size is zero, - allocate a single byte. - * m4/pack.m4 (pack_'rtype_code`): Don't check for zero size - for the argument of internal_malloc_size. - * m4/spread.m4 (spread_'rtype_code`): Likewise. - * m4/eoshift1.m4 (eoshift1): Don't allocate twice. Don't check - for zero size for the argument of internal_malloc_size. - * m4/eoshift3.m4: Don't check for zero size for the argument of - internal_malloc_size. - * intrinsics/pack_generic.c (pack_internal): Likewise. - (pack_s_internal): Likewise. - * intrinsics/cshift0.c (cshift0): Likewise. - * intrinsics/spread_generic.c (spread_internal): Likewise. - * intrinsics/eoshift0.c (eoshift0): Likewise. - * intrinsics/eoshift2.c (eoshift2): Likewise. - * generated/eoshift1_16.c: Regenerated. - * generated/eoshift1_4.c: Regenerated. - * generated/eoshift1_8.c: Regenerated. - * generated/eoshift3_16.c: Regenerated. - * generated/eoshift3_4.c: Regenerated. - * generated/eoshift3_8.c: Regenerated. - * generated/pack_c10.c: Regenerated. - * generated/pack_c16.c: Regenerated. - * generated/pack_c4.c: Regenerated. - * generated/pack_c8.c: Regenerated. - * generated/pack_i16.c: Regenerated. - * generated/pack_i1.c: Regenerated. - * generated/pack_i2.c: Regenerated. - * generated/pack_i4.c: Regenerated. - * generated/pack_i8.c: Regenerated. - * generated/pack_r10.c: Regenerated. - * generated/pack_r16.c: Regenerated. - * generated/pack_r4.c: Regenerated. - * generated/pack_r8.c: Regenerated. - * generated/spread_c10.c: Regenerated. - * generated/spread_c16.c: Regenerated. - * generated/spread_c4.c: Regenerated. - * generated/spread_c8.c: Regenerated. - * generated/spread_i16.c: Regenerated. - * generated/spread_i1.c: Regenerated. - * generated/spread_i2.c: Regenerated. - * generated/spread_i4.c: Regenerated. - * generated/spread_i8.c: Regenerated. - * generated/spread_r10.c: Regenerated. - * generated/spread_r16.c: Regenerated. - * generated/spread_r4.c: Regenerated. - * generated/spread_r8.c: Regenerated. - -2011-06-28 Thomas Koenig - - PR fortran/49479 - * m4/reshape.m4: If source allocation is smaller than one, set it - to one. - * intrinsics/reshape_generic.c: Likewise. - * generated/reshape_r16.c: Regenerated. - * generated/reshape_c4.c: Regenerated. - * generated/reshape_c16.c: Regenerated. - * generated/reshape_c8.c: Regenerated. - * generated/reshape_r4.c: Regenerated. - * generated/reshape_i4.c: Regenerated. - * generated/reshape_r10.c: Regenerated. - * generated/reshape_r8.c: Regenerated. - * generated/reshape_c10.c: Regenerated. - * generated/reshape_i8.c: Regenerated. - * generated/reshape_i16.c: Regenerated. - -2011-06-18 Janne Blomqvist - - PR libfortran/49296 - * io/list_read.c (read_character): Accept EOF as a separator when - reading string. - -2011-06-17 Daniel Carrera - - * caf/single.c (_gfortran_caf_register): Store the address - of all static coarrays in a linked list. - (_gfortran_caf_finalize): Free memory of staic coarrays. - * caf/mpi.c (_gfortran_caf_register): Store the address - of all static coarrays in a linked list. Initialize MPI - if necessary. - (_gfortran_caf_finalize): Free memory of staic coarrays. - (_gfortran_caf_init): Check if MPI is already initialized - before initializing again. - * caf/libcaf.h: Add a type to caf_register_t to distinguish - static coarrays and add the type caf_static_t to make the - linked list of static coarrays. - -2011-06-11 Janne Blomqvist - - * io/unix.c (buf_seek): Return error if file is not seekable. - (buf_tell): Call buf_seek. - -2011-06-11 Janne Blomqvist - - * io/unix.c (fd_to_stream): Figure out if a fd is seekable by - trying lseek(). - -2011-06-10 Daniel Carrera - - * caf/mpi.c (_gfortran_caf_sync_all, - _gfortran_caf_sync_images): Functions have void return type - and move status into parameter list. - * caf/single.c (_gfortran_caf_sync_all, - _gfortran_caf_sync_images): Functions have void return type - and move status into parameter list. - * caf/libcaf.h (_gfortran_caf_sync_all, - _gfortran_caf_sync_images): Functions have void return type - and move status into parameter list. - -2011-06-03 Richard Henderson - Rainer Orth - - * config/fpu-387.h [__sun__ && __svr4__] (sigill_hdlr): Correct - insn, insn size. - (has_sse) [!__x86_64__ && __sun__ && __svr4__]: Use movaps. - -2011-05-29 Janne Blomqvist - - PR libfortran/48931 - * libgfortran.h (find_addr2line): New prototype. - * runtime/backtrace.c (show_backtrace): Use async-signal-safe - execve and stored path of addr2line. - * runtime/compile_options.c (maybe_find_addr2line): New function. - (set_options): Call maybe_find_addr2line if backtracing is enabled. - * runtime/main.c (find_addr2line): New function. - (init): Call find_addr2line if backtracing is enabled. - (cleanup): Free addr2line_path. - -2011-05-29 Janne Blomqvist - - PR libfortran/49214 - * runtime/backtrace.c (fd_gets): Return NULL if nothing was read. - -2011-05-29 Janne Blomqvist - - PR libfortran/19155 - * io/read.c (convert_real): Check for invalid input by comparing - endptr instead of EINVAL. - (read_f): Fixup floating point input without significand. - -2011-05-22 Tobias Burnus - - * runtime/stop.c (stop_string,error_stop_string): Minor cleanup. - -2011-05-22 Janne Blomqvist - - PR libfortran/48931 - * configure.ac: Check for backtrace_symbols_fd instead of - backtrace_symbols, check for readlink. - * config.h.in: Regenerated. - * configure: Regenerated. - * runtime/backtrace.c (local_strcasestr): Remove. - (bt_header): New function. - (dump_glibc_backtrace): Remove. - (fd_gets): New function. - (show_backtrace): Rework to use backtrace_symbols_fd and pipes - avoiding functions that are not async-signal-safe, reformat - output. - * runtime/main.c (store_exe_path): Try to check /proc/self/exe - first. - -2011-05-20 Janne Blomqvist - Uros Bizjak - - PR libfortran/48977 - * configure.host: Swap order of glibc and x86 tests. - -2011-05-20 Janne Blomqvist - - * config/fpu-387.h (set_fpu): Use renamed inexact macro. - * config/fpu-aix.h (set_fpu): Clarify error messages, use renamed - inexact macro, set TRP_INEXACT for inexact exception instead of - TRP_UNDERFLOW. - * config/fpu-generic.h (set_fpu): Clarify error messages, use - renamed inexact macro. - * config/fpu-glibc.h (set_fpu): Likewise. - * config/fpu-sysv.h (set_fpu): Likewise. - -2011-05-14 Tobias Burnus - - * runtime/stop.c (error_stop_string, error_stop_numeric): - Do not backtrace for ERROR STOP. - -2011-05-14 Janne Blomqvist - - PR libfortran/48915 - * intrinsics/abort.c (abort): Call sys_abort(). - * io/unix.c (st_vprintf): Call sys_abort(). - * libgfortran.h (options_t): Remove dump_core member. - (handler): Rename to backtrace_handler. - (compile_options_t): Remove dump_core member. - (sys_exit): Remove. - (sys_abort): New function. - * runtime/backtrace.c (show_backtrace): Print a message if - backtrace is not available on target, update filter symbol name - due to backtrace_handler renaming. - * runtime/compile_options.c (backtrace_handler): New - implementation based on example in Glibc manual. - (set_options): Remove dump_core handling, make signal handler - handle more signals. - (init_compile_options): Remove dump_core. - * runtime/environ.c (variable_table[]): Remove - GFORTRAN_ERROR_DUMPCORE element. - (show_variables): Update name, call exit(). - * runtime/error.c (sys_exit): Remove. - (sys_abort): New function. - (recursion_check): Call sys_abort(). - (os_error): Call exit(). - (runtime_error): Likewise. - (runtime_error_at): Likewise. - (internal_error): Likewise. - (generate_error): Likewise. - (notify_std): Likewise. - * runtime/stop.c (stop_numeric): Call exit(). - (stop_numeric_f08): Likewise. - (stop_string): Likewise. - (error_stop_string): Call sys_abort(). - (error_stop_numeric): Print backtrace, exit with provided code. - -2011-05-14 Janne Blomqvist - - * io/unix.c (st_vprintf,st_printf): Move to runtime/error.c. - * libgfortran.h (struct options_t): Remove use_stderr field. - (st_vprintf,st_printf): Move prototypes. - (estr_write): New prototype. - * runtime/error.c (sys_exit): Use estr_write instead of st_printf. - (estr_write): New function. - (st_vprintf): Move from io/unix.c, use stack allocated buffer, - always output to stderr. - (st_printf): Move from io/unix.c. - (show_locus): Use a local variable instead of static. - (os_error): Use estr_write instead of st_printf. - (runtime_error): Likewise. - (runtime_error_at): Likewise. - (runtime_warning_at): Likewise. - (internal_error): Likewise. - (generate_error): Likewise. - (generate_warning): Likewise. - (notify_std): Likewise. - * runtime/pause.c (do_pause): Likewise. - (pause_string): Likewise. - * runtime/stop.c (stop_string): Likewise. - (error_stop_string): Likewise. - * config/fpu_aix.h (set_fpu): Likewise. - * config/fpu_generic.h (set_fpu): Likewise. - * config/fpu_glibc.h (set_fpu): Likewise. - * config/fpu-sysv.h (set_fpu): Likewise. - * runtime/backtrace.c (dump_glibc_backtrace): Likewise. - (show_backtrace): Likewise. - * runtime/environ.c (print_spaces): Likewise. - (show_string): Likewise. - (show_variables): Likewise. - (variable_table[]): Remove GFORTRAN_USE_STDERR entry. - -2011-05-14 Tobias Burnus - - PR fortran/48961 - * intrinsics/execute_command_line.c (set_cmdstat): Don't abort if - synchronously executing with WAIT=.false. - (execute_command_line): Fix setting of cmdstat and exitstat. - -2011-05-06 Tobias Burnus - - PR fortran/18918 - * caf/libcaf.h: Cleanup headers. - (_gfortran_caf_critical, _gfortran_caf_end_critical): Make stub. - (caf_register_t): New enum. - (_gfortran_caf_register, _gfortran_caf_deregister): New prototype. - * caf/single.c (_gfortran_caf_critical, - _gfortran_caf_end_critical): Remove. - (_gfortran_caf_register, _gfortran_caf_deregister): New functions. - * caf/mpi.c (_gfortran_caf_critical, - _gfortran_caf_end_critical): Remove. - (_gfortran_caf_register, _gfortran_caf_deregister): New functions. - (caf_world_window): Remove global variable. - (_gfortran_caf_init): Fix off-by-one error of this_image. - -2011-05-04 Jerry DeLisle - - PR libgfortran/48787 - * io/write_float.def (output_float): Adjust up and down rounding for - cases where 'd' = 0. Gather common code to one location. - -2011-05-01 Jerry DeLisle - - PR libgfortran/48787 - * io/write_float.def (output_float): Gather up integer declarations and - add new 'p' for scale factor. Use 'p' in place of the 'dtp' reference - everywhere. For ROUND_UP scan the digit string and only perform - rounding if something other than '0' is found. - -2011-04-29 Janne Blomqvist - - * io/unix.c (min): New macro. - (unpack_filename): Return errno number for errors. - (regular_file): Use appropriately sized buffer for path. - (compare_file_filename): Likewise. - (find_file): Likewise. - (delete_file): Likewise. - (file_exists): Likewise. - (file_size): Likewise. - (inquire_sequential): Likewise. - (inquire_direct): Likewise. - (inquire_formatted): Likewise. - (inquire_access): Likewise. - -2011-04-29 Janne Blomqvist - - PR libfortran/48488 - * io/write.c (write_real, write_real_g0): Update comments. - -2011-04-29 Jerry DeLisle - Janne Blomqvist - - PR libgfortran/48488 - PR libgfortran/48602 - PR libgfortran/48615 - PR libgfortran/48684 - PR libgfortran/48787 - * io/write.c (write_d, write_e, write_f, write_en, - write_es): Add precision compemsation parameter to call. - (set_fnode_default): Adjust default widths to assure - round trip on write and read. (write_real): Adjust call to write_float. - (write_real_g0): Calculate compensation for extra precision and adjust - call to write_float. - * io/write_float.def (output_float_FMT_G_): Use volatile rather than - asm volatile to avoid optimization issue. Correctly calculate the - number of blanks (nb) to be appended and simplify calculation logic. - (write_float): Increase MIN_FIELD_WIDTH by one to accomodate the new - default widths. Eliminate the code that attempted to reduce the - the precision used in later sprintf functions. Add call parameter to - compensate for extra precision. - -2011-04-20 Jim Meyering - - * intrinsics/move_alloc.c (move_alloc): Remove useless - if-before-free test. - * io/fbuf.c (fbuf_destroy): Likewise. - * io/format.c (save_parsed_format): Likewise. - * io/open.c (already_open): Likewise. - * io/unit.c (free_internal_unit, close_unit_1): Likewise. - * io/unix.c (mem_close): Likewise. - -2011-04-19 Jerry DeLisle - - PR libgfortran/48602 - * io/write_float.def (output_float_FMT_G): Fix reversal in conditional. - Use asm volatile to mark temp variable, avoiding optimization errors. - -2011-04-17 Jerry DeLisle - - PR libgfortran/48602 - * io/write_float.def (output_float_FMT_G): Use current rounding mode - to set the rounding parameters. (output_float): Skip rounding - if value is zero. - -2011-04-16 Janne Blomqvist - - * intrinsics/date_and_time.c (date_and_time): Remove sprintf CPP - branch. - * io/format.c (format_error): Use snprintf instead of sprintf. - * io/list_read.c: Move snprintf fallback macro to libgfortran.h. - (convert_integer): Use snprintf instead of sprintf. - (parse_repeat): Likewise. - (read_logical): Likewise. - (read_integer): Likewise. - (read_character): Likewise. - (parse_real): Likewise. - (read_complex): Likewise. - (read_real): Likewise. - (check_type): Likewise. - (nml_parse_qualifier): Add string length argument, use snprintf - instead of sprintf. - (nml_get_obj_data): Use snprintf instead of sprintf. - * io/open.c (new_unit): Remove sprintf CPP branch, use snprintf - instead of sprintf. - * io/transfer.c (require_type): Use snprintf instead of sprintf. - * io/unix.c (tempfile): Likewise. - * io/write.c (nml_write_obj): Likewise. - * io/write_float.def (output_float): Remove sprintf CPP branch, - use snprintf instead of sprintf. - * libgfortran.h: Add fallback snprintf macro from io/list_read.c. - * runtime/backtrace.c (show_backtrace): Remove sprintf CPP branch. - * runtime/main.c (store_exe_path): Use snprintf instead of - sprintf. - -2011-04-15 Jerry DeLisle - - PR libgfortran/48589 - * io/write_float.def (write_infnan): Set width properly for G0. - -2011-04-15 Tobias Burnus - - PR fortran/18918 - * Makefile.am: Build and install caf/single.c as - libcaf_single.a. - * Makefile.in: Regenerate. - -2011-04-15 Janne Blomqvist - - PR libfortran/47571 - * configure: Regenerated. - * config.h.in: Regenerated. - * acinclude.m4: Add alpha*-dec-osf* to gthread blacklist. - * configure.ac: Use separate symbol for clock_gettime in librt. - * intrinsics/system_clock.c: Use weakrefs only when needed and - supported. - -2011-04-12 Janne Blomqvist - - * configure.ac: Use AC_TYPE_* to make sure we have (u)intptr_t, - check for ptrdiff_t. - * libgfortran.h: Remove (u)intptr_t definitions, use ptrdiff_t for - index_type, change cshift0* prototypes. - * config.h.in: Regenerated. - * configure: Regenerated. - * intrinsics/cshift0.c (cshift0): Use ptrdiff_t instead of ssize_t. - * io/io.h (array_loop_spec): Use index_type instead of ssize_t. - * io/list_read.c (nml_parse_qualifier): Likewise. - * io/write.c (nml_write_obj): Likewise. - * m4/cshift0.c (cshift0_'rtype_code`): Likewise. - * generated/cshift0_*.c: Regenerated. - -2011-04-12 Janne Blomqvist - - * Makefile.am: Remove _GNU_SOURCE from AM_CPPFLAGS. - * Makefile.in: Regenerated. - -2011-04-06 Tobias Burnus - - PR fortran/18918 - * caf/mpi.c (_gfortran_caf_init, _gfortran_caf_finalize): - Add global variable caf_mpi_initialized and use it for when - finalizing. - -2011-04-04 Tobias Burnus - - * unix.c: Adapt stat DEFINEs since MinGW64 supports LFS. - (fallback_access, open_internal4, compare_file_filename, - find_file, file_size, inquire_sequential, inquire_direct, - inquire_formatted): Use "struct stat" instead of gfstat_t. - -2011-03-27 Tobias Burnus - - PR fortran/18918 - * caf/libcaf.h: New - coarray communication library. - * caf/mpi.c: New. - * caf/single.c: New. - -2011-03-23 Jerry DeLisle - - PR libgfortran/48030 - * io/read.c (read_x): Re-implement using fbuf_getc. - -2011-03-21 Rainer Orth - - PR bootstrap/48135 - * configure.ac (gfortran_use_symver): Handle --disable-symvers. - * configure: Regenerate. - -2011-03-19 John David Anglin - - PR fortran/35667 - * io/io.h (convert_infnan): Declare. - * io/read.c (convert_infnan): New. - (read_f): Use convert_infnan to convert INFs and NANs. - * list_read.c (parse_real, read_real): Likewise. - -2011-03-19 Francois-Xavier Coudert - - PR libfortran/47439 - * io/unix.c (tempfile): Work around poor mktemp() implementations. - -2011-03-16 Francois-Xavier Coudert - - PR libfortran/47883 - * acinclude.m4: Don't use AC_TRY_ macros. - * configure.ac: Likewise. - * configure: Regenerate. - -2011-03-12 Thomas Koenig - - PR libfortran/48066 - * m4/ifunction.m4: If return array is empty, return. - * m4/ifunction_logical.m4: Likewise. - * generated/all_l16.c: Regenerated. - * generated/all_l1.c: Regenerated. - * generated/all_l2.c: Regenerated. - * generated/all_l4.c: Regenerated. - * generated/all_l8.c: Regenerated. - * generated/any_l16.c: Regenerated. - * generated/any_l1.c: Regenerated. - * generated/any_l2.c: Regenerated. - * generated/any_l4.c: Regenerated. - * generated/any_l8.c: Regenerated. - * generated/count_16_l.c: Regenerated. - * generated/count_1_l.c: Regenerated. - * generated/count_2_l.c: Regenerated. - * generated/count_4_l.c: Regenerated. - * generated/count_8_l.c: Regenerated. - * generated/maxloc1_16_i16.c: Regenerated. - * generated/maxloc1_16_i1.c: Regenerated. - * generated/maxloc1_16_i2.c: Regenerated. - * generated/maxloc1_16_i4.c: Regenerated. - * generated/maxloc1_16_i8.c: Regenerated. - * generated/maxloc1_16_r10.c: Regenerated. - * generated/maxloc1_16_r16.c: Regenerated. - * generated/maxloc1_16_r4.c: Regenerated. - * generated/maxloc1_16_r8.c: Regenerated. - * generated/maxloc1_4_i16.c: Regenerated. - * generated/maxloc1_4_i1.c: Regenerated. - * generated/maxloc1_4_i2.c: Regenerated. - * generated/maxloc1_4_i4.c: Regenerated. - * generated/maxloc1_4_i8.c: Regenerated. - * generated/maxloc1_4_r10.c: Regenerated. - * generated/maxloc1_4_r16.c: Regenerated. - * generated/maxloc1_4_r4.c: Regenerated. - * generated/maxloc1_4_r8.c: Regenerated. - * generated/maxloc1_8_i16.c: Regenerated. - * generated/maxloc1_8_i1.c: Regenerated. - * generated/maxloc1_8_i2.c: Regenerated. - * generated/maxloc1_8_i4.c: Regenerated. - * generated/maxloc1_8_i8.c: Regenerated. - * generated/maxloc1_8_r10.c: Regenerated. - * generated/maxloc1_8_r16.c: Regenerated. - * generated/maxloc1_8_r4.c: Regenerated. - * generated/maxloc1_8_r8.c: Regenerated. - * generated/maxval_i16.c: Regenerated. - * generated/maxval_i1.c: Regenerated. - * generated/maxval_i2.c: Regenerated. - * generated/maxval_i4.c: Regenerated. - * generated/maxval_i8.c: Regenerated. - * generated/maxval_r10.c: Regenerated. - * generated/maxval_r16.c: Regenerated. - * generated/maxval_r4.c: Regenerated. - * generated/maxval_r8.c: Regenerated. - * generated/minloc1_16_i16.c: Regenerated. - * generated/minloc1_16_i1.c: Regenerated. - * generated/minloc1_16_i2.c: Regenerated. - * generated/minloc1_16_i4.c: Regenerated. - * generated/minloc1_16_i8.c: Regenerated. - * generated/minloc1_16_r10.c: Regenerated. - * generated/minloc1_16_r16.c: Regenerated. - * generated/minloc1_16_r4.c: Regenerated. - * generated/minloc1_16_r8.c: Regenerated. - * generated/minloc1_4_i16.c: Regenerated. - * generated/minloc1_4_i1.c: Regenerated. - * generated/minloc1_4_i2.c: Regenerated. - * generated/minloc1_4_i4.c: Regenerated. - * generated/minloc1_4_i8.c: Regenerated. - * generated/minloc1_4_r10.c: Regenerated. - * generated/minloc1_4_r16.c: Regenerated. - * generated/minloc1_4_r4.c: Regenerated. - * generated/minloc1_4_r8.c: Regenerated. - * generated/minloc1_8_i16.c: Regenerated. - * generated/minloc1_8_i1.c: Regenerated. - * generated/minloc1_8_i2.c: Regenerated. - * generated/minloc1_8_i4.c: Regenerated. - * generated/minloc1_8_i8.c: Regenerated. - * generated/minloc1_8_r10.c: Regenerated. - * generated/minloc1_8_r16.c: Regenerated. - * generated/minloc1_8_r4.c: Regenerated. - * generated/minloc1_8_r8.c: Regenerated. - * generated/minval_i16.c: Regenerated. - * generated/minval_i1.c: Regenerated. - * generated/minval_i2.c: Regenerated. - * generated/minval_i4.c: Regenerated. - * generated/minval_i8.c: Regenerated. - * generated/minval_r10.c: Regenerated. - * generated/minval_r16.c: Regenerated. - * generated/minval_r4.c: Regenerated. - * generated/minval_r8.c: Regenerated. - * generated/product_c10.c: Regenerated. - * generated/product_c16.c: Regenerated. - * generated/product_c4.c: Regenerated. - * generated/product_c8.c: Regenerated. - * generated/product_i16.c: Regenerated. - * generated/product_i1.c: Regenerated. - * generated/product_i2.c: Regenerated. - * generated/product_i4.c: Regenerated. - * generated/product_i8.c: Regenerated. - * generated/product_r10.c: Regenerated. - * generated/product_r16.c: Regenerated. - * generated/product_r4.c: Regenerated. - * generated/product_r8.c: Regenerated. - * generated/sum_c10.c: Regenerated. - * generated/sum_c16.c: Regenerated. - * generated/sum_c4.c: Regenerated. - * generated/sum_c8.c: Regenerated. - * generated/sum_i16.c: Regenerated. - * generated/sum_i1.c: Regenerated. - * generated/sum_i2.c: Regenerated. - * generated/sum_i4.c: Regenerated. - * generated/sum_i8.c: Regenerated. - * generated/sum_r10.c: Regenerated. - * generated/sum_r16.c: Regenerated. - * generated/sum_r4.c: Regenerated. - * generated/sum_r8.c: Regenerated. - -2011-03-11 Jerry DeLisle - - PR libgfortran/48047 - * io/write_float.def (write_float): Change MIN_FIELD_WIDTH to 48. - -2011-03-04 Janne Blomqvist - - PR libfortran/47802 - * intrinsics/ctime.c (strctime): Use builtins to check localtime_r - return type. - -2011-03-04 Janne Blomqvist - - PR libfortran/47802 - * intrinsics/ctime.c (strctime): Don't use return value of - localtime_r. - -2011-02-28 Jerry DeLisle - - PR libgfortran/47567 - * io/write_float.def (output_float): Move handling of w = 0 to after - output rounding. Check for zero and set zero_flag accordingly. Set - width according to zero_flag. Add better comments. - -2011-02-27 Jerry DeLisle - - PR libgfortran/47778 - * io/list_read.c (namelist_read): Intialize the error string buffere. - If pprev_nl was used during the previous namelist read and the rank - was zero, reset the pointer to NULL for the next namelist read. - -2011-02-26 Francois-Xavier Coudert - - PR libfortran/45165 - * unix.c (fallback_access): Fix file descriptor leaks. - -2011-02-25 Francois-Xavier Coudert - - * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): Set shell variable - tested in configure.host. - * configure: Regenerate. - -2011-02-24 Janne Blomqvist - - PR libfortran/47802 - * config.h.in: Regenerated. - * configure: Regenerated. - * configure.ac: Remove checks for ctime and ctime_r, add check for - strftime. - * intrinsics/date_and_time.c (localtime_r): Move fallback - implementation to time_1.h. - * intrinsics/time_1.h (localtime_r): Fallback implementation. - * intrinsics/ctime.c: Include time_1.h. - (ctime_r): Remove fallback implementation. - (strctime): New function. - (fdate): Use strctime instead of ctime_r. - (fdate_sub): Likewise. - (ctime): Likewise. - (ctime_sub): Likewise. - -2011-02-24 Jakub Jelinek - - PR fortran/47878 - * io/transfer.c (read_sf): Call fbuf_getptr only at the end, - and subtract n, dtp->u.p.sf_seen_eor and seen_comma from it. - -2011-02-24 Janne Blomqvist - - PR libfortran/47802 - * configure.ac: Add test for POSIX getpwuid_r. - * intrinsics/getlog.c (getlog): CPP test for - HAVE_POSIX_GETPWUID_R. - * config.h.in: Regenerated. - * configure: Regenerated. - -2011-02-23 Jerry DeLisle - - PR libgfortran/47567 - * io/write_float.def (output_float): Remove special case handling of - zero with width 1. - -2011-02-23 Janne Blomqvist - Jerry DeLisle - - PR libfortran/47694 - * io/fbuf.h (fbuf_getptr): New inline function. - * io/transfer.c (read_sf): Use fbuf_getptr and fbuf_getc to scan - through the string instead of fbuf_read. - -2011-02-22 Tobias Burnus - Kai-Uwe Eckhardt - - PR libfortran/47830 - * intrinsics/c99_functions.c (roundl): Make C valid for - HAVE_NEXTAFTERL. - -2011-02-19 Jerry DeLisle - - PR libgfortran/47567 - * io/write_float.def (output_float): Adjust width for F0.d to - allow space for negative signs on zero. - -2011-02-16 Jerry DeLisle - - PR libgfortran/47667 - * io/list_read.c (read_logical): Check for end of line before calling - eat_line. (read_integer): Likewise. (parse_real): Don't unget the - separator. Check for end of line before calling eat_line. - (read_complex): Allow line-end before and after parenthesis and comma. - Check for end of line before calling eat_line. (read_real): Check for - end of line before calling eat_line. - -2011-02-16 Jakub Jelinek - - PR libfortran/47757 - * gfortran.map (GFORTRAN_1.4): Export - _gfortran_{m,s}i{all,any,parity}_i{1,2,4,8,16} and - _gfortran_{cshift0,eoshift{0,2}}_16_char4. - -2011-02-15 Tobias Burnus - - PR fortran/47716 - PR fortran/47648 - * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Use check from - libquadmath, which uses more features. - * configure: Regenerate. - -2011-02-14 Jakub Jelinek - - PR fortran/47642 - * io/write_float.def (DTOAQ): Use quadmath_snprintf instead of - quadmath_flt128tostr. - * io/transfer128.c (tmp2): Initialize to quadmath_snprintf instead - of quadmath_flt128tostr. - -2011-02-13 Ralf Wildenhues - - * Makefile.in: Regenerate. - * aclocal.m4: Likewise. - * configure: Likewise. - -2011-02-05 Jerry DeLisle - - PR libgfortran/47567 - * io/write_float.def (output_float): Eliminate some redundant code. - Adjust width for case of F0.X for values of zero and all other values. - Expand cases where '*' is set to give cleaner results. - -2011-02-05 Janne Blomqvist - - PR libfortran/47571 - * intrinsics/time_1.h (GF_CLOCK_MONOTONIC): Move to system_clock.c. - (weak_gettime): Likewise. - (gf_gettime): Change API, move weak_gettime() usage to - system_clock.c - * intrinsics/system_clock.c (GTHREAD_USE_WEAK): Define. - (gf_gettime_mono): New function. - (system_clock_4): Use gf_gettime_mono(). - (system_clock_8): Likewise. - * intrinsics/date_and_time.c (date_and_time): Update gf_gettime() - usage. - -2011-02-02 Janne Blomqvist - - PR libfortran/47571 - * configure: Regenerated. - * configure.ac: Don't add librt to LIBS. - * intrinsics/time_1.h (weak_gettime): Weakref trickery for - clock_gettime(). - (gf_gettime): Use weak_gettime() instead of clock_gettime(). - -2011-02-01 Janne Blomqvist - - * intrinsics/time_1.h: Include errno.h needed by fallbacks. - -2011-01-31 Janne Blomqvist - - * intrinsics/time_1.h: Fix definition of GF_CLOCK_MONOTONIC macro. - -2011-01-31 Janne Blomqvist - - * configure.ac: Check for clock_gettime(). - * configure: Regenerated. - * config.h.in: Regenerated. - * intrinsics/time_1.h (__time_1): Rename to gf_cputime, add - times() fallback. - (gf_gettime): New function. - * intrinsics/cpu_time.c (__cpu_time_1): Update to call gf_cputime. - * intrinsics/date_and_time.c (date_and_time): Use gf_gettime. - * intrinsics/dtime.c (dtime_sub): Use gf_cputime. - * intrinsics/etime.c (etime_sub): Use gf_cputime. - * intrinsics/system_clock.c (system_clock_4): Use gf_gettime. - (system_clock_8): Use gf_gettime, increase count rate to allow - nanosecond precision, remove overflow prone branch. - -2011-01-29 Jerry DeLisle - - PR libgfortran/47434 - * io/write_float.def (write_infnan): Use calculate_sign to determine - if the sign should be given and check field widths accordingly. - -2011-01-29 Kai Tietz - - * intrinsics/ctime.c (ctime_r): Improve implementation. - -2011-01-27 Janne Blomqvist - - PR libfortran/47431 - * config.h.in: Regenerated. - * configure: Regenerated. - * configure.ac: Add check for ctime_r(). - * intrinsics/ctime.c (ctime_r): Fallback implementation. - (fdate): Use ctime_r() instead of ctime(). - (fdate_sub): Likewise. - (ctime): Likewise. - (ctime_sub): Likewise. - -2011-01-27 Janne Blomqvist - - PR libfortran/47432 - * config.h.in: Regenerated. - * configure: Regenerated. - * configure.ac: Add check for ttyname_r. - * io/unix.h: Add TTY_NAME_MAX, change stream_ttyname prototype. - * io/unix.c (stream_ttyname): Use ttyname_r if available, conform - to new prototype. - * io/inquire.c (inquire_via_unit): Use changed stream_ttyname. - * io/intrinsics.c (ttynam_sub): Likewise. - (ttynam): Likewise. - -2011-01-27 Janne Blomqvist - - PR libfortran/47491 - * configure.ac: Call AC_USE_SYSTEM_EXTENSIONS to enable common - extensions. - * config.h.in: Regenerate. - * configure: Regenerate. - -2011-01-26 Jerry DeLisle - - PR libgfortran/47285 - * io/write_float.def (write_infnan): Adjust processor selected width - to 3 if NaN. - -2011-01-26 Jerry DeLisle - - PR libgfortran/47285 - * io/write_float.def (output_float): Return SUCCESS or FAILURE and use - the result to set the padding. - -2011-01-26 Kai Tietz - - * intrinsics/getlog.c (getlog): Fix label/statement issue. - -2011-01-25 Janne Blomqvist - - PR libfortran/47375 - * config.h.in: Regenerated. - * configure: Regenerated. - * configure.ac: Add check for getpwuid_r. - * intrinsics/getlog.c (getlog): Use getpwuid_r() if available. - -2011-01-22 Janne Blomqvist - - PR libfortran/46267 - * config.h.in: Regenerated. - * configure: Regenerated. - * configure.ac: Check presence of strerror_r. - * intrinsics/gerror.c (gerror): Use gf_strerror, modify logic. - * io/unix.c (get_oserror): Remove. - * libgfortran.h (gf_strerror): Add prototype. - (get_oserror): Remove prototype. - * runtime/error.c (gf_strerror): New function. - (os_error): Use gf_strerror instead of get_oserror. - (generate_errror): Likewise. - -2011-01-17 Janne Blomqvist - - PR libfortran/47296 - * io/unix.c (tempfile): Set opp->file and opp->file_len also if an - error occurs. - -2011-01-16 Jakub Jelinek - - PR fortran/46625 - * io/write_float.def (DTOAQ): Use quadmath_flt128tostr - instead of quadmath_dtoa. - * io/transfer128.c (tmp1, tmp2): New variables, bring in - strtoflt128 and quadmath_flt128tostr. - (transfer_real128, transfer_real128_write, transfer_complex128, - transfer_complex128_write): Remove tmp1/tmp2 variables. - * io/read.c (convert_real): Use strtoflt128 instead of - quadmath_strtopQ, adjust for the changed arguments and return - value. - -2011-01-14 Jerry DeLisle - - PR libgfortran/47296 - * io/unix.c (unpack_filename): Return non-zero if the filename passed - in is NULL. - -2011-01-04 Jerry DeLisle - - PR libgfortran/47154 - * io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the - duplicate calls via next_record. - -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/libgfortran/ChangeLog-2011 b/libgfortran/ChangeLog-2011 new file mode 100644 index 0000000..f516bad --- /dev/null +++ b/libgfortran/ChangeLog-2011 @@ -0,0 +1,1485 @@ +2011-12-22 Janne Blomqvist + Tobias Burnus + + PR libfortran/51646 + * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Use POSIX mode + flags, omit mode argument when flags argument does not have + O_CREAT. + * io/unix.c (tempfile): Use POSIX mode flags. + * configure: Regenerate. + +2011-11-21 Andreas Tobler + + * configure: Regenerate. + +2011-11-11 Janne Blomqvist + + PR libfortran/51090 + * runtime/main.c (find_addr2line): NULL check before proceeding. + +2011-11-10 Janne Blomqvist + + * intrinsics/cpu_time.c (__cpu_time_1): Don't force inlining. + * intrinsics/random.c (rnumber_4): Remove inline attribute. + (rnumber_8, rnumber_10, rnumber_16): Likewise. + * intrinsics/system_clock.c (gf_gettime_mono): Likewise. + * intrinsics/time_1.h (ATTRIBUTE_ALWAYS_INLINE): Remove macro. + (gf_cputime): Add inline attribute for MingW version. + * io/format.c (format_hash): Remove inline attribute. + * io/io.h (memset4): Inline function from transfer.c and write.c + moved here. + * io/transfer.c (min_off): Remove inline attribute. + (memset4): Move to io.h. + * io/write.c (memset4): Likewise. + (memcpy4): Remove inline attribute. + * io/write_float.def (calculate_exp): Likewise. + +2011-11-09 Janne Blomqvist + + * intrinsics/time_1.h (gf_gettime): Simplify time() usage. + +2011-11-09 Janne Blomqvist + + * configure.ac (AC_STDC_HEADERS): Remove. + (AC_HEADER_TIME): Remove. + (AC_HAVE_HEADERS, AC_CHECK_HEADERS): Move into a single invocation + of AC_CHECK_HEADERS_ONCE, don't check for presence of C89 headers. + (AC_CHECK_MEMBERS): Use single invocation. + (AC_CHECK_FUNCS): Move into single invocation of + AC_CHEC_FUNCS_ONCE, don't check for presence of C89 functions. + * config.h.in: Regenerate. + * configure: Regenerate. + * intrinsics/clock.c: Include time.h. + (mclock): Assume clock() is present. + (mclock8): Likewise. + * intrinsics/ctime.c (strctime): Assume strftime is present. + (fdate): Assume time() is present. + (fdate_sub): Likewise. + (ctime): Likewise. + * intrinsics/date_and_time.c: Don't provide abs macro. + (HAVE_NO_DATE_TIME): Remove code related to macro which is never + set. + * intrinsics/execute_command_line.c: Assume stdlib.h is present. + * intrinsics/exit.c: Likewise. + * intrinsics/extends_type_of.c: Likewise. + * intrinsics/gerror.c: Assume strerror() is present. + * intrinsics/kill.c: Assume signal.h is present. + * intrinsics/malloc.c: Assume stdlib.h is present. + * intrinsics/move_alloc.c: Likewise. + * intrinsics/perror.c: Assume perror() is present. + * intrinsics/signal.c: Assume signal.h is present. + * intrinsics/stat.c: Assume stdlib.h is present. + * intrinsics/system.c: Likewise. + * intrinsics/time.c: Include time.h, assume time() is present. + * intrinsics/time_1.h: Conditionally include sys/time.h, + unconditionally time.h. + (gf_cputime): Do division in double, fallback using clock(). + (gf_gettime): Assume time() is present. + * intrinsics/umask.c: Assume stdlib.h is present. + * runtime/backtrace.c: Likewise. + * runtime/compile_options.c: Assume signal.h is present, assume + C89 signals are present. + * runtime/error.c: Assume signal.h and stdlib.h are present. + +2011-11-09 Janne Blomqvist + + PR fortran/46686 + * runtime/backtrace.c (show_backtrace): Fix incorrect comment. + +2011-11-09 Tobias Burnus + + * configure.ac: Make more cross-compile friendly. + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * config.h.in: Regenerate. + * configure: Regenerate. + +2011-11-09 Janne Blomqvist + + PR fortran/46686 + * configure.ac: Don't check execinfo.h, backtrace, + backtrace_symbols_fd. Check execve instead of execvp. Call + GCC_CHECK_UNWIND_GETIPINFO. + * runtime/backtrace.c: Don't include unused headers, include + limits.h and unwind.h. + (CAN_FORK): Check execve instead of execvp. + (GLIBC_BACKTRACE): Remove. + (bt_header): Conform to gdb backtrace format. + (struct bt_state): New struct. + (trace_function): New function. + (show_backtrace): Use _Unwind_Backtrace from libgcc instead of + glibc backtrace functions. + * Makefile.in: Regenerated. + * aclocal.m4: Regenerated. + * config.h.in: Regenerated. + * configure: Regenerated. + +2011-11-09 Janne Blomqvist + + PR libfortran/50016 + * io/inquire.c (inquire_via_unit): Flush the unit and use ssize. + * io/unix.c (buf_flush): Don't call _commit. + +2011-11-08 Francois-Xavier Coudert + + PR libfortran/47972 + * runtime/error.c (gf_strerror): Silence warning. + +2011-11-08 Francois-Xavier Coudert + + PR libfortran/47972 + * runtime/error.c (gf_strerror): Silence warning. + +2011-11-08 Francois-Xavier Coudert + + PR libfortran/47970 + * intrinsics/c99_functions.c (round): Move higher in the file. + +2011-11-07 Janne Blomqvist + + PR libfortran/45723 + * io/open.c (new_unit): Don't check file size before attempting + seek. + +2011-11-02 Rainer Orth + + * Makefile.am (AM_CPPFLAGS): Add + -I$(srcdir)/$(MULTISRCTOP)../libgcc, -I$(MULTIBUILDTOP)../libgcc. + * Makefile.in: Regenerate. + * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Remove. + * configure.ac (LIBGFOR_CHECK_GTHR_DEFAULT): Likewise. + * configure: Regenerate. + * config.h.in: Regenerate. + +2011-11-01 Janne Blomqvist + + * io/io.h (next_available_newunit): Remove prototype. + * io/unit.h (next_available_newunit): Make variable static, + initialize it. + (init_units): Don't initialize next_available_newunit. + (get_unique_unit_number): Use atomic builtin if available. + +2011-10-31 Janne Blomqvist + + * io/inquire.c (inquire_via_unit): Check whether we're at the + beginning or end if the position is unspecified. If the position + is not one of the 3 standard ones, return unspecified. + * io/io.h (update_position): Remove prototype. + * io/transfer.c (next_record): Set the position to unspecified, + letting inquire figure it out more exactly when needed. + * io/unit.c (update_position): Remove function. + +2011-10-31 Janne Blomqvist + + * io/unix.h (struct stream): Add size function pointer. + (ssize): New inline function. + (file_length): Remove prototype. + * io/unix.c (raw_size): New function. + (raw_init): Initialize st.size pointer. + (buf_size): New function. + (buf_init): Initialize st.size pointer. + (open_internal): Likewise. + (open_internal4): Likewise. + (file_length): Remove function. + * io/file_pos.c (st_rewind): Use ssize instead of file_length. + * io/open.c (test_endfile): Likewise. + * io/transfer.c (data_transfer_init): Likewise. + (next_record_r): Likewise. + (next_record_w): Likewise. + * io/unit.c (update_position): Likewise. + +2011-10-31 Janne Blomqvist + + * io/file_pos.c (st_rewind): Handle regular and special files + identically. + * io/intrinsics.c (fseek_sub): Don't check whether we think the + file is seekable, just do what the caller says. + * io/transfer.c (skip_record): First try to seek, then fallback to + reading and throwing away what we read. + * io/unit.c (update_position): Don't check whether file is + seekable, just try to do what we're told. + (unit_truncate): Likewise. + * io/unix.c (struct unix_stream): Remove special_file flag. + (buf_flush): Remove code for handling unseekable files. + (buf_seek): Likewise. + (fd_to_stream): Use buffered IO only for regular files. + (file_length): Remove is_seekable() call. + (is_seekable): Remove function. + (is_special): Likewise. + * io/unix.h: Remove prototypes for is_seekable and is_special. + +2011-09-10 Thomas Koenig + + PR fortran/49479 + * generated/m4/ifunction.m4: Always call internal_malloc_size + even when there is a zero-sized return array. + * generated/generated/maxloc1_16_i16.c: Regenerated. + * generated/generated/maxloc1_16_i1.c: Regenerated. + * generated/generated/maxloc1_16_i2.c: Regenerated. + * generated/generated/maxloc1_16_i4.c: Regenerated. + * generated/generated/maxloc1_16_i8.c: Regenerated. + * generated/generated/maxloc1_16_r10.c: Regenerated. + * generated/generated/maxloc1_16_r16.c: Regenerated. + * generated/generated/maxloc1_16_r4.c: Regenerated. + * generated/generated/maxloc1_16_r8.c: Regenerated. + * generated/generated/maxloc1_4_i16.c: Regenerated. + * generated/generated/maxloc1_4_i1.c: Regenerated. + * generated/generated/maxloc1_4_i2.c: Regenerated. + * generated/generated/maxloc1_4_i4.c: Regenerated. + * generated/generated/maxloc1_4_i8.c: Regenerated. + * generated/generated/maxloc1_4_r10.c: Regenerated. + * generated/generated/maxloc1_4_r16.c: Regenerated. + * generated/generated/maxloc1_4_r4.c: Regenerated. + * generated/generated/maxloc1_4_r8.c: Regenerated. + * generated/generated/maxloc1_8_i16.c: Regenerated. + * generated/generated/maxloc1_8_i1.c: Regenerated. + * generated/generated/maxloc1_8_i2.c: Regenerated. + * generated/generated/maxloc1_8_i4.c: Regenerated. + * generated/generated/maxloc1_8_i8.c: Regenerated. + * generated/generated/maxloc1_8_r10.c: Regenerated. + * generated/generated/maxloc1_8_r16.c: Regenerated. + * generated/generated/maxloc1_8_r4.c: Regenerated. + * generated/generated/maxloc1_8_r8.c: Regenerated. + * generated/generated/maxval_i16.c: Regenerated. + * generated/generated/maxval_i1.c: Regenerated. + * generated/generated/maxval_i2.c: Regenerated. + * generated/generated/maxval_i4.c: Regenerated. + * generated/generated/maxval_i8.c: Regenerated. + * generated/generated/maxval_r10.c: Regenerated. + * generated/generated/maxval_r16.c: Regenerated. + * generated/generated/maxval_r4.c: Regenerated. + * generated/generated/maxval_r8.c: Regenerated. + * generated/generated/minloc1_16_i16.c: Regenerated. + * generated/generated/minloc1_16_i1.c: Regenerated. + * generated/generated/minloc1_16_i2.c: Regenerated. + * generated/generated/minloc1_16_i4.c: Regenerated. + * generated/generated/minloc1_16_i8.c: Regenerated. + * generated/generated/minloc1_16_r10.c: Regenerated. + * generated/generated/minloc1_16_r16.c: Regenerated. + * generated/generated/minloc1_16_r4.c: Regenerated. + * generated/generated/minloc1_16_r8.c: Regenerated. + * generated/generated/minloc1_4_i16.c: Regenerated. + * generated/generated/minloc1_4_i1.c: Regenerated. + * generated/generated/minloc1_4_i2.c: Regenerated. + * generated/generated/minloc1_4_i4.c: Regenerated. + * generated/generated/minloc1_4_i8.c: Regenerated. + * generated/generated/minloc1_4_r10.c: Regenerated. + * generated/generated/minloc1_4_r16.c: Regenerated. + * generated/generated/minloc1_4_r4.c: Regenerated. + * generated/generated/minloc1_4_r8.c: Regenerated. + * generated/generated/minloc1_8_i16.c: Regenerated. + * generated/generated/minloc1_8_i1.c: Regenerated. + * generated/generated/minloc1_8_i2.c: Regenerated. + * generated/generated/minloc1_8_i4.c: Regenerated. + * generated/generated/minloc1_8_i8.c: Regenerated. + * generated/generated/minloc1_8_r10.c: Regenerated. + * generated/generated/minloc1_8_r16.c: Regenerated. + * generated/generated/minloc1_8_r4.c: Regenerated. + * generated/generated/minloc1_8_r8.c: Regenerated. + * generated/generated/minval_i16.c: Regenerated. + * generated/generated/minval_i1.c: Regenerated. + * generated/generated/minval_i2.c: Regenerated. + * generated/generated/minval_i4.c: Regenerated. + * generated/generated/minval_i8.c: Regenerated. + * generated/generated/minval_r10.c: Regenerated. + * generated/generated/minval_r16.c: Regenerated. + * generated/generated/minval_r4.c: Regenerated. + * generated/generated/minval_r8.c: Regenerated. + * generated/generated/product_c10.c: Regenerated. + * generated/generated/product_c16.c: Regenerated. + * generated/generated/product_c4.c: Regenerated. + * generated/generated/product_c8.c: Regenerated. + * generated/generated/product_i16.c: Regenerated. + * generated/generated/product_i1.c: Regenerated. + * generated/generated/product_i2.c: Regenerated. + * generated/generated/product_i4.c: Regenerated. + * generated/generated/product_i8.c: Regenerated. + * generated/generated/product_r10.c: Regenerated. + * generated/generated/product_r16.c: Regenerated. + * generated/generated/product_r4.c: Regenerated. + * generated/generated/product_r8.c: Regenerated. + * generated/generated/sum_c10.c: Regenerated. + * generated/generated/sum_c16.c: Regenerated. + * generated/generated/sum_c4.c: Regenerated. + * generated/generated/sum_c8.c: Regenerated. + * generated/generated/sum_i16.c: Regenerated. + * generated/generated/sum_i1.c: Regenerated. + * generated/generated/sum_i2.c: Regenerated. + * generated/generated/sum_i4.c: Regenerated. + * generated/generated/sum_i8.c: Regenerated. + * generated/generated/sum_r10.c: Regenerated. + * generated/generated/sum_r16.c: Regenerated. + * generated/generated/sum_r4.c: Regenerated. + * generated/generated/sum_r8.c: Regenerated. + +2011-09-01 Thomas Koenig + + * generated/bessel_r4.c: Regenerated. + * generated/bessel_r8.c: Regenerated. + * generated/bessel_r10.c: Regenerated. + * generated/bessel_r16.c: Regenerated. + +2011-08-29 Tobias Burnus + + * caf/libcaf.h (_gfortran_caf_deregister): Update prototype. + * caf/mpi.c (_gfortran_caf_deregister): Modify prototype, + actually free memory and add error diagnostic. + (_gfortran_caf_finalize): Add additional free calls. + * caf/single.c (_gfortran_caf_deregister): Modify prototype, + actually free memory and add error diagnostic. + (_gfortran_caf_finalize): Add additional free calls. + +2011-08-29 Thomas Koenig + + PR libfortran/50192 + * intrinsics/string_intrinsics.c (memcmp_char4): New function. + * intrinsics/string_intrinsics_inc.c: New macro MEMCMP, either + set to memcmp or memcmp_char4. + (compare_string): Use MEMCMP, with correct size for it. + * libgfortran.h: Add prototype for memcmp_char4. + +2011-08-28 Thomas Koenig + + PR fortran/40866 + * generated/iall_i1.c: Regenerated. + * generated/iall_i16.c: Regenerated. + * generated/iall_i2.c: Regenerated. + * generated/iall_i4.c: Regenerated. + * generated/iall_i8.c: Regenerated. + * generated/iany_i1.c: Regenerated. + * generated/iany_i16.c: Regenerated. + * generated/iany_i2.c: Regenerated. + * generated/iany_i4.c: Regenerated. + * generated/iany_i8.c: Regenerated. + * generated/iparity_i1.c: Regenerated. + * generated/iparity_i16.c: Regenerated. + * generated/iparity_i2.c: Regenerated. + * generated/iparity_i4.c: Regenerated. + * generated/iparity_i8.c: Regenerated. + * generated/norm2_r10.c: Regenerated. + * generated/norm2_r16.c: Regenerated. + * generated/norm2_r4.c: Regenerated. + * generated/norm2_r8.c: Regenerated. + * generated/parity_l1.c: Regenerated. + * generated/parity_l16.c: Regenerated. + * generated/parity_l2.c: Regenerated. + * generated/parity_l4.c: Regenerated. + * generated/parity_l8.c: Regenerated. + * generated/misc_specifics.F90: Regenerated (comment change). + * generated/_abs_c10.F90: Regenerated (comment change). + * generated/_abs_c16.F90: Regenerated (comment change). + * generated/_abs_c4.F90: Regenerated (comment change). + * generated/_abs_c8.F90: Regenerated (comment change). + * generated/_abs_i16.F90: Regenerated (comment change). + * generated/_abs_i4.F90: Regenerated (comment change). + * generated/_abs_i8.F90: Regenerated (comment change). + * generated/_abs_r10.F90: Regenerated (comment change). + * generated/_abs_r16.F90: Regenerated (comment change). + * generated/_abs_r4.F90: Regenerated (comment change). + * generated/_abs_r8.F90: Regenerated (comment change). + * generated/_acosh_r10.F90: Regenerated (comment change). + * generated/_acosh_r16.F90: Regenerated (comment change). + * generated/_acosh_r4.F90: Regenerated (comment change). + * generated/_acosh_r8.F90: Regenerated (comment change). + * generated/_acos_r10.F90: Regenerated (comment change). + * generated/_acos_r16.F90: Regenerated (comment change). + * generated/_acos_r4.F90: Regenerated (comment change). + * generated/_acos_r8.F90: Regenerated (comment change). + * generated/_aimag_c10.F90: Regenerated (comment change). + * generated/_aimag_c16.F90: Regenerated (comment change). + * generated/_aimag_c4.F90: Regenerated (comment change). + * generated/_aimag_c8.F90: Regenerated (comment change). + * generated/_aint_r10.F90: Regenerated (comment change). + * generated/_aint_r16.F90: Regenerated (comment change). + * generated/_aint_r4.F90: Regenerated (comment change). + * generated/_aint_r8.F90: Regenerated (comment change). + * generated/_anint_r10.F90: Regenerated (comment change). + * generated/_anint_r16.F90: Regenerated (comment change). + * generated/_anint_r4.F90: Regenerated (comment change). + * generated/_anint_r8.F90: Regenerated (comment change). + * generated/_asinh_r10.F90: Regenerated (comment change). + * generated/_asinh_r16.F90: Regenerated (comment change). + * generated/_asinh_r4.F90: Regenerated (comment change). + * generated/_asinh_r8.F90: Regenerated (comment change). + * generated/_asin_r10.F90: Regenerated (comment change). + * generated/_asin_r16.F90: Regenerated (comment change). + * generated/_asin_r4.F90: Regenerated (comment change). + * generated/_asin_r8.F90: Regenerated (comment change). + * generated/_atan2_r10.F90: Regenerated (comment change). + * generated/_atan2_r16.F90: Regenerated (comment change). + * generated/_atan2_r4.F90: Regenerated (comment change). + * generated/_atan2_r8.F90: Regenerated (comment change). + * generated/_atanh_r10.F90: Regenerated (comment change). + * generated/_atanh_r16.F90: Regenerated (comment change). + * generated/_atanh_r4.F90: Regenerated (comment change). + * generated/_atanh_r8.F90: Regenerated (comment change). + * generated/_atan_r10.F90: Regenerated (comment change). + * generated/_atan_r16.F90: Regenerated (comment change). + * generated/_atan_r4.F90: Regenerated (comment change). + * generated/_atan_r8.F90: Regenerated (comment change). + * generated/_conjg_c10.F90: Regenerated (comment change). + * generated/_conjg_c16.F90: Regenerated (comment change). + * generated/_conjg_c4.F90: Regenerated (comment change). + * generated/_conjg_c8.F90: Regenerated (comment change). + * generated/_cosh_r10.F90: Regenerated (comment change). + * generated/_cosh_r16.F90: Regenerated (comment change). + * generated/_cosh_r4.F90: Regenerated (comment change). + * generated/_cosh_r8.F90: Regenerated (comment change). + * generated/_cos_c10.F90: Regenerated (comment change). + * generated/_cos_c16.F90: Regenerated (comment change). + * generated/_cos_c4.F90: Regenerated (comment change). + * generated/_cos_c8.F90: Regenerated (comment change). + * generated/_cos_r10.F90: Regenerated (comment change). + * generated/_cos_r16.F90: Regenerated (comment change). + * generated/_cos_r4.F90: Regenerated (comment change). + * generated/_cos_r8.F90: Regenerated (comment change). + * generated/_dim_i16.F90: Regenerated (comment change). + * generated/_dim_i4.F90: Regenerated (comment change). + * generated/_dim_i8.F90: Regenerated (comment change). + * generated/_dim_r10.F90: Regenerated (comment change). + * generated/_dim_r16.F90: Regenerated (comment change). + * generated/_dim_r4.F90: Regenerated (comment change). + * generated/_dim_r8.F90: Regenerated (comment change). + * generated/_exp_c10.F90: Regenerated (comment change). + * generated/_exp_c16.F90: Regenerated (comment change). + * generated/_exp_c4.F90: Regenerated (comment change). + * generated/_exp_c8.F90: Regenerated (comment change). + * generated/_exp_r10.F90: Regenerated (comment change). + * generated/_exp_r16.F90: Regenerated (comment change). + * generated/_exp_r4.F90: Regenerated (comment change). + * generated/_exp_r8.F90: Regenerated (comment change). + * generated/_log10_r10.F90: Regenerated (comment change). + * generated/_log10_r16.F90: Regenerated (comment change). + * generated/_log10_r4.F90: Regenerated (comment change). + * generated/_log10_r8.F90: Regenerated (comment change). + * generated/_log_c10.F90: Regenerated (comment change). + * generated/_log_c16.F90: Regenerated (comment change). + * generated/_log_c4.F90: Regenerated (comment change). + * generated/_log_c8.F90: Regenerated (comment change). + * generated/_log_r10.F90: Regenerated (comment change). + * generated/_log_r16.F90: Regenerated (comment change). + * generated/_log_r4.F90: Regenerated (comment change). + * generated/_log_r8.F90: Regenerated (comment change). + * generated/_mod_i16.F90: Regenerated (comment change). + * generated/_mod_i4.F90: Regenerated (comment change). + * generated/_mod_i8.F90: Regenerated (comment change). + * generated/_mod_r10.F90: Regenerated (comment change). + * generated/_mod_r16.F90: Regenerated (comment change). + * generated/_mod_r4.F90: Regenerated (comment change). + * generated/_mod_r8.F90: Regenerated (comment change). + * generated/_sign_i16.F90: Regenerated (comment change). + * generated/_sign_i4.F90: Regenerated (comment change). + * generated/_sign_i8.F90: Regenerated (comment change). + * generated/_sign_r10.F90: Regenerated (comment change). + * generated/_sign_r16.F90: Regenerated (comment change). + * generated/_sign_r4.F90: Regenerated (comment change). + * generated/_sign_r8.F90: Regenerated (comment change). + * generated/_sinh_r10.F90: Regenerated (comment change). + * generated/_sinh_r16.F90: Regenerated (comment change). + * generated/_sinh_r4.F90: Regenerated (comment change). + * generated/_sinh_r8.F90: Regenerated (comment change). + * generated/_sin_c10.F90: Regenerated (comment change). + * generated/_sin_c16.F90: Regenerated (comment change). + * generated/_sin_c4.F90: Regenerated (comment change). + * generated/_sin_c8.F90: Regenerated (comment change). + * generated/_sin_r10.F90: Regenerated (comment change). + * generated/_sin_r16.F90: Regenerated (comment change). + * generated/_sin_r4.F90: Regenerated (comment change). + * generated/_sin_r8.F90: Regenerated (comment change). + * generated/_sqrt_c10.F90: Regenerated (comment change). + * generated/_sqrt_c16.F90: Regenerated (comment change). + * generated/_sqrt_c4.F90: Regenerated (comment change). + * generated/_sqrt_c8.F90: Regenerated (comment change). + * generated/_sqrt_r10.F90: Regenerated (comment change). + * generated/_sqrt_r16.F90: Regenerated (comment change). + * generated/_sqrt_r4.F90: Regenerated (comment change). + * generated/_sqrt_r8.F90: Regenerated (comment change). + * generated/_tanh_r10.F90: Regenerated (comment change). + * generated/_tanh_r16.F90: Regenerated (comment change). + * generated/_tanh_r4.F90: Regenerated (comment change). + * generated/_tanh_r8.F90: Regenerated (comment change). + * generated/_tan_r10.F90: Regenerated (comment change). + * generated/_tan_r16.F90: Regenerated (comment change). + * generated/_tan_r4.F90: Regenerated (comment change). + * generated/_tan_r8.F90: Regenerated (comment change). + +2011-08-18 Tobias Burnus + + PR fortran/50109 + * io/list_read.c (eat_separator): Fix skipping over "!" lines. + +2011-07-23 Andreas Schwab + + * intrinsics/ctime.c: Include . + * intrinsics/getlog.c: Likewise. + * runtime/stop.c: Likewise. + +2011-07-23 Tobias Burnus + + PR fortran/49791 + * io/list_read.c (nml_parse_qualifier): Remove check to + enabled extended read for another case. + +2011-07-15 Daniel Carrera + + * caf/mpi.c (caf_runtime_error): Change fprintf to vfprintf. + * caf/single.c (caf_runtime_error): Ditto. + +2011-07-14 Daniel Carrera + + * caf/single.c: Include stdarg.h header. + (caf_runtime_error): New function. Use "exit(EXIT_FAILURE)". + (_gfortran_caf_register): Use caf_runtime_error. + (_gfortran_caf_sync_images): Use "exit(EXIT_FAILURE)". + * caf/mpi.c (caf_runtime_error): Remove "error" parameter. + Return EXIT_FAILURE instead. + (_gfortran_caf_register): Update call to caf_runtime_error. + (_gfortran_caf_sync_all): Ditto. + (_gfortran_caf_sync_images): Ditto. + (_gfortran_caf_error_stop_str): Use "exit(EXIT_FAILURE)". + +2011-07-13 Janne Blomqvist + + PR libfortran/49296 + * io/list_read.c (read_logical): Don't error out if a valid value + is followed by EOF instead of a normal separator. + (read_integer): Likewise. + +2011-07-09 Tobias Burnus + + * runtime/error.c (sys_abort): Change argument list + from "()" to "(void)". + +2011-07-09 Tobias Burnus + Daniel Carrera + + * caf/mpi.c (runtime_error): New function. + (_gfortran_caf_register): Use it. + (_gfortran_caf_sync_all): Use it, add STAT_STOPPED_IMAGE + as possible status value. + (_gfortran_caf_sync_images): Ditto. + +2011-07-07 Tobias Burnus + + * libcaf.h (__attribute__, unlikely, likely): New macros. + (caf_register_t): Update comment. + (_gfortran_caf_register): Add stat, errmsg, errmsg_len arguments. + * single.c (_gfortran_caf_register): Ditto; add error diagnostics. + * mpi.c (_gfortran_caf_register): Ditto. + (caf_is_finalized): New global variable. + (_gfortran_caf_finalize): Use it. + +2011-07-05 Thomas Koenig + + * runtime/memory.c (internal_malloc_size): If size is zero, + allocate a single byte. + * m4/pack.m4 (pack_'rtype_code`): Don't check for zero size + for the argument of internal_malloc_size. + * m4/spread.m4 (spread_'rtype_code`): Likewise. + * m4/eoshift1.m4 (eoshift1): Don't allocate twice. Don't check + for zero size for the argument of internal_malloc_size. + * m4/eoshift3.m4: Don't check for zero size for the argument of + internal_malloc_size. + * intrinsics/pack_generic.c (pack_internal): Likewise. + (pack_s_internal): Likewise. + * intrinsics/cshift0.c (cshift0): Likewise. + * intrinsics/spread_generic.c (spread_internal): Likewise. + * intrinsics/eoshift0.c (eoshift0): Likewise. + * intrinsics/eoshift2.c (eoshift2): Likewise. + * generated/eoshift1_16.c: Regenerated. + * generated/eoshift1_4.c: Regenerated. + * generated/eoshift1_8.c: Regenerated. + * generated/eoshift3_16.c: Regenerated. + * generated/eoshift3_4.c: Regenerated. + * generated/eoshift3_8.c: Regenerated. + * generated/pack_c10.c: Regenerated. + * generated/pack_c16.c: Regenerated. + * generated/pack_c4.c: Regenerated. + * generated/pack_c8.c: Regenerated. + * generated/pack_i16.c: Regenerated. + * generated/pack_i1.c: Regenerated. + * generated/pack_i2.c: Regenerated. + * generated/pack_i4.c: Regenerated. + * generated/pack_i8.c: Regenerated. + * generated/pack_r10.c: Regenerated. + * generated/pack_r16.c: Regenerated. + * generated/pack_r4.c: Regenerated. + * generated/pack_r8.c: Regenerated. + * generated/spread_c10.c: Regenerated. + * generated/spread_c16.c: Regenerated. + * generated/spread_c4.c: Regenerated. + * generated/spread_c8.c: Regenerated. + * generated/spread_i16.c: Regenerated. + * generated/spread_i1.c: Regenerated. + * generated/spread_i2.c: Regenerated. + * generated/spread_i4.c: Regenerated. + * generated/spread_i8.c: Regenerated. + * generated/spread_r10.c: Regenerated. + * generated/spread_r16.c: Regenerated. + * generated/spread_r4.c: Regenerated. + * generated/spread_r8.c: Regenerated. + +2011-06-28 Thomas Koenig + + PR fortran/49479 + * m4/reshape.m4: If source allocation is smaller than one, set it + to one. + * intrinsics/reshape_generic.c: Likewise. + * generated/reshape_r16.c: Regenerated. + * generated/reshape_c4.c: Regenerated. + * generated/reshape_c16.c: Regenerated. + * generated/reshape_c8.c: Regenerated. + * generated/reshape_r4.c: Regenerated. + * generated/reshape_i4.c: Regenerated. + * generated/reshape_r10.c: Regenerated. + * generated/reshape_r8.c: Regenerated. + * generated/reshape_c10.c: Regenerated. + * generated/reshape_i8.c: Regenerated. + * generated/reshape_i16.c: Regenerated. + +2011-06-18 Janne Blomqvist + + PR libfortran/49296 + * io/list_read.c (read_character): Accept EOF as a separator when + reading string. + +2011-06-17 Daniel Carrera + + * caf/single.c (_gfortran_caf_register): Store the address + of all static coarrays in a linked list. + (_gfortran_caf_finalize): Free memory of staic coarrays. + * caf/mpi.c (_gfortran_caf_register): Store the address + of all static coarrays in a linked list. Initialize MPI + if necessary. + (_gfortran_caf_finalize): Free memory of staic coarrays. + (_gfortran_caf_init): Check if MPI is already initialized + before initializing again. + * caf/libcaf.h: Add a type to caf_register_t to distinguish + static coarrays and add the type caf_static_t to make the + linked list of static coarrays. + +2011-06-11 Janne Blomqvist + + * io/unix.c (buf_seek): Return error if file is not seekable. + (buf_tell): Call buf_seek. + +2011-06-11 Janne Blomqvist + + * io/unix.c (fd_to_stream): Figure out if a fd is seekable by + trying lseek(). + +2011-06-10 Daniel Carrera + + * caf/mpi.c (_gfortran_caf_sync_all, + _gfortran_caf_sync_images): Functions have void return type + and move status into parameter list. + * caf/single.c (_gfortran_caf_sync_all, + _gfortran_caf_sync_images): Functions have void return type + and move status into parameter list. + * caf/libcaf.h (_gfortran_caf_sync_all, + _gfortran_caf_sync_images): Functions have void return type + and move status into parameter list. + +2011-06-03 Richard Henderson + Rainer Orth + + * config/fpu-387.h [__sun__ && __svr4__] (sigill_hdlr): Correct + insn, insn size. + (has_sse) [!__x86_64__ && __sun__ && __svr4__]: Use movaps. + +2011-05-29 Janne Blomqvist + + PR libfortran/48931 + * libgfortran.h (find_addr2line): New prototype. + * runtime/backtrace.c (show_backtrace): Use async-signal-safe + execve and stored path of addr2line. + * runtime/compile_options.c (maybe_find_addr2line): New function. + (set_options): Call maybe_find_addr2line if backtracing is enabled. + * runtime/main.c (find_addr2line): New function. + (init): Call find_addr2line if backtracing is enabled. + (cleanup): Free addr2line_path. + +2011-05-29 Janne Blomqvist + + PR libfortran/49214 + * runtime/backtrace.c (fd_gets): Return NULL if nothing was read. + +2011-05-29 Janne Blomqvist + + PR libfortran/19155 + * io/read.c (convert_real): Check for invalid input by comparing + endptr instead of EINVAL. + (read_f): Fixup floating point input without significand. + +2011-05-22 Tobias Burnus + + * runtime/stop.c (stop_string,error_stop_string): Minor cleanup. + +2011-05-22 Janne Blomqvist + + PR libfortran/48931 + * configure.ac: Check for backtrace_symbols_fd instead of + backtrace_symbols, check for readlink. + * config.h.in: Regenerated. + * configure: Regenerated. + * runtime/backtrace.c (local_strcasestr): Remove. + (bt_header): New function. + (dump_glibc_backtrace): Remove. + (fd_gets): New function. + (show_backtrace): Rework to use backtrace_symbols_fd and pipes + avoiding functions that are not async-signal-safe, reformat + output. + * runtime/main.c (store_exe_path): Try to check /proc/self/exe + first. + +2011-05-20 Janne Blomqvist + Uros Bizjak + + PR libfortran/48977 + * configure.host: Swap order of glibc and x86 tests. + +2011-05-20 Janne Blomqvist + + * config/fpu-387.h (set_fpu): Use renamed inexact macro. + * config/fpu-aix.h (set_fpu): Clarify error messages, use renamed + inexact macro, set TRP_INEXACT for inexact exception instead of + TRP_UNDERFLOW. + * config/fpu-generic.h (set_fpu): Clarify error messages, use + renamed inexact macro. + * config/fpu-glibc.h (set_fpu): Likewise. + * config/fpu-sysv.h (set_fpu): Likewise. + +2011-05-14 Tobias Burnus + + * runtime/stop.c (error_stop_string, error_stop_numeric): + Do not backtrace for ERROR STOP. + +2011-05-14 Janne Blomqvist + + PR libfortran/48915 + * intrinsics/abort.c (abort): Call sys_abort(). + * io/unix.c (st_vprintf): Call sys_abort(). + * libgfortran.h (options_t): Remove dump_core member. + (handler): Rename to backtrace_handler. + (compile_options_t): Remove dump_core member. + (sys_exit): Remove. + (sys_abort): New function. + * runtime/backtrace.c (show_backtrace): Print a message if + backtrace is not available on target, update filter symbol name + due to backtrace_handler renaming. + * runtime/compile_options.c (backtrace_handler): New + implementation based on example in Glibc manual. + (set_options): Remove dump_core handling, make signal handler + handle more signals. + (init_compile_options): Remove dump_core. + * runtime/environ.c (variable_table[]): Remove + GFORTRAN_ERROR_DUMPCORE element. + (show_variables): Update name, call exit(). + * runtime/error.c (sys_exit): Remove. + (sys_abort): New function. + (recursion_check): Call sys_abort(). + (os_error): Call exit(). + (runtime_error): Likewise. + (runtime_error_at): Likewise. + (internal_error): Likewise. + (generate_error): Likewise. + (notify_std): Likewise. + * runtime/stop.c (stop_numeric): Call exit(). + (stop_numeric_f08): Likewise. + (stop_string): Likewise. + (error_stop_string): Call sys_abort(). + (error_stop_numeric): Print backtrace, exit with provided code. + +2011-05-14 Janne Blomqvist + + * io/unix.c (st_vprintf,st_printf): Move to runtime/error.c. + * libgfortran.h (struct options_t): Remove use_stderr field. + (st_vprintf,st_printf): Move prototypes. + (estr_write): New prototype. + * runtime/error.c (sys_exit): Use estr_write instead of st_printf. + (estr_write): New function. + (st_vprintf): Move from io/unix.c, use stack allocated buffer, + always output to stderr. + (st_printf): Move from io/unix.c. + (show_locus): Use a local variable instead of static. + (os_error): Use estr_write instead of st_printf. + (runtime_error): Likewise. + (runtime_error_at): Likewise. + (runtime_warning_at): Likewise. + (internal_error): Likewise. + (generate_error): Likewise. + (generate_warning): Likewise. + (notify_std): Likewise. + * runtime/pause.c (do_pause): Likewise. + (pause_string): Likewise. + * runtime/stop.c (stop_string): Likewise. + (error_stop_string): Likewise. + * config/fpu_aix.h (set_fpu): Likewise. + * config/fpu_generic.h (set_fpu): Likewise. + * config/fpu_glibc.h (set_fpu): Likewise. + * config/fpu-sysv.h (set_fpu): Likewise. + * runtime/backtrace.c (dump_glibc_backtrace): Likewise. + (show_backtrace): Likewise. + * runtime/environ.c (print_spaces): Likewise. + (show_string): Likewise. + (show_variables): Likewise. + (variable_table[]): Remove GFORTRAN_USE_STDERR entry. + +2011-05-14 Tobias Burnus + + PR fortran/48961 + * intrinsics/execute_command_line.c (set_cmdstat): Don't abort if + synchronously executing with WAIT=.false. + (execute_command_line): Fix setting of cmdstat and exitstat. + +2011-05-06 Tobias Burnus + + PR fortran/18918 + * caf/libcaf.h: Cleanup headers. + (_gfortran_caf_critical, _gfortran_caf_end_critical): Make stub. + (caf_register_t): New enum. + (_gfortran_caf_register, _gfortran_caf_deregister): New prototype. + * caf/single.c (_gfortran_caf_critical, + _gfortran_caf_end_critical): Remove. + (_gfortran_caf_register, _gfortran_caf_deregister): New functions. + * caf/mpi.c (_gfortran_caf_critical, + _gfortran_caf_end_critical): Remove. + (_gfortran_caf_register, _gfortran_caf_deregister): New functions. + (caf_world_window): Remove global variable. + (_gfortran_caf_init): Fix off-by-one error of this_image. + +2011-05-04 Jerry DeLisle + + PR libgfortran/48787 + * io/write_float.def (output_float): Adjust up and down rounding for + cases where 'd' = 0. Gather common code to one location. + +2011-05-01 Jerry DeLisle + + PR libgfortran/48787 + * io/write_float.def (output_float): Gather up integer declarations and + add new 'p' for scale factor. Use 'p' in place of the 'dtp' reference + everywhere. For ROUND_UP scan the digit string and only perform + rounding if something other than '0' is found. + +2011-04-29 Janne Blomqvist + + * io/unix.c (min): New macro. + (unpack_filename): Return errno number for errors. + (regular_file): Use appropriately sized buffer for path. + (compare_file_filename): Likewise. + (find_file): Likewise. + (delete_file): Likewise. + (file_exists): Likewise. + (file_size): Likewise. + (inquire_sequential): Likewise. + (inquire_direct): Likewise. + (inquire_formatted): Likewise. + (inquire_access): Likewise. + +2011-04-29 Janne Blomqvist + + PR libfortran/48488 + * io/write.c (write_real, write_real_g0): Update comments. + +2011-04-29 Jerry DeLisle + Janne Blomqvist + + PR libgfortran/48488 + PR libgfortran/48602 + PR libgfortran/48615 + PR libgfortran/48684 + PR libgfortran/48787 + * io/write.c (write_d, write_e, write_f, write_en, + write_es): Add precision compemsation parameter to call. + (set_fnode_default): Adjust default widths to assure + round trip on write and read. (write_real): Adjust call to write_float. + (write_real_g0): Calculate compensation for extra precision and adjust + call to write_float. + * io/write_float.def (output_float_FMT_G_): Use volatile rather than + asm volatile to avoid optimization issue. Correctly calculate the + number of blanks (nb) to be appended and simplify calculation logic. + (write_float): Increase MIN_FIELD_WIDTH by one to accomodate the new + default widths. Eliminate the code that attempted to reduce the + the precision used in later sprintf functions. Add call parameter to + compensate for extra precision. + +2011-04-20 Jim Meyering + + * intrinsics/move_alloc.c (move_alloc): Remove useless + if-before-free test. + * io/fbuf.c (fbuf_destroy): Likewise. + * io/format.c (save_parsed_format): Likewise. + * io/open.c (already_open): Likewise. + * io/unit.c (free_internal_unit, close_unit_1): Likewise. + * io/unix.c (mem_close): Likewise. + +2011-04-19 Jerry DeLisle + + PR libgfortran/48602 + * io/write_float.def (output_float_FMT_G): Fix reversal in conditional. + Use asm volatile to mark temp variable, avoiding optimization errors. + +2011-04-17 Jerry DeLisle + + PR libgfortran/48602 + * io/write_float.def (output_float_FMT_G): Use current rounding mode + to set the rounding parameters. (output_float): Skip rounding + if value is zero. + +2011-04-16 Janne Blomqvist + + * intrinsics/date_and_time.c (date_and_time): Remove sprintf CPP + branch. + * io/format.c (format_error): Use snprintf instead of sprintf. + * io/list_read.c: Move snprintf fallback macro to libgfortran.h. + (convert_integer): Use snprintf instead of sprintf. + (parse_repeat): Likewise. + (read_logical): Likewise. + (read_integer): Likewise. + (read_character): Likewise. + (parse_real): Likewise. + (read_complex): Likewise. + (read_real): Likewise. + (check_type): Likewise. + (nml_parse_qualifier): Add string length argument, use snprintf + instead of sprintf. + (nml_get_obj_data): Use snprintf instead of sprintf. + * io/open.c (new_unit): Remove sprintf CPP branch, use snprintf + instead of sprintf. + * io/transfer.c (require_type): Use snprintf instead of sprintf. + * io/unix.c (tempfile): Likewise. + * io/write.c (nml_write_obj): Likewise. + * io/write_float.def (output_float): Remove sprintf CPP branch, + use snprintf instead of sprintf. + * libgfortran.h: Add fallback snprintf macro from io/list_read.c. + * runtime/backtrace.c (show_backtrace): Remove sprintf CPP branch. + * runtime/main.c (store_exe_path): Use snprintf instead of + sprintf. + +2011-04-15 Jerry DeLisle + + PR libgfortran/48589 + * io/write_float.def (write_infnan): Set width properly for G0. + +2011-04-15 Tobias Burnus + + PR fortran/18918 + * Makefile.am: Build and install caf/single.c as + libcaf_single.a. + * Makefile.in: Regenerate. + +2011-04-15 Janne Blomqvist + + PR libfortran/47571 + * configure: Regenerated. + * config.h.in: Regenerated. + * acinclude.m4: Add alpha*-dec-osf* to gthread blacklist. + * configure.ac: Use separate symbol for clock_gettime in librt. + * intrinsics/system_clock.c: Use weakrefs only when needed and + supported. + +2011-04-12 Janne Blomqvist + + * configure.ac: Use AC_TYPE_* to make sure we have (u)intptr_t, + check for ptrdiff_t. + * libgfortran.h: Remove (u)intptr_t definitions, use ptrdiff_t for + index_type, change cshift0* prototypes. + * config.h.in: Regenerated. + * configure: Regenerated. + * intrinsics/cshift0.c (cshift0): Use ptrdiff_t instead of ssize_t. + * io/io.h (array_loop_spec): Use index_type instead of ssize_t. + * io/list_read.c (nml_parse_qualifier): Likewise. + * io/write.c (nml_write_obj): Likewise. + * m4/cshift0.c (cshift0_'rtype_code`): Likewise. + * generated/cshift0_*.c: Regenerated. + +2011-04-12 Janne Blomqvist + + * Makefile.am: Remove _GNU_SOURCE from AM_CPPFLAGS. + * Makefile.in: Regenerated. + +2011-04-06 Tobias Burnus + + PR fortran/18918 + * caf/mpi.c (_gfortran_caf_init, _gfortran_caf_finalize): + Add global variable caf_mpi_initialized and use it for when + finalizing. + +2011-04-04 Tobias Burnus + + * unix.c: Adapt stat DEFINEs since MinGW64 supports LFS. + (fallback_access, open_internal4, compare_file_filename, + find_file, file_size, inquire_sequential, inquire_direct, + inquire_formatted): Use "struct stat" instead of gfstat_t. + +2011-03-27 Tobias Burnus + + PR fortran/18918 + * caf/libcaf.h: New - coarray communication library. + * caf/mpi.c: New. + * caf/single.c: New. + +2011-03-23 Jerry DeLisle + + PR libgfortran/48030 + * io/read.c (read_x): Re-implement using fbuf_getc. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * configure.ac (gfortran_use_symver): Handle --disable-symvers. + * configure: Regenerate. + +2011-03-19 John David Anglin + + PR fortran/35667 + * io/io.h (convert_infnan): Declare. + * io/read.c (convert_infnan): New. + (read_f): Use convert_infnan to convert INFs and NANs. + * list_read.c (parse_real, read_real): Likewise. + +2011-03-19 Francois-Xavier Coudert + + PR libfortran/47439 + * io/unix.c (tempfile): Work around poor mktemp() implementations. + +2011-03-16 Francois-Xavier Coudert + + PR libfortran/47883 + * acinclude.m4: Don't use AC_TRY_ macros. + * configure.ac: Likewise. + * configure: Regenerate. + +2011-03-12 Thomas Koenig + + PR libfortran/48066 + * m4/ifunction.m4: If return array is empty, return. + * m4/ifunction_logical.m4: Likewise. + * generated/all_l16.c: Regenerated. + * generated/all_l1.c: Regenerated. + * generated/all_l2.c: Regenerated. + * generated/all_l4.c: Regenerated. + * generated/all_l8.c: Regenerated. + * generated/any_l16.c: Regenerated. + * generated/any_l1.c: Regenerated. + * generated/any_l2.c: Regenerated. + * generated/any_l4.c: Regenerated. + * generated/any_l8.c: Regenerated. + * generated/count_16_l.c: Regenerated. + * generated/count_1_l.c: Regenerated. + * generated/count_2_l.c: Regenerated. + * generated/count_4_l.c: Regenerated. + * generated/count_8_l.c: Regenerated. + * generated/maxloc1_16_i16.c: Regenerated. + * generated/maxloc1_16_i1.c: Regenerated. + * generated/maxloc1_16_i2.c: Regenerated. + * generated/maxloc1_16_i4.c: Regenerated. + * generated/maxloc1_16_i8.c: Regenerated. + * generated/maxloc1_16_r10.c: Regenerated. + * generated/maxloc1_16_r16.c: Regenerated. + * generated/maxloc1_16_r4.c: Regenerated. + * generated/maxloc1_16_r8.c: Regenerated. + * generated/maxloc1_4_i16.c: Regenerated. + * generated/maxloc1_4_i1.c: Regenerated. + * generated/maxloc1_4_i2.c: Regenerated. + * generated/maxloc1_4_i4.c: Regenerated. + * generated/maxloc1_4_i8.c: Regenerated. + * generated/maxloc1_4_r10.c: Regenerated. + * generated/maxloc1_4_r16.c: Regenerated. + * generated/maxloc1_4_r4.c: Regenerated. + * generated/maxloc1_4_r8.c: Regenerated. + * generated/maxloc1_8_i16.c: Regenerated. + * generated/maxloc1_8_i1.c: Regenerated. + * generated/maxloc1_8_i2.c: Regenerated. + * generated/maxloc1_8_i4.c: Regenerated. + * generated/maxloc1_8_i8.c: Regenerated. + * generated/maxloc1_8_r10.c: Regenerated. + * generated/maxloc1_8_r16.c: Regenerated. + * generated/maxloc1_8_r4.c: Regenerated. + * generated/maxloc1_8_r8.c: Regenerated. + * generated/maxval_i16.c: Regenerated. + * generated/maxval_i1.c: Regenerated. + * generated/maxval_i2.c: Regenerated. + * generated/maxval_i4.c: Regenerated. + * generated/maxval_i8.c: Regenerated. + * generated/maxval_r10.c: Regenerated. + * generated/maxval_r16.c: Regenerated. + * generated/maxval_r4.c: Regenerated. + * generated/maxval_r8.c: Regenerated. + * generated/minloc1_16_i16.c: Regenerated. + * generated/minloc1_16_i1.c: Regenerated. + * generated/minloc1_16_i2.c: Regenerated. + * generated/minloc1_16_i4.c: Regenerated. + * generated/minloc1_16_i8.c: Regenerated. + * generated/minloc1_16_r10.c: Regenerated. + * generated/minloc1_16_r16.c: Regenerated. + * generated/minloc1_16_r4.c: Regenerated. + * generated/minloc1_16_r8.c: Regenerated. + * generated/minloc1_4_i16.c: Regenerated. + * generated/minloc1_4_i1.c: Regenerated. + * generated/minloc1_4_i2.c: Regenerated. + * generated/minloc1_4_i4.c: Regenerated. + * generated/minloc1_4_i8.c: Regenerated. + * generated/minloc1_4_r10.c: Regenerated. + * generated/minloc1_4_r16.c: Regenerated. + * generated/minloc1_4_r4.c: Regenerated. + * generated/minloc1_4_r8.c: Regenerated. + * generated/minloc1_8_i16.c: Regenerated. + * generated/minloc1_8_i1.c: Regenerated. + * generated/minloc1_8_i2.c: Regenerated. + * generated/minloc1_8_i4.c: Regenerated. + * generated/minloc1_8_i8.c: Regenerated. + * generated/minloc1_8_r10.c: Regenerated. + * generated/minloc1_8_r16.c: Regenerated. + * generated/minloc1_8_r4.c: Regenerated. + * generated/minloc1_8_r8.c: Regenerated. + * generated/minval_i16.c: Regenerated. + * generated/minval_i1.c: Regenerated. + * generated/minval_i2.c: Regenerated. + * generated/minval_i4.c: Regenerated. + * generated/minval_i8.c: Regenerated. + * generated/minval_r10.c: Regenerated. + * generated/minval_r16.c: Regenerated. + * generated/minval_r4.c: Regenerated. + * generated/minval_r8.c: Regenerated. + * generated/product_c10.c: Regenerated. + * generated/product_c16.c: Regenerated. + * generated/product_c4.c: Regenerated. + * generated/product_c8.c: Regenerated. + * generated/product_i16.c: Regenerated. + * generated/product_i1.c: Regenerated. + * generated/product_i2.c: Regenerated. + * generated/product_i4.c: Regenerated. + * generated/product_i8.c: Regenerated. + * generated/product_r10.c: Regenerated. + * generated/product_r16.c: Regenerated. + * generated/product_r4.c: Regenerated. + * generated/product_r8.c: Regenerated. + * generated/sum_c10.c: Regenerated. + * generated/sum_c16.c: Regenerated. + * generated/sum_c4.c: Regenerated. + * generated/sum_c8.c: Regenerated. + * generated/sum_i16.c: Regenerated. + * generated/sum_i1.c: Regenerated. + * generated/sum_i2.c: Regenerated. + * generated/sum_i4.c: Regenerated. + * generated/sum_i8.c: Regenerated. + * generated/sum_r10.c: Regenerated. + * generated/sum_r16.c: Regenerated. + * generated/sum_r4.c: Regenerated. + * generated/sum_r8.c: Regenerated. + +2011-03-11 Jerry DeLisle + + PR libgfortran/48047 + * io/write_float.def (write_float): Change MIN_FIELD_WIDTH to 48. + +2011-03-04 Janne Blomqvist + + PR libfortran/47802 + * intrinsics/ctime.c (strctime): Use builtins to check localtime_r + return type. + +2011-03-04 Janne Blomqvist + + PR libfortran/47802 + * intrinsics/ctime.c (strctime): Don't use return value of + localtime_r. + +2011-02-28 Jerry DeLisle + + PR libgfortran/47567 + * io/write_float.def (output_float): Move handling of w = 0 to after + output rounding. Check for zero and set zero_flag accordingly. Set + width according to zero_flag. Add better comments. + +2011-02-27 Jerry DeLisle + + PR libgfortran/47778 + * io/list_read.c (namelist_read): Intialize the error string buffere. + If pprev_nl was used during the previous namelist read and the rank + was zero, reset the pointer to NULL for the next namelist read. + +2011-02-26 Francois-Xavier Coudert + + PR libfortran/45165 + * unix.c (fallback_access): Fix file descriptor leaks. + +2011-02-25 Francois-Xavier Coudert + + * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): Set shell variable + tested in configure.host. + * configure: Regenerate. + +2011-02-24 Janne Blomqvist + + PR libfortran/47802 + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Remove checks for ctime and ctime_r, add check for + strftime. + * intrinsics/date_and_time.c (localtime_r): Move fallback + implementation to time_1.h. + * intrinsics/time_1.h (localtime_r): Fallback implementation. + * intrinsics/ctime.c: Include time_1.h. + (ctime_r): Remove fallback implementation. + (strctime): New function. + (fdate): Use strctime instead of ctime_r. + (fdate_sub): Likewise. + (ctime): Likewise. + (ctime_sub): Likewise. + +2011-02-24 Jakub Jelinek + + PR fortran/47878 + * io/transfer.c (read_sf): Call fbuf_getptr only at the end, + and subtract n, dtp->u.p.sf_seen_eor and seen_comma from it. + +2011-02-24 Janne Blomqvist + + PR libfortran/47802 + * configure.ac: Add test for POSIX getpwuid_r. + * intrinsics/getlog.c (getlog): CPP test for + HAVE_POSIX_GETPWUID_R. + * config.h.in: Regenerated. + * configure: Regenerated. + +2011-02-23 Jerry DeLisle + + PR libgfortran/47567 + * io/write_float.def (output_float): Remove special case handling of + zero with width 1. + +2011-02-23 Janne Blomqvist + Jerry DeLisle + + PR libfortran/47694 + * io/fbuf.h (fbuf_getptr): New inline function. + * io/transfer.c (read_sf): Use fbuf_getptr and fbuf_getc to scan + through the string instead of fbuf_read. + +2011-02-22 Tobias Burnus + Kai-Uwe Eckhardt + + PR libfortran/47830 + * intrinsics/c99_functions.c (roundl): Make C valid for + HAVE_NEXTAFTERL. + +2011-02-19 Jerry DeLisle + + PR libgfortran/47567 + * io/write_float.def (output_float): Adjust width for F0.d to + allow space for negative signs on zero. + +2011-02-16 Jerry DeLisle + + PR libgfortran/47667 + * io/list_read.c (read_logical): Check for end of line before calling + eat_line. (read_integer): Likewise. (parse_real): Don't unget the + separator. Check for end of line before calling eat_line. + (read_complex): Allow line-end before and after parenthesis and comma. + Check for end of line before calling eat_line. (read_real): Check for + end of line before calling eat_line. + +2011-02-16 Jakub Jelinek + + PR libfortran/47757 + * gfortran.map (GFORTRAN_1.4): Export + _gfortran_{m,s}i{all,any,parity}_i{1,2,4,8,16} and + _gfortran_{cshift0,eoshift{0,2}}_16_char4. + +2011-02-15 Tobias Burnus + + PR fortran/47716 + PR fortran/47648 + * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Use check from + libquadmath, which uses more features. + * configure: Regenerate. + +2011-02-14 Jakub Jelinek + + PR fortran/47642 + * io/write_float.def (DTOAQ): Use quadmath_snprintf instead of + quadmath_flt128tostr. + * io/transfer128.c (tmp2): Initialize to quadmath_snprintf instead + of quadmath_flt128tostr. + +2011-02-13 Ralf Wildenhues + + * Makefile.in: Regenerate. + * aclocal.m4: Likewise. + * configure: Likewise. + +2011-02-05 Jerry DeLisle + + PR libgfortran/47567 + * io/write_float.def (output_float): Eliminate some redundant code. + Adjust width for case of F0.X for values of zero and all other values. + Expand cases where '*' is set to give cleaner results. + +2011-02-05 Janne Blomqvist + + PR libfortran/47571 + * intrinsics/time_1.h (GF_CLOCK_MONOTONIC): Move to system_clock.c. + (weak_gettime): Likewise. + (gf_gettime): Change API, move weak_gettime() usage to + system_clock.c + * intrinsics/system_clock.c (GTHREAD_USE_WEAK): Define. + (gf_gettime_mono): New function. + (system_clock_4): Use gf_gettime_mono(). + (system_clock_8): Likewise. + * intrinsics/date_and_time.c (date_and_time): Update gf_gettime() + usage. + +2011-02-02 Janne Blomqvist + + PR libfortran/47571 + * configure: Regenerated. + * configure.ac: Don't add librt to LIBS. + * intrinsics/time_1.h (weak_gettime): Weakref trickery for + clock_gettime(). + (gf_gettime): Use weak_gettime() instead of clock_gettime(). + +2011-02-01 Janne Blomqvist + + * intrinsics/time_1.h: Include errno.h needed by fallbacks. + +2011-01-31 Janne Blomqvist + + * intrinsics/time_1.h: Fix definition of GF_CLOCK_MONOTONIC macro. + +2011-01-31 Janne Blomqvist + + * configure.ac: Check for clock_gettime(). + * configure: Regenerated. + * config.h.in: Regenerated. + * intrinsics/time_1.h (__time_1): Rename to gf_cputime, add + times() fallback. + (gf_gettime): New function. + * intrinsics/cpu_time.c (__cpu_time_1): Update to call gf_cputime. + * intrinsics/date_and_time.c (date_and_time): Use gf_gettime. + * intrinsics/dtime.c (dtime_sub): Use gf_cputime. + * intrinsics/etime.c (etime_sub): Use gf_cputime. + * intrinsics/system_clock.c (system_clock_4): Use gf_gettime. + (system_clock_8): Use gf_gettime, increase count rate to allow + nanosecond precision, remove overflow prone branch. + +2011-01-29 Jerry DeLisle + + PR libgfortran/47434 + * io/write_float.def (write_infnan): Use calculate_sign to determine + if the sign should be given and check field widths accordingly. + +2011-01-29 Kai Tietz + + * intrinsics/ctime.c (ctime_r): Improve implementation. + +2011-01-27 Janne Blomqvist + + PR libfortran/47431 + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Add check for ctime_r(). + * intrinsics/ctime.c (ctime_r): Fallback implementation. + (fdate): Use ctime_r() instead of ctime(). + (fdate_sub): Likewise. + (ctime): Likewise. + (ctime_sub): Likewise. + +2011-01-27 Janne Blomqvist + + PR libfortran/47432 + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Add check for ttyname_r. + * io/unix.h: Add TTY_NAME_MAX, change stream_ttyname prototype. + * io/unix.c (stream_ttyname): Use ttyname_r if available, conform + to new prototype. + * io/inquire.c (inquire_via_unit): Use changed stream_ttyname. + * io/intrinsics.c (ttynam_sub): Likewise. + (ttynam): Likewise. + +2011-01-27 Janne Blomqvist + + PR libfortran/47491 + * configure.ac: Call AC_USE_SYSTEM_EXTENSIONS to enable common + extensions. + * config.h.in: Regenerate. + * configure: Regenerate. + +2011-01-26 Jerry DeLisle + + PR libgfortran/47285 + * io/write_float.def (write_infnan): Adjust processor selected width + to 3 if NaN. + +2011-01-26 Jerry DeLisle + + PR libgfortran/47285 + * io/write_float.def (output_float): Return SUCCESS or FAILURE and use + the result to set the padding. + +2011-01-26 Kai Tietz + + * intrinsics/getlog.c (getlog): Fix label/statement issue. + +2011-01-25 Janne Blomqvist + + PR libfortran/47375 + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Add check for getpwuid_r. + * intrinsics/getlog.c (getlog): Use getpwuid_r() if available. + +2011-01-22 Janne Blomqvist + + PR libfortran/46267 + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Check presence of strerror_r. + * intrinsics/gerror.c (gerror): Use gf_strerror, modify logic. + * io/unix.c (get_oserror): Remove. + * libgfortran.h (gf_strerror): Add prototype. + (get_oserror): Remove prototype. + * runtime/error.c (gf_strerror): New function. + (os_error): Use gf_strerror instead of get_oserror. + (generate_errror): Likewise. + +2011-01-17 Janne Blomqvist + + PR libfortran/47296 + * io/unix.c (tempfile): Set opp->file and opp->file_len also if an + error occurs. + +2011-01-16 Jakub Jelinek + + PR fortran/46625 + * io/write_float.def (DTOAQ): Use quadmath_flt128tostr + instead of quadmath_dtoa. + * io/transfer128.c (tmp1, tmp2): New variables, bring in + strtoflt128 and quadmath_flt128tostr. + (transfer_real128, transfer_real128_write, transfer_complex128, + transfer_complex128_write): Remove tmp1/tmp2 variables. + * io/read.c (convert_real): Use strtoflt128 instead of + quadmath_strtopQ, adjust for the changed arguments and return + value. + +2011-01-14 Jerry DeLisle + + PR libgfortran/47296 + * io/unix.c (unpack_filename): Return non-zero if the filename passed + in is NULL. + +2011-01-04 Jerry DeLisle + + PR libgfortran/47154 + * io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the + duplicate calls via next_record. + + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 219e060..7ac0a66 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -3,249 +3,8 @@ * gnu/gcj/convert/Convert.java (version): Update copyright notice dates. * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. - -2011-12-27 Uros Bizjak - - PR libgcj/49193 - * sysdep/alpha/locks.h (compare_and_swap): Call - __sync_bool_compare_and_swap. - (release_set): Call __sync_synchronize. - -2011-12-20 Rainer Orth - - * configure.ac (i?86-*-linux*): Set SIGNAL_HANDLER_AUX. - * configure: Regenerate. - * include/i386-signal.h: Wrap in __i386__, include - java-signal-aux.h otherwise. - -2011-12-12 Kai Tietz - - PR libgcj/50053 - * java/lang/natClass.cc (java::lang::Class::newInstance): Special case - member-call for 32-bit IA native Window target. - -2011-11-24 Jakub Jelinek - - PR bootstrap/50888 - * prims.cc: Don't include ctype.h. - (c_isspace): Define. - (next_property_key, next_property_value): Use it instead - of isspace. - -2011-11-21 Andreas Tobler - - * configure.ac: Fix FreeBSD 10 detection. - * configure: Regenerate. - -2011-10-17 Paul Brook - - * exception.cc (parse_lsda_header): hardcode ttype_encoding for older - ARM EABI toolchains. - (get_ttype_entry) Remove __ARM_EABI_UNWINDER__ variant. - -2011-10-16 Uros Bizjak - Eric Botcazou - - PR target/50737 - * include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME - definition. - -2011-08-10 Rainer Orth - - * exception.cc (std::abort): Remove static. - -2011-08-08 Rainer Orth - - * configure.ac (THREADS): Remove posix95. - * configure: Regenerate. - -2011-08-05 Rainer Orth - - * configure.ac (GCC_UNWIND_INCLUDE): Rename to - LIBGCC_UNWIND_INCLUDE. - Point to $(multi_basedir)/./libjava/../libgcc. - * configure: Regenerate. - * Makefile.am (GCC_UNWIND_INCLUDE): Reflect this. - * Makefile.in: Regenerate. - -2011-07-12 Andrew Haley - - * interpret.cc (check_handler): Fix bit rot. - (breakpoint_at): Likewise. - -2011-07-12 Andrew Haley - - * java/lang/natClass.cc (finalize): Make sure that the class - really has an engine. - -2011-07-07 Matthias Klose - - * libtool-version: Bump soversion. - -2011-07-07 Matthias Klose - - * sysdep/x86-64: Remove empty directory. - -2011-07-07 Rainer Orth - - PR target/39150 - * configure.host (x86_64-*): Add -Usun to libgcj_flags. - (x86_64-*-solaris2.1[0-9]*): New case. - (i?86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*. - -2011-06-21 Rainer Orth - - PR libgcj/49314 - * gnu/gcj/convert/natIconv.cc (iconv_init): Pad in[] with NUL byte. - -2011-06-17 Jack Howarth - - PR target/49461 - * libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11. - * libjava/configure: Regenerate. - -2011-06-17 Rainer Orth - - PR libgcj/49315 - * include/solaris-signal.h: Rename to ... - * include/posix-signal.h: ... this. - (SA_FLAGS): Define. - (SIGNAL_HANDLER): Handle non-SA_SIGINFO case. - (sa_signal_handler): Define. - (_INIT_SIG_HANDLER): New macro. - (INIT_SEGV, INIT_FPE): Use it. - * configure.ac (SIGNAL_HANDLER): Use it on alpha*-dec-osf*, - mips-sgi-irix*, *-*-solaris2* - * configure: Regenerate. - * include/aix-signal.h: Refer to AIX. - * configure.host (alpha*-dec-osf*): Enable can_unwind_signal. - (mips-sgi-irix6*): Likewise. - -2011-05-31 H.J. Lu - - PR libgcj/49193 - * configure.host (sysdeps_dir): Set to i386 for x86_64. - - * sysdep/i386/locks.h (compare_and_swap): Call - __sync_bool_compare_and_swap. - (release_set): Call write_barrier (). - - * sysdep/x86-64/locks.h: Removed. - -2011-04-24 Gerald Pfeifer - - * README: Refer to our generic bug reporting page. - -2011-04-19 Rainer Orth - - * configure.ac (THREADS): Remove decosf1, irix, mach, os2. - * configure: Regenerate - -2011-04-15 Rainer Orth - - * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): - Add $libiconv to cxxflags for alpha*-dec-osf*. - -2011-04-12 Rainer Orth - - PR testsuite/21164 - * testsuite/lib/libjava.exp: Load dg.exp. - * testsuite/libjava.jar/jar.exp (gcj_jar_interpret): Strip srcdir - from jarfile. - Use result for messages. - * testsuite/libjava.loader/loader.exp (gcj_loader_test_one): Pass - errname to libjava_invoke, fix testname. - -2011-04-08 Kai Tietz - - * configure.ac (libgcj_ld_export_all): Set for windows - native targets to export-all-symbols. - (LIBGCJ_LD_EXPORT_ALL): Export libgcj_ld_export_all. - * Makefile.am (libgcj_la_LDFLAGS): Add LIBGCJ_LD_EXPORT_ALL. - * sysdep/i386/backtrace.h (MAIN_FUNC): Define for windows - native targets to DllMain. - * gcj/javaprims.h (JNICALL): Define it dependent - for different windows targets. - * include/jni_md.h: Likewise. - * headers.txt (_Jv_JNI_ToReflectedField): Mark - JNICALLS for friends. - (_Jv_JNI_ToReflectedMethod): Likewise. - * java/lang/Class.h: Regenerated. - * java/lang/reflect/Field.h: Regenerated. - * java/lang/reflect/Constructor.h: Regenerated. - * java/lang/reflect/Method.h: Regenerated. - * configure: Regenerated. - * Makefile.in: Regenerated. - * include/Makefile.in: Regenerated. - * testsuite/Makefile.in: Regenerated. - * gcj/Makefile.in: Regenerated. - -2011-04-04 Rainer Orth - - * configure.ac: Redirect $JAR -cf@ output to /dev/null. - * configure: Regenerate. - -2011-03-21 Rainer Orth - - * configure.ac (THREADS): Remove solaris. - * configure: Regenerate. - -2011-03-21 Rainer Orth - - PR bootstrap/48135 - * configure.ac (libjava_cv_anon_version_script): Handle - --disable-symvers. - * configure: Regenerate. - -2011-02-14 Gary Benson - - * libjava/contrib/aot-compile.in: Add our module directory - to the start of the search path rather than the end. - * libjava/contrib/aot-compile-rpm.in: Likewise. - -2011-02-14 Gary Benson - - PR libjava/47484 - * configure.ac (python_mod_dir, python_mod_dir_expanded): - Install Python modules into versioned directory. - * configure: Regenerate. - -2011-02-13 Ralf Wildenhues - - * configure: Regenerate. - * shlibpath.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling - of freebsd1* which soon would incorrectly match FreeBSD 10.0. - -2011-02-04 Ralf Wildenhues - - PR java/21206 - * configure.ac (LDLIBICONV): New substituted variable, with - instances of '-Wl,' removed from LIBICONV. - * configure: Regenerate. - * libgcj.spec.in: Use @LDLIBICONV@ not @LIBICONV@. - * Makefile.in: Regenerate. - * gcj/Makefile.in: Likewise. - * include/Makefile.in: Likewise. - * testsuite/Makefile.in: Likewise. - -2011-02-02 Rainer Orth - - * configure.ac: Don't use libdl on mips-sgi-irix6*. - * configure: Regenerate. - -2011-01-06 Rainer Orth - - * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): - Add -shared-libgcc to cxxflags for *-*-solaris*. - Remove -lsocket. - -2011-01-03 Jakub Jelinek - - * gnu/gcj/convert/Convert.java (version): Update copyright notice - dates. - * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. -Copyright (C) 2011 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/libjava/ChangeLog-2011 b/libjava/ChangeLog-2011 new file mode 100644 index 0000000..841dfb7 --- /dev/null +++ b/libjava/ChangeLog-2011 @@ -0,0 +1,246 @@ +2011-12-27 Uros Bizjak + + PR libgcj/49193 + * sysdep/alpha/locks.h (compare_and_swap): Call + __sync_bool_compare_and_swap. + (release_set): Call __sync_synchronize. + +2011-12-20 Rainer Orth + + * configure.ac (i?86-*-linux*): Set SIGNAL_HANDLER_AUX. + * configure: Regenerate. + * include/i386-signal.h: Wrap in __i386__, include + java-signal-aux.h otherwise. + +2011-12-12 Kai Tietz + + PR libgcj/50053 + * java/lang/natClass.cc (java::lang::Class::newInstance): Special case + member-call for 32-bit IA native Window target. + +2011-11-24 Jakub Jelinek + + PR bootstrap/50888 + * prims.cc: Don't include ctype.h. + (c_isspace): Define. + (next_property_key, next_property_value): Use it instead + of isspace. + +2011-11-21 Andreas Tobler + + * configure.ac: Fix FreeBSD 10 detection. + * configure: Regenerate. + +2011-10-17 Paul Brook + + * exception.cc (parse_lsda_header): hardcode ttype_encoding for older + ARM EABI toolchains. + (get_ttype_entry) Remove __ARM_EABI_UNWINDER__ variant. + +2011-10-16 Uros Bizjak + Eric Botcazou + + PR target/50737 + * include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME + definition. + +2011-08-10 Rainer Orth + + * exception.cc (std::abort): Remove static. + +2011-08-08 Rainer Orth + + * configure.ac (THREADS): Remove posix95. + * configure: Regenerate. + +2011-08-05 Rainer Orth + + * configure.ac (GCC_UNWIND_INCLUDE): Rename to + LIBGCC_UNWIND_INCLUDE. + Point to $(multi_basedir)/./libjava/../libgcc. + * configure: Regenerate. + * Makefile.am (GCC_UNWIND_INCLUDE): Reflect this. + * Makefile.in: Regenerate. + +2011-07-12 Andrew Haley + + * interpret.cc (check_handler): Fix bit rot. + (breakpoint_at): Likewise. + +2011-07-12 Andrew Haley + + * java/lang/natClass.cc (finalize): Make sure that the class + really has an engine. + +2011-07-07 Matthias Klose + + * libtool-version: Bump soversion. + +2011-07-07 Matthias Klose + + * sysdep/x86-64: Remove empty directory. + +2011-07-07 Rainer Orth + + PR target/39150 + * configure.host (x86_64-*): Add -Usun to libgcj_flags. + (x86_64-*-solaris2.1[0-9]*): New case. + (i?86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*. + +2011-06-21 Rainer Orth + + PR libgcj/49314 + * gnu/gcj/convert/natIconv.cc (iconv_init): Pad in[] with NUL byte. + +2011-06-17 Jack Howarth + + PR target/49461 + * libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11. + * libjava/configure: Regenerate. + +2011-06-17 Rainer Orth + + PR libgcj/49315 + * include/solaris-signal.h: Rename to ... + * include/posix-signal.h: ... this. + (SA_FLAGS): Define. + (SIGNAL_HANDLER): Handle non-SA_SIGINFO case. + (sa_signal_handler): Define. + (_INIT_SIG_HANDLER): New macro. + (INIT_SEGV, INIT_FPE): Use it. + * configure.ac (SIGNAL_HANDLER): Use it on alpha*-dec-osf*, + mips-sgi-irix*, *-*-solaris2* + * configure: Regenerate. + * include/aix-signal.h: Refer to AIX. + * configure.host (alpha*-dec-osf*): Enable can_unwind_signal. + (mips-sgi-irix6*): Likewise. + +2011-05-31 H.J. Lu + + PR libgcj/49193 + * configure.host (sysdeps_dir): Set to i386 for x86_64. + + * sysdep/i386/locks.h (compare_and_swap): Call + __sync_bool_compare_and_swap. + (release_set): Call write_barrier (). + + * sysdep/x86-64/locks.h: Removed. + +2011-04-24 Gerald Pfeifer + + * README: Refer to our generic bug reporting page. + +2011-04-19 Rainer Orth + + * configure.ac (THREADS): Remove decosf1, irix, mach, os2. + * configure: Regenerate + +2011-04-15 Rainer Orth + + * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): + Add $libiconv to cxxflags for alpha*-dec-osf*. + +2011-04-12 Rainer Orth + + PR testsuite/21164 + * testsuite/lib/libjava.exp: Load dg.exp. + * testsuite/libjava.jar/jar.exp (gcj_jar_interpret): Strip srcdir + from jarfile. + Use result for messages. + * testsuite/libjava.loader/loader.exp (gcj_loader_test_one): Pass + errname to libjava_invoke, fix testname. + +2011-04-08 Kai Tietz + + * configure.ac (libgcj_ld_export_all): Set for windows + native targets to export-all-symbols. + (LIBGCJ_LD_EXPORT_ALL): Export libgcj_ld_export_all. + * Makefile.am (libgcj_la_LDFLAGS): Add LIBGCJ_LD_EXPORT_ALL. + * sysdep/i386/backtrace.h (MAIN_FUNC): Define for windows + native targets to DllMain. + * gcj/javaprims.h (JNICALL): Define it dependent + for different windows targets. + * include/jni_md.h: Likewise. + * headers.txt (_Jv_JNI_ToReflectedField): Mark + JNICALLS for friends. + (_Jv_JNI_ToReflectedMethod): Likewise. + * java/lang/Class.h: Regenerated. + * java/lang/reflect/Field.h: Regenerated. + * java/lang/reflect/Constructor.h: Regenerated. + * java/lang/reflect/Method.h: Regenerated. + * configure: Regenerated. + * Makefile.in: Regenerated. + * include/Makefile.in: Regenerated. + * testsuite/Makefile.in: Regenerated. + * gcj/Makefile.in: Regenerated. + +2011-04-04 Rainer Orth + + * configure.ac: Redirect $JAR -cf@ output to /dev/null. + * configure: Regenerate. + +2011-03-21 Rainer Orth + + * configure.ac (THREADS): Remove solaris. + * configure: Regenerate. + +2011-03-21 Rainer Orth + + PR bootstrap/48135 + * configure.ac (libjava_cv_anon_version_script): Handle + --disable-symvers. + * configure: Regenerate. + +2011-02-14 Gary Benson + + * libjava/contrib/aot-compile.in: Add our module directory + to the start of the search path rather than the end. + * libjava/contrib/aot-compile-rpm.in: Likewise. + +2011-02-14 Gary Benson + + PR libjava/47484 + * configure.ac (python_mod_dir, python_mod_dir_expanded): + Install Python modules into versioned directory. + * configure: Regenerate. + +2011-02-13 Ralf Wildenhues + + * configure: Regenerate. + * shlibpath.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling + of freebsd1* which soon would incorrectly match FreeBSD 10.0. + +2011-02-04 Ralf Wildenhues + + PR java/21206 + * configure.ac (LDLIBICONV): New substituted variable, with + instances of '-Wl,' removed from LIBICONV. + * configure: Regenerate. + * libgcj.spec.in: Use @LDLIBICONV@ not @LIBICONV@. + * Makefile.in: Regenerate. + * gcj/Makefile.in: Likewise. + * include/Makefile.in: Likewise. + * testsuite/Makefile.in: Likewise. + +2011-02-02 Rainer Orth + + * configure.ac: Don't use libdl on mips-sgi-irix6*. + * configure: Regenerate. + +2011-01-06 Rainer Orth + + * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): + Add -shared-libgcc to cxxflags for *-*-solaris*. + Remove -lsocket. + +2011-01-03 Jakub Jelinek + + * gnu/gcj/convert/Convert.java (version): Update copyright notice + dates. + * gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise. + +Copyright (C) 2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved.