Commit Graph

118007 Commits

Author SHA1 Message Date
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
Arnaud Charlet
5087840447 [multiple changes]
2012-07-23  Ed Schonberg  <schonberg@adacore.com>

	* par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply
	to a formal object of an anonymous access type.

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

	* sem_ch4.adb (Try_Container_Indexing): A user-defined indexing
	aspect can have more than one index, e.g. to describe indexing
	of a multidimensional object.

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

	* exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is
	now more complex and contains optional finalization part and mandatory
	deallocation part.

2012-07-23  Gary Dismukes  <dismukes@adacore.com>

	* a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb,
	a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress
	Accessibility_Check for Element_Type allocators.

2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>

	* projects.texi: Fix typo.

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

	* sem_res.adb (Resolve_Explicit_Derenference): If prefix is
	overloaded, remove those interpretations whose designated type
	does not match the context, to avoid spurious ambiguities that
	may be caused by the Ada 2012 conversion rule for anonymous
	access types.

From-SVN: r189774
2012-07-23 10:19:53 +02:00
Arnaud Charlet
473e20df28 [multiple changes]
2012-07-23  Vincent Celier  <celier@adacore.com>

	* g-spitbo.adb (Substr (String)): Return full string and do not
	raise exception when Start is 1 and Len is exactly the length
	of the string parameter.
	* g-spitbo.ads: Fix spelling error in the name of exception
	Index_Error.

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

	* par.adb: new subprogram Get_Aspect_Specifications.
	* par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect
	specifications.
	* par-ch13.adb (Get_Aspect_Specifications): extracted from
	P_Aspect_Specifications. Collect aspect specifications in some
	legal context, but do not attach them to any declaration. Used
	when parsing subprogram declarations or bodies that include
	aspect specifications.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are
	present, analyze them, or reject them if the subprogram as a
	previous spec.

2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Omit section on other platforms/runtimes support
	in gnattest for vms version.

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

	* sem_ch13.adb (Analyze_Aspect_Specifications):
	Handle properly aspects that can be specified on a subprogram
	body: CPU, Priority, and Interrupt_Priority.

2012-07-23  Claire Dross  <dross@adacore.com>

	* a-cfdlli.ads: Switch definition of Constant_Reference_Type
	and Empty_List.

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

	* par_sco.adb (Process_Decisions.Output_Header): For the guard
	on an alternative in a SELECT statement, use the First_Sloc
	of the guard expression (not its topmost sloc) as the decision
	location, because this is what is referenced by dominance markers.

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

	* exp_ch7.adb (Requires_Hooking): Examine the original expression
	of an object declaration node because a function call that
	returns on the secondary stack may have been rewritten into
	something else.

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

	* sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate
	dimension when entity is a non-dimensionless constant.
	(Analyze_Dimension_Object_Declaration): Propagate
	dimension from the expression to the entity when type is a
	dimensioned type and object is a constant.

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

	* sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix
	is not an entity name, expand at once so that code generated by
	the expansion of the prefix is not generated before the constant
	that captures the old value is properly inserted and analyzed.

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

	* exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL
	statement as Comes_From_Source so that GIGI does not eliminate it.

