1. 12 Dec, 2011 6 commits
  2. 11 Dec, 2011 13 commits
    • re PR tree-optimization/51485 (ICE in vectorizable_assignment) · 9c239085
      	PR tree-optimization/51485
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
      	DRs in call stmts.
      
      	* g++.dg/vect/pr51485.cc: New test.
      
      From-SVN: r182212
      Jakub Jelinek committed
    • re PR fortran/50923 (No warning if function return value is not set) · fba5ace0
      2011-12-11  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/50923
              * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
              if the front end has printed a warning.
              (gfc_generate_function_code): Fix unset-result warning.
      
      2011-12-11  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/50923
              * gfortran.dg/warn_function_without_result_2.f90: New.
      
      From-SVN: r182211
      Tobias Burnus committed
    • re PR fortran/41539 ([OOP] Calling function which takes CLASS: Rank comparison does not work) · c49ea23d
      2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
      	Tobias Burnus  <burnus@gcc.gnu.org>
      
      	PR fortran/41539
      	PR fortran/43214
      	PR fortran/43969
      	PR fortran/44568
      	PR fortran/46356
      	PR fortran/46990
      	PR fortran/49074
      	* interface.c(symbol_rank): Return the rank of the _data
      	component of class objects.
      	(compare_parameter): Also compare the derived type of the class
      	_data component for type mismatch.  Similarly, return 1 if the
      	formal and _data ranks match.
      	(compare_actual_formal): Do not compare storage sizes for class
      	expressions. It is an error if an actual class array, passed to
      	a formal class array is not full.
      	* trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
      	gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
      	gfc_vtable_extends_get, gfc_vtable_def_init_get,
      	gfc_vtable_copy_get): New functions for class API.
      	(gfc_conv_derived_to_class): For an array reference in an
      	elemental procedure call retain the ss to provide the
      	scalarized array reference. Moved in file.
      	(gfc_conv_class_to_class): New function.
              (gfc_conv_subref_array_arg): Use the type of the
      	class _data component as a basetype.
      	(gfc_conv_procedure_call): Ensure that class array expressions
      	have both the _data reference and an array reference. Use 
      	gfc_conv_class_to_class to handle class arrays for elemental
      	functions in scalarized loops, class array elements and full
      	class arrays. Use a call to gfc_conv_subref_array_arg in order
      	that the copy-in/copy-out for passing class arrays to derived
      	type arrays occurs correctly.
      	(gfc_conv_expr): If it is missing, add the _data component
      	between a class object or component and an array reference.
      	(gfc_trans_class_array_init_assign): New function.
      	(gfc_trans_class_init_assign): Call it for array expressions.
      	* trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
      	class scalars since their size will depend on the dynamic type.
      	(build_class_array_ref): New function.
      	(gfc_conv_scalarized_array_ref): Call build_class_array_ref.
      	(gfc_array_init_size): Add extra argument, expr3, that represents
      	the SOURCE argument. If present,use this for the element size.
      	(gfc_array_allocate): Also add argument expr3 and use it when
      	calling gfc_array_init_size.
      	(structure_alloc_comps): Enable class arrays.
      	* class.c (gfc_add_component_ref): Carry over the derived type
      	of the _data component.
      	(gfc_add_class_array_ref): New function.
      	(class_array_ref_detected): New static function.
      	(gfc_is_class_array_ref): New function that calls previous.
      	(gfc_is_class_scalar_expr): New function.
      	(gfc_build_class_symbol): Throw not implemented error for
      	assumed size class arrays.  Remove error that prevents
      	CLASS arrays.
      	(gfc_build_class_symbol): Prevent pointer/allocatable conflict.
      	Also unset codimension.
      	(gfc_find_derived_vtab): Make 'copy' elemental and set the
      	intent of the arguments accordingly.: 
      	* trans-array.h : Update prototype for gfc_array_allocate.
      	* array.c (gfc_array_dimen_size): Return failure if class expr.
      	(gfc_array_size): Likewise.
      	* gfortran.h : New prototypes for gfc_add_class_array_ref,
      	gfc_is_class_array_ref and gfc_is_class_scalar_expr.
      	* trans-stmt.c (trans_associate_var): Exclude class targets
      	from test. Move the allocation of the _vptr to an earlier time
      	for class objects.
      	(trans_associate_var): Assign the descriptor directly for class
      	arrays.
      	(gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
      	Convert array element references into sections. Do not invoke
      	gfc_conv_procedure_call, use gfc_trans_call instead.
      	* expr.c (gfc_get_corank): Fix for BT_CLASS.
      	(gfc_is_simply_contiguous): Exclude class from test.
      	* trans.c (gfc_build_array_ref): Include class array refs.
      	* trans.h : Include prototypes for class API functions that are
      	new in trans-expr. Define GFC_DECL_CLASS(node).
      	* resolve.c (check_typebound_baseobject ): Remove error for
      	non-scalar base object.
      	(resolve_allocate_expr): Ensure that class _data component is
      	present. If array, call gfc_expr_to_intialize.
      	(resolve_select): Remove scalar error for SELECT statement as a
      	temporary measure.
      	(resolve_assoc_var): Update 'target' (aka 'selector') as
      	needed. Ensure that the target expression has the right rank.
      	(resolve_select_type): Ensure that target expressions have a
      	valid locus.
      	(resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
      	* trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
      	appropriate.
      	(gfc_trans_deferred_vars): Get class arrays right.
      	* match.c(select_type_set_tmp): Add array spec to temporary.
      	(gfc_match_select_type): Allow class arrays.
      	* check.c (array_check): Ensure that class arrays have refs.
      	(dim_corank_check, dim_rank_check): Retrun success if class.
      	* primary.c (gfc_match_varspec): Fix for class arrays and
      	co-arrays. Make sure that class _data is present.
      	(gfc_match_rvalue): Handle class arrays.
      	*trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
      	reference.
      	(gfc_conv_allocated): Add _data component to class expressions.
      	(gfc_add_intrinsic_ss_code): ditto.
      	* simplify.c (simplify_cobound): Fix for BT_CLASS.
      	(simplify_bound): Return NULL for class arrays.
      	(simplify_cobound): Obtain correct array_spec. Use cotype as
      	appropriate. Use arrayspec for bounds.
      
      2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
      	Tobias Burnus  <burnus@gcc.gnu.org>
      
      	PR fortran/41539
      	PR fortran/43214
      	PR fortran/43969
      	PR fortran/44568
      	PR fortran/46356
      	PR fortran/46990
      	PR fortran/49074
      	* gfortran.dg/class_array_1.f03: New.
      	* gfortran.dg/class_array_2.f03: New.
      	* gfortran.dg/class_array_3.f03: New.
      	* gfortran.dg/class_array_4.f03: New.
      	* gfortran.dg/class_array_5.f03: New.
      	* gfortran.dg/class_array_6.f03: New.
      	* gfortran.dg/class_array_7.f03: New.
      	* gfortran.dg/class_array_8.f03: New.
      	* gfortran.dg/coarray_poly_1.f90: New.
      	* gfortran.dg/coarray_poly_2.f90: New.
      	* gfortran.dg/coarray/poly_run_1.f90: New.
      	* gfortran.dg/coarray/poly_run_2.f90: New.
      	* gfortran.dg/class_to_type_1.f03: New.
      	* gfortran.dg/type_to_class_1.f03: New.
      	* gfortran.dg/typebound_assignment_3.f03: Remove the error.
      	* gfortran.dg/auto_dealloc_2.f90: Occurences of __builtin_free
      	now 2.
      	* gfortran.dg/class_19.f03: Occurences of __builtin_free now 8.
      
      
      Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>
      
      From-SVN: r182210
      Paul Thomas committed
    • re PR fortran/50690 (ICE with front end optimization and OMP workshare) · e07e39f6
      2011-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/50690
      	* frontend-passes.c (in_omp_workshare):  New variable.
      	(cfe_expr_0):  Don't eliminiate common function if it would put
      	the variable immediately into a WORKSHARE construct.
      	(optimize_namespace):  Set in_omp_workshare.
      	(gfc_code_walker):  Keep track of OMP PARALLEL and OMP WORKSHARE
      	constructs.
      
      2011-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/50690
      	* gfortran.dg/gomp/workshare2.f90:  New test.
      	* gfortran.dg/gomp/workshare3.f90:  New test.
      
      From-SVN: r182208
      Thomas Koenig committed
    • abi.xml: Replace gcc-x.y.z with GCC x.y.z or x.y... · be0c93c5
      	* doc/xml/manual/abi.xml: Replace gcc-x.y.z with GCC x.y.z or x.y,
      	remove excessive duplication of version information.
      	* doc/html/*: Regenerate.
      
      From-SVN: r182206
      Jonathan Wakely committed
    • trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge. · 716286f4
              * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
              edge.
      
      From-SVN: r182205
      Patrick Marlier committed
    • utils2.c (gnat_build_constructor): Test the TREE_STATIC flag of elements to… · cce30ea8
      utils2.c (gnat_build_constructor): Test the TREE_STATIC flag of elements to compute that of the constructor.
      
      	* gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC
      	flag of elements to compute that of the constructor.
      
      From-SVN: r182203
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_param): Set the restrict qualifier on references built for… · 4f96985d
      decl.c (gnat_to_gnu_param): Set the restrict qualifier on references built for parameters which aren't...
      
      	* gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier
      	on references built for parameters which aren't specifically by-ref.
      
      From-SVN: r182202
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): If there is an alignment set on a renaming... · 50751f49
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If there is an
      	alignment set on a renaming, assert that the renamed object is aligned
      	enough as to make it possible to honor it.
      
      From-SVN: r182201
      Eric Botcazou committed
    • 2011-12-11 Paolo Carlini <paolo.carlini@oracle.com> · 5d74133f
      	* Tweak ChangeLog.
      
      From-SVN: r182200
      Paolo Carlini committed
    • Daily bump. · e7bb3661
      From-SVN: r182198
      GCC Administrator committed
  3. 10 Dec, 2011 12 commits
    • trans-decl.c (add_argument_checking): Fix syntax. · 9be1227b
      2011-12-10  Tobias Burnus  <burnus@net-b.de>
      
              * trans-decl.c (add_argument_checking): Fix syntax.
      
      From-SVN: r182194
      Tobias Burnus committed
    • rs6000: Implement vec_perm_const for all vector ISAs · 5aebfdad
              * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
              vec_select + vec_concat.
              (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
              altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
              (vec_perm_constv16qi): New.
              (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
              vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
              vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
              * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
              vec_select + vec_concat.
              (paired_merge10, paired_merge01, paired_merge11): Likewise.
              (vec_perm_constv2sf): New.
              (vec_interleave_highv2sf, vec_interleave_lowv2sf,
              vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
              * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
              vec_select + vec_concat.
              (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
              (vec_perm_constv2si): New.
              * config/rs6000/vector.md (vec_interleave_highv4sf,
              vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
              vec_interleave_low<VEC_64>): Remove.
              * config/rs6000/vsx.md (VS_double): New mode attribute.
              (UNSPEC_VSX_XXPERMDI): Remove.
              (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
              (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
              (vsx_xxpermdi_<VSX_L>): Change to expander.
              (vec_perm_const<VSX_D>): New.
              (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
              * config/rs6000/predicates.md (const_0_to_1_operand): New.
              (const_2_to_3_operand): New.
              * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
              (altivec_expand_vec_perm_const): New.
              (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
              (rs6000_vectorize_vec_perm_const_ok): New.
              (rs6000_do_expand_vec_perm): New.
              (rs6000_expand_extract_even, rs6000_expand_interleave): New.
              * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
              * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
              * config/rs6000/rs6000-protos.h: Update.
      
      From-SVN: r182193
      Richard Henderson committed
    • Force the creation of a CONST_VECTOR for expand_vec_perm. · ccdfb0e2
              * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
              CONST_INT to expand_vec_perm as the selector.
              * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
      
      From-SVN: r182192
      Richard Henderson committed
    • Let GET_MODE_2XWIDER_MODE find a double-width vector mode. · a7de2c2a
              * genmodes.c (struct mode_data): Remove wider_2x member.
              (blank_mode): Adjust initializer.
              (calc_wider_mode): Use XALLOCAVEC.
              (emit_move_wider): Select double-width same-element vectors for
              2xwider vectors.
              * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
              * config/i386/i386.c (doublesize_vector_mode): Remove.
              (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
      
      From-SVN: r182191
      Richard Henderson committed
    • trans-decl.c (add_argument_checking): Check ts.deferred earlier. · be94c034
      2011-12-10  Tobias Burnus  <burnus@net-b.de>
                  Kai Tietz  <ktietz@redhat.com>
      
              * trans-decl.c (add_argument_checking): Check ts.deferred earlier.
              * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.
      
      
      Co-Authored-By: Kai Tietz <ktietz@redhat.com>
      
      From-SVN: r182190
      Tobias Burnus committed
    • user.cfg.in: Add macros, directories. · 7897a1c0
      2011-12-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* doc/doxygen/user.cfg.in: Add macros, directories.
      	* include/bits/locale_classes.h: Remove doxygen warnings, fix markup.
      	* include/bits/locale_classes.tcc: Same.
      	* include/bits/shared_ptr.h: Same.
      	* include/bits/stl_algo.h: Same.
      	* include/bits/stl_list.h: Same.
      	* include/bits/stl_numeric.h: Same.
      	* include/debug/safe_base.h: Same.
      	* include/parallel/equally_split.h: Same.
      	* include/std/bitset: Same.
      	* include/std/complex: Same.
      	* include/std/fstream: Same.
      	* include/std/istream: Same.
      	* include/std/ostream: Same.
      	* include/tr2/dynamic_bitset: Same.
      	* scripts/run_doxygen: Remove munging for names that no longer exist.
      
      	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
      	Adjust line numbers.
      	* testsuite/23_containers/list/requirements/dr438/
      	constructor_1_neg.cc: Same.
      	* testsuite/23_containers/list/requirements/dr438/
      	constructor_2_neg.cc: Same.
      	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
      
      From-SVN: r182189
      Benjamin Kosnik committed
    • unordered_set: Minor formatting changes. · f431d7ca
      2011-12-12  François Dumont <fdumont@gcc.gnu.org>
      
      	* include/profile/unordered_set: Minor formatting changes.
      	(unordered_set<>::_M_profile_destruct,
      	unordered_multiset<>::_M_profile_destruct): Fix implementation to not
      	rely on normal implementation details anymore.
      	(unordered_set<>::_M_profile_resize,
      	unordered_multiset<>::_M_profile_resize): Implement consistently
      	accross all unordered containers.
      	(unordered_set<>::emplace, unordered_set<>::emplace_hint,
      	unordered_multiset<>::emplace, unordered_multset<>::emplace_hint): Add
      	to signal rehash to profiling system.
      	* include/profile/unordered_map: Likewise for unordered_map<> and
      	unordered_multimap<>.
      
      From-SVN: r182188
      François Dumont committed
    • epiphany-protos.h (epiphany_start_function): Declare. · 188b7e23
      gcc:
              * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
              * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
              Split "timer" value into "timer0" and "timer1".
              Handle page_miss, message and wand.  Don't handle static_flag.
              Adjust warning text.
              (epiphany_start_function): New function.
              (epiphany_compute_function_type): Split "timer" value into "timer0"
              and "timer1".  Handle page_miss, message and wand.
              Don't handle static_flag.
              (epiphany_expand_epilogue): Don't use frame_insn for status / iret
              restore.
              * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
              (enum epiphany_function_type):
              Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
              and EPIPHANY_FUNCTION_TIMER1.
              Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
              Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
              Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
      gcc/testsuite:
              * gcc.target/epiphany/interrupt.c: Add dg-options "-g".
              Add a scan-assembler-time clause to test for the interupt vector jump.
              (f): Rename to ...
              (dma0_handler): ... this.
      
      From-SVN: r182187
      Joern Rennecke committed
    • epiphany.h (EPIPHANY_RETURN_REGNO): New macro, broken out of .. · b149e5a2
              * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
              broken out of ..
              (INCOMING_RETURN_ADDR_RTX) .. this.  Use EPIPHANY_RETURN_REGNO.
              (DWARF_FRAME_RETURN_COLUMN): New macro.
      
      From-SVN: r182186
      Joern Rennecke committed
    • epiphany.h (USE_LOAD_POST_INCREMENT): Define. · af7476b8
              * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
              (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
              (USE_STORE_POST_DECREMENT): Likewise.
      
      From-SVN: r182185
      Joern Rennecke committed
    • re PR gcov-profile/51449 (Rev181994 causes tramp3d-v4 profiled build failure) · 2ac69a0c
      	PR gcov-profile/51449
      	* coverage.c (coverage_end_function): Always process the coverage
      	variables.
      
      	testsuite/
      	* g++.dg/gcov/gcov-14.C: New.
      
      From-SVN: r182184
      Nathan Sidwell committed
    • Daily bump. · e2d04984
      From-SVN: r182183
      GCC Administrator committed
  4. 09 Dec, 2011 9 commits