1. 31 Aug, 2009 7 commits
    • Emit DWARF for template parameters (PR debug/30161) · f9329c35
      ChangeLog:
      	PR debug/30161
      	* include/dwarf2.h (enum dwarf_tag): Added
      	DW_TAG_GNU_template_template_param
      	(enum dwarf_attribute): Added DW_AT_GNU_template_name.
      
      gcc/ChangeLog:
      	PR debug/30161
      	* cgraph.h (cgraph_get_node): Declare ...
      	* cgraph.c (cgraph_get_node): ... new function.
      	* dwarf2out.c (gen_generic_params_dies,
      	generic_parameter_die, tree_add_const_value_attribute_for_decl,
      	make_ith_pack_parameter_name,
      	append_entry_to_tmpl_value_parm_die_table,
      	gen_remaining_tmpl_value_param_die_attribute): New functions.
      	(gen_subprogram_die): Generate debug info for template parameters
      	if debug info level is higher than DINFO_LEVEL_TERSE.
      	Use tree_add_const_value_attribute_for_decl instead of
      	tree_add_const_value_attribute.
      	(gen_const_die): Use tree_add_const_value_attribute_for_decl
      	instead of tree_add_const_value_attribute.
      	(gen_struct_or_union_type_die): Generate debug
      	info for template parameters if debug info level is higher than
      	DINFO_LEVEL_TERSE.
      	(tree_add_const_value_attribute): Handle integral and pointer
      	constants. Update comment.
      	(dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
      	(dwarf_attr_name): Support DW_AT_GNU_template_name.
      	(reference_to_unused): Fix thinko. Remove redundant predicates from
      	tests.
      	(tree_add_const_value_attribute): Make this work for constant
      	expressions only.
      	tree_add_const_value_attribute_for_decl is to be used for variable
      	DECLs now.
      	(add_location_or_const_value_attribute): Use
      	tree_add_const_value_attribute_for_decl now.
      	(dwarf2out_finish): Emit the DW_AT_const_value attribute of
      	DW_TAG_template_value_param DIEs after function DIEs have been
      	emitted.
      	* langhooks.h (lang_hooks_for_types): Add
      	get_argument_pack_elems.
      	(lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
      	(lang_hooks): Added get_innermost_generic_parms,
      	get_innermost_generic_args.
      	* langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
      	LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
      	LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
      	LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
      
      gcc/cp/ChangeLog:
      	PR debug/30161
      	* cp-tree.h (get_template_info): Parameter should be const.
      	(CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): Fix typo.
      	(get_template_argument_pack_elems,
      	get_primary_template_innermost_parameters,
      	get_template_innermost_arguments, template_template_parameter_p):
      	Declare ...
      	* pt.c (get_template_argument_pack_elems,
      	get_template_innermost_parameters, get_template_innermost_arguments,
      	template_template_parameter_p):
      	... New C++ front end implementation of new language hooks.
      	(primary_template_instantiation_p): New private helper.
      	(make_ith_pack_parameter_name): Use snprintf and strnlen instead of
      	printf and strlen.
      	(get_template_info): Const-ify parameter.
      	* cp-lang.c (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
      	LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
      	LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
      	LANG_HOOKS_GENERIC_TYPE_PARAMETER_DECL_P): Initialize these
      	interfaces for the C++ front-end.
      
      gcc/testsuite/ChangeLog:
      	PR debug/30161
      	* g++.dg/debug/dwarf2/template-params-1.C: New test.
      	* g++.dg/debug/dwarf2/template-params-2.C: Likewise.
      	* g++.dg/debug/dwarf2/template-params-3.C: Likewise.
      	* g++.dg/debug/dwarf2/template-params-4.C: Likewise.
      	* g++.dg/debug/dwarf2/template-params-5.C: Likewise.
      	* g++.dg/debug/dwarf2/template-params-6.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-1.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-2.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-3.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-4.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-5.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-6.C: Likewise.
      	* g++.dg/debug/dwarf2/template-func-params-7.C: Likewise.
      
      From-SVN: r151249
      Dodji Seketeli committed
    • mep.c (machine_function): Add frame_locked flag. · e756464b
      * config/mep/mep.c (machine_function): Add frame_locked flag.  Set
      it once we start generating the prologue or epilogue.
      (mep_call_saves_register): If the frame is locked, re-use cached values.
      (mep_assign_save_slots): New, broken out from mep_expand_prologue.
      (mep_expand_prologue): Call it.
      (mep_expand_epilogue): Likewise.
      (mep_start_function): Use the same logic as mep_expand_prologue.
      (mep_pass_by_reference): Make logic more readable.
      (mep_return_in_memory): Zero-sized objects are passed in memory.
      (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
      
      From-SVN: r151248
      DJ Delorie committed
    • re PR c++/41127 (unnamed bitfield declaration parser regression) · c8affb45
      	PR c++/41127
      	* parser.c (cp_parser_enum_specifier): Make sure the : is followed by a
      	type-specifier-seq before we commit.
      
      From-SVN: r151246
      Jason Merrill committed
    • re PR fortran/40940 ([F03] CLASS statement) · e74f1cc8
      2009-08-31  Janus Weil  <janus@gcc.gnu.org>
      	    Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40940
      	* array.c (gfc_match_array_constructor): Rename gfc_match_type_spec.
      	* decl.c (gfc_match_type_spec): Rename to gfc_match_decl_type_spec,
      	and reject CLASS with -std=f95.
      	(gfc_match_implicit, gfc_match_data_decl,gfc_match_prefix,
      	match_procedure_interface): Rename gfc_match_type_spec.
      	* gfortran.h (gfc_type_compatible): Add prototype.
      	* match.h (gfc_match_type_spec): Rename to gfc_match_decl_type_spec.
      	* match.c (match_intrinsic_typespec): Rename to match_type_spec, and
      	add handling of derived types.
      	(gfc_match_allocate): Rename match_intrinsic_typespec and check
      	type compatibility of derived types.
      	* symbol.c (gfc_type_compatible): New function to check if two types
      	are compatible.
      
      2009-08-31  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40940
      	* gfortran.dg/allocate_derived_1.f90: New.
      	* gfortran.dg/class_3.f03: New.
      
      
      Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
      
      From-SVN: r151244
      Janus Weil committed
    • builtins.c (fold_builtin_memory_op): Use the alias oracle to query if the memory… · e2abde5f
      builtins.c (fold_builtin_memory_op): Use the alias oracle to query if the memory regions for memmove overlap.
      
      2009-08-31  Richard Guenther  <rguenther@suse.de>
      
      	* builtins.c (fold_builtin_memory_op): Use the alias oracle
      	to query if the memory regions for memmove overlap.
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
      	asserts on pointers, instead deal with odd trees.
      	(ptr_derefs_may_alias_p): Likewise.
      	(refs_may_alias_p_1): Constructor bases also never alias.
      
      From-SVN: r151241
      Richard Guenther committed
    • re PR fortran/40996 ([F03] ALLOCATABLE scalars) · 2fbd4117
      2009-08-31  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40996
      	* check.c (gfc_check_allocated): Implement allocatable scalars.
      	* resolve.c (resolve_allocate_expr,resolve_fl_var_and_proc): Ditto.
      	* trans-intrinsic.c (gfc_conv_allocated): Ditto.
      
      2009-08-31  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40996
      	* gfortran.dg/allocatable_scalar_1.f90: New.
      	* gfortran.dg/allocatable_scalar_2.f90: Renamed from finalize_9.f03.
      	* gfortran.dg/finalize_9.f03: Renamed to allocatable_scalar_2.f90.
      	* gfortran.dg/proc_ptr_comp_pass_4.f90: Modified.
      
      From-SVN: r151240
      Janus Weil committed
    • Daily bump. · 4a435ffc
      From-SVN: r151238
      GCC Administrator committed
  2. 30 Aug, 2009 13 commits
  3. 29 Aug, 2009 8 commits
  4. 28 Aug, 2009 12 commits
    • graphite-dependences.c (graphite_legal_transform_bb): Call pbb_remove_duplicate_pdrs. · 211694b6
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-dependences.c (graphite_legal_transform_bb): Call
      	pbb_remove_duplicate_pdrs.
      	* graphite-poly.c (can_collapse_pdr): Removed.
      	(pdr_find_duplicate): Removed.
      	(can_collapse_pdrs): New.
      	(pbb_remove_duplicate_pdrs): New.
      	(new_poly_dr): Do not look for duplicates.
      	* graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
      	(PBB_PDR_DUPLICATES_REMOVED): New.
      	(pbb_remove_duplicate_pdrs): Declared.
      
      From-SVN: r151192
      Sebastian Pop committed
    • graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by… · 7bd2a8a7
      graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by multiplying by PDR_NB_REFS.
      
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-interchange.c (pbb_interchange_profitable_p): Adjust
      	the strides by multiplying by PDR_NB_REFS.
      	* graphite-poly.c (can_collapse_pdr): New.
      	(pdr_find_duplicate): New.
      	(new_poly_dr): Call pdr_find_duplicate.  Collapse duplicate PDRs.
      	Initialize PDR_NB_REFS.
      	* graphite-poly.h (struct poly_dr): Add field nb_refs.
      	(PDR_NB_REFS): New.
      	(new_poly_dr): Number of subscripts is a graphite_dim_t.
      
      From-SVN: r151191
      Sebastian Pop committed
    • re PR middle-end/40965 ([graphite] slow compilation) · 93b2db87
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	PR middle-end/40965
      	* graphite-poly.c (apply_poly_transforms): Remove legality test before
      	any transform.
      
      From-SVN: r151190
      Sebastian Pop committed
    • graphite-dependences.c (pddr_original_scattering): Return NULL for read-read dependence relations. · d8eeb078
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-dependences.c (pddr_original_scattering): Return NULL
      	for read-read dependence relations.
      	* graphite-poly.h (enum poly_dr_type): Fix comment.
      	(pdr_read_p): New.
      	(pdr_write_p): New.
      	(pdr_may_write_p): New.
      
      From-SVN: r151189
      Sebastian Pop committed
    • graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type. · e6dec0fb
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
      	(struct poly_dr): Same.
      	(new_poly_dr): Same.
      	* graphite-poly.c (new_poly_dr): Same.
      	* graphite-dependences.c (dot_deps): Disable call to system.
      
      From-SVN: r151188
      Sebastian Pop committed
    • re PR debug/41063 (ICE in output_die) · 3ff4c25d
      gcc/ChangeLog:
      
      	PR debug/41063
      	* dwarf2out.c (gen_type_die_with_usage): Use proper context for
      	struct/union/enum types local to a function.
      
      gcc/testsuite/ChangeLog:
      
      	PR debug/41063
      	* g++.dg/debug/dwarf2/pr41063.C: New test.
      
      From-SVN: r151187
      Cary Coutant committed
    • graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed pbb_strip_mine_time_depth. · baf4b881
      2009-08-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
      	    Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
      	pbb_strip_mine_time_depth.  Changed the implementation so that
      	transformation is expressed as a transformation on
      	time (scatttering) dimensions.  Also, ensures that the 2d+1
      	scheduling format is preserved.
      	(pbb_strip_mine_profitable_p): Profitability is based on the
      	iteration number of a given time (scattering) dimension,
      	and not on a original loop depth dimension.
      	(pbb_strip_mine): Call pbb_number_of_iterations_at_time.
      	(pbb_do_strip_mine): Call psct_dynamic_dim.
      	* graphite-poly.c (pbb_number_of_iterations_at_time): New.
      	* graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
      	(pbb_nb_dynamic_scattering_transform): New.
      	(psct_dynamic_dim): New.
      
      
      
      Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com>
      
      From-SVN: r151186
      Konrad Trifunovic committed
    • re PR debug/41063 (ICE in output_die) · e6a83a8e
      gcc/ChangeLog:
      
      	PR debug/41063
      	* dwarf2out.c (gen_type_die_with_usage): Use proper context for
      	struct/union/enum types local to a function.
      
      gcc/testsuite/ChangeLog:
      
      	PR debug/41063
      	* g++.dg/debug/dwarf2/pr41063.C: New test.
      
      From-SVN: r151185
      Cary Coutant committed
    • graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset. · 059a5f9f
      2009-08-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
      
      	* graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
      	* graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
      	* graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
      	* graphite-interchange.c (build_linearized_memory_access): Same.
      	(memory_stride_in_loop): Same.
      
      From-SVN: r151184
      Konrad Trifunovic committed
    • graphite-dependences.c (pddr_original_scattering): New. · afae0207
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-dependences.c (pddr_original_scattering): New.
      	(graphite_legal_transform_dr): Call pddr_original_scattering.
      	(dot_deps_1): New.
      	(dot_deps): New.
      	* graphite-dependences.h (dot_deps): Declared.
      	* graphite-poly.c (new_poly_dr): Initialize PDR_ID.
      	(print_pdr): Print PDR_ID.
      	* graphite-poly.h (struct poly_dr): Add field id.
      	(PDR_ID): New.
      	(pbb_index): New.
      	* graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
      
      From-SVN: r151183
      Sebastian Pop committed
    • graphite-dependences.c (graphite_carried_dependence_level_k): Do not delete the… · f8e0bb8b
      graphite-dependences.c (graphite_carried_dependence_level_k): Do not delete the original dependence relation.
      
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-dependences.c (graphite_carried_dependence_level_k): Do
      	not delete the original dependence relation.
      
      From-SVN: r151182
      Sebastian Pop committed
    • graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr. · e37f165f
      2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
      	(eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
      	(hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
      	(free_poly_ddr): New.
      	(pddr_is_empty): New.
      	(dependence_polyhedron_1): Now returns a poly_ddr_p.
      	(dependence_polyhedron): Same.  Remove useless gcc_assert.
      	Remove fprintfs.
      	(graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
      	(graphite_carried_dependence_level_k): Call pddr_is_empty.
      	* graphite-dependences.h (enum poly_dependence_kind): New.
      	(poly_dr_pair): Renamed poly_ddr.  Added a field kind.
      	(PDRP_SOURCE): Renamed PDDR_SOURCE.
      	(PDRP_SINK): Renamed PDDR_SINK.
      	(PDRP_DDP): Renamed PDDR_DDP.
      	(PDDR_KIND): New.
      	(free_poly_ddr): Declared.
      	* graphite-poly.c (new_scop): Use the new hash function names.
      	* graphite-poly.h (struct scop): Renamed field original_pdr_pairs
      	into original_pddrs.
      	(SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
      
      From-SVN: r151181
      Sebastian Pop committed