1. 21 Aug, 2007 4 commits
  2. 20 Aug, 2007 16 commits
    • chaoyingfu's avatar
      * c-common.h (enum rid): Add new enumeration values of RID_SAT, · 9421ebb9
      chaoyingfu authored
      	RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
      	RID_ONEWAY, so that it can be checked in declspecs_add_type.
      	(c_common_fixed_point_type_for_size): Declare.
      	* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
      	(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
      	(c_token_starts_declspecs): Likewise.
      	(c_parser_declspecs): Likewise.
      	(c_parser_attributes): Likewise.
      	* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
      	(c_declspecs): Add saturating_p.
      	* c-decl.c (build_null_declspecs): Initialize saturating_p.
      	(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
      	Handle RID_SAT.
      	Avoid using void, bool, char, int, float, double, _Decimal32,
      	_Decimal64, _Decimal128, and complex with _Sat.
      	Handle RID_FRACT and RID_ACCUM.
      	Make sure _Sat is used with _Fract or _Accum.
      	(finish_declspecs): Handle cts_fract and cts_accum.
      	* c-common.c (fixed-value.h): New include.
      	(constant_expression_warning): Handle FIXED_CST.
      	(overflow_warning): Likewise.
      	(warnings_for_convert_and_check): Likewise.
      	(c_common_fixed_point_type_for_size): New.
      	(c_common_type_for_mode): Handle fixed-point modes to
      	return various saturating/non-saturating, signed/unsigned types.
      	(c_common_signed_or_unsigned_type): Support fixed-point types.
      	(shorten_compare): Check fixed-point zero.
      	Handle FIXED_POINT_TYPE.
      	(c_common_truthvalue_conversion): Handle FIXED_CST.
      	Handle FIXED_POINT_TYPE.
      	(c_common_nodes_and_builtins): Record builtin types for fixed-point
      	types.
      	(handle_mode_attribute): Handle fixed-point modes.  Need to check
      	if the signness of base type and fixed-point modes are consistent.
      	(handle_vector_size_attribute): Handle fixed-point modes.
      	(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
      	(warn_for_div_by_zero): Check fixed-point zero.
      	* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
      	a common fixed-point type based on fbit, ibit, sign, and saturation.
      	(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
      	NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
      	PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
      	(convert_for_assignment): Support FIXED_POINT_TYPE.
      	(digest_init): Handle FIXED_POINT_TYPE.
      	(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
      	TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
      	TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
      	GE_EXPR, LT_EXPR, GT_EXPR.
      	* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
      	(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
      	* target.h (gcc_target): Add fixed_point_supported_p.
      	* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
      	MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
      	(default_fixed_point_supported_p): Define.
      	* targhooks.h (default_fixed_point_supported_p): Declare.
      	* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
      	* doc/install.texi (Configuration): Add --enable-fixed-point.
      	* configure.ac (--enable-fixed-point): New to enable fixed-point
      	arithmetic extension to C.  For mips targets, we enable it by default.
      	* configure, config.in: Regenerate.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127652 138bc75d-0d04-0410-961f-82ee72b054a4
      9421ebb9
    • jason's avatar
      PR c++/7302 · a37e1120
      jason authored
              * cp/class.c (finish_struct_1): Warn when a class has virtual
              functions and accessible non-virtual destructor.
      
              * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
      
              * g++.dg/warn/Wnvdtor-2.C: New testcase.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127649 138bc75d-0d04-0410-961f-82ee72b054a4
      a37e1120
    • dje's avatar
      * dwarf2out.c (text_section_used): Move declaration outside ifdef · c49226a1
      dje authored
              DWARF2_DEBUGGING_INFO.
              (cold_text_section_used): Same.
              (cold_text_section): Same.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127648 138bc75d-0d04-0410-961f-82ee72b054a4
      c49226a1
    • rguenth's avatar
      2007-08-20 Richard Guenther <rguenther@suse.de> · f607c97b
      rguenth authored
      	PR c++/22369
      	PR c++/22451
              * call.c (build_new_method_call): Convert initializer to
              the basetype.
              * init.c (build_aggr_init): Do not fiddle with types.
              (build_vec_delete_1): Use correct type for POINTER_PLUS_EXPR.
              * except.c (build_throw): Do not drop qualifiers for the
              pointer type.
              * typeck.c (get_member_function_from_ptrfunc): Do not
              fiddle with types, instead convert.
              (build_ptrmemfunc1): Convert to the target type for
              initialization.
              (gfc_trans_allocate): Convert result to target type.
      	* cp-objcp-common.c (cxx_get_alias_set): Pointers to
      	pointer-to-member structures shall have alias set zero as well.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127647 138bc75d-0d04-0410-961f-82ee72b054a4
      f607c97b
    • rguenth's avatar
      2007-08-20 Richard Guenther <rguenther@suse.de> · 032987e9
      rguenth authored
              * c-typeck.c (convert_for_assignment): Use the type of
              the member for the initialization.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127646 138bc75d-0d04-0410-961f-82ee72b054a4
      032987e9
    • dorit's avatar
      * gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Add missing }. · 095878eb
      dorit authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127645 138bc75d-0d04-0410-961f-82ee72b054a4
      095878eb
    • rguenth's avatar
      2007-08-20 Richard Guenther <rguenther@suse.de> · 435ab150
      rguenth authored
      	* c-objc-common.c (c_disregard_inline_limits): Remove.
      	* c-objc-common.h (c_disregard_inline_limits): Likewise.
      	* cgraphunit.c (cgraph_process_new_functions): Call
      	disregard_inline_limits_p.
      	(cgraph_preserve_function_body_p): Likewise.
      	* ipa-inline.c (compute_inline_parameters): Likewise.
      	* langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
      	Remove.
      	(LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
      	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
      	disregard_inline_limits langhook.
      	* langhooks.c (lhd_tree_inlining_disregard_inline_limits):
      	Remove.
      	* langhooks.h (lang_hooks_for_tree_inlining): Remove
      	disregard_inline_limits langhook.
      	* tree-inline.c (disregard_inline_limits_p): New function.
      	* tree-inline.h (disregard_inline_limits_p): Declare.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127644 138bc75d-0d04-0410-961f-82ee72b054a4
      435ab150
    • rguenth's avatar
      2007-08-20 Richard Guenther <rguenther@suse.de> · 2ef41604
      rguenth authored
      	* langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
      	(LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
      	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
      	auto_var_in_fn_p langhook.
      	* langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
      	move ...
      	* tree.c (auto_var_in_fn_p): ... here.
      	(find_var_from_fn): Call auto_var_in_fn_p directly.
      	* langhooks.h (lang_hooks_for_tree_inlining): Remove
      	auto_var_in_fn_p langhook.
      	* tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
      	(copy_body_r): Likewise.
      	(self_inlining_addr_expr): Likewise.
      	* tree.h (auto_var_in_fn_p): Declare.
      
      	cp/
      	* cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P):
      	Remove.
      	* cp-tree.h (cp_auto_var_in_fn_p): Remove.
      	(nonstatic_local_decl_p): Likewise.
      	* tree.c (cp_auto_var_in_fn_p): Remove.
      	* decl.c (nonstatic_local_decl_p): Remove.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127643 138bc75d-0d04-0410-961f-82ee72b054a4
      2ef41604
    • rguenth's avatar
      2007-08-20 Richard Guenther <rguenther@suse.de> · 20a8f962
      rguenth authored
      	* tree.c (WALK_SUBTREE): Call walk_tree_1.
      	(walk_type_fields): Take lh parameter.
      	(walk_tree): Rename to ...
      	(walk_tree_1): ... this.  Do not call the walk_subtrees
      	langhook but the now passed callback.  Pass lh on recursion.
      	(walk_tree_without_duplicates): Rename to ...
      	(walk_tree_without_duplicates_1): ... this.  Take lh parameter
      	and call walk_tree_1.
      	* tree.h (walk_tree_lh): New typedef.
      	(walk_tree_1): Declare.
      	(walk_tree_without_duplicates_1): Likewise.
      	(walk_tree): New define to walk_tree_1 with NULL lh parameter.
      	(walk_tree_without_duplicates): New define to
      	walk_tree_without_duplicates_1 with NULL lh parameter.
      	* langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
      	* langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
      	langhook.
      	* langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
      	(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
      	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
      	initializer.
      
      	java/
      	* lang.c (java_tree_inlining_walk_subtrees): Remove.
      	(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
      
      	cp/
      	* cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES):
      	Remove define.
      	* tree.h (cp_walk_tree): New define to walk_tree_1 with
      	cp_walk_subtrees lh parameter.
      	(cp_walk_tree_without_duplicates): New define to
      	walk_tree_without_duplicates_1 with cp_walk_subtrees lh parameter.
      	* tree.c (count_trees): Call
      	cp_walk_tree_without_duplicates.
      	(verify_stmt_tree): Call cp_walk_tree.
      	(break_out_target_exprs): Likewise.
      	(WALK_SUBTREE): Likewise.
      	* cp-gimplify.c (cp_genericize): Likewise.
      	* cp-pt.c (find_parameter_packs_r): Likewise.
      	(uses_parameter_packs): Likewise.
      	(make_pack_expansion): Likewise.
      	(check_for_bare_parameter_packs): Likewise.
      	(for_each_template_parm): Likewise.
      	* decl.c (check_default_argument): Call
      	cp_walk_tree_without_duplicates.
      	* except.c (build_throw): Likewise.
      	* decl2.c (type_visibility): Likewise.
      	* semantics.c (expand_or_defer_fn): Likewise.
      	(finalize_nrv): Call cp_walk_tree.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127642 138bc75d-0d04-0410-961f-82ee72b054a4
      20a8f962
    • jakub's avatar
      PR c++/33025 · 39c94716
      jakub authored
      	* init.c (build_new_1): Rename placement_var variable to placement_expr.
      	Initialize it with save_expr rather than get_temp_regvar.
      
      	* g++.dg/init/new23.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127639 138bc75d-0d04-0410-961f-82ee72b054a4
      39c94716
    • pinskia's avatar
      2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com> · 184e9f8f
      pinskia authored
              PR middle-end/30564
              * tree-inline.c (optimize_inline_calls): Move the cgraph checking
              code in front of the compacting of basic blocks.
              Move the folding of statements inbetween the cgraph checking
              and compacting of basic blocks.
      
      2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/30564
              * gcc.c-torture/compile/pr30564-1.c: New test.
              * gcc.c-torture/compile/pr30564-2.c: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127638 138bc75d-0d04-0410-961f-82ee72b054a4
      184e9f8f
    • pinskia's avatar
      2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com> · 8920b6b9
      pinskia authored
                 Serge Belyshev  <belyshev@depni.sinp.msu.ru>
      
              PR target/32522
              * config/alpha/alpha.c (va_list_skip_additions): Check for
              POINTER_PLUS_EXPR in addition to PLUS_EXPR.
              (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
              PLUS_EXPR when checking ap.__base.
              (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
              when doing addition on pointer types.  Use size_int instead of
              build_int_cst.
              (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
              ptr_type in the second operand.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127637 138bc75d-0d04-0410-961f-82ee72b054a4
      8920b6b9
    • sayle's avatar
      · dfd6dccf
      sayle authored
      	* match.c (intrinsic_operators): Make static.
      	(gfc_op2string): New function for converting a gfc_intrinsic_op to
      	to a "const char*", replacing the macro of the same name.
      	* gfortran.h (intrinsic_operators): Delete prototype.
      	(gfc_op2string): Replace macro with function prototype.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127636 138bc75d-0d04-0410-961f-82ee72b054a4
      dfd6dccf
    • pinskia's avatar
      2007-08-19 Andrew Pinski <pinskia@gmail.com> · 02d78334
      pinskia authored
              PR target/33115
              * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127635 138bc75d-0d04-0410-961f-82ee72b054a4
      02d78334
    • pinskia's avatar
      2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com> · 9961142a
      pinskia authored
              PR middle-end/32940
              * cfgexpand.c  (expand_one_register_var): Mark pointer
              DECL_ARTIFICIAL as REG_POINTER also.
              * stmt.c (expand_decl): Likewise.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127634 138bc75d-0d04-0410-961f-82ee72b054a4
      9961142a
    • gccadmin's avatar
      Daily bump. · 81bdcc38
      gccadmin authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127632 138bc75d-0d04-0410-961f-82ee72b054a4
      81bdcc38
  3. 19 Aug, 2007 11 commits
    • dberlin's avatar
      2007-08-19 Daniel Berlin <dberlin@dberlin.org> · a6db8f14
      dberlin authored
      	Fix PR 32772
      	Fix PR 32716
      	Fix PR 32328
      	Fix PR 32303
      
      	* tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
      	* tree-ssa-alias.c (init_transitive_clobber_worklist): Add
      	on_worklist argument and avoid adding things to worklist multiple
      	times.
      	(add_to_worklist): Ditto.
      	(mark_aliases_call_clobbered): Mark entire structure clobbered if
      	single SFT is clobbered.
      	(set_initial_properties): Ditto.
      	(compute_call_clobbered): Update for changes to function
      	arguments.
      	(create_overlap_variables_for): Always create SFT for offset 0.
      	(create_structure_vars): Handle PHI's, since we are in SSA form at
      	this point.
      	* tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
      	* tree-ssa-operands.c (access_can_touch_variable): Don't handle
      	TARGET_MEM_REF.
      	(add_vars_for_offset): Figure out aliases from access + points-to.
      	(add_virtual_operand): Use add_vars-for_offset.
      	(get_tmr_operands): Update for NMT changes, rewrite to be correct.
      	(add_call_clobber_ops): Remove makes_clobbering_call set.
      	(get_expr_operands): Always pass through the INDIRECT_REF
      	reference.
      	* tree-ssa-structalias.c (struct constraint_graph): Remove
      	variables member.
      	Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
      	address_taken, pt_used, number_incoming.
      	(FIRST_ADDR_NODE): Removed.
      	(merge_graph_nodes): Remove broken code for the moment.
      	(init_graph): New function.
      	(build_pred_graph): Remove code to init_graph.
      	Add location equivalence support.
      	(struct scc_info): Rename roots to deleted.
      	(scc_visit): Ditto.
      	(init_scc_info): Ditto
      	(init_topo_info): Use graph->size.
      	(compute_topo_order): Ditto.
      	(do_da_constraint): Removed.
      	(do_sd_constraint): Remove calls to find().
      	set_union_with_increment should always get 0 as last arg here.
      	(do_complex_constraint): Replace do_da_constraint with assert.
      	Stop calling find.
      	(struct equiv_class_label): New.
      	(pointer_equiv_class_table): Ditto.
      	(location_equiv_class_table): Ditto.
      	(equiv_class_label_hash): Ditto.
      	(equiv_class_label_eq): Ditto
      	(equiv_class_lookup): Ditto.
      	(equiv_class_ladd): Ditto.
      	(pointer_equiv_class): Ditto.
      	(location_equiv_class): Ditto.
      	(condense_visit): Rename and rewrite from label_visit to do only
      	SCC related stuff for HU.
      	(label_visit): Do HU work for HU.
      	(perform_var_substitution): Update to do HU and location
      	equivalence.
      	(free_var_substitution_info): Update to free HU and location
      	equivalence structures.  */
      	(find_equivalent_node): Update for pointer but not location
      	equivalence.
      	(unite_pointer_equivalences): New function.
      	(move_complex_constraints): Rewrite to only do moving.
      	(rewrite_constraints): Split out of move_complex_constraints.
      	(solve_graph): Use graph->size.
      	(process_constraint_1): Add from_call argument, use it.
      	Split *a = &b into two constraints.
      	(process_constraint): Use new process_constraint_1.
      	(get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
      	(get_constraint_for): Handle non-pointer integers properly.
      	Remove code that used to handle structures.
      	(handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
      	with unknown addends.
      	(handle_rhs_call): New function.
      	(find_func_aliases): Use handle_rhs_call.
      	(set_uids_in_ptset): Add an assert.
      	(set_used_smts): Fix bug in not considering unified vars.
      	(compute_tbaa_pruning): Stop initing useless iteration_obstack.
      	(compute_points_to_sets): Update for other function changes.
      	(delete_points_to_sets): Ditto.
      	(ipa_pta_execute): Ditto.
      	(pass_ipa_pta): We need to update SSA after ipa_pta.
      	
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127629 138bc75d-0d04-0410-961f-82ee72b054a4
      a6db8f14
    • hubicka's avatar
      * i386.md: Replace "rim" and "mri" constraints by "g". · 662e4881
      hubicka authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127628 138bc75d-0d04-0410-961f-82ee72b054a4
      662e4881
    • jsm28's avatar
      * dwarf2out.c (text_section_used, cold_text_section_used, · d6de7df9
      jsm28 authored
      	cold_text_section, dwarf2out_note_section_used): New.
      	(dwarf2out_init): Initialize cold_text_section.
      	(dwarf2out_switch_text_section, dwarf2out_begin_function): Call
      	dwarf2out_note_section_used.
      	(size_of_aranges): Only count entry for text section if it was
      	used.  Count entry for cold text section if it was used.
      	(output_aranges): Only output entries for text section and cold
      	text section if they were used.
      
      testsuite:
      	* gcc.dg/debug/dwarf2/aranges-fnsec-1.c: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127627 138bc75d-0d04-0410-961f-82ee72b054a4
      d6de7df9
    • burnus's avatar
      2007-08-18 Tobias Burnus <burnus@net-b.de> · a3055431
      burnus authored
      	* gfortran.h (gfc_is_intrinsic_typename): Add declaration.
      	* symbol.c (gfc_is_intrinsic_typename): New function.
      	* parse.c (decode_statement): Check for space in ABSTRACT INTERFACE.
      	(parse_interface): Use gfc_is_intrinsic_typename.
      	* decl.c (gfc_match_derived_decl): Ditto.
      	* module.c (gfc_match_use): Use gcc_unreachable() for
      	INTERFACE_ABSTRACT in switch().
      
      2007-08-19  Tobias Burnus  <burnus@net-b.de>
      
      	* gfortran.dg/interface_abstract_2.f90: New.
      	* gfortran.dg/interface_abstract_1.f90: Fix typo.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127626 138bc75d-0d04-0410-961f-82ee72b054a4
      a3055431
    • pinskia's avatar
      2007-08-19 Andrew Pinski <pinskia@gmail.com> · 4726380a
      pinskia authored
              * tree-pretty-print.c (debug_generic_expr): Add a comment about
              the function.
              (debug_generic_stmt): Likewise.
              (debug_tree_chain): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127625 138bc75d-0d04-0410-961f-82ee72b054a4
      4726380a
    • dorit's avatar
      * tree-data-refs.c (split_constant_offset): Expose. · b0eb8c66
      dorit authored
              * tree-data-refs.h (split_constant_offset): Add declaration.
      
              * tree-vectorizer.h (dr_alignment_support): Renamed
              dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
              Added a new value dr_explicit_realign.
              (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
              dr_offset, dr_step, and dr_aligned_to, along with new access
              functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
              STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
              STMT_VINFO_DR_ALIGNED_TO.
      
              * tree-vectorizer.c (vect_supportable_dr_alignment): Add
              documentation.
              In case of outer-loop vectorization with non-fixed misalignment - use
              the dr_explicit_realign scheme instead of the optimized realignment
              scheme.
              (new_stmt_vec_info): Initialize new fields.
      
              * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
              'nested_in_vect_loop' case. Change verbosity level.
              (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
              Don't fail on zero step in the outer-loop for loads.
              (vect_analyze_data_refs): Call split_constant_offset to calculate base,
              offset and init relative to the outer-loop.
      
              * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
              BSI function argument with a new function argument - at_loop.
              Simplify the condition that determines STEP. Takes additional argument
              INV_P. Support outer-loop vectorization (handle the nested_in_vect_loop
              case), including zero step in the outer-loop. Call
              vect_create_addr_base_for_vector_ref with additional argument.
              (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
              Updated function documentation. Handle the 'nested_in_vect_loop' case.
              Fixed and simplified calculation of step.
              (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
              of bsi, and with additional argument. Call bump_vector_ptr with
              additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
              (vect_setup_realignment): Takes additional arguments INIT_ADDR and
              DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
              when the realignment setup needs to take place inside the loop.  Support
              the dr_explicit_realign scheme. Allow generating the optimized
              realignment scheme for outer-loop vectorization. Added documentation.
              (vectorizable_load): Support the dr_explicit_realign scheme. Handle the
              'nested_in_vect_loop' case, including loads that are invariant in the
              outer-loop and the realignment schemes. Handle the case when the
              realignment setup needs to take place inside the loop. Call
              vect_setup_realignment with additional arguments.  Call
              vect_create_data_ref_ptr with additional argument and with loop instead
              of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
              (vect_gen_niters_for_prolog_loop): Call
              vect_create_addr_base_for_vector_ref with additional arguments.
              (vect_create_cond_for_align_checks): Likewise.
              (bump_vector_ptr): Updated to support the new dr_explicit_realign
              scheme: takes additional argument bump; argument ptr_incr is now
              optional; updated documentation.
              (vect_init_vector): Takes additional argument (bsi). Use it, if
              available, to insert the vector initialization.
              (get_initial_def_for_induction): Pass additional argument in call to
              vect_init_vector.
              (vect_get_vec_def_for_operand): Likewise.
              (vect_setup_realignment): Likewise.
              (vectorizable_load): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127624 138bc75d-0d04-0410-961f-82ee72b054a4
      b0eb8c66
    • dorit's avatar
      * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info · 221e9a92
      dorit authored
              as argument instead of struct loop.
              (nested_in_vect_loop_p): New function.
              (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
              vect_used_in_outer.
              (is_loop_header_bb_p): New. Used to differentiate loop-header phis
              from other phis in the loop.
              (destroy_loop_vec_info): Add additional argument to declaration.
      
              * tree-vectorizer.c (supportable_widening_operation): Also check if
              nested_in_vect_loop_p (don't allow changing the order in this case).
              (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
              of struct loop. Call nested_in_vect_loop_p and don't require
              flag_unsafe_math_optimizations if it returns true.
              (new_stmt_vec_info): When setting def_type for phis differentiate
              loop-header phis from other phis.
              (bb_in_loop_p): New function.
              (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so just
              update their loop_vinfo.  Order of BB traversal now matters - call
              dfs_enumerate_from with bb_in_loop_p.
              (destroy_loop_vec_info): Takes additional argument to control whether
              stmt_vinfo of the loop stmts should be destroyed as well.
              (vect_is_simple_reduction): Allow the "non-reduction" use of a
              reduction stmt to be defines by a non loop-header phi.
              (vectorize_loops): Call destroy_loop_vec_info with additional argument.
      
              * tree-vect-transform.c (vectorizable_reduction): Call
              nested_in_vect_loop_p. Check for multitypes in the inner-loop.
              (vectorizable_call): Likewise.
              (vectorizable_conversion): Likewise.
              (vectorizable_operation): Likewise.
              (vectorizable_type_promotion): Likewise.
              (vectorizable_type_demotion): Likewise.
              (vectorizable_store): Likewise.
              (vectorizable_live_operation): Likewise.
              (vectorizable_reduction): Likewise. Also pass loop_info to
              vect_is_simple_reduction instead of loop.
              (vect_init_vector): Call nested_in_vect_loop_p.
              (get_initial_def_for_reduction): Likewise.
              (vect_create_epilog_for_reduction): Likewise.
              (vect_init_vector): Check which loop to work with, in case there's an
              inner-loop.
              (get_initial_def_for_inducion): Extend to handle outer-loop
              vectorization. Fix indentation.
              (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
              In the case vect_induction_def get the vector def from the induction
              phi node, instead of calling get_initial_def_for_inducion.
              (get_initial_def_for_reduction): Extend to handle outer-loop
              vectorization.
              (vect_create_epilog_for_reduction): Extend to handle outer-loop
              vectorization.
              (vect_transform_loop): Change assert to just skip this case.  Add a
              dump printout.
              (vect_finish_stmt_generation): Add a couple asserts.
      
              (vect_estimate_min_profitable_iters): Multiply
              cost of inner-loop stmts (in outer-loop vectorization) by estimated
              inner-loop bound.
              (vect_model_reduction_cost): Don't add reduction epilogue cost in case
              this is an inner-loop reduction in outer-loop vectorization.
      
              * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
              Same code as what used to be vect_analyze_scalar_cycles, only with
              additional argument loop, and loop_info passed to
              vect_is_simple_reduction instead of loop.
              (vect_analyze_scalar_cycles): Code factored out into
              vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
              Updated documentation.
              (analyze_operations): Check for inner-loop loop-closed exit-phis during
              outer-loop vectorization that are live or not used in the outerloop,
              cause this requires special handling.
              (vect_enhance_data_refs_alignment): Don't consider versioning for
              nested-loops.
              (vect_analyze_data_refs): Check that there are no datarefs in the
              inner-loop.
              (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
              and vect_used_in_outer_by_reduction cases.
              (process_use): Also consider the case of outer-loop stmt defining an
              inner-loop stmt and vice versa.
              (vect_analyze_loop_1): New function.
              (vect_analyze_loop_form): Extend, to allow a restricted form of nested
              loops.  Call vect_analyze_loop_1.
              (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
              been vectorized.  Call destroy_loop_vec_info with additional argument.
      
              * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
              in the inner-loop when doing outer-loop vectorization. Add
              documentation and printout.
              (vect_recog_dot_prod_pattern): Likewise. Also add check for
              GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127623 138bc75d-0d04-0410-961f-82ee72b054a4
      221e9a92
    • aoliva's avatar
      svn:ignore REVISION · 8787bd6a
      aoliva authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127622 138bc75d-0d04-0410-961f-82ee72b054a4
      8787bd6a
    • dorit's avatar
      * testsuite/gcc.dg/vect/pr20122.c: Fix test (now vectorized, with · 4ab0f833
      dorit authored
              versioning for aliasing).
              * testsuite/gcc.dg/vect/vect-35.c: Likewise.
      
              * testsuite/gcc.dg/vect/vect-iv-6.c: Fix test for vect_no_align targets.
              * testsuite/gcc.dg/vect/vect-multitypes-11.c: Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127621 138bc75d-0d04-0410-961f-82ee72b054a4
      4ab0f833
    • sayle's avatar
      · 6c27cd1e
      sayle authored
      	* primary.c (match_logical_constant_string): New function to match
      	a ".true." or a ".false.".
      	(match_logical_constant): Use it instead of gfc_match_strings.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127620 138bc75d-0d04-0410-961f-82ee72b054a4
      6c27cd1e
    • gccadmin's avatar
      Daily bump. · cf21ce22
      gccadmin authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127618 138bc75d-0d04-0410-961f-82ee72b054a4
      cf21ce22
  4. 18 Aug, 2007 7 commits
    • pinskia's avatar
      2007-08-18 Andrew Pinski <pinskia@gmail.com> · 28d4c440
      pinskia authored
              * tree-affine.h (print_aff): New prototype.
              (debug_aff): Likewise.
              * tree-affine.c (print_aff): New function.
              (debug_aff): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127615 138bc75d-0d04-0410-961f-82ee72b054a4
      28d4c440
    • tromey's avatar
      gcc/testsuite · 36ec4203
      tromey authored
      	PR preprocessor/32974:
      	* gcc.dg/cpp/pr32974.c: New file.
      libcpp
      	PR preprocessor/32974:
      	* directives.c (parse_include): Don't check for EOL when
      	processing #pragma dependency.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127614 138bc75d-0d04-0410-961f-82ee72b054a4
      36ec4203
    • jsm28's avatar
      2007-08-18 Paul Brook <paul@codesourcery.com> · 5f1f2de5
      jsm28 authored
                  Joseph Myers  <joseph@codesourcery.com>
      
      	* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
      	(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
      	* Makefile.in: Regenerate.
      	* configure.ac (--with-debug-prefix-map): New.
      	* configure: Regenerate.
      
      config:
      2007-08-18  Paul Brook  <paul@codesourcery.com>
                  Joseph Myers  <joseph@codesourcery.com>
      
      	* mt-gnu (CXXFLAGS_FOR_TARGET): Add
      	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
      
      gcc:
      2007-08-18  Paul Brook  <paul@codesourcery.com>
                  Joseph Myers  <joseph@codesourcery.com>
      
      	* common.opt (-fdebug-prefix-map=): New option.
      	* opts.c: Include debug.h.
      	(common_handle_option): Handle -fdebug-prefix-map.
      	* final.c: Include ggc.h.
      	(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
      	remap_debug_filename): New.
      	* Makefile.in (final.o, opts.o): Update dependencies.
      	* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
      	* configure.ac: Check for assembler --debug-prefix-map support.
      	* configure, config.in: Regenerate.
      	* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
      	(ASM_DEBUG_SPEC): Include ASM_MAP.
      	* doc/install.texi (--with-debug-prefix-map): Document.
      	* doc/invoke.texi (-fdebug-prefix-map): Document.
      	* dbxout.c (dbxout_init, dbxout_start_source_file,
      	dbxout_source_file): Call remap_debug_filename.
      	* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
      	dwarf2out_start_source_file, dwarf2out_finish): Call
      	remap_debug_filename.
      	(file_table_relative_p): Do not check d->emitted_number.
      	* toplev.c (output_file_directive): Call remap_debug_filename.
      	* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
      	* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127613 138bc75d-0d04-0410-961f-82ee72b054a4
      5f1f2de5
    • burnus's avatar
      2007-08-18 Paul Thomas <pault@gcc.gnu.org> · 94fa7146
      burnus authored
      	    Janus Weil  <jaydub66@gmail.com>
      
      	* interface.c (gfc_match_interface,gfc_match_abstract_interface,
      	gfc_match_end_interface,gfc_add_interface): Add abstract interface.
      	* dump-parse-tree.c (gfc_show_attr): Ditto.
      	* gfortran.h (interface_type,symbol_attribute): Ditto.
      	* module.c (gfc_match_use,ab_attribute,attr_bits,
      	mio_symbol_attribute): Ditto.
      	* resolve.c (resolve_function): Ditto.
      	* match.h: Ditto.
      	* parse.c (decode_statement): Ditto.
      	(parse_interface): Ditto, check for C1203 (name of abstract interface
      	cannot be the same as an intrinsic type).
      	* decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces.
      	(access_attr_decl): Handle Abstract interfaces.
      
      
      2007-08-17  Tobias Burnus  <burnus@net-b.de>
      
      	* gfortran.dg/interface_abstract_1.f90: New.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127612 138bc75d-0d04-0410-961f-82ee72b054a4
      94fa7146
    • pault's avatar
      2007-08-18 Paul Thomas <pault@gcc.gnu.org> · a80b45af
      pault authored
      	PR fortran/32881
      	* expr.c (gfc_check_pointer_assign): If the rhs is the
      	initialization expression for the rhs, there is no error.
      
      2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/32881
      	* gfortran.dg/pure_initializer_1.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127611 138bc75d-0d04-0410-961f-82ee72b054a4
      a80b45af
    • pault's avatar
      2007-08-18 Paul Thomas <pault@gcc.gnu.org> · 34989da6
      pault authored
      	PR fortran/32875
      	* trans-array.c	(get_array_ctor_strlen): Set the character
      	length of a zero length array to zero.
      
      2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/32875
      	* gfortran.dg/array_constructor_18.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127608 138bc75d-0d04-0410-961f-82ee72b054a4
      34989da6
    • gccadmin's avatar
      Daily bump. · b976cd16
      gccadmin authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127606 138bc75d-0d04-0410-961f-82ee72b054a4
      b976cd16
  5. 17 Aug, 2007 2 commits
    • pinskia's avatar
      2007-08-17 Andrew Pinski <andrew_pinski@playstation.sony.com> · d9547f28
      pinskia authored
              PR c++/28989
              * tree.c (lvalue_p_1 <case SAVE_EXPR>): SAVE_EXPRs are never
              lvalues.
      
      2007-08-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR c++/28989
              * g++.dg/expr/lval3.C: New test.
              * g++.dg/expr/lval4.C: New test.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127603 138bc75d-0d04-0410-961f-82ee72b054a4
      d9547f28
    • tromey's avatar
      * typeck.c (find_method_in_interfaces): Update. · d45e1e6e
      tromey authored
      	* jcf-parse.c (load_class): Update.
      	* java-gimplify.c (java_gimplify_component_ref): Removed.
      	(java_gimplify_modify_expr): Update.  Removed pre_p and post_p
      	arguments.
      	(java_gimplify_expr): Update.
      	* decl.c (java_init_decl_processing): Update.
      	* class.c (set_constant_value): Update.
      	(make_class_data): Update.
      	(finish_class): Update.
      	(build_static_field_ref): Update.
      	(is_compiled_class): Update.
      	(maybe_layout_super_class): Update.
      	(layout_class): Update.
      	(layout_class_method): Update.
      	* java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
      	(lang_decl_var) <am, final_iud, cif>: Removed fields.
      	(lang_decl_func) <init_calls_this>: Removed field.
      	(lang_type) <dot_class, verify_method>: Removed fields.
      	(FIELD_NESTED_ACCESS): Removed.
      	(FIELD_NESTED_ACCESS_P): Removed.
      	(DECL_FIELD_FINAL_IUD): Removed.
      	(DECL_LOCAL_FINAL_IUD): Removed
      	(LOCAL_FINAL_P): Removed.
      	(FINAL_VARIABLE_P): Removed.
      	(CLASS_FINAL_VARIABLE_P): Removed.
      	(DECL_BIT_INDEX): Removed.
      	(DECL_INIT_CALLS_THIS): Removed.
      	(FIELD_LOCAL_ALIAS): Removed.
      	(FIELD_LOCAL_ALIAS_USED): Removed.
      	(FIELD_THISN): Removed.
      	(DECL_FUNCTION_INIT_TEST_CLASS): Removed.
      	(LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
      	(LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
      	(TYPE_DOT_CLASS): Removed.
      	(TYPE_VERIFY_METHOD): Removed.
      	(ID_CLASSDOLLAR_P): Removed.
      	(enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
      	Removed.
      	(classdollar_identifier_node): Removed.
      	(TYPE_UNKNOWN): Removed.
      	(CLASS_FROM_SOURCE_P): Removed.
      	* expr.c (build_jni_stub): Update.
      	(force_evaluation_order): Update.
      	(build_java_empty_stmt): Update.
      	(build_class_init): Update.
      	(java_stack_swap): Update.
      	(build_jni_stub): Update.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127602 138bc75d-0d04-0410-961f-82ee72b054a4
      d45e1e6e