155206 Commits

Author SHA1 Message Date
Trevor Saunders
7488a79fa3 use C++ for {make,build}_vector_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (make_vector_stat): Remove _stat from name.
	(build_vector_stat): Likewise.
	* tree.h (make_vector_stat): Remove macro.
	(build_vector_stat): Likewise.

From-SVN: r250705
2017-07-29 01:39:03 +00:00
Trevor Saunders
b161404990 remove unused build_var_debug_value prototype
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.h (build_var_debug_value): Remove prototype.

From-SVN: r250704
2017-07-29 01:38:57 +00:00
Trevor Saunders
126d0cd4ad use c++ for tree_cons_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (tree_cons_stat): Remove _stat from name.
	* tree.h (tree_cons): Remove macro.

From-SVN: r250703
2017-07-29 01:38:51 +00:00
Trevor Saunders
7aa717c1d1 use c++ instead of build_vl_exp_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (build_vl_exp_stat): Remove _stat from name.
	* tree.h (build_vl_exp): Remove macro.

From-SVN: r250702
2017-07-29 01:38:43 +00:00
Trevor Saunders
31b8d81fa6 use c++ instead of build_decl_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (build_decl_stat): Remove _stat from name.
	* tree.h (build_decl): Remove macro.

From-SVN: r250701
2017-07-29 01:38:37 +00:00
Trevor Saunders
9e2d7f4604 replace gimple_alloc_stat with c++
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gimple.c (gimple_build_with_ops_stat): Adjust.
	(gimple_alloc_stat): Remove _stat from name.
	* gimple.h (gimple_alloc): Remove macro.

From-SVN: r250700
2017-07-29 01:38:31 +00:00
Trevor Saunders
9f896a4520 use c++ instead of {make,grow}_tree_vec_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (make_tree_vec_stat): Remove _stat from name.
	(grow_tree_vec_stat): Likewise.
	* tree.h (make_tree_vec_stat): Adjust prototype.
	(grow_tree_vec_stat): Likewise.
	(make_tree_vec): Remove macro.
	(grow_tree_vec): Likewise.

From-SVN: r250699
2017-07-29 01:38:25 +00:00
Trevor Saunders
6db60760b3 use c++ instead of buildN_stat{,_loc}
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* fold-const.c (fold_build1_stat_loc): Adjust.
	(fold_build2_stat_loc): Likewise.
	(fold_build3_stat_loc): Likewise.
	* tree.c (build0_stat): Remove _stat from name.
	(build1_stat): Likewise.
	(build2_stat): Likewise.
	(build3_stat): Likewise.
	(build4_stat): Likewise.
	(build5_stat): Likewise.
	* tree.h (build1_loc): Remove macro, and rename _stat function
	to this.
	(build2_loc): Likewise.
	(build3_loc): Likewise.
	(build4_loc): Likewise.
	(build5_loc): Likewise.

From-SVN: r250698
2017-07-29 01:38:19 +00:00
Trevor Saunders
4bd2de4b45 use c++ for make_int_cst_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (make_int_cst_stat): Remove _stat from name.
	* tree.h (make_int_cst_stat): Adjust prototype.
	(make_int_cst): Remove macro.

From-SVN: r250697
2017-07-29 01:38:12 +00:00
Trevor Saunders
86cbccd7d5 use cxx instead of make_tree_binfo_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (make_tre_binfo_stat): Remove _stat from name.
	* tree.h (make_tree_binfo_stat): Adjust prototype.
	(make_tree_binfo): Remove.

From-SVN: r250696
2017-07-29 01:38:06 +00:00
Trevor Saunders
39d970d7d2 use c++ instead of _stat for copy_node_stat
gcc/cp/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* lex.c (copy_decl): Adjust.
	(copy_type): Likewise.

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (copy_node_stat): Rename to copy_node.
	(build_distinct_type_copy): Adjust.
	* tree.h (copy_node_stat): Adjust prototype.
	(copy_node): Remove macro.

