1. 26 Sep, 2011 5 commits
    • ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro. · a1c7d797
      	* gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag.
      	(gnat_to_gnu_param): Likewise.
      	* gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: 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) <INDIRECT_REF>: 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.
      
      From-SVN: r179182
      Eric Botcazou committed
    • avr-protos.h (output_reload_inhi): Change prototype. · 20633efc
      	* 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.
      
      From-SVN: r179181
      Georg-Johann Lay committed
    • ada-tree.h (TYPE_NULL_BOUNDS): New macro. · 50179d58
      	* gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro.
      	(SET_TYPE_NULL_BOUNDS): Likewise.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: 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) <EQ_EXPR>: Call it to compare fat pointers.
      
      From-SVN: r179180
      Eric Botcazou committed
    • parser.c (inject_this_parameter): Split out from cp_parser_late_return_type_opt. · 382346e5
      	* 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'.
      
      From-SVN: r179179
      Jason Merrill committed
    • Daily bump. · 02aaf894
      From-SVN: r179178
      GCC Administrator committed
  2. 25 Sep, 2011 18 commits
    • Add support for floating-point fused multiply-add on Sparc. · e8b141b5
      	* 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.
      
      From-SVN: r179174
      David S. Miller committed
    • Generate 'fone' and 'fones' sparc instructions when possible. · 7cbcf85b
      	* 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.
      
      From-SVN: r179173
      David S. Miller committed
    • revert: testsuite_error.h: Add empty default constructor to __gnu_test::test_category and... · a0ce4616
      2011-09-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	Revert (no longer necessary post r179130):
      
      	2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
      
      	* testsuite/util/testsuite_error.h: Add empty default constructor
      	to __gnu_test::test_category and
      	__gnu_test::test_derived_category.
      	* src/future.cc: Add empty default constructor to
      	future_error_category.
      	* src/system_error.cc: Add default ctor to generic_error_category
      	and system_error_category.
      
      From-SVN: r179172
      Paolo Carlini committed
    • ada-tree.h (TREE_THIS_NOTRAP): Redefine. · ad1d36ba
      	* 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) <Attr_Length>: Expand the use of the parameter cache
      	to the indirect case.
      	* gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve
      	the TREE_THIS_NOTRAP flag.
      
      From-SVN: r179171
      Eric Botcazou committed
    • trans.c (Loop_Statement_to_gnu): In the case of an iteration scheme... · 6162cec0
      	* 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.
      
      From-SVN: r179169
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Use XNEW instead of xmalloc. · dee12fcd
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use
      	XNEW instead of xmalloc.  Do not build useless pointer type.
      	<E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc.
      	* gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy.
      	* gcc-interface/utils2.c (build_unary_op): Remove local variable.
      
      From-SVN: r179168
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Do not promote the alignment if this doesn't… · dea976c4
      decl.c (gnat_to_gnu_entity): Do not promote the alignment if this doesn't prevent BLKmode access to the object.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote
      	the alignment if this doesn't prevent BLKmode access to the object.
      
      From-SVN: r179167
      Eric Botcazou committed
    • tree-ssa-structalias.c (intra_create_variable_infos): Treat TYPE_RESTRICT… · 960dcaf5
      tree-ssa-structalias.c (intra_create_variable_infos): Treat TYPE_RESTRICT REFERENCE_TYPE parameters like restricted DECL_BY_REFERENCE...
      
      	* tree-ssa-structalias.c (intra_create_variable_infos): Treat
      	TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
      	DECL_BY_REFERENCE parameters.
      
      	* g++.dg/tree-ssa/restrict2.C: New test.
      
      From-SVN: r179166
      Jakub Jelinek committed
    • tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore if there is no outgoing edge. · 1ee0d660
      	* 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.
      
      From-SVN: r179165
      Eric Botcazou committed
    • tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part of vect_analyze_bb here. · 8e19f5a1
      
              * 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.
      
      From-SVN: r179164
      Ira Rosen committed
    • re PR c++/50280 (Incorrect type deduced for T& when passed a const bitfield) · 13ec1cca
      2011-09-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/50280
      	* g++.dg/template/bitfield1.C: New.
      
      From-SVN: r179163
      Paolo Carlini committed
    • tree-data-ref.c (dr_analyze_innermost): Add new argument. · 4e4452b6
      
              * 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.
      
      From-SVN: r179161
      Ira Rosen committed
    • Teach sparc backend about %gsr register and add intrinsics to access it. · 10b859c0
      	* 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<V64I:MODE>_vis)): Add use of GSR_REG.
      	(wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
      	rdgsr_v8plus): New expanders and insns.
      	(alignaddr<P:mode>_vis, alignaddrl<P:mode>_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.
      
      From-SVN: r179159
      David S. Miller committed
    • except.c (expr_noexcept_p): Split out from finish_noexcept_expr. · 6eaade31
      	* except.c (expr_noexcept_p): Split out from finish_noexcept_expr.
      	* cp-tree.h: Declare it.
      	* method.c (walk_field_subobs): Use it.
      
      From-SVN: r179158
      Jason Merrill committed
    • init.c (perform_member_init): Instantiate NSDMI here. · 6fd44881
      	* init.c (perform_member_init): Instantiate NSDMI here.
      	* pt.c (tsubst_decl) [FIELD_DECL]: Not here.
      
      From-SVN: r179157
      Jason Merrill committed
    • Handle deferred parsing of NSDMIs. · eb026338
      	* 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.
      
      From-SVN: r179156
      Jason Merrill committed
    • Implement C++11 non-static data member initializers. · 0e5f8a59
      	* 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.
      
      From-SVN: r179155
      Jason Merrill committed
    • Daily bump. · 77236534
      From-SVN: r179154
      GCC Administrator committed
  3. 24 Sep, 2011 7 commits
  4. 23 Sep, 2011 10 commits
    • go-test.exp (errchk): Handle more cases of getting correct Tcl backslash quoting in regular... · 6ed22bc8
      	* go.test/go-test.exp (errchk): Handle more cases of getting
      	correct Tcl backslash quoting in regular expressions in test file.
      
      Also fix some tests to match gccgo error messages.
      
      From-SVN: r179134
      Ian Lance Taylor committed
    • Better parsing of erroneous expression on left of :=. · b07000d9
      Better parsing of erroneous non-type in type switch.
      
      From-SVN: r179133
      Ian Lance Taylor committed
    • re PR c++/40831 (g++ generated symbols for cloned function that be demangled.) · 2d2b02c4
      include/ChangeLog:
      
      	PR 40831
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_CLONE.
      
      libiberty/ChangeLog:
      
      	PR 40831
      	* cp-demangle.c (d_make_comp): Add new component type.
      	(cplus_demangle_mangled_name): Check for clone suffixes.
      	(d_parmlist): Don't error out if we see '.'.
      	(d_clone_suffix): New function.
      	(d_print_comp): Print info for clone suffixes.
      	* testsuite/demangle-expected: Add new testcases.
      
      From-SVN: r179132
      Cary Coutant committed
    • correct ChangeLog · d220e00d
      From-SVN: r179131
      Jason Merrill committed
    • Core 234 - allow const objects with no initializer or user-provided default... · 6132bdd7
      	Core 234 - 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.
      
      From-SVN: r179130
      Jason Merrill committed
    • md5.c (md5_process_bytes): Correct handling of unaligned buffer. · d303ec8e
      	* md5.c (md5_process_bytes): Correct handling of unaligned
      	buffer.
      
      From-SVN: r179128
      Ian Lance Taylor committed
    • * config/avr/avr.c: Fix some typos in comments. · 4103605f
      From-SVN: r179127
      Georg-Johann Lay committed
    • inline-1.c: new testcase. · 25837a2f
      
      	* 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.
      
      	* 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.
      
      From-SVN: r179126
      Jan Hubicka committed
    • i386.c (ix86_print_operand): Handle %~. · 1db4406e
      	* 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_<mode>, vec_extract_hi_<mode>,
      	avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
      	*avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>, 
      	vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
      	patterns, use "<sseinsnmode>" 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.
      
      From-SVN: r179125
      Jakub Jelinek committed
    • re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant… · a7c0acd0
      re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
      
      	* 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.
      	PR target/50447
      
      From-SVN: r179124
      Georg-Johann Lay committed