1. 25 Jul, 2012 6 commits
    • Changelog entry: · e61c94dd
      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
      Kirill Yukhin committed
    • i386.md (stack_protect_set): Disable the pattern for Android since Android libc… · 4bd5abca
      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
      Sergey Melnikov committed
    • AMD btver2 enablement · e32bfc16
      From-SVN: r189838
      Venkataramanan Kumar committed
    • tm.texi: Regenerate. · 92345349
      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
      Bill Schmidt committed
    • Daily bump. · ad777141
      From-SVN: r189832
      GCC Administrator committed
  2. 24 Jul, 2012 21 commits
    • Purge FIXUNS_TRUNC_LIKE_FIX_TRUNC · 5e4aec98
      From-SVN: r189826
      Richard Henderson committed
    • pt.c (convert_template_argument, tsubst): Simplify fourth argument to… · d8dd6fae
      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
      Paolo Carlini committed
    • Reduce the size of optabs representation · cd1440b1
      From-SVN: r189821
      Richard Henderson committed
    • * ChangeLog: Fix my recent entry. · 658e8eba
      From-SVN: r189820
      Uros Bizjak committed
    • bitmap.c (bitmap_descriptor): Adjust order of parameters to match MEM_STAT_DECL. · 4cdf5307
      	* 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
      Jason Merrill committed
    • Introduce and use code_to_optab and optab_to_code functions · 19b5fafb
      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
      Richard Henderson committed
    • Tidy some include usage + dependencies · 723cd7ab
      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
      Richard Henderson committed
    • Introduce and use unknown_optab · 2225b9f2
      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
      Richard Henderson committed
    • * lib/gcc-dg.exp (process-message): Don't ignore errors. · 0c471ab8
      From-SVN: r189815
      Janis Johnson committed
    • * config/i386/i386.c: Fix whitespace. · 1101ed57
      From-SVN: r189814
      Uros Bizjak committed
    • * MAINTAINERS (Write After Approval): Add myself. · a0b0a0c3
      From-SVN: r189810
      Jan-Benedict Glaw committed
    • re PR target/54051 (Invalid alignment specifier generated for vld3_lane_* and… · 9594fe5e
      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
      Ramana Radhakrishnan committed
    • arm.c (arm_get_frame_offsets): Don't use fixed regs for stack alignment padding. · e2a6dd68
      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
      Roland McGrath committed
    • re PR target/53961 (internal compiler error: in memory_address_length, at config/i386/i386.c:23341) · 9fecd005
      	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
      Uros Bizjak committed
    • sourcebuild.texi (arm_hf_eabi): Document effective-target check. · 552b56fc
          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
      Julian Brown committed
    • lto-tree.h (lang_decl): Add variable_size GTY option. · 0229aee9
      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
      Uros Bizjak committed
    • sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS. · 7aa6d18a
      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
      Steven Bosscher committed
    • re PR middle-end/53616 (416.gamess in SPEC CPU 2006 miscompiled) · 38ad2d07
      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
      Richard Guenther committed
    • re PR target/53914 (poor code generated for offset addressing on ppc32) · d32d6b75
      	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
      Alan Modra committed
    • Daily bump. · 71922d52
      From-SVN: r189800
      GCC Administrator committed
  3. 23 Jul, 2012 13 commits