From-SVN: r250695
2017-07-29 01:38:00 +00:00
Trevor Saunders
f719e2f1d7 use c++ instead of make_node_stat
gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree.c (make_node_stat): rename to make_node.
	(build_tree_list_stat): Adjust.
	(build0_stat): Likewise.
	(build2_stat): Likewise.
	(build3_stat): Likewise.
	(build4_stat): Likewise.
	(build5_stat): Likewise.
	(build_decl_stat): Likewise.
	* tree.h (make_node_stat): Adjust prototype.
	(make_node): remove macro.

From-SVN: r250694
2017-07-29 01:37:54 +00:00
GCC Administrator
57a93c6a66 Daily bump.
From-SVN: r250693
2017-07-29 00:16:41 +00:00
Peter Bergner
782a7850ed ppc-auxv.h (PPC_FEATURE2_DARN): New define.
gcc/
	* config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
	(PPC_FEATURE2_SCV): Likewise.
	* config/rs6000/rs6000.c (cpu_supports_info): Use them.

gcc/testsuite/
	* gcc.target/powerpc/cpu-builtin-1.c (darn, scv): Add tests.

From-SVN: r250687
2017-07-28 15:10:45 -05:00
Ian Lance Taylor
02c7e7eb5e compiler: add backend type conversion
Tweak Interface_field_reference_expression::do_get_backend to apply an
    additional backend type conversion to the returned result.  This is
    needed due to the fact that the top level type of the expression is a
    function descriptor, however the value being manufactured is a pointer
    to <thunk-descriptor, value> struct.
    
    Reviewed-on: https://go-review.googlesource.com/51712

From-SVN: r250686
2017-07-28 19:58:01 +00:00
Tony Reix
5a427c633b configure.ac (target-libffi): Don't disable for AIX.
2017-07-28  Tony Reix  <tony.reix@atos.net>

        * configure.ac (target-libffi): Don't disable for AIX.
        (go): Don't add to unsupported_languages on AIX.
        (target-libgo): Don't disable for AIX.
        * configure: Regenerate.

From-SVN: r250685
2017-07-28 14:56:28 -04:00
Tony Reix
afce7debdc * xcoff.c: Don't leak a file descriptor if an archive is malformed.
From-SVN: r250684
2017-07-28 18:52:13 +00:00
Ian Lance Taylor
9761988fc7 compiler: track placeholder pointer types for conversion
We recently started walking through the hash table of pointer types to
    finalize them.  Unfortunately it is possible to create a new pointer
    type while finalizing an existing one (test case: test/fixedbugs/issue5291)
    and that breaks the iteration.  So, instead, keep a list of
    placeholder pointer types, and iterate through them while permitting
    the list to be extended as we go.
    
    Reviewed-on: https://go-review.googlesource.com/51771

From-SVN: r250683
2017-07-28 18:03:29 +00:00
Ian Lance Taylor
97a0928c52 compiler: use a single temporary for calls with multiple results
For calls that return multiple results we used to create a temporary
    of struct type to hold the results, and also create a separate
    temporary for each result.  Then the call expression would copy each
    result out of the struct to the temporary, and Call_result_expression
    would refer to the desired temporary.
    
    Simplify this to just use a single temporary of struct type, and
    change Call_result_expression to fetch a field of the struct.
    
    This may reduce some incorrect tree sharing in the backend code.
    
    Reviewed-on: https://go-review.googlesource.com/51770

From-SVN: r250682
2017-07-28 17:42:05 +00:00
Tamar Christina
9de009354e 2017-07-28 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c
	(aarch64_internal_mov_immediate): Add new special pattern.
	* config/aarch64/aarch64.md (*movdi_aarch64):
	Add reg/32bit const mov case.

gcc/testsuite/
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/aarch64/int_mov_immediate_1.c: New.

From-SVN: r250680
2017-07-28 16:47:08 +00:00
Bin Cheng
8de33df278 pr80815-3.c: Require vect_perm.
gcc/testsuite
	* gcc.dg/vect/pr80815-3.c: Require vect_perm.

