Dodji Seketeli [Wed, 25 Jul 2012 13:08:14 +0000 (13:08 +0000)]
Fix typo in comment in basic-block.h
gcc/
* basic-block.c: Fix typo in comment.
From-SVN: r189845
Kirill Yukhin [Wed, 25 Jul 2012 13:01:35 +0000 (13:01 +0000)]
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
Sergey Melnikov [Wed, 25 Jul 2012 10:33:20 +0000 (10:33 +0000)]
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
Steven Bosscher [Wed, 25 Jul 2012 08:56:47 +0000 (08:56 +0000)]
* gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
From-SVN: r189839
Venkataramanan Kumar [Wed, 25 Jul 2012 08:50:01 +0000 (08:50 +0000)]
AMD btver2 enablement
From-SVN: r189838
Bill Schmidt [Wed, 25 Jul 2012 03:07:08 +0000 (03:07 +0000)]
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
GCC Administrator [Wed, 25 Jul 2012 00:17:37 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r189832
Richard Henderson [Tue, 24 Jul 2012 22:25:18 +0000 (15:25 -0700)]
Purge FIXUNS_TRUNC_LIKE_FIX_TRUNC
From-SVN: r189826
Paolo Carlini [Tue, 24 Jul 2012 21:53:31 +0000 (21:53 +0000)]
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
Richard Henderson [Tue, 24 Jul 2012 18:28:15 +0000 (11:28 -0700)]
Reduce the size of optabs representation
From-SVN: r189821
Uros Bizjak [Tue, 24 Jul 2012 17:59:25 +0000 (19:59 +0200)]
* ChangeLog: Fix my recent entry.
From-SVN: r189820
Jason Merrill [Tue, 24 Jul 2012 17:53:42 +0000 (13:53 -0400)]
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
Richard Henderson [Tue, 24 Jul 2012 17:36:56 +0000 (10:36 -0700)]
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
Richard Henderson [Tue, 24 Jul 2012 17:31:01 +0000 (10:31 -0700)]
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
Richard Henderson [Tue, 24 Jul 2012 17:28:41 +0000 (10:28 -0700)]
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
Janis Johnson [Tue, 24 Jul 2012 16:55:54 +0000 (16:55 +0000)]
* lib/gcc-dg.exp (process-message): Don't ignore errors.
From-SVN: r189815
Uros Bizjak [Tue, 24 Jul 2012 16:52:46 +0000 (18:52 +0200)]
* config/i386/i386.c: Fix whitespace.
From-SVN: r189814
Steven Bosscher [Tue, 24 Jul 2012 16:37:45 +0000 (16:37 +0000)]
* alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
From-SVN: r189812
Jan-Benedict Glaw [Tue, 24 Jul 2012 13:51:17 +0000 (13:51 +0000)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r189810
Ramana Radhakrishnan [Tue, 24 Jul 2012 12:02:30 +0000 (12:02 +0000)]
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
Roland McGrath [Tue, 24 Jul 2012 11:53:14 +0000 (11:53 +0000)]
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
Uros Bizjak [Tue, 24 Jul 2012 11:37:20 +0000 (13:37 +0200)]
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
Julian Brown [Tue, 24 Jul 2012 11:29:50 +0000 (11:29 +0000)]
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
Uros Bizjak [Tue, 24 Jul 2012 10:51:11 +0000 (12:51 +0200)]
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
Steven Bosscher [Tue, 24 Jul 2012 09:49:56 +0000 (09:49 +0000)]
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
Richard Guenther [Tue, 24 Jul 2012 08:37:43 +0000 (08:37 +0000)]
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
Alan Modra [Tue, 24 Jul 2012 05:55:50 +0000 (15:25 +0930)]
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
GCC Administrator [Tue, 24 Jul 2012 00:17:26 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r189800
Oleg Endo [Mon, 23 Jul 2012 22:57:36 +0000 (22:57 +0000)]
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
Oleg Endo [Mon, 23 Jul 2012 22:54:06 +0000 (22:54 +0000)]
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
Oleg Endo [Mon, 23 Jul 2012 22:51:38 +0000 (22:51 +0000)]
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
Uros Bizjak [Mon, 23 Jul 2012 19:03:48 +0000 (21:03 +0200)]
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
Ulrich Weigand [Mon, 23 Jul 2012 17:28:36 +0000 (17:28 +0000)]
* config/arm/arm.c (arm_reorg): Ensure all insns are split.
From-SVN: r189790
Uros Bizjak [Mon, 23 Jul 2012 16:04:23 +0000 (18:04 +0200)]
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
Steven Bosscher [Mon, 23 Jul 2012 14:28:29 +0000 (14:28 +0000)]
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
Paul Brook [Mon, 23 Jul 2012 14:24:31 +0000 (14:24 +0000)]
armv7m-1.c: New test.
gcc/testsuite/
* g++.dg/other/armv7m-1.c: New test.
From-SVN: r189784
Jan-Benedict Glaw [Mon, 23 Jul 2012 14:11:39 +0000 (14:11 +0000)]
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
Richard Guenther [Mon, 23 Jul 2012 13:36:34 +0000 (13:36 +0000)]
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
Steven Bosscher [Mon, 23 Jul 2012 11:59:15 +0000 (11:59 +0000)]
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
Julian Brown [Mon, 23 Jul 2012 10:47:53 +0000 (10:47 +0000)]
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
Steven Bosscher [Mon, 23 Jul 2012 09:26:41 +0000 (09:26 +0000)]
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
Steven Bosscher [Mon, 23 Jul 2012 09:24:21 +0000 (09:24 +0000)]
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
Arnaud Charlet [Mon, 23 Jul 2012 08:41:08 +0000 (10:41 +0200)]
[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
Arnaud Charlet [Mon, 23 Jul 2012 08:32:33 +0000 (10:32 +0200)]
[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
Arnaud Charlet [Mon, 23 Jul 2012 08:29:15 +0000 (10:29 +0200)]
[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
Arnaud Charlet [Mon, 23 Jul 2012 08:19:53 +0000 (10:19 +0200)]
[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
Arnaud Charlet [Mon, 23 Jul 2012 08:10:49 +0000 (10:10 +0200)]
[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
Arnaud Charlet [Mon, 23 Jul 2012 08:01:22 +0000 (10:01 +0200)]
[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
Arnaud Charlet [Mon, 23 Jul 2012 07:35:03 +0000 (09:35 +0200)]
[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
Robert Dewar [Mon, 23 Jul 2012 07:31:47 +0000 (07:31 +0000)]
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
Tristan Gingold [Mon, 23 Jul 2012 07:26:41 +0000 (07:26 +0000)]
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
Uros Bizjak [Mon, 23 Jul 2012 06:50:45 +0000 (08:50 +0200)]
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
Ian Lance Taylor [Mon, 23 Jul 2012 03:57:28 +0000 (03:57 +0000)]
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
GCC Administrator [Mon, 23 Jul 2012 00:17:30 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r189765
Oleg Endo [Sun, 22 Jul 2012 23:38:29 +0000 (23:38 +0000)]
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
Oleg Endo [Sun, 22 Jul 2012 23:36:01 +0000 (23:36 +0000)]
sh.md (negc): Delete expander.
* config/sh/sh.md (negc): Delete expander.
(*negc): Rename insn to negc.
From-SVN: r189759
Hans-Peter Nilsson [Sun, 22 Jul 2012 15:45:07 +0000 (15:45 +0000)]
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
Uros Bizjak [Sun, 22 Jul 2012 15:44:51 +0000 (17:44 +0200)]
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
Hans-Peter Nilsson [Sun, 22 Jul 2012 14:55:38 +0000 (14:55 +0000)]
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
Chung-Lin Tang [Sun, 22 Jul 2012 07:05:28 +0000 (07:05 +0000)]
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
Andrew Pinski [Sun, 22 Jul 2012 05:55:47 +0000 (05:55 +0000)]
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
Andrew Pinski [Sun, 22 Jul 2012 05:32:16 +0000 (05:32 +0000)]
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
GCC Administrator [Sun, 22 Jul 2012 00:18:34 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r189751
Steven Bosscher [Sat, 21 Jul 2012 23:37:02 +0000 (23:37 +0000)]
re PR gcov-profile/32543 (Gcov: profile.c total_num_edges_instrumented never incremented (patch included))
PR gcov-profile/32543
* profile.c (branch_prob): Update total_num_edges_instrumented and
report the number of edges to instrument.
From-SVN: r189748
Oleg Endo [Sat, 21 Jul 2012 19:40:37 +0000 (19:40 +0000)]
sh.md: Correct comment regarding clrt and sett insns.
* config/sh/sh.md: Correct comment regarding clrt and sett insns.
From-SVN: r189747
Tobias Burnus [Sat, 21 Jul 2012 15:37:46 +0000 (17:37 +0200)]
iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter.
2012-07-21 Tobias Burnus <burnus@net-b.de>
* iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter.
* intrinsic.texi (ISO_C_BINDING): Document it.
From-SVN: r189746
Steven Bosscher [Sat, 21 Jul 2012 12:31:26 +0000 (12:31 +0000)]
Fix comment typo.
From-SVN: r189745
Andrew Pinski [Sat, 21 Jul 2012 11:05:04 +0000 (11:05 +0000)]
mips.md (*popcountdi2_trunc): New pattern to handle popcount of a truncation.
2012-07-21 Andrew Pinski <apinski@cavium.com>
* config/mips/mips.md (*popcountdi2_trunc): New pattern
to handle popcount of a truncation.
2012-07-21 Andrew Pinski <apinski@cavium.com>
* gcc.target/mips/octeon-pop-2.c: New testcase.
From-SVN: r189744
Tobias Burnus [Sat, 21 Jul 2012 11:02:47 +0000 (13:02 +0200)]
re PR fortran/48820 (TR 29113: Implement parts needed for MPI 3)
2012-07-21 Tobias Burnus <burnus@net-b.de>
PR fortran/48820
* trans-intrinsic.c (gfc_conv_intrinsic_bound): Support
lbound/ubound with dim= for assumed-rank arrays.
* array.c (gfc_set_array_spec): Reject coarrays with
assumed shape.
* decl.c (merge_array_spec): Ditto. Return gfc_try.
(match_attr_spec, match_attr_spec): Update call.
2012-07-21 Tobias Burnus <burnus@net-b.de>
PR fortran/48820
* gfortran.dg/assumed_rank_3.f90: New.
* gfortran.dg/assumed_rank_11.f90: New.
* gfortran.dg/assumed_rank_1.f90: Update dg-error.
* gfortran.dg/assumed_rank_2.f90: Update dg-error.
* gfortran.dg/assumed_rank_7.f90: Update dg-error.
From-SVN: r189743
Andrew Pinski [Sat, 21 Jul 2012 10:38:20 +0000 (10:38 +0000)]
mips-protos.h (mips_expand_ext_as_unaligned_load): Add a bool argument.
2012-07-21 Andrew Pinski <apinski@cavium.com>
* config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
Add a bool argument.
* config/mips/mips.c (mips_block_move_straight): Update call to
mips_expand_ext_as_unaligned_load.
(mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
Accept DImode dest when the width is that of SImode.
* config/mips/mips.md (extv): Update call to
mips_expand_ext_as_unaligned_load.
(extzv): Likewise.
2012-07-21 Andrew Pinski <apinski@cavium.com>
* gcc.target/mips/unaligned-1.c: New testcase.
From-SVN: r189742
Tobias Burnus [Sat, 21 Jul 2012 09:37:18 +0000 (11:37 +0200)]
resolve.c (resolve_formal_arglist): Put variable declaration before the first assignment.
2012-07-21 Tobias Burnus <burnus@net-b.de>
* resolve.c (resolve_formal_arglist): Put variable
declaration before the first assignment.
From-SVN: r189740
Tobias Burnus [Sat, 21 Jul 2012 09:27:04 +0000 (11:27 +0200)]
trans-expr.c (gfc_conv_derived_to_class): Fix argument passed to class_array_data_assign.
2012-07-21 Tobias Burnus <burnus@net-b.de>
* trans-expr.c (gfc_conv_derived_to_class): Fix argument passed
to class_array_data_assign.
From-SVN: r189739
Andrew Pinski [Sat, 21 Jul 2012 08:39:13 +0000 (08:39 +0000)]
mips.c (mips_get_unaligned_mem): Copy *op after calling adjust_address.
2012-07-21 Andrew Pinski <apinski@cavium.com>
* config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
adjust_address.
From-SVN: r189738
GCC Administrator [Sat, 21 Jul 2012 00:17:32 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r189737
Maxim Kuvyrkov [Sat, 21 Jul 2012 00:01:40 +0000 (00:01 +0000)]
mips.md (define_attr sync_*): Move before "type".
* config/mips/mips.md (define_attr sync_*): Move before "type".
(define_attr "type"): New values "atomic" and "syncloop".
* config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
Set "type" attribute.
* config/mips/generic.md (generic_atomic, generic_syncloop):
New reservations.
* gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
* gcc/config/mips/24k.md, gcc/config/mips/4130.md,
* gcc/config/mips/4k.md, gcc/config/mips/5400.md,
* gcc/config/mips/5500.md, gcc/config/mips/5k.md,
* gcc/config/mips/7000.md, gcc/config/mips/74k.md,
* gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
* gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
* gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
* gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
From-SVN: r189734
Hans-Peter Nilsson [Fri, 20 Jul 2012 22:25:09 +0000 (22:25 +0000)]
* gcc.c-torture/execute/
20101011-1.c (DO_TEST): Define as 0 for CRIS.
From-SVN: r189733
Oleg Endo [Fri, 20 Jul 2012 21:38:41 +0000 (21:38 +0000)]
Fix ChangeLog formatting.
From-SVN: r189731
Oleg Endo [Fri, 20 Jul 2012 21:37:27 +0000 (21:37 +0000)]
sh.md: Group and sort shift related patterns.
* config/sh/sh.md: Group and sort shift related patterns.
(ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
From-SVN: r189730
Hans-Peter Nilsson [Fri, 20 Jul 2012 21:32:18 +0000 (21:32 +0000)]
cris.c (cris_asm_output_ident): Remove unused local variables section_asm_op, size, buf.
* config/cris/cris.c (cris_asm_output_ident): Remove unused
local variables section_asm_op, size, buf.
From-SVN: r189729
Pat Haugen [Fri, 20 Jul 2012 21:31:30 +0000 (21:31 +0000)]
power4.md (power4-store-update): Fix reservation.
2012-07-20 Pat Haugen <pthaugen@us.ibm.com>
Steven Bosscher <steven@gcc.gnu.org>
* config/rs6000/power4.md (power4-store-update): Fix reservation.
(power4-three): Likewise.
Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
From-SVN: r189728
Tobias Burnus [Fri, 20 Jul 2012 20:15:59 +0000 (22:15 +0200)]
decl.c (gfc_verify_c_interop_param): Allow assumed-shape with -std=f2008ts.
2012-07-20 Tobias Burnus <burnus@net-b.de>
* decl.c (gfc_verify_c_interop_param): Allow assumed-shape
with -std=f2008ts.
2012-07-20 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/bind_c_array_params_2.f90: New.
* gfortran.dg/bind_c_array_params.f03: Add -std=f2003
and update dg-error.
From-SVN: r189726
Tobias Burnus [Fri, 20 Jul 2012 20:05:50 +0000 (22:05 +0200)]
assumed_rank_12.f90: Update dg-error.
2012-07-20 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/assumed_rank_12.f90: Update dg-error.
From-SVN: r189725
Sameera Deshpande [Fri, 20 Jul 2012 17:12:03 +0000 (22:42 +0530)]
arm.c (arm_cortex_a15_tune): New tune.
gcc/
2012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.c (arm_cortex_a15_tune): New tune.
* config/arm/arm-cores.def (cortex-a15): Use it.
Co-Authored-By: Greta Yorsh <greta.yorsh@arm.com>
From-SVN: r189723
Sameera Deshpande [Fri, 20 Jul 2012 17:07:33 +0000 (22:37 +0530)]
arm-protos.h (tune_params): Add prefer_ldrd_strd.
gcc/
2012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
* config/arm/arm.c (arm_slowmul_tune): Initialize it.
(arm_fastmul_tune, arm_strongarm_tune): Likewise.
(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
(arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
(arm_fa726te_tune): Likewise.
Co-Authored-By: Greta Yorsh <greta.yorsh@arm.com>
From-SVN: r189722
Jason Merrill [Fri, 20 Jul 2012 16:11:42 +0000 (12:11 -0400)]
re PR c++/54038 (finalize_type_size enters infinite loop becasue TYPE_NEXT_VARIANT (variant) == variant)
PR c++/54038
* tree.c (build_cplus_array_type): Use build_cplus_array_type to build
canonical array type rather than mess with its TYPE_*_VARIANT.
From-SVN: r189719
Richard Guenther [Fri, 20 Jul 2012 12:56:41 +0000 (12:56 +0000)]
tree-dfa.c (collect_dfa_stats): Simplify.
2012-07-20 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (collect_dfa_stats): Simplify.
* tree-ssa-structalias.c (compute_may_aliases): Do not dump
referenced vars.
* cfgexpand.c (estimated_stack_frame_size): Walk over local
decls instead of referenced vars.
* tree-ssa.c (delete_tree_ssa): Simplify.
* tree-tailcall.c (find_tail_calls): Walk over local decls
instead of referenced vars.
(add_virtual_phis): Remove.
(tree_optimize_tail_calls_1): Instead mark the virtual operand
for renaming.
From-SVN: r189718
Steven Bosscher [Fri, 20 Jul 2012 12:25:55 +0000 (12:25 +0000)]
basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
gcc/
* basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
(brief_dump_cfg): Update prototype to take flags argument.
(check_bb_profile): Remove prototype.
* tracer.c (tracer): Update brief_dump_cfg calls.
* cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
Call dump_bb_info before and after the cfghook dump_bb. Terminate
the dump with a newline.
(dump_flow_info): Do not call check_bb_profile.
* cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
(check_bb_profile): Make static. Take indent and flags arguments.
(dump_bb_info): Always dump loop depth. With TDF_DETAILS, call
check_bb_profile. Print one edge per line.
(brief_dump_cfg): Take a flags argument, and filter out
TDF_COMMENT and TDF_DETAILS.
* pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
* gimple-pretty-print.c (dump_gimple_bb_header): Do not use dump_bb_info
here, it is already called from dump_bb. Idem for check_bb_profile.
(dump_gimple_bb_footer): Likewise.
(gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
avoid broken dumps for statement histograms.
(gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do
not call pp_flush here, the buffer should be empty.
* sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
* sched-vis.c (debug_bb_slim): Likewise.
* tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
(gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
(gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
(dump_function_to_file): Do not call check_bb_profile on
ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
Use dump_bb instead of gimple_dump_bb.
(print_loops_bb): Use dump_bb instead of gimple_dump_bb.
* passes.c (execute_function_dump): Always call print_rtl_with_bb
for RTL dumps.
* cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and bottom
of each basic block.
testsuite/
* gcc.dg/tree-prof/update-loopch.c: Look for counts on the dumps of
the basic block and check loop depth.
* gcc.dg/tree-ssa/pr18133-1.c: Dump details, not blocks. Update
matching patterns and comments.
* gcc.dg/tree-ssa/
20031021-1.c: Fix check patterns.
* gcc.dg/tree-ssa/vector-2.c: Likewise.
From-SVN: r189717
Richard Guenther [Fri, 20 Jul 2012 11:24:55 +0000 (11:24 +0000)]
re PR tree-optimization/54031 (Revision 189607 miscompiles Linux kernel)
2012-07-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54031
* tree-ssa-ccp.c (get_value_from_alignment): Use
get_pointer_alignment_1.
From-SVN: r189715
Richard Guenther [Fri, 20 Jul 2012 09:59:55 +0000 (09:59 +0000)]
tree-inline.c (add_local_variables): Remove check_var_ann parameter and dead code.
2012-07-20 Richard Guenther <rguenther@suse.de>
* tree-inline.c (add_local_variables): Remove check_var_ann
parameter and dead code.
(expand_call_inline): Adjust.
(tree_function_versioning): Likewise.
From-SVN: r189712
Chip Salzenberg [Fri, 20 Jul 2012 09:48:57 +0000 (09:48 +0000)]
re PR libstdc++/54025 (atomic<chrono::duration> won't compile: chrono::duration::duration() is not C++11 compliant)
2012-07-20 Chip Salzenberg <chip@pobox.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/54025
* include/std/chrono (duration<>::duration): Fix per C++11.
* testsuite/20_util/duration/cons/54025.cc: New.
* testsuite/20_util/duration/cons/constexpr.cc: Adjust.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r189711
Paolo Carlini [Fri, 20 Jul 2012 09:44:15 +0000 (09:44 +0000)]
adl.cc: Add missing dg-requires.
2012-07-20 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/30_threads/thread/adl.cc: Add missing dg-requires.
From-SVN: r189709
Jakub Jelinek [Fri, 20 Jul 2012 09:37:25 +0000 (11:37 +0200)]
re PR c++/28656 (duplicated null argument warning on memcpy())
PR c++/28656
* tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
of just the first one.
* c-common.c (check_function_nonnull): Handle multiple nonnull
attributes properly.
* c-c++-common/pr28656.c: New test.
From-SVN: r189707
Richard Guenther [Fri, 20 Jul 2012 08:31:26 +0000 (08:31 +0000)]
builtins.c (get_object_alignment_2): Correct offset handling when using type alignment of a MEM_REF kind base.
2012-07-20 Richard Guenther <rguenther@suse.de>
* builtins.c (get_object_alignment_2): Correct offset handling
when using type alignment of a MEM_REF kind base.
From-SVN: r189704
Kirill Yukhin [Fri, 20 Jul 2012 08:24:24 +0000 (08:24 +0000)]
re PR target/53877 (__lzcnt_u16/__lzcnt_u32/__lzcnt_u64 aren't implemented)
2012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/53877
* config/i386/lzcntintrin.h (_lzcnt_u32): New.
(_lzcnt_u64): Ditto.
From-SVN: r189703
Jason Merrill [Fri, 20 Jul 2012 06:29:13 +0000 (02:29 -0400)]
re PR c++/54026 (template const struct with mutable members erroneously emitted to .rodata)
PR c++/54026
* typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P.
From-SVN: r189701
Tobias Burnus [Fri, 20 Jul 2012 05:56:37 +0000 (07:56 +0200)]
re PR fortran/48820 (TR 29113: Implement parts needed for MPI 3)
2012-07-20 Tobias Burnus <burnus@net-b.de>
PR fortran/48820
* array.c (match_array_element_spec, gfc_match_array_spec,
spec_size, gfc_array_dimen_size): Add support for
assumed-rank arrays.
* check.c (dim_rank_check): Ditto.
* class.c (gfc_add_component_ref): Ditto.
(gfc_build_class_symbol): Regard assumed-rank arrays
as having GFC_MAX_DIMENSIONS. And build extra class
container for a scalar pointer class.
* decl.c (merge_array_spec): Add assert.
* dump-parse-tree.c (show_array_spec): Add support for
assumed-rank arrays.
* expr.c (gfc_is_simply_contiguous): Ditto.
* gfortran.h (array_type): Ditto.
(gfc_array_spec, gfc_expr): Add comment to "rank" field.
* interface.c (compare_type_rank, argument_rank_mismatch,
compare_parameter, gfc_procedure_use): Ditto.
(compare_actual_formal): Fix NULL() to optional-dummy
handling for polymorphic dummies.
* module.c (mio_typespec): Add support for
assumed-rank arrays.
* resolve.c (resolve_formal_arglist, resolve_actual_arglist,
resolve_elemental_actual, resolve_global_procedure,
expression_shape, resolve_variable, update_ppc_arglist,
check_typebound_baseobject, gfc_resolve_expr,
resolve_fl_var_and_proc, gfc_resolve_finalizers,
resolve_typebound_procedure, resolve_symbol): Ditto.
(assumed_type_expr_allowed): Remove static variable.
(actual_arg, first_actual_arg): New static variables.
* simplify.c (simplify_bound, gfc_simplify_range): Add
support for assumed-rank arrays.
* trans-array.c (gfc_conv_array_parameter): Ditto.
(gfc_get_descriptor_dimension): New function, which returns
the descriptor.
(gfc_conv_descriptor_dimension): Use it.
(gfc_conv_descriptor_stride_get, gfc_conv_array_parameter):
Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK.
* trans-array.h (gfc_get_descriptor_dimension): New prototype.
* trans-decl. (gfc_build_dummy_array_decl,
gfc_trans_deferred_vars, add_argument_checking): Add
support for assumed-rank arrays.
* trans-expr.c (gfc_conv_expr_present, gfc_conv_variable,
gfc_conv_procedure_call): Ditto.
(get_scalar_to_descriptor_type, class_array_data_assign,
conv_scalar_to_descriptor): New static functions.
(gfc_conv_derived_to_class, gfc_conv_class_to_class): Use
them.
* trans-intrinsic.c (get_rank_from_desc): New function.
(gfc_conv_intrinsic_rank, gfc_conv_associated): Use it.
* trans-types.c (gfc_array_descriptor_base_caf,
gfc_array_descriptor_base): Make space for scalar array.
(gfc_is_nodesc_array, gfc_is_nodesc_array,
gfc_build_array_type, gfc_get_array_descriptor_base): Add
support for assumed-rank arrays.
* trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and
GFC_ARRAY_ASSUMED_RANK_CONT.
2012-07-20 Tobias Burnus <burnus@net-b.de>
PR fortran/48820
* gfortran.dg/assumed_type_3.f90: Update dg-error.
* gfortran.dg/assumed_rank_1.f90: New.
* gfortran.dg/assumed_rank_1_c.c: New.
* gfortran.dg/assumed_rank_2.f90: New.
* gfortran.dg/assumed_rank_4.f90: New.
* gfortran.dg/assumed_rank_5.f90: New.
* gfortran.dg/assumed_rank_6.f90: New.
* gfortran.dg/assumed_rank_7.f90: New.
* gfortran.dg/assumed_rank_8.f90: New.
* gfortran.dg/assumed_rank_8_c.c: New.
* gfortran.dg/assumed_rank_9.f90: New.
* gfortran.dg/assumed_rank_10.f90: New.
* gfortran.dg/assumed_rank_12.f90: New.
From-SVN: r189700
GCC Administrator [Fri, 20 Jul 2012 00:16:52 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r189695
Eric Botcazou [Thu, 19 Jul 2012 21:55:03 +0000 (21:55 +0000)]
* config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
From-SVN: r189689
Eric Botcazou [Thu, 19 Jul 2012 21:35:12 +0000 (21:35 +0000)]
tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the defining statement is a SSA name that occurs in abnormal...
* tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
defining statement is a SSA name that occurs in abnormal PHIs.
From-SVN: r189687
Eric Botcazou [Thu, 19 Jul 2012 21:22:04 +0000 (21:22 +0000)]
gimple-fold.c (canonicalize_constructor_val): Strip only useless type conversions.
* gimple-fold.c (canonicalize_constructor_val): Strip only useless type
conversions.
From-SVN: r189685