- 07 Jul, 2017 10 commits
-
-
libgcc/ * config/rs6000/float128-ifunc.c: Don't include auxv.h. (have_ieee_hw_p): Delete function. (SW_OR_HW) Use __builtin_cpu_supports(). From-SVN: r250061
Peter Bergner committed -
gcc/testsuite/ChangeLog: PR c++/79300 * g++.dg/diagnostic/pr79300.C: New test case. libcpp/ChangeLog: PR c++/79300 * line-map.c (linemap_macro_loc_to_def_point): Preserve range information for macro expansions by delaying resolving ad-hoc locations until within the loop. From-SVN: r250058
David Malcolm committed -
rs6000.c (rs6000_get_function_versions_dispatcher): Add warning if GCC was not configured to link against a GLIBC that exports the... [gcc] 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher): Add warning if GCC was not configured to link against a GLIBC that exports the hardware capability bits. (make_resolver_func): Make resolver function private and not a COMDAT function. Create the name with clone_function_name instead of make_unique_name. [gcc/testsuite] 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/clone1.c: Add check to make sure the __builtin_cpu_supports function is fully supported. * gcc.target/powerpc/clone2.c: New runtime test for target_clones. From-SVN: r250055
Michael Meissner committed -
[gcc] 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81348 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the correct operand in doing the split. [gcc/testsuite] 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81348 * gcc.target/powerpc/pr81348.c: New test. From-SVN: r250054
Michael Meissner committed -
Only run the test if the target supports double precision vectorization. gcc/testsuite/ChangeLog: 2017-07-07 Szabolcs Nagy <szabolcs.nagy@arm.com> * gfortran.dg/vect/pr60510.f: Require vect_double support. From-SVN: r250053
Szabolcs Nagy committed -
gcc/testsuite/ChangeLog: 2017-07-07 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-1-p9-runnable.c: Forgot to add new file before doing commit 250051. From-SVN: r250052
Carl Love committed -
gcc/ChangeLog: 2017-07-07 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c: Add support for built-in function vector unsigned short vec_pack_to_short_fp32 (vector float, vector float). * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions. * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define. * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC. (convert_4f32_8i16): Add define_expand. * doc/extend.texi: Update the built-in documentation file for the new built-in function. gcc/testsuite/ChangeLog: 2017-07-07 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-1-p9-runnable.c: Add new test file for built-ins. From-SVN: r250051
Carl Love committed -
This patch serie adds support for the SPARC M8 processor to GCC. The SPARC M8 processor implements the Oracle SPARC Architecture 2017. - bmask* instructions are put in their own instruction type. It makes little sense to have them in the same category than array instructions. - Similarly, VIS compare instructions are put in their own instruction type. This is to better accommodate subtypes, which are not quite the same than the subtypes of `visl' instructions. - The introduction of a new `subtype' insn attribute in sparc.md avoids the need for adjusting the instruction scheduler DFAs for previous cpu models every time a new cpu is introduced. - The full set of SPARC instructions used in sparc.md, and their position in the type/subtype hierarchy, is documented in a comment. This eases the modification of the DFA schedulers, and the addition of new cpus. - The M7 DFA scheduler is reworked: + To use the new type/subtype hierarchy. + The v3pipe insn attribute is no longer needed. + More accurate latencies for instructions. + The C4 core pipeline is documented in a comment in niagara7.md. - Support for -mcpu=m8 (we are thus suggesting to abandon the niagaraN denomination for M8 and later processors.) - Support for a new VIS level, VIS4B, covering the new VIS instructions introduced in OSA2017 and implemented in the M8. Also built-ins. - A M8 DFA scheduler: + Also based on the new type/subtype hierarchy. + The functional units in the C5 core are explicitly documented in a comment in m8.md. gcc/ChangeLog: * config/sparc/m8.md: New file. * config/sparc/sparc.md: Include m8.md. * config/sparc/sparc.opt: New option -mvis4b. * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B. (sparc_option_override): Handle VIS4B. (enum sparc_builtins): Define SPARC_BUILTIN_DICTUNPACK{8,16,32}, SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL, SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL, SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and SPARC_BUILTIN_FPCMPUR{8,16,32}SHL. (check_constant_argument): New function. (sparc_vis_init_builtins): Define builtins __builtin_vis_dictunpack{8,16,32}, __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl, __builtin_vis_fpcmpu{le,gt}{8,16,32}shl, __builtin_vis_fpcmpde{8,16,32}shl and __builtin_vis_fpcmpur{8,16,32}shl. (sparc_expand_builtin): Check that the constant operands to __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed constant and in range. * config/sparc/sparc-c.c (sparc_target_macros): Handle TARGET_VIS4B. * config/sparc/sparc.h (SPARC_IMM2_P): Define. (SPARC_IMM5_P): Likewise. * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b". (enabled): Handle vis4b. (UNSPEC_DICTUNPACK): New unspec. (UNSPEC_FPCMPSHL): Likewise. (UNSPEC_FPUCMPSHL): Likewise. (UNSPEC_FPCMPDESHL): Likewise. (UNSPEC_FPCMPURSHL): Likewise. (cpu_feature): New CPU feature `vis4b'. (dictunpack{8,16,32}): New insns. (FPCSMODE): New mode iterator. (fpcscond): New code iterator. (fpcsucond): Likewise. (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns. (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise. (fpcmpde{8,16,32}{si,di}shl): Likewise. (fpcmpur{8,16,32}{si,di}shl): Likewise. * config/sparc/constraints.md: Define constraints `q' for unsigned 2-bit integer constants and `t' for unsigned 5-bit integer constants. * config/sparc/predicates.md (imm5_operand_dictunpack8): New predicate. (imm5_operand_dictunpack16): Likewise. (imm5_operand_dictunpack32): Likewise. (imm2_operand): Likewise. * doc/invoke.texi (SPARC Options): Document -mvis4b. * doc/extend.texi (SPARC VIS Built-in Functions): Document the ditunpack* and fpcmp*shl builtins. * config.gcc: Handle m8 in --with-{cpu,tune} options. * config.in: Add HAVE_AS_SPARC6 define. * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC M8. * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for TARGET_CPU_m8. (ASM_CPU32_DEFAUILT_SPEC): Likewise. (CPP_CPU_SPEC): Handle m8. (ASM_CPU_SPEC): Likewise. * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_M8. * config/sparc/sparc.c (m8_costs): New struct. (sparc_option_override): Handle TARGET_CPU_m8. (sparc32_initialize_trampoline): Likewise. (sparc64_initialize_trampoline): Likewise. (sparc_issue_rate): Likewise. (sparc_register_move_cost): Likewise. * config/sparc/sparc.h (TARGET_CPU_m8): Define. (CPP_CPU64_DEFAULT_SPEC): Define for M8. (ASM_CPU64_DEFAULT_SPEC): Likewise. (CPP_CPU_SPEC): Handle M8. (ASM_CPU_SPEC): Likewise. (AS_M8_FLAG): Define. * config/sparc/sparc.md: Add m8 to the cpu attribute. * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets. * configure.ac (HAVE_AS_SPARC6): Check for assembler support for M8 instructions. * configure: Regenerate. * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and -mtune=m8. * config/sparc/niagara7.md: Rework the DFA scheduler to use insn subtypes. * config/sparc/sparc.md: Remove the `v3pipe' insn attribute. ("*movdi_insn_sp32"): Do not set v3pipe. ("*movsi_insn"): Likewise. ("*movdi_insn_sp64"): Likewise. ("*movsf_insn"): Likewise. ("*movdf_insn_sp32"): Likewise. ("*movdf_insn_sp64"): Likewise. ("*zero_extendsidi2_insn_sp64"): Likewise. ("*sign_extendsidi2_insn"): Likewise. ("*mov<VM32:mode>_insn"): Likewise. ("*mov<VM64:mode>_insn_sp64"): Likewise. ("*mov<VM64:mode>_insn_sp32"): Likewise. ("<plusminus_insn><VADDSUB:mode>3"): Likewise. ("<vlop:code><VL:mode>3"): Likewise. ("*not_<vlop:code><VL:mode>3"): Likewise. ("*nand<VL:mode>_vis"): Likewise. ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise. ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise. ("one_cmpl<VL:mode>2"): Likewise. ("faligndata<VM64:mode>_vis"): Likewise. ("alignaddrsi_vis"): Likewise. ("alignaddrdi_vis"): Likweise. ("alignaddrlsi_vis"): Likewise. ("alignaddrldi_vis"): Likewise. ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. ("bmaskdi_vis"): Likewise. ("bmasksi_vis"): Likewise. ("bshuffle<VM64:mode>_vis"): Likewise. ("cmask8<P:mode>_vis"): Likewise. ("cmask16<P:mode>_vis"): Likewise. ("cmask32<P:mode>_vis"): Likewise. ("pdistn<P:mode>_vis"): Likewise. ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. * config/sparc/sparc.md ("subtype"): New insn attribute. ("*wrgsr_sp64"): Set insn subtype. ("*rdgsr_sp64"): Likewise. ("alignaddrsi_vis"): Likewise. ("alignaddrdi_vis"): Likewise. ("alignaddrlsi_vis"): Likewise. ("alignaddrldi_vis"): Likewise. ("<plusminus_insn><VADDSUB:mode>3"): Likewise. ("fexpand_vis"): Likewise. ("fpmerge_vis"): Likewise. ("faligndata<VM64:mode>_vis"): Likewise. ("bshuffle<VM64:mode>_vis"): Likewise. ("cmask8<P:mode>_vis"): Likewise. ("cmask16<P:mode>_vis"): Likewise. ("cmask32<P:mode>_vis"): Likewise. ("fchksm16_vis"): Likewise. ("v<vis3_shift_patname><GCM:mode>3"): Likewise. ("fmean16_vis"): Likewise. ("fp<plusminus_insn>64_vis"): Likewise. ("<plusminus_insn>v8qi3"): Likewise. ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise. ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise. ("<vis3_addsub_ss_patname>v8qi3"): Likewise. ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise. ("*movqi_insn"): Likewise. ("*movhi_insn"): Likewise. ("*movsi_insn"): Likewise. ("movsi_pic_gotdata_op"): Likewise. ("*movdi_insn_sp32"): Likewise. ("*movdi_insn_sp64"): Likewise. ("movdi_pic_gotdata_op"): Likewise. ("*movsf_insn"): Likewise. ("*movdf_insn_sp32"): Likewise. ("*movdf_insn_sp64"): Likewise. ("*zero_extendhisi2_insn"): Likewise. ("*zero_extendqihi2_insn"): Likewise. ("*zero_extendqisi2_insn"): Likewise. ("*zero_extendqidi2_insn"): Likewise. ("*zero_extendhidi2_insn"): Likewise. ("*zero_extendsidi2_insn_sp64"): Likewise. ("ldfsr"): Likewise. ("prefetch_64"): Likewise. ("prefetch_32"): Likewise. ("tie_ld32"): Likewise. ("tie_ld64"): Likewise. ("*tldo_ldub_sp32"): Likewise. ("*tldo_ldub1_sp32"): Likewise. ("*tldo_ldub2_sp32"): Likewise. ("*tldo_ldub_sp64"): Likewise. ("*tldo_ldub1_sp64"): Likewise. ("*tldo_ldub2_sp64"): Likewise. ("*tldo_ldub3_sp64"): Likewise. ("*tldo_lduh_sp32"): Likewise. ("*tldo_lduh1_sp32"): Likewise. ("*tldo_lduh_sp64"): Likewise. ("*tldo_lduh1_sp64"): Likewise. ("*tldo_lduh2_sp64"): Likewise. ("*tldo_lduw_sp32"): Likewise. ("*tldo_lduw_sp64"): Likewise. ("*tldo_lduw1_sp64"): Likewise. ("*tldo_ldx_sp64"): Likewise. ("*mov<VM32:mode>_insn"): Likewise. ("*mov<VM64:mode>_insn_sp64"): Likewise. ("*mov<VM64:mode>_insn_sp32"): Likewise. * config/sparc/sparc.md ("type"): New insn type viscmp. ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to viscmp. ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise. ("fucmp<gcond:code>8<P:mode>_vis"): Likewise. ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle viscmp. ("n7_vis_logical_11cycle"): Likewise. * config/sparc/niagara4.md ("n4_vis_logical"): Likewise. * config/sparc/niagara2.md ("niag3_vis": Likewise. * config/sparc/niagara.md ("niag_vis"): Likewise. * config/sparc/ultra3.md ("us3_fga"): Likewise. * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise. * config/sparc/sparc.md: New instruction type `bmask'. (bmaskdi_vis): Use the `bmask' type. (bmasksi_vis): Likewise. * config/sparc/ultra3.md (us3_array): Likewise. * config/sparc/niagara7.md (n7_array): Likewise. * config/sparc/niagara4.md (n4_array): Likewise. * config/sparc/niagara2.md (niag2_vis): Likewise. (niag3_vis): Likewise. * config/sparc/niagara.md (niag_vis): Likewise. gcc/testsuite/ChangeLog: * gcc.target/sparc/dictunpack.c: New file. * gcc.target/sparc/fpcmpdeshl.c: Likewise. * gcc.target/sparc/fpcmpshl.c: Likewise. * gcc.target/sparc/fpcmpurshl.c: Likewise. * gcc.target/sparc/fpcmpushl.c: Likewise. From-SVN: r250049
Jose E. Marchesi committed -
* ipa-comdats.c: Remove optimize check from gate. * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary for functions not optimized. (ipa_fn_summary_read): Skip optimize check. (ipa_fn_summary_write): Likewise. * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller is optimized. * ipa-inline.c (can_inline_edge_p): Not optimized functions are uninlinable. (can_inline_edge_p): Check flag_pcc_struct_return for match. (check_callers): Give up on caller which is not optimized. (inline_small_functions): Likewise. (ipa_inline): Do not give up when not optimizing. * ipa-visbility.c (function_and_variable_visibility): Do not optimize away unoptimizes cdtors. (whole_program_function_and_variable_visibility): Do ipa_discover_readonly_nonaddressable_vars in LTO mode. * ipa.c (process_references): Do not check optimize. (symbol_table::remove_unreachable_nodes): Update optimize check. (set_writeonly_bit): Update optimize check. (pass_ipa_cdtor_merge::gate): Do not check optimize. (pass_ipa_single_use::gate): Remove. From-SVN: r250048
Jan Hubicka committed -
From-SVN: r250047
GCC Administrator committed
-
- 06 Jul, 2017 27 commits
-
-
rs6000.c (union_defs, [...]): Move all code related to p8 swap optimizations to file rs6000-p8swap.c. 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p, insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p, rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps, mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index, permute_load, permute_store, adjust_extract, adjust_splat, adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables, replace_swap_with_copy, dump_swap_insn_table, alignment_with_canonical_addr, alignment_mask, find_alignment_op, recombine_lvx_pattern, recombine_stvx_pattern, recombine_lvx_stvx_patterns, rs6000_analyze_swaps, make_pass_analyze_swaps): Move all code related to p8 swap optimizations to file rs6000-p8swap.c. * config/rs6000/rs6000-p8swap.c: New file. * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o. * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-* and rs6000*-*-* targets. From-SVN: r250040
Aaron Sawdey committed -
2017-07-06 Harald Anlauf <anlauf@gmx.de> PR fortran/70071 * array.c (gfc_ref_dimen_size): Handle bad subscript triplets. 2017-07-06 Harald Anlauf <anlauf@gmx.de> PR fortran/70071 * gfortran.dg/coarray_44.f90: New testcase. From-SVN: r250039
Harald Anlauf committed -
PR c++/81204 - parse error with dependent template-name * parser.c (cp_parser_lookup_name): Revert previous change. From-SVN: r250037
Jason Merrill committed -
gcc/ChangeLog * Makefile.in (selftest): Remove dependency on s-selftest-c++. From-SVN: r250036
David Malcolm committed -
* lto-wrapper.c (merge_and_complain): Do not merge fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno, fsigned_zeros, ftrapping_math, fwrapv. (append_compiler_options): Do not track these options. (append_linker_options): Likewie From-SVN: r250035
Jan Hubicka committed -
* cgraphunit.c (cgraph_node::finalize_function): When !flag_toplevel_reorde set no_reorder flag. (varpool_node::finalize_decl): Likewise. (symbol_table::compile): Drop no toplevel reorder path. * lto-partition.c (lto_balanced_map): Do not check flag_toplevel_reorder. From-SVN: r250034
Jan Hubicka committed -
* bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh edges; zero probability is not better than uninitialized. From-SVN: r250033
Jan Hubicka committed -
gcc/ * asan.h (asan_sanitize_allocas_p): Declare. * asan.c (asan_sanitize_allocas_p): New function. (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p. (handle_builtin_alloca): Likewise. * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff if !asan_sanitize_allocas_p. * params.def (asan-instrument-allocas): Add new option. * params.h (ASAN_PROTECT_ALLOCAS): Define. * opts.c (common_handle_option): Disable allocas sanitization for KASan by default. gcc/testsuite/ * c-c++-common/asan/kasan-alloca-1.c: New test. * c-c++-common/asan/kasan-alloca-2.c: Likewise. From-SVN: r250032
Maxim Ostapenko committed -
gcc/ * asan.c: Include gimple-fold.h. (get_last_alloca_addr): New function. (handle_builtin_stackrestore): Likewise. (handle_builtin_alloca): Likewise. (asan_emit_allocas_unpoison): Likewise. (get_mem_refs_of_builtin_call): Add new parameter, remove const quallifier from first paramerer. Handle BUILT_IN_ALLOCA, BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins. (instrument_builtin_call): Pass gimple iterator to get_mem_refs_of_builtin_call. (last_alloca_addr): New global. * asan.h (asan_emit_allocas_unpoison): Declare. * builtins.c (expand_asan_emit_allocas_unpoison): New function. (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON. * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison if function calls alloca. * gimple-fold.c (replace_call_with_value): Remove static keyword. * gimple-fold.h (replace_call_with_value): Declare. * internal-fn.c: Include asan.h. * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON, BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins. gcc/testsuite/ * c-c++-common/asan/alloca_big_alignment.c: New test. * c-c++-common/asan/alloca_detect_custom_size.c: Likewise. * c-c++-common/asan/alloca_instruments_all_paddings.c: Likewise. * c-c++-common/asan/alloca_loop_unpoisoning.c: Likewise. * c-c++-common/asan/alloca_overflow_partial.c: Likewise. * c-c++-common/asan/alloca_overflow_right.c: Likewise. * c-c++-common/asan/alloca_safe_access.c: Likewise. * c-c++-common/asan/alloca_underflow_left.c: Likewise. From-SVN: r250031
Maxim Ostapenko committed -
gcc/ChangeLog: * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to... (C_SELFTEST_FLAGS): New. (CPP_SELFTEST_FLAGS): New. (SELFTEST_DEPS): New, from deps of s-selftest. (C_SELFTEST_DEPS): New, from deps of s-selftest. (CPP_SELFTEST_DEPS): New. (selftest): Add dependency on s-selftest-c++. (s-selftest): Rename to... (s-selftest-c): ...this, moving deps to SELFTEST_DEPS and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather than SELFTEST_FLAGS. (selftest-gdb): Rename to... (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and C_SELFTEST_FLAGS. (selftest-gdb): Reintroduce as an alias for selftest-c-gdb. (selftest-valgrind): Rename to... (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and C_SELFTEST_FLAGS. (selftest-valgrind): Reintroduce as an alias for selftest-c-valgrind. (s-selftest-c++): New. (selftest-c++-gdb): New. (selftest-c++-valgrind): New. gcc/c-family/ChangeLog: * c-common.c (selftest::c_family_tests): New. * c-common.h (selftest::run_c_tests): Move decl to c/c-lang.h. (selftest::c_family_tests): New decl. gcc/c/ChangeLog: * c-lang.c (selftest::run_c_tests): Move body to c_family_tests, and call that instead. * c-tree.h (selftest::run_c_tests): New decl. gcc/cp/ChangeLog: * cp-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): Define as selftest::run_cp_tests. (selftest::run_cp_tests): New function. * cp-tree.h (selftest::run_cp_tests): New decl. From-SVN: r250030
David Malcolm committed -
PR target/81305 * gcc.target/avr/isr-test.h: Fix warnings. From-SVN: r250029
Georg-Johann Lay committed -
patch instead of the update. From-SVN: r250028
Olivier Hainque committed -
2017-07-06 Olivier Hainque <hainque@adacore.com> * gcc.c (spec_undefvar_allowed): New global. (process_command): Set to true when running for --version or --help alone, or together. (getenv_spec_function): When the variable is not defined, use the variable name as the variable value if we're allowed not to issue a fatal error. From-SVN: r250027
Olivier Hainque committed -
* auto-profile.c (afdo_set_bb_count, afdo_propagate_edge, afdo_annotate_cfg): Set counts/probabilities as determined by afdo. From-SVN: r250026
Jan Hubicka committed -
2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm-cpus.in (armv8-r): Add new entry. * config/arm/arm-isa.h (ISA_ARMv8r): Define macro. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R enumerator. * doc/invoke.texi: Mention -march=armv8-r and its extensions. gcc/testsuite/ * lib/target-supports.exp: Generate check_effective_target_arm_arch_v8r_ok, add_options_for_arm_arch_v8r and check_effective_target_arm_arch_v8r_multilib. libgcc/ * config/arm/lib1funcs.S: Defined __ARM_ARCH__ to 8 for ARMv8-R. From-SVN: r250025
Thomas Preud'homme committed -
gcc/ChangeLog: 2017-07-06 Carl Love <cel@us.ibm.com> * ChangeLog: Clean up from mid air collision gcc/testsuite/ChangeLog: 2017-07-06 Carl Love <cel@us.ibm.com> * ChangeLog: Clean up from mid air collision From-SVN: r250024
Carl Love committed -
gcc/ChangeLog: 2017-07-06 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c: Add support for built-in functions vector signed int vec_subc (vector signed int, vector signed int); vector signed __int128 vec_subc (vector signed __int128, vector signed __int128); vector unsigned __int128 vec_subc (vector unsigned __int128, vector unsigned __int128); vector signed int vec_sube (vector signed int, vector signed int, vector signed int); vector unsigned int vec_sube (vector unsigned int, vector unsigned int, vector unsigned int); vector signed __int128 vec_sube (vector signed __int128, vector signed __int128, vector signed__int128); vector unsigned __int128 vec_sube (vector unsigned __int128, vector unsigned __int128, vector unsigned __int128); vector signed int vec_subec (vector signed int, vector signed int, vector signed int); vector unsigned int vec_subec (vector unsigned int, vector unsigned int, vector unsigned int); vector signed __int128 vec_subec (vector signed __int128, vector signed __int128, vector signed__int128); vector unsigned __int128 vec_subec (vector unsigned __int128, vector unsigned __int128, vector unsigned __int128); * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE, ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins. * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add BU_ALTIVEC_OVERLOAD_X definitions. * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines. * doc/extend.texi: Update the built-in documentation file for the new built-in functions. gcc/testsuite/ChangeLog: 2017-07-06 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/p8vector-builtin-8.c (foo): Add test cases for the new vec_subc, vec_sube, vec_subec built-ins. Add the missing test cases for vec_addc, adde and addec builtins. From-SVN: r250023
Carl Love committed -
gcc/ChangeLog: PR c++/79300 * diagnostic-show-locus.c (layout::layout): Use start and finish spelling location for the start and finish of each range. * genmatch.c (linemap_client_expand_location_to_spelling_point): Add unused aspect param. * input.c (expand_location_1): Add "aspect" param, and use it to access the correct part of the location. (expand_location): Pass LOCATION_ASPECT_CARET to new param of expand_location_1. (expand_location_to_spelling_point): Likewise. (linemap_client_expand_location_to_spelling_point): Add "aspect" param, and pass it to expand_location_1. gcc/testsuite/ChangeLog: PR c++/79300 * c-c++-common/Wmisleading-indentation-3.c (fn_14): Update expected underlining within macro expansion. * c-c++-common/pr70264.c: Likewise. * g++.dg/plugin/diagnostic-test-expressions-1.C (test_within_macro_1): New test. (test_within_macro_2): Likewise. (test_within_macro_3): Likewise. (test_within_macro_4): Likewise. * gcc.dg/format/diagnostic-ranges.c (test_macro_3): Update expected underlining within macro expansion. (test_macro_4): Likewise. * gcc.dg/plugin/diagnostic-test-expressions-1.c (test_within_macro_1): New test. (test_within_macro_2): Likewise. (test_within_macro_3): Likewise. (test_within_macro_4): Likewise. * gcc.dg/spellcheck-fields-2.c (test_macro): Update expected underlining within macro expansion. libcpp/ChangeLog: PR c++/79300 * include/line-map.h (enum location_aspect): New enum. (linemap_client_expand_location_to_spelling_point): Add enum location_aspect param. * line-map.c (rich_location::get_expanded_location): Update for new param of linemap_client_expand_location_to_spelling_point. (rich_location::maybe_add_fixit): Likewise. (fixit_hint::affects_line_p): Likewise. From-SVN: r250022
David Malcolm committed -
* testsuite/20_util/specialized_algorithms/memory_management_tools/ 1.cc: Free memory. * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration of original environment and free memory. From-SVN: r250021
Jonathan Wakely committed -
* testsuite/abi/pr42230.cc: Free memory. * testsuite/util/testsuite_abi.cc (demangle): Return std::string instead of pointer that might need freeing. * testsuite/util/testsuite_abi.h (demangle): Likewise. * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory. From-SVN: r250020
Jonathan Wakely committed -
* include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add deleted overload to prevent dangling references to rvalues. * include/experimental/memory_resource (polymorphic_allocator::construct): Do not call __use_alloc with rvalue arguments. From-SVN: r250019
Jonathan Wakely committed -
gcc/ * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss, _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd, _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd, _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss, _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss, _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd, _mm_maskz_getmant_sd, _mm_mask_getmant_ss, _mm_maskz_getmant_ss): New intrinsics. (__builtin_ia32_getexpss128_mask): Changed to ... __builtin_ia32_getexpss128_round ... this. (__builtin_ia32_getexpsd128_mask): Changed to ... __builtin_ia32_getexpsd128_round ... this. * config/i386/i386-builtin-types.def ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT), (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases. * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round, __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round, __builtin_ia32_getmantss_mask_round): New builtins. * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT, V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types. (CODE_FOR_avx512f_vgetmantv2df_mask_round, CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases. * config/i386/sse.md (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ... avx512f_sgetexp<mode><mask_scalar_name> <round_saeonly_scalar_name> ... this. (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0| %0, %1, %2<round_saeonly_op3>}): Changed to ... vgetexp<ssescalarmodesuffix> \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this. (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ... avx512f_vgetmant<mode><mask_scalar_name> <round_saeonly_scalar_name> ... this. (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| %0, %1, %2<round_saeonly_op4>, %3}): Changed to ... vgetmant<ssescalarmodesuffix> \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>| %0<mask_scalar_operand4>, %1, %2 <round_saeonly_scalar_mask_op4>, %3} ... this. * config/i386/subst.md (mask_scalar_operand4, round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4, round_saeonly_scalar_nimm_predicate): New subst attributes. gcc/testsuite/ * gcc.target/i386/avx512f-vgetexpsd-1.c (_mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getexp_round_sd, _mm_maskz_getexp_round_sd): Test new intrinsics. * gcc.target/i386/avx512f-vgetexpss-1.c (_mm_mask_getexp_ss, _mm_maskz_getexp_ss, _mm_mask_getexp_round_ss, _mm_maskz_getexp_round_ss): Ditto. * gcc.target/i386/avx512f-vgetmantsd-1.c (_mm_mask_getmant_sd, _mm_maskz_getmant_sd, _mm_mask_getmant_round_sd, _mm_maskz_getmant_round_sd): Ditto. * gcc.target/i386/avx512f-vgetmantss-1.c (_mm_mask_getmant_ss, _mm_maskz_getmant_ss, _mm_mask_getmant_round_ss, _mm_maskz_getmant_round_ss): Ditto. * gcc.target/i386/avx512f-vgetexpsd-2.c (_mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_getexp_round_sd, _mm_mask_getexp_round_sd, _mm_maskz_getexp_round_sd): New runtime tests. * gcc.target/i386/avx512f-vgetexpss-2.c (_mm_mask_getexp_ss, _mm_maskz_getexp_ss, _mm_getexp_round_ss, _mm_mask_getexp_round_ss, _mm_maskz_getexp_round_ss): Ditto. * gcc.target/i386/avx512f-vgetmantsd-2.c (_mm_mask_getmant_sd, _mm_maskz_getmant_sd, _mm_getmant_round_sd, _mm_mask_getmant_round_sd, _mm_maskz_getmant_round_sd): Ditto. * gcc.target/i386/avx512f-vgetmantss-2.c (_mm_mask_getmant_ss, _mm_maskz_getmant_ss, _mm_getmant_round_ss, _mm_mask_getmant_round_ss, _mm_maskz_getmant_round_ss): Ditto. * gcc.target/i386/avx-1.c (__builtin_ia32_getexpsd_mask_round, __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round, __builtin_ia32_getmantss_mask_round): Test new builtins. * gcc.target/i386/sse-13.c : Ditto. * gcc.target/i386/sse-23.c: Ditto. * gcc.target/i386/sse-14.c (_mm_maskz_getexp_round_sd, _mm_maskz_getexp_round_ss, _mm_mask_getmant_round_sd, _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss, _mm_maskz_getmant_round_ss, _mm_mask_getexp_round_sd, _mm_mask_getexp_round_ss): Test new intrinsics. * gcc.target/i386/testround-1.c: Ditto. * gcc.target/i386/sse-22.c (_mm_maskz_getmant_round_sd, _mm_maskz_getmant_round_ss, _mm_mask_getmant_round_sd, _mm_mask_getmant_round_ss): Test new intrinsics * gcc.target/i386/testimm-10.c (_mm_mask_getmant_sd, _mm_maskz_getmant_sd, _mm_mask_getmant_ss, _mm_maskz_getmant_ss): Test new intrinsics. From-SVN: r250018
Sebastian Peryt committed -
gcc/ * gcc/config/i386/i386.c (ix86_erase_embedded_rounding): Remove code for old rounding pattern. From-SVN: r250017
Julia Koval committed -
In awk, single quotes within a quoted string do not need escaping. The existing code causes awk to grumble in the build logs. * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes in quoted strings. From-SVN: r250016
Richard Earnshaw committed -
The patch I committed yesterday to remove some generated headers from the source tree unfortunately has a dependency missing that is only revealed when doing a cross-native or full Canadian cross build. The gen* programs were missing a dependency on one of the generated headers. Fixed by adding an explicit dependency rule for GTM_H in the same way as we do for TM_H. * config/arm/t-arm (GTM_H): Add arm-cpu.h. Checked that this restores cross-native building. From-SVN: r250015
Richard Earnshaw committed -
2017-07-06 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * doc/sourcebuild.texi (Test Directives, Variants of dg-require-support): Add documentation for dg-require-stack-check. gcc/testsuite/ * lib/target-supports-dg.exp (dg-require-stack-check): New. * lib/target-supports.exp (check_stack_check_available): New. * g++.dg/other/i386-9.C: Add dg-require-stack-check. * gcc.c-torture/compile/stack-check-1.c: Likewise. * gcc.dg/graphite/run-id-pr47653.c: Likewise. * gcc.dg/pr47443.c: Likewise. * gcc.dg/pr48134.c: Likewise. * gcc.dg/pr70017.c: Likewise. * gcc.target/aarch64/stack-checking.c: Likewise. * gcc.target/arm/stack-checking.c: Likewise. * gcc.target/i386/pr48723.c: Likewise. * gcc.target/i386/pr55672.c: Likewise. * gcc.target/i386/pr67265-2.c: Likewise. * gcc.target/i386/pr67265.c: Likewise. * gnat.dg/opt49.adb: Likewise. * gnat.dg/stack_check1.adb: Likewise. * gnat.dg/stack_check2.adb: Likewise. * gnat.dg/stack_check3.adb: Likewise. From-SVN: r250013
Christophe Lyon committed -
From-SVN: r250012
GCC Administrator committed
-
- 05 Jul, 2017 3 commits
-
-
gcc/testsuite/ChangeLog: 2017-07-05 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/80103 * gcc.target/powerpc/pr80103-1.c (void b): Correct spelling of __attribute__. From-SVN: r250008
Kelvin Nilsen committed -
gcc/ * config/i386/subst.md (mask_scalar, round_scalar, round_saeonly_scalar): New meta-templates. (mask_scalar_name, mask_scalar_operand3, round_scalar_name, round_scalar_mask_operand3, round_scalar_mask_op3, round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name, round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3, round_saeonly_scalar_constraint, round_saeonly_scalar_prefix): New subst attribute. * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ... <sse>_vm<plusminus_insn><mode>3<mask_scalar_name> <round_scalar_name> ... this. (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ... <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name> <round_scalar_name> ... this. (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ... <sse>_vm<code><mode>3<mask_scalar_name> <round_saeonly_scalar_name> ... this. (v<plusminus_mnemonic><ssescalarmodesuffix> \t{<round_mask_op3>%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... v<plusminus_mnemonic><ssescalarmodesuffix> \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. (v<multdiv_mnemonic><ssescalarmodesuffix> \t{<round_mask_op3>%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... v<multdiv_mnemonic><ssescalarmodesuffix> \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. (v<maxmin_float><ssescalarmodesuffix> \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ... v<maxmin_float><ssescalarmodesuffix> \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %<iptr>2 <round_saeonly_scalar_mask_op3>} ... this. gcc/testsuite/ * gcc.target/i386/avx512f-vaddsd-3.c: New test for mask 0 verification. * gcc.target/i386/avx512f-vaddss-3.c: Ditto. * gcc.target/i386/avx512f-vdivsd-3.c: Ditto. * gcc.target/i386/avx512f-vdivss-3.c: Ditto. * gcc.target/i386/avx512f-vmaxsd-3.c: Ditto. * gcc.target/i386/avx512f-vmaxss-3.c: Ditto. * gcc.target/i386/avx512f-vminsd-3.c: Ditto. * gcc.target/i386/avx512f-vminss-3.c: Ditto. * gcc.target/i386/avx512f-vmulsd-3.c: Ditto. * gcc.target/i386/avx512f-vmulss-3.c: Ditto. * gcc.target/i386/avx512f-vsubsd-3.c: Ditto. * gcc.target/i386/avx512f-vsubss-3.c: Ditto. From-SVN: r250006
Sebastian Peryt committed -
This patch implements TARGET_FIXED_CONDITION_CODE_REGS on ARM. We have two main cases to consider: in Thumb1 code there are no condition code registers, so we simply return false. For other cases we set the the first pointer to CC_REGNUM and the second to VFPCC_REGNUM iff generating hard-float code. Running the CSiBE benchmark I see a couple of cases (both in the same file) where this feature kicks in, so it's not a major change. * config/arm/arm.c (arm_fixed_condition_code_regs): New function. (TARGET_FIXED_CONDITION_CODE_REGS): Redefine. From-SVN: r250005
Richard Earnshaw committed
-