From-SVN: r250676
2017-07-28 16:30:44 +00:00
Rainer Orth
cf311b0355 Fix pid_t printing
* fileline.c (fileline_initialize): Print pid_t as long.

From-SVN: r250675
2017-07-28 16:26:39 +00:00
Tamar Christina
8acb8421b9 dbl_mov_immediate_1.c: New.
2017-07-28  Tamar Christina  <tamar.christina@arm.com>
	    Bilyan Borisov  <bilyan.borisov@arm.com>

	* gcc.target/aarch64/dbl_mov_immediate_1.c: New.
	* gcc.target/aarch64/flt_mov_immediate_1.c: New.
	* gcc.target/aarch64/f16_mov_immediate_1.c: New.
	* gcc.target/aarch64/f16_mov_immediate_2.c: New.
	* gcc.target/aarch64/pr63304_1.c: Changed to double.


Co-Authored-By: Bilyan Borisov <bilyan.borisov@arm.com>

From-SVN: r250674
2017-07-28 15:14:25 +00:00
Tamar Christina
90e6443f3a aarch64.md (mov<mode>): Generalize.
2017-07-28  Tamar Christina  <tamar.christina@arm.com>
            Richard Sandiford <richard.sandiford@linaro.org>

        * config/aarch64/aarch64.md (mov<mode>): Generalize.
        (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
        Add integer and movi cases.
        (movi-split-hf-df-sf split, fp16): New.
        (enabled): Added TARGET_FP_F16INST.
        * config/aarch64/iterators.md (GPF_HF): New.
        * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.


Co-Authored-By: Richard Sandiford <richard.sandiford@linaro.org>

From-SVN: r250673
2017-07-28 15:12:32 +00:00
Tamar Christina
a217096563 2017-07-28 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c
	(aarch64_simd_container_mode): Add prototype.
	(aarch64_expand_mov_immediate): Add HI support.
	(aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
	(aarch64_can_const_movi_rtx_p): New.
	(aarch64_preferred_reload_class):
	Remove restrictions of using FP registers for certain SIMD operations.
	(aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
	(aarch64_valid_floating_const): Add integer move validation.
	(aarch64_simd_imm_scalar_p): Remove.
	(aarch64_output_scalar_simd_mov_immediate): Generalize function.
	(aarch64_legitimate_constant_p): Expand list of supported cases.
	* config/aarch64/aarch64-protos.h
	(aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
	(aarch64_reinterpret_float_as_int): New.
	(aarch64_simd_imm_scalar_p): Remove.
	* config/aarch64/constraints.md (Uvi): New.
	(Dd): Split into Ds and new Dd.
	* config/aarch64/aarch64.md (*movsi_aarch64):
	Add SIMD mov case.
	(*movdi_aarch64): Add SIMD mov case.

From-SVN: r250672
2017-07-28 15:11:25 +00:00
Bin Cheng
39ff50cef1 tree-predcom.c: (struct chain): Handle store-store chain in which stores for elimination only...
* tree-predcom.c: (struct chain): Handle store-store chain in which
	stores for elimination only store loop invariant values.
	(execute_pred_commoning_chain): Ditto.
	(prepare_initializers_chain_store_elim): Ditto.
	(prepare_finalizers): Ditto.
	(is_inv_store_elimination_chain): New function.
	(initialize_root_vars_store_elim_1): New function.

From-SVN: r250670
2017-07-28 15:03:09 +00:00
Bin Cheng
d9c259efd7 tree-predcom.c: Revise general description of the pass.
* tree-predcom.c: Revise general description of the pass.
	(enum chain_type): New enum type for store elimination.
	(struct chain): New field supporting store elimination.
	(struct component): Ditto.
	(dump_chain): Dump store-stores chain.
	(release_chain): Release resources.
	(split_data_refs_to_components): Compute and create component
	contains only stores for elimination.
	(get_chain_last_ref_at): New function.
	(make_invariant_chain): Initialization.
	(make_rooted_chain): Specify chain type in parameter and record it.
	(add_looparound_copies): Skip for store-stores chain.
	(determine_roots_comp): Compute type of chain and pass it to
	make_rooted_chain.
	(initialize_root_vars_store_elim_2): New function.
	(finalize_eliminated_stores): New function.
	(remove_stmt): Handle store for elimination.
	(execute_pred_commoning_chain): Execute predictive commoning on
	store-store chains.
	(determine_unroll_factor): Skip unroll for store-stores chain.
	(prepare_initializers_chain_store_elim): New function.
	(prepare_initializers_chain): Hanlde store-store chain.
	(prepare_finalizers_chain, prepare_finalizers): New function.
	(tree_predictive_commoning_loop): Return integer value indicating
	if loop is unrolled or lcssa form is corrupted.
	(tree_predictive_commoning): Rewrite for lcssa form if necessary.

	gcc/testsuite
	* gcc.dg/tree-ssa/predcom-dse-1.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-2.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-3.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-4.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-5.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-6.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-7.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-8.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-9.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-10.c: New test.
	* gcc.dg/tree-ssa/predcom-dse-11.c: New test.

From-SVN: r250669
2017-07-28 15:01:28 +00:00
Bin Cheng
10dfaf9a3b tree-predcom.c (initialize_root): Delete.
* tree-predcom.c (initialize_root): Delete.
	(execute_pred_commoning_chain): Initialize root vars and replace
	reference of non-combined chain directly, rather than call above
	function.

From-SVN: r250668
2017-07-28 14:58:11 +00:00
Bin Cheng
3c62a7fb6e tree-predcom.c (ref_at_iteration): Add parameter NITERS.
* tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
	memory reference to DR at (NITERS + ITERS)-th iteration of loop.

From-SVN: r250667
2017-07-28 14:57:05 +00:00
Bin Cheng
aa4de160cc tree-predcom.c (struct chain): New field init_seq.
* tree-predcom.c (struct chain): New field init_seq.
	(release_chain): Release init_seq.
	(prepare_initializers_chain): Record intialization stmts in above
	field.
	(insert_init_seqs): New function.
	(tree_predictive_commoning_loop): Call insert_init_seqs.

From-SVN: r250666
2017-07-28 14:55:49 +00:00
Bin Cheng
67bb451dfb * tree-predcom.c (determine_roots_comp): Skip trivial components.
From-SVN: r250665
2017-07-28 14:54:20 +00:00
Richard Biener
6c35e5b022 match.pd: Remove superfluous :c.
2017-07-28  Richard Biener  <rguenther@suse.de>

	* match.pd: Remove superfluous :c.
	* genmatch.c (simplify::id): Add member.
	(lower_commutative, lower_opt_convert, lower_cond, lower_for):
	Copy id.
	(current_id): New global.
	(dt_node::parent): Move from ...
	(dt_operand::parent): ... here.  Add for_id member.
	(is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
	(decision_tree::find_node): Relax order requirement when
	merging DT_TRUE nodes to ones inbetween the current simplify
	and the one we try to merge with.  Add diagnostic whenever
	we need to enforce pattern order by not merging.
	(decision_tree::insert): Set current_id.
	(decision_tree::print_node): Dump parent node and for_id.
	(parser::last_id): Add member.
	(parser::push_simplify): Assign unique id.
	(parser::parser): Initialize last_id.

From-SVN: r250664
2017-07-28 13:38:01 +00:00
Martin Liska
6d7649f8b7 Set DECL_VALUE_EXPR after a debug stmt is generated (PR sanitizer/81340).
2017-07-28  Martin Liska  <mliska@suse.cz>

	PR sanitizer/81340
	* sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
	gimple_build_debug_bind.
2017-07-28  Martin Liska  <mliska@suse.cz>

	PR sanitizer/81340
	* g++.dg/asan/pr81340.C: New test.

From-SVN: r250660
2017-07-28 11:56:47 +00:00
Richard Biener
92e29a5e86 re PR middle-end/81502 (In some cases the data is moved to memory unnecessarily [partial regression])
2017-07-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81502
	* match.pd: Add pattern combining BIT_INSERT_EXPR with
	BIT_FIELD_REF.
	* tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
	size/pos operands.
	(verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
	* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
	for BIT_FIELD_REF args.
	* fold-const.c (make_bit_field_ref): Likewise.
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.

	* gcc.target/i386/pr81502.c: New testcase.

From-SVN: r250659
2017-07-28 11:27:45 +00:00
Jakub Jelinek
c9b39a4955 re PR sanitizer/80998 (Implement -fsanitize=pointer-overflow)
PR sanitizer/80998
	* sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
	* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
	* flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
	Or it into SANITIZER_UNDEFINED.
	* ubsan.c: Include gimple-fold.h and varasm.h.
	(ubsan_expand_ptr_ifn): New function.
	(instrument_pointer_overflow): New function.
	(maybe_instrument_pointer_overflow): New function.
	(instrument_object_size): Formatting fix.
	(pass_ubsan::execute): Call instrument_pointer_overflow
	and maybe_instrument_pointer_overflow.
	* internal-fn.c (expand_UBSAN_PTR): New function.
	* ubsan.h (ubsan_expand_ptr_ifn): Declare.
	* sanitizer.def (__ubsan_handle_pointer_overflow,
	__ubsan_handle_pointer_overflow_abort): New builtins.
	* tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
	* internal-fn.def (UBSAN_PTR): New internal function.
	* opts.c (sanitizer_opts): Add pointer-overflow.
	* lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
	* fold-const.c (build_range_check): Compute pointer range check in
	integral type if pointer arithmetics would be needed.  Formatting
	fixes.
gcc/testsuite/
	* c-c++-common/ubsan/ptr-overflow-1.c: New test.
	* c-c++-common/ubsan/ptr-overflow-2.c: New test.
libsanitizer/
	* ubsan/ubsan_handlers.cc: Cherry-pick upstream r304461.
	* ubsan/ubsan_checks.inc: Likewise.
	* ubsan/ubsan_handlers.h: Likewise.

From-SVN: r250656
2017-07-28 12:37:51 +02:00
Martin Liska
70affe6aff Do not handle VLA in sanitization (PR sanitizer/81460).
2017-07-28  Martin Liska  <mliska@suse.cz>

	PR sanitizer/81460
	* sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
	parameters that are of a variable-length.
2017-07-28  Martin Liska  <mliska@suse.cz>

	PR sanitizer/81460
	* gcc.dg/asan/pr81460.c: New test.

From-SVN: r250655
2017-07-28 10:36:36 +00:00
Sebastian Huber
16bab95a79 [PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI
Add 64-bit support for RTEMS using the ELFv2 ABI with 64-bit long
double.

gcc/
	* config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
	rs6000/biarch64.h.
	* config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
	(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
	(CRT_CALL_STATIC_FUNCTION): Likewise.
	(ASM_DEFAULT_SPEC): New define.
	(ASM_SPEC32): Likewise.
	(ASM_SPEC64): Likewise.
	(ASM_SPEC_COMMON): Likewise.
	(ASM_SPEC): Likewise.
	(INVALID_64BIT): Likewise.
	(LINK_OS_DEFAULT_SPEC): Likewise.
	(LINK_OS_SPEC32): Likewise.
	(LINK_OS_SPEC64): Likewise.
	(POWERPC_LINUX): Likewise.
	(PTRDIFF_TYPE): Likewise.
	(RESTORE_FP_PREFIX): Likewise.
	(RESTORE_FP_SUFFIX): Likewise.
	(SAVE_FP_PREFIX): Likewise.
	(SAVE_FP_SUFFIX): Likewise.
	(SIZE_TYPE): Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(TARGET_64BIT): Likewise.
	(TARGET_64BIT): Likewise.
	(TARGET_AIX): Likewise.
	(WCHAR_TYPE_SIZE): Likewise.
	(WCHAR_TYPE): Undefine.
	(TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
	(CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
	(CPP_OS_RTEMS_SPEC): Delete.
	(SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
	asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
	link_os_spec64.
	* config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.

libgcc/
	* config/rs6000/ibm-ldouble.c: Disable if defined __rtems__.

From-SVN: r250652
2017-07-28 07:17:10 +00:00
Jakub Jelinek
d0ee55a1f7 re PR tree-optimization/81578 (ICE in omp_reduction_init_op)
PR tree-optimization/81578
	* tree-parloops.c (build_new_reduction): Bail out if
	reduction_code isn't one of the standard OpenMP reductions.
	Move the details printing after that decision.

	* gcc.dg/pr81578.c: New test.

From-SVN: r250651
2017-07-28 09:11:51 +02:00
Richard Biener
1ce75e4156 re PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)
2017-07-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81573
	* gcc.dg/torture/pr81573.c: Explicitely use signed char.

From-SVN: r250650
2017-07-28 07:08:38 +00:00
Tony Reix
4ce21457db go-backend.c (go_write_export_data): Use EXCLUDE section for AIX.
* go-backend.c (go_write_export_data): Use EXCLUDE section for
	AIX.

From-SVN: r250648
2017-07-28 00:16:36 +00:00
GCC Administrator
91258d934f Daily bump.
From-SVN: r250647
2017-07-28 00:16:34 +00:00
Peter Bergner
3cb8ee5cd6 predicates.md (volatile_mem_operand): Remove code related to reload_in_progress.
* config/rs6000/predicates.md (volatile_mem_operand): Remove code
	related to reload_in_progress.
	(splat_input_operand): Likewise.
	* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
	Delete prototype.
	* config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
	field.
	(TARGET_EXPAND_TO_RTL_HOOK): Delete.
	(TARGET_INSTANTIATE_DECLS): Likewise.
	(legitimate_indexed_address_p): Delete reload_in_progress code.
	(rs6000_debug_legitimate_address_p): Likewise.
	(rs6000_eliminate_indexed_memrefs): Likewise.
	(rs6000_emit_le_vsx_store): Likewise.
	(rs6000_emit_move_si_sf_subreg): Likewise.
	(rs6000_emit_move): Likewise.
	(register_to_reg_type): Likewise.
	(rs6000_pre_atomic_barrier): Likewise.
	(rs6000_machopic_legitimize_pic_address): Likewise.
	(rs6000_allocate_stack_temp): Likewise.
	(rs6000_address_for_fpconvert): Likewise.
	(rs6000_address_for_altivec): Likewise.
	(rs6000_secondary_memory_needed_rtx): Delete function.
	(rs6000_check_sdmode): Likewise.
	(rs6000_alloc_sdmode_stack_slot): Likewise.
	(rs6000_instantiate_decls): Likewise.
	* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
	* config/rs6000/rs6000.md (splitter for *movsi_got_internal):
	Delete reload_in_progress.
	(*vec_reload_and_plus_<mptrsize>): Likewise.
	* config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
	(vsx_div_v2di): Likewise.
	(vsx_udiv_v2di): Likewise.

From-SVN: r250638
2017-07-27 15:04:53 -05:00
Peter Bergner
7a5cbf29be rs6000.opt (mlra): Replace with stub.
gcc/

	* config/rs6000/rs6000.opt (mlra): Replace with stub.
	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
	* config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
	(rs6000_debug_reg_global): Delete print of LRA status.
	(rs6000_option_override_internal): Delete dead LRA related code.
	(rs6000_lra_p): Delete function.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.

gcc/testsuite/

	* g++.dg/pr69667.C: Remove option -mlra.
	* gcc.target/powerpc/dform-1.c: Likewise.
	* gcc.target/powerpc/dform-2.c: Likewise.
	* gcc.target/powerpc/dform-3.c: Likewise.
	* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
	* gcc.target/powerpc/p9-vparity.c: Likewise.
	* gcc.target/powerpc/pr63491.c: Likewise.
	* gcc.target/powerpc/pr67808.c: Likewise.
	* gcc.target/powerpc/pr68805.c: Likewise.
	* gcc.target/powerpc/pr69461.c: Likewise.
	* gcc.target/powerpc/pr71680.c: Likewise.
	* gcc.target/powerpc/pr77289.c: Likewise.
	* gcc.target/powerpc/pr78458.c: Likewise.
	* gcc.target/powerpc/pr78543.c: Likewise.
	* g++.dg/pr71294.C: Remove option -mno-lra.
	* gcc.target/powerpc/pr71656-1.c: Likewise.
	* gcc.target/powerpc/pr71656-2.c: Likewise.
	* gcc.target/powerpc/pr71698.c: Likewise.

From-SVN: r250637
2017-07-27 15:03:35 -05:00
Jakub Jelinek
a40ff0ae8b re PR c/45784 (gcc OpenMP - error: invalid controlling predicate)
PR c/45784
	* c-omp.c (c_finish_omp_for): If the condition is wrapped in
	rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
	new COMPOUND_EXPRs around the rhs of the comparison.

	* testsuite/libgomp.c/pr45784.c: New test.
	* testsuite/libgomp.c++/pr45784.C: New test.

From-SVN: r250635
2017-07-27 21:13:42 +02:00
Sebastian Huber
1f9e09b554 Add RTEMS support
gcc/ChangeLog

2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
	* config/riscv/rtems.h: New file.

From-SVN: r250632
2017-07-27 16:41:27 +00:00
Kyrylo Tkachov
2c2789d582 [PATCH][AArch64] Fix missing optimization for CMP+AND
During combine GCC tries to merge CMP (with zero) and AND into a TST. However,
in cases where an ANDS operand is not compatible, this was being missed. Adding
a define_split where this operand was moved to a register seems to help out. 

Committed on behalf of Sudi Das

---
gcc/

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64.md
	(define_split for and<mode>3nr_compare): Move
	non aarch64_logical_operand to a register.
	(define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
	register immediate operand to a register.
	* config/aarch64/predicates.md (aarch64_mov_imm_operand): New.

gcc/testsuite
    
2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Sudakshina Das  <sudi.das@arm.com>

	* gcc.target/aarch64/tst_imm_split_1.c: New Test.


Co-Authored-By: Sudakshina Das <sudi.das@arm.com>

From-SVN: r250631
2017-07-27 16:29:31 +00:00
Marek Polacek
06bd22f609 re PR c/81417 (-Wsign-compare should print types being compared)
PR c/81417
	* c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
	the types.

	* c-c++-common/Wsign-compare-1.c: New test.
	* g++.dg/warn/Wsign-compare-2.C: Update dg-warning.
	* g++.dg/warn/Wsign-compare-4.C: Likewise.
	* g++.dg/warn/Wsign-compare-6.C: Likewise.
	* g++.dg/warn/compare1.C: Likewise.
	* gcc.dg/compare1.c: Likewise.
	* gcc.dg/compare2.c: Likewise.
	* gcc.dg/compare4.c: Likewise.
	* gcc.dg/compare5.c: Likewise.
	* gcc.dg/pr35430.c: Likewise.
	* gcc.dg/pr60087.c: Likewise.

From-SVN: r250630
2017-07-27 15:02:17 +00:00
Peter Bergner
27c8b49bfc re PR middle-end/81564 (ICE in group_case_labels_stmt())
gcc/
	PR middle-end/81564
	* tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.

gcc/testsuite/
	PR middle-end/81564
	* gcc.dg/pr81564.c: New test.

From-SVN: r250628
2017-07-27 09:05:14 -05:00
Richard Biener
b7675b5923 re PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)
2017-07-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81573
	PR tree-optimization/81494
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
	multi defuse cycle case.

	* gcc.dg/torture/pr81573.c: New testcase.

From-SVN: r250627
2017-07-27 13:46:07 +00:00
Richard Biener
719488f819 re PR tree-optimization/81571 (ICE at -O3 in both 32-bit and 64-bit modes (internal compiler error: in as_a, at is-a.h:192))
2017-07-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81571
	* tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
	PHIs.

	* gcc.dg/torture/pr81571.c: New testcase.

From-SVN: r250626
2017-07-27 13:44:51 +00:00