- 23 Nov, 2016 31 commits
-
-
gcc/testsuite/ChangeLog: PR middle-end/78461 * gcc.dg/tree-ssa/builtin-sprintf-4.c: New test. * gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust warning text. gcc/ChangeLog: PR middle-end/78461 * gimple-ssa-sprintf.c (format_string): Correct the maxima and set the minimum number of bytes for an unknown string to zero. From-SVN: r242769
Martin Sebor committed -
re PR c++/71450 (ICE on invalid C++11 code on x86_64-linux-gnu: in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_base, at cp/search.c:203) PR c++/71450 * pt.c (tsubst_copy): Return error_mark_node when mark_used fails, even when complain & tf_error. * g++.dg/cpp0x/pr71450-1.C: New test. * g++.dg/cpp0x/pr71450-2.C: New test. From-SVN: r242767
Jakub Jelinek committed -
PR c++/77739 * cp-gimplify.c (cp_gimplify_tree) <case VEC_INIT_EXPR>: Pass false as handle_invisiref_parm_p to cp_genericize_tree. (struct cp_genericize_data): Add handle_invisiref_parm_p field. (cp_genericize_r): Don't wrap is_invisiref_parm into references if !wtd->handle_invisiref_parm_p. (cp_genericize_tree): Add handle_invisiref_parm_p argument, set wtd.handle_invisiref_parm_p to it. (cp_genericize): Pass true as handle_invisiref_parm_p to cp_genericize_tree. Formatting fix. * g++.dg/cpp1y/pr77739.C: New test. From-SVN: r242766
Jakub Jelinek committed -
From-SVN: r242765
Jonathan Wakely committed -
Merge from HSA branch to trunk 2016-11-23 Martin Jambor <mjambor@suse.cz> Martin Liska <mliska@suse.cz> gcc/ * hsa-builtins.def: New file. * Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency. * builtins.def: Include hsa-builtins.def. (DEF_HSA_BUILTIN): New macro. * dumpfile.h (OPTGROUP_OPENMP): Define. * dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP. * gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER. (gimple_omp_for_grid_phony): Added checking assert. (gimple_omp_for_set_grid_phony): Likewise. (gimple_omp_for_grid_intra_group): New function. (gimple_omp_for_set_grid_intra_group): Likewise. (gimple_omp_for_grid_group_iter): Likewise. (gimple_omp_for_set_grid_group_iter): Likewise. * omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where previosuly only distribute loop was permitted. (lower_lastprivate_clauses): Allow non tcc_comparison predicates. (grid_get_kernel_launch_attributes): Support multiple HSA grid dimensions. (grid_expand_omp_for_loop): Likewise and also support standalone distribute constructs. New parameter INTRA_GROUP, updated both users. (grid_expand_target_grid_body): Support standalone distribute constructs. (pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP. (pass_data_expand_omp_ssa): Likewise. (pass_data_omp_device_lower): Likewsie. (pass_data_lower_omp): Likewise. (pass_data_diagnose_omp_blocks): Likewise. (pass_data_oacc_device_lower): Likewise. (pass_data_omp_target_link): Likewise. (grid_lastprivate_predicate): New function. (lower_omp_for_lastprivate): Call grid_lastprivate_predicate for gridified loops. (lower_omp_for): Support standalone distribute constructs. (grid_prop): New type. (grid_safe_assignment_p): Check for assignments to group_sizes, new parameter GRID. (grid_seq_only_contains_local_assignments): New parameter GRID, pass it to callee. (grid_find_single_omp_among_assignments_1): Likewise, improve missed optimization info messages. (grid_find_single_omp_among_assignments): Likewise. (grid_find_ungridifiable_statement): Do not bail out for SIMDs. (grid_parallel_clauses_gridifiable): New function. (grid_inner_loop_gridifiable_p): Likewise. (grid_dist_follows_simple_pattern): Likewise. (grid_gfor_follows_tiling_pattern): Likewise. (grid_call_permissible_in_distribute_p): Likewise. (grid_handle_call_in_distribute): Likewise. (grid_dist_follows_tiling_pattern): Likewise. (grid_target_follows_gridifiable_pattern): Support standalone distribute constructs. (grid_var_segment): New enum. (grid_mark_variable_segment): New function. (grid_copy_leading_local_assignments): Call grid_mark_variable_segment if a new argument says so. (grid_process_grid_body): New function. (grid_eliminate_combined_simd_part): Likewise. (grid_mark_tiling_loops): Likewise. (grid_mark_tiling_parallels_and_loops): Likewise. (grid_process_kernel_body_copy): Support standalone distribute constructs. (grid_attempt_target_gridification): New grid variable holding overall gridification state. Support standalone distribute constructs and collapse clauses. * doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP. * hsa.h (hsa_bb): Add method method append_phi. (hsa_insn_br): Renamed to hsa_insn_cbr, renamed all occurences in all files too. (hsa_insn_br): New class, now the ancestor of hsa_incn_cbr. (is_a_helper <hsa_insn_br *>::test): New function. (is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional branch instructions. (hsa_insn_signal): Make a direct descendant of hsa_insn_basic. Add memorder constructor parameter and m_memory_order and m_signalop member variables. (hsa_insn_queue): Changed constructor parameters to common form. Added m_segment and m_memory_order member variables. (hsa_summary_t): Add private member function process_gpu_implementation_attributes. (hsa_function_summary): Rename m_binded_function to m_bound_function. (hsa_insn_basic_p): Remove typedef. (hsa_op_with_type): Change hsa_insn_basic_p into plain pointers. (hsa_op_reg_p): Remove typedef. (hsa_function_representation): Change hsa_op_reg_p into plain pointers. (hsa_insn_phi): Removed new and delete operators. (hsa_insn_br): Likewise. (hsa_insn_cbr): Likewise. (hsa_insn_sbr): Likewise. (hsa_insn_cmp): Likewise. (hsa_insn_mem): Likewise. (hsa_insn_atomic): Likewise. (hsa_insn_signal): Likewise. (hsa_insn_seg): Likewise. (hsa_insn_call): Likewise. (hsa_insn_arg_block): Likewise. (hsa_insn_comment): Likewise. (hsa_insn_srctype): Likewise. (hsa_insn_packed): Likewise. (hsa_insn_cvt): Likewise. (hsa_insn_alloca): Likewise. * hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br. (process_gpu_implementation_attributes): New function. (link_functions): Move some functionality into it. Adjust after renaming m_binded_functions to m_bound_functions. (hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP to the list of instructions with no output registers. (get_in_type): Return this if it is a register of matching size. (hsa_get_declaration_name): Moved to... * hsa-gen.c (hsa_get_declaration_name): ...here. Allocate temporary string on an obstack instead from ggc. (query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut down to two overloads. (hsa_allocp_operand_address): Removed. (hsa_allocp_operand_immed): Likewise. (hsa_allocp_operand_reg): Likewise. (hsa_allocp_operand_code_list): Likewise. (hsa_allocp_operand_operand_list): Likewise. (hsa_allocp_inst_basic): Likewise. (hsa_allocp_inst_phi): Likewise. (hsa_allocp_inst_mem): Likewise. (hsa_allocp_inst_atomic): Likewise. (hsa_allocp_inst_signal): Likewise. (hsa_allocp_inst_seg): Likewise. (hsa_allocp_inst_cmp): Likewise. (hsa_allocp_inst_br): Likewise. (hsa_allocp_inst_sbr): Likewise. (hsa_allocp_inst_call): Likewise. (hsa_allocp_inst_arg_block): Likewise. (hsa_allocp_inst_comment): Likewise. (hsa_allocp_inst_queue): Likewise. (hsa_allocp_inst_srctype): Likewise. (hsa_allocp_inst_packed): Likewise. (hsa_allocp_inst_cvt): Likewise. (hsa_allocp_inst_alloca): Likewise. (hsa_allocp_bb): Likewise. (hsa_obstack): New. (hsa_init_data_for_cfun): Initialize obstack. (hsa_deinit_data_for_cfun): Release memory of the obstack. (hsa_op_immed::operator new): Use obstack instead of object_allocator. (hsa_op_reg::operator new): Likewise. (hsa_op_address::operator new): Likewise. (hsa_op_code_list::operator new): Likewise. (hsa_op_operand_list::operator new): Likewise. (hsa_insn_basic::operator new): Likewise. (hsa_insn_phi::operator new): Likewise. (hsa_insn_br::operator new): Likewise. (hsa_insn_sbr::operator new): Likewise. (hsa_insn_cmp::operator new): Likewise. (hsa_insn_mem::operator new): Likewise. (hsa_insn_atomic::operator new): Likewise. (hsa_insn_signal::operator new): Likewise. (hsa_insn_seg::operator new): Likewise. (hsa_insn_call::operator new): Likewise. (hsa_insn_arg_block::operator new): Likewise. (hsa_insn_comment::operator new): Likewise. (hsa_insn_srctype::operator new): Likewise. (hsa_insn_packed::operator new): Likewise. (hsa_insn_cvt::operator new): Likewise. (hsa_insn_alloca::operator new): Likewise. (hsa_init_new_bb): Likewise. (hsa_bb::append_phi): New function. (gen_hsa_phi_from_gimple_phi): Use it. (get_symbol_for_decl): Fix dinstinguishing between global and local functions. Put local variables into a segment according to their attribute or static flag, if there is one. (hsa_insn_br::hsa_insn_br): New. (hsa_insn_br::operator new): Likewise. (hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor. (query_hsa_grid_nodim): New function. (multiply_grid_dim_characteristics): Likewise. (gen_get_num_threads): Likewise. (gen_get_num_teams): Reimplemented. (gen_get_team_num): Likewise. (gen_hsa_insns_for_known_library_call): Updated calls to the above helper functions. (get_memory_order_name): Removed. (get_memory_order): Likewise. (hsa_memorder_from_tree): New function. (gen_hsa_ternary_atomic_for_builtin): Renamed to gen_hsa_atomic_for_builtin, can also create signals. (gen_hsa_insns_for_call): Handle many new builtins. Adjust to use hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin. (hsa_insn_atomic): Fix function comment. (hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to ancestor constructor and initialization of new member variables. (hsa_insn_queue::hsa_insn_queue): Added initialization of new member variables. (hsa_get_host_function): Handle functions with no bound CPU implementation. Fix binded to bound. (get_brig_function_name): Likewise. (HSA_SORRY_ATV): Remove semicolon after macro. (HSA_SORRY_AT): Likewise. (omp_simple_builtin::generate): Add missing semicolons. (hsa_insn_phi::operator new): Removed. (hsa_insn_br::operator new): Likewise. (hsa_insn_cbr::operator new): Likewise. (hsa_insn_sbr::operator new): Likewise. (hsa_insn_cmp::operator new): Likewise. (hsa_insn_mem::operator new): Likewise. (hsa_insn_atomic::operator new): Likewise. (hsa_insn_signal::operator new): Likewise. (hsa_insn_seg::operator new): Likewise. (hsa_insn_call::operator new): Likewise. (hsa_insn_arg_block::operator new): Likewise. (hsa_insn_comment::operator new): Likewise. (hsa_insn_srctype::operator new): Likewise. (hsa_insn_packed::operator new): Likewise. (hsa_insn_cvt::operator new): Likewise. (hsa_insn_alloca::operator new): Likewise. (get_symbol_for_decl): Accept CONST_DECLs, put them to readonly segment. (gen_hsa_addr): Also process CONST_DECLs. (gen_hsa_addr_insns): Process CONST_DECLs by creating private copies. (gen_hsa_unary_operation): Make sure the function does not use bittype source type for firstbit and lastbit operations. (gen_hsa_popcount_to_dest): Make sure the function uses a bittype source type. * hsa-brig.c (emit_insn_operands): Cope with zero operands in an instruction. (emit_branch_insn): Renamed to emit_cond_branch_insn. Emit the width stored in the class. (emit_generic_branch_insn): New function. (emit_insn): Call emit_generic_branch_insn. (emit_signal_insn): Remove obsolete comment. Update member variable name, pick a type according to profile. (emit_alloca_insn): Remove obsolete comment. (emit_atomic_insn): Likewise. (emit_queue_insn): Get segment and memory order from the IR object. (hsa_brig_section): Make allocate_new_chunk, chunks and cur_chunk provate, add a default NULL parameter to add method. (hsa_brig_section::add): Added a new parameter, store pointer to output data there if it is non-NULL. (emit_function_directives): Use this new parameter instead of calculating the pointer itself, fix function comment. (hsa_brig_emit_function): Add forgotten endian conversion. (hsa_output_kernels): Remove unnecessary building of kernel_dependencies_vector_type. (emit_immediate_operand): Declare. (emit_directive_variable): Also emit initializers of CONST_DECLs. (gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT. (verify_function_arguments): Properly detect variadic arguments. * hsa-dump.c (hsa_width_specifier_name): New function. (dump_hsa_insn_1): Dump generic branch instructions, update signal member variable name. Special dumping for queue objects. * ipa-hsa.c (process_hsa_functions): Adjust after renaming m_binded_functions to m_bound_functions. Copy externally visible flag to the node. (ipa_hsa_write_summary): Likewise. (ipa_hsa_read_section): Likewise. gcc/fortran/ * f95-lang.c (DEF_HSA_BUILTIN): New macro. gcc/testsuite/ * c-c++-common/gomp/gridify-1.c: Update scan string. * gfortran.dg/gomp/gridify-1.f90: Likewise. * c-c++-common/gomp/gridify-2.c: New test. * c-c++-common/gomp/gridify-3.c: Likewise. libgomp/ * testsuite/libgomp.hsa.c/bits-insns.c: New test. * testsuite/libgomp.hsa.c/tiling-1.c: Likewise. * testsuite/libgomp.hsa.c/tiling-2.c: Likewise. Co-Authored-By: Martin Liska <mliska@suse.cz> From-SVN: r242761
Martin Jambor committed -
2016-11-23 Felix Morgner <felix.morgner@gmail.com> Jonathan Wakely <jwakely@redhat.com> PR libstdc++/78494 * include/experimental/propagate_const (propagate_const::operator=): Add missing return statements. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Adjust dg-error line numbers. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r242760
Felix Morgner committed -
2016-11-23 Richard Biener <rguenther@suse.de> PR tree-optimization/78396 * tree-vectorizer.c (vectorize_loops): If an innermost loop didn't vectorize try vectorizing an if-converted body using BB vectorization. * gcc.dg/vect/bb-slp-cond-1.c: Adjust. From-SVN: r242759
Richard Biener committed -
This isn't intended to change the behaviour, just rewrite the existing logic in a different (and hopefully clearer) way. The new form -- particularly the part based on the "block" concept -- is easier to convert to polynomial sizes. gcc/ 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> * rtlanal.c (subreg_get_info): Use more local variables. Remark that for HARD_REGNO_NREGS_HAS_PADDING, each scalar unit occupies at least one register. Assume that full hard registers have consistent endianness. Share previously-duplicated if block. Rework the main handling so that it operates on independently- addressable YMODE-sized blocks. Use subreg_size_lowpart_offset to check lowpart offsets, without trying to find an equivalent integer mode first. Handle WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN as a final register-endianness correction. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r242758
Richard Sandiford committed -
r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477). It all has the same root cause: that patch makes combine convert every lowpart subreg of a logical shift right to a zero_extract. This cannot work at all if it is not a constant shift, and it has to be a bit more careful exactly which bits it extracts. PR target/77881 PR bootstrap/78390 PR target/78438 PR bootstrap/78477 * combine.c (make_compound_operation_int): Do not convert a subreg of a non-constant logical shift right to a zero_extract. Handle the case where some zero bits have been shifted into the range covered by that subreg. From-SVN: r242757
Segher Boessenkool committed -
Provide versions of subreg_lowpart_offset and subreg_highpart_offset that work on mode sizes rather than modes. Also provide a routine that converts an lsb position to a subreg offset. The intent (in combination with later patches) is to move the handling of the BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN case into just two places, so that for other combinations we don't have to split offsets into words and subwords. gcc/ 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> * rtl.h (subreg_size_offset_from_lsb): Declare. (subreg_offset_from_lsb): New function. (subreg_size_lowpart_offset): Declare. (subreg_lowpart_offset): Turn into an inline function. (subreg_size_highpart_offset): Declare. (subreg_highpart_offset): Turn into an inline function. * emit-rtl.c (subreg_size_lowpart_offset): New function. (subreg_size_highpart_offset): Likewise * rtlanal.c (subreg_size_offset_from_lsb): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r242755
Richard Sandiford committed -
re PR tree-optimization/78482 (wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu) 2016-11-23 Richard Biener <rguenther@suse.de> PR tree-optimization/78482 * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h. (remove_forwarder_block_with_phi): When merging with a loop header creates a new latch reset number of iteration information of the loop. * gcc.dg/torture/pr78482.c: New testcase. From-SVN: r242754
Richard Biener committed -
* config/sparc/sparc.md (*ashrsi3_extend): Rename to... (*ashrsi3_extend0): ...this. Accept constant integers. (*ashrsi3_extend2): Rename to... (*ashrsi3_extend1): ...this. (*ashrsi3_extend2): New pattern. (*lshrsi3_extend1): Accept constant integers. (*lshrsi3_extend2): Fix condition on operand 2. From-SVN: r242753
Eric Botcazou committed -
* config/i386/i386.c: Initialize function pointer to NULL. From-SVN: r242752
Martin Liska committed -
* fold-const.c (fold_cond_expr_with_comparison): Move simplification for A == C1 ? A : C2 to below. * match.pd: Move from above to here: (cond (eq (convert1? x) c1) (convert2? x) c2) -> (cond (eq x c1) c1 c2). From-SVN: r242751
Bin Cheng committed -
fold-const.c (fold_cond_expr_with_comparison): Move simplification for A cmp C1 ? A : C2 to below, also simplify remaining code. * fold-const.c (fold_cond_expr_with_comparison): Move simplification for A cmp C1 ? A : C2 to below, also simplify remaining code. * match.pd: Move and extend simplification from above to here: (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)). * tree-if-conv.c (ifcvt_follow_ssa_use_edges): New func. (predicate_scalar_phi): Call fold_stmt using the new valueize func. gcc/testsuite * gcc.dg/fold-cond_expr-1.c: New test. * gcc.dg/fold-condcmpconv-1.c: New test. * gcc.dg/fold-condcmpconv-2.c: New test. From-SVN: r242750
Bin Cheng committed -
2016-11-23 Martin Liska <mliska@suse.cz> Martin Jambor <mjambor@suse.cz> gcc/ * doc/install.texi: Remove entry about --with-hsa-kmt-lib. libgomp/ * plugin/hsa.h: New file. * plugin/hsa_ext_finalize.h: New file. * plugin/configfrag.ac: Remove hsa-kmt-lib test. Added checks for header file unistd.h, and functions secure_getenv, __secure_getenv, getuid, geteuid, getgid and getegid. * plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added -D_GNU_SOURCE. * plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h. Handle various cases of secure_getenv presence, add an implementation when we can test effective UID and GID. (struct hsa_runtime_fn_info): New structure. (hsa_runtime_fn_info hsa_fns): New variable. (hsa_runtime_lib): Likewise. (support_cpu_devices): Likewise. (init_enviroment_variables): Load newly introduced ENV variables. (hsa_warn): Call hsa run-time functions via hsa_fns structure. (hsa_fatal): Likewise. (DLSYM_FN): New macro. (init_hsa_runtime_functions): New function. (suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns structure. Depending on environment, also allow CPU devices. (init_hsa_context): Call hsa run-time functions via hsa_fns structure. (get_kernarg_memory_region): Likewise. (GOMP_OFFLOAD_init_device): Likewise. (destroy_hsa_program): Likewise. (init_basic_kernel_info): New function. (GOMP_OFFLOAD_load_image): Use it. (create_and_finalize_hsa_program): Call hsa run-time functions via hsa_fns structure. (create_single_kernel_dispatch): Likewise. (release_kernel_dispatch): Likewise. (init_single_kernel): Likewise. (parse_target_attributes): Allow up multiple HSA grid dimensions. (get_group_size): New function. (run_kernel): Likewise. (GOMP_OFFLOAD_run): Outline most functionality to run_kernel. (GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns structure. * testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support. * testsuite/libgomp-test-support.exp.in: Likewise. * Makefile.in: Regenerated. * aclocal.m4: Likewise. * config.h.in: Likewise. * configure: Likewise. * testsuite/Makefile.in: Likewise. Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r242749
Martin Liska committed -
PR target/78213 * opts.c (finish_options): Set -fsyntax-only if running self tests. From-SVN: r242748
Aldy Hernandez committed -
2016-11-23 Richard Biener <rguenther@suse.de> PR middle-end/71762 * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X, (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove. * gcc.dg/torture/pr71762-1.c: New testcase. * gcc.dg/torture/pr71762-2.c: Likewise. * gcc.dg/torture/pr71762-3.c: Likewise. * gcc.dg/tree-ssa/forwprop-28.c: XFAIL. From-SVN: r242747
Richard Biener committed -
re PR lto/78472 (warning: type of 's' does not match original declaration from zero length bitfield in C vs C++) 2016-11-23 Richard Biener <rguenther@suse.de> PR lto/78472 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized fields. lto/ * lto.c (hash_canonical_type): Ignore zero-sized fields. * g++.dg/lto/pr78472_0.c: New testcase. * g++.dg/lto/pr78472_1.C: Likewise. From-SVN: r242746
Richard Biener committed -
2016-11-23 Richard Biener <rguenther@suse.de> Prathamesh Kulkarni <prathamesh.kulkarni@linaro.rog> PR tree-optimization/78154 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Return true if function returns it's argument and the argument is nonnull. * builtin-attrs.def: Define ATTR_RETURNS_NONNULL, ATT_RETNONNULL_NOTHROW_LEAF. * builtins.def (BUILT_IN_MEMPCPY): Change attribute to ATTR_RETNONNULL_NOTHROW_LEAF. (BUILT_IN_STPCPY): Likewise. (BUILT_IN_STPNCPY): Likewise. (BUILT_IN_MEMPCPY_CHK): Likewise. (BUILT_IN_STPCPY_CHK): Likewise. (BUILT_IN_STPNCPY_CHK): Likewise. (BUILT_IN_STRCAT): Change attribute to ATTR_RET1_NOTHROW_NONNULL_LEAF. (BUILT_IN_STRNCAT): Likewise. (BUILT_IN_STRNCPY): Likewise. (BUILT_IN_MEMSET_CHK): Likewise. (BUILT_IN_STRCAT_CHK): Likewise. (BUILT_IN_STRCPY_CHK): Likewise. (BUILT_IN_STRNCAT_CHK): Likewise. (BUILT_IN_STRNCPY_CHK): Likewise. testsuite/ * gcc.dg/tree-ssa/pr78154.c: New test. Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> From-SVN: r242745
Richard Biener committed -
2016-11-23 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> gcc * fold-const.c (tree_expr_nonzero_p) : Make non-static. * fold-const.h (tree_expr_nonzero_p) : Declare. * match.pd (cmp (mult:c @0 @1) (mult:c @2 @1) : New Pattern. gcc/testsuite * gcc.dg/pr31096.c: New testcase. * gcc.dg/pr31096-1.c: New testcase. From-SVN: r242744
Naveen H.S committed -
gcc: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * system.h (HAVE_DESIGNATED_INITIALIZERS, HAVE_DESIGNATED_UNION_INITIALIZERS): Do not use "defined" in macros. * doc/cpp.texi (Defined): Mention -Wexpansion-to-defined. * doc/cppopts.texi (Invocation): Document -Wexpansion-to-defined. * doc/invoke.texi (Warning Options): Document -Wexpansion-to-defined. gcc/c-family: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * c.opt (Wexpansion-to-defined): New. gcc/testsuite: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * gcc.dg/cpp/defined.c: Mark newly introduced warnings and adjust for warning->pedwarn change. * gcc.dg/cpp/defined-syshdr.c, gcc.dg/cpp/defined-Wexpansion-to-defined.c, gcc.dg/cpp/defined-Wextra-Wno-expansion-to-defined.c, gcc.dg/cpp/defined-Wextra.c, gcc.dg/cpp/defined-Wno-expansion-to-defined.c: New testcases. libcpp: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * include/cpplib.h (struct cpp_options): Add new member warn_expansion_to_defined. (CPP_W_EXPANSION_TO_DEFINED): New enum member. * expr.c (parse_defined): Warn for all uses of "defined" in macros, and tie warning to CPP_W_EXPANSION_TO_DEFINED. Make it a pedwarning instead of a warning. * system.h (HAVE_DESIGNATED_INITIALIZERS): Do not use "defined" in macros. From-SVN: r242743
Paolo Bonzini committed -
The test fails for avr because fn1 does not get inlined into fn2. Inlining occurs for x86_64 because fn1's computed size equals call_stmt_size. For the avr, 32 bit memory moves are more expensive, and b[3] = p10[a] results in a bigger size for fn1, preventing the inlining. Add -finline-small-functions to force early inliner to inline fn1. gcc/testsuite/ 2016-11-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> * gcc.dg/uninit-19.c: Add -finline-small-functions for avr. From-SVN: r242742
Senthil Kumar Selvaraj committed -
gcc/ PR target/60300 * config/avr/constraints.md (Csp): Widen range to [-11..6]. * config/avr/avr.c (avr_prologue_setup_frame): Limit number of RCALLs in prologue to 3. From-SVN: r242741
Georg-Johann Lay committed -
re PR target/78451 (FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps') PR target/78451 * c-pragma.c (handle_pragma_target): Don't replace current_target_pragma, but chainon the new args to the current one. * gcc.target/i386/pr78451.c: New test. * gcc.target/i386/pr69255-1.c: Use #pragma GCC push_options and #pragma GCC pop_options around the first #pragma GCC target. * gcc.target/i386/pr69255-2.c: Likewise. * gcc.target/i386/pr69255-3.c: Likewise. From-SVN: r242740
Jakub Jelinek committed -
* config/aarch64/aarch64-protos.h (aarch64_and_split_imm1, aarch64_and_split_imm2) (aarch64_and_bitmask_imm): New prototypes * config/aarch64/aarch64.c (aarch64_and_split_imm1): New overloaded function to create bit mask covering the lowest to highest bits set. (aarch64_and_split_imm2): New overloaded functions to create bit mask of zeros between first and last bit set. (aarch64_and_bitmask_imm): New function to determine if a integer is a valid two instruction "and" operation. * config/aarch64/aarch64.md:(and<mode>3): New define_insn and _split allowing wider range of constants with "and" operations. * (ior<mode>3, xor<mode>3): Use new LOGICAL2 iterator to prevent "and" operator from matching restricted constant range used for ior and xor operators. * config/aarch64/constraints.md (UsO constraint): New SImode constraint for constants in "and" operantions. (UsP constraint): New DImode constraint for constants in "and" operations. * config/aarch64/iterators.md (lconst2): New mode iterator. (LOGICAL2): New code iterator. * config/aarch64/predicates.md (aarch64_logical_and_immediate): New predicate (aarch64_logical_and_operand): New predicate allowing extended constants for "and" operations. * testsuite/gcc.target/aarch64/and_const.c: New test to verify additional constants are recognized and fewer instructions generated. * testsuite/gcc.target/aarch64/and_const2.c: New test to verify additional constants are recognized and fewer instructions generated. From-SVN: r242739
Michael Collison committed -
* gcc.misc-tests/godump-1.c: Update expected output for recent changes. From-SVN: r242738
Ian Lance Taylor committed -
* config/tilegx/tilegx.md (trap): New pattern. * config/tilepro/tilepro.md (trap): Likewise. From-SVN: r242735
Walter Lee committed -
TILE-Gx: fixes the zero_extract/sign_extract patterns so that they properly handle the case when pos + size > number of bits in a word. * config/tilegx/tilegx.md (*zero_extract): Use define_insn_and_split instead of define_insn; Handle pos + size > 64. (*sign_extract): Likewise. From-SVN: r242734
Walter Lee committed -
PR tree-optimization/78455 * tree-ssa-uninit.c (can_chain_union_be_invalidated_p): Fix typo. * gcc.dg/uninit-23.c: New. From-SVN: r242733
Marek Polacek committed -
From-SVN: r242732
GCC Administrator committed
-
- 22 Nov, 2016 9 commits
-
-
2016-11-22 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78479 * gfortran.dg/char_component_initializer_3.f90: Add PR number in a comment. From-SVN: r242729
Steven G. Kargl committed -
PR go/78431 PR go/78432 * godump.c (go_format_type): Always pass alignment as 1 when calling go_append_padding at end of struct/union. From-SVN: r242728
Ian Lance Taylor committed -
Relocate the code that encodes/sanitizes identifiers to make them assembler-friendly, moving it from the back end to the front end; the decisions about when to encode an identifier and the calls to the encoding helpers now take place entirely in gofrontend. Reviewed-on: https://go-review.googlesource.com/33424 * go-gcc.cc (char_needs_encoding): Remove. (needs_encoding, fetch_utf8_char, encode_id): Remove. (Gcc_backend::global_variable): Add asm_name parameter. Don't compute asm_name here. (Gcc_backend::implicit_variable): Likewise. (Gcc_backend::implicit_variable_reference): Likewise. (Gcc_backend::immutable_struct): Likewise. (Gcc_backend::immutable_struct_reference): Likewise. * Make-lang.in (GO_OBJS): Add go/go-encode-id.o. From-SVN: r242726
Than McIntosh committed -
2016-11-22 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78479 * expr.c (gfc_apply_init): Allocate a charlen if needed. 2016-11-22 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78479 * gfortran.dg/char_component_initializer_3.f90: New test. From-SVN: r242725
Steven G. Kargl committed -
PR go/77910 cmd/go: don't check standard packages when using gccgo This copies https://golang.org/cl/33295 to libgo. This fixes GCC PR 77910. Reviewed-on: https://go-review.googlesource.com/33471 From-SVN: r242724
Ian Lance Taylor committed -
re PR target/78451 (FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps') PR target/78451 * config/i386/avx512bwintrin.h (_mm512_setzero_qi, _mm512_setzero_hi): Removed. (_mm512_maskz_mov_epi16, _mm512_maskz_loadu_epi16, _mm512_maskz_mov_epi8, _mm512_maskz_loadu_epi8, _mm512_maskz_broadcastb_epi8, _mm512_maskz_set1_epi8, _mm512_maskz_broadcastw_epi16, _mm512_maskz_set1_epi16, _mm512_mulhrs_epi16, _mm512_maskz_mulhrs_epi16, _mm512_mulhi_epi16, _mm512_maskz_mulhi_epi16, _mm512_mulhi_epu16, _mm512_maskz_mulhi_epu16, _mm512_maskz_mullo_epi16, _mm512_cvtepi8_epi16, _mm512_maskz_cvtepi8_epi16, _mm512_cvtepu8_epi16, _mm512_maskz_cvtepu8_epi16, _mm512_permutexvar_epi16, _mm512_maskz_permutexvar_epi16, _mm512_avg_epu8, _mm512_maskz_avg_epu8, _mm512_maskz_add_epi8, _mm512_maskz_sub_epi8, _mm512_avg_epu16, _mm512_maskz_avg_epu16, _mm512_subs_epi8, _mm512_maskz_subs_epi8, _mm512_subs_epu8, _mm512_maskz_subs_epu8, _mm512_adds_epi8, _mm512_maskz_adds_epi8, _mm512_adds_epu8, _mm512_maskz_adds_epu8, _mm512_maskz_sub_epi16, _mm512_subs_epi16, _mm512_maskz_subs_epi16, _mm512_subs_epu16, _mm512_maskz_subs_epu16, _mm512_maskz_add_epi16, _mm512_adds_epi16, _mm512_maskz_adds_epi16, _mm512_adds_epu16, _mm512_maskz_adds_epu16, _mm512_srl_epi16, _mm512_maskz_srl_epi16, _mm512_packs_epi16, _mm512_sll_epi16, _mm512_maskz_sll_epi16, _mm512_maddubs_epi16, _mm512_maskz_maddubs_epi16, _mm512_unpackhi_epi8, _mm512_maskz_unpackhi_epi8, _mm512_unpackhi_epi16, _mm512_maskz_unpackhi_epi16, _mm512_unpacklo_epi8, _mm512_maskz_unpacklo_epi8, _mm512_unpacklo_epi16, _mm512_maskz_unpacklo_epi16, _mm512_shuffle_epi8, _mm512_maskz_shuffle_epi8, _mm512_min_epu16, _mm512_maskz_min_epu16, _mm512_min_epi16, _mm512_maskz_min_epi16, _mm512_max_epu8, _mm512_maskz_max_epu8, _mm512_max_epi8, _mm512_maskz_max_epi8, _mm512_min_epu8, _mm512_maskz_min_epu8, _mm512_min_epi8, _mm512_maskz_min_epi8, _mm512_max_epi16, _mm512_maskz_max_epi16, _mm512_max_epu16, _mm512_maskz_max_epu16, _mm512_sra_epi16, _mm512_maskz_sra_epi16, _mm512_srav_epi16, _mm512_maskz_srav_epi16, _mm512_srlv_epi16, _mm512_maskz_srlv_epi16, _mm512_sllv_epi16, _mm512_maskz_sllv_epi16, _mm512_maskz_packs_epi16, _mm512_packus_epi16, _mm512_maskz_packus_epi16, _mm512_abs_epi8, _mm512_maskz_abs_epi8, _mm512_abs_epi16, _mm512_maskz_abs_epi16, _mm512_dbsad_epu8, _mm512_maskz_dbsad_epu8, _mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16, _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16, _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16, _mm512_maskz_srai_epi16, _mm512_packs_epi32, _mm512_maskz_packs_epi32, _mm512_packus_epi32, _mm512_maskz_packus_epi32): Use _mm512_setzero_si512 instead of _mm512_setzero_qi or _mm512_setzero_hi. (_mm512_maskz_alignr_epi8, _mm512_dbsad_epu8, _mm512_maskz_dbsad_epu8): Formatting fixes. (_mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16, _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16, _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16, _mm512_maskz_srai_epi16): Use _mm512_setzero_si512 instead of _mm512_setzero_qi or _mm512_setzero_hi. From-SVN: r242723
Jakub Jelinek committed -
* array-notation-common.c (cilkplus_extract_an_trplets): Fix indentation and formatting. From-SVN: r242721
Nathan Sidwell committed -
gcc/ * gcc-ar.c (main): Fix indentation. * gcov-io.c (gcov_write_summary): Remove extraneous {...} * ggc-page.c (move_ptes_to_front): Fix formatting. * hsa-dump.c (dump_has_cfun): Fix indentation. * sel-sched-ir.h: Remove trailing blank lines. gcc/c-family/ * array-notation-common.c (cilkplus_extrat_an_triplets): Fix indentation. From-SVN: r242719
Nathan Sidwell committed -
The actual stack unwind code is still in C, but the rest of the code, notably all the memory allocation, is now in Go. The names are changed to the names used in the Go 1.7 runtime, but the code is necessarily somewhat different. The __go_makefunc_can_recover function is dropped, as the uses of it were removed in https://golang.org/cl/198770044. Reviewed-on: https://go-review.googlesource.com/33414 From-SVN: r242715
Ian Lance Taylor committed
-