- 21 Aug, 2007 4 commits
-
-
jakub authored
* fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST. (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations. * gcc.dg/pr32912-1.c: New test. * gcc.dg/pr32912-2.c: New test. * gcc.dg/pr32912-3.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127661 138bc75d-0d04-0410-961f-82ee72b054a4
-
rguenth authored
* fold-const.c (fold_binary): Revert removing of index +p PTR * folding. * gcc.dg/pointer-arith-10.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127660 138bc75d-0d04-0410-961f-82ee72b054a4
-
rguenth authored
PR middle-end/33122 * fold-const.c (fold_binary): Remove index +p PTR folding. Fix types of POINTER_PLUS_EXPR generated by folding of (PTR +p B) +p A. * gcc.c-torture/compile/pr33122.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127659 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127656 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 20 Aug, 2007 16 commits
-
-
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
-
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
-
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
-
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
-
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
-
dorit authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127645 138bc75d-0d04-0410-961f-82ee72b054a4
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127632 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 19 Aug, 2007 11 commits
-
-
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
-
hubicka authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127628 138bc75d-0d04-0410-961f-82ee72b054a4
-
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
-
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
-
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
-
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
-
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
-
aoliva authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127622 138bc75d-0d04-0410-961f-82ee72b054a4
-
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
-
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
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127618 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 18 Aug, 2007 7 commits
-
-
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
-
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
-
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
-
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
-
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
-
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
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127606 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 17 Aug, 2007 2 commits
-
-
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
-
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
-