1. 08 May, 2012 3 commits
    • predict.c (find_qualified_ssa_name): New · 9c04723a
      2012-05-08  Dehao Chen  <dehao@google.com>
      gcc/
      	* predict.c (find_qualified_ssa_name): New
      	(find_ssa_name_in_expr): New
      	(find_ssa_name_in_assign_stmt): New
      	(is_comparison_with_loop_invariant_p): New
      	(is_bound_expr_similar): New
      	(predict_iv_comparison): New
      	(predict_loops): Add heuristic for loop-nested branches that compare an
      	induction variable to a loop bound variable.
      	* predict.def (PRED_LOOP_IV_COMPARE): New macro
      testsuite/
      	* gcc.dg/predict-1.c: Check if LOOP_IV_COMPARE static predict
      	heuristic is working properly.
      	* gcc.dg/predict-2.c: Likewise.
      	* gcc/dg/predict-3.c: Likewise.
      	* gcc/dg/predict-4.c: Likewise.
      	* gcc/dg/predict-5.c: Likewise.
      	* gcc/dg/predict-6.c: Likewise.
      
      From-SVN: r187277
      Dehao Chen committed
    • i386.c (has_dispatch): Use TARGET_BDVER1 and TARGET_BDVER2 defines where appropriate. · 536b0cb7
      	* config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
      	TARGET_BDVER2 defines where appropriate.
      
      From-SVN: r187276
      Uros Bizjak committed
    • Daily bump. · ca9daea1
      From-SVN: r187275
      GCC Administrator committed
  2. 07 May, 2012 24 commits
  3. 06 May, 2012 13 commits
    • i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI. · 19010925
      	* config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
      	Emit bsf when optimizing for size.
      	(*ffs<mode>_1): Ditto.
      
      
      Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
      
      From-SVN: r187219
      Uros Bizjak committed
    • re PR target/53250 ([SH] ICE: in change_address_1, at emit-rtl.c:2018) · 0345d1dd
      	PR target/53250
      	* config/sh/sh.c (sh_rtx_costs): Handle SET.
      
      From-SVN: r187218
      Oleg Endo committed
    • re PR target/53227 (FAIL: gcc.target/i386/movbe-2.c scan-assembler-times movbe[ \t] 4) · 69f088a7
      	PR target/53227
      	* config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
      	(bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
      	predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
      	(bswapsi2): Ditto.
      	(*bswapdi2_doubleword): New insn pattern.
      	(*bswap<mode>2): Rename from *bswap<mode>2_1.
      
      From-SVN: r187215
      Uros Bizjak committed
    • re PR fortran/41587 ([OOP] ICE with ALLOCATABLE CLASS components) · ea59b186
      2012-05-06  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/41587
              * decl.c (build_struct): Don't ignore FAILED status.
      
      2012-05-06  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/41587
              * gfortran.dg/class_array_13.f90: New.
      
      From-SVN: r187214
      Tobias Burnus committed
    • mips.c (mips_set_reg_reg_piece_cost): New function. · 91000c66
      gcc/
      	* config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
      	(mips_set_reg_reg_cost): Likewise.
      	(mips_rtx_costs): Handle SET.
      
      From-SVN: r187213
      Richard Sandiford committed
    • lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET. · 69523a7c
      gcc/
      	* lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
      	(compute_costs): Likewise for the zero extension.  Use set_rtx_cost
      	to compute the cost of moves.  Set the mode of the target register.
      
      From-SVN: r187212
      Richard Sandiford committed
    • re PR c++/53152 (In "no match for operatorXX" error message gives the wrong column info) · 4fe977f2
      2012-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/53152
      	* call.c (op_error, build_new_op_1, build_new_op): Add location_t
      	parameter.
      	(build_conditional_expr_1): Adjust.
      	* typeck.c (build_x_indirect_ref, build_x_binary_op,
      	build_x_unary_op): Add location_t parameter.
      	(rationalize_conditional_expr, build_x_array_ref,
      	build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
      	Adjust.
      	* typeck2.c (build_x_arrow): Add location_t parameter.
      	* semantics.c (finish_unary_op_expr): Likewise.
      	(finish_increment_expr, handle_omp_for_class_iterator): Adjust.
      	* decl2.c (grok_array_decl): Add location_t parameter.
      	* parser.c (cp_parser_postfix_open_square_expression,
      	cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
      	cp_parser_binary_expression, cp_parser_builtin_offsetof,
      	do_range_for_auto_deduction, cp_convert_range_for,
      	cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
      	location, adjust.
      	* pt.c (tsubst_copy_and_build): Adjust.
      	* tree.c (maybe_dummy_object): Likewise.
      	* cp-tree.h: Update declarations.
      
      From-SVN: r187211
      Paolo Carlini committed
    • * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl. · 630dfc9c
      From-SVN: r187210
      Tristan Gingold committed
    • decl.c (gnat_to_gnu_entity): In the renaming case... · 9422c886
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
      	case, use the padded type if the renamed object has an unconstrained
      	type with default discriminant.
      
      From-SVN: r187209
      Eric Botcazou committed
    • trans.c (Loop_Statement_to_gnu): Also handle invariant conditions with only one bound. · 80096613
      	* gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
      	conditions with only one bound.
      	(Raise_Error_to_gnu): Likewise.  New function extracted from...
      	(gnat_to_gnu) <N_Raise_Constraint_Error>: ...here.  Call above function
      	in regular mode only.
      
      From-SVN: r187208
      Eric Botcazou committed
    • gigi.h (make_packable_type): Declare. · 842d4ee2
      	* gcc-interface/gigi.h (make_packable_type): Declare.
      	(make_type_from_size): Likewise.
      	(relate_alias_sets): Likewise.
      	(maybe_pad_type): Adjust.
      	(init_gnat_to_gnu): Delete.
      	(destroy_gnat_to_gnu): Likewise.
      	(init_dummy_type): Likewise.
      	(destroy_dummy_type): Likewise.
      	(init_gnat_utils): Declare.
      	(destroy_gnat_utils): Likewise.
      	(ceil_pow2): New inline function.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
      	<object>: Pass True for the final processing of alignment and size.
      	<E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
      	type if necessary.
      	(round_up_to_align): Delete.
      	(ceil_alignment): Likewise.
      	(relate_alias_sets): Move to...
      	(make_aligning_type): Likewise.
      	(make_packable_type): Likewise.
      	(maybe_pad_type): Likewise.
      	(make_type_from_size): Likewise.
      	* gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
      	(struct pad_type_hash): New type.
      	(pad_type_hash_table): New static variable.
      	(init_gnat_to_gnu): Merge into...
      	(init_dummy_type): Likewise.
      	(init_gnat_utils): ...this.  New function.
      	(destroy_gnat_to_gnu): Merge into...
      	(destroy_dummy_type): Likewise.
      	(destroy_gnat_utils): ...this.  New function.
      	(pad_type_hash_marked_p): New function.
      	(pad_type_hash_hash): Likewise.
      	(pad_type_hash_eq): Likewise.
      	(relate_alias_sets): ...here.
      	(make_aligning_type): Likewise.
      	(make_packable_type): Likewise.
      	(maybe_pad_type): Likewise.  Change same_rm_size parameter into
      	set_rm_size; do not set TYPE_ADA_SIZE if it is false.  Do not set
      	null as Ada size.  Do not set TYPE_VOLATILE on the padded type.  If it
      	is complete and has constant size, canonicalize it.  Bail out earlier
      	if a warning need not be issued.
      	(make_type_from_size): Likewise.
      	<INTEGER_TYPE>: Bail out if size is too large
      	(gnat_types_compatible_p): Do not deal with padded types.
      	(convert): Compare main variants for padded types.
      	* gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
      	(gnat_to_gnu): Do not convert at the end for a call to a function that
      	returns an unconstrained type with default discriminant.
      	(Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
      	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
      	Do not use the padded type if it is BLKmode and the inner type is
      	non-BLKmode.
      
      From-SVN: r187206
      Eric Botcazou committed
    • Adjust. · 62957409
      From-SVN: r187204
      Eric Botcazou committed