- 11 Dec, 2013 21 commits
-
-
From-SVN: r205908
Ian Lance Taylor committed -
Avoid name collisions when a method calls recover. Don't crash if a method with an unnamed receiver calls recover. From-SVN: r205906
Ian Lance Taylor committed -
PR rtl-optimization/59446 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly test for crossing a loop header. From-SVN: r205905
Jeff Law committed -
2013-12-11 Sriraman Tallam <tmsriram@google.com> PR target/59390 * config/i386/i386.c (get_builtin): New function. (ix86_builtin_vectorized_function): Replace all instances of ix86_builtins[...] with get_builtin(...). (ix86_builtin_reciprocal): Ditto. PR target/59390 * gcc.target/i386/pr59390.c: New test. * gcc.target/i386/pr59390_1.c: New test. * gcc.target/i386/pr59390_2.c: New test. Tested boot-strap on all languages and test parity on x86_64 and with -m32. From-SVN: r205904
Sriraman Tallam committed -
2013-12-11 Tobias Burnus <burnus@net-b.de> * config/fpu-387.h (sigill_hdlr, get_fpu_rounding_mode): Emit * SSE instructions when __SSE_MATH__ is defined. From-SVN: r205903
Tobias Burnus committed -
gcc/c-family/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * cilk.c (cilk_outline): Made this function non-static. (gimplify_cilk_spawn): Removed pre_p and post_p arguments. (create_cilk_wrapper): Added a new parameter: a function pointer. (c_install_body_w_frame_cleanup): Remove (extract_free_variables): Added VEC_INIT_EXPR and CONSTRUCTOR case. * c-common.h (cilk_outline): New prototype. (gimplify_cilk_spawn): Removed two parameters. (cilk_install_body_with_frame_cleanup): New prototype. * c-gimplify.c (c_gimplify_expr): Added MODIFY_EXPR, CALL_EXPR and CILK_SPAWN_STMT case. gcc/c/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove. (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. * c-typeck.c (cilk_install_body_with_frame_cleanup): New function. gcc/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * langhooks.h (lang_hooks_for_decls): Remove lang_hooks_for_cilkplus. (lang_hooks_for_cilkplus): Remove. * langhooks.c (lhd_cilk_detect_spawn): Likewise. (lhd_install_body_with_frame_cleanup): Likewise. * langhooks-def.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. (LANG_HOOKS_CILKPLUS): Likewise. (LANG_HOOKS_DECLS): Remove LANG_HOOKS_CILKPLUS. * gimplify.c (gimplify_expr): Removed CILK_SPAWN_STMT case. (gimplify_modify_expr): Removed handling of _Cilk_spawn in expr. (gimplify_call_expr): Likewise. gcc/cp/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * cp-tree.h (cilk_valid_spawn): New prototype. (gimplify_cilk_spawn): Likewise. (create_try_catch_expr): Likewise. * decl.c (finish_function): Insert Cilk function-calls when a _Cilk_spawn is used in a function. * parser.c (cp_parser_postfix_expression): Added RID_CILK_SPAWN and RID_CILK_SYNC cases. * cp-cilkplus.c (set_cilk_except_flag): New function. (set_cilk_except_data): Likewise. (cilk_install_body_with_frame_cleanup): Likewise. * except.c (create_try_catch_expr): Likewise. * parser.h (IN_CILK_SPAWN): New #define. * pt.c (tsubst_expr): Added CILK_SPAWN_STMT and CILK_SYNC_STMT cases. * semantics.c (potential_constant_expression_1): Likewise. * typeck.c (cp_build_compound_expr): Reject a spawned function in a compound expression. (check_return_expr): Reject a spawned function in a return expression. * cp-gimplify.c (cp_gimplify_expr): Added a CILK_SPAWN_STMT and CALL_EXPR case. Added handling of spawned function in MODIFY_EXPR and INIT_EXPR. gcc/testsuite/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * g++.dg/cilk-plus/CK/catch_exc.cc: New test case. * g++.dg/cilk-plus/CK/const_spawn.cc: Likewise. * g++.dg/cilk-plus/CK/fib-opr-overload.cc: Likewise. * g++.dg/cilk-plus/CK/fib-tplt.cc: Likewise. * g++.dg/cilk-plus/CK/lambda_spawns.cc: Likewise. * g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc: Likewise. * g++.dg/cilk-plus/cilk-plus.exp: Added support to run Cilk Keywords test stored in c-c++-common. Also, added the Cilk runtime's library to the ld_library_path. From-SVN: r205902
Balaji V. Iyer committed -
2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de> * expr.c (expand_assignment): Remove dependency on flag_strict_volatile_bitfields. Always set the memory access mode. (expand_expr_real_1): Likewise. From-SVN: r205899
Bernd Edlinger committed -
re PR middle-end/59134 (infinite loop between store_fixed_bit_field and store_split_bit_field with STRICT_ALIGNMENT) 2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de> PR middle-end/59134 * expmed.c (store_bit_field): Use narrow_bit_field_mem and store_fixed_bit_field_1 for -fstrict-volatile-bitfields. (store_fixed_bit_field): Split up. Call store_fixed_bit_field_1 to do the real work. (store_fixed_bit_field_1): New function. (store_split_bit_field): Limit the unit size to the memory mode size, to prevent recursion. testsuite: * gcc.c-torture/compile/pr59134.c: New test. * gnat.dg/misaligned_volatile.adb: New test. From-SVN: r205898
Bernd Edlinger committed -
2013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de> Sandra Loosemore <sandra@codesourcery.com> PR middle-end/23623 PR middle-end/48784 PR middle-end/56341 PR middle-end/56997 * expmed.c (strict_volatile_bitfield_p): Add bitregion_start and bitregion_end parameters. Test for compliance with C++ memory model. (store_bit_field): Adjust call to strict_volatile_bitfield_p. Add fallback logic for cases where -fstrict-volatile-bitfields is supposed to apply, but cannot. (extract_bit_field): Likewise. Use narrow_bit_field_mem and extract_fixed_bit_field_1 to do the extraction. (extract_fixed_bit_field): Revert to previous mode selection algorithm. Call extract_fixed_bit_field_1 to do the real work. (extract_fixed_bit_field_1): New function. testsuite: * gcc.dg/pr23623.c: Update to test interaction with C++ memory model. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r205897
Bernd Edlinger committed -
2013-12-11 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/23623 PR middle-end/48784 PR middle-end/56341 PR middle-end/56997 gcc/ * expmed.c (strict_volatile_bitfield_p): New function. (store_bit_field_1): Don't special-case strict volatile bitfields here. (store_bit_field): Handle strict volatile bitfields here instead. (store_fixed_bit_field): Don't special-case strict volatile bitfields here. (extract_bit_field_1): Don't special-case strict volatile bitfields here. (extract_bit_field): Handle strict volatile bitfields here instead. (extract_fixed_bit_field): Don't special-case strict volatile bitfields here. Simplify surrounding code to resemble that in store_fixed_bit_field. * doc/invoke.texi (Code Gen Options): Update -fstrict-volatile-bitfields description. gcc/testsuite/ * gcc.dg/pr23623.c: New test. * gcc.dg/pr48784-1.c: New test. * gcc.dg/pr48784-2.c: New test. * gcc.dg/pr56341-1.c: New test. * gcc.dg/pr56341-2.c: New test. * gcc.dg/pr56997-1.c: New test. * gcc.dg/pr56997-2.c: New test. * gcc.dg/pr56997-3.c: New test. From-SVN: r205896
Sandra Loosemore committed -
2013-12-11 Janus Weil <janus@gcc.gnu.org> PR fortran/58916 * resolve.c (conformable_arrays): Treat scalar 'e2'. (resolve_allocate_expr): Check rank also for unlimited-polymorphic variables. 2013-12-11 Janus Weil <janus@gcc.gnu.org> PR fortran/58916 * gfortran.dg/allocate_with_source_4.f90: New. From-SVN: r205894
Janus Weil committed -
From-SVN: r205892
Christophe Lyon committed -
2013-12-11 Kugan Vivekanandarajah <kuganv@linaro.org> * configure.ac: Add check for aarch64 assembler -mabi support. * configure: Regenerate. * config.in: Regenerate. * config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define. (ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC. * config/aarch64/aarch64.h (aarch64_override_options): Issue error if assembler does not support -mabi and option ilp32 is selected. * doc/install.texi: Added note that building gcc 4.9 and after with pre 2.24 binutils will not support -mabi=ilp32. From-SVN: r205891
Kugan Vivekanandarajah committed -
* c-common.c (c_fully_fold_internal): Handle ADDR_SPACE_CONVERT_EXPR. From-SVN: r205890
Bernd Schmidt committed -
* c-common.h (enum c_tree_index): Remove CTI_INT_ARRAY_TYPE. (int_array_type_node): Remove. * c-common.c (c_common_nodes_and_builtins): Don't build it. From-SVN: r205889
Bernd Schmidt committed -
PR sanitizer/59399 * expr.c (expand_expr_real_1): Remove assert dealing with internal calls and turn that into a condition instead. From-SVN: r205888
Marek Polacek committed -
2013-12-11 Yvan Roux <yvan.roux@linaro.org> * config/arm/arm.opt (mlra): Enable LRA by default. From-SVN: r205887
Yvan Roux committed -
PR tree-optimization/59417 * tree-ssa-copy.c (fini_copy_prop): If copy_of[i].value is defined in a different bb rhan var, only duplicate points-to info and not alignment info and don't duplicate range info. * tree-ssa-loop-niter.c (determine_value_range): Instead of assertion failure handle inconsistencies in range info by only using var's range info and not PHI result range infos. * gcc.c-torture/compile/pr59417.c: New test. From-SVN: r205884
Jakub Jelinek committed -
PR tree-optimization/59386 * tree-inline.c (remap_gimple_stmt): If not id->do_not_unshare, unshare_expr (id->retval) before passing it to gimple_build_assign. * gcc.c-torture/compile/pr59386.c: New test. From-SVN: r205883
Jakub Jelinek committed -
Reverted: 2013-12-10 Bin Cheng <bin.cheng@arm.com> PR tree-optimization/41488 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand for PEELED_CHREC kind IV. * tree-scalar-evolution.c: Include necessary header files. (peeled_chrec_map, simplify_peeled_chrec): New. (analyze_evolution_in_loop): New static variable. Call simplify_peeled_chrec. (scev_initialize): Initialize peeled_chrec_map. (scev_reset, scev_finalize): Reset and release peeled_chrec_map. Reverted: 2013-12-10 Bin Cheng <bin.cheng@arm.com> PR tree-optimization/41488 * gcc.dg/tree-ssa/scev-7.c: New test. * gcc.dg/pr41488.c: New test. From-SVN: r205880
Bin Cheng committed -
From-SVN: r205879
GCC Administrator committed
-
- 10 Dec, 2013 19 commits
-
-
PR target/59458 * config/i386/i386.md (*movsf_internal): Set mode to SI for alternative 13. From-SVN: r205876
H.J. Lu committed -
PR rtl-optimization/58295 * simplify-rtx.c (simplify_truncation): Restrict the distribution for WORD_REGISTER_OPERATIONS targets. From-SVN: r205874
Eric Botcazou committed -
2013-12-10 Janus Weil <janus@gcc.gnu.org> PR fortran/35831 * interface.c (check_dummy_characteristics): Add checks for several attributes. 2013-12-10 Janus Weil <janus@gcc.gnu.org> PR fortran/35831 * gfortran.dg/c_by_val_5.f90: Modified. * gfortran.dg/dummy_procedure_10.f90: New. From-SVN: r205873
Janus Weil committed -
* Make-lang.in (check_go_parallelize): Test go-test.exp r* tests separately. From-SVN: r205872
Ian Lance Taylor committed -
2013-12-10 Janus Weil <janus@gcc.gnu.org> * gfortran.texi: Add possible kind values (and default) for DOUBLE PRECISION. * invoke.texi: Correct documentation of -fdefault-integer-8, -fdefault-real-8 and -fdefault-double-8. From-SVN: r205871
Janus Weil committed -
gcc/ * genrecog.c (validate_pattern): Treat all messages except missing modes as errors. * config/epiphany/epiphany.md: Remove constraints from define_peephole2s. * config/h8300/h8300.md: Remove constraints from define_splits. * config/msp430/msp430.md: Likewise. * config/mcore/mcore.md (movdi_i, movsf_i, movdf_k): Use nonimmediate_operand rather than general_operand for operand 0. * config/moxie/moxie.md (*movsi, *movqi, *movhi): Likewise. * config/pdp11/predicates.md (float_operand, float_nonimm_operand): Use match_operator rather than match_test to invoke general_operand. * config/v850/v850.md (*movqi_internal, *movhi_internal) (*movsi_internal_v850e, *movsi_internal, *movsf_internal): Likewise. From-SVN: r205870
Richard Sandiford committed -
gcc/ * config/tilegx/tilegx.md (insn_ld_add<bitsuffix>): Use register_operand rather than pointer_operand. Add modes to the operands. (insn_ldna_add<bitsuffix>): Likewise. (insn_ld<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise. (insn_ldnt_add<bitsuffix>): Likewise. (insn_ldnt<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise. (insn_ld_add_L2<bitsuffix>): Likewise. (insn_ldna_add_L2<bitsuffix>): Likewise. (insn_ld<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise. (insn_ldnt_add_L2<bitsuffix>): Likewise. (insn_ldnt<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise. (insn_ld_add_miss<bitsuffix>): Likewise. (insn_ldna_add_miss<bitsuffix>): Likewise. (insn_ld<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise. (insn_ldnt_add_miss<bitsuffix>): Likewise. (insn_ldnt<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise. (insn_st_add<bitsuffix>): Likewise. (insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. (*insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. (insn_stnt_add<bitsuffix>): Likewise. (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. (*insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. (vec_pack_<pack_optab>_v4hi): Use register_operand rather than reg_or_0_operand for operand 0. (insn_v2<pack_insn>): Likewise. (vec_pack_hipart_v4hi): Likewise. (insn_v2packh): Likewise. (vec_pack_ssat_v2si): Likewise. (insn_v4packsc): Likewise. From-SVN: r205868
Richard Sandiford committed -
* basic-block.h (gcov_working_set_t): Put back typedef. * gcov-io.h (gcov_bucket_type): Likewise. (gcov_working_set_info, gcov_working_set_t): Likewise. From-SVN: r205866
H.J. Lu committed -
From-SVN: r205865
H.J. Lu committed -
* gcc/cgraph.h (cgraph_node_set_iterator, varpool_node_set_iterator): Remove typedef. (cgraph_inline_failed_enum, cgraph_inline_failed_t): Remove typedef and rename to cgraph_inline_failed_t. * gcc/tree-ssa-alias.h (ao_ref_s, ao_ref): Remove typedef and rename to ao_ref. * gcc/reload.h (reg_equivs_s, reg_equivs_t): Remove typedef and rename to reg_equivs_t. * gcc/conditions.h (CC_STATUS): Remove typedef. * gcc/bitmap.h (bitmap_obstack): Remove typedef. (bitmap_element_def, bitmap_element): Remove typedef and rename to bitmap_element. (bitmap_head_def, bitmap_head): Remove typedef and rename to bitmap_head. (bitmap_iterator): Remove typedef. * gcc/target.h (cumulative_args_t, print_switch_type, secondary_reload_info): Remove typedef. * gcc/dwarf2out.h (dw_cfi_oprnd_struct, dw_cfi_oprnd): Remove dw_cfi_oprnd_struct alias. (dw_cfi_struct, dw_cfi_node): Remove typedef and rename to dw_cfi_node. (dw_fde_struct, dw_fde_node): Remove typedef and rename to dw_fde_node. (cfa_loc, dw_cfa_location): Remove typedef and rename to dw_cfa_location. (dw_vec_struct, dw_vec_const): Remove typedef and rename to dw_vec_const. (dw_val_struct, dw_val_node): Remove typedef and rename to dw_val_node. (dw_loc_descr_struct, dw_loc_descr_node): Remove typedef and rename to dw_loc_descr_node. * gcc/params.h (param_info, compiler_param): Remove typedef. * gcc/opts.h (cl_deferred_param): Remove typedef. * gcc/sreal.h (sreal): Remove typedef. * gcc/ddg.h (dep_type, dep_data_type): Remove typedef. * gcc/graphite-clast-to-gimple.h (cloog_prog_clast, bb_pbb_def): Remove typedef. * gcc/lto-streamer.h (lto_decl_stream_e_t, lto_encoder_entry, lto_symtab_encoder_iterator, res_pair): Remove typedef. * gcc/tree-affine.h (affine_tree_combination, aff_tree): Remove typedef and rename to aff_tree. * gcc/sched-int.h (region): Remove typedef. * gcc/diagnostic.h (diagnostic_info, diagnostic_classification_change_t): Remove typedef. * gcc/tree-ssa-loop.h (affine_iv_d): Remove typedef and rename to affine_iv. * gcc/sbitmap.h (sbitmap_iterator): Remove typedef. * gcc/ssa-iterators.h (immediate_use_iterator_d, imm_use_iterator): Remove typedef and rename to imm_use_iterator. (ssa_operand_iterator_d, ssa_op_iter): Remove typedef and rename to ssa_op_iter. * gcc/ggc-internal.h (ggc_statistics): Remove typedef. * gcc/cselib.h (cselib_val_struct, cselib_val): Remove typedef and rename to cselib_val. * gcc/tree-core.h (alias_pair): Remove typedef. (constructor_elt_d, constructor_elt): Remove typedef and rename to constructor_elt. (ssa_use_operand_d, ssa_use_operand_t): Remove typedef and rename to ssa_use_operand_t. * gcc/graphite-sese-to-poly.h (base_alias_pair): Remove typedef. * gcc/tree-data-ref.h (conflict_function): Remove typedef. * gcc/tree-inline.h (copy_body_data): Remove typedef. * gcc/ipa-inline.h (condition, size_time_entry, inline_param_summary_t, edge_growth_cache_entry): Remove typedef. * gcc/regrename.h (operand_rr_info, insn_rr_info): Remove typedef. * gcc/gimple-iterator.h (gimple_stmt_iterator_d, gimple_stmt_iterator): Remove typedef and rename to gimple_stmt_iterator. * gcc/basic-block.h (ce_if_block, ce_if_block_t): Remove typedef and rename to ce_if_block. (edge_iterator): Remove typedef. * gcc/ipa-prop.h (ipa_agg_jf_item, ipa_agg_jf_item_t): Remove typedef and rename to ipa_agg_jf_item. (ipa_agg_jump_function_t, ipa_param_descriptor_t, ipa_node_params_t, ipa_parm_adjustment_t): Remove typedef. (ipa_jump_func, ipa_jump_func_t): Remove typedef and rename to ipa_jump_func. (ipa_edge_args, ipa_edge_args_t): Remove typedef and rename to ipa_edge_args. * gcc/gcov-io.h (gcov_bucket_type): Remove typedef. (gcov_working_set_info, gcov_working_set_t): Remove typedef and rename to gcov_working_set_t. * gcc/ira-int.h (minmax_set_iterator, ira_allocno_iterator, ira_object_iterator, ira_allocno_object_iterator, ira_pref_iterator, ira_copy_iterator, ira_object_conflict_iterator): Remove typedef. * gcc/tree-iterator.h (tree_stmt_iterator): Remove typedef. * gcc/rtl.h (addr_diff_vec_flags, mem_attrs, reg_attrs, replace_label_data): Remove typedef. (rtunion_def, rtunion): Remove typedef and rename to rtunion. * gcc/hard-reg-set.h (hard_reg_set_iterator): Remove typedef. * gcc/sel-sched-ir.h (_list_iterator, sel_global_bb_info_def, sel_region_bb_info_def, succ_iterator): Remove typedef. (deps_where_def, deps_where_t): Remove typedef and rename to deps_where_t. * gcc/coretypes.h: Adapt forward declarations. * gcc/tree-scalar-evolution.h: Likewise. * gcc/tree-ssa-address.h: Likewise. * gcc/tree-ssa-operands.h: Likewise. * gcc/function.h: Likewise. * gcc/config/frv/frv-protos.h: Likewise. * gcc/targhooks.h: Likewise. * gcc/basic_block.h: Likewise. * gcc/rtl.def: Adapt documentation. * gcc/doc/tm.texi: Likewise. * gcc/ipa-cp.c: Adapt uses. * gcc/bitmap.c: Likewise. * gcc/dwarf2out.c: Likewise. * gcc/target.def: Likewise. * gcc/ipa-inline-analysis.c: Likewise. * gcc/dwarf2cfi.c: Likewise. * gcc/tree-ssa-loop-ivopts.c: Likewise. * gcc/lto-cgraph.c: Likewise. * gcc/config/frv/frv.c: Likewise. * gcc/ifcvt.c: Likewise. * gcc/ipa-prop.c: Likewise. From-SVN: r205863
Oleg Endo committed -
2013-12-10 Janus Weil <janus@gcc.gnu.org> * gfortran.texi: Modify documentation of kind type parameters. * invoke.texi: Extend documentation of -fdefault-integer-8 and -fdefault-real-8. From-SVN: r205862
Janus Weil committed -
re PR target/56807 (mingw32: Conflict between stack realignment and stack probe destroys function argument in EAX) PR target/56807 * config/i386/i386.c (ix86_expand_prologue): Address saved registers stack-relative, not via frame-pointer. From-SVN: r205860
Kai Tietz committed -
2013-12-10 Yury Gribov <y.gribov@samsung.com> * gcc-dg/tsan/tsan.exp: Added missing call to torture-finish. * g++-dg/tsan/tsan.exp: Likewise. From-SVN: r205858
Yury Gribov committed -
2013-12-10 Richard Biener <rguenther@suse.de> PR middle-end/38474 * tree-ssa-structalias.c (solution_set_expand): Expand into a different possibly cached bitmap and return the result. (set_union_with_increment): Pass in a shared expanded bitmap and adjust. (do_sd_constraint): Likewise. (do_ds_constraint): Likewise. (do_complex_constraint): Likewise. (solve_graph): Manage the shared expanded bitmap. * gcc.dg/ipa/ipa-pta-14.c: Un-XFAIL. From-SVN: r205857
Richard Biener committed -
* tree-vectorizer.h (struct _loop_vec_info): Add scalar_loop field. (LOOP_VINFO_SCALAR_LOOP): Define. (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument. * config/i386/sse.md (maskload<mode>, maskstore<mode>): New expanders. * tree-data-ref.c (get_references_in_stmt): Handle MASK_LOAD and MASK_STORE. * internal-fn.def (LOOP_VECTORIZED, MASK_LOAD, MASK_STORE): New internal fns. * tree-if-conv.c: Include expr.h, optabs.h, tree-ssa-loop-ivopts.h and tree-ssa-address.h. (release_bb_predicate): New function. (free_bb_predicate): Use it. (reset_bb_predicate): Likewise. Don't unallocate bb->aux just to immediately allocate it again. (add_to_predicate_list): Add loop argument. If basic blocks that dominate loop->latch don't insert any predicate. (add_to_dst_predicate_list): Adjust caller. (if_convertible_phi_p): Add any_mask_load_store argument, if true, handle it like flag_tree_loop_if_convert_stores. (insert_gimplified_predicates): Likewise. (ifcvt_can_use_mask_load_store): New function. (if_convertible_gimple_assign_stmt_p): Add any_mask_load_store argument, check if some conditional loads or stores can't be converted into MASK_LOAD or MASK_STORE. (if_convertible_stmt_p): Add any_mask_load_store argument, pass it down to if_convertible_gimple_assign_stmt_p. (predicate_bbs): Don't return bool, only check if the last stmt of a basic block is GIMPLE_COND and handle that. Adjust add_to_predicate_list caller. (if_convertible_loop_p_1): Only call predicate_bbs if flag_tree_loop_if_convert_stores and free_bb_predicate in that case afterwards, check gimple_code of stmts here. Replace is_predicated check with dominance check. Add any_mask_load_store argument, pass it down to if_convertible_stmt_p and if_convertible_phi_p, call if_convertible_phi_p only after all if_convertible_stmt_p calls. (if_convertible_loop_p): Add any_mask_load_store argument, pass it down to if_convertible_loop_p_1. (predicate_mem_writes): Emit MASK_LOAD and/or MASK_STORE calls. (combine_blocks): Add any_mask_load_store argument, pass it down to insert_gimplified_predicates and call predicate_mem_writes if it is set. Call predicate_bbs. (version_loop_for_if_conversion): New function. (tree_if_conversion): Adjust if_convertible_loop_p and combine_blocks calls. Return todo flags instead of bool, call version_loop_for_if_conversion if if-conversion should be just for the vectorized loops and nothing else. (main_tree_if_conversion): Adjust caller. Don't call tree_if_conversion for dont_vectorize loops if if-conversion isn't explicitly enabled. * tree-vect-data-refs.c (vect_check_gather): Handle MASK_LOAD/MASK_STORE. (vect_analyze_data_refs, vect_supportable_dr_alignment): Likewise. * gimple.h (gimple_expr_type): Handle MASK_STORE. * internal-fn.c (expand_LOOP_VECTORIZED, expand_MASK_LOAD, expand_MASK_STORE): New functions. * tree-vectorizer.c: Include tree-cfg.h and gimple-fold.h. (vect_loop_vectorized_call, fold_loop_vectorized_call): New functions. (vectorize_loops): Don't try to vectorize loops with loop->dont_vectorize set. Set LOOP_VINFO_SCALAR_LOOP for if-converted loops, fold LOOP_VECTORIZED internal call depending on if loop has been vectorized or not. * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): New function. (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument. If non-NULL, copy basic blocks from scalar_loop instead of loop, but still to loop's entry or exit edge. (slpeel_tree_peel_loop_to_edge): Add scalar_loop argument, pass it down to slpeel_tree_duplicate_loop_to_edge_cfg. (vect_do_peeling_for_loop_bound, vect_do_peeling_for_loop_alignment): Adjust callers. (vect_loop_versioning): If LOOP_VINFO_SCALAR_LOOP, perform loop versioning from that loop instead of LOOP_VINFO_LOOP, move it to the right place in the CFG afterwards. * tree-vect-loop.c (vect_determine_vectorization_factor): Handle MASK_STORE. * cfgloop.h (struct loop): Add dont_vectorize field. * tree-loop-distribution.c (copy_loop_before): Adjust slpeel_tree_duplicate_loop_to_edge_cfg caller. * optabs.def (maskload_optab, maskstore_optab): New optabs. * passes.def: Add a note that pass_vectorize must immediately follow pass_if_conversion. * tree-predcom.c (split_data_refs_to_components): Give up if DR_STMT is a call. * tree-vect-stmts.c (vect_mark_relevant): Don't crash if lhs is NULL. (exist_non_indexing_operands_for_use_p): Handle MASK_LOAD and MASK_STORE. (vectorizable_mask_load_store): New function. (vectorizable_call): Call it for MASK_LOAD or MASK_STORE. (vect_transform_stmt): Handle MASK_STORE. * tree-ssa-phiopt.c (cond_if_else_store_replacement): Ignore DR_STMT where lhs is NULL. * optabs.h (can_vec_perm_p): Fix up comment typo. (can_vec_mask_load_store_p): New prototype. * optabs.c (can_vec_mask_load_store_p): New function. * gcc.dg/vect/vect-cond-11.c: New test. * gcc.target/i386/vect-cond-1.c: New test. * gcc.target/i386/avx2-gather-5.c: New test. * gcc.target/i386/avx2-gather-6.c: New test. * gcc.dg/vect/vect-mask-loadstore-1.c: New test. * gcc.dg/vect/vect-mask-load-1.c: New test. From-SVN: r205856
Jakub Jelinek committed -
* expr.c (expand_expr_real_1) <normal_inner_ref>: Always return 0 for the extraction of a bit-field of null size. From-SVN: r205855
Eric Botcazou committed -
PR sanitizer/59437 * vtable-verify.c (var_is_used_for_virtual_call_p): Check the return value of gimple_call_fn. Use is_gimple_call/is_gimple_assign instead of gimple_code. testsuite/ * g++.dg/ubsan/pr59437.C: New test. From-SVN: r205854
Marek Polacek committed -
2013-12-10 Max Ostapenko <m.ostapenko@partner.samsung.com> * c-c++-common/tsan/thread_leak2.c: `dg-skip-if' removed. * gcc-dg/tsan/tsan.exp: Run only with '-O0' and '-O2' options. * g++-dg/tsan/tsan.exp: Likewise. From-SVN: r205853
Max Ostapenko committed -
* gcc.dg/vect/pr58508.c: XFAIL for vect_no_align. * gcc.dg/vect/vect-reduc-pattern-3.c: Require vect_int_mult. From-SVN: r205852
Eric Botcazou committed
-