From-SVN: r189773
2012-07-23 10:10:49 +02:00
Arnaud Charlet
219d9cc7f9 [multiple changes]
2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
	a local variable. Retrieve the related instance when processing
	a subprogram instantiation. Such instances appear as wrapper
	packages.

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

	* system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
	system-hpux.ads, system-linux-alpha.ads,
	system-linux-hppa.ads, system-linux-ppc.ads,
	system-linux-s390.ads, system-linux-s390x.ads,
	system-linux-sh4.ads, system-linux-sparc.ads,
	system-lynxos-ppc.ads, system-mingw.ads,
	system-solaris-sparc.ads, system-solaris-sparcv9.ads,
	system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
	system-vxworks-mips.ads, system-vxworks-ppc.ads,
	system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
	* system-darwin-x86.ads, system-darwin-x86_64.ads,
	system-freebsd-x86.ads, system-freebsd-x86_64.ads,
	system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
	system-linux-x86_64.ads, system-lynxos-x86.ads,
	system-mingw-x86_64.ads, system-solaris-x86.ads,
	system-solaris-x86_64.ads, system-vms-ia64.ads,
	system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
	* s-atopri.adb (Lock_Free_Read_X): New body.
	(Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
	(Lock_Free_Try_Write_64): New body.
	* s-atopri.ads: New type uint.
	(Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
	import.
	(Lock_Free_Read_X): Body moved to s-atopri.adb.
	(Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
	routines.
	* targparm.adb: New enumeration literal SAP
	(Support_Atomic_Primitives) for type Targparm_Tags. New constant
	SAP_Str. New component SAP_Str'Access for array Targparm_Str.
	(Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
	flag.
	* targparm.ads: New back-end code generation flag
	Support_Atomic_Primitives_On_Target

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

	* gnat_ugn.texi: Dimensionality checking documentation updated.

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

	* sem_prag.adb (Make_Inline): If the pragma applies to a
	subprogram renaming, set inline flags on both the renamed entity
	and on the renaming, so that some ASIS queries can be handled
	consistently in the absence of expansion.

From-SVN: r189772
2012-07-23 10:01:22 +02:00
Arnaud Charlet
db914ff873 [multiple changes]
2012-07-23  Fedor Rybin  <frybin@adacore.com>

	* gnat_ugn.texi: Removing obsolete limitation of gnattest
	to support only ada05.	Updating gnattest support for other
	platforms/run-times section to reflect the usage of taget
	prefix in gnattest calls.  Fixing missed obsolete --stub-default
	option name.

2012-07-23  Robert Dewar  <dewar@adacore.com>

	* uintp.adb: Minor reformatting.

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

	* system-vxworks-ppc.ads: Replace the default
	Linker_Options requesting crtbe by a commented out request for
	-nostartfiles.

2012-07-23  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Naming): Do not get the exceptions names
	in a virtual project.

From-SVN: r189771
2012-07-23 09:35:03 +02:00
Robert Dewar
2557e05471 layout.adb, [...]: Minor reformatting.
2012-07-23  Robert Dewar  <dewar@adacore.com>

	* layout.adb, sem_prag.adb, sem.ads, freeze.adb,
	switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor
	reformatting.

From-SVN: r189770
2012-07-23 09:31:47 +02:00
Tristan Gingold
63ed669feb trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set location on TRY_CATCH_EXPR.
2012-07-23  Tristan Gingold  <gingold@adacore.com>

	* gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set   
	location on TRY_CATCH_EXPR.

From-SVN: r189769
2012-07-23 09:26:41 +02:00
Uros Bizjak
78aaa514d5 i386.c (ix86_avoid_lea_for_addr): Prevent zero-extended addresses here ...
* config/i386/i386.c (ix86_avoid_lea_for_addr): Prevent zero-extended addresses here ...
	(ix86_avoid_lea_for_add): ... not here.

From-SVN: r189768
2012-07-23 08:50:45 +02:00
Ian Lance Taylor
0abcd2ef51 runtime: correct a logic error in hashmap growth.
The bug prevented maps to grow properly to sizes
larger than 1.3 million.

From Rémy Oudompheng.

From-SVN: r189766
2012-07-23 03:57:28 +00:00
GCC Administrator
8dbe2ebd94 Daily bump.
From-SVN: r189765
2012-07-23 00:17:30 +00:00
Oleg Endo
a594120bfe sh.h (TARGET_DYNSHIFT): New macro.
* config/sh/sh.h (TARGET_DYNSHIFT): New macro.
	(SH_DYNAMIC_SHIFT_COST): Use it.
	* config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
	(sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
	Add sanity check for input value.  Add function description.
	* config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
	lshrsi3_d): Use TARGET_DYNSHIFT.

From-SVN: r189760
2012-07-22 23:38:29 +00:00
Oleg Endo
7222fdd830 sh.md (negc): Delete expander.
* config/sh/sh.md (negc): Delete expander.
	(*negc): Rename insn to negc.

From-SVN: r189759
2012-07-22 23:36:01 +00:00
Hans-Peter Nilsson
8a0678fa7e Handle recent changes in default atomics for cris*-*-linux*.
* gcc.target/cris/torture/sync-mis-xchg-i-1ml.c,
	gcc.target/cris/torture/sync-mis-xchg-i-2ml.c,
	gcc.target/cris/torture/sync-mis-xchg-i-3ml.c,
	gcc.target/cris/torture/sync-mis-xchg-s-1ml.c,
	gcc.target/cris/torture/sync-mis-op-i-1ml.c,
	gcc.target/cris/torture/sync-mis-op-i-2ml.c,
	gcc.target/cris/torture/sync-mis-op-i-3ml.c,
	gcc.target/cris/torture/sync-mis-op-s-1ml.c: New tests.
	* gcc.target/cris/torture/sync-mis-op-i-2a.c: Make sure
	-mno-unaligned-atomic-may-use-library is in effect for
	cris*-*-linux*.
	* gcc.target/cris/torture/sync-mis-xchg-i-1.c,
	gcc.target/cris/torture/sync-mis-xchg-i-2.c,
	gcc.target/cris/torture/sync-mis-xchg-i-3.c,
	gcc.target/cris/torture/sync-mis-xchg-i-2a.c,
	gcc.target/cris/torture/sync-mis-xchg-s-1.c,
	gcc.target/cris/torture/sync-mis-op-i-1.c,
	gcc.target/cris/torture/sync-mis-op-i-2.c,
	gcc.target/cris/torture/sync-mis-op-i-1a.c,
	gcc.target/cris/torture/sync-mis-op-i-3.c,
	gcc.target/cris/torture/sync-mis-op-i-3a.c,
	gcc.target/cris/torture/sync-mis-op-s-1a.c,
	gcc.target/cris/torture/sync-mis-xchg-i-1a.c,
	gcc.target/cris/torture/sync-mis-xchg-i-3a.c,
	gcc.target/cris/torture/sync-mis-xchg-s-1a.c: Similar.
	* gcc.target/cris/torture/sync-mis-op-s-1.c: Ditto.
	(main): Remove local variable x.
	[mis_ok]: Check that atomics don't fail.

From-SVN: r189757
2012-07-22 15:45:07 +00:00
Uros Bizjak
888b670f9e 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): New insn pattern.
	(*lea_1): Remove.
	(*lea<mode>_2): Ditto.
	(*lea_{3,4,5,6}_zext): Ditto.
	* config/i386/constraints.md (j): Remove address constraint.
	* config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
	of an address.
	(ix86_print_operand_address): Handle SImode subreg of an address.
	(ix86_avoid_lea_for_add): Reject zero-extended addresses for now.

From-SVN: r189756
2012-07-22 17:44:51 +02:00
Hans-Peter Nilsson
922a784c4f Emit executable-stack note correctly for CRIS targets.
* config/cris/cris.c (cris_file_end): New function.
	(TARGET_ASM_FILE_END): Define.

From-SVN: r189755
2012-07-22 14:55:38 +00:00
Chung-Lin Tang
eb448bee82 NetLogic Microsystems Inc.
2012-07-22  Chung-Lin Tang  <cltang@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>
	    NetLogic Microsystems Inc.

	* config/mips/mips.c (mips_issue_rate): Handle XLP.
	* config/mips/mips.md: Include xlp.md.
	* config/mips/xlp.md: New file.


Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>

From-SVN: r189754
2012-07-22 07:05:28 +00:00
Andrew Pinski
e5337b35cb vrp72.c: New test.
2012-07-21  Andrew Pinski  <apinski@cavium.com>

	*  gcc.dg/tree-ssa/vrp72.c: New test.
	*  gcc.dg/tree-ssa/vrp73.c: New test.
	*  gcc.dg/tree-ssa/vrp74.c: New test.
	*  gcc.dg/tree-ssa/vrp75.c: New test.

From-SVN: r189753
2012-07-21 22:55:47 -07:00
Andrew Pinski
40287ad370 alias-21.c: New testcase.
2012-07-21  Andrew Pinski  <apinski@cavium.com>

	* gcc.dg/tree-ssa/alias-21.c: New testcase.
	* gcc.dg/tree-ssa/alias-22.c: New testcase.

From-SVN: r189752
2012-07-21 22:32:16 -07:00