aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-11-08svn merge -r265930:265934 svn+ssh://gcc.gnu.org/svn/gcc/trunkdevel/gomp-5_0-branchJakub Jelinek18-408/+1374
From-SVN: r265937
2018-11-08svn merge -r265884:265929 svn+ssh://gcc.gnu.org/svn/gcc/trunkJakub Jelinek187-522/+1488
From-SVN: r265936
2018-11-08pr87874.c (em): Declare uint64_max as const unsigned long long int.Uros Bizjak2-2/+7
* gcc.dg/pr87874.c (em): Declare uint64_max as const unsigned long long int. From-SVN: r265929
2018-11-08attr-alloc_size-10.c: Fix calculation of USHRT_MAX to prevent integer ↵Jozef Lawrynowicz6-5/+14
overflow when... 2018-11-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> * gcc.dg/attr-alloc_size-10.c: Fix calculation of USHRT_MAX to prevent integer overflow when sizeof(short) == sizeof(int). * gcc.dg/attr-alloc_size-11.c: Likewise. * gcc.dg/attr-alloc_size-3.c: Likewise. * gcc.dg/attr-alloc_size-5.c: Likewise. * gcc.dg/builtin-stringop-chk-7.c: Likewise. From-SVN: r265928
2018-11-08patchable_function_entry-decl.c: Add regex to search for uppercase "NOP" ↵Jozef Lawrynowicz4-3/+10
instructions in assembler output. 2018-11-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> * c-c++-common/patchable_function_entry-decl.c: Add regex to search for uppercase "NOP" instructions in assembler output. * c-c++-common/patchable_function_entry-default.c: Likewise. * c-c++-common/patchable_function_entry-definition.c: Likewise. From-SVN: r265927
2018-11-08pr27336.c: Skip test if the target keeps null pointer checks.Jozef Lawrynowicz5-0/+12
2018-11-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> * c-c++-common/pr27336.c: Skip test if the target keeps null pointer checks. * gcc.dg/addr_equal-1.c: Likewise. * gcc.dg/tree-ssa/pr78154.c: Likewise. * gcc.dg/tree-ssa/vrp111.c: Likewise. From-SVN: r265926
2018-11-08Update soft-fp from glibc.Kito Cheng89-122/+329
This patch is updating all soft-fp from glibc, most changes are copyright years update, and changes other than years update are list bellow, this patch has been tested with riscv32-elf(rv32imac), riscv64-elf(rv64imac) and nds32le-elf(v3), didn't introduce new test fail: soft-fp/op-4.h - soft-fp: Use temporary variable in FP_FRAC_SUB_3/FP_FRAC_SUB_4 - ff48ea6787526d7e669af93ce2681b911d39675c soft-fp/op-8.h - soft-fp: Add implementation for 128 bit self-contained - af1d5782c1e3a635fdd13d6688be64de7759857c soft-fp/op-common.h - Add narrowing multiply functions. - 69a01461ee1417578d2ba20aac935828b50f1118 soft-fp/extended.h soft-fp/half.h soft-fp/single.h soft-fp/double.h soft-fp/quad.h - Do not use packed structures in soft-fp. - 049375e2b5fc707436fd5d80337c253beededb2d 2018-11-08 Kito Cheng <kito@andestech.com> * soft-fp/adddf3.c: Update from glibc. * soft-fp/addsf3.c: Likewise. * soft-fp/addtf3.c: Likewise. * soft-fp/divdf3.c: Likewise. * soft-fp/divsf3.c: Likewise. * soft-fp/divtf3.c: Likewise. * soft-fp/double.h: Likewise. * soft-fp/eqdf2.c: Likewise. * soft-fp/eqsf2.c: Likewise. * soft-fp/eqtf2.c: Likewise. * soft-fp/extenddftf2.c: Likewise. * soft-fp/extended.h: Likewise. * soft-fp/extendhftf2.c: Likewise. * soft-fp/extendsfdf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/extendxftf2.c: Likewise. * soft-fp/fixdfdi.c: Likewise. * soft-fp/fixdfsi.c: Likewise. * soft-fp/fixdfti.c: Likewise. * soft-fp/fixhfti.c: Likewise. * soft-fp/fixsfdi.c: Likewise. * soft-fp/fixsfsi.c: Likewise. * soft-fp/fixsfti.c: Likewise. * soft-fp/fixtfdi.c: Likewise. * soft-fp/fixtfsi.c: Likewise. * soft-fp/fixtfti.c: Likewise. * soft-fp/fixunsdfdi.c: Likewise. * soft-fp/fixunsdfsi.c: Likewise. * soft-fp/fixunsdfti.c: Likewise. * soft-fp/fixunshfti.c: Likewise. * soft-fp/fixunssfdi.c: Likewise. * soft-fp/fixunssfsi.c: Likewise. * soft-fp/fixunssfti.c: Likewise. * soft-fp/fixunstfdi.c: Likewise. * soft-fp/fixunstfsi.c: Likewise. * soft-fp/fixunstfti.c: Likewise. * soft-fp/floatdidf.c: Likewise. * soft-fp/floatdisf.c: Likewise. * soft-fp/floatditf.c: Likewise. * soft-fp/floatsidf.c: Likewise. * soft-fp/floatsisf.c: Likewise. * soft-fp/floatsitf.c: Likewise. * soft-fp/floattidf.c: Likewise. * soft-fp/floattihf.c: Likewise. * soft-fp/floattisf.c: Likewise. * soft-fp/floattitf.c: Likewise. * soft-fp/floatundidf.c: Likewise. * soft-fp/floatundisf.c: Likewise. * soft-fp/floatunditf.c: Likewise. * soft-fp/floatunsidf.c: Likewise. * soft-fp/floatunsisf.c: Likewise. * soft-fp/floatunsitf.c: Likewise. * soft-fp/floatuntidf.c: Likewise. * soft-fp/floatuntihf.c: Likewise. * soft-fp/floatuntisf.c: Likewise. * soft-fp/floatuntitf.c: Likewise. * soft-fp/gedf2.c: Likewise. * soft-fp/gesf2.c: Likewise. * soft-fp/getf2.c: Likewise. * soft-fp/half.h: Likewise. * soft-fp/ledf2.c: Likewise. * soft-fp/lesf2.c: Likewise. * soft-fp/letf2.c: Likewise. * soft-fp/muldf3.c: Likewise. * soft-fp/mulsf3.c: Likewise. * soft-fp/multf3.c: Likewise. * soft-fp/negdf2.c: Likewise. * soft-fp/negsf2.c: Likewise. * soft-fp/negtf2.c: Likewise. * soft-fp/op-1.h: Likewise. * soft-fp/op-2.h: Likewise. * soft-fp/op-4.h: Likewise. * soft-fp/op-8.h: Likewise. * soft-fp/op-common.h: Likewise. * soft-fp/quad.h: Likewise. * soft-fp/single.h: Likewise. * soft-fp/soft-fp.h: Likewise. * soft-fp/subdf3.c: Likewise. * soft-fp/subsf3.c: Likewise. * soft-fp/subtf3.c: Likewise. * soft-fp/truncdfsf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfhf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/trunctfxf2.c: Likewise. * soft-fp/unorddf2.c: Likewise. * soft-fp/unordsf2.c: Likewise. * soft-fp/unordtf2.c: Likewise. From-SVN: r265925
2018-11-08gcc-dg.exp (gcc-dg-prune): Add new regexps for when the size of an output ↵Jozef Lawrynowicz2-0/+14
section is too large for a... 2018-11-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> * lib/gcc-dg.exp (gcc-dg-prune): Add new regexps for when the size of an output section is too large for a memory region, or a memory region overflows. From-SVN: r265924
2018-11-08fe.h (Suppress_Checks): Declare.Eric Botcazou13-126/+79
* fe.h (Suppress_Checks): Declare. * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions only if checks are not suppressed and -faggressive-loop-optimizations only if they are. * gcc-interface/trans.c (struct loop_info_d): Remove has_checks and warned_aggressive_loop_optimizations fields. (gigi): Do not clear warn_aggressive_loop_optimizations here. (Raise_Error_to_gnu): Do not set has_checks. (gnat_to_gnu) <N_Indexed_Component>: Remove support for aggressive loop optimizations. From-SVN: r265921
2018-11-08ipa-inline.c/tree-inline.c: port from fprintf to dump API (PR ipa/86395)David Malcolm26-124/+294
This patch ports various fprintf calls in the inlining code to using the dump API, using the %C format code for printing cgraph_node *. I focussed on the dump messages that seemed most significant to end-users; I didn't port all of the calls. Doing so makes this information appear in -fopt-info and in optimization records, rather than just in the dump_file. It also changes the affected dumpfile-dumps from being unconditional (assuming the dump_file is enabled) to being guarded by the MSG_* status. Hence various tests with dg-final scan-*-dump directives need to gain "-all" or "-optimized" suffixes to -fdump-ipa-inline. The use of %C throughout also slightly changes the dump format for several messages, e.g. changing: Inlining void inline_me(char*) into int main(int, char**). to: ../../src/gcc/testsuite/g++.dg/tree-ssa/inline-1.C:13:8: optimized: Inlining void inline_me(char*)/0 into int main(int, char**)/2. amongst other things adding "/order" suffixes to the cgraph node names. gcc/ChangeLog: PR ipa/86395 * doc/invoke.texi (-fdump-ipa-): Document the "-optimized", "-missed", "-note", and "-all" sub-options. * ipa-inline.c (caller_growth_limits): Port from fprintf to dump API. (can_early_inline_edge_p): Likewise. (want_early_inline_function_p): Likewise. (want_inline_self_recursive_call_p): Likewise. (recursive_inlining): Likewise. (inline_small_functions): Likewise. (flatten_function): Likewise. (ipa_inline): Likewise. (inline_always_inline_functions): Likewise. (early_inline_small_functions): Likewise. (early_inliner): Likewise. * tree-inline.c (expand_call_inline): Likewise. gcc/testsuite/ChangeLog: PR ipa/86395 * g++.dg/ipa/devirt-12.C: Add "-all" suffix to "-fdump-ipa-inline". * g++.dg/ipa/imm-devirt-1.C: Add "-optimized" suffix to "-fdump-tree-einline". * g++.dg/tree-prof/inline_mismatch_args.C: Add "-all" suffix to "-fdump-tree-einline". * g++.dg/tree-ssa/inline-1.C: Add "-optimized" suffix to "-fdump-tree-einline". * g++.dg/tree-ssa/inline-2.C: Likewise. * g++.dg/tree-ssa/inline-3.C: Likewise. * g++.dg/tree-ssa/inline-4.C: New test, based on inline-1.C, but using "-fopt-info-inline". * gcc.dg/ipa/fopt-info-inline-1.c: New test. * gcc.dg/ipa/inline-4.c: Add "-all" suffix to "-fdump-ipa-inline". Add "-fopt-info-inline" and dg-optimized directive. * gcc.dg/ipa/inline-7.c: Add "-optimized" suffix to "-fdump-tree-einline". Add "-fopt-info-inline" and dg-optimized directive. Update scan-tree-dump-times to reflect /order suffixes. * gcc.dg/ipa/inlinehint-4.c: Update scan-tree-dump-times to reflect /order suffixes. * gcc.dg/plugin/dump-1.c: Add "-loop" to "-fopt-info-note" to avoid getting extra messages from inliner. * gcc.dg/plugin/dump-2.c: Likewise. * gcc.dg/pr26570.c: Add dg-prune-output to ignore new "function body not available" missed optimization messages. * gcc.dg/pr71969-2.c: Update scan-tree-dump-times to reflect /order suffixes. * gcc.dg/pr71969-3.c: Likewise. * gcc.dg/tree-ssa/inline-11.c: Add "-all" suffix to "-fdump-tree-einline". * gcc.dg/tree-ssa/inline-3.c: Add "-optimized" suffix to "-fdump-tree-einline". Update scan-tree-dump-times to reflect /order suffixes. * gcc.dg/tree-ssa/inline-4.c: Add "-optimized" suffix to "-fdump-tree-einline". Add "-fopt-info-inline" and dg-optimized directive. * gcc.dg/tree-ssa/inline-8.c: Add "-optimized" suffix to "-fdump-tree-einline". * gfortran.dg/pr79966.f90: Update scan-ipa-dump to reflect /order suffixes. From-SVN: r265920
2018-11-08Support %f in pp_formatDavid Malcolm7-0/+26
Numerous formatted messages from the inliner use %f, mostly as %f, but occasionally with length modifiers. This patch implements the simplest case of "%f" for pp_format (with no modifier support) to make it easier to port these messages from fprintf to dump_printf_loc. The selftest has an assertion that %f on 1.0 is printed as "1.000000". This comes from the host's sprintf, and I believe this is guaranteed by POSIX: "If the precision is missing, it shall be taken as 6". If this is an issue I can drop the selftest. gcc/c-family/ChangeLog: * c-format.c (gcc_dump_printf_char_table): Add entry for %f. gcc/ChangeLog: * pretty-print.c (pp_format): Handle %f. (selftest::test_pp_format): Add test of %f. * pretty-print.h (pp_double): New macro. gcc/testsuite/ChangeLog: * gcc.dg/format/gcc_diag-10.c: Add coverage for %f. From-SVN: r265919
2018-11-08dump_printf: add "%C" for dumping cgraph_node *David Malcolm8-50/+161
This patch implements support for %C in dump_printf for dumping cgraph_node *. (I would have preferred to have a code for printing symtab_node * and both subclasses, but there doesn't seem to be a good way for -Wformat to handle inheritance, so, failing that, I went with this approach). gcc/c-family/ChangeLog: * c-format.c (local_cgraph_node_ptr_node): New variable. (gcc_dump_printf_char_table): Add entry for %C. (get_pointer_to_named_type): New function, taken from the handling code for "gimple *" from... (init_dynamic_diag_info): ...here. Add handling for "cgraph_node *". * c-format.h (T_CGRAPH_NODE): New. gcc/ChangeLog: * dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro. * dumpfile.c (make_item_for_dump_cgraph_node): Move to before... (dump_pretty_printer::decode_format): Implement "%C" for cgraph_node *. (selftest::test_capture_of_dump_calls): Rename "where" to "stmt_loc". Convert test_decl to a function decl and set its location. Add a symbol_table_test RAII instance and a cgraph_node, using it to test "%C" and dump_symtab_node. gcc/testsuite/ChangeLog: * gcc.dg/format/gcc_diag-10.c (cgraph_node): New typedef. (test_dump): Add testing of %C. From-SVN: r265918
2018-11-08decl.c (components_to_record): Remove obsolete kludge.Eric Botcazou3-25/+29
* gcc-interface/decl.c (components_to_record): Remove obsolete kludge. * gcc-interface/utils.c (make_packable_type): Set TYPE_PACKED on the new type but do not take into account the setting on the old type for the new fields. Rename a local variable. (finish_record_type): Clear DECL_BIT_FIELD_TYPE on a variant part at offset 0, if any. (create_field_decl): Tweak comment. From-SVN: r265917
2018-11-08re PR middle-end/87916 (ICE in dwarf2out_abstract_function, at ↵Eric Botcazou4-0/+58
dwarf2out.c:22479 since r264943) PR middle-end/87916 * cgraphclones.c (duplicate_thunk_for_node): Also set DECL_IGNORED_P. From-SVN: r265916
2018-11-08cgraph: add selftest::symbol_table_testDavid Malcolm5-0/+106
This patch adds a selftest fixture for overriding the "symtab" global, so that selftests involving symtab nodes can be isolated from each other: each selftest can have its own symbol_table instance. In particular, this ensures that nodes can have a predictable "order" and thus predictable dump names within selftests. gcc/ChangeLog: * cgraph.c: Include "selftest.h". (saved_symtab): New variable. (selftest::symbol_table_test::symbol_table_test): New ctor. (selftest::symbol_table_test::~symbol_table_test): New dtor. (selftest::test_symbol_table_test): New test. (selftest::cgraph_c_tests): New. * cgraph.h (saved_symtab): New decl. (selftest::symbol_table_test): New class. * selftest-run-tests.c (selftest::run_tests): Call selftest::cgraph_c_tests. * selftest.h (selftest::cgraph_c_tests): New decl. From-SVN: r265915
2018-11-08tree-data-ref.h (lambda_int): New typedef.Richard Biener3-6/+15
2018-11-08 Richard Biener <rguenther@suse.de> * tree-data-ref.h (lambda_int): New typedef. (lambda_vector_gcd): Adjust. (lambda_vector_new): Likewise. (lambda_matrix_new): Likewise. * tree-data-ref.c (print_lambda_vector): Adjust. From-SVN: r265914
2018-11-08re PR tree-optimization/87929 (ICE in verify_gimple failed)Richard Biener4-0/+28
2018-11-08 Richard Biener <rguenther@suse.de> PR tree-optimization/87929 * tree-complex.c (expand_complex_comparison): Clean EH. * gcc.dg/pr87929.c: New testcase. From-SVN: r265912
2018-11-08Change wording of __builtin_expect_with_probability errors.Martin Liska6-7/+17
2018-11-08 Martin Liska <mliska@suse.cz> * doc/extend.texi: Reword. * predict.c (expr_expected_value_1): Likewise. 2018-11-08 Martin Liska <mliska@suse.cz> * gcc.dg/pr87811.c: Update scanned pattern. * gcc.dg/pr87811-2.c: Likewise. From-SVN: r265911
2018-11-08Don't use predefined sun in g++.dg/lto/pr87906Rainer Orth3-9/+15
* g++.dg/lto/pr87906_0.C: Use moon instead of possibly predefined sun. * g++.dg/lto/pr87906_1.C: Likewise. From-SVN: r265910
2018-11-08re PR target/87913 (max(n, 1) code generation)Richard Biener4-3/+58
2018-11-08 Richard Biener <rguenther@suse.de> PR tree-optimization/87913 * tree-ssa-phiopt.c (minmax_replacement): Turn EQ/NE compares of extreme values to ordered comparisons. * gcc.dg/tree-ssa/phi-opt-20.c: New testcase. From-SVN: r265909
2018-11-08Add mips option dependency only config with loongson target.Chenghua Xu2-4/+20
gcc/testsuite/ * gcc.target/mips/mips.exp (mips-dg-options): Add mips_option_dependency msoft-float vs no-mmi and mips16/micromips vs no-mmi/ext/ext2 only gcc config with Loongson target. From-SVN: r265908
2018-11-07re PR middle-end/42726 (-fno-common documentation inaccuracy)Sandra Loosemore2-1/+6
2018-11-07 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/42726 gcc/ * doc/invoke.texi (Code Gen Options): Clarify -fno-common behavior. From-SVN: r265906
2018-11-07invoke.texi: Remove leading dash from @opindex entries throughout the file.Sandra Loosemore2-21/+26
2018-11-07 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/invoke.texi: Remove leading dash from @opindex entries throughout the file. From-SVN: r265904
2018-11-07re PR driver/80828 (Command line option -e not documented)Sandra Loosemore2-0/+16
2018-11-07 Sandra Loosemore <sandra@codesourcery.com> PR driver/80828 gcc/ * doc/invoke.texi (Option Summary): Add -e and --entry. (Link Options): Likewise. From-SVN: r265903
2018-11-08Daily bump.GCC Administrator1-1/+1
From-SVN: r265902
2018-11-07[PR/87936] --disable-checking bootstrap breakNathan Sidwell2-0/+7
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00502.html PR 87926 * Makefile.in (bitmap.o-warn): Add -Wno-error to unbreak --disable-checking bootstrap. From-SVN: r265899
2018-11-07iconv.m4 (AM_ICONV_LINK): Don't overwrite CPPFLAGS.Hafiz Abid Qadeer10-8/+29
2018-11-06 Hafiz Abid Qadeer <abidh@codesourcery.com> * config/iconv.m4 (AM_ICONV_LINK): Don't overwrite CPPFLAGS. Append $INCICONV to it. gcc/ * configure: Regenerated. libcpp/ * configure: Likewise. libstdc++-v3/ * configure: Likewise. intl/ * configure: Likewise. From-SVN: r265896
2018-11-07pr65595.c: Change type of "num" argument to memcpy from "unsigned long" to ↵Jozef Lawrynowicz2-1/+6
__SIZE_TYPE__. 2018-11-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> * gcc.c-torture/compile/pr65595.c: Change type of "num" argument to memcpy from "unsigned long" to __SIZE_TYPE__. From-SVN: r265895
2018-11-07re PR c/87691 (transparent_union attribute does not work with MODE_PARTIAL_INT)Jozef Lawrynowicz4-11/+78
2018-11-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> PR c/87691 gcc/ChangeLog: * stor-layout.c (compute_record_mode): Set TYPE_MODE of UNION_TYPE to the mode of the widest field iff the widest field has mode class MODE_INT, or MODE_PARTIAL_INT and the union would be passed by reference. gcc/testsuite/ChangeLog: * gcc.target/msp430/pr87691.c: New test. From-SVN: r265894
2018-11-07Formatting fixes.Jakub Jelinek14-29/+29
From-SVN: r265892
2018-11-07common.opt: Add -Wattribute-warning.Nikolai Merinov6-1/+35
* common.opt: Add -Wattribute-warning. * doc/invoke.texi: Add documentation for -Wno-attribute-warning. * expr.c (expand_expr_real_1): Add new attribute to warning_at call to allow user configure behavior of "warning" attribute. * gcc.dg/Wno-attribute-warning.c: New test. From-SVN: r265891
2018-11-07atomic-5.C (f1): Adjust expected lines of read-only variable messages.Jakub Jelinek4-5/+14
* g++.dg/gomp/atomic-5.C (f1): Adjust expected lines of read-only variable messages. * testsuite/libgomp.c-c++-common/taskloop-reduction-1.c (S): Change type of s and t members from unsigned long int to unsigned long long int. From-SVN: r265887
2018-11-07svn merge -r262815:265884 svn+ssh://gcc.gnu.org/svn/gcc/trunkJakub Jelinek9914-243625/+1347277
From-SVN: r265886
2018-11-07builtin-types.def (BT_FN_VOID_BOOL, [...]): New.Jakub Jelinek37-265/+3526
* builtin-types.def (BT_FN_VOID_BOOL, BT_FN_UINT_UINT_PTR_PTR, BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. * omp-builtins.def (BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START, BUILT_IN_GOMP_LOOP_DOACROSS_START, BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START, BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START, BUILT_IN_GOMP_SECTIONS2_START, BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New. * omp-general.h (struct omp_for_data): Add have_reductemp member. * omp-general.c (omp_extract_for_data): Initialize it. * omp-low.c (build_outer_var_ref): Ignore taskgroup outer contexts. Fix up the condition when lookup_decl should be used. (scan_sharing_clauses): Call install_var_local for reductions with task modifier even in worksharing contexts. (lower_rec_input_clauses): Don't lookup_decl reductemp in worksharing contexts. Handle reductions with task modifier in worksharing contexts. Ignore _reductemp_ clause in worksharing contexts. (lower_reduction_clauses): Ignore reduction clause with task modifiers even in worksharing contexts. (lower_send_clauses): Likewise. (maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't rely that it is the last stmt in body so far. Ignore outer taskgroup contexts. (omp_task_reductions_find_first): Move earlier. (lower_omp_task_reductions): Add forward declaration. Handle OMP_FOR and OMP_SECTIONS, add support for parallel cancellation. (lower_omp_sections): Handle reduction clauses with taskgroup modifiers. Adjust maybe_add_implicit_barrier_cancel caller. (lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller. (lower_omp_for): Likewise. Handle reduction clauses with taskgroup modifiers. * omp-expand.c (omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero. (determine_parallel_type): Don't combine parallel with worksharing which has _reductemp_ clause. (expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion of worksharing loops with task reductions. (expand_omp_for_static_nochunk): Handle expansion of worksharing loops with task reductions. (expand_omp_for_static_chunk): Likewise. (expand_omp_for): Adjust expand_omp_for_generic caller, use GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are task reductions. (expand_omp_sections): Handle expansion of sections with task reductions. gcc/fortran/ * types.def (BT_FN_VOID_BOOL, BT_FN_UINT_UINT_PTR_PTR, BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR, BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. libgomp/ * libgomp_g.h (GOMP_loop_start, GOMP_loop_ordered_start, GOMP_loop_doacross_start, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start, GOMP_loop_ull_doacross_start, GOMP_workshare_task_reduction_unregister, GOMP_sections2_start): New prototypes. * libgomp.h (struct gomp_doacross_work_share): Add extra field. (struct gomp_work_share): Add task_reductions field. (struct gomp_taskgroup): Add workshare flag. (gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument. (gomp_workshare_taskgroup_start, gomp_workshare_task_reduction_register): New prototypes. (gomp_init_work_share, gomp_work_share_start): Change bool argument to size_t. * libgomp.map (GOMP_5.0): Export GOMP_loop_start, GOMP_loop_ordered_start, GOMP_loop_doacross_start, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start, GOMP_loop_ull_doacross_start, GOMP_workshare_task_reduction_unregister and GOMP_sections2_start. * loop.c: Include string.h. (GOMP_loop_runtime_next): Add ialias. (GOMP_taskgroup_reduction_register): Add ialias_redirect. (gomp_loop_static_start, gomp_loop_dynamic_start, gomp_loop_guided_start, gomp_loop_ordered_static_start, gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start, gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start, gomp_loop_doacross_guided_start): Adjust gomp_work_share_start or gomp_doacross_init callers. (gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start, GOMP_loop_doacross_start): New functions. * loop_ull.c: Include string.h. (GOMP_loop_ull_runtime_next): Add ialias. (GOMP_taskgroup_reduction_register): Add ialias_redirect. (gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start, gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start, gomp_loop_ull_ordered_dynamic_start, gomp_loop_ull_ordered_guided_start, gomp_loop_ull_doacross_static_start, gomp_loop_ull_doacross_dynamic_start, gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start and gomp_doacross_ull_init callers. (gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start, GOMP_loop_ull_doacross_start): New functions. * sections.c: Include string.h. (GOMP_taskgroup_reduction_register): Add ialias_redirect. (GOMP_sections_start): Adjust gomp_work_share_start caller. (GOMP_sections2_start): New function. * ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add EXTRA argument. If not needed to prepare array, if extra is 0, clear ws->doacross, otherwise allocate just doacross structure and extra payload. If array is needed, allocate also extra payload. (GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_ull_wait): Handle doacross->array == NULL like doacross == NULL. * parallel.c (GOMP_cancellation_point): If taskgroup has workshare flag set, check cancelled of prev taskgroup if any. (GOMP_cancel): If taskgroup has workshare flag set, set cancelled on prev taskgroup if any. * single.c (GOMP_single_start, GOMP_single_copy_start): Adjust gomp_work_share_start callers. * target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data): If taskgroup has workshare flag set, check cancelled on prev taskgroup if any. Guard all cancellation tests with gomp_cancel_var test. * taskloop.c (GOMP_taskloop): Likewise. * task.c (GOMP_task, gomp_create_target_task, gomp_task_run_pre, GOMP_taskwait_depend): Likewise. (gomp_taskgroup_init): Clear workshare flag, reorder initialization. (gomp_reduction_register): Add always_inline attribute. Add ORIG argument, if non-NULL, don't allocate memory, but copy it from there. (gomp_create_artificial_team): New function. (GOMP_taskgroup_reduction_register): Extend function comment. Use gomp_create_artificial_team. Adjust gomp_reduction_register caller. (gomp_parallel_reduction_register): Adjust gomp_reduction_register caller. (gomp_workshare_task_reduction_register, gomp_workshare_taskgroup_start, GOMP_workshare_task_reduction_unregister): New functions. * team.c (gomp_new_team): Adjust gomp_init_work_share caller. * work.c (gomp_init_work_share): Change ORDERED argument from bool to size_t, if more than 1 allocate also extra payload at the end of array. Never keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead. (gomp_work_share_start): Change ORDERED argument from bool to size_t, return true instead of ws. * testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test. * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-6.c (struct S): Use unsigned long long int instead of unsigned long int. (main): Verify r == t. * testsuite/libgomp.c-c++-common/task-reduction-8.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-9.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-11.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-12.c: New test. * testsuite/libgomp.c++/task-reduction-14.C: New test. * testsuite/libgomp.c++/task-reduction-15.C: New test. * testsuite/libgomp.c++/task-reduction-16.C: New test. * testsuite/libgomp.c++/task-reduction-17.C: New test. * testsuite/libgomp.c++/task-reduction-18.C: New test. * testsuite/libgomp.c++/task-reduction-19.C: New test. From-SVN: r265885
2018-11-07Fix linker script to use [jmy] to match size_t parametersJonathan Wakely2-2/+6
* config/abi/pre/gnu.ver: Fix patterns for size_t parameters. From-SVN: r265884
2018-11-07doc: Use @: where neededSegher Boessenkool15-74/+93
When an abbreviation ends with a dot followed by whitespace, Texinfo thinks the dot ends a sentence, and applies spacing rules etc. based on that. To prevent this, there is the @: macro. This patch puts @: after every vs., e.g., and i.e. where it is needed. In a few cases there was "@ " already, or "@\n", but @: is slightly better, and more consistent. * target.def: Put @: after every vs., e.g., and i.e. where it is followed by whitespace. * doc/extend.texi: Ditto. * doc/fragments.texi: Ditto. * doc/gimple.texi: Ditto. * doc/implement-c.texi: Ditto. * doc/install.texi: Ditto. * doc/invoke.texi: Ditto. * doc/md.texi: Ditto. * doc/plugins.texi: Ditto. * doc/rtl.texi: Ditto. * doc/sourcebuild.texi: Ditto. * doc/tm.texi.in: Ditto. * doc/ux.texi: Ditto. * doc/tm.texi: Regenerate. From-SVN: r265882
2018-11-07[arm] Add support for Arm AresKyrylo Tkachov5-5/+26
This adds support for the Arm Ares CPU for in the arm port. It implements the Armv8.2-A architecture with the optional features of statistical profiling, dot product and FP16 on by default. Note: Ares is a codename to enable early adopters and in time we will add the final product name once it's announced. * config/arm/arm-cpus.in (ares): New entry. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * doc/invoke.texi (ARM Options): Document ares. From-SVN: r265881
2018-11-07[AArch64] Add -mcpu/-mtune support for Arm AresKyrylo Tkachov4-8/+15
This adds support for the Arm Ares CPU for AArch64. It implements the Armv8.2-A architecture with the optional features of statistical profiling, dot product and FP16 on by default. Note: Ares is a codename to enable early adopters and in time we will add the final product name once it's announced. * config/aarch64/aarch64-cores.def (ares): Define. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi (AArch64 Options): Document ares value for mtune. From-SVN: r265880
2018-11-07[PR C++/87904] lookup ICENathan Sidwell5-8/+43
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00468.html PR c++/87904 * cp-tree.h (struct tree_overload): Fix comment. * tree.c (ovl_iterator::reveal_node): Propagate OVL_DEDUP_P. PR c++/87904 * g++.dg/lookup/pr87904.C: New. From-SVN: r265879
2018-11-07pr87874.c: Compile only for int128 effective target.Uros Bizjak2-3/+5
* gcc.dg/pr87874.c: Compile only for int128 effective target. From-SVN: r265878
2018-11-07tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE.Jan Hubicka2-0/+25
* tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE. (free_lang_data_in_decl): Set TREE_ADDRESSABLE for public vars and functions; clear TYPE_DECL_SUPPRESS_DEBUG and DECL_MODE for TYPE_DECL. From-SVN: r265877
2018-11-07re PR tree-optimization/87914 (gcc fails to vectorize bitreverse code)Richard Biener7-49/+170
2018-11-07 Richard Biener <rguenther@suse.de> PR tree-optimization/87914 * tree-vect-loop.c (vect_is_simple_reduction): Improve detection of nested cycles. (vectorizable_reduction): Handle shifts and rotates by dispatching to vectorizable_shift. * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle in-loop uses of vect_nested_cycle defs. Merge cycle and internal def cases. (vectorizable_shift): Export and handle being called as vect_nested_cycle. (vect_analyze_stmt): Call vectorizable_shift after vectorizable_reduction. * tree-vectorizer.h (vectorizable_shift): Declare. * lib/target-supports.exp (check_effective_target_vect_var_shift): New. (check_avx2_available): Likewise. * g++.dg/vect/pr87914.cc: New testcase. From-SVN: r265876
2018-11-07ipa-devirt.c (odr_types_equivalent_p): Expect constants than const decls in ↵Jan Hubicka3-20/+93
TREE_VALUE of enum. * ipa-devirt.c (odr_types_equivalent_p): Expect constants than const decls in TREE_VALUE of enum. (dump_type_inheritance_graph): Improve duplicate dumping. (free_enum_values): New. (build_type_inheritance_graph): Use it. * tree.c (free_lang_data_in_type): Free TYPE_VALUES of enums which are not main variants or not ODR types. (verify_type_variant): Expect variants to have no TYPE_VALUES. From-SVN: r265875
2018-11-07Update libquadmath fmaq from glibc, fix nanq issues.Joseph Myers9-91/+93
This patch extends update-quadmath.py to update fmaq from glibc. The issue in that function was that quadmath-imp.h had a struct in a union with mant_high and mant_low fields (up to 64-bit) whereas glibc has mantissa0, mantissa1, mantissa2 and mantissa3 (up to 32-bit). The patch changes those fields to be the same as in glibc, moving printf / strtod code that also uses those fields back to closer to the glibc form. This allows fmaq to be updated automatically from glibc (which brings in at least one bug fix from glibc from 2015). nanq was also using the mant_high field name, and had other issues: it only partly initialized the union from which a value was returned, and setting mant_high to 1 meant a signaling NaN would be returned rather than a quiet NaN. This patch fixes those issues as part of updating it to use the changed interfaces (but does not fix the issue of not using the argument). Bootstrapped with no regressions on x86_64-pc-linux-gnu. * quadmath-imp.h (ieee854_float128): Use mantissa0, mantissa1, mantissa2 and mantissa3 fields instead of mant_high and mant_low. Change nan field to ieee_nan. * update-quadmath.py (update_sources): Also update fmaq.c. * math/nanq.c (nanq): Use ieee_nan field of union. Zero-initialize f. Set quiet_nan field. * printf/flt1282mpn.c, printf/printf_fphex.c, strtod/mpn2flt128.c, strtod/strtoflt128.c: Use mantissa0, mantissa1, mantissa2 and mantissa3 fields. Use ieee_nan and quiet_nan field. * math/fmaq.c: Regenerate from glibc sources with update-quadmath.py. From-SVN: r265874
2018-11-07ipa-inline.c (want_inline_small_function_p): Compute big_speedup_p lazily ↵Richard Biener2-7/+12
and last. 2018-11-07 Richard Biener <rguenther@suse.de> * ipa-inline.c (want_inline_small_function_p): Compute big_speedup_p lazily and last. From-SVN: r265873
2018-11-07tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when building ↵Jan Hubicka2-3/+16
incomplete variant of complete type. * tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when building incomplete variant of complete type. (fld_type_variant): Do not copy TYPE_ALIGN when building incomplete variant of complete type. From-SVN: r265872
2018-11-07Fix some typo and brain twister logical.Chenghua Xu7-22/+38
gcc/ * config/mips/mips.c: Fix typo in documentation of mips_loongson_ext2_prefetch_cookie. (mips_option_override): fix brain twister logical. * config/mips/mips.h: Fix typo in documentation of ISA_HAS_CTZ_CTO and define pattern. * config/mips/mips.md (prefetch): Hoist EXT2 above the 2EF/EXT block. (prefetch_indexed): Hoist EXT2 above the EXT block. gcc/testsuite/ * gcc.target/mips/loongson-ctz.c: Fix typo. * gcc.target/mips/loongson-dctz.c: Fix typo. From-SVN: r265871
2018-11-07tree.c (free_lang_data_in_type): Add fld parameter; simplify return and ↵Jan Hubicka4-7/+26
parameter types of function and method types. * tree.c (free_lang_data_in_type): Add fld parameter; simplify return and parameter types of function and method types. (free_lang_data_in_cgraph): Update. From-SVN: r265870
2018-11-07Fix UBSAN in postreload-gcse.c (PR rtl-optimization/87868).Martin Liska3-3/+20
2018-11-07 Martin Liska <mliska@suse.cz> PR rtl-optimization/87868 * postreload-gcse.c (eliminate_partially_redundant_load): Set threshold to max_count if we would overflow. * profile-count.h: Make max_count a public constant. From-SVN: r265869
2018-11-07Fix GNU coding style (V2).Martin Liska2-11/+15
2018-11-07 Martin Liska <mliska@suse.cz> * mem-stats.h: Fix GNU coding style. From-SVN: r265868