- 28 Jul, 2017 26 commits
-
-
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
Tony Reix committed -
From-SVN: r250684
Tony Reix committed -
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
Ian Lance Taylor committed -
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
Ian Lance Taylor committed -
* 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
Tamar Christina committed -
gcc/testsuite * gcc.dg/vect/pr80815-3.c: Require vect_perm. From-SVN: r250676
Bin Cheng committed -
* fileline.c (fileline_initialize): Print pid_t as long. From-SVN: r250675
Rainer Orth committed -
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
Tamar Christina committed -
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
Tamar Christina committed -
* 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
Tamar Christina committed -
* 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
Bin Cheng committed -
* 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
Bin Cheng committed -
* 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
Bin Cheng committed -
* tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute memory reference to DR at (NITERS + ITERS)-th iteration of loop. From-SVN: r250667
Bin Cheng committed -
* 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
Bin Cheng committed -
From-SVN: r250665
Bin Cheng committed -
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
Richard Biener committed -
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
Martin Liska committed -
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
Richard Biener committed -
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
Jakub Jelinek committed -
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
Martin Liska committed -
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
Sebastian Huber committed -
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
Jakub Jelinek committed -
2017-07-28 Richard Biener <rguenther@suse.de> PR tree-optimization/81573 * gcc.dg/torture/pr81573.c: Explicitely use signed char. From-SVN: r250650
Richard Biener committed -
* go-backend.c (go_write_export_data): Use EXCLUDE section for AIX. From-SVN: r250648
Tony Reix committed -
From-SVN: r250647
GCC Administrator committed
-
- 27 Jul, 2017 14 commits
-
-
* 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
Peter Bergner committed -
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
Peter Bergner committed -
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
Jakub Jelinek committed -
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
Sebastian Huber committed -
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
Kyrylo Tkachov committed -
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
Marek Polacek committed -
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
Peter Bergner committed -
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
Richard Biener committed -
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
Richard Biener committed -
2017-07-27 Martin Liska <mliska@suse.cz> * opt-functions.awk: Add validation of value of Init. * optc-gen.awk: Pass new argument. From-SVN: r250625
Martin Liska committed -
* config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag earlier and only if MASK_FPU is set. Adjust formatting. From-SVN: r250623
Eric Botcazou committed -
2017-07-27 Martin Liska <mliska@suse.cz> * auto-profile.c (autofdo_source_profile::update_inlined_ind_target): Fix wrong condition. From-SVN: r250622
Martin Liska committed -
2017-07-27 Martin Liska <mliska@suse.cz> * auto-profile.c (afdo_annotate_cfg): Assign zero counts to BBs and edges seen by autoFDO. From-SVN: r250621
Martin Liska committed -
re PR middle-end/81502 (In some cases the data is moved to memory unnecessarily [partial regression]) 2017-07-27 Richard Biener <rguenther@suse.de> PR tree-optimization/81502 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR with incompatible but same sized type. (execute_update_addresses_taken): Likewise. * gcc.target/i386/vect-insert-1.c: New testcase. From-SVN: r250620
Richard Biener committed
-