- 04 Jul, 2010 4 commits
-
-
* tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit. From-SVN: r161799
Richard Guenther committed -
2010-07-04 Richard Guenther <rguenther@suse.de> PR tree-optimization/44656 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation again after value-replacing in the defintions lhs. * gcc.dg/tree-ssa/loadpre6.c: Remove XFAIL. From-SVN: r161798
Richard Guenther committed -
* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document new arguments. * doc/tm.texi: Regenerate. * targhooks.c (default_builtin_vectorization_cost): Add new arguments. Handle unaligned store. * targhooks.h (default_builtin_vectorization_cost): Add new arguments. * target.def (builtin_vectorization_cost): Add new arguments. * target.h (enum vect_cost_for_stmt): Add unaligned_store. * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT. (vect_vfa_segment_size): Fix indentation. * tree-vectorizer.h (struct _vect_peel_info): New. (struct _vect_peel_extended_info): New. (struct _loop_vec_info): Add new field for peeling hash table and a macro for its access. (VECT_MAX_COST): Define. (vect_get_load_cost): Declare. (vect_get_store_cost, vect_get_known_peeling_cost, vect_get_single_scalar_iteraion_cost): Likewise. (vect_supportable_dr_alignment): Add new argument. * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table field. (destroy_loop_vec_info): Free peeling hash table. (vect_analyze_loop_form): Update call to builtin_vectorization_cost. (vect_analyze_loop): Move vect_enhance_data_refs_alignment before vect_analyze_slp. Fix indentation. (vect_get_single_scalar_iteraion_cost): New function. (vect_get_known_peeling_cost): Likewise. (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel. Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per statement. Move outside cost calculation inside unknown peeling case. Call vect_get_known_peeling_cost for known amount of peeling. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data reference to the print message of forced alignment. (vect_verify_datarefs_alignment): Update call to vect_supportable_dr_alignment. (vect_get_data_access_cost): New function. (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert, vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost, vect_peeling_hash_choose_best_peeling): Likewise. (vect_enhance_data_refs_alignment): Fix documentation. Use hash table to store all the accesses in the loop and find best possible access to align using peeling for known alignment case. For unknown alignment check if stores are preferred or if peeling is worthy. (vect_find_same_alignment_drs): Analyze pairs of loads too. (vect_supportable_dr_alignment): Add new argument and check aligned accesses according to it. * tree-vect-stmts.c (vect_get_stmt_cost): New function. (cost_for_stmt): Call vect_get_stmt_cost. (vect_model_simple_cost): Likewise. (vect_model_store_cost): Call vect_get_stmt_cost. Call vect_get_store_cost to calculate the cost of the statement. (vect_get_store_cost): New function. (vect_model_load_cost): Call vect_get_stmt_cost. Call vect_get_load_cost to calculate the cost of the statement. (vect_get_load_cost): New function. (vectorizable_store): Update call to vect_supportable_dr_alignment. (vectorizable_load): Likewise. * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments. * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new arguments. Handle unaligned store. * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New. (rs6000_builtin_support_vector_misalignment): Return true for word and double word alignments for VSX. * tree-vect-slp.c (vect_build_slp_tree): Update calls to vect_supportable_dr_alignment and builtin_vectorization_cost. Co-Authored-By: Revital Eres <eres@il.ibm.com> From-SVN: r161797
Ira Rosen committed -
From-SVN: r161795
GCC Administrator committed
-
- 03 Jul, 2010 23 commits
-
-
2010-07-03 H.J. Lu <hongjiu.lu@intel.com> PR c/44806 * gcc.dg/torture/pr44806.c: New. From-SVN: r161787
H.J. Lu committed -
PR target/44597 * config/pa/predicates.md (prefetch_cc_operand): Remove. (prefetch_nocc_operand): Likewise. * config/pa/pa.md (prefetch): Revise expander to use prefetch_20. (prefetch_20): New insn. (prefetch_cc): Remove. (prefetch_nocc): Likewise. From-SVN: r161786
John David Anglin committed -
2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org> * c-family/c-common.c (IN_GCC_FRONTEND): Do not undef. Do not include expr.h (vector_mode_valid_p): Move here. * expr.c (vector_mode_valid_p): Move to c-common.c. * expr.h (vector_mode_valid_p): Do not declare here. * system.h: Poison GCC_EXPR_H in front-ends. * Makefile.in: Update dependencies. From-SVN: r161785
Manuel López-Ibáñez committed -
PR target/44705 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF. From-SVN: r161781
John David Anglin committed -
From-SVN: r161780
Steven Bosscher committed -
* timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND, TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars. * cfgexpand.c (gimple_expand_cfg): Use new timevars. * var-tracking.c (vt_find_locations, variable_tracking_main_1): Likewise. * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out): Update timevars.V * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove. (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN, TV_IPA_LTO_DECL_OUT): New. * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars. From-SVN: r161779
Jan Hubicka committed -
* ipa-inline.c (update_edge_key): Break out from ... update_callers_keys): ... here; (update_callee_keys): Update only the edges from caller to callee. (update_all_calle_keys): Do what update_calle_keys did. (decide_inlining_of_small_functions): Avoid recomputing of all callees when badness increase. From-SVN: r161778
Jan Hubicka committed -
PR objc/24867 * objc-act.c (build_sized_array_type): New function. (add_objc_string): Use it. (generate_protocol_list): Likewise. (generate_objc_image_info): Likewise. (add_field_decl): New function. (objc_build_struct): Use a VEC rather than building a TREE_LIST. (generate_struct_by_value_array): Use add_field_decl. (build_objc_symtab_template): Likewise. (build_module_descriptor): Likewise. (build_objc_exception_stuff): Likewise. (build_protocol_template): Likewise. (build_method_prototype_list_template): Likewise. (build_method_prototype_template): Likewise. (build_category_template): Likewise. (build_selector_template): Likewise. (build_class_template): Likewise. (build_super_template): Likewise. (build_ivar_template): Likewise. (build_ivar_list_template): Likewise. (build_method_list_template): Likewise. (build_method_template): Likewise. From-SVN: r161777
Nathan Froyd committed -
* config/arm/arm.c (arm_attr_length_move_neon): New. * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare. * config/arm/neon.md (define_mode_attr V_slen): Remove. (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon to compute length attribute. From-SVN: r161776
Jie Zhang committed -
vfp.md (*push_multi_vfp): Use vfp_register_operand as predicate for operand 1 and remove its constraint. * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand as predicate for operand 1 and remove its constraint. * config/arm/predicates.md (vfp_register_operand): New. * config/arm/arm.md (*push_multi): Remove the constraint of operand 1. (*push_fp_multi): Likewise. From-SVN: r161775
Jie Zhang committed -
From-SVN: r161774
Eric Botcazou committed -
2010-07-03 Jonathan Wakely <jwakely.gcc@gmail.com> * include/bits/regex_compiler.h: Fix filename in doxygen comment. * include/bits/regex_constants.h: Likewise. * include/bits/regex_error.h: Likewise. * include/bits/regex_grep_matcher.h: Likewise. * include/bits/regex_grep_matcher.tcc: Likewise. * include/bits/regex_nfa.tcc: Likewise. From-SVN: r161773
Jonathan Wakely committed -
From-SVN: r161772
Jan Hubicka committed -
From-SVN: r161771
Kai Tietz committed -
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>: Branch to common code handling the alignment of discrete types. <E_Signed_Integer_Type>: Likewise. <E_Modular_Integer_Type>: Likewise. From-SVN: r161770
Eric Botcazou committed -
2010-07-03 Iain Sandoe <iains@gcc.gnu.org> Mikael Pettersson <mikpe@it.uu.se> PR testsuite/44518 * obj-c++.dg/encode-2.mm: Produce object and save temps. Make signed-ness of chars explicit. Scan the object for strings that are split by some target assemblers. * obj-c++.dg/encode-3.mm: Make the signed-ness of chars explicit. Co-Authored-By: Mikael Pettersson <mikpe@it.uu.se> From-SVN: r161769
Iain Sandoe committed -
From-SVN: r161768
Eric Botcazou committed -
From-SVN: r161767
Hans-Peter Nilsson committed -
PR/44128 * gcc/doc/invoke.texi: Update documentation of -Wshadow. * gcc/cp/name-lookup.c (pushdecl_maybe_friend): Warn when a local decl (variable or type) shadows another type. * gcc/testsuite/g++.dg/warn/Wshadow-7.C: New test. From-SVN: r161765
Le-Chun Wu committed -
2010-07-02 Daniel Jacobowitz <dan@codesourcery.com> Julian Brown <julian@codesourcery.com> Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode comparisons. Adjust to take both operands. (arm_select_cc_mode): Handle DImode comparisons. (arm_gen_compare_reg): Generate a scratch register for DImode comparisons which require one. Use xor for Thumb equality checks. (arm_const_double_by_immediates): New. (arm_print_operand): Allow 'Q' and 'R' for constants. (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode. * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use arm_canonicalize_comparison. * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode. * config/arm/arm-protos.h (arm_canonicalize_comparison): Update prototype. (arm_const_double_by_immediates): Declare. * config/arm/constraints.md (Di): New constraint. * config/arm/predicates.md (arm_immediate_di_operand) (arm_di_operand, cmpdi_operand): New. * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also. (*arm_cmpdi_insn, *arm_cmpdi_unsigned) (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns. (cstoredi4): Handle non-Cirrus also. gcc/testsuite/ * gcc.c-torture/execute/20100416-1.c: New test case. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r161764
Daniel Jacobowitz committed -
2010-07-02 Julian Brown <julian@codesourcery.com> Sandra Loosemore <sandra@codesourcery.com> PR target/43703 gcc/ * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3) (smax<mode>3): Disable for NEON float modes when flag_unsafe_math_optimizations is false. * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon) (*mul<mode>3_neon) (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon) (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable for NEON float modes when flag_unsafe_math_optimizations is false. (quad_halves_<code>v4sf): Only enable if flag_unsafe_math_optimizations is true. * doc/invoke.texi (ARM Options): Add note about floating point vectorization requiring -funsafe-math-optimizations. gcc/testsuite/ * gcc.dg/vect/vect.exp: Add -ffast-math for NEON. * gcc.dg/vect/vect-reduc-6.c: Add XFAIL for NEON. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r161763
Julian Brown committed -
2010-07-02 Sandra Loosemore <sandra@codesourcery.com> Julian Brown <julian@codesourcery.com> gcc/ * config/arm/neon.md (UNSPEC_VABA): Delete. (UNSPEC_VABAL): Delete. (UNSPEC_VABS): Delete. (UNSPEC_VMUL_N): Delete. (adddi3_neon): New. (subdi3_neon): New. (mul<mode>3add<mode>_neon): Make the pattern named. (mul<mode>3neg<mode>add<mode>_neon): Likewise. (neon_vadd<mode>): Replace with define_expand, and move the remaining unspec parts... (neon_vadd<mode>_unspec): ...to this. (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise. (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise. (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise. (neon_vaba<mode>): Rewrite in terms of vabd. (neon_vabal<mode>): Rewrite in terms of vabdl. (neon_vabs<mode>): Rewrite without unspec. * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON. (*arm_subdi3): Likewise. * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add No_op attribute to disable assembly output checks. * config/arm/arm_neon.h: Regenerated. * doc/arm-neon-intrinsics.texi: Regenerated. gcc/testsuite/ * gcc.target/arm/neon/vadds64.c: Regenerated. * gcc.target/arm/neon/vaddu64.c: Regenerated. * gcc.target/arm/neon/vsubs64.c: Regenerated. * gcc.target/arm/neon/vsubu64.c: Regenerated. * gcc.target/arm/neon-vmla-1.c: Add -ffast-math to options. * gcc.target/arm/neon-vmls-1.c: Likewise. * gcc.target/arm/neon-vsubs64.c: New execution test. * gcc.target/arm/neon-vsubu64.c: New execution test. * gcc.target/arm/neon-vadds64.c: New execution test. * gcc.target/arm/neon-vaddu64.c: New execution test. Co-Authored-By: Julian Brown <julian@codesourcery.com> From-SVN: r161762
Sandra Loosemore committed -
From-SVN: r161760
GCC Administrator committed
-
- 02 Jul, 2010 13 commits
-
-
* ipa-split.c (split_function): For aggregate values set return_slot_opt; when passing DECL_BY_REFERENCE produce *<retval> = fncall.part () (execute_split_functions): Do not care about DECL_BY_REFERENCE. From-SVN: r161756
Jan Hubicka committed -
2010-07-02 Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/arm/neon.md (UNSPEC_VAND): Delete. (UNSPEC_VBIC): Delete. (UNSPEC_VCLZ): Delete. (UNSPEC_VCNT): Delete. (UNSPEC_VEOR): Delete. (UNSPEC_VORN): Delete. (UNSPEC_VORR): Delete. (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle core registers too. (anddi3_neon): Likewise. (orndi3_neon): Likewise. (bicdi3_neon): Likewise. (xordi3_neon): Likewise. (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get rid of unspec and handle unused operand. (neon_vcnt<mode>): Similarly, with popcount<mode>2. * config/arm/predicates.md (imm_for_neon_logic_operand): Require TARGET_NEON. (imm_for_neon_inv_logic_operand): Likewise. * config/arm/arm.md (define_split for logical_binary_operator): Disable for NEON registers. (anddi3): Add new define_expand, and rename the insn. Disable this insn for NEON, where anddi3_neon now applies. (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies. (iordi3): As for anddi3. (xordi3): Likewise. * config/arm/neon.ml (Vand): Split DImode variants and mark them as No_op to disable testing for exact instruction match. (Vorr): Likewise. (Veor): Likewise. (Vbic): Likewise. (Vorn): Likewise. * config/arm/arm_neon.h: Regenerated. * doc/arm-neon-intrinsics.texi: Regenerated. gcc/testsuite/ * gcc.target/arm/neon-vands64.c: New. * gcc.target/arm/neon-vandu64.c: New. * gcc.target/arm/neon-vbics64.c: New. * gcc.target/arm/neon-vbicu64.c: New. * gcc.target/arm/neon-veors64.c: New. * gcc.target/arm/neon-veoru64.c: New. * gcc.target/arm/neon-vorns64.c: New. * gcc.target/arm/neon-vornu64.c: New. * gcc.target/arm/neon-vorrs64.c: New. * gcc.target/arm/neon-vorru64.c: New. * gcc.target/arm/neon/vands64.c: Regenerated. * gcc.target/arm/neon/vandu64.c: Regenerated. * gcc.target/arm/neon/vbics64.c: Regenerated. * gcc.target/arm/neon/vbicu64.c: Regenerated. * gcc.target/arm/neon/veors64.c: Regenerated. * gcc.target/arm/neon/veoru64.c: Regenerated. * gcc.target/arm/neon/vorns64.c: Regenerated. * gcc.target/arm/neon/vornu64.c: Regenerated. * gcc.target/arm/neon/vorrs64.c: Regenerated. * gcc.target/arm/neon/vorru64.c: Regenerated. From-SVN: r161755
Sandra Loosemore committed -
From-SVN: r161751
Eric Botcazou committed -
* expr.h (emit_stack_probe): Declare. * explow.c (emit_stack_probe): Make global. (anti_adjust_stack_and_probe): Fix comments. * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1. * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise. * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise. * config/sparc/sparc.c: Include except.h. (sparc_emit_probe_stack_range): New function. (output_probe_stack_range): Likewise. (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static built-in stack checking is enabled. * config/sparc/sparc-protos.h (output_probe_stack_range): Declare. * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant. (probe_stack_range): New insn. From-SVN: r161749
Eric Botcazou committed -
2010-07-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> * gfortran.dg/runtime_warning_1.f90: Remove extra dg line. From-SVN: r161747
Jerry DeLisle committed -
PR target/43958 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic for argument alignment. From-SVN: r161746
Richard Guenther committed -
2010-07-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> * gfortran.dg/runtime_warning_1.f90: Fix dg syntax. * gfortran.dg/intent_out_5.f90: Same. * gfortran.dg/ltrans-7.f90: Same. * gfortran.dg/char_bounds_check_fail_1.f90: Same. From-SVN: r161745
Jerry DeLisle committed -
* ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS walk backwards from entry_bb to check only those basic block of header that might lead to execution of split part. (consider_split) ... here. (find_return_bb): Allow assignment in return BB. (find_retval): New. (split_function): Fix name of cloned function; take care of updating return value in return_bb containing move. * gcc.dg/tree-ssa/ipa-split-5.c: New function. From-SVN: r161744
Jan Hubicka committed -
* objc-obj-c++-shared/Object1.h: Correct Line endings. From-SVN: r161743
Iain Sandoe committed -
PR c++/44780 * typeck.c (convert_for_assignment): When converting a convertible vector type or objc++ types, call mark_rvalue_use. * typeck2.c (build_m_component_ref): Use return values from mark_rvalue_use or mark_lvalue_use. * class.c (build_base_path): Likewise. * call.c (build_conditional_expr): Likewise. * c-c++-common/Wunused-var-12.c: New test. From-SVN: r161742
Jakub Jelinek committed -
PR target/44771 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not used variable insn. From-SVN: r161741
Andreas Schwab committed -
2010-07-02 Mikael Morin <mikael@gcc.gnu.org> PR fortran/44662 * decl.c (match_procedure_in_type): Clear structure before using. (gfc_match_generic): Ditto. From-SVN: r161739
Mikael Morin committed -
* trans-types.h (gfc_add_field_to_struct): Add tree ** parameter. * trans-types.c (gfc_add_field_to_struct_1): New function, most of which comes from... (gfc_add_field_to_struct): ...here. Call it. Add new parameter. (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for building fields. (gfc_get_array_descriptor_base): Likewise. (gfc_get_mixed_entry_union): Likewise. (gfc_get_derived_type): Add extra chain parameter for gfc_add_field_to_struct. * trans-stmt.c (gfc_trans_character_select): Likewise. * trans-io.c (gfc_build_st_parameter): Likewise. From-SVN: r161738
Nathan Froyd committed
-