Commit Graph

118224 Commits

Author SHA1 Message Date
Richard Henderson
5714c34f15 re PR bootstrap/54092 (Bootstrap fails while building Ada at stage 1)
PR bootstrap/54092

        * libfuncs.h: Don't include optabs.h.
        (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
        * optabs.c (hash_libfunc): Don't cast members to int.
        * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.

From-SVN: r189853
2012-07-25 08:10:44 -07:00
Jason Merrill
452ed9e73b re PR c++/54086 (GCC should allow constexpr and const together)
PR c++/54086
	* decl.c (grokdeclarator): Allow const and constexpr together.

From-SVN: r189852
2012-07-25 10:57:06 -04:00
Jason Merrill
9155a6ddc4 re PR c++/54020 ([c++0x] incorrectly accepted constexpr functions)
PR c++/54020
	* semantics.c (potential_constant_expression_1) [COND_EXPR]: Call
	maybe_constant_value.

From-SVN: r189851
2012-07-25 10:56:57 -04:00
Jason Merrill
5e7b9f609a cp-tree.h (tsubst_flags): Remove tf_no_access_control.
* cp-tree.h (tsubst_flags): Remove tf_no_access_control.
	* call.c (standard_conversion): Don't set it.
	* class.c (resolve_address_of_overloaded_function): Don't check it.
	* decl.c (check_default_argument): Call
	perform_implicit_conversion_flags.

From-SVN: r189850
2012-07-25 10:56:50 -04:00
Jason Merrill
25a92d2f91 * pt.c (print_candidates_1): Use inform instead of error.
From-SVN: r189849
2012-07-25 10:56:41 -04:00
Dodji Seketeli
229ecb8935 Fix typo in comment in basic-block.h
gcc/

	* basic-block.c: Fix typo in comment.

From-SVN: r189845
2012-07-25 15:08:14 +02:00
Kirill Yukhin
e61c94dd31 Changelog entry:
2012-07-25  Kirill Yukhin  <kirill.yukhin@intel.com>
            Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
        (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
        (ix86_handle_option): Handle mprfchw option.
        * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
        (x86_64-*-*): Likewise.
        * config/i386/prfchwintrin.h: New header.
        * config/i386/cpuid.h (bit_PRFCHW): New.
        (bit_BMI): Formatting fix.
        (bit_HLE): Likewise.
        (bit_RTM): Likewise.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect
        PREFETCHW support.
        * config/i386/i386-c.c: Define __PRFCHW__ if needed.
        * config/i386/i386.c (ix86_target_string): Define
        -mprfchw option. Formatting fixes.
        (PTA_HLE): Formatting fix.
        (PTA_PRFCHW): New.
        (ix86_option_override_internal): Handle new option.
        (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
        * config/i386/i386.h (TARGET_PRFCHW): New.
        * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
        * config/i386/i386.opt (mprfchw): New.
        * config/i386/mm3dnow.h: Move _m_prefetchw from here to
        prfchwintrin.h.
        * config/i386/x86intrin.h: Include prfchwintrin.h.

testsuite/Changelog entry:
2012-07-24  Kirill Yukhin  <kirill.yukhin@intel.com>
            Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

        * gcc.target/i386/prefetchw-1.c: New.
        * gcc.target/i386/sse-12.c: Add -mprfchw.
        * gcc.target/i386/sse-13.c: Ditto.
        * gcc.target/i386/sse-14.c: Ditto.
        * g++.dg/other/i386-2.C: Ditto.
        * g++.dg/other/i386-3.C: Ditto.




Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>

From-SVN: r189844
2012-07-25 13:01:35 +00:00
Sergey Melnikov
4bd5abcae1 i386.md (stack_protect_set): Disable the pattern for Android since Android libc (bionic) does not provide...
2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>

        * config/i386/i386.md (stack_protect_set): Disable the pattern
        for Android since Android libc (bionic) does not provide random
        value for stack protection guard at gs:0x14. Guard value
        will be provided from external symbol (default implementation).
        (stack_protect_set_<mode>): Likewise.
        (stack_protect_test): Likewise.
        (stack_protect_test_<mode>): Likewise.
        * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
        not have Bionic by default
        * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
        Macro OPTION_BIONIC is defined in this file and provides Bionic
        accessibility status

From-SVN: r189840
2012-07-25 10:33:20 +00:00
Steven Bosscher
3e31cf28a4 * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
From-SVN: r189839
2012-07-25 08:56:47 +00:00
Venkataramanan Kumar
e32bfc1627 AMD btver2 enablement
From-SVN: r189838
2012-07-25 08:50:01 +00:00
Bill Schmidt
9234534930 tm.texi: Regenerate.
2012-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>

	* doc/tm.texi: Regenerate.
	* targhooks.c (default_init_cost): Add prologue and epilogue costs.
	(default_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(default_finish_cost): Add prologue and epilogue costs.
	* targhooks.h (default_add_stmt_cost): Change parameter list.
	(default_finish_cost): Likewise.
	* target.def (init_cost): Change documentation string.
	(add_stmt_cost): Change documentation string and parameter list.
	(finish_cost): Likewise.
	* target.h (vect_cost_model_location): New enum.
	* tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
	(struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
	to body_cost_vec.
	(SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
	(SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
	(SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
	(struct _vect_peel_extended_info): Rename stmt_cost_vec to
	body_cost_vec.
	(struct _stmt_vec_info): Remove cost substruct.
	(STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
	(stmt_vinfo_set_outside_of_loop_cost): Remove.
	(builtin_vectorization_cost): New function.
	(vect_get_stmt_cost): Change to use builtin_vectorization_cost.
	(add_stmt_cost): Change parameter list.
	(finish_cost): Likewise.
	(vect_model_simple_cost): Likewise.
	(vect_model_store_cost): Likewise.
	(vect_model_load_cost): Likewise.
	(record_stmt_cost): Likewise.
	(vect_get_load_cost): Likewise.
	(vect_get_known_peeling_cost): Likewise.
	* tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
	list; call record_stmt_cost for prologue and epilogue costs.
	(vect_estimate_min_profitable_iters): Call add_stmt_cost for
	prologue and epilogue costs; remove computation of vec_outside_cost;
	return vec_prologue_cost and vec_epilogue_cost from finish_cost.
	(vect_model_reduction_cost): Revise call to add_stmt_cost for body
	costs; call add_stmt_cost for prologue and epilogue costs.
	(vect_model_induction_cost): Revise call to add_stmt_cost for body
	costs; call add_stmt_cost for prologue costs.
	* tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
	list for function and arguments for calls to vect_get_load_cost and
	vect_get_store_cost.
	(vect_peeling_hash_get_lowest_cost): Change argument list for calls to
	vect_get_data_access_cost and vect_get_known_peeling_cost; use
	temporary vectors prologue_cost_vec and epilogue_cost_vec for the
	latter call and discard their results; rename stmt_cost_vec to
	body_cost_vec; correct possible storage leak for body_cost_vec.
	(vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
	body_cost_vec.
	(vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
	body_cost_vec; add extra dummy parameter on calls to
	vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
	argument list on call to add_stmt_cost.
	* tree-vect-stmts.c (record_stmt_cost): Change parameter list;
	rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
	builtin_vectorization_cost; add "where" parameter on call to
	add_stmt_cost.
	(vect_model_simple_cost): Change parameter list; call record_stmt_cost
	for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
	rename stmt_cost_vec to body_cost_vec.
	(vect_model_promotion_demotion_cost): Add vect_body argument to call
	to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
	to stmt_vinfo_set_outside_of_loop_cost.
	(vect_model_store_cost): Change parameter list; call record_stmt_cost
	for prologue costs; add vect_body argument to call to record_stmt_cost;
	rename stmt_cost_vec to body_cost_vec; remove call to
	stmt_vinfo_set_outside_of_loop_cost.
	(vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
	vect_body argument to calls to record_stmt_cost.
	(vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
	body_cost_vec; add vect_body argument to calls to record_stmt_cost;
	remove call to stmt_vinfo_set_outside_of_loop_cost.
	(vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
	body_cost_vec; add vect_body argument to calls to record_stmt_cost;
	call record_stmt_cost for prologue costs.
	(vectorizable_store): Change argument list for call to
	vect_model_store_cost.
	(vectorizable_load): Change argument list for call to
	vect_model_load_cost.
	(new_stmt_vec_info): Remove assignment to
	STMT_VINFO_OUTSIDE_OF_LOOP_COST.
	* config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
	(spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(spu_finish_cost): Add prologue and epilogue costs.
	* config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
	(i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(i386_finish_cost): Add prologue and epilogue costs.
	* config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
	costs.
	(rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(rs6000_finish_cost): Add prologue and epilogue costs.
	* tree-vect-slp.c (vect_free_slp_instance): Rename
	SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
	(vect_create_new_slp_node): Remove assignment to
	SLP_TREE_OUTSIDE_OF_LOOP_COST.
	(vect_get_and_check_slp_defs): Change parameter list; change argument
	lists to calls to vect_model_store_cost and vect_model_simple_cost.
	(vect_build_slp_tree): Change parameter list; change argument lists
	to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
	recursive self-calls; remove setting of outside_cost from
	SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
	record_stmt_cost.
	(vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
	rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
	remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
	prologue costs.
	(vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
	body_cost_vec; handle null ci->stmt; add vect_body argument to call
	to add_stmt_cost; simplify calls to targetm.vectorize.
	builtin_vectorization_cost; return vec_prologue_cost and
	vec_epilogue_cost from finish_cost.
	(vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
	body_cost_vec; add vect_body argument to call to add_stmt_cost.

From-SVN: r189836
2012-07-25 03:07:08 +00:00
GCC Administrator
ad7771415e Daily bump.
From-SVN: r189832
2012-07-25 00:17:37 +00:00
Richard Henderson
5e4aec9874 Purge FIXUNS_TRUNC_LIKE_FIX_TRUNC
From-SVN: r189826
2012-07-24 15:25:18 -07:00
Paolo Carlini
d8dd6fae2b pt.c (convert_template_argument, tsubst): Simplify fourth argument to make_typename_type (complain & tf_error -> complain).
2012-07-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (convert_template_argument, tsubst): Simplify fourth argument
	to make_typename_type (complain & tf_error -> complain).

From-SVN: r189825
2012-07-24 21:53:31 +00:00
Richard Henderson
cd1440b199 Reduce the size of optabs representation
From-SVN: r189821
2012-07-24 11:28:15 -07:00
Uros Bizjak
658e8ebaac * ChangeLog: Fix my recent entry.
From-SVN: r189820
2012-07-24 19:59:25 +02:00
Jason Merrill
4cdf5307d7 bitmap.c (bitmap_descriptor): Adjust order of parameters to match MEM_STAT_DECL.
* bitmap.c (bitmap_descriptor): Adjust order of parameters to
	match MEM_STAT_DECL.
	* statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.

From-SVN: r189819
2012-07-24 13:53:42 -04:00
Richard Henderson
19b5fafb92 Introduce and use code_to_optab and optab_to_code functions
Removes all the direct uses of op->code so that we can change
the representation of "optab".  The code_to_optab change is
simply for uniformity (and better type checking).

        * optabs.h (struct optab_d): Rename code member to code_.
        (struct convert_optab_h): Likewise.
        (code_to_optab_): Rename from code_to_optab.
        (code_to_optab, optab_to_code): New.
        * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
        * ifcvt.c (noce_emit_move_insn): Likewise.
        * optabs.c (simplify_expand_binop): Use optab_to_code.
        (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
        (avoid_expensive_constant, expand_binop_directly): Likewise.
        (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
        (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
        (have_insn_for, debug_optab_libfuncs): Likewise.
        (init_optab, init_optabv, init_convert_optab): Update for optab
        member name change.

From-SVN: r189818
2012-07-24 10:36:56 -07:00
Richard Henderson
723cd7abc6 Tidy some include usage + dependencies
The dwarf2out.c and lto-streamer-in.c files didn't need
libfuncs.h in the first place.  The libfuncs.h file will
grow a use of an optab enumeration and thus will require
including optabs.h.

        * libfuncs.h: Include optabs.h.
        * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
        * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
        (lto-streamer-in.o, dwarf2out.o): Update deps.

From-SVN: r189817
2012-07-24 10:31:01 -07:00
Richard Henderson
2225b9f298 Introduce and use unknown_optab
Prep for a later patch where this becomes an enum value.

        * optabs.h (unknown_optab): New.
        * builtins.c (interclass_mathfn_icode): Use it.
        * dojump.c (do_compare_rtx_and_jump): Likewise.
        * optabs.c (optab_for_tree_code, expand_binop): Likewise.
        * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
        (expand_vector_operations_1): Likewise.
        * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
        * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.

From-SVN: r189816
2012-07-24 10:28:41 -07:00
Janis Johnson
0c471ab87b * lib/gcc-dg.exp (process-message): Don't ignore errors.
From-SVN: r189815
2012-07-24 16:55:54 +00:00
Uros Bizjak
1101ed57cf * config/i386/i386.c: Fix whitespace.
From-SVN: r189814
2012-07-24 18:52:46 +02:00
Steven Bosscher
e040476c57 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
From-SVN: r189812
2012-07-24 16:37:45 +00:00
Jan-Benedict Glaw
a0b0a0c34d * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r189810
2012-07-24 13:51:17 +00:00
Ramana Radhakrishnan
9594fe5e91 re PR target/54051 (Invalid alignment specifier generated for vld3_lane_* and vld3_dup_* intrinsics.)
Fix PR target/54051


2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/54051
	* config/arm/arm.c (arm_print_operand_address): Remove superfluous
	printing of 0.
	* config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
	specifier.
	("neon_vld3_lane<mode>":VMQ): Likewise.
	("neon_vld3_dup<mode>":VDX): Likewise.
	("neon_vst3_lane<mode>":VD): Likewise.
	("neon_vst3_lane<mode>":VMQ): Likewise.


2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/54051
	* gcc.target/arm/pr54051.c: New.
	* gcc.target/arm/vfp-1.c: Adjust test.

From-SVN: r189808
2012-07-24 12:02:30 +00:00
Roland McGrath
e2a6dd68af arm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding.
2012-07-24  Roland McGrath  <mcgrathr@google.com>

	* arm.c (arm_get_frame_offsets): Don't use fixed regs for 
	stack alignment padding.

From-SVN: r189807
2012-07-24 11:53:14 +00:00
Uros Bizjak
9fecd0058b re PR target/53961 (internal compiler error: in memory_address_length, at config/i386/i386.c:23341)
PR target/53961
	* config/i386/i386.c (ix86_legitimate_address_p): Move check for
	negative constant address for TARET_X32 ...
	(ix86_decompose_address): ... here.  Reject constant addresses
	that don't satisfy x86_64_immediate_operand predicate.

From-SVN: r189806
2012-07-24 13:37:20 +02:00
Julian Brown
552b56fcf2 sourcebuild.texi (arm_hf_eabi): Document effective-target check.
gcc/
    * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target
    check.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_hf_eabi): New.
    * gcc.dg/torture/stackalign/builtin-apply-2.c: Skip for
    hard-float ARM.

From-SVN: r189805
2012-07-24 11:29:50 +00:00
Uros Bizjak
0229aee998 lto-tree.h (lang_decl): Add variable_size GTY option.
gcc/lto/ChangeLog:

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* lto-tree.h (lang_decl): Add variable_size GTY option.

gcc/go/ChangeLog:

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* go-lang.c (lang_decl): Add variable_size GTY option.

gcc/c/ChangeLog:

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* c-lang.h (lang_decl): Add variable_size GTY option.

From-SVN: r189804
2012-07-24 12:51:11 +02:00
Steven Bosscher
7aa6d18a7c sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
gcc/
	* sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
	Move test to check that there is a popcount function for the the number
	of bits in SBITMAP_ELT_BITS to sbitmap.c.
	* sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
	MEM_STAT_INFO): Define in terms of their ALONE counterparts.

	* configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
	* configure: Regenerate.
	* statistics.h (GATHER_STATISTICS): Error out if it is not defined.
	(GCC_MEM_STAT_ARGUMENTS): New define.
	(ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
	(ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
	(MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT, FINAL_PASS_MEM_STAT,
	* ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
	* ggc.h (ggc_record_overhead, ggc_free_overhead,
	ggc_prune_overhead_list): Remove internal prototypes, they are defined
	already in ggc-internal.h.
	* ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
	wrappers.
	(add_statistics): Likewise.
	(dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0. 
	* ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
	wrappers around "survived" and "stats" members.
	(alloc_large_page): Always initialize survived.
	(ggc_internal_alloc_zone_stat): Likewise.
	Remove #ifdef GATHER_STATISTICS wrappers.  Record overhead if
	GATHER_STATISTICS is non-0.
	(ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
	(sweep_pages): Always increase survived.
	(ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
	(calculate_average_page_survival): Always define.
	(ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
	(ggc_print_statistics): Likewise.
	(ggc_pch_read): Likewise.
	* ggc-page.c (struct globals): Always define "stats" member.
	(ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
	(ggc_free): Likewise.
	(ggc_collec): Likewise.
	(ggc_print_statistics): Likewise.
	* bitmap.h (struct bitmap_head_def): Always define "desc" member.
	(bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
	* gimple.h (enum gimple_alloc_kind): Always define.
	(gimple_alloc_kind): Likewise.
	* tree-flow.h (phinodes_print_statistics): Always define.
	(ssanames_print_statistics): Likewise.
	* vec.h (vec_heap_free): Always define.
	(VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
	* alloc-pool.c (alloc_pool_descriptor): Always define.
	(create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
	(empty_alloc_pool): Likewise.
	(pool_alloc): Likewise.
	(pool_free): Likewise.
	(dump_alloc_pool_statistics): Likewise.
	(print_statistics): Always define.
	* bitmap.c (struct bitmap_descriptor): Always define.
	(bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
	(register_overhead): Always define.
	(bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
	(bitmap_element_allocate): Likewise.
	(bitmap_elt_clear_from): Likewise.
	(bitmap_obstack_alloc_stat): Likewise.
	(bitmap_gc_alloc_stat): Likewise.
	(bitmap_obstack_free): Likewise.
	(bitmap_find_bit): Likewise.
	(bitmap_ior_and_into):  Likewise.
	(bitmap_print): Likewise.
	(dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
	(gimple_alloc_kind_names): Likewise.
	(gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
	(dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
	rtvec_alloc_sizes): Always define.
	(rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
	(rtx_alloc_stat): Likewise.
	(dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
	tree_node_sizes, tree_node_kind_names): Always define.
	(record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
	to if-code.
	(type_hash_canon): Likewise.
	(dump_tree_statistics): Likewise.
	* tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
	Always define.
	(ssanames_print_statistics): Likewise.
	(make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
	* tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
	(phinodes_print_statistics): Likewise.
	(allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
	* vec.c (struct vec_descriptor): Always define.
	(hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
	vec_descriptor, rester_overhead, free_overhead): Likewise.
	(cmp_statistic): Likewise.
	(vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
	(vec_heap_o_reserve_1): Likewise.
	(dump_vec_loc_statistics): Likewise.

cp/
	* cp/class.c (n_vtables, n_vtable_entries, n_vtable_searches,
	n_vtable_elems, n_convert_harshness, n_compute_conversion_costs,
	n_inner_fields_searched): Always define.
	(build_primary_vtable): Convert #ifdef GATHER_STATISTICS to if-code.
	(print_class_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
	* cp/tree.c (depth_reached): Always define global.
	(cxx_print_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
	* cp/pt.c (depth_reached): Always define.
	(push_tinst_level): Convert #ifdef GATHER_STATISTICS to if-code.
	* cp/search.c (n_fields_searched, n_calls_lookup_field,
	n_calls_lookup_field_1, n_calls_lookup_fnfields,
	n_calls_lookup_fnfields_1, n_calls_get_base_type,
	n_outer_fields_searched, n_contexts_saved): Always define.
	(lookup_field_1): Convert #ifdef GATHER_STATISTICS to if-code.
	(lookup_member): Likewise.
	(lookup_fnfields_idx_nolazy): Likewise.
	(print_search_statistics): Likewise.
	(reinit_search_statistics): Unconditionally re-set counters.
	* cp/lex.c (retrofit_lang_decl): Convert #ifdef GATHER_STATISTICS
	to if-code.
	(cxx_dup_lang_specific_decl): Likewise.
	(copy_lang_type): Likewise.
	(cxx_make_type): Likewise.

From-SVN: r189803
2012-07-24 09:49:56 +00:00
Richard Guenther
38ad2d0798 re PR middle-end/53616 (416.gamess in SPEC CPU 2006 miscompiled)
2012-07-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53616
	* tree-loop-distribution.c (ldist_gen): Do not change
	partition ordering when merging partitions.

From-SVN: r189802
2012-07-24 08:37:43 +00:00
Alan Modra
d32d6b75ca re PR target/53914 (poor code generated for offset addressing on ppc32)
PR target/53914
	PR target/54009
	* config/rs6000/constraints.md (Y): Use mem_operand_gpr.
	* config/rs6000/predicates.md (word_offset_memref_operand): Delete.
	Adjust all rs6000_legitimate_offset_address_p calls.
	* config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
	(rs6000_secondary_reload_gpr): Declare.
	(rs6000_legitimate_offset_address_p): Update prototype.
	(rs6000_offsettable_memref_p): Delete.
	(rs6000_secondary_reload_ppc64): Delete.
	* config/rs6000/rs6000.c (address_offset): New function.
	(mem_operand_gpr): Likewise.
	(rs6000_legitimate_offset_address_p): Add worst_case param.  When
	not worst_case assume class of regs with least restrictive offsets.
	Adjust all calls.
	(legitimate_lo_sum_address_p): Simplify register mode tests.
	(rs6000_legitimize_address): Likewise.  Assume best case offset
	addressing.  Combine ELF and MACHO lo_sum code.
	(rs6000_mode_dependent_address): Correct offset addressing limits.
	(rs6000_offsettable_memref_p): Make static, add reg_mode param.
	Use reg_mode to help rs6000_legitimate_offset_address_p.
	(rs6000_secondary_reload): Use address_offset.  Handle 32-bit multi
	gpr load/store when offset too large.
	(rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
	(rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
	* config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
	for gpr load/store.  Order alternatives as r->Y,Y->r,r->r and
	d->m,m->d,d->d.  Correct size of gpr load/store.
	(movdf_softfloat32): Use 'Y' constraint for gpr load/store.  Order
	alternatives.
	(movti_ppc64): Likewise.
	(movdi_internal32): Likewise.  Also disparage fprs.
	(movdi_mfpgpr, movdi_internal64): Likewise.
	(movtf_internal): Use 'm' for fpr load/store.  Order alternatives.
	(movtf_softfloat): Order alternatives.
	(extenddftf2_internal): Use 'm' and 'Y' for store.
	(movti_power, movti_string): Use 'Y' for gpr load/store.  Order.
	(stack_protect_setdi, stack_protect_testdi): Likewise.
	(movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
	(movdf_softfloat64): Likewise.
	(reload_<mode>_store): Adjust reload_di_store to provide
	reload_si_store as well.
	(reload_<mode>_load): Likewise.

From-SVN: r189801
2012-07-24 15:25:50 +09:30
GCC Administrator
71922d523d Daily bump.
From-SVN: r189800
2012-07-24 00:17:26 +00:00
Oleg Endo
ef81230614 re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
PR target/51244
	* config/sh/predicates.md (general_movsrc_operand,
	general_movdst_operand): Reject T_REG.
	* config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
	movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
	Remove T_REG alternatives.
	(*negtstsi): New insn.

From-SVN: r189797
2012-07-23 22:57:36 +00:00
Oleg Endo
5734aefd1b re PR target/53511 (SH Target: Add support for fma patterns)
PR target/53511
	* config/sh/sh.md (mulsf3_ie): Delete.
	(mulsf3_i4): Rename to mulsf3_i.
	(mulsf3): Emit mulsf3_i insn.

From-SVN: r189796
2012-07-23 22:54:06 +00:00
Oleg Endo
dad6fafd3e sh.md (addc1, subc1): Delete.
* config/sh/sh.md (addc1, subc1): Delete.
	(adddi3_compact): Use addc instead of addc1.
	(subdi3_compact): Use subc instead of subc1.

From-SVN: r189795
2012-07-23 22:51:38 +00:00
Uros Bizjak
8046c60427 i386-protos.c (ix86_lea_outperforms): Remove prototype.
* config/i386/i386-protos.c (ix86_lea_outperforms): Remove prototype.
	* config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
	split_cost argument signed.
	(ix86_avoid_lea_for_add): Cleanup.
	(ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
	(ix86_avoid_lea_for_addr): Ditto.  Make split_cost signed.
	Use gen_lowpart instead of gen_rtx_SUBREG.  Cleanup.

From-SVN: r189792
2012-07-23 21:03:48 +02:00
Ulrich Weigand
7839a79c96 * config/arm/arm.c (arm_reorg): Ensure all insns are split.
From-SVN: r189790
2012-07-23 17:28:36 +00:00
Uros Bizjak
7a49d85edf re PR target/53961 (internal compiler error: in memory_address_length, at config/i386/i386.c:23341)
PR target/53961
	* config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
	* config/i386/i386.c (ix86_print_operand_address): Ditto.
	(ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
	addresses.  Prevent zero extensions of CONST_INT operands.

From-SVN: r189787
2012-07-23 18:04:23 +02:00
Steven Bosscher
3c2c4f2202 sbitmap.h (struct int_list): Remove.
* sbitmap.h (struct int_list): Remove.
	(sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
	Remove prototypes of non-existing function.
	(sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
	sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
	unused defines.
	(sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
	sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
	* basic-block.h: ... here.
	* sbitmap.c: Do not include basic-block.h.
	(sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
	sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
	* cfganal.c: ... here.
	* bt-load.c (compute_out, link_btr_uses): Update for above changes.
	* gcse.c (compute_code_hoist_vbeinout): Likewise.
	* lcm.c (compute_antinout_edge, compute_available): Likewise.
	* Makefile.in: Fix sbitmap.o dependencies.

From-SVN: r189785
2012-07-23 14:28:29 +00:00
Paul Brook
87d84e1eb6 armv7m-1.c: New test.
gcc/testsuite/
	* g++.dg/other/armv7m-1.c: New test.

From-SVN: r189784
2012-07-23 14:24:31 +00:00
Jan-Benedict Glaw
afa6353225 frv-protos.h (frv_ifcvt_machdep_init): Prototype.
* config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
	* config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
	(unused) parameter to void *.

Co-Authored-By: Nick Clifton <nickc@redhat.com>

From-SVN: r189783
2012-07-23 14:11:39 +00:00
Richard Guenther
fdc030e81b tree-ssa-alias.c (dump_alias_info): Walk over local decls instead of referenced vars.
2012-07-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (dump_alias_info): Walk over local decls
	instead of referenced vars.

From-SVN: r189782
2012-07-23 13:36:34 +00:00
Steven Bosscher
efbb59b21b coverage.c: Refer to "notes file" instead of "graph file" in all comments.
gcc/
	* coverage.c: Refer to "notes file" instead of "graph file"
	in all comments.  Explain history of bbg prefix.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	(find_source): Likewise in fnotice.
	(read_graph_file): Likewise.
	(read_count_file): Likewise.
	* doc/gcov.texi: Document -fprofile-dir flag.  Add "notes file"
	and "data file" explicitly in the explanation of the files.

libgcc/
	* libgcov.c (__gcov_ior_profiler): Benign comment fix.

From-SVN: r189781
2012-07-23 11:59:15 +00:00
Julian Brown
fa0f401775 20101011-1.c (__aeabi_idiv0): Define for ARM.
gcc/testsuite/
	* gcc.c-torture/execute/20101011-1.c (__aeabi_idiv0): Define for
	ARM.
	(DO_TEST): Define to 1 for appropriate ARM targets.

From-SVN: r189780
2012-07-23 10:47:53 +00:00
Steven Bosscher
25632d2efb re PR tree-optimization/53881 (ICE in hoist_edge_and_branch_if_true)
gcc/
	PR tree-optimization/53881
	* tree-cfg.c (group_case_labels_stmt): Look up the basic block
	for each label and compare them instead of labels.

testsuite/
	PR tree-optimization/53881
	* gcc.dg/pr53881.c: Renamed to ...
	* gcc.dg/pr53881-1.c: ... this.
	* gcc.dg/pr53881-2.c: New test.

From-SVN: r189779
2012-07-23 09:26:41 +00:00
Steven Bosscher
9696c52909 opts.c (common_handle_option): Do not set flag_value_profile_transformations for -fprofile-generate.
* opts.c (common_handle_option): Do not set 
	flag_value_profile_transformations for -fprofile-generate.
	* profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
	(BB_TO_GCOV_INDEX): Remove.
	(output_location): Don't use it.
	(branch_prob): Likewise.  Don't fiddle with the index of
	ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.  Use clear_aux_for_blocks.
	(find_spanning_tree):
	* gcov.c (struct function_info): Document that blocks 0 and 1
	are the entry resp. exit blocks in gcov, too, like in GCC itself.
	(solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
	blocks identification.
	(output_lines): Likewise.
	* value-prof.c (gimple_value_profile_transformations): Do not
	test flag_value_profile_transformations again.
	(gimple_ic_transform): Take a gimple_stmt_iterator like all other
	transformation functions.
	(gimple_values_to_profile):
	Don't test flag_value_profile_transformations
	* tree-profile.c (tree_profiling): Assert that the cgraph is in
	the CGRAPH_STATE_IPA_SSA state.
	Do not set, or look at, after_tree_profile.
	* function.h (struct function): Remove after_tree_profile bit.
	* omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
	* tree-inline.c (initialize_cfun): Don't copy it.
	* lto-streamer-out.c (output_struct_function_base): Don't stream it.
	* lto-streamer-in.c (input_struct_function_base): Likewise.

From-SVN: r189778
2012-07-23 09:24:21 +00:00
Arnaud Charlet
678400b358 [multiple changes]
2012-07-23  Tristan Gingold  <gingold@adacore.com>
        
	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use    
	End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node.    

2012-07-23  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/Makefile.in: Adjust processing of Linker_Options for
	VxWorks.
	* gcc-interface/Make-lang.in: Update dependencies.

From-SVN: r189777
2012-07-23 10:41:08 +02:00
Arnaud Charlet
c4250ab16b [multiple changes]
2012-07-23  Arnaud Charlet  <charlet@adacore.com>

	* s-tasinf-linux.ads: Fix typo.

2012-07-23  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original
	loop carries an identifier, preserve it when rewriting it as a
	standard loop to validate exit statements that may reference
	that name in the body of the loop.

2012-07-23  Thomas Quinot  <quinot@adacore.com>

	* exp_ch9.adb: Minor code cleanup.

From-SVN: r189776
2012-07-23 10:32:33 +02:00
Arnaud Charlet
d7a44b1442 [multiple changes]
2012-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): When checking for
	potential ambiguities with class-wide operations on synchronized
	types, attach the copied node properly to the tree, to prevent
	errors during expansion.

2012-07-23  Yannick Moy  <moy@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body
	is analyzed in Alfa mode.

2012-07-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Adjust previous change.

2012-07-23  Vincent Pucci  <pucci@adacore.com>

	* sem_ch9.adb (Allows_Lock_Free_Implementation): Flag
	Lock_Free_Given renames previous flag Complain. Description
	updated. Henceforth, catch every error messages issued by this
	routine when Lock_Free_Given is True.  Declaration restriction
	updated: No non-elementary parameter instead (even in parameter)
	New subprogram body restrictions implemented: No allocator,
	no address, import or export rep items, no delay statement,
	no goto statement, no quantified expression and no dereference
	of access value.

2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Determine_Range): Add local variable Btyp. Handle
	the case where the base type of an enumeration subtype is
	private. Replace all occurrences of Base_Type with Btyp.
	* exp_attr.adb (Attribute_Valid): Handle the case where the
	base type of an enumeration subtype is private. Replace all
	occurrences of Base_Type with Btyp.
	* sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable
	Btyp. Handle the case where the base type of an enumeration
	subtype is private. Replace all occurrences of Base_Type with
	Btyp.

From-SVN: r189775
2012-07-23 10:29:15 +02:00