1. 26 Sep, 2011 24 commits
  2. 25 Sep, 2011 16 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